@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2)format("woff2"),url(/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2)format("woff2"),url(/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2)format("woff2"),url(/assets/nunito-latin-ext-600-normal-BKUpuB78.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2)format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2)format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2)format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2)format("woff2"),url(/assets/nunito-cyrillic-800-normal-DymMgApb.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2)format("woff2"),url(/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2)format("woff2"),url(/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--green:#58cc02;--green-edge:#58a700;--green-bg:#d7ffb8;--green-border:#a5ed6e;--blue:#1cb0f6;--blue-edge:#1899d6;--blue-bg:#ddf4ff;--blue-border:#84d8ff;--red:#ff4b4b;--red-edge:#ea2b2b;--red-bg:#ffdfe0;--red-border:#ffb2b2;--yellow:#ffc800;--yellow-edge:#e5a400;--orange:#ff9600;--purple:#ce82ff;--text:#4b4b4b;--muted:#777;--faint:#afafaf;--line:#e5e5e5;--polar:#f7f7f7;--surface:#fff;--edge-gray:#cecece;--on-bar:#00000073;--green-ink:var(--green-edge);--blue-ink:var(--blue-edge);--red-ink:var(--red-edge);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--r-card:16px;--r-btn:16px;--font:"Nunito", ui-rounded, "SF Pro Rounded", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif;--sidebar:256px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:lang(zh){--font:"Nunito", ui-rounded, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif}:lang(ja){--font:"Nunito", ui-rounded, "Hiragino Maru Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", "Meiryo", system-ui, sans-serif}[lang]{font-family:var(--font)}@media (prefers-color-scheme:dark){:root{--text:#f1f7fb;--muted:#a6b5bd;--faint:#6f8089;--line:#37464f;--polar:#202f36;--surface:#131f24;--edge-gray:#26343b;--on-bar:#ffffffbf;--green-bg:#1f3712;--green-border:#3f6b1d;--blue-bg:#16364a;--blue-border:#1f6f99;--red-bg:#3c2024;--red-border:#8a3a3f;--green-ink:#79d634;--blue-ink:#49c0f8;--red-ink:#ff7a7a}}*{box-sizing:border-box}html,body{background:var(--surface);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;margin:0;font-weight:700;overflow:hidden}button{font-family:inherit}.svg-icon{display:contents}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}#app{height:100%;display:flex}#stage{flex:1;min-width:0;height:100%;position:relative;overflow:hidden}#canvas-wrap{position:absolute;inset:0}#world{outline:none;width:100%;height:100%;display:block}#hud{pointer-events:none;position:absolute;inset:0}#hud>*{pointer-events:auto}#layer{pointer-events:none;z-index:50;position:fixed;inset:0}#layer>*{pointer-events:auto}.h1{color:var(--text);margin:0;font-size:32px;font-weight:800;line-height:1.2}.h2{color:var(--text);margin:0;font-size:24px;font-weight:800;line-height:1.25}.h3{color:var(--text);margin:0;font-size:19px;font-weight:800}.body{color:var(--text);font-size:17px;font-weight:600;line-height:1.45}.small{color:var(--muted);font-size:15px;font-weight:600;line-height:1.4}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--blue);font-size:15px;font-weight:800}.caps{text-transform:uppercase;letter-spacing:.05em}.btn{--bg:var(--green);--edge:var(--green-edge);--fg:#fff;appearance:none;cursor:pointer;border-radius:var(--r-btn);background:var(--bg);height:50px;color:var(--fg);box-shadow:0 4px 0 var(--edge);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:15px;font-weight:800;transition:filter .1s;display:inline-flex;position:relative;top:0}.btn:hover{filter:brightness(1.06)}.btn:active{box-shadow:none;top:4px}.btn.block{width:100%}.btn.blue{--bg:var(--blue);--edge:var(--blue-edge)}.btn.red{--bg:var(--red);--edge:var(--red-edge)}.btn.white{--bg:var(--surface);--edge:var(--line);--fg:var(--blue);border:2px solid var(--line);box-shadow:0 2px 0 var(--line)}.btn.white:active{box-shadow:none}.btn.ghost{--bg:transparent;--fg:var(--blue);box-shadow:none}.btn.ghost:hover{background:var(--polar);filter:none}.btn.on-color{--bg:var(--surface);--edge:#00000026;--fg:var(--accent,var(--green))}.btn:disabled,.btn.disabled{--bg:var(--line);--edge:var(--line);--fg:var(--faint);cursor:default;box-shadow:none;filter:none;top:0}.btn.small{border-radius:12px;height:40px;padding:0 16px;font-size:13px}.icon-btn{appearance:none;cursor:pointer;background:var(--surface);width:48px;height:48px;color:var(--muted);border:2px solid var(--line);box-shadow:0 2px 0 var(--line);border-radius:14px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative;top:0}.icon-btn:hover{background:var(--polar)}.icon-btn:active{box-shadow:none;top:2px}.icon-btn svg{width:24px;height:24px}.close-x{appearance:none;cursor:pointer;color:var(--faint);background:0 0;border:0;border-radius:8px;padding:6px;display:inline-flex}.close-x:hover{color:var(--muted)}.close-x svg{width:26px;height:26px}.card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-card)}.option{appearance:none;cursor:pointer;text-align:left;background:var(--surface);width:100%;min-height:56px;color:var(--text);border:2px solid var(--line);border-bottom-width:4px;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-size:17px;font-weight:600;line-height:1.35;display:flex;position:relative;top:0}.option:hover{background:var(--polar)}.option:active{border-bottom-width:2px;margin-bottom:2px;top:2px}.option.selected{background:var(--blue-bg);border-color:var(--blue-border);color:var(--blue-ink)}.option.correct{background:var(--green-bg);border-color:var(--green-border);color:var(--green-ink)}.option.wrong{background:var(--red-bg);border-color:var(--red-border);color:var(--red-ink)}.option.dim{color:var(--faint)}.option:disabled{cursor:default}.option:disabled:active{border-bottom-width:4px;margin-bottom:0;top:0}.option .key{border:2px solid var(--line);width:30px;height:30px;color:var(--faint);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:inline-flex}.option.selected .key{border-color:var(--blue-border);color:var(--blue-ink)}.option.correct .key{border-color:var(--green-border);color:var(--green-ink)}.option.wrong .key{border-color:var(--red-border);color:var(--red-ink)}.tile{appearance:none;cursor:pointer;background:var(--surface);color:var(--text);border:2px solid var(--line);border-bottom-width:4px;border-radius:12px;padding:10px 16px;font-size:15px;font-weight:700;position:relative;top:0}.tile:hover{background:var(--polar)}.tile.selected{background:var(--blue-bg);border-color:var(--blue-border);color:var(--blue-ink)}.image-option{appearance:none;cursor:pointer;text-align:center;background:var(--surface);color:var(--text);border:2px solid var(--line);border-bottom-width:4px;border-radius:16px;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:10px;font-size:15px;font-weight:600;display:flex;position:relative;top:0}.image-option:hover{background:var(--polar)}.image-option .pic{justify-content:center;align-items:center;width:100%;height:min(20vh,190px);display:flex}.image-option img{object-fit:contain;border-radius:6px;max-width:100%;max-height:100%;display:block}.image-option.selected{background:var(--blue-bg);border-color:var(--blue-border);color:var(--blue-ink)}.image-option.correct{background:var(--green-bg);border-color:var(--green-border);color:var(--green-ink)}.image-option.wrong{background:var(--red-bg);border-color:var(--red-border);color:var(--red-ink)}.bubble{background:var(--surface);border:2px solid var(--line);color:var(--text);border-radius:14px;padding:12px 14px;font-size:16px;font-weight:600;line-height:1.45;position:relative}.progress{background:var(--line);border-radius:8px;flex:1;height:16px;position:relative;overflow:hidden}.progress>i{background:var(--fill,var(--green));border-radius:8px;min-width:16px;transition:width .4s cubic-bezier(.3,.8,.4,1);position:absolute;top:0;bottom:0;left:0}.progress>i:after{content:"";background:#ffffff40;border-radius:2px;height:4px;position:absolute;top:4px;left:8px;right:8px}.progress.empty>i{min-width:0;width:0!important}.progress.yellow{--fill:var(--yellow)}.progress.thin{height:12px}.progress.thin>i:after{height:3px;top:3px}.streak{letter-spacing:.06em;text-transform:uppercase;color:var(--green);height:18px;font-size:13px;font-weight:800}.streak.orange{color:var(--orange)}#sidebar{width:var(--sidebar);border-right:2px solid var(--line);background:var(--surface);z-index:5;flex-direction:column;flex:none;gap:8px;height:100%;padding:24px 16px;display:flex}.wordmark{color:var(--green);letter-spacing:-.02em;padding:0 16px 24px;font-size:30px;font-weight:800}.nav-item{appearance:none;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;height:52px;color:var(--muted);background:0 0;border:2px solid #0000;border-radius:12px;align-items:center;gap:20px;padding:0 16px;font-size:15px;font-weight:800;display:flex}.nav-item:hover{background:var(--polar)}.nav-item.active{background:var(--blue-bg);border-color:var(--blue-border);color:var(--blue)}.nav-item svg{flex:none;width:30px;height:30px}.nav-foot{color:var(--faint);margin-top:auto;padding:0 16px;font-size:12px;font-weight:700;line-height:1.5}#sidebar{position:relative}.nav-rail{appearance:none;cursor:pointer;background:var(--surface);width:22px;height:48px;color:var(--faint);border:2px solid var(--line);border-left:0;border-radius:0 10px 10px 0;justify-content:center;align-items:center;margin:-24px 0 0;padding:0;display:flex;position:absolute;top:50%;right:-22px}.nav-rail:hover{color:var(--muted);background:var(--polar)}.nav-rail .svg-icon,.nav-rail svg{width:16px;height:16px;display:block}.nav-rail svg{transition:transform .15s;transform:rotate(90deg)}:root.nav-collapsed{--sidebar:0px}:root.nav-collapsed #sidebar{border-right:0;padding:0}:root.nav-collapsed #sidebar>:not(.nav-rail){display:none}:root.nav-collapsed .nav-rail{border-left:2px solid var(--line);border-radius:0 10px 10px 0;right:-22px}:root.nav-collapsed .nav-rail svg{transform:rotate(-90deg)}@media (width<=1100px){:root:not(.nav-collapsed){--sidebar:88px}.wordmark{padding:0 0 16px;font-size:0}.wordmark:before{content:"c";text-align:center;font-size:32px;display:block}.nav-item{justify-content:center;padding:0}.nav-item span,.nav-foot{display:none}}.unit-banner{border-radius:var(--r-card);background:var(--accent,var(--green));color:#fff;width:min(460px,100% - 40px);box-shadow:0 4px 0 var(--accent-edge,var(--green-edge));align-items:center;gap:12px;padding:14px 16px 14px 20px;transition:background .3s,box-shadow .3s;display:flex;position:absolute;top:20px;left:20px}.unit-banner .meta{flex:1;min-width:0}.unit-banner .label{letter-spacing:.06em;text-transform:uppercase;opacity:.85;font-size:13px;font-weight:800}.unit-banner .title{white-space:nowrap;text-overflow:ellipsis;font-size:21px;font-weight:800;overflow:hidden}.unit-banner .guide{appearance:none;cursor:pointer;color:#fff;letter-spacing:.06em;text-transform:uppercase;background:0 0;border:2px solid #0000002e;border-radius:12px;align-items:center;gap:8px;height:44px;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex;position:relative;top:0;box-shadow:0 2px #0000002e}.unit-banner .guide:hover{background:#ffffff1f}.unit-banner .guide:active{box-shadow:none;top:2px}.unit-banner .guide svg{width:20px;height:20px}.quest-card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-card);width:290px;padding:16px 18px;position:absolute;top:20px;right:20px}.quest-card .head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.quest-row{align-items:center;gap:12px;padding:8px 0;display:flex}.quest-row .ico{flex:none;width:36px;height:36px}.quest-row .grow{flex:1;min-width:0}.quest-row .name{color:var(--text);margin-bottom:6px;font-size:15px;font-weight:800}.quest-row .bar{position:relative}.quest-row .bar .count{color:var(--on-bar);justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;position:absolute;inset:0}@media (width<=1180px){.quest-card{display:none}}.map-stack{flex-direction:column;align-items:flex-end;gap:16px;width:240px;display:flex;position:absolute;top:20px;right:20px;pointer-events:none!important}.map-stack[hidden]{display:none}.multiplayer{pointer-events:none!important}.multiplayer[hidden]{display:none}.multiplayer-status{border:2px solid var(--line,#e5e5e5);background:var(--paper,#fff);max-width:calc(100% - 40px);color:var(--text);border-radius:14px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:800;display:flex;position:absolute;top:112px;left:20px}.multiplayer-status small{opacity:.7;font-size:10px;font-weight:600;display:block}.connection-dot{background:#9b9b9b;border-radius:50%;flex:0 0 8px;width:8px;height:8px}.multiplayer-status.online .connection-dot{background:#58a700}.multiplayer-status.connecting .connection-dot{background:#e5a900}.guest-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.guest-label{color:#176b96;white-space:nowrap;will-change:transform;background:#e5f6ff;border:1px solid #8acbea;border-radius:10px;padding:3px 8px;font-size:11px;font-weight:800;position:absolute;top:0;left:0}@media (width<=700px){.multiplayer-status{max-width:calc(100% - 190px);padding:6px 8px;font-size:10px;top:94px;left:12px}}.map-stack .quest-card{pointer-events:auto;width:100%;padding:12px;position:static}.minimap{width:184px;color:var(--text);position:relative}.minimap.collapsed{width:44px;height:44px}.minimap-toggle{appearance:none;cursor:pointer;z-index:1;background:var(--surface);width:36px;height:36px;color:var(--muted);border:2px solid var(--line);box-shadow:0 2px 0 var(--line);pointer-events:auto;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;right:0}.minimap.collapsed .minimap-toggle{width:44px;height:44px}.minimap-toggle:hover{background:var(--polar)}.minimap-toggle:active{box-shadow:none;transform:translateY(2px)}.minimap-toggle svg{width:20px;height:20px}.minimap-drawing{aspect-ratio:1;background:var(--line);border:2px solid var(--line);box-shadow:0 4px 0 var(--edge-gray);pointer-events:auto;border-radius:50%;position:relative}.minimap-drawing>svg{border-radius:50%;width:100%;height:100%;display:block}.minimap-room.indoor{fill:var(--surface)}.minimap-room.outdoor{fill:var(--polar)}.minimap-room.water{fill:var(--blue-bg)}.minimap-room.lawn{fill:var(--green-bg)}.minimap-walls{stroke:var(--faint);stroke-width:1.6px;stroke-linecap:round}.minimap-current{fill:var(--blue);fill-opacity:.12}.minimap-artworks{fill:var(--yellow);stroke:var(--yellow-edge);stroke-width:.7px}.minimap-npc{fill:var(--green);stroke:var(--green-edge);stroke-width:1.2px}.minimap-npc.selected{stroke:var(--text);stroke-width:2px}.minimap-player{fill:var(--blue);stroke:var(--surface);stroke-width:1.4px;stroke-linejoin:round}.minimap-player .minimap-view{fill-opacity:.25;stroke:none}.minimap-north{background:var(--surface);color:var(--muted);border:2px solid var(--line);border-radius:8px;padding:0 6px;font-size:12px;font-weight:800;line-height:16px;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.minimap-caption{background:var(--surface);border:2px solid var(--line);width:fit-content;max-width:100%;color:var(--text);border-radius:12px;justify-content:center;align-items:center;gap:6px;margin:12px auto 0;padding:4px 10px;font-size:13px;font-weight:800;display:flex}.minimap-caption i{background:var(--blue);border-radius:50%;flex:none;width:8px;height:8px}.minimap-caption span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.minimap-legend{background:var(--surface);border:2px solid var(--line);letter-spacing:.06em;text-transform:uppercase;width:fit-content;color:var(--muted);border-radius:12px;justify-content:center;gap:12px;margin:6px auto 0;padding:2px 10px;font-size:12px;font-weight:800;display:flex}.minimap-legend span{align-items:center;gap:6px;display:inline-flex}.minimap-legend i{width:8px;height:8px;display:inline-block}.minimap-legend .artwork{background:var(--yellow);border-radius:2px}.minimap-legend .npc{background:var(--green);border-radius:50%}@media (width<=1180px){.map-stack{width:164px;top:112px}.minimap{width:164px}}@media (width<=640px){.map-stack{width:140px;top:100px;right:76px}.minimap{width:140px}.minimap-toggle{width:44px;height:44px;top:-10px;right:-14px}}@media (height<=600px){.minimap{width:120px}.map-stack .quest-card,.minimap-caption,.minimap-legend{display:none}}.unit-banner{z-index:2}.era-switch{appearance:none;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;margin:0;padding:0;display:flex}.era-switch .title{align-items:center;gap:4px;display:flex}.era-switch .title svg{flex:none;width:22px;height:22px;transition:transform .2s}.era-switch[aria-expanded=true] .title svg{transform:rotate(180deg)}.unit-banner:not(.disabled) .era-switch[aria-expanded=false] .title svg{animation:.9s ease-in-out 2 era-nudge}@keyframes era-nudge{50%{transform:translateY(3px)}}.unit-banner.disabled{background:var(--line);color:var(--muted);box-shadow:0 4px 0 var(--edge-gray)}.unit-banner.disabled .label{opacity:1}.unit-banner.disabled .era-switch{cursor:not-allowed}.unit-banner.disabled .guide{color:var(--muted);border-color:var(--edge-gray);box-shadow:0 2px 0 var(--edge-gray)}.unit-banner.disabled .guide:hover{background:#0000000a}.era-backdrop{z-index:1;background:0 0;position:absolute;inset:0}.era-menu{background:var(--surface);max-height:calc(100vh - 140px);color:var(--text);border:2px solid var(--line);border-radius:var(--r-card);box-shadow:0 4px 0 var(--line);flex-direction:column;gap:6px;padding:8px;animation:.15s fade-in;display:flex;position:absolute;top:calc(100% + 12px);left:0;right:0;overflow-y:auto}.era-option{appearance:none;cursor:pointer;font:inherit;text-align:left;color:var(--text);background:0 0;border:2px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.era-option:hover{background:var(--polar)}.era-option .num{background:var(--accent);color:#fff;width:32px;height:32px;box-shadow:0 2px 0 var(--accent-edge);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;display:flex}.era-option .txt{flex-direction:column;flex:1;min-width:0;display:flex}.era-option .t{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:800;overflow:hidden}.era-option .s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.era-option>.svg-icon svg,.era-option>svg{width:22px;height:22px;color:var(--accent);flex:none}.era-option.here{background:var(--polar);cursor:default}.era-option.want{border-color:var(--accent)}.hint-pill{background:var(--surface);border:2px solid var(--line);color:var(--muted);white-space:nowrap;pointer-events:none;border-radius:14px;padding:10px 16px;font-size:15px;font-weight:700;transition:opacity .4s;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.hint-pill.gone{opacity:0}#hud.seated>.unit-banner,#hud.seated>.quest-card,#hud.seated>.guide-wrap{display:none}.round-x{appearance:none;cursor:pointer;background:var(--surface);width:52px;height:52px;color:var(--muted);border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;animation:.3s fade-in;display:flex;position:absolute;top:20px;left:20px;box-shadow:0 2px 8px #0000002e}.round-x:hover{color:var(--text)}.round-x:active{transform:scale(.95)}.round-x svg{width:24px;height:24px}.world-card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-card);text-align:center;flex-direction:column;gap:4px;width:min(420px,100% - 152px);padding:20px 20px 12px;animation:.2s ease-out card-up;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.world-card .t{color:var(--text);font-size:20px;font-weight:800;line-height:1.3}.world-card .s{color:var(--muted);margin-bottom:14px;font-size:15px;font-weight:600}.world-card .btn.ghost{height:44px;margin-top:6px}@keyframes card-up{0%{opacity:0;transform:translate(-50%,16px)}}.world-card .npc-close{position:absolute;top:8px;right:8px}.world-card .npc-close svg{width:22px;height:22px}.npc-card .btn{margin-bottom:8px}.tooltip-bubble{pointer-events:none;background:var(--surface);border:2px solid var(--line);letter-spacing:.06em;text-transform:uppercase;color:var(--accent,var(--green));white-space:nowrap;border-radius:12px;padding:6px 12px;font-size:14px;font-weight:800;position:absolute;transform:translate(-50%,calc(-100% - 12px))}.tooltip-bubble:after{content:"";background:var(--surface);border-right:2px solid var(--line);border-bottom:2px solid var(--line);width:12px;height:12px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}#hud>.bark-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.bark-anchor{will-change:transform;position:absolute;top:0;left:0}.bark{background:var(--surface);width:max-content;max-width:220px;color:var(--text);border:2px solid var(--line);text-align:center;box-shadow:0 2px 0 var(--line);transform-origin:50% 100%;border-radius:14px;padding:7px 12px;font-size:14px;font-weight:700;line-height:1.3;animation:.22s cubic-bezier(.2,1.4,.4,1) both bark-pop;position:absolute;bottom:14px;left:0;transform:translate(-50%)}.bark:after{content:"";background:inherit;border-right:2px solid var(--line);border-bottom:2px solid var(--line);width:11px;height:11px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.bark.muse{color:var(--muted);font-style:italic;font-weight:600}.bark.hush,.bark.hush:after{border-color:var(--blue-border)}.bark.shout{color:var(--red-ink);background:var(--red-bg);border-color:var(--red-border);box-shadow:0 2px 0 var(--red-border);font-weight:800;animation:.22s cubic-bezier(.2,1.4,.4,1) both bark-pop,.3s ease-in-out .12s bark-shake}.bark.shout:after{border-color:var(--red-border)}@keyframes bark-pop{0%{opacity:0;transform:translate(-50%)translateY(6px)scale(.6)}}@keyframes bark-shake{25%{transform:translate(calc(-50% - 3px))rotate(-2deg)}75%{transform:translate(calc(3px - 50%))rotate(2deg)}}@media (prefers-reduced-motion:reduce){.bark,.bark.shout{animation:.15s both fade-in}}@media (width<=600px){.bark{max-width:170px;padding:6px 10px;font-size:13px}}.page{background:var(--surface);z-index:60;flex-direction:column;display:flex;position:fixed;inset:0}.page.over-stage{left:var(--sidebar)}@keyframes fade-in{0%{opacity:0}}.page-scroll{overscroll-behavior:contain;touch-action:pan-y;flex:1;overflow-y:auto}.page-inner{width:min(640px,100% - 48px);margin:0 auto;padding:32px 0 64px}.lesson-top{flex:none;align-items:center;gap:16px;width:min(1000px,100% - 48px);margin:0 auto;padding:32px 0 0;display:flex}.lesson-top .bar-wrap{flex-direction:column;flex:1;gap:4px;margin-top:-18px;display:flex}.lesson-top .bar-wrap .progress,.viewer .topbar .progress{flex:none}.lesson-body{touch-action:pan-y;overscroll-behavior:contain;flex:1;justify-content:center;min-height:0;display:flex;overflow-y:auto}.lesson-col{flex-direction:column;gap:16px;width:min(600px,100% - 48px);padding:28px 0 20px;display:flex}.lesson-col .tag{letter-spacing:.06em;text-transform:uppercase;color:var(--purple);align-items:center;gap:8px;font-size:15px;font-weight:800;display:flex}.lesson-art{background:var(--polar);border-radius:16px;justify-content:center;padding:12px;display:flex}.lesson-art img{cursor:zoom-in;border-radius:6px;max-width:100%;max-height:26vh;display:block}.choices{flex-direction:column;gap:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tf-row{justify-content:center;gap:16px;display:flex}.tf-row .image-option{width:120px}.tf-row .image-option svg{width:40px;height:40px}.lesson-foot{touch-action:pan-y;border-top:2px solid var(--line);flex:none;align-items:center;min-height:120px;max-height:55%;display:flex;overflow-y:auto}.lesson-foot .inner{justify-content:space-between;align-items:center;gap:16px;width:min(1000px,100% - 48px);margin:0 auto;padding:24px 0;display:flex}.lesson-foot.correct{background:var(--green-bg);border-top-color:#0000}.lesson-foot.wrong{background:var(--red-bg);border-top-color:#0000}.feedback{flex:1;align-items:flex-start;gap:16px;min-width:0;display:flex}.feedback .badge{background:var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.feedback .badge svg{width:40px;height:40px}.feedback .ttl{margin-bottom:4px;font-size:24px;font-weight:800}.feedback .lbl{margin-top:2px;font-size:17px;font-weight:800}.feedback .msg{font-size:16px;font-weight:600;line-height:1.4}.lesson-foot.correct .feedback{color:var(--green-ink)}.lesson-foot.wrong .feedback{color:var(--red-ink)}.lesson-foot .btn{min-width:150px}@media (width<=700px){.lesson-foot .inner{flex-direction:column;align-items:stretch}.feedback .badge{display:none}}.result{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;padding:24px;display:flex}.result .h1{color:var(--yellow);font-size:34px}.stat-row{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.stat{border:2px solid var(--c);background:var(--c);border-radius:16px;width:150px;overflow:hidden}.stat .k{color:#fff;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:4px 0 6px;font-size:13px;font-weight:800}.stat .v{background:var(--surface);height:64px;color:var(--c);border-radius:14px;justify-content:center;align-items:center;gap:8px;font-size:21px;font-weight:800;display:flex}.stat .v svg{width:26px;height:26px}.review-list{flex-direction:column;gap:10px;width:min(560px,100%);display:flex}.viewer{z-index:70;background:var(--surface);grid-template-columns:1fr 400px;display:grid;position:fixed;inset:0}.viewer .stagearea{background:#202020;min-width:0;min-height:0;position:relative;overflow:hidden}.viewer .osd{position:absolute;inset:0}.ambient{pointer-events:none;filter:blur(56px)saturate(1.5);opacity:0;width:100%;height:100%;transition:opacity .6s;position:absolute;inset:0;transform:scale(1.3)}.ambient.on{opacity:.55}@media (prefers-reduced-transparency:reduce){.ambient{display:none}}.osd,.osd :focus,.osd :focus-visible{outline:none}.viewer .topbar{pointer-events:none;align-items:center;gap:12px;display:flex;position:absolute;top:16px;left:16px;right:16px}.viewer .topbar>*{pointer-events:auto}.viewer .topbar,.viewer .zoom-ctrls{transition:opacity .35s}.viewer.idle .topbar,.viewer.idle .zoom-ctrls{opacity:0;pointer-events:none}.viewer.idle .topbar>*,.viewer.idle .zoom-ctrls>*{pointer-events:none}.viewer.idle .stagearea,.viewer.idle .stagearea *{cursor:none!important}.points-progress{align-items:center;gap:12px;margin-top:12px;display:flex}.points-progress .progress{flex:1}.points-progress .count{color:var(--faint);white-space:nowrap;font-size:13px;font-weight:800}.viewer .topbar .close-x{background:var(--surface);border:2px solid var(--line);width:48px;height:48px;color:var(--muted);box-shadow:0 2px 0 var(--line);border-radius:14px;justify-content:center}.viewer .zoom-ctrls{flex-wrap:wrap;gap:8px;display:flex;position:absolute;bottom:16px;left:16px}.viewer .zoom-readout{background:var(--surface);border:2px solid var(--line);height:48px;color:var(--muted);border-radius:14px;justify-content:center;align-items:center;min-width:72px;padding:0 14px;font-size:15px;font-weight:800;display:inline-flex}.viewer .panel{border-left:2px solid var(--line);flex-direction:column;min-height:0;display:flex}.viewer .panel .scroll{touch-action:pan-y;overscroll-behavior:contain;flex:1;padding:28px 24px 24px;overflow-y:auto}.viewer .panel .foot{border-top:2px solid var(--line);gap:12px;padding:16px 24px 24px;display:flex}.viewer .panel .foot .btn{flex:1}.viewer .points{flex-direction:column;gap:10px;margin:12px 0 28px;display:flex}.point-card{cursor:pointer;text-align:left;width:100%;display:block}.point-card.selected{background:var(--blue-bg);border-color:var(--blue-border)}.point-card .ph{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:14px;font-weight:800;display:flex}.point-card .ph svg{width:20px;height:20px}.point-card.seen .ph{color:var(--green)}.point-card.selected .ph{color:var(--blue-ink)}.point-card .pt{color:var(--text);font-size:16px;font-weight:600;line-height:1.45}.point-card.selected .pt{color:var(--blue-ink)}.swatches{border:2px solid var(--line);border-radius:8px;height:26px;margin-top:10px;display:flex;overflow:hidden}.swatches i{height:100%;display:block}.meta-list{grid-template-columns:104px 1fr;gap:8px 12px;margin:12px 0 0;font-size:14px;display:grid}.meta-list dt{color:var(--faint);text-transform:uppercase;letter-spacing:.04em;padding-top:2px;font-size:12px;font-weight:800}.meta-list dd{color:var(--text);word-break:break-word;-webkit-user-select:text;user-select:text;margin:0;font-weight:600;line-height:1.4}@media (width<=900px){.viewer{grid-template-rows:minmax(0,1fr) minmax(0,46%);grid-template-columns:1fr}.viewer .panel{border-left:0;border-top:2px solid var(--line)}}.annot{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.annot .guide-surface{stroke:#fffaf0d9;stroke-width:2px;stroke-linejoin:round}.annot .guide-surface,.annot .guide-band{filter:drop-shadow(0 1px 2px #000000a6)}.annot .guide-band{fill:none;stroke:#fffaf07a;stroke-width:clamp(16px,2.4vw,28px);stroke-linecap:round;stroke-linejoin:round}.annot .guide-band-secondary{stroke-opacity:.85}.annot .guide-flow{stroke:#fffaf066;stroke-width:20px}.annot .guide-step{fill:#201e1be6;stroke:#fffaf0e6;stroke-width:1.5px}.annot .guide-number{fill:#fffaf0;font:600 11px var(--font);text-anchor:middle;dominant-baseline:central}.compare{z-index:72;background:var(--surface);flex-direction:column;display:flex;position:fixed;inset:0}.compare .head{border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;padding:16px 24px;display:flex}.compare .head .h3{flex:1;min-width:200px}.compare .tiles{flex-wrap:wrap;gap:8px;display:flex}.compare .cols{flex:1;grid-template-columns:1fr 1fr;min-height:0;display:grid}.compare .col{border-right:2px solid var(--line);flex-direction:column;min-height:0;display:flex}.compare .col:last-child{border-right:0}.compare .col .art{background:#202020;flex:1;min-height:0;position:relative;overflow:hidden}.compare .col .osd{position:absolute;inset:0}.compare .col .note{touch-action:pan-y;overscroll-behavior:contain;flex:0 auto;min-height:150px;max-height:45%;padding:16px 20px 20px;overflow-y:auto}.compare .col .note .who{color:var(--text);margin-bottom:8px;font-size:15px;font-weight:800}.compare .col .note .who span{color:var(--faint);font-weight:700}.compare .col .zoom-ctrls{gap:8px;display:flex;position:absolute;bottom:12px;left:12px}.compare .prompt{background:var(--polar);border-bottom:2px solid var(--line);color:var(--text);padding:12px 24px;font-size:16px;font-weight:700}.section-banner{border-radius:var(--r-card);background:var(--accent);color:#fff;box-shadow:0 4px 0 var(--accent-edge);align-items:center;gap:12px;margin:32px 0 20px;padding:16px 20px;display:flex}.section-banner:first-child{margin-top:0}.section-banner .meta{flex:1}.section-banner .label{letter-spacing:.06em;text-transform:uppercase;opacity:.85;font-size:13px;font-weight:800}.section-banner .title{font-size:21px;font-weight:800}.path{flex-direction:column;align-items:center;gap:18px;padding:44px 0 8px;display:flex;position:relative}.path-node{appearance:none;cursor:pointer;background:var(--line);width:72px;height:66px;box-shadow:0 8px 0 var(--edge-gray);color:#fff;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:relative;top:0}.path-node.done{background:var(--accent);box-shadow:0 8px 0 var(--accent-edge)}.path-node:active{box-shadow:0 2px 0 var(--edge-gray);top:6px}.path-node.done:active{box-shadow:0 2px 0 var(--accent-edge)}.path-node svg{width:34px;height:34px}.path-node img{object-fit:cover;border:3px solid #ffffffe6;border-radius:50%;width:44px;height:40px}.path-node .lbl{white-space:nowrap;color:var(--muted);text-align:left;font-size:15px;font-weight:700;position:absolute;top:50%;left:calc(100% + 16px);transform:translateY(-50%)}.pop-card{z-index:3;border-radius:var(--r-card);background:var(--accent);color:#fff;width:300px;box-shadow:0 4px 0 var(--accent-edge);padding:16px;animation:.12s fade-in;position:absolute;left:50%;transform:translate(-50%)}.pop-card:before{content:"";background:var(--accent);border-radius:3px;width:18px;height:18px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(45deg)}.pop-card .t{font-size:19px;font-weight:800}.pop-card .s{opacity:.9;margin:4px 0 14px;font-size:15px;font-weight:700}.list-card{border:2px solid var(--line);border-radius:var(--r-card);background:var(--surface);align-items:center;gap:16px;padding:16px;display:flex}.list-card+.list-card{margin-top:12px}.list-card .grow{flex:1;min-width:0}.list-card .thumbs{flex:none;gap:6px;display:flex}.list-card .thumbs img{object-fit:cover;border:2px solid var(--line);border-radius:8px;width:64px;height:56px}.list-card .ico{border-radius:14px;flex:none;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.list-card .ico svg{width:32px;height:32px}.guide-head{border-bottom:2px solid var(--line);align-items:center;gap:20px;margin-bottom:24px;padding-bottom:24px;display:flex}.guide-head .ico{background:var(--accent);border-radius:22px;flex:none;justify-content:center;align-items:center;width:88px;height:88px;display:flex}.guide-head .ico svg{color:#fff;width:48px;height:48px}.guide-list{flex-direction:column;gap:12px;margin:12px 0 28px;display:flex}.guide-list .bubble{align-items:flex-start;gap:12px;display:flex}.guide-list .bubble svg{width:22px;height:22px;color:var(--blue);flex:none;margin-top:1px}.back-link{appearance:none;cursor:pointer;color:var(--faint);background:0 0;border:0;align-items:center;gap:8px;margin-bottom:16px;padding:0;font-size:16px;font-weight:800;display:inline-flex}.back-link:hover{color:var(--muted)}.back-link svg{width:22px;height:22px}.loading{z-index:100;background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:20px;transition:opacity .5s;display:flex;position:fixed;inset:0}.loading .progress{flex:none;width:280px}.loading-content{justify-items:center;gap:20px;width:min(360px,100% - 48px);display:grid}.loading-message{text-align:center;overflow-wrap:anywhere;place-items:center;width:100%;height:84px;line-height:28px;display:grid}.loading-progress{width:min(280px,100%);height:16px}.loading-progress .progress{width:100%}.loading-progress[aria-hidden=true]{visibility:hidden}.loading.done{opacity:0;pointer-events:none}.toast{z-index:120;background:var(--surface);border:2px solid var(--line);color:var(--text);border-radius:14px;padding:12px 18px;font-size:15px;font-weight:800;animation:.2s fade-in;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}button,a{-webkit-tap-highlight-color:transparent}button:focus,button:focus-visible,a:focus,a:focus-visible{outline:none}.guide-wrap{flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:24px;right:20px;pointer-events:none!important}.guide-wrap>*{pointer-events:auto}.guide-btn,.view-btn,.music-btn{color:var(--blue)}.music-btn.off{color:var(--faint)}.now-playing{background:var(--surface);border:2px solid var(--line);width:min(360px,100% - 108px);box-shadow:0 4px 0 var(--line);border-radius:14px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px;padding:8px;animation:.3s fade-in;display:grid;position:absolute;bottom:24px;right:84px}.now-playing .what{flex-direction:column;min-width:0;display:flex}.now-playing .track-control{width:44px;height:44px;color:var(--blue);box-shadow:none;background:0 0;border:0;border-radius:10px}.now-playing .track-control:hover:not(:disabled){background:var(--polar)}.now-playing .track-control:active:not(:disabled){top:1px}.now-playing .track-control:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.now-playing .track-control:disabled{color:var(--faint);opacity:.4;cursor:default;top:0}.now-playing .title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:800;overflow:hidden}.now-playing .who{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}#hud.seated>.now-playing{display:none}.modal-backdrop{z-index:90;background:#00000073;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:12px;width:min(560px,100% - 32px);position:relative;overflow:hidden}.modal-x{position:absolute;top:14px;right:14px}.modal-body{flex-direction:column;gap:16px;padding:40px 48px 32px;display:flex}.modal-body .h3{text-align:center;margin-bottom:8px}.modal-foot{border-top:2px solid var(--line);justify-content:flex-end;padding:16px 20px;display:flex}.coach-row{color:var(--text);align-items:center;gap:14px;font-size:16px;font-weight:600;line-height:1.4;display:flex}.coach-row .ico{border:2px solid var(--line);width:44px;height:44px;color:var(--blue);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex}.coach-row .ico svg{width:24px;height:24px}.option .label{text-align:center;flex:1;padding-right:30px}.option .key{border-radius:6px;width:26px;height:26px;font-size:13px}.image-option .cap{text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.image-option .key{border:2px solid var(--line);width:26px;height:26px;color:var(--faint);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:inline-flex}.image-option.selected .key{border-color:var(--blue-border);color:var(--blue-ink)}.image-option.correct .key{border-color:var(--green-border);color:var(--green-ink)}.image-option.wrong .key{border-color:var(--red-border);color:var(--red-ink)}.tf-row .image-option .key{display:none}.tf-row .image-option svg{color:var(--blue)}.tf-row .image-option.correct svg{color:var(--green)}.tf-row .image-option.wrong svg{color:var(--red)}.viewer .zoom-ctrls.right{left:auto;right:16px}.viewer .icon-btn{color:var(--faint)}.viewer .icon-btn:hover{color:var(--muted)}.choices.settings .option .label{text-align:left;padding-right:0}.choices.settings .option svg{width:24px;height:24px;color:var(--blue);flex:none}.appearance-picker{flex-direction:column;gap:14px;display:flex}.appearance-row{align-items:center;gap:16px;display:flex}.appearance-label{width:58px;color:var(--text);font-weight:800}.appearance-colors{flex-wrap:wrap;gap:8px;display:flex}.appearance-swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:30px;height:30px;box-shadow:0 1px 3px #0003}.appearance-swatch.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.stick{touch-action:none;-webkit-touch-callout:none;justify-content:center;align-items:center;width:150px;height:150px;display:none;position:absolute;bottom:16px;left:16px}body.touch .stick{display:flex}.stick .ring{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:.75;background:#ffffff47;border:2px solid #4b4b4b29;border-radius:50%;justify-content:center;align-items:center;width:112px;height:112px;transition:opacity .15s,background .15s;display:flex}.stick.active .ring{opacity:1;background:#fff6}.stick .knob{background:#ffffffa6;border-radius:50%;width:48px;height:48px;transition:transform .18s ease-out;box-shadow:0 2px 6px #0003}.stick.active .knob{transition:none}.move-pad{gap:8px;display:none;position:absolute;bottom:172px;left:16px}body.touch .move-pad{display:flex}.move-btn{appearance:none;cursor:pointer;touch-action:none;-webkit-touch-callout:none;color:#4b4b4b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffff8c;border:2px solid #4b4b4b29;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:background .15s,color .15s,transform .1s;display:flex}.move-btn:active{transform:scale(.92)}.move-btn.on{background:var(--blue);color:#fff;border-color:#0000}.move-btn.attack{color:#ba3978;background:#ffdbefcc;position:absolute;bottom:52px;left:52px}.move-btn:disabled{opacity:.4}.move-btn .svg-icon,.move-btn svg{width:22px;height:22px;display:block}body.touch .viewer .zoom-ctrls:not(.right)>button:not(:last-child){display:none}@keyframes card-up-r{0%{opacity:0;transform:translateY(16px)}}@media (width<=640px){:root,:root.nav-collapsed{--sidebar:0px;--tabbar:64px}#app{flex-direction:column-reverse;height:100dvh}#sidebar{width:100%;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:2px solid var(--line);flex-direction:row;justify-content:space-around;align-items:center;gap:4px}#sidebar .wordmark,#sidebar .nav-foot,.nav-rail{display:none}:root.nav-collapsed #sidebar>:not(.nav-rail,.wordmark,.nav-foot){display:flex}:root.nav-collapsed #sidebar{padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.nav-item{flex:1;justify-content:center;max-width:68px;height:48px;padding:0}.nav-item span{display:none}.nav-item svg{width:28px;height:28px}#stage{flex:1;height:auto;min-height:0}.page.over-stage{left:0;bottom:calc(var(--tabbar) + env(safe-area-inset-bottom))}.page-inner{width:calc(100% - 32px);padding:20px 0 48px}.unit-banner{width:calc(100% - 24px);padding:10px 10px 10px 16px;top:12px;left:12px}.unit-banner .label{font-size:11px}.unit-banner .title{font-size:18px}.unit-banner .guide{gap:0;height:40px;padding:0 10px;font-size:0}.guide-wrap{top:88px;bottom:auto;right:12px}.now-playing{width:min(360px,100% - 96px);top:88px;bottom:auto;right:72px}.round-x{top:12px;left:12px}.hint-pill{white-space:normal;text-align:center;max-width:calc(100% - 32px);top:76px;bottom:auto}.world-card{width:calc(100% - 24px);padding:14px 14px 6px;bottom:12px}.world-card .t{font-size:17px}.world-card .s{margin-bottom:10px;font-size:13px}.world-card .btn{height:44px}.world-card .btn.ghost{height:38px;margin-top:2px}body.touch .world-card{width:calc(100% - 172px);animation-name:card-up-r;left:auto;right:12px;transform:none}.stick{bottom:6px;left:6px}.move-pad{bottom:160px;left:12px}.viewer .topbar{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left))}.viewer .zoom-ctrls{left:max(12px, env(safe-area-inset-left));gap:6px;bottom:12px}.viewer .zoom-ctrls.right{right:max(12px, env(safe-area-inset-right))}.viewer .icon-btn,.viewer .topbar .close-x{width:44px;height:44px}.viewer .zoom-readout{min-width:56px;height:44px;padding:0 6px;font-size:12px}.viewer .panel .scroll{padding:16px}.viewer .panel .foot{padding:12px 16px calc(16px + env(safe-area-inset-bottom))}.viewer .panel .foot .btn{min-width:0;padding:0 12px}.viewer .panel .h2{font-size:21px}.modal{touch-action:pan-y;max-height:calc(100dvh - 32px);overflow-y:auto}.modal-body{padding:36px 22px 24px}.page-inner .btn.block{white-space:normal;height:auto;min-height:50px;padding:12px 16px}.section-banner{flex-wrap:wrap;gap:12px;padding:14px 16px}.section-banner .meta{flex:170px;min-width:0}.section-banner .title{font-size:19px}.list-card{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:12px;display:grid}.list-card>.btn{grid-column:1/-1;width:100%}.list-card .thumbs img{width:48px;height:44px}.list-card .ico{width:44px;height:44px}.list-card .h3{overflow-wrap:anywhere;font-size:17px}.guide-head{gap:14px}.guide-head .ico{border-radius:16px;width:56px;height:56px}.guide-head .ico svg{width:32px;height:32px}.guide-head .h2{font-size:21px}.pop-card{width:min(300px,100vw - 32px);left:calc(50% - var(--node-offset,0px))}.pop-card:before{left:calc(50% + var(--node-offset,0px))}.lesson-top{padding-top:max(20px, env(safe-area-inset-top));width:calc(100% - 32px)}.lesson-col{width:calc(100% - 32px);padding-top:20px}.lesson-foot{min-height:0;padding-bottom:env(safe-area-inset-bottom)}.lesson-foot .inner{gap:12px;width:calc(100% - 32px);padding:16px 0}.feedback .ttl{font-size:21px}.compare .col .zoom-ctrls{gap:6px;bottom:8px;left:8px}.compare .col .icon-btn{width:44px;height:44px}.compare .col .note .bubble{padding:8px 10px;font-size:14px}.compare .tiles{gap:6px}.compare .tiles .tile{padding:8px 10px;font-size:13px}.compare .head{padding-top:max(12px, env(safe-area-inset-top));flex:none}.compare .prompt{flex:none}.compare .cols{padding-bottom:env(safe-area-inset-bottom);grid-template-rows:1fr 1fr;grid-template-columns:1fr}.compare .col{border-right:0;border-bottom:2px solid var(--line)}.compare .col .note{min-height:0;padding:10px 14px 12px}.compare .head{gap:10px;padding:12px 14px}.compare .prompt{padding:10px 14px;font-size:14px}}@media (width>=641px) and (width<=900px) and (height<=600px){.viewer{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 300px}.viewer .panel{border-top:0;border-left:2px solid var(--line)}.viewer .panel .scroll{padding:16px}.viewer .panel .foot{padding:12px 16px 16px}.viewer .panel .foot .btn{min-width:0;padding:0 12px}.viewer .zoom-ctrls{gap:6px;left:12px}.viewer .zoom-ctrls.right{right:12px}.viewer .icon-btn{width:40px;height:44px}.viewer .zoom-readout{min-width:56px;height:44px;padding:0 6px;font-size:12px}}@media (width<=360px){.viewer .icon-btn{width:40px}.viewer .zoom-ctrls{gap:4px}.world-card .btn{padding:0 12px;font-size:13px}}.npc-card .t{padding:0 24px}.npc-card .npc-reply{text-align:left;white-space:pre-line;margin:0 0 8px;font-size:15px;line-height:1.55}.conversation-card{width:min(560px,100% - 32px);max-height:46vh;overflow-y:auto}.npc-choices{flex-wrap:wrap;gap:6px;display:flex}.npc-choices .btn{white-space:normal;flex:180px;height:auto;min-height:40px}.npc-talk-hint{max-width:calc(100% - 32px);position:absolute;bottom:28px;left:50%;transform:translate(-50%)}body.touch .world-card.conversation-card{width:min(560px,100% - 24px);left:50%;right:auto;transform:translate(-50%)}
