@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght,SOFT,WONK@9..144,500,50,1;9..144,600,50,1;9..144,700,50,1&display=swap');
:root{--night:#142139;--paper:#f5eedb;--orange:#e99457;--gold:#e4b64f;--red:#d9503d;--display:'Fraunces',Georgia,serif;--body:'DM Sans',Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--night);color:var(--paper);font-family:var(--body);font-size:16px;line-height:1.6}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:7px}button{cursor:pointer}::selection{background:var(--red);color:var(--paper)}.skip{position:fixed;top:-80px;left:20px;padding:12px;background:var(--paper);color:var(--night);z-index:100}.skip:focus{top:16px}.header{height:126px;position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 5.5vw}.brand{display:flex;gap:12px;align-items:center;font-family:var(--display);font-weight:700;font-size:27px;line-height:.88;letter-spacing:-1.5px}.brand-bottom{display:block;letter-spacing:1.2px;font-size:26px;margin-top:6px}.brand-symbol{font-size:43px;color:var(--gold);font-weight:400}.menu-toggle{border:1px solid #f5eedb40;border-radius:50px;background:#14213940;color:var(--paper);padding:12px 22px;display:flex;align-items:center;gap:24px;font-size:14px}.menu-toggle:hover{background:#f5eedb15}.menu-icon{display:grid;gap:5px}.menu-icon i{width:17px;height:1px;background:currentColor}.nav-wrap{position:relative}nav{position:absolute;right:0;top:60px;width:240px;padding:12px;border:1px solid #ffffff26;border-radius:20px;background:var(--night);box-shadow:0 14px 40px #07112360}nav a{display:block;padding:12px 18px;border-radius:10px}nav a:hover{background:#f5eedb15}.hero{height:100svh;min-height:730px;max-height:1150px;position:relative;isolation:isolate;overflow:hidden}.scene{position:absolute;inset:0;z-index:-1;overflow:hidden;background:#142139}.landscape{position:absolute;width:100%;height:115%;top:-8%;object-fit:cover;object-position:50% 52%;will-change:transform}.scene:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#14213928 0%,transparent 75%,#14213925 100%);pointer-events:none}.stars{position:absolute;inset:0}.stars span{position:absolute;font-size:24px;color:#eee8d3a3}.stars .north-star{color:var(--paper);font-size:32px;filter:drop-shadow(0 0 13px #e5bf7160)}.hero-copy{position:absolute;top:34%;left:10%;max-width:76%;text-shadow:0 2px 25px #14213925}.hero h1{font-family:var(--display);font-size:clamp(48px,5.6vw,86px);font-weight:500;line-height:1.12;letter-spacing:-2.5px;margin:0}.hero-copy p{font-family:var(--display);font-size:clamp(20px,2.05vw,30px);margin:24px 0 0;font-weight:400}.kite-layer{position:absolute;top:24%;right:7%;width:24%;height:65%;will-change:transform}.kite{width:100%;height:100%;object-fit:contain;animation:float 9s ease-in-out infinite;transform-origin:50% 30%}.foreground{position:absolute;bottom:-12%;width:110%;height:45%;left:-5%;object-fit:fill;will-change:transform}.scroll-cue{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:8px;font-size:12px;letter-spacing:.06em;white-space:nowrap}.scroll-cue>span:last-child{font-size:25px}.games{background:var(--orange)}.boards{background:var(--gold)}.models{background:var(--paper)}footer{max-width:1440px;margin:auto;padding:35px 5.5vw;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #f5eedb24;font-size:12px;color:#f5eedb99}footer a{font-weight:700;letter-spacing:.09em;color:var(--paper)}footer a span{margin-left:12px;color:var(--gold)}.detail-shell{max-width:1400px;margin:auto;padding:165px 5.5vw 100px;min-height:85svh}.back{font-size:14px;display:inline-block;margin-bottom:30px}.back:hover{text-decoration:underline;text-underline-offset:5px}.category-surface,.game-detail{border-radius:32px;color:var(--night);padding:48px 5%;min-height:560px}.detail-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:.12em}.detail-label>span:last-child{font-size:35px}.category-surface h1{font-family:var(--display);font-size:clamp(44px,7vw,88px);line-height:1.1;letter-spacing:-3px;margin:30px 0 16px;outline:none}.category-lead{font-size:20px;margin:0 0 55px}.project{border-top:1px solid #14213955;display:flex;align-items:center;justify-content:space-between;padding:35px 0 5px;gap:20px}.project h2{font-family:var(--display);font-size:clamp(26px,4.5vw,60px);line-height:1.2;margin:15px 0 8px;letter-spacing:-1px}.project p{margin:0}.project-arrow{font-size:42px;transition:transform .3s}.project:hover .project-arrow{transform:translate(5px,-5px)}.coming-soon{border-top:1px solid #14213940;padding:45px 0 15px;text-align:center}.soon-star{font-size:45px}.coming-soon h2{font-family:var(--display);font-size:30px;margin:10px 0}.coming-soon p{margin:0}.game-detail{background:var(--paper)}.game-detail h1{font-family:var(--display);font-size:clamp(33px,7.1vw,100px);line-height:1.15;letter-spacing:-.045em;margin:40px 0 8px;outline:none;overflow-wrap:anywhere}.game-subtitle{font-family:var(--display);font-size:clamp(22px,3vw,38px);margin:0 0 45px}.game-rule{height:1px;background:#14213940}.game-copy{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;padding:45px 0 20px}.game-copy h2{font-family:var(--display);font-size:clamp(25px,3vw,40px);line-height:1.25;margin:0}.game-copy p{margin:0;line-height:1.85;font-size:17px;max-width:570px}.status{display:inline-block;border:1px solid #14213950;border-radius:30px;padding:7px 17px;font-size:14px;margin-top:28px}.gallery{display:flex;overflow:auto;gap:20px;margin-top:35px}.gallery img{max-height:400px;max-width:80%;border-radius:15px}.store{display:inline-block;padding:12px 24px;border-radius:30px;background:var(--night);color:var(--paper);margin-top:30px}::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}::view-transition-group(*){animation-duration:.5s;animation-timing-function:cubic-bezier(.22,.8,.25,1)}@keyframes float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(2deg)}}
@media(min-width:1700px){.hero-copy{left:15%}.kite-layer{right:13%}}
@media(max-width:760px){.header{height:105px;padding:0 7%}.brand{font-size:23px}.brand-bottom{font-size:22px}.brand-symbol{font-size:35px}.menu-toggle{padding:10px 17px;gap:16px}.hero{min-height:720px;max-height:1000px}.landscape{width:160%;left:-30%;object-position:center}.hero-copy{top:32%;left:8%;max-width:88%}.hero h1{font-size:clamp(40px,8vw,60px);letter-spacing:-1.5px;line-height:1.16}.hero-copy p{font-size:clamp(18px,4.2vw,25px);margin-top:22px}.kite-layer{top:49%;right:5%;width:32%;height:34%}.stars .north-star{left:77%!important;top:22%!important;font-size:24px}.foreground{height:28%;bottom:-6%;width:135%;left:-15%}.scroll-cue{bottom:30px}footer{padding:30px 7%;flex-wrap:wrap;font-size:12px}footer>span:nth-child(2){display:none}.detail-shell{padding:130px 6% 60px}.category-surface,.game-detail{padding:28px 7%;border-radius:25px;min-height:520px}.category-surface h1{font-size:48px;letter-spacing:-2px}.category-lead{font-size:18px}.detail-label{font-size:11px;letter-spacing:.07em}.detail-label>span:last-child{font-size:26px}.project{align-items:flex-end}.project h2{font-size:30px}.project-arrow{font-size:30px}.game-detail h1{font-size:clamp(30px,8.2vw,58px)}.game-copy{grid-template-columns:1fr;gap:25px;padding-top:30px}.game-copy p{font-size:16px}.game-copy h2 br{display:none}.game-subtitle{margin-bottom:30px}.eyebrow{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;view-transition-name:none!important}.depth{transform:none!important}}

/* A single viewport: a short native scroll track raises the three kites. */
body{--text-glow:0 1px 2px #101d35,0 0 5px #142139e6,0 0 12px #263d69b3,0 0 20px #a6657773;text-shadow:var(--text-glow)}
.category-surface,.game-detail{--text-glow:0 0 3px #fff7e5b3,0 0 10px #f5eedb99,0 0 16px #e9bd7173;text-shadow:var(--text-glow)}
.hero-copy{text-shadow:0 1px 2px #101d35,0 0 5px #142139,0 0 12px #263d69e6,0 0 24px #bf718999}
body[data-view="home"]{overflow:hidden}
body[data-view="home"] .header{position:fixed;pointer-events:none}
body[data-view="home"] .header a,body[data-view="home"] .header .nav-wrap{pointer-events:auto}
body[data-view="home"] footer{display:none}
.journey{height:var(--scene-height,100vh);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-width:none;scroll-padding:0;scroll-behavior:auto;outline-offset:-5px;--step:360px}
.journey::-webkit-scrollbar{display:none}
.journey-track{position:relative;height:calc(var(--scene-height,100vh) + var(--step)*3)}
.journey .hero{position:-webkit-sticky;position:sticky;top:0;height:var(--scene-height,100vh);min-height:0;max-height:none;overflow:hidden;transform:translateZ(0)}
.snap-stop{position:absolute;top:calc(var(--stop)*var(--step));width:1px;height:1px;pointer-events:none;scroll-snap-align:start;scroll-snap-stop:always}
.journey .scene:after{background:#142139;opacity:var(--scene-dim,0)}
.journey .hero-copy{z-index:1;pointer-events:none}
.flights{position:absolute;inset:0;pointer-events:none;z-index:2}
.flight{position:absolute;inset:0;pointer-events:none}
.flight-motion{position:absolute;inset:0;will-change:transform;transform:translate3d(0,94vh,0) scale(.63);backface-visibility:hidden}
.flight-sway{position:absolute;width:var(--kite-width,90vw);height:calc(var(--kite-width,90vw)*1.18);left:50%;top:50%;transform:translate3d(-50%,-50%,0);animation:large-kite-sway 8s ease-in-out infinite;transform-origin:50% 52%;will-change:transform}
/* Avoid large blurred shadow surfaces on the moving artwork. Keep its colors. */
.flight-image{position:absolute;width:200%;max-width:none;left:-70%;top:-8%;height:auto}
.flight-models .flight-image{filter:hue-rotate(170deg) saturate(.45)}
.flight-boards .flight-image{filter:hue-rotate(42deg) saturate(.8)}
.flight-models .flight-sway{animation-delay:-2.5s;animation-duration:9s}
.flight-boards .flight-sway{animation-delay:-5s;animation-duration:10s}
.flight-label{position:absolute;z-index:5;left:50%;top:50%;transform:translate3d(-50%,-50%,0);width:min(82vw,720px);text-align:center;color:var(--paper);opacity:0;visibility:hidden;pointer-events:none;text-shadow:1px 0 1px #142139,-1px 0 1px #142139,0 1px 1px #142139,0 -1px 1px #142139,0 0 5px #142139,0 0 12px #263d69,0 0 24px #954259b3;transition:opacity .22s,visibility .22s}
.flight-label.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.flight-label h2{font-family:var(--display);font-size:clamp(44px,7vw,100px);line-height:1.08;letter-spacing:-.035em;font-weight:600;margin:15px auto 22px;text-wrap:balance}
.flight-label .eyebrow{font-size:13px;letter-spacing:.16em}
.flight-open{display:inline-flex;align-items:center;gap:22px;border-bottom:1px solid #f5eedba6;padding-bottom:5px;font-size:16px}
.flight-label:hover .flight-open{border-bottom-color:var(--paper)}
.journey-controls{position:absolute;bottom:23px;left:50%;transform:translate3d(-50%,0,0);z-index:10;display:flex;align-items:center;gap:10px;padding:4px 8px;border-radius:50px;background:#142139cf;border:1px solid #f5eedb26}
.journey-controls button{border:0;color:var(--paper);background:transparent;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:23px;text-shadow:var(--text-glow)}
.journey-controls button:disabled{opacity:.3;cursor:default}
.scene-steps{display:flex;gap:0}
.scene-steps button{width:36px}
.scene-steps button span{width:5px;height:5px;border-radius:50%;background:var(--paper);opacity:.45;transition:transform .25s,opacity .25s}
.scene-steps button[aria-current] span{transform:scale(1.65);opacity:1;background:var(--gold)}
.journey-hint{position:absolute;bottom:80px;width:100%;text-align:center;z-index:4;font-size:12px;letter-spacing:.05em;pointer-events:none;transition:opacity .25s}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes large-kite-sway{0%,100%{transform:translate3d(-50%,-50%,0) rotate(-.8deg)}50%{transform:translate3d(-50%,-50%,0) translateY(-7px) rotate(.8deg)}}
.motion-paused .flight-sway,.motion-paused .kite{animation-play-state:paused}
@media(max-width:760px){.flight-label{width:85vw;top:49%}.flight-label h2{font-size:clamp(42px,11vw,72px)}.journey .hero-copy{top:30%}.journey-controls{bottom:max(20px,env(safe-area-inset-bottom))}.journey-hint{bottom:78px}.journey .kite-layer{top:47%;height:30%}.journey .foreground{bottom:-8%}}
@media(max-height:550px){.journey .hero-copy{top:27%}.hero h1{font-size:clamp(30px,6vh,48px)}.hero-copy p{font-size:18px;margin-top:12px}.journey .header{height:85px}.flight-label h2{font-size:clamp(32px,10vh,58px)}.flight-label{top:48%}.flight-label .eyebrow{font-size:11px}.journey-controls{bottom:8px}.journey-hint{display:none}}
@media(prefers-reduced-motion:reduce){.journey{scroll-behavior:auto}.flight-sway{animation:none}.flight-label,.scene-steps button span{transition:none}}
