*{box-sizing:border-box}:root{color:#edf1e5;font-synthesis:none;background:#101e25;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}body{margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #e5c478}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}#app{background:radial-gradient(at 67% 45%,#26443b70,#0000 52%);justify-content:center;align-items:center;gap:clamp(50px,7vw,130px);min-height:100svh;padding:30px;display:flex}.intro{width:340px}.sanctuary-art{border:1px solid #96ac8c60;border-radius:12px;height:205px;margin-top:25px;display:block;position:relative;overflow:hidden}.sanctuary-art img{object-fit:cover;object-position:50% 63%;width:100%;height:100%}.sanctuary-art span{color:#f0e4c6;letter-spacing:2px;background:linear-gradient(#0000,#122824e8);padding:22px 16px 12px;font-size:9px;position:absolute;inset:auto 0 0}.intro .field-notes{margin-top:25px}.world-link{color:#d8ceac;text-underline-offset:4px;padding:15px 0 4px;font-size:10px;display:inline-block}.level-manager{text-align:left;margin:18px 0 12px}.level-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px;display:flex}.level-heading>span{letter-spacing:1.4px;color:#d7c38d;font-size:9px}.level-heading small,.level-record-note{color:#a8bcb0;font-size:9px}.level-scroll{scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#829f7b #203a32;gap:10px;padding:3px 2px 10px;display:flex;overflow-x:auto}.level-card{text-align:left;scroll-snap-align:center;touch-action:pan-x pan-y;background:#233f36;border:1px solid #64837370;border-radius:12px;flex:0 0 83%;align-items:center;gap:12px;min-width:205px;min-height:112px;padding:12px;display:flex}.level-card[aria-pressed=true]{background:#304c3e;border-color:#e1d3a0;box-shadow:inset 0 0 0 1px #e1d3a040}.level-card svg{flex:0 0 49px;width:49px;height:70px;overflow:visible}.level-card polyline{fill:none;stroke:#bfcfac;stroke-width:24px;stroke-linejoin:round;stroke-linecap:round}.level-card .map-entry{fill:#9d78cd;stroke:#342d51;stroke-width:12px}.level-card .map-home{fill:#f6d485;stroke:#655333;stroke-width:8px}.level-copy{gap:5px;display:grid}.level-copy>small{letter-spacing:1.5px;color:#b7c4ac;font-size:8px}.level-copy>strong{color:#f2eddb;font:17px Georgia,serif}.level-stamp{letter-spacing:.6px;color:#a7b8af;font-size:8px}.completed .level-stamp{color:#d6e9a7}.level-brief{gap:7px;margin:2px 2px 9px;display:grid}.panel .level-brief p{color:#cddbd0;min-height:54px;margin:0;font-size:12px;line-height:1.5}.level-brief ul{flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none;display:flex}.level-brief li{color:#e3d9b4;letter-spacing:.2px;background:#1d352d;border:1px solid #8aa37a70;border-radius:999px;padding:3px 8px;font-size:10px}.level-score{font-variant-numeric:tabular-nums;color:#e7dcbd;font-size:11px}.daily-card{background:linear-gradient(135deg,#3a3d27,#233f36 70%);border-color:#d9b96a80}.daily-card[aria-pressed=true]{background:linear-gradient(135deg,#4a4a2c,#304c3e 70%)}.daily-card polyline{stroke:#f0d891}.daily-card .level-copy>small{color:#f0d891}.panel .daily-result{color:#e7dcbd;font-variant-numeric:tabular-nums;margin-top:12px;font-size:12px}.achievements{text-align:left;border-top:1px solid #78917460;margin-top:14px;padding-top:6px}.achievements summary{cursor:pointer;color:#e5cf96;justify-content:space-between;align-items:center;min-height:44px;font-size:12px;display:flex}.achievements summary b{font-variant-numeric:tabular-nums;color:#d6e9a7;margin-left:auto;margin-right:8px;font-weight:600}.achievements ul{gap:6px;margin:4px 0 6px;padding:0;list-style:none;display:grid}.achievements li{opacity:.62;background:#1b332b;border:1px solid #64837350;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.achievements li.earned{opacity:1;background:#2a3f2f;border-color:#d9b96a80}.achievements li i{color:#8fa596;background:#10241e;border-radius:50%;flex:0 0 26px;place-items:center;height:26px;font-size:13px;font-style:normal;display:grid}.achievements li.earned i{color:#24301f;background:#e1c776}.achievements li span{flex:1;gap:2px;display:grid}.achievements li strong{color:#f2eddb;font-size:12px;font-weight:600}.achievements li small{color:#a8bcb0;font-size:10px;line-height:1.4}.achievements li em{color:#d6e9a7;font-size:13px;font-style:normal}.warden-badge{color:#2a2414;background:linear-gradient(135deg,#f6dc8f,#d6a94c);border-radius:999px;align-items:center;gap:6px;font-weight:700;display:inline-flex;box-shadow:0 0 0 1px #fff4c040,0 2px 10px #e7c26a50}.header-badge{vertical-align:3px;letter-spacing:0;justify-content:center;width:18px;height:18px;margin-left:8px;font-size:10px}.menu-badge{letter-spacing:1.2px;text-transform:uppercase;margin:0 auto 12px;padding:5px 12px;font-size:10px}.menu-badge i{font-style:normal}.achievement-toast{z-index:8;pointer-events:none;background:#10251ff4;border:1px solid #e1c77699;border-radius:999px;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 32px);padding:9px 16px 9px 10px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0007}.achievement-toast i{color:#24301f;background:#e1c776;border-radius:50%;flex:0 0 30px;place-items:center;height:30px;font-size:15px;font-style:normal;display:grid}.achievement-toast span{gap:1px;display:grid}.achievement-toast small{letter-spacing:1.6px;color:#d6c38d;font-size:8px}.achievement-toast strong{color:#f2eddb;font:15px Georgia,serif}.achievement-toast.pop{animation:3.6s both toast-pop}@keyframes toast-pop{0%{opacity:0;transform:translate(-50%,-10px)}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}@media (prefers-reduced-motion:reduce){.achievement-toast.pop{animation:none}}.eyebrow{letter-spacing:2px;color:#a6c8b3;font-size:10px;font-weight:700;line-height:1.6}h1,h2,p{margin:0}h1{letter-spacing:-2px;margin:23px 0;font-family:Georgia,serif;font-size:62px;font-weight:400;line-height:1.05}.intro>p{color:#a4b8b6;font-size:14px;line-height:1.8}.field-notes{border-top:1px solid #52676070;margin-top:65px;padding-top:22px}.field-notes>span{color:#d0af75;letter-spacing:2px;font-size:10px}.field-notes h2{margin:15px 0;font-size:18px;font-weight:500}.field-notes p{color:#92aaa8;margin:12px 0;font-size:13px;line-height:1.8}.intro>small{color:#688582;margin-top:45px;font-size:11px;display:block}.game-shell{background:#172923;border:1px solid #53695670;border-radius:22px;flex-direction:column;width:min(100%,450px);height:min(850px,100svh - 60px);min-height:590px;display:flex;overflow:hidden;box-shadow:0 24px 100px #0005}header{background:#162725;flex-shrink:0;align-items:center;gap:11px;padding:14px 20px;display:flex}.brand-mark{color:#e6c482;font-size:34px}.wordmark{letter-spacing:3px;font-family:Georgia,serif;font-size:21px}.subtitle{letter-spacing:2px;color:#9caf9f;margin-top:3px;font-size:8px}.icon-button{background:#293c31;border:1px solid #58706490;border-radius:50%;min-width:44px;min-height:44px;margin-left:auto;font-size:18px}.status-strip{color:#a1b5a9;letter-spacing:.4px;background:#11211f;justify-content:space-between;align-items:center;padding:10px 21px;font-size:11px;display:flex}.status-strip b{color:#e9e9d6;font-weight:600}.threat-dot{background:#e99d86;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.board-wrap{background:#1c302e;flex:1;min-height:0;position:relative}#board{position:absolute;inset:0}canvas{touch-action:none;display:block}.overlay{background:#10241e8f;place-items:center;padding:18px;display:grid;position:absolute;inset:0}.overlay[data-round-status=ready]{background:linear-gradient(#0e252c30,#0e252c60),url(/whirlward/assets/environment/menu-mist-garden.webp) 50%/cover}.overlay[data-round-status=ready] .panel{background:#122824e8;border-color:#adb68c80}.panel{overscroll-behavior:contain;text-align:center;background:#122824f5;border:1px solid #83957760;border-radius:16px;width:100%;max-width:335px;max-height:100%;padding:24px;overflow-y:auto;box-shadow:0 12px 30px #0004}.panel-emblem{color:#efd497;margin-bottom:10px;font-size:42px}.panel h2{margin:12px 0 16px;font-family:Georgia,serif;font-size:31px;font-weight:400;line-height:1.15}.panel p{color:#bdcbbd;font-size:12px;line-height:1.9}.panel>small{color:#90a48f;margin-top:13px;font-size:9px;display:block}.primary{color:#20382d;background:#dce5ad;border:0;border-radius:9px;justify-content:space-between;width:100%;min-height:46px;margin-top:24px;padding:15px 18px;font-size:13px;font-weight:700;display:flex}.primary:hover:not(:disabled){background:#eef5c5}.choice{text-align:left;background:#293e31;border:1px solid #7d926370;border-radius:10px;width:100%;margin-top:12px;padding:12px}.choice strong,.choice span,.choice small{display:block}.choice:has(.awakening-portrait){min-height:116px}.awakening-portrait{float:left;object-fit:contain;width:74px;height:92px;margin:0 10px 0 -6px}.choice strong{color:#efd192;font-size:14px}.choice span{margin-top:7px;font-size:12px}.choice small{color:#a7bba8;margin-top:5px;font-size:10px}.text-button{background:0 0;border:0;min-height:44px;margin-top:8px;font-size:11px}.setting{justify-content:center;align-items:center;gap:8px;min-height:44px;margin-top:15px;font-size:12px;display:flex}.feedback-settings{text-align:left;margin-top:8px}.audio-options{text-align:left;margin-top:12px}.audio-options summary{cursor:pointer;color:#d8ceac;min-height:44px;padding:12px 0;font-size:12px}.music-track{margin:6px 0;font-size:12px;display:block}.music-track select{color:#e9eee3;background:#263f33;border:1px solid #72917c70;border-radius:8px;width:100%;min-height:44px;margin-top:6px;padding:8px}.language-setting{color:#d8ceac;text-align:left;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;font-size:12px;display:flex}.language-setting select{color:#e9eee3;background:#263f33;border:1px solid #72917c70;border-radius:8px;flex:0 60%;min-width:0;min-height:44px;padding:8px}.language-setting sup{color:#e5c478;margin-left:2px}.translation-note{color:#a7bba8;text-align:left;margin-top:4px;font-size:10px;line-height:1.5;display:block}.feedback-settings .setting{justify-content:flex-start;margin-top:0}.feedback-settings input[type=checkbox]{accent-color:#dce5ad;width:18px;height:18px}.volume-setting{flex-wrap:wrap;justify-content:space-between;padding-top:4px;font-size:12px;display:flex}.volume-setting input{accent-color:#dce5ad;width:100%;height:44px;margin:0}#lab-feedback-controls{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}#lab-feedback-controls label{font-size:11px}#lab-feedback-controls select{color:#e9eee3;background:#263f33;border:1px solid #72917c70;border-radius:6px;min-height:44px}.difficulty-control{text-align:left;background:#233b2e;border:1px solid #78917460;border-radius:10px;margin-top:18px;padding:13px}.difficulty-control label{justify-content:space-between;gap:8px;font-size:12px;font-weight:600;display:flex}.difficulty-control output{color:#f0d89f}.difficulty-control input{cursor:pointer;accent-color:#dce5ad;touch-action:pan-y;width:100%;height:44px;margin:4px 0 0}.difficulty-ends{color:#b3c7b4;justify-content:space-between;margin-top:-4px;font-size:10px;display:flex}.difficulty-control p{min-height:36px;margin-top:10px;line-height:1.5}.difficulty-control small{color:#a8bcab;margin-top:7px;font-size:9px;line-height:1.6;display:block}.round-difficulty{color:#d6cf9c;margin-bottom:12px;font-size:10px;display:block}.results{justify-content:space-around;margin-top:22px;display:flex}.playtest-panel{text-align:left;border-top:1px solid #78917460;margin-top:18px;padding-top:10px}.playtest-panel summary{cursor:pointer;color:#e5cf96;align-items:center;min-height:44px;font-size:12px;display:flex}.playtest-panel label,.playtest-panel small{margin:8px 0;font-size:10px;line-height:1.5;display:block}.playtest-panel select{color:#e9eee3;background:#263f33;border:1px solid #72917c70;border-radius:8px;width:100%;min-height:44px;padding:8px}.playtest-panel button{width:100%;margin-top:10px}.playtest-panel textarea{color:#e9eee3;background:#162725;border:1px solid #72917c70;width:100%;margin-top:10px;font-size:11px}.results b,.results span{display:block}.results b{color:#e5cf96;font-size:23px;font-weight:500}.results span{letter-spacing:1px;color:#a0b49d;margin-top:5px;font-size:8px}footer{background:#162725;border-top:1px solid #6a80623a;flex-shrink:0;padding:13px 18px 10px}.match-footer{gap:8px;display:grid}.footer-top{align-items:center;gap:14px;display:flex}.next-egg{flex:1;align-items:center;gap:12px;min-width:0;padding:0 0 10px;display:flex;position:relative}.egg-emblem{color:#e3e6b3;background:radial-gradient(at 35% 30%,#70917b66,#263f33);border:1px solid #c9dca47a;border-radius:52% 52% 46% 46%/65% 65% 38% 38%;flex-shrink:0;place-items:center;width:28px;height:35px;font-size:20px;display:grid;box-shadow:inset 0 -4px 8px #0b241933}.egg-info{min-width:0}.footer-eyebrow{letter-spacing:1.7px;color:#91ad9f;font-size:8px;display:block}.egg-details{flex-wrap:wrap;align-items:baseline;gap:5px 9px;margin-top:3px;display:flex}.egg-details strong{color:#e7ecd6;font-size:13px;font-weight:600}.egg-details>span{color:#a9bda9;font-size:10px}.egg-countdown{font-variant-numeric:tabular-nums;color:#e5cf96;margin-left:auto;font-size:22px;font-weight:500}.egg-progress{background:#60796b38;border-radius:2px;height:2px;position:absolute;bottom:0;left:40px;right:0;overflow:hidden}.egg-progress span{width:100%;height:100%;transform:scaleX(var(--egg-progress,0));transform-origin:0;background:#d2dba4;display:block}.lab-button.footer-lab{color:#b8c8b9;background:0 0;border-color:#72917c40;flex-shrink:0;min-width:72px}.lab-button.footer-lab:hover:not(:disabled){color:#e7ecd6;border-color:#72917c90}.footer-lab span{color:#d4c493;margin-left:3px}#hint{color:#a6bca9;text-align:left;min-height:30px;margin:0;font-size:10px;line-height:1.5}.awakening-overlay{z-index:5;touch-action:none;position:absolute;inset:0;overflow:hidden}.awakening-overlay canvas{object-fit:contain;width:100%;height:100%}.awakening-skip{background:#170d29b8;border:1px solid #d2bed569;border-radius:22px;min-height:44px;padding:8px 16px;font-size:12px;position:absolute;top:12px;right:12px}.awakening-caption{pointer-events:none;text-align:center;text-shadow:0 2px 8px #080214;width:100%;position:absolute;bottom:11%;left:0}.awakening-caption small{letter-spacing:3px;color:#dec99e;font-size:9px;display:block}.awakening-caption strong{color:#fff1cf;margin:8px 0;font:32px Georgia,serif;display:block}.awakening-caption span{color:#e6dce9;font-size:12px}.awakening-options{border-top:1px solid #78917460;margin-top:16px;padding-top:12px}.awakening-options .lab-button{width:100%}.awakening-options .setting{margin-top:4px;font-size:11px}#hint.awakening-ready{color:#ffdc83;font-weight:600}.lab-button{background:#263f33;border:1px solid #72917c70;border-radius:8px;min-height:44px;padding:6px 10px;font-size:10px}#lab-controls{justify-content:space-between;gap:7px;display:flex}#lab-controls button{flex:1}#lab-roster-controls{justify-content:space-between;gap:10px;margin-bottom:6px;display:flex}#lab-roster-controls label{align-items:center;gap:6px;font-size:11px;display:flex}#lab-roster-controls select{color:#e9eee3;background:#263f33;border:1px solid #72917c70;border-radius:6px;max-width:140px;min-height:44px;padding:4px}.lab-active .match-footer,.lab-active .status-strip{display:none}.tutorial-layer{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:hidden}.lab-active .tutorial-layer{display:none}.tutorial-shapes{width:100%;height:100%;position:absolute;inset:0}.tutorial-shade{fill:#04120f;transition:opacity .35s}.tutorial-ring{fill:none;stroke:#ffe39a;stroke-width:2.5px;transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 5px #ffd56b99);animation:1.4s ease-in-out infinite tutorial-pulse}.tutorial-path{stroke:#fff0b1;stroke-width:2.5px;stroke-dasharray:1 8;stroke-linecap:round;opacity:.85;animation:.7s linear infinite tutorial-march}.tutorial-hand{transform-origin:13px 2px;filter:drop-shadow(0 3px 4px #000a);will-change:transform, opacity;width:32px;height:40px;position:absolute;top:0;left:0}.tutorial-hand svg{width:32px;height:40px;display:block}.tutorial-hand path{fill:#fff8e8;stroke:#20382d;stroke-width:1.6px;stroke-linejoin:round}.tutorial-touch{opacity:0;background:#ffe39a30;border:2px solid #ffe39a;border-radius:50%;width:46px;height:46px;position:absolute;top:2px;left:13px}.tutorial-card{pointer-events:auto;text-align:left;background:#10251ff4;border:1px solid #e1d3a080;border-radius:14px;width:min(100% - 24px,360px);padding:12px 14px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0007}.tutorial-card[data-dock=top]{top:10px}.tutorial-card[data-dock=bottom]{bottom:10px}.tutorial-card.shake{animation:.4s tutorial-shake}.tutorial-count{letter-spacing:1.6px;color:#a6c8b3;font-size:9px;display:block}.tutorial-title{color:#f2eddb;margin:4px 0;font:18px Georgia,serif;display:block}.tutorial-text{color:#d3dfd2;font-size:12.5px;line-height:1.55}.tutorial-nudge{color:#ffd27f;margin-top:7px;font-size:12px;font-weight:600}.tutorial-next{color:#20382d;background:#dce5ad;border:0;border-radius:9px;align-items:center;gap:8px;min-height:44px;margin:10px 0 0 auto;padding:0 18px;font-size:13px;font-weight:700;display:flex}.tutorial-next:hover{background:#eef5c5}.tutorial-layer.reduced .tutorial-ring,.tutorial-layer.reduced .tutorial-path{animation:none}.panel .tutorial-note{text-align:left;background:#233b2e;border:1px solid #78917460;border-radius:10px;margin-top:18px;padding:13px;line-height:1.6}@keyframes tutorial-pulse{0%,to{opacity:.95;transform:scale(1)}50%{opacity:.5;transform:scale(1.12)}}@keyframes tutorial-march{to{stroke-dashoffset:-9px}}@keyframes tutorial-shake{0%,to{transform:translate(-50%)}20%{transform:translate(calc(-50% - 7px))}40%{transform:translate(calc(6px - 50%))}60%{transform:translate(calc(-50% - 4px))}80%{transform:translate(calc(2px - 50%))}}@media (prefers-reduced-motion:reduce){.tutorial-ring,.tutorial-path,.tutorial-card.shake{animation:none}}@media (width<=900px){.intro{display:none}}@media (width>=901px){#app{background:linear-gradient(90deg,#0b202bec,#10242adb),url(/whirlward/assets/environment/valley-cloud-river.webp) 50%/cover fixed}}@media (width<=520px){#app{min-height:100dvh;padding:0}.game-shell{width:100%;height:100dvh;min-height:480px;box-shadow:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);border:0;border-radius:0}header{padding:8px 16px}.status-strip{padding:8px 18px}footer{padding:9px 14px 7px}.panel{padding:20px}}@media (height<=680px){.panel-emblem{display:none}.panel h2{margin:8px 0;font-size:25px}.panel{padding:16px}.primary{margin-top:14px}.choice{margin-top:8px;padding:9px}.choice:has(.awakening-portrait){min-height:92px}.awakening-portrait{width:56px;height:72px;margin-right:8px}#hint{min-height:27px;font-size:9px}}
