@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700;900&family=Outfit:wght@400;600;800;900&display=swap');
:root{--ink:#263e5a;--blue:#7fc9ed;--yellow:#efff91}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Outfit,'Noto Sans SC',sans-serif;background:#f8fbf2}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}header{height:96px;position:absolute;z-index:10;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid #ffffff66}.brand{font-weight:900;font-style:italic;font-size:35px;letter-spacing:-2px}.brand span{color:#3199c9}.brand sup{color:#3199c9;font-size:20px}nav{display:flex;gap:45px;font-size:13px;font-weight:700}nav small{font-size:10px;background:var(--yellow);padding:3px 5px;border-radius:50%}#sound{font-size:10px;letter-spacing:2px}.hero{height:100svh;min-height:690px;position:relative;overflow:hidden}.hero video{width:100%;height:100%;object-fit:cover;position:absolute}.wash{position:absolute;inset:0;background:linear-gradient(90deg,#eaf9ffe8,#eaf9ff6b 40%,transparent 70%),linear-gradient(0deg,#c8e9f6aa,transparent 30%)}.hero-copy{position:relative;padding:19vh 0 0 9%;z-index:1}.eyebrow{letter-spacing:4px;font-size:12px;font-weight:600}h1{font-size:clamp(60px,7vw,108px);line-height:1.15;letter-spacing:-5px;margin:30px 0;font-weight:900}h1 span{color:#328bb7}.intro{line-height:2;font-size:14px;letter-spacing:2px}.cta{display:inline-flex;gap:48px;align-items:center;background:var(--yellow);border:1px solid #344e5933;padding:18px 26px;border-radius:4px 4px 24px 4px;font-size:14px;font-weight:700;box-shadow:4px 5px 0 #263e5a;margin-top:24px;transition:transform .2s}.cta:hover{transform:translate(2px,2px);box-shadow:2px 3px 0 #263e5a}.cta span{font-size:22px}.stamp{position:absolute;right:8%;bottom:20%;transform:rotate(10deg);font-size:22px;font-weight:800;line-height:1;color:white;text-shadow:2px 2px #3e95bc}.stamp strong{font-size:65px}.stamp i{position:absolute;font-size:90px;top:-65px;right:-20px;color:var(--yellow);z-index:-1}.hero-bottom{position:absolute;bottom:30px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.hero-bottom b{display:inline-block;margin-left:15px;font-size:25px;animation:bob 2s infinite}.side{position:absolute;right:25px;top:35%;writing-mode:vertical-rl;font-size:9px;letter-spacing:4px}#games{height:100svh;min-height:760px;overflow:hidden;position:relative;background:radial-gradient(ellipse at 50% 45%,#fffdf1 0,#e0f2fa 55%,#b9def1);touch-action:pan-y}.game-top{text-align:center;padding-top:45px}.game-top p{font-size:10px;letter-spacing:3px}.game-top h2{font-size:25px;margin:12px}.game-top h2 span{color:#3e9dd3;margin-left:15px}.orbit{position:absolute;top:21%;height:47%;width:100%;perspective:1200px;cursor:grab;touch-action:pan-y}.card{position:absolute;left:50%;top:0;width:min(53vw,760px);height:100%;border:9px solid #fff;border-bottom-width:35px;box-shadow:0 18px 35px #42668133;border-radius:9px;overflow:hidden;transition:transform .85s cubic-bezier(.22,1,.36,1),opacity .65s,filter .65s;transform-origin:50% 150%;background:#b8e3f3}.card img{width:100%;height:100%;object-fit:cover;pointer-events:none}.card label{position:absolute;bottom:20px;left:25px;color:#fff;text-shadow:0 2px 8px #0009;font-size:33px;font-weight:900;pointer-events:none}.card em{position:absolute;top:14px;left:14px;background:var(--yellow);padding:5px 10px;font-size:10px;font-style:normal}.game-info{position:absolute;top:69%;width:100%;text-align:center}.game-info p{font-size:11px;letter-spacing:2px;margin:8px}.game-info h3{font-size:37px;margin:4px}.game-info .cta{margin-top:10px;padding:10px 22px}.controls{position:absolute;top:75%;left:6%;display:flex;align-items:center;gap:20px}.controls button{border:1px solid #94baca;border-radius:50%;width:42px;height:42px;font-size:20px}.controls span{font-size:12px}.controls b{font-size:25px}#dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:6px}#dots button{width:14px;height:5px;padding:0;background:#98bdcc}#dots button.active{background:#314e66;width:28px}.vertical{position:absolute;left:25px;top:30%;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px}.leave{position:absolute;right:5%;bottom:30px;font-size:12px}#future{padding:110px 12%;position:relative;overflow:hidden;background:#f6f8ed}#future h2{font-size:55px;line-height:1.4}#future h2 span{color:#46a1c9}#future p{font-size:13px;line-height:2.2}.planet{position:absolute;font-size:420px;right:8%;top:0;color:#c8e7f2;transform:rotate(-15deg)}footer{display:flex;align-items:center;justify-content:space-between;padding:35px 5%;border-top:1px solid #d7e1df}footer p,footer>span{font-size:10px;line-height:1.8}dialog{border:1px solid #aac9d5;border-radius:10px;padding:55px;max-width:90vw;background:#f3fbfc}dialog::backdrop{background:#1b344bbb;backdrop-filter:blur(8px)}dialog p{line-height:1.9;font-size:13px}#close{position:absolute;right:15px;top:10px;font-size:25px}@keyframes bob{50%{transform:translateY(7px)}}@media(max-width:700px){header{height:75px;padding:0 6%}.brand{font-size:28px}nav{gap:15px;font-size:10px}nav a:last-child,#sound{display:none}.hero-copy{padding:24vh 7% 0}.hero{min-height:650px}h1{font-size:64px}.stamp{right:8%;bottom:18%}.stamp strong{font-size:45px}.intro{font-size:11px}.side{display:none}.card{width:82vw}.orbit{top:25%;height:35%}.game-info{top:64%}.controls{left:50%;top:auto;bottom:60px;transform:translateX(-50%)}#games{min-height:800px}.game-top h2{font-size:20px}.vertical{left:9px;font-size:7px}.leave{bottom:25px;font-size:9px}#future{padding:75px 8%}#future h2{font-size:38px}.planet{font-size:250px;right:-80px;top:80px;opacity:.5;pointer-events:none}footer{gap:20px;flex-wrap:wrap}.hero-bottom{font-size:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Full-viewport, inertial chapter stage */
.stage-slot{height:100svh;min-height:0;position:relative}body.stage-locked{overflow:hidden}#games{height:100svh;min-height:0;isolation:isolate;color:#fff;background:#678e9c;touch-action:none}#games.is-locked{position:fixed;inset:0;z-index:100}.world-background{position:absolute;inset:-10%;background-size:cover;background-position:center;filter:blur(34px) saturate(.9);transform:scale(1.12);transition:background-image .7s;z-index:-3}.world-mask{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#142d4630,#142d4610 45%,#102b49b8);backdrop-filter:blur(9px)}.world-number{position:absolute;font-size:58vw;line-height:.8;font-weight:900;opacity:.13;left:1%;top:4%;z-index:-1;letter-spacing:-5vw;color:white;pointer-events:none}#games .game-top{position:absolute;top:24px;left:4%;padding:0;text-align:left;z-index:45}#games .game-top h2{font-size:16px;margin:8px 0}#games .game-top p{font-size:9px}#games .game-top p:last-child{display:none}#games .game-top h2 span{color:#efff91}.exit-stage{position:absolute;right:4%;top:35px;color:white;z-index:45;font-size:12px;letter-spacing:2px}#games .orbit{inset:0;width:100%;height:100%;perspective:1100px;overflow:visible;touch-action:none;transform-style:preserve-3d}#games .card{top:48%;left:50%;width:84vw;height:73svh;max-width:none;border:0;border-radius:2px;box-shadow:0 35px 65px #10283b66;transform-origin:center;transition:none;will-change:transform;backface-visibility:hidden;background:#87b4c8;padding:0}#games .card img{object-fit:cover}#games .card em{top:20px;left:22px;color:#263e5a}#games .game-info{top:auto;bottom:10%;left:10%;width:70%;text-align:left;pointer-events:none;z-index:40;text-shadow:0 2px 20px #152332aa}#games .game-info h3{font-size:clamp(44px,6.5vw,110px);letter-spacing:-3px;line-height:1.15}#games .game-info p{font-size:12px;letter-spacing:2px}#games .game-info .cta{pointer-events:auto;background:#f2ffad;color:#243e50;text-shadow:none;box-shadow:none;margin-top:14px;padding:13px 25px}#games .controls{left:auto;right:5%;top:auto;bottom:11%;z-index:40;gap:15px}#games .controls button{border-color:#ffffff88;background:#ffffff22;backdrop-filter:blur(10px);color:#fff;width:50px;height:50px}#games .controls button:disabled{opacity:.3;cursor:default}#games .controls b{font-size:38px}#games #dots{bottom:29px;z-index:45}#games #dots button{background:#ffffff55;width:18px;height:4px}#games #dots button.active{background:#efff91;width:34px}#games .vertical{z-index:40;color:white;top:35%;left:20px}#games .leave{z-index:45;color:white;bottom:25px}@media(max-width:700px){#games .card{width:90vw;height:72svh;top:47%}#games .game-top h2{font-size:12px}#games .game-info{left:8%;bottom:15%;width:85%}#games .game-info h3{font-size:48px}#games .game-info p{font-size:10px}#games .controls{bottom:5%;right:6%;gap:8px}#games .controls button{width:35px;height:35px}#games .controls b{font-size:22px}#games #dots{left:6%;transform:none;bottom:6%;gap:3px}#games #dots button{width:7px}#games #dots button.active{width:16px}#games .leave{display:none}.exit-stage{font-size:10px;top:30px}.world-number{top:20%;font-size:80vw}}
/* Stella Sora reference palette and button system */
:root{--ink:#4B5082;--blue:#0ABEC5;--yellow:#FFDE6D;--aqua:#10c7cd}body{color:var(--ink);background:#fff}.brand span,.brand sup,h1 span,#future h2 span{color:#0ABEC5}header{border-bottom-color:#0abec526;background:linear-gradient(180deg,#ffffffb8,#ffffff40)}nav a{transition:color .3s}nav a:hover{color:#0ABEC5}nav small{background:#0ABEC5;color:#fff}.wash{background:linear-gradient(90deg,#ffffffed,#edfcfc73 43%,transparent 73%),linear-gradient(0deg,#d8f7f8a8,transparent 30%)}.eyebrow,.side{color:#0ABEC5}.stamp{color:#fff;text-shadow:2px 2px #4B5082}.stamp i{color:#FFDE6D}.cta,#games .game-info .cta{min-width:218px;min-height:50px;justify-content:center;gap:36px;padding:12px 25px;border:3px solid #10c7cd;border-radius:999px;background:#0ABEC5 url('assets/button-texture.png') no-repeat center/102% 102%;color:#fff;box-shadow:none;text-shadow:none;transition:background .3s,color .3s,border-color .3s;transform:none;font-weight:700}.cta:hover,#games .game-info .cta:hover{background:#fff;color:#10c7cd;box-shadow:none;transform:none}.cta span{font-size:23px}.cta:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #4B5082;outline-offset:5px}#sound,#pause{border:1px solid #0ABEC5;border-radius:999px;background:#ffffffd9;color:#0ABEC5;padding:9px 15px;transition:background .3s,color .3s}#sound:hover,#pause:hover{background:#0ABEC5;color:#fff}#future{background:#f9ffff url('assets/stars.png') repeat center/600px}#future .planet{color:#0abec524}footer{background:#fff;color:#4B5082;border-top-color:#0abec533}dialog{background:#fff url('assets/stars.png') repeat center/600px;border:2px solid #0ABEC5;border-radius:16px;color:#4B5082}dialog::backdrop{background:#4b508291}#close{background:#0ABEC5;border-radius:50%;color:#fff;width:34px;height:34px;line-height:1}#close:hover{background:#4B5082}#games .world-mask{background:linear-gradient(180deg,#4b50822b,#0abec50b 45%,#34395ba8)}#games .game-top h2 span{color:#0ABEC5}#games .card em{background:#fff;color:#0ABEC5;border:1px solid #0ABEC5;border-radius:999px;padding:6px 13px}#games .game-info{text-shadow:0 2px 16px #30365bd9}#games .controls button{border:2px solid #10c7cd;background:#0ABEC5 url('assets/button-texture.png') center/cover;color:#fff;backdrop-filter:none;transition:background .3s,color .3s}#games .controls button:hover:not(:disabled){background:#fff;color:#0ABEC5}#games .controls button:disabled{background:#ffffff40;border-color:#ffffff66;color:#ffffffb0;opacity:.6}#games #dots button{background:#ffffff80;border-radius:5px}#games #dots button.active{background:#0ABEC5;box-shadow:0 0 0 1px #ffffff80}.exit-stage,#games .leave{border:1px solid #0ABEC5;border-radius:999px;background:#fff;color:#0ABEC5;padding:9px 16px;transition:background .3s,color .3s}.exit-stage:hover,#games .leave:hover{color:#fff;background:#0ABEC5}#games .leave{bottom:19px}.exit-stage{top:26px}::selection{background:#0ABEC5;color:#fff}::-webkit-scrollbar-thumb{background:#4B5082;border-radius:3px}@media(max-width:700px){.cta,#games .game-info .cta{min-width:190px;min-height:44px;padding:9px 20px}.exit-stage{top:23px;padding:8px 12px}#pause{padding:6px 10px}}
/* Preserve the complete portrait artwork supplied by AirMeta. */
#games .card{background:#34395b}#games .card:before{content:'';position:absolute;inset:-40px;background-image:var(--cover);background-size:cover;background-position:center;filter:blur(25px) brightness(.65);z-index:0}#games .card:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#1b234a66,transparent 65%);pointer-events:none}#games .card img{position:relative;z-index:1;object-fit:contain;object-position:85% center}#games .card em{z-index:2}#games .game-info{width:55%}#games .game-info h3{font-size:clamp(42px,6vw,92px)}@media(max-width:700px){#games .card img{object-position:center top}#games .game-info{width:85%;bottom:15%}#games .game-info h3{font-size:44px}#games .card:after{z-index:1;background:linear-gradient(0deg,#1b234acc,transparent 65%)}}

/* English headings retain the original full-screen composition. */
.hero-copy h1{font-size:clamp(48px,5.8vw,90px);letter-spacing:-3px}.game-info h3{overflow-wrap:anywhere}@media(max-width:600px){.hero-copy h1{font-size:clamp(40px,10vw,60px);letter-spacing:-2px}.game-top h2{font-size:23px}.game-top p:last-child{font-size:9px}}

/* Compact portrait showcase: artwork fills its card; copy sits on the stage. */
#games .card{left:68%;top:50%;height:76svh;width:57svh;max-width:45vw;border-radius:10px;box-shadow:0 28px 70px #151a3b55}
#games .card:before,#games .card:after{display:none}
#games .card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
#games .card em{top:16px;left:16px;font-size:9px}
#games .game-info{left:10%;bottom:33%;width:36%;text-shadow:0 2px 18px #171c38a8}
#games .game-info h3{font-size:clamp(42px,5.8vw,88px);line-height:1.04;margin:18px 0;letter-spacing:-2px}
#games .game-info p{margin:10px 0;line-height:1.7;font-size:12px;letter-spacing:1.3px}
#games .game-info .cta{margin-top:20px}
#games .world-mask{background:linear-gradient(90deg,#2428449c 0%,#24284450 40%,#24284415 75%),linear-gradient(0deg,#252a4b77,transparent 35%)}
#games .world-number{font-size:48vw;top:18%;left:1%;opacity:.08}
#games .controls{right:10%;bottom:4.5%}
#games .vertical{opacity:.65}
@media(max-width:900px){#games .game-info{left:7%;width:38%}#games .game-info h3{font-size:clamp(36px,5vw,60px)}#games .card{left:72%;max-width:43vw;height:auto;aspect-ratio:3/4;width:54svh}#games .game-info p{font-size:10px}}
@media(max-width:700px){#games .card{left:50%;top:40%;height:53svh;width:39.75svh;max-width:76vw;border-radius:8px}#games .card em{top:10px;left:10px;font-size:8px;padding:5px 9px}#games .game-info{left:8%;bottom:12%;width:84%}#games .game-info h3{font-size:34px;letter-spacing:-1px;margin:7px 0}#games .game-info p{margin:3px 0;font-size:9px;line-height:1.4}#games .game-info .cta{margin-top:10px;min-height:38px;padding:5px 16px;min-width:165px;font-size:12px}#games .controls{right:7%;bottom:4%}#games .game-top h2{font-size:12px}#games .world-number{top:28%;font-size:80vw}}
@media(min-width:701px){#games .controls{bottom:8%}}

/* Seven-link navigation and colocated media controls. */
header nav{gap:clamp(12px,2vw,34px);font-size:12px}header nav a{white-space:nowrap}.playback-controls{display:flex;align-items:center;gap:10px}#sound{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:7px;letter-spacing:0}#sound svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}#sound .sound-on{display:none}#sound[aria-pressed="true"] .sound-on{display:block}#sound[aria-pressed="true"] .sound-off{display:none}@media(max-width:900px){header{height:auto;min-height:90px;flex-wrap:wrap;padding:12px 5%;gap:12px}header nav{width:100%;overflow-x:auto;gap:20px;padding-bottom:8px}header nav a:last-child{display:block}.hero-bottom{align-items:center}.hero-bottom>span{display:none}#sound{display:inline-flex}}
