:root{color:#f5f3ea;background:#15110e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,select{border:1px solid #d5c7a1;border-radius:8px;background:#f4d06f;color:#19140f;cursor:pointer;font:inherit;font-weight:700;min-height:48px;padding:.75rem 1rem}button:focus-visible,select:focus-visible{outline:3px solid #7fd1c9;outline-offset:3px}.app-shell{display:grid;align-content:center;gap:1rem;min-height:100vh;padding:clamp(1rem,4vw,3rem);background:radial-gradient(circle at 20% 10%,rgb(87 70 48 / .24),transparent 30%),linear-gradient(145deg,#17120f,#23231f 52%,#101817)}.home-shell{align-content:start;background:linear-gradient(90deg,#0c0a086b,#100f0c3d 48%,#0c0a0861),url(/assets/images/background-hero.png) center 36% / cover;gap:clamp(1rem,3vw,1.6rem);isolation:isolate;position:relative}.home-shell>*{position:relative;z-index:1}.status-panel,.intro-panel,.campaign-board,.safety-strip,.asset-warnings,.debug-panel{width:min(860px,100%)}.status-panel,.intro-panel{border-left:4px solid #f4d06f;padding-left:1rem}.eyebrow,.campaign-kicker{color:#7fd1c9;font-size:.82rem;font-weight:800;letter-spacing:0;margin:0 0 .5rem}h1{font-size:clamp(2rem,5vw,4.6rem);line-height:1;margin:0 0 1rem}h2{color:#fff7df;font-size:clamp(1.35rem,3vw,2rem);line-height:1.1;margin:0 0 .6rem}p{color:#e7dfce;font-size:clamp(1rem,2vw,1.25rem);line-height:1.5;margin:0}.totem-direction-hint{align-items:center;background:#f4d06f1f;border:1px solid rgb(244 208 111 / .58);border-radius:8px;color:#fff1ca;display:inline-grid;gap:.65rem;grid-template-columns:auto auto;justify-self:start;margin-top:.85rem;padding:.55rem .8rem;width:fit-content}.totem-direction-arrow{align-items:center;background:#f4d06f;border-radius:999px;color:#19140f;display:inline-grid;font-size:2rem;font-weight:900;height:3rem;line-height:1;place-items:center;width:3rem}.totem-direction-hint span:last-child{font-size:1rem;font-weight:900;letter-spacing:0}.meta-row,.debug-panel,.safety-strip{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.meta-row span,.debug-panel span,.safety-strip span{border:1px solid rgb(245 243 234 / .24);border-radius:999px;color:#d8d2c4;font-size:.9rem;padding:.35rem .65rem}.voice-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#171410b8;border:1px solid rgb(245 243 234 / .16);border-radius:8px;display:grid;gap:.7rem;padding:1rem;width:min(860px,100%)}.voice-panel label{color:#fff7df;font-size:.95rem;font-weight:800}.voice-controls{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) auto}.voice-controls select{min-width:0;width:100%}.campaign-board{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.campaign-card{align-content:space-between;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#171410bd;border:1px solid rgb(245 243 234 / .16);border-radius:8px;display:grid;gap:1.2rem;min-height:250px;padding:1rem}.active-campaign{border-color:#f4d06fb8}.campaign-music{color:#f4d06f;font-weight:800}.locked-campaign{opacity:.76}.locked-campaign span{color:#c9c0ac;font-size:.95rem;font-weight:700}.primary-action{justify-self:start;min-width:min(100%,260px)}.challenge-panel{background:#111410e0;border:1px solid rgb(210 166 91 / .58);border-radius:8px;box-shadow:0 10px 30px #00000047;display:grid;gap:.85rem;padding:1rem;width:min(760px,100%)}.challenge-panel p{color:#fff1ca;font-size:1rem;font-weight:800}.challenge-actions{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.controls{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));width:min(760px,100%)}.asset-warnings{border:1px solid #bc6c25;border-radius:8px;padding:1rem}@media(max-width:560px){.app-shell{align-content:start}.voice-controls{grid-template-columns:1fr}.controls{grid-template-columns:1fr 1fr}.controls button,select{min-height:56px;padding-inline:.5rem}}.revealed-shell{align-content:start}.map-reveal{background:#f5f3ea12;border:1px solid rgb(245 243 234 / .16);border-radius:8px;overflow:auto;padding:.75rem;width:min(980px,100%)}.map-grid{display:grid;gap:1px;min-width:560px}.map-cell{aspect-ratio:1;display:grid;min-width:8px;place-items:center}.wall-cell{background:#050505}.floor-cell{background:#e7dfce}.visited-cell{background:#b8d8ca}.icon-cell{background:#f4d06f}.map-cell img{height:90%;max-width:90%;object-fit:contain;width:90%}.live-map{background:#0f0f0fdb;border-color:#7fd1c938;box-shadow:inset 0 0 48px #0000008c}.live-map-grid{opacity:.92}.fog-cell{background:#070707;position:relative}.fog-cell:before{background:radial-gradient(circle,rgb(245 243 234 / .06),transparent 72%);content:"";inset:0;position:absolute}.player-cell{background:#141d1c}.player-cell:after{background:#7fd1c9;border:2px solid #f5f3ea;border-radius:999px;box-shadow:0 0 16px #7fd1c9f2;content:"";height:72%;position:absolute;width:72%}.live-map{justify-self:start;max-height:min(44vh,360px);overflow:hidden;width:min(100%,760px)}.live-map .map-grid{min-width:0;width:100%}.live-map .map-cell{aspect-ratio:1.45 / 1;min-width:0}@media(max-height:720px){.live-map{max-height:34vh;width:min(100%,620px)}}.live-map{max-height:none;width:min(100%,760px,64vh)}@media(max-height:720px){.live-map{max-height:none;width:min(100%,620px,49vh)}}.revealed-map{overflow:visible;width:min(100%,760px,64vh)}.revealed-map .map-grid{min-width:0;overflow:visible;width:100%}.revealed-map .map-cell{aspect-ratio:1.45 / 1;min-width:0;overflow:visible;position:relative}.revealed-map .icon-cell{outline:2px solid #f4d06f;outline-offset:-1px;z-index:2}.revealed-map .map-cell img{background:#f4d06f;border:2px solid #1a1713;border-radius:6px;box-shadow:0 3px 14px #00000073;height:220%;max-width:none;padding:1px;position:relative;width:220%;z-index:4}@media(max-height:720px){.revealed-map{width:min(100%,620px,49vh)}}.dark-3d-view{background:#181a15;height:clamp(320px,58vh,620px);justify-self:stretch;margin-inline:calc(clamp(1rem,4vw,3rem)*-1);overflow:hidden;position:relative;touch-action:pan-y;width:calc(100% + clamp(1rem,4vw,3rem)*2)}.dark-3d-view:after{background:radial-gradient(circle at 50% 55%,transparent 0 60%,rgb(0 0 0 / .05) 84%,rgb(0 0 0 / .12) 100%),linear-gradient(180deg,rgb(0 0 0 / .02),transparent 38%,rgb(0 0 0 / .08));content:"";inset:0;pointer-events:none;position:absolute}.dark-3d-canvas{display:block;height:100%;width:100%}@media(max-width:560px){.dark-3d-view{height:clamp(300px,52vh,520px)}}.challenge-only-shell{background:#0d100e;min-height:100vh;padding:clamp(.6rem,2vw,1.25rem);width:100%}.music-challenge-panel{align-content:start;background:#111411;border:1px solid rgb(235 196 116 / .62);border-radius:8px;box-shadow:0 22px 80px #0000006b;display:grid;gap:.8rem;margin:0 auto;min-height:calc(100vh - 2.5rem);overflow:auto;padding:clamp(.85rem,2vw,1.35rem);position:relative;width:min(100%,1800px)}.music-challenge-header{border-bottom:1px solid rgb(245 243 234 / .13);display:grid;gap:.55rem;padding-bottom:.65rem}.music-challenge-title-row{align-items:end;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto}.music-challenge-header .eyebrow{margin:0 0 .2rem}.music-challenge-header h2{color:#fff7df;font-size:1.65rem;margin:0}.challenge-stage-track{display:grid;gap:0;grid-template-columns:repeat(3,minmax(92px,1fr));list-style:none;margin:0;padding:0}.challenge-stage-track li{border-bottom:3px solid rgb(245 243 234 / .16);color:#8f948c;font-size:.82rem;font-weight:800;min-width:0;padding:.35rem .65rem;text-align:center;white-space:nowrap}.challenge-stage-track li.complete{border-bottom-color:#7fc7bd;color:#bde6df}.challenge-stage-track li.active{border-bottom-color:#f5ce71;color:#fff0bd}.challenge-piece-line{align-items:baseline;color:#cbc4af;display:flex;flex-wrap:wrap;font-size:.9rem;gap:.35rem 1rem;margin:0;min-width:0}.challenge-piece-line strong{color:#fff4d1;overflow-wrap:anywhere}.challenge-piece-line span+span{border-left:1px solid rgb(245 243 234 / .18);padding-left:1rem}.challenge-stage-instruction{color:#e3dece;font-size:.96rem;margin:0;max-width:90ch}.challenge-load-error{background:#9b2a2a2e;border-left:3px solid #d56b63;color:#ffd9d4;margin:0;padding:.65rem .8rem}.score-projection{align-items:stretch;background:#d7d1bd;border:1px solid rgb(255 255 255 / .24);border-radius:8px;color:#252017;display:grid;height:clamp(420px,54vh,610px);max-height:610px;min-height:400px;min-width:0;overflow:hidden;padding:.75rem;position:relative;z-index:1}.score-paper-inline{background:#fffaf0;border-radius:6px;color:#201a12;height:100%;max-height:100%;min-height:0;min-width:0;overflow-x:auto;overflow-y:hidden;padding:.4rem;position:relative;scrollbar-gutter:stable;scroll-behavior:auto;width:100%;z-index:1}.score-osmd-strip,.score-osmd-strip>div,.score-osmd-strip svg{display:block;height:auto;max-width:none!important}.score-osmd-strip{min-height:0;position:relative}.score-playback-cursor{background:#c3172e;box-shadow:0 0 10px #c3172e66;height:calc(100% - 1.5rem);left:.75rem;opacity:0;pointer-events:none;position:absolute;top:.75rem;transform:translate(-50%);transition:opacity .12s ease;width:3px;z-index:5}.score-playback-cursor.visible{opacity:1}.score-status-inline{align-self:start;background:#181510d1;border-radius:6px;color:#fff4d1!important;font-size:.92rem!important;justify-self:start!important;margin:.75rem!important;padding:.45rem .65rem;position:absolute!important;z-index:6!important}.challenge-playback-row{align-items:start;display:grid;gap:.65rem;grid-template-columns:auto auto minmax(220px,1fr);position:relative;z-index:7}.challenge-secondary-button,.challenge-mode-button,.challenge-listening-mode button,.challenge-quiet-button{background:#272b27;border:1px solid rgb(245 243 234 / .2);color:#fff1ca}.challenge-primary-button{background:#f5ce71;border:1px solid #f5ce71;color:#17140d;font-weight:900}.challenge-quiet-button{color:#ddd6c2}.challenge-mode-button.active,.challenge-listening-mode button.active{background:#7fc7bd;border-color:#9be3d8;box-shadow:0 0 0 2px #7fc7bd2e;color:#10201d}.challenge-listening-mode{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr))}.challenge-listening-mode button:first-child{border-radius:6px 0 0 6px}.challenge-listening-mode button:last-child{border-left:0;border-radius:0 6px 6px 0}.listening-settings{min-width:0}.listening-settings summary{border:1px solid rgb(245 243 234 / .18);border-radius:6px;color:#fff1ca;cursor:pointer;font-weight:800;min-height:48px;padding:.75rem 1rem}.listening-settings[open] summary{border-color:#f4d06f94}.listening-settings-grid{display:grid;gap:.65rem;margin-top:.6rem}.listening-settings-grid label{align-items:center;color:#fff1ca;display:grid;gap:.45rem;grid-template-columns:auto minmax(90px,1fr) auto;min-width:0}.listening-settings-grid input[type=range]{min-width:0;width:100%}.challenge-setup-row{align-items:end;display:grid;gap:.75rem;grid-template-columns:minmax(240px,1fr) auto;position:relative;z-index:7}.challenge-setup-row label{color:#fff1ca;display:grid;gap:.4rem;min-width:0}.challenge-setup-row span{font-weight:800}.challenge-setup-row select{min-width:0;width:100%}.challenge-answer-stage{border-top:1px solid rgb(245 243 234 / .13);display:grid;gap:.6rem;padding-top:.75rem;position:relative;z-index:7}.challenge-answer-prompt{color:#e8dbc0!important;font-size:.92rem!important;font-weight:800;margin:0}.contour-answer{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(52px,68px));justify-content:start}.contour-answer span{align-items:center;background:#f5f3ea14;border:1px solid rgb(245 243 234 / .18);border-radius:6px;color:#ffda7c;display:flex;font-size:1.5rem;font-weight:900;justify-content:center;min-height:52px}.direction-pad{display:grid;gap:.55rem;grid-template-columns:repeat(3,minmax(70px,1fr))}.direction-pad button{font-size:1.35rem;font-weight:900;min-height:50px}.challenge-actions{display:flex;flex-wrap:wrap;gap:.55rem}.challenge-actions .challenge-primary-button{flex:1 1 190px}.challenge-actions .challenge-quiet-button{flex:0 1 auto}.challenge-review-summary{border-top:1px solid rgb(245 243 234 / .13);display:grid;gap:.65rem;justify-items:start;padding-top:.75rem;position:relative;z-index:7}.solution-summary{background:#7fc7bd1c;border-left:3px solid #7fc7bd;color:#dffbf7!important;font-size:.95rem!important;margin:0;padding:.65rem .75rem}.challenge-feedback{color:#fff1ca;font-size:.98rem!important;font-weight:800;margin:0}.score-contour-overlay{inset:0;pointer-events:none;position:absolute;z-index:4}.score-contour-marker{align-items:center;background:#147f75;border:2px solid #e6fff9;border-radius:50%;box-shadow:0 2px 7px #00000052;color:#fff;display:flex;font-size:.9rem;font-weight:900;height:26px;justify-content:center;position:absolute;transform:translate(-50%,-50%);width:26px}@media(max-width:900px){.music-challenge-title-row{align-items:start;grid-template-columns:1fr}.challenge-stage-track{width:100%}.challenge-playback-row{grid-template-columns:auto minmax(260px,auto) minmax(190px,1fr)}}@media(max-width:720px){.challenge-only-shell{padding:0}.music-challenge-panel{border-left:0;border-radius:0;border-right:0;min-height:100vh;padding:.75rem}.music-challenge-header h2{font-size:1.4rem}.challenge-piece-line span+span{border-left:0;padding-left:0}.score-projection{height:clamp(380px,52vh,520px);min-height:360px;padding:.45rem}.challenge-playback-row,.challenge-setup-row{grid-template-columns:1fr}.challenge-listening-mode{grid-template-columns:repeat(2,minmax(0,1fr))}.listening-settings-grid label{grid-template-columns:1fr}.challenge-actions .challenge-quiet-button{flex:1 1 130px}}@media(max-width:440px){.challenge-stage-track{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-stage-track li{font-size:.73rem;padding-inline:.2rem}.challenge-listening-mode{grid-template-columns:1fr}.challenge-listening-mode button:first-child,.challenge-listening-mode button:last-child{border:1px solid rgb(245 243 234 / .2);border-radius:6px}}h1{font-size:3.2rem}h2{font-size:1.75rem}p{font-size:1.05rem}.home-shell{background-attachment:fixed;padding-top:clamp(4.75rem,8vh,6rem)}.home-shell .intro-panel,.home-shell .voice-panel{width:min(900px,100%)}.home-shell .intro-panel{padding-right:8rem}.locale-switcher{align-items:center;background:#0b0a0fe6;border:1px solid rgb(244 208 111 / .3);border-radius:999px;display:flex;gap:.2rem;padding:.25rem;position:absolute;right:clamp(1rem,4vw,3rem);top:clamp(1rem,3vw,2rem);z-index:3}.locale-switcher button{background:transparent;border:0;border-radius:999px;color:#eadfc8;min-height:44px;min-width:48px;padding:.45rem .8rem}.locale-switcher button.active{background:#f5a623;color:#17110b}.phase-library{display:grid;gap:.85rem;width:min(1240px,100%)}.phase-library-header{align-items:end;display:flex;justify-content:space-between}.phase-library-header h2,.phase-library-header p{margin:0}.phase-library-header p{color:#d5cbb7;font-size:.92rem}.phase-library .campaign-board{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));width:100%}.campaign-card{min-height:232px}.campaign-card h3{color:#fff7df;font-size:1.2rem;line-height:1.25;margin:0 0 .7rem}.campaign-description{color:#e2d9c7;font-size:.95rem;line-height:1.45}.campaign-stats{color:#f4d06f;font-size:.88rem;font-weight:800;margin-top:.85rem}.campaign-card .primary-action{min-width:0;width:100%}.music-gate-progress{color:#f4d06f;font-size:.95rem;font-weight:800;margin-top:.65rem}@media(max-width:599px){h1{font-size:2.25rem}h2{font-size:1.4rem}p{font-size:1rem}.home-shell{background-attachment:scroll;padding:5rem .85rem 1.25rem}.home-shell .intro-panel{padding-right:0}.locale-switcher{right:.85rem;top:.85rem}.phase-library-header{align-items:start;flex-direction:column;gap:.2rem}.phase-library .campaign-board{grid-template-columns:minmax(0,1fr)}.campaign-card{gap:1rem;min-height:0}.campaign-card h3{font-size:1.1rem}.status-panel h1{font-size:1.7rem;line-height:1.15}.music-gate-progress{font-size:.88rem}}.app-topbar{align-items:center;display:flex;gap:.65rem;position:absolute;right:clamp(1rem,4vw,3rem);top:clamp(1rem,3vw,2rem);z-index:4}.app-topbar .locale-switcher{position:static}.topbar-link{background:#0b0a0fe6;border:1px solid rgb(243 169 51 / .5);color:#f9c978;min-height:44px;padding:.45rem .85rem}.home-shell .intro-panel{border-left-color:#f3a933}.home-shell .eyebrow,.home-shell .campaign-kicker,.home-shell .campaign-stats{color:#f9c978}.home-shell .voice-panel,.home-shell .campaign-card{background:#100f14d1;border-color:#f9c9783d}.home-shell .active-campaign{border-color:#f9c978d1}.home-shell .primary-action,.home-shell .voice-controls button,.controls button,.music-challenge-panel .challenge-primary-button,.music-challenge-panel .direction-pad button{background:#f3a933;border-color:#f3a933;color:#1c1208}.home-shell .primary-action:hover,.home-shell .voice-controls button:hover,.controls button:hover,.music-challenge-panel .challenge-primary-button:hover,.music-challenge-panel .direction-pad button:hover,.home-shell .campaign-card .primary-action{background:#f9c978;border-color:#f9c978}.home-shell .campaign-card .primary-action:hover{background:#ffdda3;border-color:#ffdda3}.home-shell select,.music-challenge-panel select{background:#fff7e8;border-color:#f9c978;color:#1c1208}.home-shell button:focus-visible,.home-shell select:focus-visible,.about-shell button:focus-visible,.music-challenge-panel button:focus-visible,.music-challenge-panel select:focus-visible,.controls button:focus-visible{outline-color:#f9c978}.music-challenge-panel{border-color:#f3a933a8}.music-challenge-panel .challenge-stage-track li.complete{border-bottom-color:#d27a27;color:#f9c978}.music-challenge-panel .challenge-stage-track li.active{border-bottom-color:#f3a933;color:#fff7e8}.music-challenge-panel .challenge-mode-button.active,.music-challenge-panel .challenge-listening-mode button.active{background:#f9c978;border-color:#f9c978;box-shadow:0 0 0 2px #f3a93333;color:#1c1208}.music-challenge-panel input[type=range]{accent-color:#f3a933}.music-challenge-panel .contour-answer span{color:#f9c978}.about-shell{align-content:start;background:linear-gradient(90deg,#0c0a08ad,#100f0c85 48%,#0c0a08b3),url(/assets/images/background-hero.png) center 36% / cover fixed;isolation:isolate;padding-top:clamp(5.5rem,10vh,7rem);position:relative}.about-shell>*{position:relative;z-index:1}.about-content{width:min(1080px,100%)}.about-content>.eyebrow{color:#f9c978}.about-content h1{color:#fff7e8;font-size:clamp(2.4rem,5vw,4.4rem);max-width:16ch}.about-intro{color:#f5dfbd;font-size:1.1rem;line-height:1.65;max-width:72ch}.about-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.5rem}.about-card{background:#100f14d6;border:1px solid rgb(249 201 120 / .22);border-radius:8px;padding:1.1rem}.about-card h2{color:#f9c978;font-size:1.15rem;margin:0 0 .55rem}.about-card p{color:#f5dfbd;font-size:.98rem;line-height:1.58}@media(max-width:599px){.app-topbar{right:.85rem;top:.85rem}.topbar-link{padding-inline:.65rem}.about-shell{background-attachment:scroll;padding:5.5rem .85rem 1.25rem}.about-grid{grid-template-columns:minmax(0,1fr)}}
