@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:var(--surface);--edge:var(--line);--fg:var(--blue);border:2px solid var(--line)}.btn.ghost:hover{--bg: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:#be614a;letter-spacing:-.02em;align-items:center;gap:8px;padding:0 8px 24px;font-size:28px;font-weight:800;display:flex}.wordmark img{flex:none;display:block}.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{justify-content:center;padding:0 0 16px}.wordmark span{display:none}.nav-item{justify-content:center;padding:0}.nav-item .nav-label,.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}.turnstile-host{min-width:150px;max-width:100%;margin:0 auto}.security-notice{z-index:2000;pointer-events:none;text-align:center;width:min(360px,100vw - 24px);font-size:13px;position:fixed;top:150px;left:50%;transform:translate(-50%)}.security-notice.active{border:2px solid var(--line);background:var(--surface);color:var(--text);pointer-events:auto;border-radius:16px;padding:16px}.security-notice.active .turnstile-host{margin-top:12px}.security-notice.active~.security-notice.active:not(:has(iframe)){display:none}.security-notice p{line-height:1.5}.visitors-control{z-index:5;pointer-events:auto;max-width:calc(100% - 40px);position:absolute;top:112px;left:20px}.multiplayer-status{cursor:pointer;text-align:left;border:2px solid var(--line);background:var(--surface);max-width:100%;color:var(--text);border-radius:14px;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:800;display:flex}.multiplayer-status:disabled{cursor:default}.multiplayer-status:hover:not(:disabled){background:var(--polar)}.visitors-control button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.visitors-panel{overscroll-behavior:contain;background:var(--surface);width:min(340px,100vw - 40px);max-height:calc(100dvh - 210px);color:var(--text);border:2px solid var(--line);border-radius:var(--r-card);box-shadow:0 4px 0 var(--line);padding:14px;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto}.visitors-total{color:var(--muted);margin:8px 0 12px;font-size:12px}.channel-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:170px;display:grid;overflow-y:auto}.channel-options button{border:2px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:3px;padding:10px;font-size:12px;display:flex}.channel-options button[aria-pressed=true]{border-color:var(--blue);background:var(--polar)}.channel-options button:disabled{opacity:.55;cursor:default}.channel-options small{color:var(--muted);font-size:10px}.channel-label{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.channel-label svg{width:18px;height:18px;color:var(--blue);flex:none}.channel-hint{color:var(--muted);margin:10px 0 16px;font-size:11px}.visitors-panel h3{justify-content:space-between;margin:0 0 6px;font-size:13px;display:flex}.visitors-panel h3 span{color:var(--blue)}.visitors-list{margin:0;padding:0;list-style:none}.visitors-list li{border-top:1px solid var(--line);align-items:center;gap:8px;min-height:36px;font-size:12px;display:flex}.visitors-list small{color:var(--blue);margin-left:auto;font-weight:800}.visitor-dot{background:var(--blue);border-radius:50%;width:8px;height:8px}.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{border:1px solid var(--line);background:var(--surface);color:var(--text);white-space:nowrap;will-change:transform;border-radius:10px;padding:3px 8px;font-size:11px;font-weight:800;position:absolute;top:0;left:0}.emote-control{z-index:4;pointer-events:auto;position:absolute;bottom:80px;right:20px}.emote-toggle{border:2px solid var(--line);background:var(--surface);width:48px;height:48px;box-shadow:0 3px 0 var(--line);cursor:pointer;border-radius:14px;place-items:center;font-size:26px;display:grid}.emote-toggle:hover:not(:disabled),.emote-options button:hover:not(:disabled){background:var(--polar)}.emote-toggle:disabled{opacity:.5;cursor:default}.emote-picker{border:2px solid var(--line);border-radius:var(--r-card);background:var(--surface);width:min(300px,100vw - 104px);color:var(--text);box-shadow:0 4px 0 var(--line);max-height:calc(100dvh - 230px);padding:12px;position:absolute;bottom:0;right:60px;overflow-y:auto}.emote-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.emote-heading button{background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border:0;border-radius:10px;font-size:24px}.emote-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.emote-options button{border:1px solid var(--line);background:var(--surface);min-height:62px;color:var(--text);cursor:pointer;font:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;display:flex}.emote-options button:disabled{opacity:.4;cursor:default}.emote-options span{font-size:26px;line-height:1.2}.emote-options small{overflow-wrap:anywhere;font-size:10px}.emote-picker p{color:var(--muted);margin:10px 0 0;font-size:11px}.emote-control button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.emote-anchor{pointer-events:none;position:absolute;top:0;left:0}.emote-bubble{background:var(--surface);border:2px solid var(--line);box-shadow:0 3px 0 var(--line);border-radius:18px;padding:8px 12px;font-size:34px;line-height:1.2;animation:.18s ease-out emote-appear;display:block;position:relative}.emote-bubble:after{content:"";background:var(--surface);border-right:2px solid var(--line);border-bottom:2px solid var(--line);width:10px;height:10px;position:absolute;bottom:-7px;left:calc(50% - 5px);transform:rotate(45deg)}@keyframes emote-appear{0%{opacity:0;scale:.7}to{opacity:1;scale:1}}@media (prefers-reduced-motion:reduce){.emote-bubble{animation:none}}@media (width<=640px){.emote-toggle{border-radius:14px;width:44px;height:44px;font-size:24px}.emote-picker{width:min(300px,100vw - 24px);max-height:calc(100dvh - 320px);top:52px;bottom:auto;right:-52px;overflow-y:auto}}@media (height<=600px) and (width<=640px){.emote-picker{max-height:calc(100dvh - 100px);top:auto;bottom:0}}@media (width<=700px){.visitors-control{max-width:calc(100% - 190px);top:94px;left:12px}.multiplayer-status{padding:6px 8px;font-size:10px}.visitors-panel{width:min(340px,100vw - 24px);max-height:calc(100dvh - 180px)}}.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-artworks .viewed{fill-opacity:.35;stroke-opacity:.5}.minimap-npc{fill:var(--green);stroke:var(--green-edge);stroke-width:1.2px}.minimap-npc.selected{stroke:var(--text);stroke-width:2px}.minimap-guest{fill:var(--purple);stroke:var(--surface);stroke-width:1.4px}.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;max-width:100%;color:var(--muted);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:4px 8px;margin:6px auto 0;padding:2px 8px;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%}.minimap-legend .guest{background:var(--purple);border-radius:50%}@media (width<=1180px){.map-stack{width:164px;top:112px}.minimap{width:164px}}@media (width<=640px){.map-stack{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));gap:0;width:112px}.minimap{width:112px}.minimap-toggle{width:36px;height:36px;top:-8px;right:-6px}.minimap.collapsed{width:44px;height:44px}.minimap-legend{display:none}.minimap-caption{margin-top:8px;padding:2px 8px;font-size:12px}}@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-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.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;justify-content:space-between;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 .sheet-header{flex:none}@media (width>=901px){.viewer .sheet-title{overflow-wrap:anywhere;flex:none;padding:28px 24px 0}.viewer .sheet-title .small{margin-top:4px}.viewer .panel .scroll{min-height:0;padding-top:0}}.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,3fr) minmax(0,2fr);grid-template-columns:minmax(0,1fr)}.viewer .panel{z-index:6;background:var(--surface);border:0;border-radius:20px 20px 0 0;position:relative;overflow:hidden;box-shadow:0 -8px 32px #0000003d}.viewer .sheet-title{flex:none;padding:12px 18px 0}.viewer .sheet-title .h2{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:17px;line-height:1.2;overflow:hidden}.viewer .sheet-title .small{white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:13px;overflow:hidden}.viewer .panel .scroll{flex:1;min-height:0;padding:8px 18px 20px}.viewer .panel .foot{padding:10px 16px calc(16px + env(safe-area-inset-bottom));flex:none;margin-top:auto}}.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-dots{white-space:nowrap;animation:1.2s step-end infinite loading-dots;display:inline-block}@keyframes loading-dots{0%{clip-path:inset(0 66.666% 0 0)}33.333%{clip-path:inset(0 33.333% 0 0)}66.666%,to{clip-path:inset(0)}}.loading-progress{width:min(280px,100%);height:16px}.loading-progress .progress{width:100%}.loading-active>i{overflow:hidden}.loading-active>i:before{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:1.5s linear infinite loading-flow;position:absolute;inset:0}@keyframes loading-flow{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-progress[aria-hidden=true]{visibility:hidden}.loading.done{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.loading-dots{animation:none}.loading-active>i{transition:none}.loading-active>i:before{animation:none;display: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:row;align-items:center;gap:8px;display:flex;position:absolute;bottom:24px;right:20px;pointer-events:none!important}.guide-wrap>*{pointer-events:auto}.view-btn{color:var(--blue)}.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:minmax(0,1fr) auto;align-items:center;gap:8px;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-controls{justify-content:center;align-items:center;gap:4px;display:flex}.now-playing .playback-control{background:var(--polar)}.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,.mobile-dock,.mobile-page-close{display:none}.portrait-guard{width:100vw;max-width:none;height:100dvh;max-height:none;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));background:var(--surface);color:var(--text);border:0;margin:0;position:fixed;inset:0}.portrait-guard[open]{text-align:center;place-items:center;display:grid}.portrait-guard::backdrop{background:var(--surface)}.portrait-guard svg{width:48px;height:48px;color:var(--blue)}.portrait-guard h2{margin:16px 0 8px;font-size:20px}.portrait-guard p{color:var(--muted);margin:0;font-size:14px}.mobile-control-help{color:var(--muted);margin-top:18px;font-size:14px;line-height:1.6}.mobile-control-help summary{cursor:pointer;min-height:44px;color:var(--text);padding:10px 0}.mobile-control-help p{margin:4px 0 12px}.mobile-menu{margin:auto auto max(12px, env(safe-area-inset-bottom));width:calc(100% - max(12px, env(safe-area-inset-left)) - max(12px, env(safe-area-inset-right)));max-width:480px;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--line);background:var(--surface);color:var(--text);overscroll-behavior:contain;touch-action:pan-y;border-radius:20px;padding:0;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 12px 40px #0004}.mobile-menu::backdrop{background:#0006}.mobile-menu-content{padding:12px}.mobile-menu header{justify-content:space-between;align-items:center;margin-bottom:8px;padding-left:12px;display:flex}.mobile-menu h2{margin:0;font-size:18px}.mobile-menu .close-x{justify-content:center;align-items:center;width:44px;height:44px}.mobile-menu nav{gap:4px;display:grid}.mobile-menu .nav-item{text-transform:none;letter-spacing:normal;justify-content:flex-start;gap:14px;width:100%;height:48px;padding:0 12px}.mobile-menu .nav-label{display:inline}.mobile-menu .nav-item svg{width:24px;height:24px}.mobile-menu button:focus-visible,.mobile-dock button:focus-visible,.mobile-page-close:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.mobile-sheet{width:100%;max-width:none;max-height:calc(100dvh - max(12px, env(safe-area-inset-top)));border:1px solid var(--line);background:var(--surface);color:var(--text);touch-action:pan-y;border-bottom:0;border-radius:22px 22px 0 0;margin:0;padding:0;position:fixed;inset:auto 0 0;overflow:hidden;box-shadow:0 -8px 40px #0003}.mobile-sheet::backdrop{background:#0006}.mobile-sheet-content{max-height:inherit;flex-direction:column;display:flex}.mobile-sheet header{padding:12px max(12px, env(safe-area-inset-right)) 10px max(20px, env(safe-area-inset-left));border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.mobile-sheet h2{margin:0;font-size:18px}.mobile-sheet .close-x{flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:static}.mobile-sheet-body{overscroll-behavior:contain;touch-action:pan-y;min-height:0;padding:12px max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));overflow-y:auto}.mobile-sheet button:focus-visible,.mobile-selector:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.mobile-sheet .era-menu{max-height:none;box-shadow:none;background:0 0;border:0;gap:6px;padding:0;position:static;overflow:visible}.mobile-sheet .era-option{flex:none;gap:12px;min-height:64px;padding:10px 12px}.mobile-sheet .era-option .num{width:36px;height:36px;font-size:16px}.mobile-sheet .era-option .t{white-space:normal;font-size:16px;line-height:1.3;overflow:visible}.mobile-sheet .era-option .s{white-space:normal;margin-top:3px;font-size:12px;line-height:1.4;overflow:visible}.mobile-sheet .era-option.here{border-color:var(--accent)}.channel-sheet .channel-self{color:var(--muted);overflow-wrap:anywhere;margin:0 0 4px;font-size:13px}.channel-sheet .channel-self strong{color:var(--text)}.channel-sheet .visitors-total{margin:0 0 16px;font-size:13px}.channel-sheet .channel-options{max-height:none;overflow:visible}.channel-sheet .channel-options button{gap:6px;min-height:68px;padding:12px;font-size:14px}.channel-sheet .channel-options small,.channel-sheet .channel-hint{font-size:12px}.channel-sheet h3{justify-content:space-between;gap:12px;margin:20px 0 8px;font-size:14px;display:flex}.channel-sheet h3 span{color:var(--blue)}.channel-sheet .visitors-list li{min-height:44px;font-size:14px}.channel-sheet .visitors-list li>span:not(.visitor-dot){overflow-wrap:anywhere;min-width:0}.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}.feedback-dialog{border:2px solid var(--line);height:fit-content;color:var(--text);touch-action:pan-y;max-height:calc(100dvh - 32px);margin:auto;padding:0;position:fixed;inset:0;overflow-y:auto}.feedback-dialog::backdrop{background:#00000073}.feedback-dialog h2,.feedback-dialog p{margin:0}.feedback-dialog h2{text-align:center;font-size:24px}.feedback-dialog label{font-weight:800}.feedback-stamp{color:#fff4df;background:#c83f43;border-radius:20px;align-self:center;place-items:center;width:64px;height:64px;font-size:40px;display:grid}.feedback-dialog textarea{resize:vertical;border:2px solid var(--line);background:var(--polar);width:100%;min-height:120px;color:var(--text);font:inherit;touch-action:pan-y;border-radius:12px;padding:12px;font-size:16px}.feedback-dialog textarea:focus{outline:3px solid color-mix(in srgb, var(--blue) 25%, transparent);border-color:var(--blue)}.feedback-dialog :is(button,a,input):focus-visible{outline:3px solid var(--blue);outline-offset:3px}.feedback-dialog :is(textarea,input){-webkit-user-select:text;user-select:text}.feedback-address{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.feedback-address input{width:160px;min-width:0;color:var(--text);font:inherit;background:0 0;border:0;flex:1;font-size:16px}.feedback-copy-status{min-height:1.4em}.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}.coach-keys{grid-template-columns:max-content 1fr;align-items:center;gap:10px 16px;margin:0;display:grid}.coach-keys>div{display:contents}.coach-keys dt{gap:4px;display:flex}.coach-keys dd{color:var(--text);margin:0;font-size:15px;font-weight:600;line-height:1.35}.coach-keys kbd{box-sizing:border-box;border:2px solid var(--line);background:var(--surface);min-width:30px;height:30px;color:var(--text);font:700 13px/1 var(--font);border-bottom-width:4px;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;display:inline-flex}.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}.character-preview{background:radial-gradient(ellipse at 50% 75%, var(--line), var(--polar) 65%);border:2px solid var(--line);border-radius:18px;height:240px;margin:8px 0 4px;position:relative;overflow:hidden}.character-preview canvas{width:100%;height:100%;display:block}.preview-status{color:var(--muted);background:var(--polar);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.language-options input{opacity:0;width:1px;height:1px;position:absolute}.language-options .option:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:2px}.language-options .label{flex:1}.language-options small{color:var(--muted);margin-top:4px;font-size:13px;font-weight:600;display:block}.character-name-label{color:var(--text);margin:12px 0 6px;font-size:14px;font-weight:800;display:block}.character-name-input{border:2px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:var(--text);font:inherit;border-radius:12px;margin-bottom:18px;padding:0 14px;display:block}.character-name-input:focus{border-color:var(--blue);outline:3px solid color-mix(in srgb, var(--blue) 20%, transparent)}.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{right:var(--touch-right);bottom:var(--touch-bottom);width:var(--stick-size);height:var(--stick-size);touch-action:none;-webkit-touch-callout:none;justify-content:center;align-items:center;display:none;position:absolute}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}#hud{--touch-top:max(12px, env(safe-area-inset-top));--touch-left:max(12px, env(safe-area-inset-left));--touch-right:max(12px, env(safe-area-inset-right));--touch-bottom:max(12px, env(safe-area-inset-bottom));--stick-size:150px;--action-size:52px;--action-bottom:calc(var(--touch-bottom) + 20px);--interaction-bottom:calc(var(--touch-bottom) + var(--stick-size) + 12px)}#hud[data-stick-side=left] .stick{left:var(--touch-left);right:auto}#hud[data-stick-side=left] .move-pad{left:auto;right:var(--touch-right)}.move-pad{left:var(--touch-left);bottom:var(--action-bottom);display:none;position:absolute;pointer-events:none!important}body.touch .move-pad{display:grid}.move-btn{appearance:none;cursor:pointer;touch-action:none;-webkit-touch-callout:none;color:#4b4b4b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;background:#ffffff8c;border:2px solid #4b4b4b29;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;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{width:var(--action-size);height:var(--action-size);color:#ba3978;background:#ffdbef85;border-color:#ba397847;box-shadow:0 2px 8px #00000029}.move-btn:disabled{opacity:.4}.move-btn .svg-icon,.move-btn svg{width:22px;height:22px;display:block}.move-btn.attack .svg-icon,.move-btn.attack svg{width:26px;height:26px}.move-btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media (width<=640px),(height<=600px) and (pointer:coarse){:root,:root.nav-collapsed{--sidebar:0px}#app{height:100dvh}#sidebar{display:none}#stage{height:100%}#hud{--touch-bottom:calc(max(12px, env(safe-area-inset-bottom)) + 68px)}.page.over-stage{bottom:0;left:0}.page-inner{width:calc(100% - 32px);padding:calc(max(12px, env(safe-area-inset-top)) + 56px) 0 calc(32px + env(safe-area-inset-bottom))}.mobile-page-close{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));background:var(--surface);z-index:1;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;position:fixed}.mobile-dock{left:var(--touch-left);right:var(--touch-right);bottom:max(12px, env(safe-area-inset-bottom));z-index:4;align-items:center;gap:8px;height:56px;display:flex;position:absolute;pointer-events:none!important}.mobile-dock>*{pointer-events:auto}.mobile-menu-toggle{width:48px;height:52px;color:var(--muted);flex:none}.mobile-dock .now-playing{width:auto;min-width:0;height:56px;box-shadow:0 2px 0 var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);flex:1;gap:4px;padding:4px 6px 4px 12px;position:static}.mobile-dock .now-playing .title{font-size:12px;line-height:1.3}.mobile-dock .now-playing .who{color:var(--muted);font-size:10px;line-height:1.4}.mobile-dock .track-controls{gap:0}.mobile-dock .track-control{width:44px;height:44px}.mobile-dock .track-control svg{width:22px;height:22px}.unit-banner{top:var(--touch-top);left:var(--touch-left);width:max-content;min-height:52px;max-width:calc(100% - var(--touch-left) - var(--touch-right) - 124px);border:1px solid var(--line);border-left:4px solid var(--accent);background:color-mix(in srgb, var(--surface) 92%, transparent);color:var(--text);border-radius:14px;padding:0;box-shadow:0 2px 8px #0002}.unit-banner .label,.unit-banner .guide{display:none}.unit-banner .era-switch{justify-content:center;min-height:50px;padding:8px 10px}.unit-banner .title{white-space:normal;gap:6px;width:100%;font-size:14px;line-height:17px;overflow:visible}.unit-banner .era-name{overflow-wrap:anywhere;overflow:visible}.unit-banner .title svg{width:18px;height:18px}.visitors-control{top:calc(var(--touch-top) + 60px);left:var(--touch-left);max-width:calc(100% - var(--touch-left) - var(--touch-right) - 124px)}.multiplayer-status{background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:12px;gap:6px;min-height:44px;padding:8px 10px;font-size:11px}.multiplayer-status small{display:none}}@media (width<=640px){#hud{--hud-row:88px}.guide-wrap{right:var(--touch-right);bottom:auto;top:calc(var(--hud-row) + 84px);flex-direction:row;gap:8px}.guide-wrap .icon-btn{border-radius:14px;width:44px;height:44px}.emote-control{right:calc(var(--touch-right) + 52px);bottom:auto;top:calc(var(--hud-row) + 84px)}.emote-toggle{border-radius:14px;width:44px;height:44px;font-size:24px}.round-x{top:12px;left:12px}.hint-pill{white-space:normal;text-align:center;width:max-content;max-width:calc(100% - 32px)}body.touch .hint-pill{bottom:var(--interaction-bottom)}.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}.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);border-radius:0}.viewer .sheet-title{padding:16px 16px 0}.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{touch-action:pan-y;overscroll-behavior:contain;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{box-sizing:border-box;white-space:normal;width:max-content;max-width:calc(100% - 32px);height:auto;min-height:48px;padding:12px 18px;line-height:1.3;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.npc-talk-hint.btn{white-space:nowrap;flex:none;align-self:auto;width:max-content;height:48px;min-height:48px;max-height:48px;padding:0 18px;display:inline-flex;inset:auto auto 28px 50%;transform:translate(-50%)}body.touch .world-card{left:50%;right:auto;bottom:var(--interaction-bottom);width:min(560px, calc(100% - var(--touch-left) - var(--touch-right)));max-height:min(52%, calc(100% - var(--interaction-bottom) - 100px));z-index:5;overscroll-behavior:contain;touch-action:pan-y;overflow-wrap:anywhere;padding:16px;overflow-y:auto;transform:translate(-50%)}body.touch .world-card>*{flex-shrink:0}body.touch .world-card .t{font-size:19px}body.touch .world-card .s{margin-bottom:8px;font-size:15px}body.touch .world-card .btn{white-space:normal;height:auto;min-height:48px;padding:10px 14px;font-size:15px}body.touch .world-card .npc-close{width:44px;height:44px;top:4px;right:4px}body.touch .world-card .npc-reply{font-size:16px;line-height:1.6}body.touch .world-card-actions{gap:10px;display:flex}body.touch .world-card-actions .btn{flex:1;min-width:0;margin:0}body.touch .world-card.conversation-card{bottom:var(--touch-bottom);max-height:min(60%, calc(100% - var(--touch-bottom) - 100px))}body.touch .npc-talk-hint{bottom:var(--interaction-bottom);left:var(--touch-left);width:min(250px, calc(100vw - var(--stick-size) - var(--touch-left) - var(--touch-right) - 20px));white-space:normal;z-index:5;height:auto;min-height:48px;max-height:96px;padding:12px 16px;font-size:15px;line-height:1.3;right:auto;transform:none}#hud[data-stick-side=left] .npc-talk-hint{left:auto;right:var(--touch-right)}body.touch #hud.interacting .guide-wrap,body.touch #hud.interacting>.now-playing,body.touch #hud.interacting .map-stack,body.touch #hud.interacting .emote-control,body.touch .keyboard-hint{display:none}@media (width>=641px){body.touch .guide-wrap{bottom:var(--interaction-bottom);right:var(--touch-right)}body.touch #hud>.now-playing{bottom:var(--interaction-bottom);right:calc(var(--touch-right) + 64px)}}@media (height<=600px){body.touch #hud{--stick-size:124px}body.touch .world-card{max-height:calc(100% - var(--interaction-bottom) - 12px)}body.touch .world-card.conversation-card{max-height:min(70%, calc(100% - var(--touch-bottom) - 12px))}body.touch #hud.interacting .unit-banner,body.touch #hud.interacting .visitors-control{display:none}}@media (orientation:landscape) and (height<=600px) and (pointer:coarse){#hud{--hud-row:12px;--touch-bottom:max(18px, env(safe-area-inset-bottom))}body.touch .guide-wrap{top:max(12px, env(safe-area-inset-top));bottom:auto;right:calc(var(--touch-right) + 128px);gap:8px}body.touch .guide-wrap .icon-btn{border-radius:14px;width:44px;height:44px}body.touch .map-stack{top:var(--touch-top,12px);right:var(--touch-right);width:112px}body.touch .minimap{width:112px}body.touch .minimap-toggle{width:36px;height:36px;top:-8px;right:-6px}.mobile-dock{width:min(300px, calc(100% - var(--touch-left) - var(--touch-right) - 2 * (var(--stick-size) + 16px)));left:50%;right:auto;transform:translate(-50%)}}body.touch #hud .emote-control{top:auto;bottom:calc(var(--action-bottom) + var(--action-size) + 8px);left:calc(var(--touch-left) + 4px);width:44px;height:44px;right:auto}body.touch #hud[data-stick-side=left] .emote-control{left:auto;right:calc(var(--touch-right) + 4px)}body.touch #hud .emote-toggle{touch-action:none;-webkit-touch-callout:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffff8c;border-color:#4b4b4b29;border-radius:50%;width:44px;height:44px;padding:0;font-size:24px;box-shadow:0 2px 6px #0002}body.touch #hud .emote-picker{width:min(300px, calc(100vw - var(--touch-left) - var(--touch-right)));max-height:calc(100dvh - var(--action-bottom) - var(--action-size) - 60px - var(--touch-top));touch-action:pan-y;overscroll-behavior:contain;inset:auto auto 52px -4px}body.touch #hud[data-stick-side=left] .emote-picker{left:auto;right:-4px}
