:root{font-family:Georgia,'Times New Roman',serif;color:#f3f1e6;background:#91a9ab;color-scheme:dark;--gold:#e2c991;--panel:#182e34;--muted:#b7c7c5;--line:#ffffff22}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.7}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #f4dc9d;outline-offset:4px}button{touch-action:manipulation}button svg,span svg{display:block}button{color:inherit}kbd{font-family:system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.04em;background:#ffffff10;border:1px solid #ffffff25;border-radius:4px;padding:3px 5px;white-space:nowrap}#game{display:block;width:100%;height:100%;touch-action:none;outline:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#0b233b36,transparent 19%,transparent 60%,#0c25254d),radial-gradient(ellipse at center,transparent 50%,#16303835 100%)}.topbar{position:fixed;top:0;left:0;right:0;padding:22px 30px;display:flex;align-items:center;justify-content:space-between;z-index:5;gap:20px;background:linear-gradient(#11283855,transparent)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:#fff4d7;letter-spacing:.14em;font-size:22px;line-height:1.1;text-shadow:0 2px 7px #14232e55}.brand-icon{height:46px;width:46px;border:1px solid #e2c99177;border-radius:50%;display:grid;place-items:center;background:#1c353755}.brand-icon svg{width:28px;height:28px}.brand-sub{display:block;font:9px/1.8 system-ui,sans-serif;letter-spacing:.17em;margin-top:5px}.location-chip{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;font:12px system-ui,sans-serif;color:#f2f1e5;letter-spacing:.04em;text-shadow:0 1px 5px #1b353d;background:#1b373655;padding:10px 16px;border:1px solid #ffffff22;border-radius:24px;white-space:nowrap}.status-dot{width:5px;height:5px;border-radius:50%;background:#e6d39c;box-shadow:0 0 7px #e8d3a380}nav{display:flex;gap:7px;align-items:center}.toolbar-button,.icon-button{height:42px;min-width:42px;padding:0 11px;display:flex;gap:8px;align-items:center;justify-content:center;border:1px solid #e6e7d533;border-radius:9px;background:#193638aa;backdrop-filter:blur(14px);font:12px system-ui,sans-serif;transition:background .2s,transform .2s}.toolbar-button:hover,.icon-button:hover{background:#35554ff0;transform:translateY(-1px)}.toolbar-button svg{width:18px;height:18px}.welcome{position:fixed;left:7%;top:50%;transform:translateY(-40%);z-index:3;text-shadow:0 2px 24px #12303866}.welcome:before{content:'';position:absolute;inset:-130px -120px -80px -250px;background:radial-gradient(ellipse,#1330378a,transparent 68%);z-index:-1;pointer-events:none}.overline{display:flex;align-items:center;gap:10px;font:10px/1.5 system-ui,sans-serif;letter-spacing:.21em;font-weight:600;color:var(--gold)}.overline>span{height:1px;width:27px;background:var(--gold)}.welcome h1{font-size:clamp(86px,9vw,150px);font-weight:400;letter-spacing:-.04em;line-height:.95;margin:20px 0 13px}.welcome h2{font-size:clamp(24px,2.25vw,36px);font-weight:400;margin:0;letter-spacing:-.02em}.welcome>p{font:15px/1.9 system-ui,sans-serif;color:#e0e9e2;margin:20px 0}.element-emblems{display:flex;gap:18px;margin:24px 0 28px}.element-emblems span{border:1px solid currentColor;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;color:#a8d6e3;background:#1a343752}.element-emblems span:nth-child(2){color:#e6b08b}.element-emblems span:nth-child(3){color:#b3d2a6}.element-emblems span:nth-child(4){color:#d5d4e7}.element-emblems svg{width:20px;height:20px}.primary-button{background:#ead7aa;color:#283c3d;display:flex;align-items:center;justify-content:space-between;gap:30px;min-width:250px;border:1px solid #f5e6bf;border-radius:8px;padding:17px 22px;font:600 14px system-ui,sans-serif;box-shadow:0 5px 22px #172f3340;transition:background .2s,transform .2s}.primary-button:hover{background:#f5e4bb;transform:translateY(-2px)}.welcome .start-note{font:11px system-ui,sans-serif;color:#d4dfd7;margin-top:15px;letter-spacing:.03em}.start-note span{margin:0 6px;color:#dfc591}.place-card{position:fixed;bottom:83px;left:30px;max-width:310px;z-index:2;pointer-events:none;text-shadow:0 2px 12px #143b3b}.place-card:before{content:'';position:absolute;inset:-15px -25px -20px -30px;background:radial-gradient(ellipse at left bottom,#1638348a,transparent 75%);z-index:-1}.place-card h2{font-size:29px;font-weight:400;line-height:1.15;margin:10px 0}.place-card p{font:12px/1.65 system-ui,sans-serif;color:#d4e3d9;max-width:280px;margin:8px 0 0}.place-card.compact p{display:none}.place-card.compact h2{font-size:23px}.place-card.compact .overline{font-size:9px}.controls-bar{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:10px 15px;white-space:nowrap;background:#153339a1;border:1px solid #d7e0d424;border-radius:9px;color:#e0e9dd;backdrop-filter:blur(12px);font:11px system-ui,sans-serif}.controls-bar span{display:flex;align-items:center;gap:7px}.controls-bar i{width:1px;height:12px;background:#fff2}.walk-hint{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);color:#f1efe0;font:12px system-ui,sans-serif;text-shadow:0 1px 5px #163838;background:#19373870;border-radius:24px;padding:8px 15px;pointer-events:none}.interaction{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);z-index:4;white-space:nowrap}.interaction button{display:flex;align-items:center;gap:14px;background:#152f35ed;border:1px solid #ddc18999;border-radius:10px;padding:13px 18px;color:#f4e8ca;box-shadow:0 4px 20px #0003;font:14px system-ui,sans-serif}.interaction kbd{background:#dfc792;color:#253c3e;border:0;padding:5px 8px;font-size:13px}.door-label{position:fixed;transform:translate(-50%,-100%);font:11px system-ui,sans-serif;white-space:nowrap;color:#f6ead1;background:#1c3739cb;border:1px solid #ebd6a34a;border-radius:6px;padding:6px 9px;pointer-events:none;box-shadow:0 2px 10px #0002}.door-label:after{content:'';position:absolute;bottom:-5px;left:50%;width:7px;height:7px;background:#1c3739;transform:translateX(-50%) rotate(45deg);border-right:1px solid #ebd6a34a;border-bottom:1px solid #ebd6a34a}.toast{position:fixed;top:110px;left:50%;transform:translateX(-50%);border:1px solid #e3cd9466;background:#1a3437ee;border-radius:8px;padding:12px 18px;font:13px system-ui,sans-serif;z-index:9;max-width:85vw;text-align:center}.loading{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#1c343b;z-index:20;font:14px system-ui,sans-serif;color:#d7d5bf;transition:opacity .6s}.loading-orbit{width:42px;height:42px;border:1px solid #e7d1a133;border-top-color:#e7d1a1;border-radius:50%;animation:spin 1.8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}dialog{color:#eef0df;background:linear-gradient(145deg,#233f44,#172d35);border:1px solid #d7c39666;box-shadow:0 30px 120px #08191aaa;border-radius:16px;padding:30px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 40px);overflow:auto}dialog::backdrop{background:#0b202b75;backdrop-filter:blur(7px)}.dialog-top{display:flex;justify-content:space-between;align-items:flex-start;gap:25px}.dialog-top h2{font-size:34px;font-weight:400;margin:7px 0 5px}.dialog-top .icon-button{border-color:#ffffff18;background:#ffffff08}.dialog-description{font:13px/1.75 system-ui,sans-serif;color:var(--muted);margin:7px 0 24px}.map-dialog{width:660px}.academy-map{display:grid;grid-template-columns:1fr 92px 1fr;gap:12px;position:relative}.map-room{border:1px solid color-mix(in srgb,var(--room) 38%,transparent);background:linear-gradient(140deg,color-mix(in srgb,var(--room) 12%,transparent),#ffffff03);border-radius:9px;min-height:76px;display:flex;align-items:center;text-align:left;gap:13px;padding:14px;position:relative;color:var(--room);transition:background .2s,transform .2s}.map-room:hover{background:color-mix(in srgb,var(--room) 22%,transparent);transform:translateY(-2px)}.map-room span{font:13px/1.3 system-ui,sans-serif;display:block;color:#e2e9de}.map-room small{display:block;font:9px/1.5 system-ui,sans-serif;letter-spacing:.06em;color:var(--room);margin-top:4px}.map-room.current:before{content:'';position:absolute;top:8px;right:8px;width:6px;height:6px;background:#eac994;border-radius:50%;box-shadow:0 0 6px #eac99477}.map-room.current{border-color:#ead69f}.map-room[data-room='hall']{grid-column:2;grid-row:1/4;display:flex;flex-direction:column;text-align:center;justify-content:center;padding:9px}.map-room[data-room='hall'] span{font-size:12px}.map-room[data-room='stillness']{grid-row:1;grid-column:1}.map-room[data-room='harmony']{grid-row:1;grid-column:3}.map-room[data-room='earth']{grid-row:2;grid-column:1}.map-room[data-room='air']{grid-row:2;grid-column:3}.map-room[data-room='water']{grid-row:3;grid-column:1}.map-room[data-room='fire']{grid-row:3;grid-column:3}.map-room[data-room='courtyard']{grid-column:1/4;justify-content:center;text-align:left;min-height:84px}.map-key{display:flex;align-items:center;gap:7px;font:11px system-ui,sans-serif;color:#becec7;margin-top:19px}.key-dot{width:6px;height:6px;background:#eac994;border-radius:50%}.map-key-note{margin-left:auto;color:#93aaa8}.help-dialog{width:520px}.help-rows{display:flex;flex-direction:column;margin-top:25px}.help-rows>div{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ffffff12;padding:11px 0;font:13px system-ui,sans-serif;color:#c9d7d0}.help-rows b{font-weight:400;color:#eef0dd;font-size:12px}.help-note{font:12px/1.7 system-ui,sans-serif;color:#9db7b3}.credit{font:12px/1.8 system-ui,sans-serif;color:#d4c092;border-top:1px solid #ffffff18;padding-top:17px;margin-bottom:0}.credit span{color:#99b1ae}.music-dialog{width:470px}.music-controls{display:flex;align-items:center;gap:25px}.music-controls label{display:flex;flex-direction:column;gap:8px;font:12px system-ui,sans-serif;flex:1;color:#c3d0c8}.music-controls input{width:100%;accent-color:#ddc493;cursor:pointer}.secondary-button{font:13px system-ui,sans-serif;background:#dfc58e;color:#233b3b;border:0;border-radius:7px;padding:12px 19px;white-space:nowrap}.transition{position:fixed;inset:0;background:#1f383d;opacity:0;pointer-events:none;transition:opacity .22s;z-index:12}.transition.active{opacity:1}.error-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:100;background:#18353c;padding:30px;border:1px solid #d7bd83;border-radius:12px;width:min(450px,90vw);text-align:center}.error-panel h1{font-size:28px;font-weight:400}.error-panel p{font:14px/1.8 system-ui,sans-serif}.error-panel button{padding:12px 20px;border:0;border-radius:5px;background:#e4cc9a;color:#273d3e}.touch-actions,#joystick{pointer-events:auto;touch-action:none}.touch-actions{position:absolute;right:25px;bottom:27px;display:flex;gap:13px;align-items:flex-end}.touch-actions button{height:57px;width:57px;border-radius:50%;background:#19383cbb;border:1px solid #e1d09c88;display:grid;place-items:center;color:#f3e0ad;backdrop-filter:blur(9px);font:14px system-ui,sans-serif}.touch-actions #touch-use{height:68px;width:68px}.touch-actions button:disabled{opacity:.45;cursor:default}#joystick{width:115px;height:115px;border:1px solid #ddebd944;border-radius:50%;position:absolute;bottom:24px;left:24px;background:#183a3825;display:grid;place-items:center;backdrop-filter:blur(3px)}#joystick-knob{width:45px;height:45px;background:#d4e4d744;border:1px solid #e5e9cf88;border-radius:50%;pointer-events:none}#touch-controls{position:fixed;inset:0;pointer-events:none;z-index:4}.touch-enabled .controls-bar{display:none}.touch-enabled .place-card{bottom:165px}.touch-enabled .interaction{bottom:155px}.touch-enabled .walk-hint{bottom:165px}
@media(max-width:950px){.location-chip{display:none}.place-card{max-width:240px}.place-card p{font-size:11px}.controls-bar{gap:10px;font-size:10px}.welcome{left:7%}}
@media(max-width:600px){.topbar{padding:calc(14px + env(safe-area-inset-top)) 15px 12px;gap:10px}.brand{gap:9px;font-size:18px}.brand-icon{width:34px;height:34px}.brand-icon svg{width:22px;height:22px}.brand-sub{font-size:7px;letter-spacing:.1em}.toolbar-button{height:40px;min-width:38px;padding:0 8px}.toolbar-button .button-label,nav kbd{display:none}nav{gap:5px}.welcome{left:7%;top:47%;transform:translateY(-32%)}.welcome h1{font-size:91px}.welcome h2{font-size:27px}.welcome>p{font-size:13px}.welcome .overline{font-size:9px}.element-emblems{margin:22px 0;gap:15px}.primary-button{min-width:235px;padding:15px 18px}.welcome:before{inset:-100px -90px -80px -160px;background:radial-gradient(ellipse,#14333ca8,transparent 70%)}.place-card{left:20px;max-width:235px}.place-card p{display:none}.place-card h2{font-size:23px}.place-card .overline{font-size:8px}.controls-bar{display:none}.walk-hint{font-size:11px;bottom:45px}.interaction{bottom:45px}.interaction button{font-size:12px;padding:12px 14px;gap:8px}.interaction button>svg{width:16px}dialog{padding:22px 18px}.dialog-top h2{font-size:28px}.dialog-description{font-size:12px}.academy-map{grid-template-columns:1fr 63px 1fr;gap:8px}.map-room{padding:11px 8px;gap:7px;min-height:75px}.map-room>svg{width:19px;min-width:19px}.map-room span{font-size:11px}.map-room small{font-size:8px}.map-room[data-room='hall']{padding:6px}.map-room[data-room='hall'] span{font-size:10px}.map-key-note{font-size:9px}.help-rows>div{font-size:12px;gap:8px}.music-controls{gap:15px}.music-dialog .dialog-top h2{font-size:26px}}
@media(max-height:520px){.welcome{top:53%;transform:translateY(-38%)}.welcome h1{font-size:68px;margin:12px 0 5px}.welcome h2{font-size:22px}.welcome>p{margin:10px 0;font-size:12px}.element-emblems{margin:12px 0}.element-emblems span{width:29px;height:29px}.welcome .start-note{margin:8px 0}.topbar{padding-top:12px}.place-card p{display:none}.place-card{bottom:65px}.touch-enabled .place-card{bottom:150px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.companion-label{position:fixed;transform:translate(-50%,-100%);padding:5px 13px;border:1px solid #e6dcffb3;border-radius:20px;background:#293b57cf;color:#faf6ff;font:600 14px/1.3 system-ui,sans-serif;letter-spacing:.02em;box-shadow:0 2px 12px #18283b40;pointer-events:none;z-index:2}
.home-map{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #ffffff22;padding-top:14px}.home-map .map-room{min-height:66px}.map-room:disabled{opacity:.48;cursor:not-allowed;transform:none}.map-key{align-items:flex-start}.map-key-note{max-width:65%;text-align:right;line-height:1.6}.objective{position:fixed;right:28px;top:92px;width:280px;padding:16px 18px;border:1px solid #e0ce9c55;border-radius:12px;background:#1b353ce8;backdrop-filter:blur(12px);pointer-events:none;z-index:2;box-shadow:0 4px 24px #17323830}.objective .overline{font-size:9px}.objective strong{display:block;font:400 21px/1.2 Georgia,serif;margin:9px 0}.objective p{font:12px/1.65 system-ui,sans-serif;color:#dae2d9;margin:0}.story-dialog{width:530px}.story-dialog .dialog-top h2{font-size:29px;line-height:1.2}.story-dialog .dialog-description{font-size:15px;line-height:1.85;margin:20px 0 26px}.story-dialog .primary-button{min-width:210px}.in-ceremony #controls-bar,.in-ceremony #walk-hint,.in-ceremony #touch-controls,.in-ceremony #interaction{display:none!important}#hover-button:disabled{cursor:not-allowed;opacity:.38}
@media(max-width:600px){.objective{top:75px;right:14px;width:230px;padding:11px 13px}.objective strong{font-size:17px;margin:5px 0}.objective p{font-size:10px;line-height:1.5}.objective .overline{font-size:8px}.home-map{gap:8px}.story-dialog .dialog-top h2{font-size:24px}.story-dialog .dialog-description{font-size:13px}}
@media(max-height:520px){.objective{top:68px;width:240px;padding:10px 13px}.objective strong{font-size:17px;margin:5px 0}.objective p{font-size:10px}}

.day-clock{display:block;color:#f0d7ab;font-size:11px;letter-spacing:.035em;margin:8px 0 10px;font-variant-numeric:tabular-nums}
.sleep-overlay{position:fixed;inset:0;z-index:100;pointer-events:auto}
.sleep-overlay[hidden]{display:none}
#sleep-shade{width:100%;height:100%;background:#111c2d;color:#f6ead2;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px}
#sleep-title{font-family:Georgia,serif;font-size:clamp(28px,4vw,48px);margin:0 0 16px}
#sleep-shade span{font-size:14px;color:#bbc7d7}
.sleeping .topbar,.sleeping #objective,.sleeping #controls-bar,.sleeping #touch-controls,.sleeping #interaction,.sleeping #door-labels,.sleeping #pearl-label,.sleeping #walk-hint,.sleeping #place-card,.sleeping #toast{visibility:hidden;pointer-events:none}

.quest-checklist{padding:8px 0 0;margin:8px 0 0;list-style:none;border-top:1px solid #e0ce9c33;display:grid;gap:6px;font:11px/1.45 system-ui,sans-serif;color:#e4eddf}.quest-checklist[hidden]{display:none}.quest-checklist .gathered{color:#a9d5b5;opacity:.72}
.awakening-overlay{position:fixed;inset:0;z-index:90;pointer-events:auto;isolation:isolate}
.power-dock{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:6;width:min(480px,calc(100% - 28px));font:14px/1.5 system-ui,sans-serif;pointer-events:none}
.element-buttons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;pointer-events:auto;padding:7px;border:1px solid #d8c49866;background:#152f3aef;border-radius:14px;box-shadow:0 8px 30px #08152466}
.element-button{position:relative;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#ffffff06;border:1px solid #ffffff16;border-radius:9px;padding:7px 3px;font:12px/1.2 system-ui,sans-serif;text-align:center}.element-button kbd{position:absolute;top:4px;left:6px;font-size:9px;opacity:.5}.element-button.selected{background:#ffffff16;border-color:currentColor;box-shadow:inset 0 0 12px #ffffff08}.element-button:hover{background:#ffffff15}
.power-actions,.power-target,.held-plant{pointer-events:auto;border:1px solid #cbd1e04a;border-radius:12px;padding:15px 17px;margin-bottom:9px;background:#172e3ef5;color:#eef2ef;box-shadow:0 4px 25px #0d1e3440}.power-heading{display:flex;justify-content:space-between;align-items:center}.power-heading strong{font:24px Georgia,serif}.power-heading button{border:0;background:transparent;font:26px/1 system-ui;color:#bdcdd8;min-width:32px;min-height:32px}.power-actions p{margin:4px 0 12px}.power-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.power-action-buttons button,.power-target button,.held-plant button{background:#d8e6ec;color:#203849;border:0;border-radius:7px;padding:11px 12px;font:600 13px/1.3 system-ui,sans-serif;min-height:42px}.power-action-buttons button:disabled{opacity:.4;cursor:not-allowed}.power-actions .power-help{font-size:12px;color:#b8cdd6;margin:12px 0 0}.power-target,.held-plant{display:flex;align-items:center;gap:12px}.power-target span,.held-plant span{flex:1}.power-target button,.held-plant button{padding:8px 12px;flex:none;background:#31495b;color:#e9f1f2}
.has-powers #controls-bar,.has-powers #place-card,.has-powers #walk-hint{display:none}.has-powers #power-controls{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:6;width:min(480px,calc(100% - 28px));max-height:calc(100dvh - 100px);overflow:auto;pointer-events:none}.has-powers .power-dock{position:static;transform:none;width:100%}.has-powers #interaction{position:static;transform:none;display:flex;justify-content:center;margin-bottom:9px;white-space:normal;pointer-events:auto}.touch-enabled.has-powers #power-controls{bottom:155px;max-height:calc(100dvh - 240px)}
@media(max-width:600px){.element-buttons{gap:4px;padding:5px}.element-button{min-height:62px;font-size:11px}.element-button kbd{display:none}.power-actions{padding:12px 14px}.power-heading strong{font-size:21px}.power-help{max-height:62px;overflow:auto}.power-action-buttons button{font-size:12px;padding:10px 7px}.power-target,.held-plant{font-size:12px;padding:10px 12px}}
@media(max-height:520px){.touch-enabled.has-powers #power-controls{bottom:16px;width:min(440px,calc(100% - 280px));max-height:calc(100dvh - 92px)}.touch-enabled .element-button span{font-size:10px}.power-actions .power-help{display:none}.power-actions{padding:9px 12px}.power-actions p{font-size:12px;margin-bottom:6px}.power-action-buttons button{padding:8px 5px;min-height:36px}.power-heading strong{font-size:20px}.power-open #objective{visibility:hidden}}
.awakening-red,.awakening-cracks,.awakening-dark{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}
.awakening-red{background:radial-gradient(ellipse at 50% 43%,#cb2334a6 5%,#990d27 65%,#390515 100%)}
.awakening-cracks{filter:drop-shadow(0 0 3px #ac0d28)}
.awakening-dark{background:radial-gradient(ellipse at 50% 43%,#02020beb 0%,#010107 85%)}
.awakening-caption{position:absolute;bottom:max(7vh,24px);left:50%;transform:translateX(-50%);width:min(640px,calc(100% - 40px));padding:18px 24px;text-align:center;background:#0c142be8;border:1px solid #f2d7ba40;border-radius:12px;color:#fff4e7}
.awakening-caption>span{font:600 14px/1.5 system-ui,sans-serif;letter-spacing:.045em;color:#f1d29c}
.awakening-caption p{font:22px/1.5 Georgia,serif;margin:8px 0 12px;text-wrap:pretty}
.awakening-caption small{font:12px/1.4 system-ui,sans-serif;color:#bfc6da}
.scene-sound{position:absolute;top:max(20px,env(safe-area-inset-top));right:20px;padding:10px 16px;background:#111b32dd;color:#fff4e7;border:1px solid #e3d4b477;border-radius:8px;font:14px system-ui,sans-serif}
.awakening .topbar,.awakening #objective,.awakening #controls-bar,.awakening #touch-controls,.awakening #interaction,.awakening #door-labels,.awakening #pearl-label,.awakening #walk-hint,.awakening #place-card,.awakening #toast{visibility:hidden;pointer-events:none}
@media(max-width:600px),(max-height:520px){.awakening-caption{bottom:18px;padding:13px 17px}.awakening-caption p{font-size:18px;margin:5px 0 8px}.awakening-caption small{font-size:11px}}
@media(max-width:600px),(max-height:520px){.quest-checklist{font-size:10px;gap:3px;padding-top:6px;margin-top:6px}.objective:has(.quest-checklist:not([hidden])){max-height:calc(100vh - 170px);overflow-y:auto;pointer-events:auto}}

.replay-link{display:block;margin-top:14px;padding:6px 0;border:0;background:transparent;color:#f5e2b9;font:14px system-ui,sans-serif;text-decoration:underline;text-underline-offset:4px}.replay-dialog{width:600px}.replay-dialog .dialog-description{font-size:15px;line-height:1.6}.replay-days{display:grid;grid-template-columns:1fr 1fr;gap:10px}.replay-day{display:flex;flex-direction:column;gap:7px;min-height:116px;padding:15px;text-align:left;border:1px solid #d9c59255;border-radius:10px;background:#ffffff05}.replay-day>span{font:14px system-ui,sans-serif;color:#e5ca91}.replay-day strong{font:20px/1.2 Georgia,serif;font-weight:400}.replay-day small{font:12px system-ui,sans-serif;color:#b5cbc8}.replay-day.selected{border-color:#efd69c;background:#e2c99118;box-shadow:inset 3px 0 #efd69c}.replay-day:disabled{cursor:not-allowed;opacity:.42}.replay-pages{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:14px;font:14px system-ui,sans-serif}.replay-dialog .primary-button{width:100%;justify-content:center}.replay-dialog .help-note{font-size:13px}
@media(max-width:600px){.brand-sub{display:none}.replay-day{min-height:110px;padding:12px}.replay-day strong{font-size:18px}.replay-dialog .dialog-description{font-size:14px}}
@media(max-width:380px){.brand>span:last-child{display:none}.replay-days{grid-template-columns:1fr}.replay-day{min-height:90px}}
.replay-restore-details{margin-top:20px;border-top:1px solid #ffffff22;padding-top:16px;font:14px/1.6 system-ui,sans-serif;color:#c8d9d4}.replay-restore-details summary{cursor:pointer;color:#e8d3a8}.replay-restore-details p{margin:10px 0}.replay-restore-row{display:flex;gap:10px;margin-top:6px}.replay-restore-row input{min-width:0;width:90px;flex:1;background:#102a34;border:1px solid #cadacf66;border-radius:7px;color:#f4ebd9;padding:10px;font:16px system-ui,sans-serif}.replay-restore-row button{white-space:normal;font-size:14px}

/* Wave's quiet lessons keep both fairies visible above the controls. */
.training-dialog { position:fixed; inset:auto 1rem max(1rem,env(safe-area-inset-bottom)); margin-inline:auto; width:min(30rem,calc(100% - 2rem)); max-height:70dvh; padding:1.3rem 1.5rem; text-align:center; overflow:auto; }
.training-dialog::backdrop { background:rgba(12,27,43,.2); backdrop-filter:none; }
.training-dialog h2 { margin:.4rem 0 .8rem; }
.training-dialog p { font-size:1rem; line-height:1.5; }
.training-dialog progress { width:100%; height:.7rem; margin:.25rem 0 1rem; accent-color:#9bd5e8; }
#training-hold { width:100%; touch-action:none; user-select:none; -webkit-user-select:none; }
#training-hold[aria-pressed="true"] { background:#c5e8ed; color:#123a48; }
.training-dialog .training-help { font-size:.875rem; opacity:.85; }
#training-cancel { padding:.5rem 1rem; font-size:.875rem; }
body.training #controls-bar,body.training #touch-controls,body.training #objective,body.training #interaction,body.training #walk-hint,body.training #door-labels,body.training .companion-label,body.training #place-card { visibility:hidden; }
.power-control { margin:0 0 .35rem; font-size:.875rem; text-align:center; color:#e2f3fa; text-shadow:0 1px 3px #071c2d; }

#training-symbol { display:flex; justify-content:center; margin:.4rem auto; }
.element-button.mastered { border-color:#d3e6b7; }
.element-button.mastered:after { content:'✓'; position:absolute; top:.1rem; left:.4rem; font-size:.75rem; color:#d3e6b7; }
.power-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.power-action-buttons button{text-align:left;min-width:0;min-height:44px}
.power-shortcuts{font:11px/1.5 system-ui,sans-serif;text-align:center;color:#e2eadc;margin:7px 4px 0;text-shadow:0 1px 3px #13262d}
.power-open .element-button kbd{visibility:hidden}
.power-menu{pointer-events:auto;max-height:min(390px,50dvh);overflow-y:auto;overscroll-behavior:contain;border:1px solid #cbd1e04a;border-radius:14px;padding:12px;margin:0 0 9px;background:#172e3ef5;color:#eef2ef;box-shadow:0 8px 30px #08152466}
.has-powers #power-controls{display:flex;flex-direction:column;overflow:visible}
.has-powers .power-dock{display:flex;flex-direction:column;min-height:0}
.power-menu{min-height:0;flex-shrink:1}
.power-toggle,.power-target,.held-plant,.combat-hud,.forest-fire-hud,.has-powers #interaction{flex-shrink:0}
.power-menu .power-heading button{min-width:44px;min-height:44px;cursor:pointer}
.power-menu #power-question{margin:2px 0 10px;font-size:12px;color:#c2d9e0}
.power-menu .element-buttons{box-shadow:none;padding:4px;gap:4px}
.power-menu .power-actions{border:0;box-shadow:none;background:none;padding:10px 0 0;margin:0}
.power-menu .power-control{font-size:11px;margin:10px 0 0}
.power-toggle{display:flex;align-items:center;justify-content:center;gap:9px;pointer-events:auto;min-height:48px;min-width:132px;margin:0 auto;padding:10px 20px;border:1px solid #d8c49899;border-radius:14px;background:#173641f5;color:#f4e7cf;box-shadow:0 5px 20px #08152455;font:600 15px/1.3 system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.power-toggle.selected{background:#294f5e;border-color:#e6d5a7}.power-toggle:disabled,.power-attack:disabled{opacity:.45;cursor:not-allowed}
.combat-power-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.power-attack{display:flex;align-items:center;gap:8px;min-height:52px;min-width:0;padding:9px 10px;border:1px solid #d8e6ec33;border-radius:9px;background:#ffffff08;font:600 12px/1.3 system-ui,sans-serif;text-align:left;cursor:pointer;touch-action:manipulation}
.power-attack span{flex:1;min-width:0;overflow-wrap:anywhere}.power-attack svg{flex:none}.power-attack kbd{font:10px system-ui,sans-serif;opacity:.6}.power-attack:hover{background:#ffffff16}
.power-toggle:focus-visible,.power-attack:focus-visible{outline:2px solid #f4e7cf;outline-offset:2px}
.in-combat .power-target{font-size:12px;padding:8px 12px}.in-combat .power-target button{min-height:44px}
@media(max-width:600px){.power-menu{padding:10px}.power-attack{padding:8px;font-size:12px}.power-attack kbd{display:none}}
@media(max-height:560px){.power-menu{max-height:48dvh;padding:8px}.combat-power-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.power-attack{padding:6px;gap:5px;font-size:11px;min-height:48px}.power-attack svg{width:18px}.power-attack kbd{display:none}.power-menu .power-heading strong{font-size:19px}.power-toggle{min-height:44px;padding:8px 18px}}
.combat-hud{padding:10px 14px;margin:0 0 8px;border:1px solid #e8c29180;border-radius:9px;background:#172f38ed;color:#f4e7cf;pointer-events:auto;font:12px/1.45 system-ui,sans-serif}
.combat-hud progress{display:block;width:100%;height:8px;margin:6px 0;accent-color:#8edcb2}
.combat-hud p{margin:0;min-height:1.4em;color:#d4e1e4}
@media(max-height:560px){.combat-hud{padding:6px 10px;font-size:11px}.combat-hud p{max-height:2.8em;overflow:auto}.power-shortcuts{font-size:10px}.power-action-buttons button{min-height:34px}}

.training-dialog.puzzling { width:min(42rem,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); padding:1rem 1.25rem; }
.puzzling #training-symbol { display:none; }
.puzzling h2 { font-size:1.7rem; margin:.25rem 0; }
.puzzling #training-instruction { margin:.5rem auto 1rem; max-width:34rem; }
.training-puzzle { display:grid; grid-template-columns:minmax(0,1fr) 10rem; gap:1.25rem; align-items:start; margin-bottom:1rem; }
.training-pieces { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; aspect-ratio:1; width:100%; padding:4px; border:1px solid #dac49470; border-radius:8px; background:#0d222b; }
.training-piece { position:relative; min-width:0; min-height:0; aspect-ratio:1; border:0; border-radius:3px; padding:0; background-size:300% 300%; background-repeat:no-repeat; background-color:#153441; color:white; font:700 22px system-ui,sans-serif; text-shadow:0 1px 4px #000,0 0 8px #000; touch-action:manipulation; }
.training-piece:hover { box-shadow:inset 0 0 0 2px #ead7aa99; }
.training-piece[aria-pressed="true"] { box-shadow:inset 0 0 0 4px #ffe2a1; filter:brightness(1.18); }
.training-piece:focus-visible { outline:3px solid #ffe2a1; outline-offset:1px; z-index:1; }
.training-reference { text-align:left; min-width:0; }
.training-reference img { display:block; width:100%; height:auto; aspect-ratio:1; border:1px solid #d9c59266; border-radius:6px; }
.training-reference p { font:13px/1.5 system-ui,sans-serif; margin:.5rem 0; }
.training-reference .eyebrow { font-size:10px; margin:0 0 .5rem; letter-spacing:.08em; color:#eed8a7; }
#training-hint { background:#ffffff09; border:1px solid #d9c59266; border-radius:6px; padding:8px; font:12px/1.4 system-ui,sans-serif; width:100%; min-height:40px; }
#training-puzzle-status { color:#d1e8de; }
@media(max-width:520px){.training-dialog.puzzling{padding:1rem;inset:auto .5rem .5rem;width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}.training-puzzle{grid-template-columns:minmax(0,1fr) 5.8rem;gap:.6rem}.training-reference p{font-size:11px}.training-reference .eyebrow{font-size:9px}.puzzling #training-instruction{font-size:.875rem}.puzzling h2{font-size:1.35rem}#training-hint{font-size:11px;padding:6px}}
@media(max-height:560px) and (min-width:521px){.training-puzzle{grid-template-columns:minmax(0,15rem) minmax(0,1fr);max-width:31rem;margin-inline:auto}.training-reference img{width:6rem;float:left;margin:0 .8rem .4rem 0}.training-dialog.puzzling{padding:.7rem 1rem}.puzzling #training-instruction{margin:.25rem auto .5rem;font-size:.875rem}.puzzling #training-round{margin:.25rem 0}}

.homework-dialog { width:min(32rem,calc(100% - 2rem)); max-height:60dvh; }
.homework-powers { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.homework-powers button { display:flex; align-items:center; justify-content:center; gap:.5rem; min-height:3.5rem; touch-action:none; user-select:none; -webkit-user-select:none; }
.homework-powers button[aria-pressed="true"] { background:#c5e8ed; color:#123a48; box-shadow:0 0 0 3px #d5f5ff70; }
#homework-other[aria-pressed="true"] { background:#f5d2ae; color:#402617; }
.homework-options { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; }
.homework-options button { min-height:2.75rem; font-size:.875rem; }
#homework-status { margin:0 0 .8rem; font-size:.875rem; font-variant-numeric:tabular-nums; }
body.homework #controls-bar,body.homework #touch-controls,body.homework #objective,body.homework #interaction,body.homework #walk-hint,body.homework #door-labels,body.homework .companion-label,body.homework #place-card { visibility:hidden; }
.friendly-hud { position:fixed; bottom:6rem; left:50%; transform:translateX(-50%); width:min(31rem,calc(100% - 2rem)); padding:1rem; background:#133b49ed; border:1px solid #c2e7eb; border-radius:1rem; color:#fff; text-align:center; z-index:12; }
.friendly-hud p { font-size:.875rem; margin:.5rem 0; line-height:1.4; }
.friendly-hud div { display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; }
.friendly-hud button { min-height:2.75rem; }
.forest-fire-hud { pointer-events:auto; margin:0 0 .6rem; padding:.7rem 1rem; background:#173743f2; border:1px solid #eac498; border-radius:.8rem; color:#f7ead5; font:13px/1.4 system-ui,sans-serif; }
.forest-fire-hud p { margin:.3rem 0 .5rem; }
.forest-fire-hud button { min-height:40px; padding:.4rem .7rem; color:#d7f6ff; background:#285866; border:1px solid #9ad5df; border-radius:6px; }
.forest-fire-hud small { display:block; margin-top:.35rem; color:#c3e4e9; }
body.playing-water #objective,body.playing-water #walk-hint,body.playing-water #interaction { visibility:hidden; }
@media(max-width:600px){.friendly-hud{bottom:auto;top:5rem;padding:.65rem}.friendly-hud p{margin:.3rem 0}.friendly-hud button{padding:.4rem .7rem}}

/* Keep quest details optional and leave the forest visible while aiming. */
.objective{pointer-events:auto;padding:8px 14px 14px}
.quest-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
#quest-toggle{min-height:44px;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:#f4e6bd;font:14px/1.3 system-ui,sans-serif;white-space:nowrap}
#quest-toggle:hover{background:#ffffff14}
#quest-details{max-height:min(42dvh,26rem);overflow-y:auto;overscroll-behavior:contain}
.objective.collapsed{width:auto;max-height:none;padding:0 6px;overflow:visible;border-radius:9px}
.objective.collapsed .quest-heading{gap:0}
.forest-fire-hud{padding:6px 12px;font-size:14px}
.forest-fire-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.forest-fire-row p{margin:0}
.forest-fire-row button{flex:none;min-height:44px;font:14px/1.3 system-ui,sans-serif}
.forest-fire-hud small{font-size:14px;line-height:1.4;margin:2px 0 0}
.fighting-fire #power-control,.fighting-fire #power-shortcuts,.fighting-fire #power-help,.fighting-fire.fire-water-armed #power-target{display:none}
@media(max-width:600px),(max-height:520px){
  .objective{top:calc(75px + env(safe-area-inset-top));width:min(280px,calc(100vw - 28px))}
  .objective p,.objective .quest-checklist{font-size:14px;line-height:1.5}
  .objective:has(.quest-checklist:not([hidden])){max-height:none;overflow:visible}
  .objective.collapsed{width:auto}
  .fighting-fire.power-open #forest-fire-hud,.fighting-fire #power-question{display:none}
}

/* Secret refuges: the scenery fills the screen while the story takes control. */
.secret-bases-overlay{position:fixed;inset:0;z-index:95;pointer-events:auto;background:linear-gradient(to bottom,#071b2b77,transparent 13%,transparent 66%,#071724f5);touch-action:none}
.secret-bases-overlay[hidden]{display:none}
#secret-bases-shade{position:absolute;inset:0;background:#081723;pointer-events:none}
.secret-bases-caption{position:absolute;bottom:max(1.3rem,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(640px,calc(100% - 36px));color:#fff6e4;text-align:center;text-shadow:0 2px 5px #07121c}
.secret-bases-caption h2{font:normal clamp(22px,3vw,32px)/1.15 Georgia,serif;margin:0 0 8px}
.secret-bases-caption p{font:16px/1.5 system-ui,sans-serif;margin:0 0 6px;text-wrap:pretty}
.secret-bases-caption small{font:12px/1.4 system-ui,sans-serif;color:#c1d3dd}
.secret-bases .topbar,.secret-bases #objective,.secret-bases #controls-bar,.secret-bases #touch-controls,.secret-bases #interaction,.secret-bases #door-labels,.secret-bases #pearl-label,.secret-bases #walk-hint,.secret-bases #place-card,.secret-bases #toast,.secret-bases #power-controls,.secret-bases #friendly-hud{visibility:hidden;pointer-events:none}
@media(max-height:520px){.secret-bases-caption{bottom:12px;width:min(680px,calc(100% - 32px))}.secret-bases-caption h2{font-size:22px;margin-bottom:4px}.secret-bases-caption p{font-size:14px;line-height:1.35}.secret-bases-caption small{display:none}}
