:root{
  --navy:#0c1a36;--navy-2:#13284f;--navy-3:#1b3566;--navy-btn:#0b2265;
  --paper:#eef2f8;--paper-2:#dfe6f1;--ink:#0c1a36;--muted:#5d6b85;--sky:#9fb6d8;
  --violet:#7B6EF6;
  --font:'Barlow',system-ui,sans-serif;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1.6 -.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --pad:clamp(20px,6vw,96px);--max:1320px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
html,body{margin:0;background:var(--navy);color:#fff;font-family:var(--font);-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{width:100%;max-width:calc(var(--max) + 2*var(--pad));margin:0 auto;padding:0 var(--pad)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:#fff;color:var(--navy);padding:10px 14px}
.skip:focus{left:8px}

/* ---------- type ---------- */
.label{display:flex;align-items:center;gap:12px;margin:0 0 22px;font-weight:600;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--sky)}
.label::before{content:"";width:28px;height:2px;background:currentColor}
.light .label{color:var(--navy-3)}
h2{margin:0;font-weight:700;font-size:clamp(38px,4.6vw,72px);line-height:1;text-transform:uppercase;letter-spacing:-.005em}
h3{margin:0;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.lead{font-size:clamp(17px,1.35vw,20px);line-height:1.65;font-weight:400;max-width:560px;color:#d6e0f0}
.light .lead{color:var(--muted)}
p{line-height:1.65}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:var(--navy-btn);padding:14px 32px;font-weight:700;font-size:15px;letter-spacing:.18em;text-transform:uppercase;border:2px solid #fff;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn:hover{background:transparent;color:#fff}
.btn-navy{background:var(--navy-btn);border-color:var(--navy-btn);color:#fff}
.btn-navy:hover{background:transparent;color:var(--navy-btn)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn-ghost:hover{background:#fff;color:var(--navy-btn)}
.link{display:inline-flex;gap:8px;font-weight:700;font-size:14px;letter-spacing:.16em;text-transform:uppercase;border-bottom:2px solid currentColor;padding-bottom:4px}

/* ---------- grain (shared) ---------- */
.grain{position:absolute;inset:-50%;z-index:-1;pointer-events:none;opacity:.2;mix-blend-mode:overlay;
  background-image:var(--grain);
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}17%{transform:translate(-4%,3%)}33%{transform:translate(3%,-5%)}50%{transform:translate(-6%,-2%)}67%{transform:translate(5%,4%)}83%{transform:translate(-2%,6%)}100%{transform:translate(0,0)}}
/* photos get a quiet static grain + slight cool tone so field shots match the hero */
.photo{position:relative;overflow:hidden;background:var(--navy-2);isolation:isolate}
.photo img,.photo video{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.02)}
.photo::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:overlay;opacity:.16;background-image:var(--grain);background-size:180px}
.photo::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(12,26,54,0) 55%,rgba(12,26,54,.35));mix-blend-mode:multiply}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px clamp(20px,3vw,44px);transition:background .3s,padding .3s,box-shadow .3s}
.nav.solid{background:rgba(12,26,54,.96);padding-top:10px;padding-bottom:10px;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.logo img{display:block;height:54px;width:auto;transition:height .3s}
.nav.solid .logo img{height:44px}
.menu{display:flex;align-items:center;gap:clamp(18px,2.4vw,38px);font-weight:600;font-size:15px;letter-spacing:.1em;text-transform:uppercase}
.menu a:not(.join):hover{opacity:.7}
.join{background:var(--navy-btn);padding:12px 24px;font-weight:700;font-size:14px;letter-spacing:.1em;transition:background .2s}
.join:hover{background:#17368f}
.burger{display:none;width:44px;height:44px;border:0;background:none;cursor:pointer;position:relative}
.burger span,.burger::before,.burger::after{content:"";position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:transform .25s,opacity .25s}
.burger::before{top:14px}.burger span{top:21px}.burger::after{top:28px}
.nav.open .burger::before{transform:translateY(7px) rotate(45deg)}
.nav.open .burger span{opacity:0}
.nav.open .burger::after{transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:-4% 0 0;z-index:-3;will-change:transform}
.hero-bg picture,.hero-bg img{display:block;width:100%;height:100%}
.hero-bg img{object-fit:cover;object-position:62% 50%;transform:scale(1.12);animation:settle 3s cubic-bezier(.16,1,.3,1) .1s forwards}
@keyframes settle{to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:
  linear-gradient(90deg,rgba(12,26,54,.5) 0%,rgba(12,26,54,.15) 40%,rgba(12,26,54,0) 60%),
  linear-gradient(180deg,rgba(12,26,54,.3) 0%,rgba(12,26,54,0) 20%),
  linear-gradient(0deg,rgba(12,26,54,.6) 0%,rgba(12,26,54,0) 18%),
  rgba(70,100,150,.08)}
.hero-copy{position:absolute;left:clamp(20px,7vw,120px);top:50%;transform:translateY(-50%);max-width:min(760px,52vw)}
.hero h1{margin:0;font-weight:700;font-size:clamp(46px,5vw,84px);line-height:1;text-transform:uppercase;opacity:0;animation:up 1s .5s forwards}
.hero .sub{margin:22px 0 0;font-size:clamp(16px,1.3vw,19px);font-weight:500;letter-spacing:.2em;line-height:1.7;max-width:560px;opacity:0;animation:up 1s .75s forwards}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px;opacity:0;animation:up 1s 1s forwards}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.scroll{position:absolute;left:50%;bottom:30px;width:30px;height:50px;margin-left:-15px;border:2px solid rgba(255,255,255,.55);border-radius:16px}
.scroll::after{content:"";position:absolute;left:50%;top:9px;width:3px;height:9px;margin-left:-1.5px;border-radius:2px;background:#fff;animation:wheel 1.8s infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}


/* ---------- sections ---------- */
.section{padding:clamp(90px,12vw,170px) 0;position:relative}

/* about: who we are. One loud move: the sentence-case title runs into the team photo. */
.about{padding:clamp(110px,13vw,190px) 0 clamp(100px,12vw,170px);position:relative}
.about figure{margin:0}
.about-title{position:relative;z-index:2;font-weight:600;font-size:clamp(54px,8.4vw,148px);line-height:.9;letter-spacing:-.025em;text-transform:none;margin-bottom:calc(-.9em * .62)}
.about-team{position:relative}
.about-team .photo{height:min(88vh,920px);min-height:420px}
.about-team .photo::before{background:linear-gradient(180deg,rgba(12,26,54,1) 0%,rgba(12,26,54,.5) 10%,rgba(12,26,54,0) 26%,rgba(12,26,54,0) 70%,rgba(12,26,54,.55) 100%);mix-blend-mode:normal}
.about-team img{object-position:50% 72%}
.about-team figcaption{position:absolute;right:var(--pad);bottom:22px;z-index:2;font-size:15px;color:#dfe7f3}
.about-lead{grid-column:1/7;max-width:30ch;margin:0;align-self:center;font-size:clamp(22px,2.1vw,32px);line-height:1.4;font-weight:400;color:#e6edf7}
.year{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2.2vw,36px);margin-top:clamp(70px,8vw,120px);align-items:start}
.year .y-shop .photo{aspect-ratio:5/6}
.year .photo{aspect-ratio:4/5}
.year figcaption{margin-top:16px;max-width:38ch;font-size:17px;line-height:1.55;color:#b9c8df}
.year figcaption b{color:#fff;font-weight:600}
.year figcaption a{color:#fff;border-bottom:1px solid currentColor}
.year figcaption a:hover{border-bottom-width:2px}
.y-race{grid-column:8/13}
.y-shop{grid-column:1/8;margin-top:clamp(-110px,-5vw,-30px)!important}
.y-camp{grid-column:9/13;margin-top:clamp(40px,6vw,90px)!important}


/* ---------- section rhythm: navy and paper alternate ---------- */
.mission,.join-sec,.page{background:var(--paper);color:var(--ink)}
.mission h2,.join-sec h2,.sponsor h2,.game h2,.footer h2,.page h1{font-weight:600;text-transform:none;letter-spacing:-.02em;line-height:1}
.mission h2,.join-sec h2,.sponsor h2{font-size:clamp(40px,5vw,80px)}
h3{text-transform:none;letter-spacing:0;font-weight:600}

/* ---------- game band (Back to School only) ---------- */
/* The one loud thing near the top: the game's own pixel type and colours, on a star field. */
.game{position:relative;padding:clamp(70px,9vw,120px) 0;background:
  radial-gradient(1px 1px at 12% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 72% 14%,#fff 50%,transparent 51%),
  radial-gradient(1.5px 1.5px at 38% 78%,#cfe0ff 50%,transparent 51%),radial-gradient(1px 1px at 88% 64%,#fff 50%,transparent 51%),
  radial-gradient(1px 1px at 55% 40%,#9fb6d8 50%,transparent 51%),radial-gradient(1.5px 1.5px at 22% 58%,#fff 50%,transparent 51%),
  #081329;border-top:1px solid rgba(255,255,255,.08)}
.game-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(36px,6vw,96px);align-items:center}
.game h2{font-size:clamp(40px,5vw,76px)}
.game-copy p{max-width:46ch;margin:24px 0 0;font-size:clamp(17px,1.3vw,20px);color:#d6e0f0}
.game .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.board{margin:0;padding:26px 26px 18px;border:2px solid #3ff0ff;background:rgba(8,19,41,.85);box-shadow:6px 6px 0 #6b2bd9;font-family:'Press Start 2P',monospace}
.board figcaption{font-size:11px;color:#3ff0ff;margin-bottom:20px;line-height:1.6}
.board ol{list-style:none;margin:0;padding:0;font-size:12px;line-height:1.5}
.board li{display:grid;grid-template-columns:2.4em minmax(0,1fr) auto;gap:10px;padding:10px 0;border-top:1px dashed rgba(255,255,255,.14)}
.board li:first-child{border-top:0}
.board .r{color:#ff4fd8}.board .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board .s{color:#ffc93b}
.board li:first-child .n{color:#ffc93b}
.board .empty{display:block;color:#9fb6d8}

/* ---------- mission: an altitude ruler ---------- */
.mission{padding:clamp(100px,12vw,170px) 0}
.mission-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,7vw,120px);align-items:start}
.mission-head{position:sticky;top:110px}
.mission-head>p{max-width:44ch;margin:26px 0 0;font-size:clamp(17px,1.3vw,20px);color:var(--muted)}
.mission-photo{margin:36px 0 0;aspect-ratio:4/5;max-width:420px}
.mission-photo img{object-position:50% 30%}
.ruler{list-style:none;margin:0;padding:0;border-left:2px solid var(--navy-3)}
.ruler li{position:relative;display:grid;grid-template-columns:minmax(150px,.42fr) minmax(0,1fr);gap:24px;padding:0 0 clamp(48px,6vw,84px) clamp(22px,3vw,40px)}
.ruler li:last-child{padding-bottom:0}
.ruler li::before{content:"";position:absolute;left:-2px;top:.62em;width:clamp(12px,1.6vw,22px);height:2px;background:var(--navy-3)}
.ruler .alt{font-weight:600;font-size:clamp(44px,4.4vw,72px);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--navy-3)}
.ruler .alt small{font-size:.38em;font-weight:500;margin-left:4px;letter-spacing:0}
.ruler h3{font-size:clamp(22px,1.8vw,28px);margin-top:.15em}
.ruler p{margin:10px 0 0;max-width:42ch;color:var(--muted)}

/* ---------- field ---------- */
.field{padding-bottom:clamp(90px,11vw,160px)}
.launch{position:relative;height:min(86vh,860px);min-height:460px;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end}
.launch video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;filter:saturate(.85)}
.launch::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,rgba(12,26,54,.9) 0%,rgba(12,26,54,.2) 45%,rgba(12,26,54,.1) 100%)}
.launch h2{font-weight:600;text-transform:none;letter-spacing:-.025em;font-size:clamp(52px,8vw,140px);line-height:.92;padding-bottom:clamp(40px,6vw,80px)}
.field-pair{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2.2vw,36px);margin-top:clamp(60px,7vw,110px)}
.field-pair figure{margin:0}
.field-pair figcaption{margin-top:16px;max-width:40ch;font-size:17px;line-height:1.55;color:#b9c8df}
.f-wide{grid-column:1/8;align-self:end}
.f-wide .photo{aspect-ratio:16/10}
.f-tall{grid-column:9/13}
.f-tall .photo{aspect-ratio:3/4}

/* ---------- join ---------- */
.join-sec{padding:clamp(100px,12vw,170px) 0}
.join-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,7vw,120px);align-items:start}
.join-grid>div>p{max-width:40ch;margin:26px 0 34px;font-size:clamp(17px,1.3vw,20px);color:var(--muted)}
.teams{list-style:none;margin:0;padding:0}
.teams li{padding:26px 0;border-top:1px solid #c5d0e2}
.teams li:last-child{border-bottom:1px solid #c5d0e2}
.teams h3{font-size:clamp(24px,2vw,32px)}
.teams p{margin:8px 0 0;max-width:52ch;color:var(--muted)}

/* ---------- sponsor ---------- */
.sponsor{padding:clamp(100px,12vw,170px) 0}
.sponsor-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(40px,7vw,120px);align-items:end}
.sponsor-grid>div>p{max-width:50ch;margin:26px 0 0;font-size:clamp(17px,1.3vw,20px);color:#d6e0f0}
.sponsor .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.supporters>p{margin:0;color:#9fb6d8}
.supporters ul{list-style:none;margin:20px 0 0;padding:22px 0 0;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;align-items:center;gap:34px}
.supporters img{height:34px;width:auto}
.wordmark{font-weight:700;font-size:22px;letter-spacing:.2em;white-space:nowrap}
.wordmark small{font-weight:500;font-size:12px;letter-spacing:.3em;margin-left:8px;opacity:.75}

/* ---------- footer / contact ---------- */
.footer{background:var(--navy-2);padding:clamp(70px,9vw,120px) 0 30px}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) minmax(0,.5fr);gap:40px;align-items:end}
.footer h2{font-size:clamp(36px,4vw,60px)}
.mail{display:inline-block;margin-top:18px;font-size:clamp(20px,2vw,30px);font-weight:500;border-bottom:2px solid rgba(255,255,255,.4)}
.mail:hover{border-color:#fff}
.addr{margin:0;color:#b9c8df}
.socials{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-weight:600}
.socials a{border-bottom:1px solid rgba(255,255,255,.35)}
.socials a:hover{border-color:#fff}
.copy{margin-top:70px;color:#8fa3c4;font-size:14px}

/* ---------- form pages (/katil/, /sponsor/) ---------- */
.page{min-height:100vh;padding:clamp(130px,14vw,190px) 0 clamp(90px,10vw,140px)}
.page-body .nav{background:var(--navy)}
.page-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,96px);align-items:start}
.page h1{font-size:clamp(42px,5vw,80px);margin:0}
.page-grid>div>p{max-width:40ch;margin:24px 0 0;font-size:clamp(17px,1.3vw,20px);color:var(--muted)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-weight:600;font-size:15px}
.field input,.field select,.field textarea{width:100%;padding:14px;border:1.5px solid #b9c5d9;background:#fff;border-radius:0;font-size:16px;color:var(--ink);outline:none;transition:border-color .2s}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy-btn)}
.consent{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--muted)}
.consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--navy-btn);flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.status{font-weight:600;font-size:15px;margin:0}
.status.ok{color:#1f8a52}.status.err{color:#c23b3b}
.form.sent{opacity:.5;pointer-events:none}

:focus-visible{outline:3px solid #7fb2ff;outline-offset:3px}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .menu{position:fixed;inset:0 0 auto;top:0;flex-direction:column;align-items:flex-start;gap:0;padding:90px 24px 30px;background:var(--navy);transform:translateY(-105%);transition:transform .35s;z-index:-1}
  .menu a{width:100%;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:18px}
  .menu .join{margin-top:20px;width:auto;padding:14px 24px;border:0}
  .nav.open .menu{transform:none}
  .burger{display:block}
  .about-team .photo{height:72vh}
  .game-grid,.mission-grid,.join-grid,.sponsor-grid,.page-grid{grid-template-columns:minmax(0,1fr)}
  .mission-head{position:static}
  .mission-photo{display:none}
  .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer-grid>div:first-child{grid-column:1/-1}
}
@media (max-width:700px){
  .logo img{height:46px}
  .nav{padding:14px 16px}
  .hero-bg img{object-position:50% 20%}
  .hero::before{background:linear-gradient(180deg,rgba(12,26,54,.3) 0%,rgba(12,26,54,0) 25%,rgba(12,26,54,0) 42%,rgba(12,26,54,.75) 72%,rgba(12,26,54,.95) 100%)}
  .hero-copy{left:18px;right:18px;top:auto;bottom:72px;transform:none;max-width:none}
  .hero h1{font-size:clamp(38px,11vw,48px)}
  .hero .sub{font-size:14px;letter-spacing:.14em;margin-top:14px}
  .hero .cta{margin-top:24px}
  .hero .cta .btn,.game .cta .btn,.sponsor .cta .btn{flex:1;padding:14px 10px;font-size:13px;letter-spacing:.12em}
  .scroll{display:none}
  .board{padding:20px 16px 12px}
  .board ol{font-size:10px}
  .about-team .photo{height:auto;aspect-ratio:4/5;min-height:0}
  .about-team img{object-position:42% 75%}
  .about-team figcaption{left:16px;right:16px;font-size:13px}
  .year{display:flex;flex-direction:column;gap:44px}
  .y-race{width:84%;align-self:flex-end}
  .y-shop{margin-top:0!important}
  .y-camp{width:84%;margin-top:0!important}
  .ruler li{grid-template-columns:minmax(0,1fr);gap:6px}
  .field-pair{display:flex;flex-direction:column;gap:40px}
  .f-tall{width:78%;align-self:flex-end}
  .footer-grid{grid-template-columns:minmax(0,1fr)}
  .form{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.hero h1,.hero .sub,.hero .cta{opacity:1;transform:none}.hero-bg img{transform:none}html{scroll-behavior:auto}}
