:root{--bg:#090a0c;--ink:#f3f3f2;--muted:#a0a2aa;--line:#ffffff22;--warm:#eeeee9;--dark:#101114;--accent:#d0d7e1;--font:'Space Grotesk',Arial,sans-serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:#050506;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:#e7e7df;color:#171717}.grain{pointer-events:none;position:fixed;inset:0;z-index:80;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.site{width:100%;margin:0;overflow:visible;overflow-x:clip}.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.045em}.eyebrow{font:11px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:#c7c8ce}.nav{position:fixed;top:20px;left:50%;transform:translateX(-50%);width:min(94%,1560px);height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 24px;z-index:60;background:#18191cbb;border:1px solid #ffffff28;border-radius:100px;backdrop-filter:blur(24px);box-shadow:0 20px 70px #0005}.logo{font-size:16px;font-weight:700;letter-spacing:-.06em;display:flex;gap:11px;align-items:center;white-space:nowrap}.logo-mark{display:grid;place-items:center;border:1px solid #ffffff42;border-radius:50%;height:35px;width:35px;font-size:23px;font-weight:500}.navlinks{display:flex;align-items:center;gap:28px}.navlinks a{font-size:12px;color:#d5d5d8;transition:opacity .25s}.navlinks a:hover{opacity:.5}.navright{display:flex;gap:12px;align-items:center}.lang{background:none;border:none;color:#aaa;font:11px var(--mono);padding:10px}.pill{background:#f4f4f1;color:#131416;padding:12px 17px;border-radius:50px;font-weight:700;font-size:12px;border:1px solid transparent;transition:transform .3s,background .3s}.pill:hover{transform:translateY(-3px);background:#cbd3dc}.menu-toggle{display:none;border:0;background:none;color:#fff;font-size:24px}
.hero{height:min(920px,100svh);min-height:670px;background:radial-gradient(ellipse 52% 50% at 50% 55%,#383a42 0%,#1a1c22 47%,#090a0d 92%);border-radius:0 0 36px 36px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#090a0b44,transparent 35%,#090a0b77 95%)}.hero:after{content:'';position:absolute;left:-20%;right:-20%;bottom:-43%;height:65%;background:radial-gradient(ellipse at center,#9babb322,transparent 68%);pointer-events:none}.hero-grid{position:absolute;inset:0;opacity:.15;background-image:linear-gradient(#ffffff22 1px,transparent 1px),linear-gradient(90deg,#ffffff22 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(transparent,#000 40%,transparent)}.hero-topline,.hero-bottomline{position:absolute;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;color:#cacad0;z-index:5;font:10px var(--mono);letter-spacing:.06em}.hero-topline{top:145px}.hero-bottomline{bottom:47px}.hero-title{font-size:clamp(80px,16.1vw,280px);line-height:.8;font-weight:500;letter-spacing:-.11em;margin:0 0 0 -.08em;white-space:nowrap}.scroll-ring{width:72px;height:72px;border:1px solid #ffffff70;border-radius:50%;display:grid;place-items:center;font-size:26px;animation:float 3s infinite ease-in-out}@keyframes float{50%{transform:translateY(-6px)}}.hero-intro{position:absolute;bottom:95px;left:5%;z-index:6;font-size:14px;color:#bfc0c6;max-width:250px;line-height:1.5}.hero-intro strong{color:#fff;display:block;font-size:19px;margin-bottom:5px;font-weight:500}
.section{position:relative;padding:145px max(6%,calc((100vw - 1450px)/2));overflow:hidden}.section-kicker{display:flex;align-items:center;gap:16px;font:11px var(--mono);letter-spacing:.11em;margin-bottom:60px;text-transform:uppercase}.section-kicker:before{content:'';width:32px;height:1px;background:currentColor}.giant{font-size:clamp(58px,10vw,170px);font-weight:500;letter-spacing:-.09em;line-height:.9;margin:0}.chapter-index{color:#aaa;font:11px var(--mono)}.intro{background:var(--warm);color:#0c0d0f;min-height:900px;display:flex;flex-direction:column;justify-content:center}.intro .section-kicker{color:#4d535c}.intro-heading{max-width:1300px}.intro-heading .muted{color:#afb1b5}.intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:110px;align-items:end}.intro-copy p{font-size:clamp(19px,2vw,27px);line-height:1.35;margin:0;max-width:610px}.stats{display:flex;justify-content:flex-end;gap:45px}.stat strong{display:block;font-size:clamp(42px,5vw,80px);font-weight:500;letter-spacing:-.09em}.stat span{font:10px var(--mono);color:#61656b;white-space:nowrap}
.team{background:#0b0d11;color:#f5f5f4}.section-head{display:flex;justify-content:space-between;align-items:end;gap:35px}.section-head p{width:270px;color:#a6a9b0;font-size:14px;line-height:1.6}.drag-tip{font:11px var(--mono);color:#b7bac1;margin-top:55px}.people-window{margin:30px -8vw 0;overflow:hidden;cursor:grab;touch-action:pan-y}.people-window:active{cursor:grabbing}.people-track{display:flex;gap:17px;padding:20px 8vw 35px;width:max-content;will-change:transform}.person{height:400px;width:270px;position:relative;border:1px solid #ffffff24;overflow:hidden;border-radius:4px;flex:none;background:linear-gradient(135deg,#24272e,#14161b 65%);display:flex;flex-direction:column;justify-content:space-between;padding:20px;transition:background .3s,transform .3s}.person:hover{background:linear-gradient(145deg,#424954,#1b1d23);transform:translateY(-7px)}.person .pnum{font:10px var(--mono);color:#adb4bd}.portrait{position:absolute;inset:50px 0 70px;display:grid;place-items:center;font-size:130px;font-weight:400;color:#ffffff16}.portrait img{width:100%;height:100%;object-fit:cover}.person-name{position:relative;font-size:24px;font-weight:500;letter-spacing:-.05em}.person-role{position:relative;font:10px var(--mono);color:#b1b5bc;margin-top:3px;text-transform:uppercase}.team-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:30px;margin-top:48px;gap:20px;color:#aeb1b7;font-size:13px}
.robot{background:radial-gradient(ellipse at 65% 49%,#30343d 0%,#14171d 45%,#0a0b0f 90%);min-height:860px}.robot-layout{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:20px}.robot .giant{font-size:clamp(65px,8vw,125px)}.robot-desc{max-width:395px;color:#aeb3bd;line-height:1.8;font-size:15px;margin-top:32px}.robot-stage{height:525px;display:grid;place-items:center;position:relative}.robot-stage .orbit{position:absolute;border:1px solid #ffffff21;border-radius:50%;width:430px;height:430px;transform:rotateX(65deg) rotateZ(-30deg)}.orbit.two{height:510px;width:510px;transform:rotateX(75deg) rotateZ(34deg)}.hotspot{position:absolute;z-index:7;border:1px solid #ffffff77;background:#13161bce;color:white;padding:12px 14px;border-radius:2px;font:10px var(--mono);text-transform:uppercase;backdrop-filter:blur(12px);transition:background .2s}.hotspot:hover,.hotspot.active{background:white;color:#0d0d0d}.hotspot.h1{top:17%;right:0}.hotspot.h2{bottom:17%;left:1%}.hotspot.h3{bottom:10%;right:10%}.robot-note{border-top:1px solid #ffffff29;padding-top:20px;color:#c8cbd1;font:12px var(--mono);line-height:1.7;min-height:80px;max-width:360px}.small-tag{border:1px solid #ffffff55;border-radius:40px;padding:8px 12px;display:inline-block;font:10px var(--mono);color:#cbd0d8;margin-top:20px}
.journey{background:#e4e6e8;color:#101216}.journey .section-kicker{color:#555c67}.journey .giant{font-size:clamp(46px,6vw,92px)}.timeline-controls{display:flex;gap:12px;justify-content:end;margin-top:40px}.circle-btn{height:51px;width:51px;border-radius:50%;border:1px solid #a4a7ac;background:transparent;font-size:22px;color:#141516;transition:background .25s}.circle-btn:hover{background:#fff}.timeline-window{overflow:auto;scrollbar-width:none;scroll-snap-type:x mandatory;margin-top:30px}.timeline-window::-webkit-scrollbar{display:none}.timeline-track{display:flex;width:max-content;gap:20px;padding-bottom:20px}.milestone{width:min(76vw,510px);min-height:390px;scroll-snap-align:start;padding:28px;border-top:2px solid #17181b;background:#d0d3d7;display:flex;flex-direction:column;justify-content:space-between;transition:background .2s}.milestone:hover{background:#c4cbd2}.milestone-top{display:flex;justify-content:space-between;font:11px var(--mono)}.milestone-date{font-size:90px;letter-spacing:-.1em;line-height:1;font-weight:500}.milestone h3{font-size:35px;letter-spacing:-.065em;line-height:1.08;font-weight:500;margin:0 0 15px;max-width:370px}.milestone p{max-width:350px;color:#434952;font-size:14px;line-height:1.6}.event-strip{margin-top:80px;display:flex;align-items:start;justify-content:space-between;gap:50px;border-top:1px solid #999da4;padding-top:34px}.event-strip h3{font-size:30px;letter-spacing:-.05em;font-weight:500;margin:0}.event-strip p{max-width:600px;font-size:14px;color:#555b63;line-height:1.7;margin:0}
.sponsors{background:#0c0d10;color:#f5f5f5;padding-bottom:130px}.sponsors .giant{font-size:clamp(65px,11vw,165px)}.sponsor-lead{max-width:640px;font-size:21px;line-height:1.4;color:#c4c5ca;margin-top:38px}.tiers-wrap{display:grid;grid-template-columns:1fr 1.25fr;gap:70px;margin-top:115px;align-items:start}.tier-nav{border-top:1px solid #ffffff40}.tier-button{width:100%;border:0;border-bottom:1px solid #ffffff37;background:none;color:#888e97;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:22px 0;font-size:clamp(24px,3vw,42px);letter-spacing:-.06em;transition:padding .25s,color .25s}.tier-button:hover,.tier-button.active{color:#fff;padding-left:15px}.tier-button span:last-child{font:11px var(--mono);letter-spacing:0}.tier-detail{background:#e5e7ea;color:#16181c;min-height:455px;padding:40px;position:relative}.tier-detail:after{content:'λ';position:absolute;right:15px;top:0;font-size:250px;color:#00000009;line-height:1;pointer-events:none}.tier-detail .tier-count{font:11px var(--mono);color:#606873}.tier-detail h3{font-size:clamp(45px,5vw,75px);font-weight:500;letter-spacing:-.08em;margin:40px 0 0}.tier-detail .amount{font:12px var(--mono);color:#555b64}.tier-detail ul{margin:45px 0 0;padding:0;list-style:none;position:relative}.tier-detail li{padding:11px 0;border-top:1px solid #0002;font-size:14px;display:flex;gap:12px}.tier-detail li:before{content:'↗';font-weight:bold}.sponsor-funds{border-top:1px solid #ffffff35;margin-top:110px;padding-top:40px;display:flex;gap:40px;align-items:start;justify-content:space-between}.fund-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:750px}.fund-list span{border:1px solid #ffffff44;border-radius:50px;padding:11px 16px;font:11px var(--mono);text-transform:uppercase;color:#d0d2d9}
.contact{background:#cfd4da;color:#141516;padding-top:105px;padding-bottom:120px}.contact .section-kicker{color:#4b5159}.contact-head{font-size:clamp(65px,12vw,180px);font-weight:500;line-height:.85;letter-spacing:-.1em;margin:0 0 65px}.contact-head span{color:#818894}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-info{max-width:440px}.contact-info h3{font-size:29px;letter-spacing:-.055em;font-weight:500;line-height:1.2}.contact-info p{font-size:14px;line-height:1.8;color:#4b515a}.contact-form{background:#f3f4f4;padding:30px;border-radius:3px;box-shadow:0 25px 70px #00000012}.contact-form label{display:block;font:10px var(--mono);text-transform:uppercase;letter-spacing:.1em;margin:20px 0 10px;color:#43474e}.contact-form select,.contact-form input{width:100%;padding:15px;background:#fff;border:1px solid #d5d8dc;border-radius:2px;color:#16181c;outline-offset:2px}.contact-form .submit{margin-top:24px;width:100%;background:#121416;color:#fff;border:none;padding:17px;display:flex;justify-content:space-between;transition:background .2s}.contact-form .submit:hover{background:#39424e}.form-note{font-size:11px;color:#626974;line-height:1.6}.form-status{font-size:12px;min-height:18px;margin-top:12px}.newsletter{margin-top:70px;border-top:1px solid #10121444;padding-top:25px;display:flex;justify-content:space-between;gap:25px;align-items:center}.newsletter label{font-size:22px;font-weight:500;letter-spacing:-.04em}.newsletter form{display:flex;width:min(470px,100%);border-bottom:1px solid #111}.newsletter input{background:none;border:0;padding:15px 0;flex:1;min-width:0;outline:none}.newsletter button{background:none;border:0;padding:8px 12px;font-size:24px}.footer{background:#0a0b0c;padding:40px 6% 30px}.footer-links{display:flex;gap:24px;flex-wrap:wrap;justify-content:space-between;font:11px var(--mono);color:#b1b4ba}.footer-brand{font-size:clamp(95px,20vw,310px);letter-spacing:-.12em;line-height:1;margin:48px 0 0 -.08em;white-space:nowrap}.foot-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff30;padding-top:20px;font:10px var(--mono);color:#90939a}.reveal{opacity:0;transform:translateY(48px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.15,1)}.reveal.visible{opacity:1;transform:translateY(0)}.cursor-glow{pointer-events:none;position:fixed;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,#ffffff0c,transparent 70%);transform:translate(-50%,-50%);z-index:12;opacity:0}.error-link{font-size:12px;color:#93979f}.mobile-menu{display:none}
@media(max-width:900px){.navlinks{display:none}.menu-toggle{display:block}.mobile-menu{display:flex;flex-direction:column;position:fixed;top:92px;left:4%;right:4%;padding:20px;background:#1a1c20;z-index:59;border:1px solid #ffffff33;border-radius:16px;gap:15px;transform:translateY(-15px);opacity:0;pointer-events:none;transition:.25s}.mobile-menu.open{transform:none;opacity:1;pointer-events:auto}.mobile-menu a{padding:10px}.hero-title{font-size:19vw}.intro-copy,.robot-layout,.tiers-wrap,.contact-grid{grid-template-columns:1fr}.stats{justify-content:flex-start}.robot-stage{height:460px}.robot-layout{gap:0}.sponsor-funds{flex-direction:column}.fund-list{justify-content:flex-start}.event-strip{flex-direction:column}.section{padding:110px 6%}.contact-grid{gap:28px}.newsletter{flex-direction:column;align-items:flex-start}.section-head{align-items:start}.section-head p{max-width:210px}}
@media(max-width:620px){.nav{top:12px;height:58px}.navright .pill{padding:10px;font-size:10px}.nav .logo{font-size:13px}.hero{height:760px;min-height:680px}.hero-topline{top:110px}.hero-topline span:last-child{display:none}.hero-title{font-size:20vw}.hero-intro{bottom:105px;left:6%;font-size:12px}.hero-bottomline{bottom:30px}.scroll-ring{height:48px;width:48px;font-size:19px}.intro{min-height:720px}.intro .giant{font-size:13vw}.intro-copy{margin-top:75px;gap:55px}.stats{gap:30px}.stat strong{font-size:44px}.section-head{flex-direction:column}.section-head p{width:100%;max-width:370px}.person{width:230px;height:350px}.team-bottom{flex-direction:column;align-items:start}.robot-stage{height:350px}.robot-stage .orbit{transform:scale(.75) rotateX(65deg)}.orbit.two{transform:scale(.65) rotateX(75deg)}.hotspot{font-size:8px;padding:9px}.timeline-controls{margin-top:25px}.milestone{min-height:370px;width:82vw}.milestone-date{font-size:65px}.contact-head{font-size:15vw}.tier-detail{padding:26px;min-height:430px}.contact-form{padding:20px}.footer-brand{font-size:21vw}.foot-bottom{align-items:flex-start;gap:8px;flex-direction:column}.newsletter form{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Animated editorial journey timeline */
.journey-dashboard{margin-top:46px}.journey-label,.journey-nav{display:flex;justify-content:space-between;align-items:center;gap:15px;font:10px var(--mono);letter-spacing:.08em}.journey-label{color:#50545c}.journey-label span:last-child{font-size:14px;color:#151719}.journey-rail{height:84px;position:relative;margin:12px 0 8px;--timeline-progress:0}.journey-rail:before{content:"";position:absolute;top:39px;left:0;right:0;height:1px;background:#9aa0a8}.journey-rail-fill{position:absolute;top:38px;left:0;height:3px;width:0%;background:#12161a;transition:width .6s cubic-bezier(.16,1,.3,1);pointer-events:none}.journey-points{position:relative;height:100%;display:flex;justify-content:space-between;align-items:flex-start}.journey-point{position:relative;width:80px;max-width:24%;height:80px;border:0;background:none;color:#626871;text-align:left;cursor:pointer;padding:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;font:10px var(--mono)}.journey-point:before{content:"";position:absolute;top:33px;left:50%;width:12px;height:12px;background:#e4e6e8;border:2px solid #777f89;transform:translateX(-50%);border-radius:50%;transition:background .4s,transform .4s,border-color .4s,box-shadow .4s}.journey-point.active:before{background:#111419;border-color:#111419;transform:translateX(-50%) scale(1.55);box-shadow:0 0 0 7px #11141916}.journey-point.passed:before{background:#111419;border-color:#111419}.journey-point.active{color:#101216}.journey-point .point-date{font-size:11px;font-weight:600}.journey-point .point-label{font-size:9px;white-space:nowrap;opacity:.8}.journey-nav{color:#5b606a}.journey-nav .timeline-controls{margin:0}.timeline-window{cursor:grab;overscroll-behavior-x:contain}.timeline-window.dragging{cursor:grabbing;scroll-snap-type:none}.milestone{position:relative;overflow:hidden;transform:translateY(25px) scale(.975);opacity:.62;transition:transform .75s cubic-bezier(.2,.8,.2,1),opacity .6s,background .35s}.milestone.is-active{opacity:1;transform:translateY(0) scale(1);background:#bec5cf}.milestone:after{content:'↗';position:absolute;bottom:14px;right:24px;font-size:35px;opacity:.2;transition:transform .55s,opacity .55s}.milestone.is-active:after{transform:translate(6px,-6px);opacity:.6}.milestone-date{transition:transform .65s cubic-bezier(.16,1,.3,1)}.milestone.is-active .milestone-date{transform:translateX(8px)}.milestone .milestone-top{gap:12px}.journey .timeline-window:focus-visible{outline:2px solid #14181e;outline-offset:4px}
@media(max-width:620px){.journey-dashboard{margin-top:35px}.journey-label{font-size:9px}.journey-point{width:65px}.journey-point .point-label{font-size:8px}.journey-nav>span{font-size:9px;max-width:155px}.milestone{width:82vw}}
@media(prefers-reduced-motion:reduce){.milestone{opacity:1;transform:none}.milestone.is-active{transform:none}.milestone-date,.milestone.is-active .milestone-date{transform:none}.journey-rail-fill{transition:none}}

/* Gallery marquee + sponsor logo wall */
.full-bleed{margin-left:calc(-1 * max(6%,(100vw - 1450px)/2));margin-right:calc(-1 * max(6%,(100vw - 1450px)/2))}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee var(--speed,70s) linear infinite}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

.gallery{background:#0b0d11;color:#f5f5f4;padding-bottom:115px}
.gallery .section-head p{color:#a6a9b0}
.gallery-strip{margin-top:62px;--speed:85s}
.gallery-track{gap:22px;padding:0 11px}
.shot{position:relative;flex:0 0 auto;margin:0;width:290px;height:400px;border-radius:14px;overflow:hidden;background:linear-gradient(155deg,#272b33,#15181e 60%,#0f1115);border:1px solid #ffffff1f;box-shadow:0 18px 40px #00000055;transition:transform .45s cubic-bezier(.2,.7,.3,1),border-color .45s,box-shadow .45s}


.shot img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform .7s cubic-bezier(.2,.7,.3,1)}
.shot:hover{transform:translateY(-10px);border-color:#ffffff4d;box-shadow:0 26px 55px #00000077}
.shot:hover img{filter:none;transform:scale(1.05)}


.shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:48px 16px 15px;font:10px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:#dfe1e6;background:linear-gradient(transparent,#05060999 55%)}
.gallery-note{margin-top:30px;font:11px var(--mono);letter-spacing:.08em;color:#767b85;text-transform:uppercase}

.logo-strip{margin-top:4px;--speed:46s}
.logo-track{gap:70px;align-items:center}
.sponsor-logo{flex:0 0 auto;display:flex;align-items:center;gap:13px;height:72px;padding:0 6px;opacity:.6;filter:grayscale(1);transition:opacity .35s,filter .35s}
.sponsor-logo:hover{opacity:1;filter:none}
.sponsor-logo img{max-height:48px;width:auto;object-fit:contain}
.sponsor-logo .logo-ph{display:flex;align-items:center;gap:12px;padding:14px 22px;border:1px solid #ffffff2e;border-radius:10px;white-space:nowrap}
.sponsor-logo .logo-ph b{font-size:21px;font-weight:500;letter-spacing:-.02em}
.sponsor-logo .logo-ph i{font-style:normal;font:9px var(--mono);letter-spacing:.14em;color:#8d929b}
.sponsor-wall .wall-note{display:inline-block;margin-top:26px;font:11px var(--mono);letter-spacing:.08em;color:#878c96;text-transform:uppercase;border-bottom:1px solid #ffffff26;padding-bottom:3px;transition:color .3s,border-color .3s}
.sponsor-wall .wall-note:hover{color:#fff;border-color:#ffffff8c}
.footer .sponsor-wall{margin:0 0 48px;padding:24px 0 40px;border-top:0;border-bottom:1px solid #ffffff1f}
.footer .sponsor-wall .eyebrow{margin-bottom:20px}
@media(max-width:620px){.nav .logo>span:last-child{display:none}.navright .lang{display:none}.navright .pill{white-space:nowrap}.shot{width:215px;height:300px}.gallery-strip{--speed:55s}.logo-track{gap:36px}.sponsor-wall{margin-top:62px}}
@media(prefers-reduced-motion:reduce){.marquee{overflow-x:auto}.marquee-track{animation:none}}

/* Hero: type reads first, cube sits behind it as depth */


.hero-intro{bottom:118px;max-width:none}
.hero-intro strong{font-size:21px;margin-bottom:7px}
.hero-cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.hero-cta a{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:40px;font:11px var(--mono);letter-spacing:.09em;text-transform:uppercase;border:1px solid #ffffff33;transition:background .3s,color .3s,border-color .3s,transform .3s}
.hero-cta a:hover{transform:translateY(-2px)}
.hero-cta .solid{background:#f2f3f4;color:#111317;border-color:#f2f3f4}
.hero-cta .solid:hover{background:#fff;border-color:#fff}
.hero-cta .ghost{color:#dcdee3;backdrop-filter:blur(4px)}
.hero-cta .ghost:hover{background:#ffffff14;border-color:#ffffff66;color:#fff}

/* Team: card treatment matched to the gallery strip */
.team .section-head p{width:300px;font-size:15px}
.people-window{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.person{border-radius:14px;background:linear-gradient(155deg,#272b33,#15181e 60%,#0f1115);border-color:#ffffff1f;box-shadow:0 18px 40px #00000055;transition:transform .45s cubic-bezier(.2,.7,.3,1),border-color .45s,box-shadow .45s,background .45s}
.person:nth-child(2n){background:linear-gradient(155deg,#20242b,#121419 65%)}
.person:after{content:'';position:absolute;inset:0;opacity:.5;pointer-events:none;background-image:linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px);background-size:46px 46px}
.person:hover{transform:translateY(-10px);border-color:#ffffff4d;box-shadow:0 26px 55px #00000077;background:linear-gradient(150deg,#363c47,#191c22)}
.portrait{color:#ffffff2b}
@media(max-width:900px){.hero-bottomline{justify-content:center}.hero-bottomline span{display:none}}
@media(max-width:620px){.hero-intro{bottom:104px}.hero-cta{margin-top:16px;gap:9px}.hero-cta a{padding:11px 16px;font-size:10px}.team .section-head p{width:auto}}


/* =======================================================================
   v4 — dark theme, WebGL hero, rail nav, roster with faces
   ======================================================================= */
:root{--glow:#9fb4d4}

/* ---------- NAV: three zones, one divider ----------
   The old bar caged every item in its own identical hairline cell, so the
   wordmark, the six links, the ticker, the language toggle and the call to
   action all read at the same rank and nothing said where navigation began
   or ended. Grouping does that work now. Brand on the left, navigation
   pushed right so it sits with the actions, and a single hairline in the
   whole bar, in front of the actions cluster. The five page anchors collapse
   into two dropdowns, so the bar carries three top-level items instead of
   six, and the link that leaves the page wears a chip so it cannot be read
   as one more anchor. */
.nav{position:fixed;top:0;left:0;right:0;transform:none;width:100%;height:64px;border-radius:0;
 background:#07080ad9;backdrop-filter:blur(16px) saturate(140%);border:0;border-bottom:1px solid #ffffff14;
 display:flex;align-items:center;gap:0;padding:0 20px 0 24px;z-index:60}

.nav .logo{display:flex;align-items:center;gap:11px;height:100%;padding:0;border:0;
 font-size:14px;letter-spacing:-.02em;font-weight:500}
.nav .logo-mark{width:25px;height:25px;border:0;background:#f1f3f6;color:#0a0b0d;border-radius:6px;
 display:grid;place-items:center;font-size:16px;line-height:1}
/* the season line used to scroll through the link row, where it read as a
   sixth nav item that would not click. It is identity, not navigation, so it
   sits with the wordmark and holds still. */
.logo-tag{font:9px var(--mono);letter-spacing:.16em;color:#6f7682;border:1px solid #ffffff1c;
 border-radius:999px;padding:4px 9px;margin-left:4px}

.navlinks{display:flex;align-items:center;gap:3px;margin-left:auto;height:auto}
.navlinks>a,.navtrigger{position:relative;display:flex;align-items:center;gap:7px;height:auto;
 padding:9px 14px;border:1px solid transparent;border-radius:999px;background:none;
 font:10px var(--mono);letter-spacing:.14em;color:#8b919c;white-space:nowrap;
 transition:color .22s,background .22s,border-color .22s}
.navlinks>a:hover,.navtrigger:hover,.navgroup.open .navtrigger{color:#fff;background:#ffffff0f}
.navlinks>a.on,.navtrigger.on{color:#f3f5f8}
.navlinks>a.on:before,.navtrigger.on:before{content:'';position:absolute;left:50%;bottom:2px;
 width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--glow)}
.navtrigger:after{content:'';width:0;height:0;border:3.5px solid transparent;border-top-color:currentColor;
 margin-top:4px;opacity:.65;transition:transform .25s,opacity .25s}
.navgroup.open .navtrigger:after{transform:rotate(180deg);opacity:1}

/* the one link that leaves the page is a chip, so "goes somewhere else"
   never looks like "scrolls down" */
.navlinks>.nav-out{border-color:#ffffff24;color:#c6cbd3;margin-left:7px}
.navlinks>.nav-out:hover{border-color:#ffffff47;background:#ffffff12;color:#fff}
/* the arrow is CSS, not label text: switching to Vietnamese rewrites the
   label and would otherwise take the arrow with it */
.nav-fwd:after{content:'\2197';display:inline-block;margin-left:2px;transition:transform .25s}
.nav-fwd:hover:after{transform:translate(2px,-2px)}

.navgroup{position:relative;display:flex;align-items:center}
.navpanel{position:absolute;top:calc(100% + 13px);left:-6px;min-width:256px;padding:7px;
 background:#0d0f13f2;backdrop-filter:blur(20px) saturate(140%);
 border:1px solid #ffffff1f;border-radius:15px;box-shadow:0 26px 70px #000a;
 opacity:0;transform:translateY(-9px) scale(.98);transform-origin:top left;pointer-events:none;
 transition:opacity .2s,transform .24s cubic-bezier(.2,.75,.3,1)}
/* bridges the gap under the trigger so the pointer survives the trip down */
.navpanel:before{content:'';position:absolute;left:0;right:0;top:-15px;height:15px}
.navgroup.open .navpanel{opacity:1;transform:none;pointer-events:auto}
.navpanel a{display:block;padding:11px 13px;border-radius:10px;transition:background .18s}
.navpanel a:hover{background:#ffffff12}
.navpanel strong{display:block;font:10px var(--mono);font-weight:500;letter-spacing:.14em;color:#e9edf2}
.navpanel span{display:block;margin-top:5px;font-size:11.5px;line-height:1.35;color:#767d89;letter-spacing:0}
.navpanel a.on strong{color:var(--glow)}

.navright{display:flex;align-items:center;height:auto;gap:9px;margin-left:22px;padding-left:22px;
 border-left:1px solid #ffffff1c}
.nav .lang{height:auto;padding:9px 11px;border:0;border-radius:999px;background:none;
 color:#8b919c;font:10px var(--mono);letter-spacing:.12em;transition:color .22s,background .22s}
.nav .lang:hover{color:#fff;background:#ffffff0f}
.nav .navright .pill{height:auto;border-radius:999px;padding:11px 18px;display:flex;align-items:center;
 background:#f1f3f6;color:#0a0b0d;font:10px var(--mono);letter-spacing:.12em;border:0;
 transition:background .25s,transform .25s}
.nav .navright .pill:hover{background:var(--glow);transform:translateY(-1px)}
.nav .menu-toggle{height:auto;padding:5px 3px;border:0;background:none;color:#eef1f5;font-size:22px;line-height:1}
html{scroll-padding-top:78px}

/* the mobile sheet carries the same grouping, spelled out instead of folded */
.mobile-menu .mm-head{margin:12px 0 1px;font:9px var(--mono);letter-spacing:.18em;color:#646b77}
.mobile-menu .mm-head:first-child{margin-top:0}
.mobile-menu a{padding:10px 11px;border-radius:9px;font:11px var(--mono);letter-spacing:.12em;color:#d9dde3}
.mobile-menu a:hover{background:#ffffff0d}
.mobile-menu .mm-out{border:1px solid #ffffff24;margin-top:10px}

@media(max-width:900px){
 .navlinks{display:none}
 .menu-toggle{display:block}
 .navright{margin-left:auto;border-left:0;padding-left:0}
 .mobile-menu{top:64px;left:0;right:0;gap:3px;padding:16px;border-radius:0;border-left:0;border-right:0}
}
@media(max-width:700px){.logo-tag{display:none}}
@media(max-width:620px){.nav{height:58px;padding:0 12px 0 14px}.nav .navright .pill{padding:10px 13px;font-size:9px}.mobile-menu{top:58px}}

/* ---------- HERO: WebGL stage ---------- */
.hero{height:100svh;min-height:620px;border-radius:0;display:block;overflow:hidden;
 background:radial-gradient(ellipse 60% 55% at 50% 42%,#20242c 0%,#111318 48%,#07080a 88%)}
.hero:after{display:none}
#stage{position:absolute;inset:0;z-index:1}
#stage canvas{display:block;width:100%;height:100%;cursor:grab}
#stage canvas:active{cursor:grabbing}
.hero-vig{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 55% 50% at 50% 45%,transparent 40%,#07080acc 100%)}
.hero-grid{opacity:.1}
.hero-stage{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;
 padding:0 max(5%,calc((100vw - 1500px)/2));pointer-events:none}
.hero-copy{pointer-events:auto;max-width:640px}
.hero-title{font-size:clamp(44px,7vw,116px);line-height:.84;font-weight:500;letter-spacing:-.075em;margin:0;white-space:nowrap}
.hl{display:block;overflow:hidden;padding-bottom:.045em}
.hl>span{display:block;transform:translateY(105%);animation:hlup 1.05s cubic-bezier(.16,.84,.26,1) forwards}
.hl:nth-child(2)>span{animation-delay:.1s}
@keyframes hlup{to{transform:none}}
.hero-intro{position:static;max-width:430px;margin-top:34px;opacity:0;animation:fadeup .9s .5s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hero-cta{display:flex;gap:11px;margin-top:24px;flex-wrap:wrap}
.hero-cta a{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:2px;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase;border:1px solid #ffffff2e;transition:.3s}
.hero-cta .solid{background:#f1f3f6;color:#0a0b0d;border-color:#f1f3f6}
.hero-cta .solid:hover{background:var(--glow);border-color:var(--glow)}
.hero-cta .ghost{color:#d9dde4;backdrop-filter:blur(4px)}
.hero-cta .ghost:hover{background:#ffffff14;border-color:#ffffff70;color:#fff}

/* build read-out that tracks the 3D assembly */
.hud{position:absolute;right:max(5%,calc((100vw - 1500px)/2));bottom:124px;z-index:3;
 width:214px;pointer-events:none;opacity:0;animation:fadeup .9s 1.5s forwards}
.hud-t{font:9px var(--mono);letter-spacing:.2em;color:#6e7684;padding-bottom:9px;border-bottom:1px solid #ffffff1a}
.hud-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #ffffff0d;font:10px var(--mono);letter-spacing:.08em;color:#8e95a1;transition:color .3s}
.hud-row b{font-weight:400;color:#e9edf3}
.hud-row.lit{color:var(--glow)}
.hud-row.lit b{color:var(--glow)}


/* ---------- Sponsor logos on the landing view ---------- */
.hero-sponsors{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:20px 0;
 border-top:1px solid #ffffff14;background:#07080a99;backdrop-filter:blur(10px);
 opacity:0;animation:fadeup .9s 2.4s forwards}
.hero-sponsors .lead{position:absolute;left:28px;top:0;bottom:0;z-index:2;display:flex;align-items:center;
 font:11px var(--mono);letter-spacing:.18em;color:#6e7684;white-space:nowrap;pointer-events:none}
.hero-sponsors .marquee{--speed:40s;
 -webkit-mask-image:linear-gradient(90deg,transparent 150px,#000 250px,#000 94%,transparent);
 mask-image:linear-gradient(90deg,transparent 150px,#000 250px,#000 94%,transparent)}
.hero-sponsors .logo-track{gap:84px}
.hero-sponsors .sponsor-logo{height:48px;opacity:.5}
.hero-sponsors .sponsor-logo img{max-height:41px;max-width:156px}
.hero-sponsors .logo-ph{padding:11px 19px;border-color:#ffffff24}
.hero-sponsors .logo-ph b{font-size:19px}
.hero-sponsors .logo-ph i{font-size:10px}
@media(max-width:900px){.hero-sponsors .lead{display:none}.hero-sponsors{padding:16px 0}.hero-sponsors .logo-track{gap:50px}.hero-sponsors .marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}}

@media(max-width:1080px){.hud{display:none}.hero-stage{justify-content:flex-start;padding-top:17vh}
 .hero-vig{background:linear-gradient(180deg,#07080af2 4%,#07080ab3 30%,transparent 56%),radial-gradient(ellipse 60% 50% at 50% 60%,transparent 40%,#07080acc 100%)}}
@media(max-width:620px){
 .hero{min-height:560px}
 .hero-title{font-size:13vw;white-space:normal}
 .hero-intro{margin-top:24px}
 .hero-cta a{padding:12px 16px;font-size:9px}
 
}

/* ---------- BEHIND THE BUILD: prints taped to a dark wall ---------- */
.gallery{background:#0b0d11;color:#f5f5f4;padding-bottom:125px}
.gallery-strip{--speed:92s}
.gallery-track{gap:46px;padding:34px 24px 10px;align-items:flex-start}
.shot{background:#f3f1ec;border:0;border-radius:2px;padding:11px 11px 44px;box-shadow:0 20px 44px #00000073;
 width:auto;height:auto;overflow:visible;transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s}
.shot:before{content:'';position:absolute;top:-11px;right:auto;bottom:auto;left:50%;z-index:2;
 translate:-50% 0;width:74px;height:21px;background:#dfe4ec3d;border:1px solid #ffffff21;
 backdrop-filter:blur(2px);clip-path:polygon(4% 0,96% 0,100% 100%,0 100%)}
.shot .frame{position:relative;width:238px;height:300px;background:#d8d4cb;display:grid;place-items:center;overflow:hidden}
.shot:nth-child(3n) .frame{width:300px;height:234px}
.shot:nth-child(4n) .frame{width:212px;height:272px}
.shot:nth-child(5n) .frame{width:268px;height:268px}
.shot:nth-child(2n){rotate:1.5deg}
.shot:nth-child(3n){rotate:-2.1deg}
.shot:nth-child(5n){rotate:.9deg}
.shot:nth-child(7n){rotate:-1.2deg}
.shot img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35)}
.shot:hover{transform:translateY(-10px) rotate(0deg) scale(1.02);box-shadow:0 30px 60px #000000a6}
.shot:hover img{filter:none}
.shot-ph{position:absolute;inset:0;display:grid;place-items:center;font-size:50px;color:#14131021}
.shot-ph:after{content:'';position:absolute;inset:14px;border:1px dashed #14131026;border-radius:4px}
.shot figcaption{position:static;padding:13px 2px 0;background:none;color:#5e5a52;font:9px var(--mono);letter-spacing:.11em}
@media(max-width:620px){
 .shot .frame,.shot:nth-child(3n) .frame,.shot:nth-child(4n) .frame,.shot:nth-child(5n) .frame{width:196px;height:248px}
 .gallery-track{gap:30px}
}

@media(prefers-reduced-motion:reduce){
 .hl>span,.hero-intro,.hud,.hero-sponsors,
}

/* =======================================================================
   v5 — About reads as a swept manifesto, Journey stacks instead of sliding
   ======================================================================= */

/* ---- 01 ABOUT: words light up as the section passes ---- */
.intro{min-height:auto;padding-top:150px;padding-bottom:150px}
.manifesto{margin-top:84px;max-width:1120px;font-size:clamp(23px,2.9vw,46px);line-height:1.28;letter-spacing:-.035em;font-weight:500}
.manifesto w{display:inline-block;color:#c3c6cb;transition:color .45s ease}
.manifesto w.lit{color:#111317}
.manifesto w em,.manifesto w b{color:inherit}
.manifesto w em{font-style:normal}
.intro-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:92px;padding-top:34px;border-top:1px solid #0e10141f;flex-wrap:wrap}
.intro-foot p{max-width:340px;font-size:14px;line-height:1.65;color:#5b6067;margin:0}
.stats{display:flex;gap:46px}
.stat strong{display:block;font-size:clamp(40px,4.6vw,74px);font-weight:500;letter-spacing:-.09em;line-height:1;font-variant-numeric:tabular-nums}
.stat span{font:10px var(--mono);letter-spacing:.14em;color:#656a71;white-space:nowrap}
.intro-heading .giant{position:relative}
.wipe{display:block;overflow:hidden}
.wipe>span{display:block;transform:translateY(102%);transition:transform .95s cubic-bezier(.16,.84,.26,1)}
.reveal.visible .wipe>span,.wipe.in>span{transform:none}
.wipe:nth-child(2)>span{transition-delay:.08s}
.wipe:nth-child(3)>span{transition-delay:.16s}
@media(max-width:620px){.manifesto{margin-top:52px}.intro-foot{margin-top:56px}.stats{gap:26px}}

/* ---- 03 JOURNEY: a timeline you step through, not scroll through ---- */
.journey{padding-top:108px;padding-bottom:92px}
.journey-nav{margin-top:6px}
.mpanel{position:relative;margin-top:24px;display:grid;grid-template-columns:270px 1fr;gap:46px;
 min-height:286px;padding:34px 38px;border-radius:14px;background:#dfe2e6;
 border:1px solid #0e10141a;border-top:2px solid #17181b;box-shadow:0 -1px 0 #ffffffb3 inset,0 20px 40px #0e101418;
 overflow:hidden}
.mpanel:focus-visible{outline:2px solid #17181b;outline-offset:3px}
.mpanel>*{opacity:0;transform:translateY(14px);animation:mIn .55s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(var(--d,0)*.08s)}
@keyframes mIn{to{opacity:1;transform:none}}
.m-side{display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.m-idx{font:10px var(--mono);letter-spacing:.16em;color:#5b6067}
.m-date{font-size:clamp(44px,5.4vw,78px);font-weight:500;letter-spacing:-.085em;line-height:.9}
.m-body h3{font-size:clamp(25px,2.6vw,38px);letter-spacing:-.055em;line-height:1.1;font-weight:500;margin:0 0 14px;max-width:600px}
.m-body p{max-width:580px;color:#4d535b;font-size:15px;line-height:1.65;margin:0}
.m-tag{display:inline-flex;align-items:center;gap:8px;margin-top:24px;padding:7px 13px;border:1px solid #0e101433;border-radius:40px;font:9px var(--mono);letter-spacing:.14em}
.m-tag i{width:6px;height:6px;border-radius:50%;background:#8d939b;font-style:normal}
.mpanel[data-status="ACTIVE"] .m-tag{border-color:#17181b;background:#17181b;color:#eef0f2}
.mpanel[data-status="ACTIVE"] .m-tag i{background:#9fe8b4;box-shadow:0 0 0 0 #9fe8b4aa;animation:ping 2.2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 7px #9fe8b400}100%{box-shadow:0 0 0 0 #9fe8b400}}
.m-ghost{position:absolute;right:26px;bottom:-30px;font-size:150px;font-weight:500;letter-spacing:-.09em;
 color:#0e10140d;line-height:1;pointer-events:none;animation:none;opacity:1;transform:none}
@media(max-width:620px){
 .journey-point{width:54px}
 .journey-point .point-label{display:none}
 .journey-point .point-date{font-size:10px}
 .journey-nav>span{max-width:160px;font-size:9px;line-height:1.5}
 .journey-label{font-size:9px}
}
@media(max-width:760px){
 .mpanel{grid-template-columns:1fr;gap:14px;padding:24px 20px;min-height:0}
 .m-side{flex-direction:row;align-items:baseline;gap:14px}
 .m-body p{font-size:14px}
 .m-ghost{display:none}
}
@media(prefers-reduced-motion:reduce){.mpanel>*{animation:none;opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
 .wipe>span{transform:none}
 .manifesto w{color:#111317!important}
}

/* =======================================================================
   v6 — Sponsors: a cumulative funding ladder.
   Picking a tier charges every rung beneath it, because the tiers really
   are cumulative — Gold includes Silver's benefits.
   ======================================================================= */
.ladder{display:flex;flex-direction:column;gap:3px}
.rung{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;
 width:calc(44% + var(--i) * 14%);min-width:210px;padding:0 0 0 2px;border:0;background:none;text-align:left;
 transition:width .5s cubic-bezier(.2,.7,.3,1)}
.rung-bar{position:relative;display:block;grid-column:1/-1;height:46px;border:1px solid #ffffff26;
 border-radius:3px;overflow:hidden;background:#ffffff08;transition:border-color .35s}
.rung-bar i{position:absolute;inset:0;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#f4511e,#ff7a45);
 transition:transform .6s cubic-bezier(.2,.7,.3,1);transition-delay:calc(var(--d,0) * .07s)}
.rung.on .rung-bar i{transform:none}
.rung.sel .rung-bar{border-color:#ffffff6b}
.rung-label{position:absolute;left:15px;top:0;height:46px;display:flex;align-items:center;gap:12px;z-index:2;
 font-size:16px;letter-spacing:-.02em;color:#9aa0aa;transition:color .35s}
.rung.on .rung-label{color:#120d0a}
.rung-label b{font-weight:500}
.rung-label em{font-style:normal;font:9px var(--mono);letter-spacing:.14em;opacity:.72}
.rung-amt{position:absolute;right:14px;top:0;height:46px;display:flex;align-items:center;z-index:2;
 font:10px var(--mono);letter-spacing:.1em;color:#8b919c;transition:color .35s}
.rung.on .rung-amt{color:#1a1310}
.rung:hover .rung-bar{border-color:#ffffff80}
.rung:focus-visible{outline:2px solid #f4511e;outline-offset:3px}
.ladder-foot{margin-top:26px;font:10px var(--mono);letter-spacing:.12em;color:#737a86}

.tier-detail{background:#101216;color:#eef0f3;border:1px solid #ffffff1f;border-radius:4px;min-height:430px;padding:34px 34px 30px;position:relative;overflow:hidden}
.tier-detail:after{content:'';position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;
 background:radial-gradient(circle,#f4511e2e,transparent 68%);pointer-events:none}
.tier-detail .tier-count{font:10px var(--mono);letter-spacing:.14em;color:#848b96}
.tier-detail h3{font-size:clamp(42px,5vw,70px);font-weight:500;letter-spacing:-.08em;margin:26px 0 0;line-height:.95}
.tier-detail .amount{margin-top:12px;font:11px var(--mono);letter-spacing:.1em;color:#f4511e}
.tier-detail ul{margin:34px 0 0;padding:0;list-style:none}
.tier-detail li{padding:12px 0;border-top:1px solid #ffffff1a;font-size:14px;display:flex;gap:12px;color:#c8ccd3;
 opacity:0;transform:translateY(8px);animation:tierIn .5s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(var(--d) * .07s + .1s)}
@keyframes tierIn{to{opacity:1;transform:none}}
.tier-detail li:before{content:'';flex:none;width:6px;height:6px;margin-top:6px;border-radius:50%;background:#f4511e}
.tier-detail li.inherited{color:#8f959f}
.tier-detail li.inherited:before{background:#4b515b}
.tier-cta{display:inline-flex;align-items:center;gap:9px;margin-top:28px;padding:14px 22px;border-radius:2px;
 background:#f4511e;color:#fff;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase;transition:background .3s,transform .3s}
.tier-cta:hover{background:#ff7a45;transform:translateY(-2px)}
@media(max-width:1000px){
  .rung{width:calc(58% + var(--i) * 10%)}
}
@media(max-width:620px){
  .rung{width:100%;min-width:0}
 .rung-label{font-size:14px;left:12px}
 .rung-label em{display:none}
 .tier-detail{padding:24px}
}
@media(prefers-reduced-motion:reduce){
 .rung-bar i{transition:none}
 .tier-detail li{animation:none;opacity:1;transform:none}
}

/* =======================================================================
   v7 — THE MINDS: a bento of machined ID plates.
   Nobody has a portrait yet, so each member gets a generated plate drawn
   from their name: gear rings, bolt circles, traces, hatching. Every cell
   is different, nothing reads as an empty placeholder, and a real photo
   drops straight in over the top when it exists.
   ======================================================================= */
.minds{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:44px}
.mind{position:relative;overflow:hidden;border-radius:12px;border:1px solid #ffffff1c;
 background:#101317;display:block;padding:0;text-align:left;color:inherit;aspect-ratio:3/4;
 opacity:0;transform:translateY(16px);
 transition:transform .5s cubic-bezier(.2,.7,.3,1),border-color .4s,box-shadow .4s}
.minds.in .mind{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1),border-color .4s,box-shadow .4s;transition-delay:calc(var(--i) * .045s),calc(var(--i) * .045s),0s,0s}
.minds.in .mind:hover{transform:translateY(-6px);border-color:#ffffff4a;box-shadow:0 22px 44px #00000073;z-index:2;transition-delay:0s}
.mind-art{position:absolute;inset:0;width:100%;height:100%;opacity:.95;transition:transform 1.1s cubic-bezier(.2,.7,.3,1),opacity .4s}
.mind:hover .mind-art{transform:scale(1.07) rotate(1.2deg)}
.mind-art .spin{transform-origin:100px 100px;animation:mspin 34s linear infinite}
.mind:hover .mind-art .spin{animation-duration:7s}
@keyframes mspin{to{transform:rotate(360deg)}}
.mind-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform .9s cubic-bezier(.2,.7,.3,1)}
.mind:hover .mind-photo{filter:none;transform:scale(1.05)}
.mind-scrim{position:absolute;inset:0;background:linear-gradient(185deg,#0a0c0f00 38%,#0a0c0fe0 86%)}
.mind-n{position:absolute;top:13px;left:14px;z-index:2;font:9px var(--mono);letter-spacing:.16em;color:#ffffff6b}
.mind-meta{position:absolute;left:14px;right:14px;bottom:12px;z-index:2}
.mind-name{font-size:18px;font-weight:500;letter-spacing:-.035em;line-height:1.15}
.mind-role{display:block;margin-top:5px;font:9px var(--mono);letter-spacing:.15em;text-transform:uppercase;color:#8e95a1;transition:color .35s}
.mind:hover .mind-role{color:#f4511e}
.mind-rule{position:absolute;left:14px;right:14px;bottom:0;height:2px;background:#f4511e;transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.mind:hover .mind-rule{transform:none}
.minds-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
 margin-top:22px;font:10px var(--mono);letter-spacing:.12em;color:#767d88}
/* ten equal cells: 5x2, then 4, 3, 2 columns. No cell is ever larger than another. */
@media(max-width:1180px){.minds{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.minds{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.minds{grid-template-columns:repeat(2,1fr);gap:9px}.mind-name{font-size:15px}}
@media(prefers-reduced-motion:reduce){.mind{opacity:1;transform:none}.minds.in .mind{transition-delay:0s}
.mind-art .spin{animation:none}.mind:hover .mind-art{transform:none}}

/* ---- merged build section: prints live on the light timeline page ---- */
.shots-band{display:flex;justify-content:space-between;align-items:baseline;gap:28px;flex-wrap:wrap;
 margin-top:84px;padding-top:30px;border-top:1px solid #10121426}
.shots-band h3{font-size:clamp(28px,3.4vw,52px);font-weight:500;letter-spacing:-.07em;margin:0}
.shots-band p{margin:0;font-size:14px;color:#575d66;max-width:330px}
.journey .gallery-strip{margin-top:18px}
.journey .shot{background:#fbfaf7;box-shadow:0 14px 32px #0e101426;border:1px solid #1012140f}
.journey .shot:before{background:#bdb7a8cc;border-color:#00000014}
.journey .shot .frame{background:#d7d2c6}
.journey .shot figcaption{color:#5e5a52}
.journey .shot:hover{box-shadow:0 26px 50px #0e101440}

/* ---- partners: one tighter block ---- */
.fund-row{display:flex;align-items:baseline;gap:26px;flex-wrap:wrap;margin-top:56px;padding-top:30px;border-top:1px solid #ffffff26}
.fund-lab{font:10px var(--mono);letter-spacing:.16em;color:#878d98;white-space:nowrap}
.fund-list{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-start;max-width:none}
.fund-list span{border:1px solid #ffffff2e;border-radius:40px;padding:9px 15px;font:10px var(--mono);text-transform:uppercase;color:#c3c7cf}

/* ---- partner modal ---- */
.modal{position:fixed;inset:0;z-index:90;display:none}
.modal.open{display:block}
.modal-scrim{position:absolute;inset:0;background:#06070abf;backdrop-filter:blur(5px);animation:mfade .3s ease}
@keyframes mfade{from{opacity:0}to{opacity:1}}
.modal-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1020px,92vw);
 max-height:88vh;overflow:auto;background:#cfd4da;color:#141516;border-radius:6px;
 box-shadow:0 40px 90px #000000a6;padding:40px;animation:mrise .42s cubic-bezier(.2,.7,.3,1)}
@keyframes mrise{from{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}
.modal-x{position:absolute;top:14px;right:16px;width:38px;height:38px;border:1px solid #10121433;border-radius:50%;
 background:none;color:#141516;font-size:21px;line-height:1;transition:background .25s,transform .25s}
.modal-x:hover{background:#10121414;transform:rotate(90deg)}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:start}
.modal-side .eyebrow{color:#4b5159}
.modal-head{font-size:clamp(38px,5vw,66px);font-weight:500;line-height:.9;letter-spacing:-.08em;margin:16px 0 26px}
.modal-head span{color:#818894}
.modal .contact-info{max-width:none}
body.locked{overflow:hidden}
@media(max-width:820px){.modal-card{padding:26px 20px;width:94vw;max-height:92vh}.modal-grid{grid-template-columns:1fr;gap:24px}.modal-head{margin-bottom:16px}}

/* newsletter now lives in the footer */
.footer .newsletter{margin-top:0;border-top:1px solid #ffffff1f;padding-top:26px;color:#eef0f3}
.footer .newsletter form{border-bottom-color:#ffffff4d}
.footer .newsletter input{color:#eef0f3}
.footer .newsletter input::placeholder{color:#7d838d}
.footer .newsletter button{color:#eef0f3}
.footer .newsletter p{color:#8b919c!important}
@media(max-width:620px){.shots-band{margin-top:52px}.fund-row{gap:14px}}




/* ---- logo plates: dark marks stay legible on the dark bar ---- */
.logo-plate{display:grid;place-items:center;width:100%;box-sizing:border-box;min-height:132px;
 padding:24px;border-radius:14px;background:#f1f3f6;border:1px solid #ffffff1f;
 transition:transform .4s cubic-bezier(.2,.7,.3,1),box-shadow .4s}
.logo-plate img{max-width:100%;max-height:84px;width:auto;height:auto;object-fit:contain}
.sponsor-logo:hover .logo-plate{transform:translateY(-4px);box-shadow:0 16px 34px #00000059}
.logo-plate.is-slot{background:#ffffff0a;border:1px dashed #ffffff33;gap:7px;min-height:132px}
.logo-plate.is-slot b{font-size:clamp(18px,1.8vw,25px);font-weight:500;letter-spacing:-.035em;color:#e7eaef}
.logo-plate.is-slot i{font-style:normal;font:9px var(--mono);letter-spacing:.18em;color:#f4511e}

/* ---- tiers as a selectable carousel ---- */
.tier-rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
 padding:26px 2px 30px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tier-rail::-webkit-scrollbar{display:none}
.tcard{position:relative;flex:0 0 clamp(248px,24vw,300px);scroll-snap-align:center;
 display:flex;flex-direction:column;gap:16px;padding:28px 24px 24px;border-radius:20px;
 background:#15181d;border:1px solid #ffffff1a;color:#cfd4dc;text-align:left;cursor:pointer;
 transition:transform .45s cubic-bezier(.2,.7,.3,1),background .4s,border-color .4s,box-shadow .4s,color .4s}
.tcard:hover{border-color:#ffffff40;transform:translateY(-4px)}
.tcard.sel{background:#f1f3f6;color:#15181d;border-color:#f1f3f6;transform:translateY(-14px) scale(1.04);
 box-shadow:0 30px 60px #00000080;z-index:2}
.tcard:focus-visible{outline:2px solid #f4511e;outline-offset:3px}
.tcard-n{font:9px var(--mono);letter-spacing:.18em;color:#767d88}
.tcard.sel .tcard-n{color:#5d6470}
.tcard h3{margin:0;font-size:clamp(26px,2.6vw,34px);font-weight:500;letter-spacing:-.05em;line-height:1}
.tcard-note{margin:-8px 0 0;font-size:13px;line-height:1.5;color:#878e99}
.tcard.sel .tcard-note{color:#5d6470}
.tcard ul{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:11px;flex:1}
.tcard li{display:flex;gap:10px;font-size:13px;line-height:1.45}
.tcard li svg{flex:none;width:15px;height:15px;margin-top:1px}
.tcard li.new{font-weight:500}
.tcard li.new svg circle{fill:#f4511e}
.tcard li svg circle{fill:#39404b;transition:fill .4s}
.tcard.sel li svg circle{fill:#c6ccd4}
.tcard.sel li.new svg circle{fill:#f4511e}
.tcard li svg path{stroke:#15181d}
.tcard li:not(.new) svg path{stroke:#cfd4dc}
.tcard.sel li:not(.new) svg path{stroke:#15181d}
.tcard-cta{margin-top:4px;display:block;width:100%;padding:14px;border-radius:40px;border:1px solid #ffffff2e;
 background:none;color:inherit;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase;
 transition:background .3s,color .3s,border-color .3s}
.tcard.sel .tcard-cta{background:#15181d;color:#f1f3f6;border-color:#15181d}
.tcard.sel .tcard-cta:hover{background:#f4511e;border-color:#f4511e}
.tcard:not(.sel) .tcard-cta:hover{background:#ffffff14;border-color:#ffffff70}
.tier-nav2{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:4px}
.tier-dots{display:flex;gap:7px}
.tier-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:#ffffff2e;transition:background .3s,transform .3s}
.tier-dots button.on{background:#f4511e;transform:scale(1.5)}
@media(max-width:620px){.tcard{flex:0 0 78vw;padding:24px 20px 20px}.tier-rail{gap:13px}}
@media(prefers-reduced-motion:reduce){.tcard,.logo-plate{transition:none}.tcard.sel{transform:none}}

/* the hero bar shares the renderer but stays a quiet ticker */
.hero-sponsors .sponsor-logo,.footer .sponsor-logo{height:48px;opacity:1;filter:none}
.hero-sponsors .logo-plate,.footer .logo-plate{width:auto;min-height:0;padding:0;border-radius:0;background:none;border:0}
.hero-sponsors .sponsor-logo:hover .logo-plate,.footer .sponsor-logo:hover .logo-plate{transform:translateY(-3px);box-shadow:none}
.hero-sponsors .logo-plate img,.footer .logo-plate img{max-height:41px;max-width:156px}
.footer .logo-track{gap:84px}
.hero-sponsors .logo-plate.is-slot{border-style:solid;flex-direction:row;display:flex;align-items:center;gap:10px}
.hero-sponsors .logo-plate.is-slot b{font-size:14px;color:#dfe3e9}
.hero-sponsors .logo-plate.is-slot i{font-size:8px}

/* Sponsors showcase: one feature card above a centred logo row.
   Hovering, focusing or clicking a logo swaps the card to that sponsor. */
.backers{background:#08090b;color:#f5f5f4;padding-bottom:130px}
.backers .section-head p{color:#a6a9b0}
.backer-card{position:relative;display:grid;grid-template-columns:minmax(150px,.8fr) 1.3fr;align-items:center;gap:34px;
 width:60%;margin:80px auto 0;min-height:168px;padding:26px 32px;border:1px solid #ffffff1f;border-radius:12px;background:#101216;overflow:hidden}
.backer-card:after{content:'';position:absolute;right:-50px;top:-50px;width:200px;height:200px;border-radius:50%;
 background:radial-gradient(circle,#f4511e24,transparent 68%);pointer-events:none}
.backer-card>*{opacity:0;transform:translateY(12px);animation:mIn .55s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(var(--d,0)*.08s)}
.backer-mark{display:grid;place-items:center;min-height:90px}
.backer-mark img{max-height:84px;max-width:min(100%,180px);width:auto;object-fit:contain;transition:transform .35s cubic-bezier(.2,.7,.3,1)}
a.backer-mark:hover img{transform:scale(1.05)}
.backer-mark .ph{font-size:clamp(24px,2.4vw,32px);font-weight:500;letter-spacing:-.06em;line-height:1;text-align:center;color:#eef0f3}
.backer-count{font:9px var(--mono);letter-spacing:.14em;color:#848b96}
.backer-card h3{font-size:clamp(20px,1.9vw,26px);font-weight:500;letter-spacing:-.05em;line-height:1.1;margin:10px 0 0}
.backer-card p{max-width:400px;margin:10px 0 0;font-size:13px;line-height:1.6;color:#b9bec6}
.backer-link{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding-bottom:3px;border-bottom:1px solid #f4511e55;
 font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#f4511e;transition:color .3s,border-color .3s}
.backer-link:hover{color:#ff7a45;border-color:#ff7a45}
.backer-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 64px;margin-top:56px}
.backer-break{flex-basis:100%;height:0}
.backer-logo{position:relative;display:grid;place-items:center;height:120px;padding:0 6px;border:0;background:none;color:#eef0f3;
 transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.backer-logo:hover{transform:translateY(-3px)}
.backer-logo:after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:2px;background:#f4511e;transform:scaleX(0);
 transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.backer-logo.on:after{transform:none}
.backer-logo:focus-visible{outline:2px solid #f4511e;outline-offset:6px}
.backer-logo img{max-height:102px;max-width:270px;width:auto;object-fit:contain}
.backer-logo b{font-size:24px;font-weight:500;letter-spacing:-.04em;white-space:nowrap}
@media(max-width:1200px){.backer-card{width:80%}}
@media(max-width:900px){
 .backer-card{width:100%;grid-template-columns:1fr;gap:18px;padding:26px 24px}
 .backer-mark{min-height:70px;justify-items:start}
 .backer-mark .ph{text-align:left}
}
@media(max-width:620px){
 .backer-card{margin-top:56px}
 .backer-row{gap:12px 36px}
 .backer-logo{height:90px}
 .backer-logo img{max-height:72px;max-width:min(190px,80vw)}
 .backer-logo b{font-size:19px}
}
@media(prefers-reduced-motion:reduce){.backer-card>*{animation:none;opacity:1;transform:none}}

/* packet footnotes and the two offers that are not tiers */
.tier-notes{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.tier-notes li{position:relative;padding-left:16px;font-size:12px;line-height:1.55;color:#868d98}
.tier-notes li:before{content:'*';position:absolute;left:0;top:1px;color:#f4511e}
.extras{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px;padding-top:34px;border-top:1px solid #ffffff1f}
.extra{padding:22px 24px;border:1px solid #ffffff1f;border-radius:14px;background:#ffffff08}
.extra h4{margin:0 0 9px;font-size:19px;font-weight:500;letter-spacing:-.035em}
.extra p{margin:0 0 14px;font-size:13px;line-height:1.6;color:#a9afb9}
.extra a{display:inline-flex;align-items:center;gap:8px;font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;
 color:#f4511e;border-bottom:1px solid #f4511e55;padding-bottom:3px;transition:color .3s,border-color .3s}
.extra a:hover{color:#ff7a45;border-color:#ff7a45}
@media(max-width:760px){.extras{grid-template-columns:1fr}}

/* ---- language: EN / VI ---- */
img[src$="lotushacks.png"]{transform:scale(1.15)}
.navlinks a,.navtrigger,.nav .lang,.nav .navright .pill{white-space:nowrap}
.nav .lang span{transition:color .25s}
.nav .lang span.on{color:#fff}
.mobile-menu .mm-lang{margin-top:4px;padding:12px 10px;border:1px solid #ffffff2e;border-radius:10px;background:none;color:#eef0f3;
 font:11px var(--mono);letter-spacing:.14em;text-align:left}
/* DM Mono has no Vietnamese glyphs, so the Vietnamese page uses a mono that does */
html[lang="vi"]{--mono:'IBM Plex Mono','DM Mono',monospace}
/* stacked tone marks sit above the caps; the tight English leading clips them */
html[lang="vi"] .giant,html[lang="vi"] .modal-head,html[lang="vi"] .contact-head{line-height:1.12}
html[lang="vi"] .wipe>span{padding-top:.04em}

/* =======================================================================
   Compact timeline. The stepper needed a rail, prev/next and a swapping
   panel to show four milestones — three affordances for four items, and
   1881px of page. All four are visible at once now, so there is nothing
   to operate and nothing to work out.
   ======================================================================= */
.tline{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:0}
.tstep{position:relative;padding:0 26px 0 0}
.tstep:before{content:'';position:absolute;left:0;right:0;top:7px;height:2px;background:#10121426}
.tstep.done:before,.tstep.now:before{background:#17181b}
.tstep:last-child:before{right:26px}
.tstep i{position:absolute;left:0;top:0;width:16px;height:16px;border-radius:50%;background:#e4e6e8;
 border:2px solid #9aa0a8;font-style:normal;transition:transform .4s cubic-bezier(.2,.7,.3,1),background .4s,border-color .4s}
.tstep.done i{background:#17181b;border-color:#17181b}
.tstep.now i{background:#17181b;border-color:#17181b;transform:scale(1.3)}
.tstep.now i:after{content:'';position:absolute;inset:-7px;border-radius:50%;border:1px solid #17181b40;animation:tping 2.4s ease-out infinite}
@keyframes tping{0%{transform:scale(.7);opacity:1}100%{transform:scale(1.5);opacity:0}}
.tstep-date{display:block;margin-top:30px;font-size:clamp(26px,3vw,40px);font-weight:500;letter-spacing:-.075em;line-height:1}
.tstep.todo .tstep-date{color:#9ba1a9}
.tstep-lab{display:block;margin-top:9px;font:9px var(--mono);letter-spacing:.16em;color:#6a7079}
.tstep.now .tstep-lab{color:#17181b}
.tstep h3{margin:12px 0 0;font-size:17px;font-weight:500;letter-spacing:-.035em;line-height:1.25;max-width:210px}
.tstep p{margin:7px 0 0;font-size:13px;line-height:1.55;color:#5b616a;max-width:220px}
.tstep-tag{display:inline-flex;align-items:center;gap:7px;margin-top:13px;padding:5px 11px;border-radius:40px;
 border:1px solid #10121433;font:8px var(--mono);letter-spacing:.14em}
.tstep.now .tstep-tag{background:#17181b;border-color:#17181b;color:#eef0f2}
.tstep.now .tstep-tag b{width:5px;height:5px;border-radius:50%;background:#9fe8b4;animation:ping 2.2s infinite}
.tstep-tag b{width:5px;height:5px;border-radius:50%;background:#9aa0a8}
@media(max-width:1100px){
 .tline{grid-template-columns:1fr 1fr;gap:36px 0}
 .tstep:nth-child(2):before{right:26px}
}
@media(max-width:560px){
 .tline{grid-template-columns:1fr;gap:0}
 .tstep{padding:0 0 30px 26px}
 .tstep:before{left:7px;right:auto;top:16px;bottom:-6px;width:2px;height:auto}
 .tstep:last-child:before{display:none}
 .tstep-date{margin-top:0;font-size:28px}
 .tstep h3,.tstep p{max-width:none}
}
@media(prefers-reduced-motion:reduce){.tstep i,.tstep.now i:after{animation:none;transition:none}}

/* =======================================================================
   BUILD PAGE — two galleries, nothing else. Masonry columns so phone
   photos keep their own shape instead of being cropped to a grid.
   ======================================================================= */
.buildpage{background:#07080a}
.bhero{position:relative;display:grid;align-items:end;overflow:hidden;min-height:58svh;
 padding:160px max(5%,calc((100vw - 1500px)/2)) 70px;
 background:radial-gradient(ellipse 70% 70% at 25% 40%,#1c2027 0%,#0f1217 50%,#07080a 88%)}
.bhero-grid{position:absolute;inset:0;opacity:.12;pointer-events:none;
 background-image:linear-gradient(#ffffff1a 1px,transparent 1px),linear-gradient(90deg,#ffffff1a 1px,transparent 1px);
 background-size:74px 74px;mask-image:radial-gradient(ellipse 60% 60% at 28% 50%,#000,transparent 72%)}
.bhero-in{position:relative;z-index:2;max-width:760px}
.bhero-title{margin:20px 0 0;font-size:clamp(44px,7.5vw,104px);line-height:.88;font-weight:500;letter-spacing:-.075em}
.bhero-lead{margin:24px 0 0;max-width:470px;font-size:15px;line-height:1.6;color:#aeb4be}

.gal{padding:84px max(5%,calc((100vw - 1500px)/2))}
.gal.alt{background:#090a0d}
.gal-head{display:flex;justify-content:space-between;align-items:baseline;gap:30px;flex-wrap:wrap;
 margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid #ffffff14}
.gal-head h2{margin:0;font-size:clamp(26px,3.2vw,40px);font-weight:500;letter-spacing:-.05em}
.gal-head p{margin:0;max-width:380px;font-size:13px;line-height:1.6;color:#8e95a1}

.masonry{columns:3 240px;column-gap:14px}
.shotcell{break-inside:avoid;margin:0 0 14px;border-radius:8px;overflow:hidden;position:relative;
 background:#13161b;display:block;width:100%;padding:0;border:0;color:inherit;text-align:left}
.shotcell img{width:100%;height:auto;display:block}
.shotcell figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;
 font:9px var(--mono);letter-spacing:.1em;color:#eef1f5;
 background:linear-gradient(transparent,#05070ad9);opacity:0;transition:opacity .3s}
.shotcell:hover figcaption,.shotcell:focus-visible figcaption{opacity:1}
.shotcell.filled{cursor:zoom-in}
.shotcell.filled:hover img{transform:scale(1.03)}
.shotcell img{transition:transform .6s cubic-bezier(.2,.7,.3,1)}
/* empty slot: keeps a photo-ish shape and names the file it wants */
.shotcell.empty{aspect-ratio:4/3;display:grid;place-items:center;align-content:center;gap:6px;
 background:#ffffff06;border:1px dashed #ffffff26;cursor:default}
.shotcell.empty:nth-child(3n+2){aspect-ratio:3/4}
.shotcell.empty i{font-style:normal;font-size:18px;line-height:1;color:#f4511e}
.shotcell.empty em{font-style:normal;font:8px var(--mono);letter-spacing:.16em;color:#8e95a1}
.shotcell.empty code{font:8px var(--mono);color:#5d6470;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gal-cta{margin-top:34px}
.gal-cta a{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:2px;
 border:1px solid #ffffff2e;color:#d9dde4;font:10px var(--mono);letter-spacing:.13em;text-transform:uppercase;transition:.3s}
.gal-cta a:hover{background:#ffffff14;border-color:#ffffff70;color:#fff}

.lightbox{position:fixed;inset:0;z-index:95;display:none;place-items:center;padding:5vh 5vw;
 background:#05070af2;backdrop-filter:blur(6px)}
.lightbox.open{display:grid}
.lightbox figure{margin:0;max-width:100%;max-height:90svh;display:flex;flex-direction:column;gap:12px}
.lightbox img{max-width:100%;max-height:82svh;object-fit:contain;border-radius:6px}
.lightbox figcaption{font:10px var(--mono);letter-spacing:.12em;color:#aeb4be;text-align:center}
.lb-x{position:absolute;top:20px;right:24px;width:40px;height:40px;border-radius:50%;
 border:1px solid #ffffff33;background:none;color:#eef1f5;font-size:22px;line-height:1;transition:.25s}
.lb-x:hover{background:#ffffff14;transform:rotate(90deg)}

@media(max-width:900px){.masonry{columns:2 160px}.gal{padding:60px max(5%,calc((100vw - 1500px)/2))}}
@media(max-width:560px){.masonry{columns:2 130px;column-gap:9px}.shotcell{margin-bottom:9px}}
@media(prefers-reduced-motion:reduce){.shotcell img,.lb-x{transition:none}}

/* FIRST mark reads as a second brand beside the wordmark, so it gets the
   one kind of divider the bar still uses: a hairline with air around it. */
.first-mark{display:flex;align-items:center;height:26px;padding-left:15px;margin-left:15px;
 border-left:1px solid #ffffff1c;opacity:.8;transition:opacity .25s}
.first-mark:hover{opacity:1}
.first-mark img{max-height:22px;width:auto;display:block}
@media(max-width:700px){.first-mark{display:none}}
