:root{--bg:#090e21;--ink:#eef2ff;--muted:#adbbd7;--line:#49577d;--surface:#101b35;--panel:rgba(11,18,39,.93);--pink:#ff88bc;--mint:#80f5d0;--blue:#67e8f6;--yellow:#ffdc89;--heading:system-ui,'Segoe UI',Arial,sans-serif;--mono:ui-monospace,'Cascadia Code',Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:78px}body{margin:0;color:var(--ink);background:var(--bg);font:16px/1.55 var(--heading);overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}img{display:block;max-width:100%}svg{display:block}::selection{background:var(--pink);color:var(--bg)}:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}.skip{position:fixed;z-index:400;left:10px;top:-100px;background:white;color:#111;padding:12px}.skip:focus{top:10px}
.header{position:fixed;inset:0 0 auto;z-index:110;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px clamp(12px,3.5vw,50px);background:linear-gradient(180deg,rgba(9,14,33,.98),rgba(9,14,33,.88));border-bottom:1px solid #415172;backdrop-filter:blur(12px);min-height:70px}.brand{display:flex;gap:11px;align-items:center;font-weight:900;line-height:1.05;letter-spacing:-.03em}.brand-icon{display:grid;place-items:center;width:40px;height:40px;color:#160e27;background:var(--pink);box-shadow:5px 5px 0 #592c66;font-family:var(--mono);font-size:25px}.brand small{display:block;font:10px/1.1 var(--mono);letter-spacing:.15em;color:var(--muted);margin-top:4px}.nav{display:flex;align-items:center;gap:clamp(8px,1.5vw,24px)}.nav a{font:700 12px var(--mono);color:#dce6fa;white-space:nowrap}.nav a:hover,.nav a[aria-current=page]{color:var(--mint)}.tools{display:flex;align-items:center;gap:7px}.tool,.btn,.pill{min-height:40px;border:1px solid #66779d;color:#f5f5ff;border-radius:7px;background:#111b35;padding:9px 13px;font:700 12px var(--mono);display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .2s,background .2s,border-color .2s}.tool:hover,.btn:hover{transform:translateY(-2px);border-color:var(--pink);background:#243151}.btn-primary{background:var(--pink);color:#10142e;border-color:var(--pink);box-shadow:3px 4px 0 #76396f}.btn-primary:hover{background:#ffb2d0;color:#12142b}.btn-mint{background:var(--mint);color:#111b30;border-color:var(--mint)}.menu-btn{display:none}.mobile-menu{display:none}
main{isolation:isolate}.world{position:relative;margin:auto;max-width:1700px;overflow:clip;background:#10182d}.district{height:max(700px,100svh);min-height:700px;position:relative;isolation:isolate;overflow:hidden;--accent:var(--pink)}.scene-art{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center center;image-rendering:pixelated;z-index:-3}.district::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,9,22,.7) 0%,transparent 27%,transparent 72%,rgba(5,9,22,.47) 100%);pointer-events:none}.district::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,rgba(7,11,29,.65),transparent 17%,transparent 80%,rgba(9,14,33,.28))}.district-head{position:absolute;top:99px;left:clamp(16px,4vw,72px);width:min(32%,405px);text-shadow:0 2px 10px #10132a}.eyebrow{display:block;font:800 11px/1.4 var(--mono);letter-spacing:.16em;color:var(--accent);text-transform:uppercase}.district-number{font:800 11px var(--mono);color:#cdd9f5}.district-head h2{font-size:clamp(32px,4.9vw,68px);line-height:.94;letter-spacing:-.07em;margin:13px 0 11px;font-weight:950;text-transform:uppercase;max-width:400px}.district-head p{max-width:330px;font-size:clamp(13px,1.3vw,18px);font-weight:500;color:#d6e1f4}.door{position:absolute;z-index:5;transform:translate(-50%,-50%);width:clamp(130px,17vw,235px);padding:9px 9px 10px;border:2px solid var(--door);border-radius:7px;background:rgba(12,19,40,.88);box-shadow:0 0 0 4px rgba(5,9,24,.7),0 0 22px color-mix(in srgb,var(--door),transparent 58%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:69px;text-align:center;font:900 clamp(11px,1.05vw,16px)/1.2 var(--mono);text-shadow:0 1px 2px black;animation:door-idle 3.7s ease-in-out infinite alternate}.door::before{content:"";position:absolute;bottom:-15px;left:calc(50% - 8px);width:12px;height:12px;transform:rotate(45deg);background:var(--door);border:2px solid #091022}.door .door-cta{font-size:10px;color:var(--door);font-weight:700;letter-spacing:.12em}.door:hover,.door:focus-visible{background:#1c3152;transform:translate(-50%,-50%) scale(1.055);box-shadow:0 0 0 4px #080e20,0 0 35px color-mix(in srgb,var(--door),transparent 35%);animation:none}.district-foot{position:absolute;left:clamp(16px,4vw,72px);bottom:44px;font:700 11px var(--mono);color:#f4eafd;display:flex;gap:13px;align-items:center;background:#0f1835d9;border:1px solid #7880a5;border-radius:30px;padding:9px 15px}.district-foot span{color:var(--accent)}.district-below{position:absolute;bottom:0;left:0;right:0;height:8px;background:repeating-linear-gradient(90deg,var(--accent) 0 21px,#151d38 21px 31px)}
.intro-pane{position:absolute;top:190px;left:clamp(16px,4vw,72px);width:min(355px,40%);z-index:12;background:var(--panel);border:1px solid #7d8cae;border-radius:13px;padding:20px;box-shadow:8px 11px 0 #070b1aa8,0 0 35px #14193b}.intro-pane .eyebrow{color:var(--mint)}.intro-pane h1{font-size:clamp(34px,3.9vw,55px);line-height:.99;letter-spacing:-.065em;margin:9px 0 14px}.intro-pane h1 em{font-style:normal;color:var(--pink)}.intro-pane p{margin:0 0 16px;color:#dae3f7;font-size:15px}.intro-actions{display:flex;flex-wrap:wrap;gap:8px}.mininote{font:11px var(--mono);color:#9db0d4;margin-top:13px}
.avatar{pointer-events:none;position:fixed;z-index:35;top:52%;left:50%;width:clamp(54px,6vw,86px);transform:translate(-50%,-50%);filter:drop-shadow(0 11px 3px #080f1da6) drop-shadow(0 0 8px #86eaf394);transition:opacity .15s,transform .15s;image-rendering:pixelated}.avatar.hidden{opacity:0}.avatar.face-back{transform:translate(-50%,-50%) scaleX(-1)}.avatar.walking{animation:bob .27s steps(2,end) infinite alternate}.avatar img{width:100%;height:auto}.avatar-dialog{position:fixed;z-index:36;left:calc(50% + 57px);top:calc(52% - 82px);width:clamp(185px,20vw,282px);background:#f9eddf;color:#15213a;border:3px solid #192545;border-radius:9px;padding:12px;font:700 12px/1.5 var(--mono);box-shadow:5px 7px 0 #11152fc0;pointer-events:auto}.avatar-dialog::after{content:"";position:absolute;bottom:-12px;left:20px;border:9px solid transparent;border-top-color:#f9eddf}.avatar-dialog button{float:right;padding:0 3px;background:transparent;border:0;color:#15213a;font-weight:bold}.avatar-dialog[hidden]{display:none}.avatar-dialog small{display:block;color:#A24C81;letter-spacing:.12em;font-weight:900;margin-bottom:4px}
.hud{position:fixed;z-index:40;bottom:20px;right:18px;display:flex;gap:8px;align-items:flex-end}.hud-progress{background:#0c1731ed;border:1px solid #697f9f;border-radius:10px;padding:10px 13px;min-width:170px}.hud-progress .small{font:10px var(--mono);color:#90a3c0;letter-spacing:.1em}.hud-progress strong{display:block;font:900 13px var(--mono);margin:3px 0 8px}.progress-track{height:5px;border-radius:5px;background:#354361;overflow:hidden}.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--pink),var(--mint));transition:width .1s}.scene-map{position:fixed;z-index:120;right:22px;bottom:82px;width:min(328px,calc(100vw - 30px));padding:15px;background:#0d1831;color:#fff;border:1px solid #7587b2;border-radius:12px;box-shadow:0 18px 60px #020409b8}.scene-map[hidden]{display:none}.scene-map h3{margin:0 0 12px;font:900 16px var(--mono)}.map-list{display:grid;gap:6px}.map-link{width:100%;background:#182746;border:1px solid #364d70;color:white;display:flex;gap:10px;align-items:center;text-align:left;padding:8px 11px;border-radius:6px;font:700 12px var(--mono)}.map-link:hover,.map-link[aria-current=true]{background:#384168;border-color:var(--mint)}.map-link span:first-child{color:var(--pink)}
.overlay-backdrop{position:fixed;inset:0;z-index:200;background:#070c1ede;backdrop-filter:blur(8px);display:grid;place-items:center;padding:clamp(8px,2.5vw,36px);animation:fadein .23s ease}.overlay-backdrop[hidden]{display:none}.room-dialog{width:min(930px,100%);max-height:min(850px,94dvh);overflow:auto;position:relative;background:#101a33;color:#f5f2ff;border:1px solid #7489b8;box-shadow:0 0 0 6px #080e23,0 34px 85px #000b;border-radius:14px}.room-topline{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #394e75;padding:13px 18px;background:#182748;font:800 11px var(--mono);color:#b8ccee}.close-room{width:38px;height:38px;display:grid;place-items:center;border:1px solid #7587ac;background:#273858;color:#fff;border-radius:8px;font-size:23px}.room-hero{position:relative;background:radial-gradient(circle at 70% 40%,color-mix(in srgb,var(--room),transparent 78%),transparent 52%),#101b35;padding:clamp(19px,4vw,46px);display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:center;min-height:315px}.room-hero h2{font-size:clamp(31px,5.4vw,62px);line-height:1.02;letter-spacing:-.055em;margin:9px 0 16px}.room-hero p{max-width:520px;color:#d5e0f3}.room-hero .eyebrow{color:var(--room)}.room-pixel{min-height:230px;border:1px solid var(--room);background:linear-gradient(180deg,#263455 0 65%,#141a30 65% 100%);box-shadow:6px 6px 0 #060d20;position:relative;overflow:hidden;image-rendering:pixelated}.room-pixel:before{content:"";position:absolute;inset:15% 18%;background:repeating-linear-gradient(90deg,#141a31 0 20px,color-mix(in srgb,var(--room),transparent 58%) 20px 25px,#141a31 25px 37px);border:9px solid #16273f;box-shadow:0 0 0 5px var(--room),0 0 40px color-mix(in srgb,var(--room),transparent 35%)}.room-pixel:after{content:attr(data-symbol);font:bold 96px var(--mono);color:var(--room);position:absolute;inset:0;display:grid;place-items:center;text-shadow:6px 6px 0 #071326}.room-activities{padding:24px clamp(20px,4vw,46px) 34px;background:#111a32}.room-activities h3{margin:0 0 15px;font:900 17px var(--mono)}.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.activity{border:1px solid #4c6188;background:#1b2c4a;padding:15px;border-radius:8px}.activity .number{font:900 11px var(--mono);color:var(--room)}.activity strong{display:block;margin-top:8px;font:800 14px var(--mono)}.room-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}.room-actions .btn{min-height:46px}.room-secondary{color:#bfcbe0;max-width:760px;margin:14px 0 0;font-size:13px}.dialog-open{overflow:hidden}
.section-body{min-height:100svh;padding:110px 22px 80px;background:radial-gradient(circle at 90% 0%,#2e204c 0,transparent 45%),#0b1024}.content-wrap{max-width:1120px;margin:auto}.page-kicker{font:800 12px var(--mono);letter-spacing:.2em;color:var(--mint)}.page-title{font-size:clamp(48px,9vw,110px);line-height:.94;letter-spacing:-.08em;text-transform:uppercase;margin:14px 0 17px}.page-desc{max-width:720px;color:#c3d2ea;font-size:clamp(17px,2vw,22px)}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:44px 0}.content-card{background:#18243f;border:1px solid #52668c;border-radius:12px;overflow:hidden;transition:transform .2s,border .2s}.content-card:hover{transform:translateY(-5px);border-color:var(--pink)}.card-art{height:150px;background:#263653;display:grid;place-items:center;font-size:56px;color:var(--pink);position:relative}.card-art:before{content:"";position:absolute;inset:15px;background:repeating-linear-gradient(45deg,transparent 0 12px,#253650 12px 15px);opacity:.75}.card-art b{z-index:1;text-shadow:4px 4px 0 #10192e;font:900 45px var(--mono)}.card-copy{padding:20px}.card-copy h3{margin:8px 0;font-size:23px}.card-copy p{font-size:14px;color:#b9c9e1}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.tags span{font:700 10px var(--mono);border:1px solid #4e5e82;color:#d5e1f1;padding:5px 8px;border-radius:4px}.detail-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin:42px 0}.detail-panel{background:#14233e;border:1px solid #52668c;border-radius:12px;padding:clamp(24px,3vw,40px)}.detail-panel h2{font-size:clamp(25px,3.5vw,42px);letter-spacing:-.05em}.detail-panel p{color:#d3dded}.quote{font-size:clamp(22px,3vw,38px);font-weight:800;line-height:1.2;letter-spacing:-.04em}.callout{padding:24px;background:#191e3a;border-left:4px solid var(--pink);margin:25px 0}.footer{border-top:1px solid #405477;background:#080d1c;padding:45px 24px;color:#b1c0d8}.footer-inner{max-width:1120px;margin:auto;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.footer a{color:var(--mint)}
.form{max-width:740px;background:#121e38;border:1px solid #596e93;border-radius:13px;padding:clamp(20px,4vw,40px);margin-top:36px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:6px;margin:0 0 18px}.field label{font:800 12px var(--mono);color:#d5e5f5}.field input,.field select,.field textarea{width:100%;background:#0d152b;color:white;border:1px solid #627697;border-radius:6px;padding:13px;min-height:45px}.field textarea{min-height:115px;resize:vertical}.form-step[hidden]{display:none}.step-tabs{display:flex;gap:8px;margin-bottom:24px}.step-tabs span{background:#1d3151;color:#c6d6ef;border:1px solid #40597d;padding:8px 11px;border-radius:5px;font:800 11px var(--mono)}.step-tabs span.current{background:var(--pink);color:#11172d}.form-actions{display:flex;justify-content:space-between;gap:10px;align-items:center}.form-status{color:var(--mint);min-height:28px;font-size:13px}.error{color:#ffd098}.checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:13px;margin-bottom:20px}.checkbox-row input{width:18px;height:18px}.notice{background:#14263d;padding:15px;border-left:3px solid var(--yellow);color:#d2e4f3;margin:22px 0}
.arcade-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:24px 0}.game-panel{display:grid;grid-template-columns:minmax(0,480px) 1fr;gap:25px;background:#14213c;border:1px solid #59688b;border-radius:12px;padding:clamp(13px,3vw,30px)}.game-stage{background:#0c1730;border:1px solid #485e8d;padding:12px;border-radius:9px}.tile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:430px;aspect-ratio:1}.tile{display:grid;place-items:center;border:1px solid #3a557f;background:#233151;color:white;font:900 clamp(20px,4vw,42px) var(--mono);border-radius:7px}.tile.filled{background:#f49abf;color:#1c1731}.tile[data-value='4']{background:#ffd08c}.tile[data-value='8']{background:#8bedde}.tile[data-value='16']{background:#a9a4ff}.tile[data-value='32']{background:#ff9e80}.tile[data-value='64']{background:#f6de88}.tile[data-value='128'],.tile[data-value='256'],.tile[data-value='512'],.tile[data-value='1024'],.tile[data-value='2048']{background:#b0ff80}.memory-grid,.bug-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:430px}.memory-card,.bug-grid button{aspect-ratio:1;border:2px solid #51678a;background:#28395f;color:white;border-radius:8px;font:900 clamp(16px,3.5vw,30px) var(--mono)}.memory-card.open,.bug-grid button.fixed{background:var(--mint);color:#121e39}.memory-card.matched{background:#629a9e;color:white}.bug-grid button:disabled{cursor:default}.game-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.game-controls button{min-width:43px}.game-info{font:700 13px/1.7 var(--mono);color:#cdd8f3}.game-info strong{color:var(--mint)}.game-info h2{font-size:28px}.game-info .buttons{display:flex;gap:10px;flex-wrap:wrap}.game-hidden[hidden]{display:none}.game-panel h3{margin-top:0}.mission-choice{display:block;width:100%;text-align:left;padding:14px;border:1px solid #6077a3;background:#243351;color:white;border-radius:7px;margin:9px 0}.mission-choice:hover{border-color:var(--mint)}
@keyframes bob{to{translate:0 2px}}@keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes door-idle{from{box-shadow:0 0 0 4px #060b1c,0 0 9px color-mix(in srgb,var(--door),transparent 60%)}to{box-shadow:0 0 0 4px #060b1c,0 0 27px color-mix(in srgb,var(--door),transparent 20%)}}
@media(max-width:980px){.nav{gap:10px}.nav a{font-size:11px}.brand small{display:none}.district-head{width:33%}.district-head h2{font-size:clamp(28px,4.7vw,51px)}}
@media(max-width:750px){.header{padding:9px 12px;min-height:62px}.brand{font-size:14px}.brand-icon{width:34px;height:34px;font-size:21px}.nav{display:none}.menu-btn{display:inline-flex}.mobile-menu{position:fixed;z-index:109;top:62px;left:0;right:0;background:#0c1831;padding:15px;display:grid;gap:10px;border-bottom:1px solid #617097}.mobile-menu[hidden]{display:none}.mobile-menu a{font:800 13px var(--mono);padding:10px;border:1px solid #435775}.header .tools>.btn-primary{display:none}.district{min-height:610px;height:93svh}.scene-art{object-fit:cover;object-position:center}.district-head{top:73px;left:14px;width:calc(100% - 28px);text-align:center}.district-head h2{font-size:clamp(27px,6vw,43px);margin:5px 0}.district-head p{margin:4px auto;font-size:12px}.district-head .eyebrow{font-size:9px}.district::before{background:linear-gradient(0deg,#0a122bdd,transparent 25%,transparent 72%,#10152f9e)}.door{top:auto!important;bottom:16%;width:calc(50% - 23px);min-height:73px;left:25%!important;transform:translate(-50%,0);font-size:11px;padding:11px 6px}.door:nth-of-type(2){left:75%!important}.door:hover{transform:translate(-50%,-4px)}.district-foot{left:50%;transform:translateX(-50%);bottom:18px;white-space:nowrap;padding:7px 10px;font-size:9px}.intro-pane{top:190px;left:12px;width:min(290px,77%);padding:15px}.intro-pane h1{font-size:34px}.intro-pane p{font-size:13px}.avatar{width:60px;top:50%}.avatar-dialog{left:calc(50% + 31px);top:calc(50% - 94px);width:min(195px,47vw);font-size:10px;padding:9px}.hud{right:9px;bottom:9px}.hud-progress{display:none}.hud .tool{font-size:11px;padding:9px 9px}.scene-map{bottom:64px;right:9px}.room-hero{grid-template-columns:1fr;gap:15px}.room-hero h2{font-size:34px}.room-pixel{min-height:130px;display:none}.activity-grid{grid-template-columns:1fr}.room-dialog{max-height:94svh}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout,.game-panel{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.page-title{font-size:clamp(42px,12vw,72px)}.page-desc{font-size:16px}}
@media(max-width:430px){.tools .tool{padding:7px 8px}.brand{font-size:12px}.intro-pane{top:181px;width:min(260px,71%)}.intro-pane h1{font-size:30px}.intro-pane .btn{font-size:10px}.avatar-dialog{top:calc(51% - 110px);left:calc(50% + 27px);width:166px}.avatar-dialog small{font-size:9px}.district-head{top:74px}.district-head h2{font-size:31px}.door{font-size:10px}.card-grid{grid-template-columns:1fr}.room-dialog{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.avatar.walking{animation:none}}
[dir=rtl] .nav,[dir=rtl] .header,[dir=rtl] .tools{direction:ltr}[dir=rtl] .intro-pane,[dir=rtl] .room-dialog,[dir=rtl] .section-body,[dir=rtl] .avatar-dialog{text-align:right}[dir=rtl] .district-head{direction:rtl;text-align:right}[dir=rtl] .eyebrow,[dir=rtl] .district-head .eyebrow{direction:ltr;unicode-bidi:isolate}[dir=rtl] .door{direction:rtl}[dir=rtl] .room-hero h2{letter-spacing:0}

/* Finishing pass: first-scene headline is supplied by the introduction itself. */
.district:first-child .district-head{display:none}
@media(max-width:750px){
.district .scene-art{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}
.district picture{position:absolute;inset:0;z-index:-3;display:block}
.district:first-child .intro-pane{top:101px;left:12px;width:calc(100% - 24px);max-width:420px;z-index:10}
.intro-pane h1{font-size:30px}.intro-pane p{font-size:12px;margin-bottom:10px}.intro-pane .mininote{display:none}
.avatar{top:57%}.avatar-dialog{top:calc(57% - 94px)}
}
