.home-screen{isolation:isolate;margin-bottom:calc(-1 * var(--panel-height));--tile-bg:color-mix(in srgb, var(--surface) 72%, transparent);--tile-line:color-mix(in srgb, var(--text) 16%, transparent);position:relative}.home-bg{z-index:-1;background-color:#1d2326;background-image:linear-gradient(180deg, #0c10124d, #0c10129e), var(--home-bg), linear-gradient(180deg, #25353b 0%, #2d3029 55%, #1b1d1f 100%);background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}:root[data-theme=light] .home-bg{background-color:#e9e4d6;background-image:linear-gradient(180deg, #fffbf26b, #fffbf29e), var(--home-bg), linear-gradient(180deg, #dfe8e4 0%, #efe6d3 60%, #e6dfcf 100%)}.home-content{gap:12px;max-width:480px;margin:0 auto;display:grid}.home-top{grid-template-columns:repeat(3,1fr) auto auto;align-items:center;gap:6px;display:grid}.home-small{background-color:var(--tile-bg);border-color:var(--tile-line);-webkit-backdrop-filter:blur(6px);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:56px;padding:4px;font-size:13px;display:flex}.home-title{text-align:center;padding:6px 0 2px;position:relative}.home-title h1{letter-spacing:.14em;text-shadow:0 2px 10px #00000073;margin:0;font-size:36px;line-height:1.15}html[lang=en] .home-title h1{letter-spacing:.03em;font-size:30px}:root[data-theme=light] .home-title h1{text-shadow:0 1px 8px #fffc}.home-title .title-line{text-shadow:0 1px 6px #00000080;margin:6px 0 0;font-size:13px}:root[data-theme=light] .home-title .title-line{text-shadow:0 1px 6px #ffffffd9}.home-continue{text-align:left;background-color:var(--tile-bg);background-image:linear-gradient(180deg, color-mix(in srgb, var(--star) 40%, var(--surface)), color-mix(in srgb, var(--star) 22%, var(--surface)));border-color:color-mix(in srgb, var(--star) 65%, transparent);-webkit-backdrop-filter:blur(6px);border-radius:20px;align-items:center;gap:12px;width:100%;min-height:76px;padding:8px 16px;display:flex}.home-continue-text{gap:2px;display:grid}.home-continue-text b{font-size:17px}.home-continue .stars-line{color:inherit;opacity:.85;margin:0}.home-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.home-tile-wrap{position:relative}.home-tile{background-color:var(--tile-bg);border-color:var(--tile-line);-webkit-backdrop-filter:blur(6px);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:100%;height:100%;min-height:84px;padding:6px;display:flex}.home-tile-label{font-size:15px;font-weight:600}.home-tile-sub{color:var(--muted);font-size:12px}.home-tile-wrap.soon .home-tile{opacity:.6;border-style:dashed;min-height:76px}.soon-tag{background:var(--tile-line);border-radius:999px;padding:0 8px}.home-icon{object-fit:contain;flex:none}.home-icon.fallback{color:var(--accent-text);justify-content:center;align-items:center;display:inline-flex}.home-icon.fallback .icon{width:70%;height:70%}.home-dot{background:var(--star);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--star) 35%, transparent);border-radius:50%;animation:1.8s ease-in-out infinite home-dot-pulse;position:absolute;top:8px;right:8px}@keyframes home-dot-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--star) 12%, transparent)}}.home-done{color:var(--slime);font-weight:700;position:absolute;top:6px;right:8px}.home-corner{background-color:var(--surface);border-radius:10px;min-height:26px;padding:2px 10px;font-size:12px;position:absolute;top:6px;left:6px}@media (prefers-reduced-motion:reduce){.home-dot{animation:none}}:root{--bg:#16181b;--surface:#202328;--surface-2:#2a2e34;--line:#3a3f47;--text:#e9e7e2;--muted:#9a9890;--healthy-bg:#d9d6cf;--healthy-text:#1d1f22;--infected:#d8423a;--infected-bg:#4a1c1a;--slime:#8bd13d;--slime-bg:#26361b;--slime-sub:#c4e69b;--slime-glow:#8bd13d73;--star:#ffc928;--star-glow:#ffc92899;--range-a:#ffc928;--range-b:#3da9ff;--focus:#fff;--accent-text:#f2c14e;--error-text:#ff8a80;--bad-text:#ffb3ad;--good-bg:#2c3a2f;--good-text:#9fd3a8;--info-bg:#3b3420;--info-text:#f6dd9b;--healthy-sub:#4a4c50;--infected-sub:#e9b8b4;--shadow:0 -6px 18px #0006;--panel-height:214px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f3f1ec;--surface:#fff;--surface-2:#e9e6df;--line:#cfcac0;--text:#1d1f22;--muted:#6a675f;--healthy-bg:#d6d2c8;--healthy-text:#1d1f22;--infected:#c7362e;--infected-bg:#f7d9d6;--slime:#5f9e1f;--slime-bg:#e3f1cf;--slime-sub:#3f6a13;--slime-glow:#5f9e1f66;--star:#e8a200;--star-glow:#e8a20073;--range-a:#d99500;--range-b:#1478d4;--focus:#000;--accent-text:#8a6100;--error-text:#b3261e;--bad-text:#a1231b;--good-bg:#dcefdf;--good-text:#1f6b33;--info-bg:#f7edc9;--info-text:#6b5310;--healthy-sub:#55575c;--infected-sub:#8a2a24;--shadow:0 -6px 18px #0000001f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,Microsoft JhengHei,PingFang TC,Noto Sans TC,sans-serif;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;background:var(--surface-2);border:1px solid var(--line);cursor:pointer;background-image:linear-gradient(#ffffff14,#00000012);border-radius:8px;min-height:40px;padding:8px 12px;transition:transform 60ms,box-shadow 60ms;box-shadow:inset 0 1px #ffffff1a,0 2px #00000047}button:hover:not(:disabled){border-color:var(--muted)}button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 2px #0000004d}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button.ghost{box-shadow:none;background:0 0}button.ghost:active:not(:disabled){transform:none}button.primary{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--error-text)}.app{max-width:1100px;padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(var(--panel-height) + 24px) calc(12px + env(safe-area-inset-left));margin:0 auto}.top-row{align-items:center;gap:6px;display:flex}.logo{border-radius:7px;flex:none;box-shadow:0 1px 4px #00000059}.top-row h1{letter-spacing:.1em;margin:0;font-size:18px}.code{color:var(--muted);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:13px;overflow:hidden}.menu{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;gap:10px;margin-top:8px;padding:10px;animation:.16s ease-out menu-in;display:grid;box-shadow:0 6px 18px #00000038}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}}.chapters{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.chapters .chip{border-radius:10px;flex-direction:column;align-items:center;padding:6px 4px;display:flex}.chapters small{color:var(--muted);font-size:11px}.menu-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.seed-form{flex-wrap:wrap;align-items:flex-end;gap:6px;display:flex}.seed-form label{color:var(--muted);flex:1;gap:2px;font-size:13px;display:grid}.seed-form input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;min-width:0;min-height:40px;padding:8px 10px}.seed-form .error{flex-basis:100%;margin:0;font-size:13px}.chip{border-radius:999px;min-height:34px;padding:4px 12px;font-size:13px}.chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}.chapters .chip.on small{color:var(--surface-2)}.rules{color:var(--muted);margin-top:6px;font-size:13px}.rules summary{cursor:pointer;padding:4px 0}.rules ul{margin:4px 0 0;padding-left:20px}.new-roles{color:var(--accent-text)}.roles-title{color:var(--text);margin:8px 0 0}.role-list{list-style:none;padding-left:0!important}.role-list b{color:var(--text)}.new-tag{background:var(--range-a);color:#1d1f22;border-radius:4px;margin-left:4px;padding:0 4px;font-size:11px;font-style:normal}.status-box{color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:40px auto;display:flex}.status-box.error{color:var(--error-text)}.spinner{border:2px solid var(--line);border-top-color:var(--text);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stats{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;margin:8px 0;font-size:13px;display:flex}.stats b{color:var(--text);font-variant-numeric:tabular-nums;font-size:15px}.stats .bad b{color:var(--infected)}.hint-button{min-height:34px;margin-left:auto;padding:4px 14px}.daily-tag{color:var(--accent-text);font-size:11px;display:block}.board{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.cell{border:1px solid var(--line);background:var(--surface);text-align:center;background-image:linear-gradient(#ffffff12,#0000000d);border-radius:10px;flex-direction:column;justify-content:flex-end;align-items:center;gap:1px;min-height:92px;padding:18px 2px 6px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff1a,0 2px 4px #00000038}.cell-coord{color:var(--muted);font-size:11px;position:absolute;top:3px;left:6px}.cell-badges{gap:2px;display:flex;position:absolute;top:3px;right:4px}.cell-badge{border-radius:4px;padding:2px 4px;font-size:11px;line-height:1}.cell-badge.mark{border:1px dashed var(--muted);color:var(--text)}.cell-badge.hint{background:var(--range-a);color:#1d1f22}.cell-coord .cell-badge{margin-left:3px;padding:1px 3px;font-size:10px}.cell.revealed .cell-badge.fever{color:#1d1f22;background:#f08a24}.cell.revealed .cell-badge.no-fever{color:inherit;background:0 0;border:1px solid #8a877f}.cell-icon{font-size:24px;line-height:1.1}.cell-name{white-space:nowrap;font-size:14px;font-weight:600}.cell-says{color:var(--muted);word-break:keep-all;min-height:1.4em;font-size:12px;line-height:1.2}.cell-day{vertical-align:1px;border:1px solid;border-radius:3px;margin-right:3px;padding:0 3px;font-size:10px;line-height:1.3;display:inline-block}.log-day{color:var(--muted)}.cell.revealed.healthy{background:var(--healthy-bg);color:var(--healthy-text);border-color:var(--healthy-bg);background-image:none;box-shadow:inset 0 2px 5px #00000038}.cell.revealed.healthy .cell-coord,.cell.revealed.healthy .cell-says{color:var(--healthy-sub)}.cell.revealed.healthy .cell-badge{color:var(--healthy-text);background:#b9b5ac}.cell.revealed.infected{background:var(--slime-bg);border:2px solid var(--slime);box-shadow:0 0 8px var(--slime-glow);background-image:none;padding:17px 1px 5px}.cell.revealed.infected .cell-badge{background:var(--infected);color:#fff}.cell.revealed.infected .cell-says{color:var(--slime-sub)}.cell.revealed.infected .cell-badge.immune{color:#1d1f22;background:#8fc1e3}.cell.hidden.maybe-healthy,.cell.hidden.maybe-infected{border-style:dashed;border-color:var(--muted)}.board .cell.in-a{box-shadow:inset 0 0 0 5px var(--range-a), inset 0 0 0 6px #0009;background-image:linear-gradient(color-mix(in srgb, var(--range-a) 22%, transparent), color-mix(in srgb, var(--range-a) 22%, transparent))}.board .cell.in-b{box-shadow:inset 0 0 0 5px var(--range-b), inset 0 0 0 6px #0009;background-image:linear-gradient(color-mix(in srgb, var(--range-b) 22%, transparent), color-mix(in srgb, var(--range-b) 22%, transparent))}.board .cell.in-a.in-b{box-shadow:inset 0 0 0 4px var(--range-a), inset 0 0 0 5px #0009, inset 0 0 0 9px var(--range-b), inset 0 0 0 10px #0009;background-image:linear-gradient(color-mix(in srgb, var(--range-b) 22%, transparent), color-mix(in srgb, var(--range-b) 22%, transparent))}.board .cell.revealed.infected.in-a{box-shadow:inset 0 0 0 5px var(--range-a), inset 0 0 0 6px #0009, 0 0 8px var(--slime-glow)}.board .cell.revealed.infected.in-b{box-shadow:inset 0 0 0 5px var(--range-b), inset 0 0 0 6px #0009, 0 0 8px var(--slime-glow)}.board .cell.revealed.infected.in-a.in-b{box-shadow:inset 0 0 0 4px var(--range-a), inset 0 0 0 5px #0009, inset 0 0 0 9px var(--range-b), inset 0 0 0 10px #0009, 0 0 8px var(--slime-glow)}.cell.hinted{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 3px var(--range-a)}}.cell.selected{outline:3px solid var(--focus);outline-offset:1px}.panel{z-index:10;height:var(--panel-height);padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:var(--shadow);position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.panel.finished{height:auto;min-height:50dvh;max-height:85dvh}.finish-rest{background:var(--slime-bg);color:var(--slime-sub);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;display:flex}.finish-rest .primary{flex:none;min-height:44px;padding:0 16px}.panel.finished.folded{min-height:0;max-height:none}.fold-result{min-height:32px;margin:0 0 6px auto;padding:2px 10px;font-size:13px;display:block}.fold-title{width:100%;box-shadow:none;min-height:32px;color:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;padding:2px 0;display:flex}.fold-title h2{margin:0}.fold-head{justify-content:space-between;align-items:center;display:flex}.menu-section.folded{padding-bottom:6px}.panel.idle{height:auto;max-height:var(--panel-height)}.panel h2{margin:0 0 6px;font-size:17px}.panel h2 small{color:var(--muted);margin-left:8px;font-size:13px;font-weight:400}.panel p{margin:0 0 4px}.message{border-radius:6px;padding:4px 8px;font-size:13px;margin-bottom:6px!important}.message.good{background:var(--good-bg)}.message.bad{background:var(--infected-bg);color:var(--bad-text)}.message.info{background:var(--info-bg);color:var(--info-text)}.judge{grid-template-columns:1fr 1fr;gap:8px;display:grid}.judge button{min-height:44px;font-weight:600}.judge button:disabled{background:var(--surface-2);color:var(--muted);border-color:var(--muted);opacity:.55;cursor:not-allowed}.panel.shake{animation:.45s ease-in-out panel-shake}@keyframes panel-shake{0%,to{transform:translate(0)}15%,55%{transform:translate(-8px)}35%,75%{transform:translate(8px)}}.judge .healthy{background:var(--healthy-bg);color:var(--healthy-text);border-color:var(--healthy-bg)}.judge .infected{background:var(--infected);color:#fff;border-color:var(--infected)}.notes{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.tools{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.tools>.muted{flex:140px}.chip.tool{border-color:var(--range-b);flex-shrink:0}.chip.tool:disabled{border-color:var(--line);opacity:.5}.verdict{border-radius:4px;padding:1px 8px;font-size:13px;font-weight:600;display:inline-block}.verdict.healthy{background:var(--healthy-bg);color:var(--healthy-text)}.verdict.infected{background:var(--infected);color:#fff}.quote{font-size:16px}.solved{text-align:center}.solved h2{font-size:20px}.stars{letter-spacing:.1em;font-size:30px}.star{color:var(--muted);opacity:.55;display:inline-block}.star.on{color:var(--star);opacity:1;text-shadow:0 0 10px var(--star-glow);animation:.5s cubic-bezier(.2,1.6,.4,1) both star-pop}.star.fast{text-shadow:none;filter:drop-shadow(0 0 8px var(--star-glow))}.reward.fast-got{color:var(--star);letter-spacing:.04em;font-size:17px;font-weight:700}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-90deg)}to{opacity:1;transform:scale(1)rotate(0)}}.lost h2{color:var(--bad-text)}.end-actions{justify-content:center;gap:8px;margin-top:6px;display:flex}.log{margin-top:16px}.log h3{margin:0;font-size:15px}.log ol{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.log li{gap:4px;display:flex}.log li button{text-align:left;background:var(--surface);width:100%;min-height:36px;padding:6px 10px;font-size:14px}.log li button.on{border-color:var(--range-a)}.log b{margin-left:4px}.dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;display:inline-block}.dot.healthy{background:var(--healthy-bg)}.dot.infected{background:var(--infected)}@media (width>=900px){.app{padding-bottom:24px}.play{grid-template-columns:minmax(0,480px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.cell{min-height:104px}.panel,.panel.finished{height:auto;max-height:none;min-height:var(--panel-height);border:1px solid var(--line);box-shadow:none;border-radius:10px;margin-top:8px;position:static}}.credit{text-align:center;margin:8px 0 0}.feedback-link{color:inherit;opacity:.8;text-align:center;margin-top:10px;font-size:.85rem;display:block}.back-toast{left:50%;bottom:calc(var(--panel-height) + 24px);z-index:80;color:#fff;pointer-events:none;background:#000000d9;border-radius:999px;padding:8px 16px;font-size:14px;position:fixed;transform:translate(-50%)}.modal-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;width:100%;max-width:480px;max-height:calc(100dvh - 32px);padding:14px 16px;display:flex}.modal h2{margin:0 0 8px;font-size:1.15rem}.modal-body{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.modal-body h3{color:var(--accent-text);margin:12px 0 4px;font-size:.95rem}.modal-body h3:first-child{margin-top:0}.modal-body ul{margin:0;padding-left:1.2em}.modal-body li{margin:2px 0}.modal-close{width:100%;margin-top:10px}.log li button.used-toggle{width:auto;color:var(--muted);flex:none;padding:4px 8px;font-size:12px}.log li button.used-toggle.on{color:var(--text);background:var(--surface-2)}.log li.used button:not(.used-toggle),.cell-says.used{opacity:.4}.outcome-grid{letter-spacing:2px;margin:8px auto 4px;font-family:inherit;font-size:16px;line-height:1.15}.share{display:contents}.end-actions{flex-wrap:wrap}.share p,.share textarea{flex-basis:100%;order:1;margin:0}.share .good{color:var(--good-text)}.share textarea{width:100%;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:13px}.menu-section{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:6px;padding:10px;display:grid;box-shadow:0 2px 6px #0000002e}.menu-section h2{border-left:3px solid var(--slime);margin:0;padding-left:8px;font-size:14px}.menu-section p{margin:0}button.wide{width:100%}.level-grid{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.level-chip{border-radius:8px;min-height:30px;padding:2px 0}.chip.cleared:not(.on){border-color:var(--muted);color:var(--muted)}.level-chip{flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex}.chip-stars{letter-spacing:-1px;font-size:9px}.chip.perfect:not(.on){border-color:var(--star,#d9a521)}.chip.perfect:not(.on) .chip-stars{color:var(--star,#d9a521)}.improve-list{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.improve-list li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.improve-row{align-items:center;gap:8px;display:flex}.improve-row .chip-stars{letter-spacing:0;font-size:13px}.day-grid{flex-wrap:wrap;gap:4px;display:flex}.chapters .chip:disabled{opacity:.45}.storage-warning{background:var(--infected-bg);color:var(--bad-text);border-radius:6px;margin:6px 0 0;padding:6px 8px;font-size:13px}.story-text{white-space:pre-line;margin:0;font-size:15px;line-height:1.7}.chapter-title{letter-spacing:.15em;color:var(--accent-text);margin:0 0 8px;font-size:13px}.log-entry{border-top:1px solid var(--line);padding-top:10px}.log-entry h3{margin:0 0 6px;font-size:15px}.log-entry .story-text+.story-text{color:var(--muted);margin-top:6px}.story-recap{border-top:1px solid var(--line);text-align:left;margin-top:10px;padding-top:8px}.story-recap .story-text+.story-text{margin-top:8px}.reward{color:var(--accent-text);font-size:13px}.character{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.character h3{color:var(--text);align-items:center;gap:8px;margin:0 0 4px;font-size:16px;display:flex}.character h3 small{color:var(--muted);font-size:12px;font-weight:400}.character.locked h3{color:var(--muted)}.portrait{background:var(--surface-2);border:1px solid var(--line);vertical-align:middle;border-radius:50%;place-items:center;width:44px;height:44px;font-size:20px;display:inline-grid;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%;display:block}.story-scene{align-items:flex-start;gap:12px;display:flex}.story-portrait{object-fit:cover;border:2px solid var(--line);background:var(--surface-2);border-radius:12px;flex:none;width:96px;height:96px;box-shadow:0 3px 8px #0000004d}.secret-file{gap:10px;display:grid}.secret-portrait{aspect-ratio:1;object-fit:cover;border:2px solid var(--line);background:var(--surface-2);border-radius:12px;width:100%;max-width:280px;margin:0 auto;box-shadow:0 3px 8px #0000004d}.secret-tagline{text-align:center;margin:0;font-style:italic}.secret-entries{border-left:2px solid var(--line);gap:10px;margin:0;padding:0 0 0 12px;list-style:none;display:grid}.secret-entries b{opacity:.75;font-size:.85em}.secret-entries p,.secret-hidden p{margin:2px 0 0}.secret-hidden{border:1px dashed var(--focus);border-radius:8px;padding:8px 10px}.secret-open{margin:4px 0}.shop-list li.locked{opacity:.6}.story-days{gap:6px;margin:6px 0 0;padding-left:0;list-style:none;display:grid}.story-days li b{color:var(--accent-text);font-size:12px}.story-days li p{margin:2px 0 0;font-size:14px}.story-days li.locked b{color:var(--muted)}.music-toggle,.theme-toggle,.menu-toggle{min-width:40px;padding:4px 8px;font-size:16px}.cell.hint-reason{outline:2px dashed var(--range-a);outline-offset:-5px}.log li.hint-reason button:not(.used-toggle){border:2px dashed var(--range-a)}.tutorial{z-index:20;background:var(--info-bg);color:var(--info-text);border:2px solid var(--accent-text);border-radius:10px;gap:10px;margin-bottom:8px;padding:12px 14px;font-size:18px;line-height:1.5;display:grid;position:sticky;top:0}.tutorial p{margin:0}.tutorial-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.tutorial-actions .primary{min-height:48px;padding:0 20px;font-size:18px}.tutorial-actions .ghost{white-space:nowrap}@keyframes tut-pulse{0%,to{box-shadow:0 0 0 3px var(--accent-text)}50%{box-shadow:0 0 0 7px var(--accent-text)}}.tut .cell,.tut .log li{scroll-margin-top:230px;scroll-margin-bottom:240px}.tut .tut-focus{z-index:2;animation:1.2s ease-in-out infinite tut-pulse;position:relative}.tut .log li.tut-focus{border-radius:8px}.tut .judge.tut-focus{border-radius:10px;padding:4px}.tut-lock .cell:not(.tut-focus),.tut-lock .log li:not(.tut-focus),.tut-lock .panel button,.tut-lock .stats button{pointer-events:none}.tut-lock .cell:not(.tut-focus),.tut-lock .log li:not(.tut-focus){opacity:.55}@media (prefers-reduced-motion:reduce){.tut .tut-focus{box-shadow:0 0 0 4px var(--accent-text);animation:none}}.backup-field{color:var(--muted);gap:4px;margin:10px 0 6px;font-size:13px;display:grid}.backup-field textarea{color:var(--text);background:var(--bg);border:1px solid var(--line);word-break:break-all;resize:vertical;border-radius:8px;padding:8px 10px;font:12px/1.4 ui-monospace,monospace}.backup-note{margin:8px 0 0;font-size:13px}.backup-note.ok{color:var(--good-text,inherit)}.backup-note.error{color:var(--bad-text)}.finished-time{font-size:18px;font-weight:700}.difficulty-row{align-items:center;gap:6px;margin-top:8px;display:flex}.difficulty-tag{background:var(--good-bg);color:var(--good-text);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:12px}.difficulty-choice{text-align:left;gap:4px;width:100%;margin-bottom:10px;padding:12px 14px;display:grid}.difficulty-choice b{font-size:17px}.difficulty-choice span{color:var(--muted);font-size:14px}.music-toggle[aria-pressed=false]{opacity:.55;text-decoration:line-through}.music-toggle.error{color:var(--bad-text)}.music-volume label{gap:4px;display:grid}.music-volume input[type=range]{width:100%;min-height:32px;accent-color:var(--accent-text)}.rule-headline{color:var(--accent-text);margin:0 0 8px;font-size:17px;font-weight:700}.modal-body h3{margin:12px 0 4px;font-size:14px}.rule-changes{margin:0;padding-left:20px}.rule-changes li{margin-bottom:6px}.rule-example{background:var(--info-bg);color:var(--info-text);border-radius:8px;margin:8px 0;padding:8px 10px;font-size:14px}.rule-role{border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:8px 10px}.rule-role p{margin:0 0 2px}.rule-card-button{margin:4px 0}.rules.fresh{border-left:3px solid var(--range-a);background:var(--info-bg);border-radius:6px;padding:4px 8px}.rules.fresh summary{color:var(--info-text)}.cell-new{background:var(--range-a);color:#1d1f22;border-radius:4px;padding:0 4px;font-size:10px;font-weight:700;line-height:1.5;position:absolute;top:3px;left:26px}.title-line{color:var(--accent-text);margin:0 0 8px;font-size:13px}.stars-line{color:var(--accent-text);margin:4px 0 8px;font-size:13px}.title-list{margin:8px 0;padding:0;list-style:none}.title-list li{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:baseline;gap:8px;padding:8px 4px;display:flex}.title-list li.got{color:var(--text)}.title-list li.got b{color:var(--accent-text)}.title-list small{white-space:nowrap}.title-list li{flex-wrap:wrap}.title-list small{white-space:normal;text-align:right}.title-list .citation{text-align:left;color:var(--muted);margin-top:4px;display:block}.title-list li.secret b{letter-spacing:.3em}.title-unlock{text-align:center;letter-spacing:.1em;color:var(--accent-text);margin:8px 0 12px;font-size:1.6rem;font-weight:700}.cell-badge{display:inline-block}.cell.fx-stamp{animation:.3s ease-out stamp-cell}.cell.fx-stamp .cell-badges .cell-badge{animation:.32s cubic-bezier(.2,.9,.3,1.2) both stamp-badge}@keyframes stamp-cell{0%{filter:brightness(1.35);transform:scale(1.12)}60%{transform:scale(.97)}to{transform:scale(1)}}@keyframes stamp-badge{0%{opacity:0;transform:scale(2.8)rotate(-16deg)}60%{opacity:1;transform:scale(.9)rotate(-5deg)}to{transform:scale(1)rotate(-5deg)}}.cell.fx-wrong{animation:.45s ease-in-out wrong-shake}@keyframes wrong-shake{0%,to{transform:translate(0)}15%,55%{transform:translate(-6px)}35%,75%{transform:translate(6px)}0%,60%{box-shadow:inset 0 0 0 3px var(--infected), 0 0 12px var(--infected)}}.confetti{z-index:15;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti i{opacity:0;border-radius:2px;width:8px;height:14px;animation:2.4s ease-in both confetti-fall;position:absolute;top:-14px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1}to{opacity:0;transform:translate(var(--drift), 105vh) rotate(var(--spin))}}.sfx-toggle{align-items:center;gap:6px;min-height:32px;display:flex}@media (prefers-reduced-motion:reduce){.confetti{display:none}.cell.fx-stamp,.cell.fx-wrong,.panel.shake,.cell.fx-stamp .cell-badges .cell-badge,.star.on,.menu{animation:none}}.rules summary .news{flex-wrap:wrap;gap:0 14px;margin-top:2px;display:flex}.legend{flex-wrap:wrap;justify-content:center;gap:2px 12px;display:flex}.legend span{white-space:nowrap}.icon{vertical-align:-.22em;width:1.2em;height:1.2em;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background-color:currentColor;flex:none;margin-right:.3em;display:inline-block}.icon.solo{vertical-align:middle;width:22px;height:22px;margin:0}.menu-section h2 .icon{margin-right:.35em}.menu-actions button{justify-content:center;align-items:center;display:flex}.title-block{flex-direction:column;flex:1;min-width:0;display:flex}.title-block h1{white-space:nowrap;text-overflow:ellipsis;line-height:1.2;overflow:hidden}html[lang=en] .top-row h1{letter-spacing:.01em;font-size:17px}.log li button.used-toggle{flex-direction:column;align-items:center;line-height:1.2;display:flex}.log li button.used-toggle .used-manual{color:var(--muted);font-size:10px}.log li button.used-reset{flex:none;width:auto;padding:4px 8px;font-size:12px}.role-book{flex-direction:column;gap:8px;display:flex}.role-tabs{gap:4px;padding-bottom:2px;display:flex;overflow-x:auto}.role-tab{flex:none;min-width:40px;padding:4px 8px}.role-tab.locked{opacity:.55}.role-page{border:1px solid var(--line);border-left:6px double var(--muted);background:var(--surface-2,var(--surface));border-radius:4px 10px 10px 4px;padding:10px 12px 10px 18px;position:relative}.role-page h4{color:var(--accent-text);margin:12px 0 4px;font-size:14px}.role-head{border-bottom:2px solid var(--text);flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-bottom:6px;display:flex}.modal-body .role-head h3{color:var(--text);margin:0;font-size:18px}.role-tag{color:var(--muted);font-size:12px}.role-says{margin:8px 0 4px}.role-says b{color:var(--muted);margin-bottom:2px;font-size:12px;display:block}.role-notes{margin:0;padding-left:1.2em;font-size:14px}.role-notes li{margin:3px 0}.role-quote,.role-how{margin:0 0 6px;font-size:14px}.role-range{margin:4px 0 0}.role-legend{flex-wrap:wrap;gap:2px 12px;margin:2px 0 0;display:flex}button.term{border:0;border-bottom:2px dotted var(--range-b);min-height:0;color:var(--range-b);font:inherit;background:0 0;border-radius:0;padding:0 2px;font-weight:600;display:inline}button.term.on{background:color-mix(in srgb, var(--range-b) 18%, transparent)}.term-note{border:1px dashed var(--muted);background:var(--info-bg);color:var(--info-text);border-radius:4px 12px 4px 10px;margin:8px 0 2px;padding:8px 10px 6px;font-size:14px;transform:rotate(-.4deg)}.term-note p{margin:2px 0 4px}.board.mini{gap:4px;margin:6px 0}.board.mini .cell{border-radius:8px;justify-content:center;min-height:52px;padding:16px 2px 3px}.board.mini .cell.revealed.infected{padding:15px 1px 2px}.mini-label{font-size:11px;line-height:1.1}.board.mini .cell.revealed.infected .mini-label{color:var(--slime-sub);font-weight:600}.mini-bitten{background:var(--infected);color:#fff;border-radius:4px;padding:0 4px;font-size:10px;line-height:1.3;position:absolute;top:3px;right:4px}.board.mini .cell.speaker{outline:2px solid var(--text);outline-offset:-1px}.role-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.role-nav button{flex:none}button.role-link{min-height:0;color:var(--text);font:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline}.panel h2 .role-book-link{min-height:0;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:400}.role-icon{vertical-align:middle;object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;display:inline-block}.role-emoji{vertical-align:middle;line-height:1;display:inline-block}.cell-icon{justify-content:center;align-items:center;line-height:0;display:flex}.board.mini .cell-icon{font-size:inherit}.panel h2 .role-icon,.role-head h3 .role-icon{margin-right:2px}.judge-mark{z-index:3;pointer-events:none;color:var(--ink,#1d1f22);white-space:nowrap;place-items:center;font-family:Pen Caveat,cursive;font-weight:700;line-height:1.1;animation:.15s ease-in .3s forwards mark-out;display:grid;position:absolute;inset:0}.mark-word{-webkit-text-stroke:3px var(--ink-halo,transparent);paint-order:stroke fill}.mark-shape{background:var(--ink,#1d1f22);width:100%;height:100%;-webkit-mask:var(--mask) center / contain no-repeat;-webkit-mask:var(--mask) center / contain no-repeat;mask:var(--mask) center / contain no-repeat;filter:drop-shadow(0 0 1.5px var(--ink-halo,transparent)) drop-shadow(0 0 1px var(--ink-halo,transparent));display:block}.shape-frame{--mask:var(--mask-frame)}.shape-ring{--mask:var(--mask-ring)}.shape-claw{--mask:var(--mask-claw)}.shape-claw-ok{--mask:var(--mask-claw-ok)}.shape-hand{--mask:var(--mask-hand)}.shape-hand-ok{--mask:var(--mask-hand-ok)}@keyframes mark-out{to{opacity:0}}.mark-pen{align-content:start;padding-top:14%}.mark-pen .mark-word{transform-origin:50% 60%;clip-path:inset(-30% 100% -30% 0);font-size:24px;animation:.3s cubic-bezier(.35,0,.4,1) forwards pen-write;display:block;position:relative;transform:rotate(-9deg)}.mark-pen .mark-word:after{content:"";background:var(--ink,#1d1f22);width:5px;height:5px;box-shadow:0 0 0 2px var(--ink-halo,transparent);border-radius:50%;margin:-2px 0 0 -2px;animation:.3s cubic-bezier(.35,0,.4,1) forwards pen-nib;position:absolute;top:55%;left:0}.mark-chalk .mark-word{filter:url(#chalk-rough);letter-spacing:.01em;font-size:24px}.mark-chalk .mark-word:after{display:none}@keyframes pen-write{to{clip-path:inset(-30% 0)}}@keyframes pen-nib{0%{opacity:1;left:0}to{opacity:0;left:100%}}.mark-rubber .mark-shape,.mark-metal .mark-shape{height:auto;position:absolute;top:46%;left:50%}.mark-rubber .mark-shape{aspect-ratio:256/172;width:72px;animation:.22s cubic-bezier(.2,.9,.3,1) both stamp-down;translate:-50% -50%;rotate:-5deg}.mark-metal .mark-shape{aspect-ratio:1;width:60px;animation:.2s cubic-bezier(.2,.9,.3,1) both stamp-down;translate:-50% -50%}.mark-rubber .mark-word,.mark-metal .mark-word{font-size:18px;animation:.22s ease-out both stamp-word;position:absolute;top:46%;left:50%;translate:-50% -50%;rotate:-5deg}.mark-metal .mark-word{font-size:14px;rotate:0deg}@keyframes stamp-down{0%{opacity:0;scale:1.9}70%{opacity:1;scale:.94}to{opacity:1;scale:1}}@keyframes stamp-word{0%,45%{opacity:0}to{opacity:1}}.spark{background:var(--ink,#1d1f22);width:3px;height:3px;box-shadow:0 0 0 1px var(--ink-halo,transparent);opacity:0;border-radius:50%;margin:-1px 0 0 -1px;animation:.3s ease-out .16s both spark-fly;position:absolute;top:46%;left:50%}.spark.s1{--dx:-34px;--dy:-22px}.spark.s2{--dx:36px;--dy:-16px}.spark.s3{--dx:4px;--dy:34px}@keyframes spark-fly{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx), var(--dy))}}.mark-claw .mark-shape,.mark-hand .mark-shape{position:absolute;top:46%;left:50%;translate:-50% -50%}.mark-claw .mark-shape{clip-path:inset(0 0 100%);width:60px;height:60px;animation:.22s cubic-bezier(.4,0,.3,1) forwards claw-slash}.mark-hand .mark-shape{width:58px;height:58px;animation:.2s cubic-bezier(.2,.9,.3,1) both stamp-down}@keyframes claw-slash{to{clip-path:inset(0)}}.mark-claw .shape-claw-ok{clip-path:inset(0 100% 0 0);animation:.3s cubic-bezier(.3,0,.5,1) forwards check-draw}@keyframes check-draw{to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.judge-mark{display:none}}html[data-paper] body{background-image:linear-gradient(#16181bb3, #16181bb3), var(--paper-url);background-size:auto,512px}html[data-paper][data-theme=light] body{background-image:linear-gradient(#f3f1ec73, #f3f1ec73), var(--paper-url)}.shop-balance{font-weight:600}.shop-list{gap:6px;margin:6px 0 12px;padding:0;list-style:none;display:grid}.shop-list li{border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.shop-list li.on{border-color:var(--focus)}.shop-name{flex:1;min-width:0;display:grid}.shop-confirm{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.shop-preview{background:var(--healthy-bg);border:1px solid var(--line);border-radius:6px;flex:none;place-items:center;width:44px;height:36px;display:grid}.shop-ink{-webkit-text-stroke:3px;paint-order:stroke fill;font-family:Pen Caveat,cursive;font-size:26px;font-weight:700}.shop-paper{background-size:128px;background-color:var(--bg)}.shop-anim{width:44px;height:36px;padding:3px}.shop-anim .mark-shape{filter:none;background:var(--text);width:100%;height:100%}.shop-aa{color:var(--text);font-family:Pen Caveat,cursive;font-size:24px;font-weight:700}.shop-listen{flex:none;min-width:56px;min-height:36px;padding:4px 8px;font-size:12px}.cell.dual .cell-icon{gap:0}.cell.dual .cell-says{font-size:11px;line-height:1.1}.cell.dual .says-part{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.challenge-choice .challenge-reward{color:var(--accent-text);font-weight:600}.challenge-choice.tier-1,.challenge-choice.tier-2{border-color:var(--accent-text)}.challenge-choice.tier-2{border-width:2px}.challenge-tag{margin-left:6px}.shelter-scene{width:100%;max-width:340px;image-rendering:pixelated;border:1px solid var(--line);background-color:#3b4a5c;background-size:100% 100%;border-radius:8px;margin:8px auto;position:relative;overflow:hidden}.shelter-slot{cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.shelter-slot img{width:100%;height:100%;image-rendering:pixelated;filter:brightness(.3)grayscale();opacity:.5;display:block}.shelter-slot.built img{filter:none;opacity:1}.shelter-slot.selected{outline:2px solid var(--focus);outline-offset:1px}.shelter-fallback{font-size:28px}.shelter-detail{border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:8px;display:flex}.shelter-pick{text-align:center}.shelter-times{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px;display:flex}.shelter-bg{image-rendering:pixelated;background-size:100% 100%;transition:filter .6s;position:absolute;inset:0}.shelter-scene[data-time=day] .shelter-bg{filter:hue-rotate(165deg)saturate(1.1)brightness(1.4)}.shelter-scene[data-time=day] .shelter-bg:after{content:"";mix-blend-mode:color;background:linear-gradient(#ebaf32,#fad76e);position:absolute;inset:0 0 74%}.shelter-scene[data-time=night] .shelter-bg{filter:hue-rotate(195deg)saturate(.9)brightness(.4)}.shelter-tint{pointer-events:none;transition:background-color .6s;position:absolute;inset:0}.shelter-scene[data-time=day] .shelter-tint{mix-blend-mode:soft-light;background-color:#bedcff47}.shelter-scene[data-time=night] .shelter-tint{mix-blend-mode:multiply;background-color:#32468c99}.shelter-scene{--glow:.35}.shelter-scene[data-time=day]{--glow:.12}.shelter-scene[data-time=night]{--glow:1}.shelter-fx{pointer-events:none;position:absolute}.shelter-glow{mix-blend-mode:screen;opacity:var(--glow);background:radial-gradient(circle,#ffcd6ef2 0%,#ffaa4673 45%,#ff963200 72%);border-radius:50%;animation:3.4s ease-in-out infinite shelter-flicker;position:absolute}.shelter-smoke{aspect-ratio:1;opacity:0;background:#e1e1e1cc;border-radius:50%;width:3.2%;margin:-1.6% 0 0 -1.6%;animation:4.8s ease-out infinite shelter-smoke;position:absolute}.shelter-scene[data-time=night] .shelter-smoke{background:#aab4cdbf}@keyframes shelter-flicker{0%,to{opacity:var(--glow)}35%{opacity:calc(var(--glow) * .72)}60%{opacity:calc(var(--glow) * .95)}80%{opacity:calc(var(--glow) * .8)}}@keyframes shelter-smoke{0%{opacity:0;transform:translate(0)scale(.6)}15%{opacity:.8}to{opacity:0;transform:translate(10px,-26px)scale(2.2)}}@media (prefers-reduced-motion:reduce){.shelter-glow{animation:none}.shelter-smoke{display:none}}.resident{cursor:pointer;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;position:absolute;transform:translateY(-100%)}.resident:hover:not(:disabled),.resident:active:not(:disabled){box-shadow:none;transform:translateY(-100%)}.resident:before{content:"";position:absolute;inset:-10px -6px -2px}.resident .walker,.resident .flip{width:100%;display:block}.resident .sprite{width:100%;height:auto;image-rendering:pixelated;filter:drop-shadow(0 1px #00000059);display:block}.resident .walker{animation:res-walk var(--dur) ease-in-out infinite;animation-delay:var(--delay)}.resident .flip{animation:res-flip var(--dur) linear infinite;animation-delay:var(--delay)}.resident .frame.f1{animation:.55s step-end infinite res-frame-a}.resident .frame.f2{visibility:hidden;animation:.55s step-end infinite res-frame-b}@keyframes res-walk{0%{transform:translate(0)}45%,50%{transform:translateX(var(--range))}95%,to{transform:translate(0)}}@keyframes res-flip{0%,47.4%{transform:scaleX(1)}47.5%,97.4%{transform:scaleX(-1)}97.5%,to{transform:scaleX(1)}}@keyframes res-frame-a{0%{visibility:visible}50%{visibility:hidden}}@keyframes res-frame-b{0%{visibility:hidden}50%{visibility:visible}}.resident.talking .walker,.resident.talking .flip,.resident.talking .frame{animation-play-state:paused}.resident.talking .sprite{filter:drop-shadow(0 0 3px #fff)}.resident.cat{transition:opacity .45s}.resident.cat.away{opacity:0}.resident.cat.pose-sit .walker,.resident.cat.pose-sleep .walker,.resident.cat.pose-sit .flip,.resident.cat.pose-sleep .flip{animation:none}.resident.cat.pose-sit .flip{transform:scaleX(var(--face))}.resident.cat.pose-sit .frame,.resident.cat.pose-sleep .frame{visibility:visible;animation:none}.resident .zzz{font:bold 9px/1 var(--font-body,sans-serif);color:#fff;opacity:0;animation:3.2s ease-in-out infinite res-zzz;position:absolute;top:-9px;right:-2px}@keyframes res-zzz{0%{opacity:0;transform:translateY(4px)}40%{opacity:.9}to{opacity:0;transform:translate(4px,-6px)}}.shelter-scene[data-time=night] .resident{filter:brightness(.78)}.shelter-scene[data-time=dusk] .resident{filter:brightness(.92)}.shelter-talk .talk-line{margin-top:4px;display:block}@media (prefers-reduced-motion:reduce){.resident .walker,.resident .flip,.resident .frame,.resident .zzz{animation:none}.resident .frame.f2{visibility:hidden}}.shelter-story-row{text-align:center;margin-top:6px}.shelter-story p{margin:0 0 12px;line-height:1.7}.resident.still .walker,.resident.still .flip{animation:none}.resident.still .frame{visibility:visible;animation:none}.resident.still .sprite{animation:2.6s ease-in-out infinite res-sway}.resident.still.talking .sprite{animation-play-state:paused}@keyframes res-sway{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.resident .heart{color:#e89aa8;opacity:0;font:700 10px/1 sans-serif;animation:2.8s ease-out infinite res-heart;position:absolute;top:-12px;left:50%}@keyframes res-heart{0%{opacity:0;transform:translate(-50%,4px)}30%{opacity:1}to{opacity:0;transform:translate(-50%,-8px)}}@media (prefers-reduced-motion:reduce){.resident.still .sprite,.resident .heart{animation:none}.resident .heart{opacity:.9}}.intro{z-index:100;color:#f1efe9;-webkit-user-select:none;user-select:none;background:#16181b;animation:.6s both intro-fade-in;position:fixed;inset:0;overflow:hidden}.intro.closing{pointer-events:none;animation:.7s forwards intro-fade-out}.intro-slide{position:absolute;inset:0}.intro-slide.leaving{animation:.9s forwards intro-fade-out}.intro-slide.current{animation:.9s both intro-fade-in}.intro-art{background:radial-gradient(at 50% 40%,#2d3a2a 0%,#16181b 70%);position:absolute;inset:0;overflow:hidden}.intro-art img{object-fit:cover;transform-origin:50%;will-change:transform;width:100%;height:100%;display:block}.slide-1 .intro-art img{transform-origin:50% 60%;animation:9s ease-out forwards intro-zoom-in}.slide-2 .intro-art img{animation:.18s steps(2,end) infinite alternate intro-shake,9s linear forwards intro-zoom-slow;transform:scale(1.12)}.slide-2 .intro-flicker{opacity:0;background:#000;animation:5s linear 1.2s both intro-flicker;position:absolute;inset:0}.slide-3 .intro-art img{transform-origin:68% 72%;animation:9s ease-in-out forwards intro-zoom-in}.slide-4 .intro-art img{animation:9s ease-in-out forwards intro-pan;transform:scale(1.22)}.slide-5 .intro-art img{transform-origin:50% 58%;animation:9s ease-in forwards intro-zoom-deep}.intro-shade{pointer-events:none;background:linear-gradient(#0a0b0c00 45%,#0a0b0c8c 68%,#0a0b0ceb 100%),radial-gradient(#0000 55%,#0000008c 100%);position:absolute;inset:0}.intro-text{left:0;right:0;bottom:calc(96px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;gap:10px;padding:0 28px;display:flex;position:absolute}.intro-text p{text-shadow:0 2px 8px #000c;text-wrap:balance;word-break:keep-all;opacity:0;margin:0;font-size:18px;line-height:1.6;animation:1.2s forwards intro-line}.intro-text .intro-title{letter-spacing:.08em;color:var(--slime,#8bd13d);text-shadow:0 0 6px #000,0 2px 4px #000,0 0 16px #000000e6;font-size:clamp(24px,8vw,34px);font-weight:700;animation-delay:.4s}.intro-skip{top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));z-index:2;color:#f1efe9;background:#00000073;border:1px solid #ffffff59;border-radius:999px;padding:6px 14px;font-size:14px;position:absolute}.intro-bottom{left:0;right:0;bottom:calc(24px + env(safe-area-inset-bottom));z-index:2;flex-direction:column;align-items:center;gap:14px;display:flex;position:absolute}.intro-tap{opacity:0;font-size:13px;animation:2.4s ease-in-out 2.4s infinite intro-pulse}.intro-begin{opacity:0;min-width:160px;animation:1s 2.4s forwards intro-line}.intro-dots{gap:8px;display:flex}.intro-dots i{background:#ffffff4d;border-radius:50%;width:7px;height:7px}.intro-dots i.on{background:var(--slime,#8bd13d)}@keyframes intro-fade-in{0%{opacity:0}to{opacity:1}}@keyframes intro-fade-out{0%{opacity:1}to{opacity:0}}@keyframes intro-zoom-in{0%{transform:scale(1)}to{transform:scale(1.35)}}@keyframes intro-zoom-deep{0%{transform:scale(1)}to{transform:scale(1.6)}}@keyframes intro-zoom-slow{0%{scale:1}to{scale:1.1}}@keyframes intro-pan{0%{transform:scale(1.22)translate(6%)}to{transform:scale(1.22)translate(-6%)}}@keyframes intro-shake{0%{translate:-1px 1px}to{translate:2px -1px}}@keyframes intro-flicker{0%,to{opacity:0}12%{opacity:.55}16%{opacity:0}30%{opacity:.35}34%{opacity:0}70%{opacity:0}92%{opacity:.5}}@keyframes intro-line{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-pulse{0%,to{opacity:0}50%{opacity:.85}}@media (prefers-reduced-motion:reduce){.intro-art img,.intro-flicker{animation:none!important;transform:translate(0,0)scale(1)!important}.intro-text p{animation-duration:10ms}}
