@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Source+Sans+3:wght@400;500;600&display=swap";:root{--bg: #f6f1ea;--bg-accent: #fff0d6;--ink: #1f1b16;--muted: #6a5e54;--accent: #ff6b4a;--accent-2: #1c8a84;--accent-3: #7f3cff;--stat-done: #138a3d;--panel: #ffffff;--border: #f0d2b8;--panel-muted: #fff7ec;--surface: rgba(255, 255, 255, .9);--surface-strong: rgba(255, 255, 255, .98);--surface-accent: rgba(236, 252, 250, .9);--surface-pop: rgba(255, 240, 214, .85);--surface-inset: #ffffff;--button-bg: linear-gradient(135deg, #ffffff 0%, #fff5e6 100%);--button-border-strong: rgba(28, 138, 132, .25);--nav-bg: linear-gradient(135deg, rgba(255, 255, 255, .9), rgba(255, 240, 214, .9));--drawer-bg: linear-gradient(160deg, #fffdf9 0%, #f7f2ea 55%, #eefcf9 100%);--drawer-bg-warm: linear-gradient(165deg, #fffdf8 0%, #fff2d7 52%, #f8efe4 100%);--backdrop: rgba(17, 14, 10, .32);--shadow: 0 14px 36px rgba(24, 14, 5, .12);--shadow-soft: 0 8px 22px rgba(28, 138, 132, .16);--shadow-strong: 0 12px 28px rgba(24, 14, 5, .2);--bg-radial-1: rgba(255, 198, 122, .35);--bg-radial-2: rgba(127, 60, 255, .18);--text-warm: #5b2c1f;--text-gold: #8b4b00;--danger: #d94832;font-family:"Source Sans 3",Segoe UI,sans-serif;color:var(--ink);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--bg: #0e1418;--bg-accent: #152028;--ink: #e6edf2;--muted: #9ba9b6;--accent: #ff8a66;--accent-2: #4fd0c6;--accent-3: #9a7dff;--stat-done: #57d98b;--panel: #152028;--border: #27404d;--panel-muted: #1b2a34;--surface: rgba(24, 36, 45, .9);--surface-strong: rgba(21, 32, 40, .98);--surface-accent: rgba(22, 48, 52, .9);--surface-pop: rgba(50, 38, 28, .76);--surface-inset: #111b22;--button-bg: linear-gradient(135deg, #1a2832 0%, #223440 100%);--button-border-strong: rgba(79, 208, 198, .28);--nav-bg: linear-gradient(135deg, rgba(17, 27, 34, .94), rgba(23, 38, 46, .94));--drawer-bg: linear-gradient(160deg, #131d24 0%, #17242d 55%, #162d31 100%);--drawer-bg-warm: linear-gradient(165deg, #171e25 0%, #221d19 52%, #1e262d 100%);--backdrop: rgba(4, 7, 10, .56);--shadow: 0 18px 40px rgba(0, 0, 0, .34);--shadow-soft: 0 10px 24px rgba(0, 0, 0, .28);--shadow-strong: 0 16px 34px rgba(0, 0, 0, .4);--bg-radial-1: rgba(255, 138, 102, .12);--bg-radial-2: rgba(127, 60, 255, .12);--text-warm: #f2c3b1;--text-gold: #ffd08a;--danger: #ff8f7a;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(1200px 600px at 10% -10%,var(--bg-radial-1) 0%,transparent 50%),radial-gradient(900px 500px at 90% 10%,var(--bg-radial-2) 0%,transparent 45%),var(--bg);color:var(--ink);transition:background .18s ease-out,color .18s ease-out}a{color:var(--accent-2);text-decoration:none}a:hover{color:var(--accent-3);text-decoration:underline}h1,h2{font-family:Fraunces,Georgia,serif;margin:0 0 12px}button{border-radius:12px;border:1px solid var(--border);padding:8px 14px;font-size:.95rem;font-weight:600;font-family:inherit;color:var(--ink);background:var(--button-bg);cursor:pointer;transition:transform .1s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease,color .2s ease}button:hover{border-color:var(--accent);box-shadow:0 8px 18px #ff6b4a40;transform:translateY(-1px)}button:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}ul{margin:0;padding:0;list-style:none}#root{max-width:1200px;margin:0 auto;padding:28px}.app-shell{display:flex;flex-direction:column;gap:20px;min-width:0}.navbar{position:static;z-index:40;display:grid;grid-template-columns:minmax(180px,auto) minmax(0,1fr) auto;align-items:center;gap:14px;padding:9px 10px;border-radius:12px;border:1px solid rgba(17,24,39,.14);background:linear-gradient(135deg,#111827f5,#1f2937e0),var(--nav-bg);box-shadow:0 18px 40px #0f172a2e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.navbar>*{min-width:0}.nav-brand{display:inline-flex;align-items:center;gap:10px;min-width:0;color:#f8fafc}.nav-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(132,236,229,.34);border-radius:10px;background:linear-gradient(135deg,#1c8a84f2,#2f6fedb8);color:#fff;font-family:Fraunces,Georgia,serif;font-size:1.08rem;font-weight:900;line-height:1;box-shadow:0 10px 22px #1c8a8447}.nav-brand-copy{display:grid;gap:1px;min-width:0}.nav-brand-copy strong{overflow:hidden;font-family:Fraunces,Georgia,serif;font-size:1rem;font-weight:850;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.nav-brand-copy small{color:#e2e8f0b3;font-size:.68rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.nav-tabs{display:flex;justify-content:flex-start;justify-self:stretch;min-width:0;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-padding-inline:6px;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;gap:4px;border:1px solid rgba(226,232,240,.12);border-radius:10px;background:#0f172a94;padding:4px 6px}.nav-tab{flex:0 0 auto;display:inline-flex;align-items:center;text-decoration:none;border:1px solid transparent;border-radius:8px;background:transparent;color:#e2e8f0bd;padding:7px 10px;font-size:.78rem;font-weight:900;cursor:pointer}.nav-tab:hover{border-color:#84ece52e;background:#ffffff0f;color:#fff}.nav-tab.active{border-color:#84ece557;background:linear-gradient(135deg,#1c8a847a,#2f6fed47);color:#fff;box-shadow:inset 0 1px #ffffff14}.nav-status-badge{margin-left:6px;border-radius:999px;padding:1px 6px;font-size:.6rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;line-height:1.5}.nav-status-preview{background:#f59e0b38;color:#fcd34d;border:1px solid rgba(245,158,11,.45)}.nav-status-admin{background:#94a3b829;color:#e2e8f0db;border:1px solid rgba(148,163,184,.35)}.nav-mode-badge{flex:0 0 auto;border-radius:999px;padding:4px 9px;font-size:.66rem;font-weight:900;letter-spacing:.04em;white-space:nowrap;border:1px solid rgba(226,232,240,.22);color:#e2e8f0db}.nav-mode-badge.local{border-color:#f59e0b73;color:#fcd34d}.nav-mode-badge.live{border-color:#34d39973;color:#6ee7b7}.nav-view-toggle{flex:0 0 auto;min-height:30px;border:1px solid rgba(226,232,240,.22);border-radius:999px;background:#ffffff0f;color:#e2e8f0db;padding:4px 10px;font-size:.7rem;font-weight:900;white-space:nowrap;cursor:pointer}.nav-view-toggle.active{border-color:#34d39980;color:#6ee7b7}@media(max-width:640px){.nav-mode-badge{display:none}}.nav-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.site-footer{display:flex;justify-content:center;gap:14px;padding:6px 0 2px;color:var(--muted);font-size:.82rem}.site-footer a{color:inherit;font-weight:800;text-decoration:none}.site-footer a:hover{color:var(--accent)}.legal-page{max-width:860px;margin-inline:auto}.legal-panel{display:grid;gap:16px;border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:28px;box-shadow:var(--shadow)}.legal-copy{display:grid;gap:16px;color:var(--text);line-height:1.65}.legal-copy h2{margin:10px 0 0;font-size:1rem}.legal-copy p{margin:0}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border:1px solid rgba(226,232,240,.14);border-radius:999px;background:#ffffff0f;color:#e2e8f0d1;padding:6px 9px}.theme-toggle-icon{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff17;color:#f8fafc;font-size:.86rem}.theme-toggle-label{font-size:.72rem;font-weight:900;letter-spacing:0}.player-hud{min-width:0;max-width:310px;border-radius:10px;border:1px solid rgba(226,232,240,.12);background:#ffffff0f;color:#f8fafc;box-shadow:none;padding:6px 8px;display:flex;flex-direction:column;gap:5px;animation:hud-in .22s ease-out}.player-hud-top{display:flex;align-items:center;justify-content:flex-end;gap:6px}.player-name{width:92px;min-width:0;border:1px solid transparent;border-radius:7px;background:transparent;color:#f8fafc;font-size:.82rem;font-weight:850;padding:2px 4px}.player-name-static{width:92px;min-width:0;padding:2px 4px;font-size:.82rem;font-weight:850;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-name:focus{border-color:#1c8a8473;outline:none;background:var(--surface)}.auth-user-menu{display:inline-flex;align-items:center}.auth-account-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.auth-account-actions button{border:1px solid rgba(28,138,132,.32);border-radius:8px;background:var(--surface);color:var(--ink);padding:8px 12px;font-weight:850}.auth-account-actions button.danger{border-color:#dc26263d;color:#b91c1c;background:#fef2f2d1}.dev-switcher-open{border-radius:999px;padding:3px 7px;font-size:.68rem;border:1px solid rgba(132,236,229,.28);background:#ffffff0f;color:#e2e8f0db}.dev-switcher-panel{margin-top:6px;border:1px solid rgba(28,138,132,.25);border-radius:10px;padding:8px;background:var(--surface);display:grid;gap:8px}.dev-switcher-panel label{display:grid;gap:4px;font-size:.78rem;font-weight:600;color:var(--muted)}.dev-switcher-input{border:1px solid rgba(28,138,132,.32);border-radius:8px;padding:6px 8px;font-size:.85rem;font-family:inherit;color:var(--ink);background:var(--surface-inset)}.dev-switcher-actions{display:flex;justify-content:flex-end}.account-page{display:grid;gap:16px}.account-panel{display:grid;gap:14px;border:1px solid rgba(28,138,132,.2);border-radius:8px;background:linear-gradient(135deg,rgba(47,111,237,.08),transparent 52%),var(--surface-strong);box-shadow:0 14px 30px #1f293714;padding:18px}.account-panel.subtle{background:var(--surface-strong)}.account-panel h1,.account-panel h2{margin:0}.account-panel span{color:var(--muted);font-size:.85rem;font-weight:850}.account-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.account-stat-grid span{display:grid;gap:4px;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:10px}.account-stat-grid strong{overflow:hidden;color:var(--accent-2);font-size:1.1rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.account-settings-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:end}.account-settings-form label{display:grid;gap:5px;color:var(--muted);font-size:.78rem;font-weight:850}.account-settings-form input{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);color:var(--ink);padding:9px 10px;font:inherit}.account-settings-form button{min-height:38px;border:1px solid rgba(28,138,132,.24);border-radius:8px;background:var(--surface-inset);color:var(--ink);font-weight:850}.reminder-settings-form{grid-template-columns:minmax(140px,.7fr) minmax(120px,.6fr) auto}.account-checkbox-label{align-self:center;grid-template-columns:auto 1fr;gap:8px;color:var(--ink);font-size:.9rem}.account-checkbox-label input{width:16px;height:16px;accent-color:var(--accent-2)}.account-action-row{display:flex;flex-wrap:wrap;gap:10px}.account-action-row button{min-height:38px;border:1px solid rgba(28,138,132,.24);border-radius:8px;background:var(--surface-inset);color:var(--ink);font-weight:850}.account-action-row button.danger{border-color:#b91c1c47;color:#b91c1c}.account-action-row button:disabled{cursor:wait;opacity:.62}.account-saved-list{display:grid;gap:8px}.account-saved-list span{display:grid;gap:3px;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:9px 10px}.account-saved-list strong{min-width:0;overflow:hidden;color:var(--ink);font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.account-saved-list small{color:var(--muted);font-size:.76rem;font-weight:800}.account-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.account-section-heading span{border:1px solid var(--border);border-radius:999px;background:var(--surface-inset);color:var(--muted);padding:4px 8px;font-size:.76rem;font-weight:850}.account-notification-list{display:grid;gap:8px}.account-notification-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(28,138,132,.22);border-radius:8px;background:var(--surface-inset);padding:10px}.account-notification-list article.read{opacity:.72}.account-notification-list article div{display:grid;gap:3px;min-width:0}.account-notification-list strong,.account-notification-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-notification-list strong{color:var(--ink);font-size:.92rem}.account-notification-list span,.account-notification-list small{color:var(--muted);font-size:.76rem;font-weight:800}.account-notification-list button{border:1px solid rgba(28,138,132,.24);border-radius:8px;background:var(--surface-strong);color:var(--ink);font-weight:850}@media(max-width:640px){.account-settings-form,.reminder-settings-form{grid-template-columns:1fr}.account-notification-list article{grid-template-columns:1fr}}.player-level{flex:0 0 auto;border-radius:999px;padding:3px 7px;font-weight:900;font-size:.72rem;color:#84ece5;border:1px solid rgba(132,236,229,.28);background:#1c8a8429;box-shadow:none}.player-points{flex:0 0 auto;border-radius:999px;padding:3px 7px;font-weight:900;font-size:.72rem;color:#ffd08a;border:1px solid rgba(245,158,11,.34);background:#f59e0b1f;box-shadow:none}.xp-row{display:flex;justify-content:space-between;gap:8px}.xp-text{font-size:.66rem;font-weight:850;color:#e2e8f0ad}.xp-bar{height:5px;width:100%;border-radius:999px;background:#e2e8f01f;overflow:hidden}.xp-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#1c8a84,#3bc8bf 55%,#7fe8e2);box-shadow:0 0 14px #1c8a846b;transition:width .22s ease-out}.alt-dungeon-debug{display:grid;gap:16px}.alt-dungeon-bridge{display:grid;gap:16px;min-width:0}.alt-play-select{display:grid;gap:22px}.alt-play-select-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.alt-play-select-header h1{font-size:clamp(2.2rem,5vw,4.5rem);letter-spacing:0;line-height:.95;margin:4px 0 10px}.alt-play-select-header p{color:var(--muted);margin:0;max-width:560px}.alt-play-select-actions{display:flex;gap:10px}.alt-play-floor-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.alt-play-floor-card{align-items:flex-start;background:linear-gradient(135deg,#0f172a0a,#22c55e14),var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--ink);cursor:pointer;display:grid;gap:10px;min-height:210px;padding:18px;text-align:left}.alt-play-floor-card.is-interactive:hover{border-color:#22c55e8c;box-shadow:0 18px 45px #0f172a1f;transform:translateY(-1px)}.alt-play-floor-card.is-test{background:linear-gradient(135deg,#0f172a0a,#0ea5e914),var(--surface)}.alt-play-floor-card.is-test.is-interactive:hover{border-color:#0ea5e98c}.alt-play-floor-card strong{font-size:1.45rem;letter-spacing:0}.alt-play-floor-card>span:not(.alt-play-floor-kicker),.alt-play-floor-card small{color:var(--muted)}.alt-play-floor-kicker{color:var(--accent-2);font-size:.76rem;font-weight:900;text-transform:uppercase}.alt-play-floor-meta{display:flex;flex-wrap:wrap;gap:7px}.alt-play-floor-meta span{background:var(--surface-inset);border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.76rem;font-weight:800;padding:4px 8px}.alt-play-floor-card.is-loading{cursor:default}.alt-play-floor-actions{margin-top:auto;width:100%;display:flex;flex-wrap:wrap;gap:8px}.alt-play-floor-start,.alt-play-floor-codex{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);padding:8px 12px;font-size:.78rem;font-weight:800;cursor:pointer}.alt-play-floor-start{background:var(--accent);border-color:color-mix(in srgb,var(--accent) 75%,var(--border));color:#fff}.alt-play-floor-codex{background:var(--surface-strong)}.alt-play-floor-start:disabled,.alt-play-floor-codex:disabled{cursor:not-allowed;opacity:.58}.alt-bridge-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.alt-bridge-header h1{margin:2px 0 6px}.alt-bridge-header p{color:var(--muted);margin:0;max-width:760px}.alt-bridge-eyebrow{color:var(--accent-2);font-size:.76rem;font-weight:800;text-transform:uppercase}.alt-bridge-header-actions,.alt-bridge-controls{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.alt-bridge-view-toggle,.alt-bridge-image-toggle{align-self:center;background:var(--surface);border:1px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden}.alt-bridge-view-toggle button,.alt-bridge-image-toggle button{background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:.74rem;font-weight:900;padding:8px 12px}.alt-bridge-view-toggle button.is-active,.alt-bridge-image-toggle button.is-active{background:#22c55e24;color:#22c55e}.alt-bridge-controls{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}.alt-bridge-controls label{color:var(--muted);display:grid;font-size:.78rem;font-weight:800;gap:5px;min-width:160px}.alt-bridge-controls label:first-child{flex:1 1 360px}.alt-bridge-controls input,.alt-bridge-controls select{background:var(--surface-inset);border:1px solid var(--border);border-radius:8px;color:var(--ink);font:inherit;min-height:40px;padding:8px 10px}.alt-bridge-error{background:#e144441f;border:1px solid rgba(225,68,68,.35);border-radius:8px;color:#dc2626;font-weight:800;padding:10px 12px}.alt-bridge-package-strip{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.76rem;font-weight:800;gap:7px;padding:10px 12px}.alt-bridge-package-strip span,.alt-bridge-package-strip strong{background:var(--surface-inset);border:1px solid var(--border);border-radius:999px;padding:4px 8px}.alt-bridge-package-strip strong{color:var(--accent-2)}.alt-bridge-badge-good{color:#047857;border-color:#04785759!important;background:#10b9811f!important}.alt-bridge-badge-warn{color:#a16207;border-color:#a1620759!important;background:#eab3081f!important}.alt-bridge-badge-bad{color:#b91c1c;border-color:#b91c1c59!important;background:#ef44441f!important}.alt-bridge-shell{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(260px,.35fr)}.alt-bridge-stage,.alt-bridge-debug{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-soft);min-width:0;padding:16px}.alt-bridge-stage{display:grid;gap:14px;min-height:520px}.alt-bridge-location{color:var(--accent-2);font-weight:900}.alt-bridge-route{align-items:center;background:var(--surface-inset);border:1px solid var(--border);border-radius:8px;display:flex;gap:8px;justify-content:space-between;min-width:0;padding:8px 10px}.alt-bridge-route span{color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.alt-bridge-route strong{color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;overflow-wrap:anywhere;text-align:right}.alt-bridge-lines{display:grid;gap:10px}.alt-bridge-lines p{background:var(--surface-strong);border:1px solid var(--border);border-radius:8px;color:var(--ink);display:grid;font-size:1.25rem;font-weight:800;gap:4px;line-height:1.35;margin:0;min-height:54px;padding:12px 14px}.alt-bridge-lines small,.alt-bridge-choice-label small{color:var(--muted);font-size:.74rem;font-weight:800}.alt-bridge-choices{align-items:stretch;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.alt-bridge-choice{align-items:start;display:grid;gap:4px;justify-items:start;min-height:64px;text-align:left}.alt-bridge-choice-label{display:grid;gap:2px;min-width:0}.alt-bridge-choice>small{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.alt-bridge-encounter{background:var(--surface-strong);border:1px solid rgba(220,38,38,.24);border-radius:8px;display:grid;gap:10px;padding:12px}.alt-bridge-encounter>div:first-child,.alt-bridge-encounter-meta,.alt-bridge-hp>div:first-child{align-items:center;display:flex;gap:8px;justify-content:space-between}.alt-bridge-encounter span,.alt-bridge-hp span{color:var(--muted);font-size:.76rem;font-weight:800}.alt-bridge-encounter strong,.alt-bridge-hp strong{color:var(--ink)}.alt-bridge-encounter-meta{justify-content:flex-start}.alt-bridge-encounter-meta span{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 8px}.alt-bridge-battle-timeline{border-top:1px solid var(--border);display:grid;gap:6px;padding-top:8px}.alt-bridge-battle-timeline>span{color:var(--muted);font-size:.7rem;font-weight:900;text-transform:uppercase}.alt-bridge-battle-turn{align-items:center;background:#0f172a73;border:1px solid var(--border);border-radius:6px;display:grid;gap:6px;grid-template-columns:36px 1fr 1fr 78px 86px;padding:6px 8px}.alt-bridge-battle-turn strong,.alt-bridge-battle-turn span{color:var(--ink);font-size:.72rem;min-width:0}.alt-bridge-hp{display:grid;gap:5px}.alt-game-mode{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-soft);max-width:min(860px,100%);min-height:640px;overflow:hidden}.alt-game-header{background:var(--surface-strong)}.alt-game-header-tools span{color:var(--muted);font-size:.72rem;font-weight:900}.alt-game-level-badge{color:#22c55e;border-color:#22c55e73;white-space:nowrap}.alt-game-image-placeholder{min-height:300px;height:300px}.alt-game-image-placeholder.is-loading-blackout{background:#000;gap:0;padding:0}.alt-game-image-result .adv-scene-image,.alt-game-image{height:300px}.alt-game-image-state{border:1px solid var(--border);border-radius:999px;color:var(--accent-2);font-size:.72rem;font-weight:900;padding:5px 9px;text-transform:uppercase}.alt-game-image-error{color:#fecaca;font-size:.72rem;max-width:70ch}.alt-game-battle-panel{margin-top:0}.alt-game-choices{padding-bottom:12px}.alt-game-status-strip{margin-bottom:20px}.alt-game-heart-panel{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:7px;margin:-8px 20px 20px;padding-top:10px;width:calc(100% - 40px)}.alt-game-heart-label{color:#f97316;font-size:.72rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.alt-bridge-hp-track{background:var(--surface-inset);border:1px solid var(--border);border-radius:999px;height:9px;overflow:hidden}.alt-bridge-hp-track span{background:linear-gradient(90deg,#0f766e,#22c55e);display:block;height:100%}.alt-bridge-debug{display:grid;gap:12px}.alt-bridge-debug h2,.alt-bridge-trace h3,.alt-bridge-context h3,.alt-bridge-playability h3,.alt-bridge-story-overview h3,.alt-bridge-inventory h3,.alt-bridge-equipment h3,.alt-bridge-progression h3,.alt-bridge-pressure h3,.alt-bridge-hazards h3,.alt-bridge-narrative-history h3{margin:0}.alt-bridge-debug dl{display:grid;gap:7px;margin:0}.alt-bridge-debug dt{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase}.alt-bridge-debug dd{color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.75rem;font-weight:800;margin:-4px 0 4px;overflow-wrap:anywhere}.alt-bridge-context,.alt-bridge-playability,.alt-bridge-narrative-history,.alt-bridge-inventory,.alt-bridge-equipment,.alt-bridge-progression,.alt-bridge-pressure,.alt-bridge-hazards{display:grid;gap:8px}.alt-bridge-stat-grid{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}.alt-bridge-context>div,.alt-bridge-playability>div,.alt-bridge-story-overview,.alt-bridge-replay-status,.alt-bridge-inventory-row,.alt-bridge-equipment-row,.alt-bridge-progression-row,.alt-bridge-pressure-events>div,.alt-bridge-stat-grid>div,.alt-bridge-hazards small,.alt-bridge-narrative-history>div{background:var(--surface-strong);border:1px solid var(--border);border-radius:8px}.alt-bridge-context>div,.alt-bridge-playability>div,.alt-bridge-replay-status,.alt-bridge-inventory-row,.alt-bridge-equipment-row,.alt-bridge-progression-row,.alt-bridge-pressure-events>div,.alt-bridge-stat-grid>div,.alt-bridge-hazards small,.alt-bridge-narrative-history>div{display:grid;gap:3px;padding:8px}.alt-bridge-context>.alt-bridge-locked-exits{gap:6px}.alt-bridge-playability>.alt-bridge-objective-list,.alt-bridge-playability>.alt-bridge-locked-exits{gap:6px}.alt-bridge-objective-list>div{display:grid;gap:2px}.alt-bridge-locked-exits>div{display:grid;gap:2px}.alt-bridge-pressure-events{display:grid;gap:6px}.alt-bridge-story-overview{display:grid;gap:8px;padding:10px}.alt-bridge-story-overview p{color:var(--muted);font-size:.78rem;font-weight:700;line-height:1.35;margin:0}.alt-bridge-story-overview>div{display:grid;gap:3px}.alt-bridge-context span,.alt-bridge-playability span,.alt-bridge-story-overview span,.alt-bridge-replay-status span,.alt-bridge-inventory span,.alt-bridge-equipment span,.alt-bridge-progression span,.alt-bridge-pressure span,.alt-bridge-hazards span,.alt-bridge-narrative-history span{color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase}.alt-bridge-context strong,.alt-bridge-playability strong,.alt-bridge-story-overview strong,.alt-bridge-replay-status strong,.alt-bridge-inventory strong,.alt-bridge-equipment strong,.alt-bridge-progression strong,.alt-bridge-pressure strong,.alt-bridge-hazards strong,.alt-bridge-narrative-history strong{color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;overflow-wrap:anywhere}.alt-bridge-narrative-lines{display:grid;gap:4px}.alt-bridge-narrative-history .alt-bridge-narrative-line{color:var(--ink);font-size:inherit;font-weight:inherit;line-height:1.45;text-transform:none}.alt-bridge-narrative-history .alt-bridge-narrative-line span{font-size:inherit;font-weight:inherit;text-transform:none}.alt-bridge-narrative-history .alt-bridge-narrative-line span:not(.adv-token-stage){color:inherit}.alt-bridge-inventory small,.alt-bridge-equipment small,.alt-bridge-hazards small,.alt-bridge-playability small{color:var(--muted);overflow-wrap:anywhere}.alt-bridge-trace{display:grid;gap:8px}.alt-bridge-trace-row{align-items:center;background:var(--surface-strong);border:1px solid var(--border);border-radius:8px;display:grid;gap:6px;grid-template-columns:24px minmax(72px,auto) minmax(0,1fr) minmax(72px,auto);padding:8px}.alt-bridge-trace-row span{color:var(--muted);font-size:.72rem;font-weight:800}.alt-bridge-trace-row strong{color:var(--ink);font-size:.78rem}.alt-bridge-trace-row small{color:var(--muted);overflow-wrap:anywhere}.alt-dungeon-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.alt-dungeon-header h1{margin:0}.alt-dungeon-header-actions{display:flex;gap:8px}.alt-dungeon-layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.25fr) minmax(280px,1fr);gap:14px;align-items:start}.alt-dungeon-panel{border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft);padding:14px;min-width:0}.alt-dungeon-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.alt-dungeon-panel-head-tight{margin-bottom:0}.alt-dungeon-panel-head h2,.alt-dungeon-subsection h3{margin:0}.alt-dungeon-package-list{display:grid;gap:8px;max-height:540px;overflow:auto}.alt-dungeon-package{display:grid;gap:4px;width:100%;text-align:left;border-radius:8px;padding:10px;border:1px solid var(--border);background:var(--surface-strong)}.alt-dungeon-package.active{border-color:#1c8a84b3;background:var(--surface-accent)}.alt-dungeon-session-list{display:grid;gap:8px;max-height:280px;overflow:auto}.alt-dungeon-session{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);color:var(--ink);display:grid;gap:4px;padding:9px;text-align:left}.alt-dungeon-session.active{border-color:#1c8a84b3;background:var(--surface-accent)}.alt-dungeon-session span,.alt-dungeon-session small{overflow-wrap:anywhere}.alt-dungeon-session span{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.76rem;font-weight:800}.alt-dungeon-session small{color:var(--muted);font-size:.72rem;font-weight:700}.alt-dungeon-package-id{font-size:.86rem;font-weight:700;overflow-wrap:anywhere}.alt-dungeon-package-meta{color:var(--muted);font-size:.76rem}.alt-dungeon-package-status{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.alt-dungeon-package-compare{display:grid;gap:8px;margin-top:10px;max-height:360px;overflow:auto}.alt-dungeon-package-compare-row{background:var(--surface-strong);border:1px solid var(--border);border-radius:8px;color:var(--ink);display:grid;gap:5px;padding:9px;text-align:left}.alt-dungeon-package-compare-row.active{background:var(--surface-accent);border-color:#1c8a84b3}.alt-dungeon-package-compare-row>span{align-items:center;display:flex;flex-wrap:wrap;gap:5px;min-width:0}.alt-dungeon-package-compare-row strong,.alt-dungeon-package-compare-row small{overflow-wrap:anywhere}.alt-dungeon-package-compare-row strong{font-size:.8rem}.alt-dungeon-package-compare-row small{color:var(--muted);font-size:.72rem;font-weight:700}.alt-dungeon-field{display:grid;gap:5px;min-width:0;color:var(--muted);font-size:.78rem;font-weight:700}.alt-dungeon-field input,.alt-dungeon-field select{width:100%;min-width:0;border-radius:8px;border:1px solid var(--border);background:var(--surface-inset);color:var(--ink);padding:8px 10px;font:inherit}.alt-dungeon-controls{display:grid;grid-template-columns:minmax(90px,1fr) minmax(90px,1fr) auto;gap:10px;align-items:end;margin-top:12px}.alt-dungeon-sim .alt-dungeon-controls{grid-template-columns:minmax(100px,1fr) auto}.alt-dungeon-seed-replay{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}.alt-dungeon-seed-replay button{border-radius:8px;padding:7px 9px}.alt-dungeon-render{margin-top:14px;border:1px solid rgba(28,138,132,.25);border-radius:8px;background:var(--surface-strong);padding:12px;display:grid;gap:10px}.alt-dungeon-location{color:var(--accent-2);font-weight:800}.alt-dungeon-lines{display:grid;gap:8px}.alt-dungeon-line{border-radius:8px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);font-size:1.15rem;font-weight:700;display:grid;gap:4px}.alt-dungeon-line small{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.7rem;font-weight:700;overflow-wrap:anywhere}.alt-dungeon-translated-text{display:inline-grid;gap:2px;max-width:100%;vertical-align:middle}.alt-dungeon-translation-main{overflow-wrap:anywhere}.alt-dungeon-translation-original{color:var(--muted);font-size:.72em;font-weight:700;line-height:1.15;overflow-wrap:anywhere}.alt-dungeon-choices{display:flex;flex-wrap:wrap;gap:8px}.alt-dungeon-facts,.alt-dungeon-chip-group{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.alt-dungeon-pill{display:inline-flex;align-items:center;max-width:100%;border-radius:999px;padding:4px 9px;border:1px solid var(--border);background:var(--surface-strong);color:var(--muted);font-size:.75rem;font-weight:800;overflow-wrap:anywhere}.alt-dungeon-pill-good{color:#047857;border-color:#04785759;background:#10b9811f}.alt-dungeon-pill-warn{color:#a16207;border-color:#a1620759;background:#eab3081f}.alt-dungeon-pill-bad{color:#b91c1c;border-color:#b91c1c59;background:#ef44441f}.alt-dungeon-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.alt-dungeon-metrics>div{border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface-strong);display:grid;gap:2px}.alt-dungeon-metrics strong{font-size:1.1rem}.alt-dungeon-metrics span,.alt-dungeon-small-list span{color:var(--muted);font-size:.78rem}.alt-dungeon-subsection{margin-top:14px;display:grid;gap:8px}.alt-dungeon-debug-grid,.alt-dungeon-graph-summary{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.alt-dungeon-graph-toolbar,.alt-dungeon-graph-health{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);display:grid;gap:9px;padding:10px}.alt-dungeon-graph-toolbar .alt-dungeon-field{margin:0}.alt-dungeon-graph-filter-row{display:flex;flex-wrap:wrap;gap:6px}.alt-dungeon-graph-filter-row button{border-radius:999px;font-size:.72rem;font-weight:850;min-height:30px;padding:5px 9px}.alt-dungeon-graph-filter-row button.active{background:var(--surface-accent);border-color:#1c8a84b8;color:var(--ink)}.alt-dungeon-graph-filter-status{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;font-weight:800}.alt-dungeon-graph-budget-grid{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-budget-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}.alt-dungeon-graph-budget{background:var(--surface-inset);border:1px solid var(--border);border-radius:8px;display:grid;gap:2px;min-width:0;padding:8px}.alt-dungeon-graph-budget.passed{border-color:#0478575c}.alt-dungeon-graph-budget.failed{border-color:#b91c1c7a;background:#ef444414}.alt-dungeon-graph-budget span{color:var(--muted);font-size:.7rem;font-weight:900;overflow-wrap:anywhere;text-transform:uppercase}.alt-dungeon-graph-budget strong{color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1rem}.alt-dungeon-graph-budget small{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem}.alt-dungeon-graph-section.is-expanded{display:flex;flex-direction:column;gap:10px;position:fixed;inset:18px;z-index:120;margin:0;padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 24px 72px #0f172a47;overflow:auto}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-summary{grid-template-columns:repeat(6,minmax(96px,1fr))}.alt-dungeon-graph-visual{border:1px solid var(--border);border-radius:8px;background:linear-gradient(rgba(15,23,42,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.035) 1px,transparent 1px),var(--surface-inset);background-size:28px 28px;min-width:0;overflow:hidden}.alt-dungeon-graph-visual svg{display:block;height:auto;max-height:320px;width:100%}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-visual{flex:0 0 min(72vh,760px);min-height:min(560px,calc(100vh - 160px));overflow:auto}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-visual svg{height:100%;max-height:none;min-height:inherit;width:max(100%,1400px)}.alt-dungeon-map-edge{cursor:pointer;outline:none}.alt-dungeon-map-edge path{fill:none;opacity:.78;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.6}.alt-dungeon-map-edge text{fill:#fff;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:900;paint-order:stroke;stroke:#0f172af0;stroke-width:5px;text-anchor:middle;-webkit-user-select:none;user-select:none}.alt-dungeon-map-edge:hover path,.alt-dungeon-map-edge:focus path,.alt-dungeon-map-edge.selected path{opacity:1;stroke-width:4}.alt-dungeon-map-edge.gated-highlight path{filter:drop-shadow(0 0 4px rgba(234,179,8,.75));stroke-width:3.4}.alt-dungeon-map-node{cursor:pointer;outline:none}.alt-dungeon-map-node rect{fill:var(--surface-strong);stroke:var(--border);stroke-width:1.4}.alt-dungeon-map-node text{fill:#fff;font-size:11px;font-weight:900;paint-order:stroke;pointer-events:none;stroke:#0f172af0;stroke-width:4px;text-anchor:middle;-webkit-user-select:none;user-select:none}.alt-dungeon-map-node .alt-dungeon-map-node-meta{fill:#ffffffc7;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:9px;font-weight:800}.alt-dungeon-map-node.active rect{fill:var(--surface-accent);stroke:#1c8a84f2;stroke-width:2.2}.alt-dungeon-map-node.visited:not(.active) rect{stroke:#0478577a}.alt-dungeon-map-node:hover rect,.alt-dungeon-map-node:focus rect,.alt-dungeon-map-node.selected rect{stroke:#2563ebdb;stroke-width:2.5}.alt-dungeon-graph-legend{display:flex;flex-wrap:wrap;gap:6px}.alt-dungeon-graph-role-chip{align-items:center;background:var(--surface-inset);border:1px solid var(--border);border-radius:999px;color:var(--muted);display:inline-flex;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:900;gap:5px;line-height:1;padding:5px 7px}.alt-dungeon-graph-role-chip span{border-radius:999px;display:inline-block;height:8px;width:8px}.alt-dungeon-graph-inspector{display:grid;gap:8px;grid-template-columns:1fr}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-inspector{grid-template-columns:repeat(2,minmax(0,1fr))}.alt-dungeon-graph-inspector h4{font-size:.78rem;margin:0 0 6px}.alt-dungeon-graph-inspector-grid{display:grid;gap:6px}.alt-dungeon-debug-kv{border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);display:grid;gap:3px;min-width:0;padding:8px}.alt-dungeon-debug-kv span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.alt-dungeon-debug-kv strong{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.76rem;overflow-wrap:anywhere}.alt-dungeon-debug-kv-wide{grid-column:1 / -1}.alt-dungeon-template-list{display:flex;flex-wrap:wrap;gap:6px}.alt-dungeon-template-list code{border:1px solid var(--border);border-radius:999px;background:var(--surface-inset);color:var(--muted);font-size:.72rem;font-weight:800;padding:4px 7px;overflow-wrap:anywhere}.alt-dungeon-choice-debug-list{display:grid;gap:8px}.alt-dungeon-choice-debug{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);display:grid;gap:8px;padding:10px}.alt-dungeon-choice-debug strong,.alt-dungeon-choice-debug small{display:block;overflow-wrap:anywhere}.alt-dungeon-choice-debug small{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;margin-top:2px}.alt-dungeon-choice-debug-meta{display:flex;flex-wrap:wrap;gap:6px}.alt-dungeon-route-breadcrumbs{display:flex;flex-wrap:wrap;gap:7px}.alt-dungeon-route-breadcrumbs button{align-items:center;background:var(--surface-strong);border:1px solid var(--border);border-radius:999px;color:var(--ink);display:inline-flex;font:inherit;font-size:.78rem;font-weight:850;gap:6px;max-width:100%;padding:5px 9px 5px 5px}.alt-dungeon-route-breadcrumbs button.current{border-color:#1c8a84b3;background:var(--surface-accent)}.alt-dungeon-route-breadcrumbs button span{align-items:center;background:var(--surface-inset);border-radius:999px;color:var(--muted);display:inline-flex;flex:0 0 auto;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem;height:20px;justify-content:center;min-width:20px;padding:0 5px}.alt-dungeon-node-move-history,.alt-dungeon-locked-exit-list{display:grid;gap:7px}.alt-dungeon-node-move-history h4{font-size:.78rem;margin:2px 0 0}.alt-dungeon-move-history-row,.alt-dungeon-locked-exit{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);display:grid;gap:6px;padding:9px}.alt-dungeon-move-history-row{align-items:center;grid-template-columns:auto minmax(0,1fr)}.alt-dungeon-move-history-row>span:not(.alt-dungeon-pill),.alt-dungeon-move-history-row small,.alt-dungeon-locked-exit small{overflow-wrap:anywhere}.alt-dungeon-move-history-row small{color:var(--muted);grid-column:2}.alt-dungeon-locked-exit-title{align-items:center;display:flex;gap:8px;justify-content:space-between}.alt-dungeon-locked-exit-title strong{overflow-wrap:anywhere}.alt-dungeon-graph-list{display:grid;gap:8px;max-height:420px;overflow:auto}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-list{grid-template-columns:repeat(3,minmax(220px,1fr));max-height:260px}.alt-dungeon-graph-node{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);cursor:pointer;display:grid;gap:6px;outline:none;padding:9px}.alt-dungeon-graph-node.active{border-color:#1c8a84bf;background:var(--surface-accent)}.alt-dungeon-graph-node.visited:not(.active){border-color:#04785747}.alt-dungeon-graph-node:hover,.alt-dungeon-graph-node:focus,.alt-dungeon-graph-node.selected{border-color:#2563ebb8}.alt-dungeon-graph-node-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.alt-dungeon-graph-node-title strong,.alt-dungeon-graph-node>small,.alt-dungeon-graph-edge-list button{overflow-wrap:anywhere}.alt-dungeon-graph-node-title span,.alt-dungeon-graph-node>small,.alt-dungeon-graph-edge-list{color:var(--muted);font-size:.72rem;font-weight:800}.alt-dungeon-graph-node>small,.alt-dungeon-graph-edge-list{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace}.alt-dungeon-graph-node-tags{display:flex;flex-wrap:wrap;gap:5px}.alt-dungeon-inline-button{align-items:center;background:var(--surface-inset);border:1px solid var(--border);border-radius:7px;color:var(--ink);cursor:pointer;display:inline-flex;font:inherit;font-weight:850;justify-content:center;min-height:30px;padding:5px 9px}.alt-dungeon-inline-button:hover,.alt-dungeon-inline-button:focus{border-color:#2563ebb8}.alt-dungeon-inline-button:disabled{cursor:not-allowed;opacity:.52}.alt-dungeon-graph-edge-list{display:grid;gap:3px}.alt-dungeon-graph-relationships{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);display:grid;gap:8px;max-height:180px;overflow:auto;padding:9px}.alt-dungeon-graph-relationship-summary{display:flex;flex-wrap:wrap;gap:6px}.alt-dungeon-graph-relationships button{background:var(--surface-inset);border:1px solid var(--border);border-radius:7px;color:var(--ink);display:grid;font:inherit;gap:3px;padding:7px;text-align:left}.alt-dungeon-graph-relationships strong,.alt-dungeon-graph-relationships span,.alt-dungeon-graph-relationships small{overflow-wrap:anywhere}.alt-dungeon-graph-relationships small{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.7rem}.alt-dungeon-graph-edge-list button{background:transparent;border:0;border-radius:6px;color:inherit;font:inherit;padding:3px 4px;text-align:left}.alt-dungeon-graph-edge-list button:hover,.alt-dungeon-graph-edge-list button:focus,.alt-dungeon-graph-edge-list button.selected{background:var(--surface-inset);color:var(--text)}.alt-dungeon-map-relationship{stroke:#eab308b3;stroke-dasharray:7 5;stroke-linecap:round;stroke-width:2;pointer-events:none}.alt-dungeon-map-relationship.shortcut_route{stroke:#f472b685}.alt-dungeon-map-relationship.clue_unlocks_shortcut,.alt-dungeon-map-relationship.clue_branch{stroke:#38bdf8ad}.alt-dungeon-map-relationship.key_unlocks_shortcut,.alt-dungeon-map-relationship.reward_branch{stroke:#facc15b8}.alt-dungeon-map-relationship.risk_branch{stroke:#f87171b8}.alt-dungeon-map-relationship.decoy_branch{stroke:#a855f7a8}.alt-dungeon-small-list{display:grid;gap:4px}.alt-dungeon-issue-list{display:grid;gap:7px}.alt-dungeon-issue{align-items:center;background:var(--surface-inset);border:1px solid var(--border);border-radius:8px;display:grid;gap:4px 8px;grid-template-columns:auto minmax(0,1fr);padding:8px}.alt-dungeon-issue>span:not(.alt-dungeon-pill){font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.78rem;overflow-wrap:anywhere}.alt-dungeon-issue small{color:var(--muted);font-size:.72rem;grid-column:2;overflow-wrap:anywhere}.alt-dungeon-trace-list{display:grid;gap:10px;max-height:360px;overflow:auto}.alt-dungeon-trace{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);padding:10px;display:grid;gap:6px}.alt-dungeon-trace-title{font-size:.82rem;font-weight:800;overflow-wrap:anywhere}.alt-dungeon-trace-step{display:grid;grid-template-columns:90px 1fr 60px;gap:8px;align-items:center;color:var(--muted);font-size:.78rem}.alt-dungeon-trace-step>span{display:grid;gap:2px;min-width:0}.alt-dungeon-trace-step small{color:var(--ink);font-size:.72rem;line-height:1.35;overflow-wrap:anywhere}.alt-dungeon-trace-step .alt-dungeon-materialized-ref{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.66rem}.alt-dungeon-json{max-height:420px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:12px;color:var(--ink);font-size:.78rem;line-height:1.45}.alt-dungeon-error{border-radius:8px;padding:10px 12px}@media(max-width:980px){.alt-dungeon-layout{grid-template-columns:1fr}.alt-dungeon-header{display:grid}}@media(max-width:640px){.alt-dungeon-controls,.alt-dungeon-sim .alt-dungeon-controls,.alt-dungeon-metrics,.alt-dungeon-debug-grid,.alt-dungeon-graph-summary{grid-template-columns:1fr}.alt-dungeon-graph-section.is-expanded{inset:8px;padding:10px}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-summary,.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-inspector,.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-list{grid-template-columns:1fr}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-visual{flex-basis:68vh;min-height:420px}.alt-dungeon-graph-section.is-expanded .alt-dungeon-graph-visual svg{height:100%;min-height:inherit;width:900px}.alt-dungeon-trace-step{grid-template-columns:1fr}}.quests-fab{position:fixed;right:16px;top:50%;transform:translateY(-50%);z-index:42;border-radius:999px;padding:10px 14px;border:1px solid rgba(28,138,132,.5);background:linear-gradient(145deg,var(--surface-strong),var(--surface-accent));box-shadow:0 12px 26px #1c8a8447;display:inline-flex;align-items:center;gap:10px}.quests-fab:hover{transform:translateY(-50%)}.quests-fab-icon{font-weight:700;color:var(--accent-2)}.quests-fab-badge{min-width:24px;height:24px;border-radius:999px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b4a,#f97316);border:1px solid rgba(255,107,74,.6)}.lootbox-fab{position:fixed;right:16px;top:calc(50% + 64px);transform:translateY(-50%);z-index:42;border-radius:999px;padding:10px 14px;border:1px solid rgba(245,158,11,.55);background:linear-gradient(145deg,var(--surface-strong),var(--surface-pop));box-shadow:var(--shadow-strong);display:inline-flex;align-items:center;gap:10px}.lootbox-fab:hover{transform:translateY(-50%)}.lootbox-fab-icon{font-weight:700;color:var(--text-gold)}.lootbox-fab-badge{min-width:28px;height:24px;border-radius:999px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#f59e0b,#ea580c);border:1px solid rgba(217,119,6,.65)}.quests-drawer-root{position:fixed;inset:0;z-index:44}.quests-drawer-backdrop{position:absolute;inset:0;border:none;background:var(--backdrop);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.quests-drawer{position:absolute;top:0;right:0;width:min(420px,90vw);height:100%;padding:20px 18px;background:var(--drawer-bg);border-left:1px solid rgba(255,107,74,.2);box-shadow:-10px 0 32px #1f1b1629;overflow-y:auto;animation:quests-slide-in .18s ease-out}.quests-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.quests-drawer-header h2{margin:0}.quests-section{margin-bottom:16px}.quests-section h3{margin:0 0 10px;font-family:Fraunces,Georgia,serif;color:var(--ink)}.quests-list{display:flex;flex-direction:column;gap:10px}.quest-item{border:1px solid rgba(28,138,132,.22);border-radius:12px;padding:12px;background:var(--surface);box-shadow:0 6px 14px #1f1b160f}.quest-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:600}.quest-reward{font-size:.82rem;font-weight:700;color:var(--text-gold)}.quest-meta{margin-top:4px;font-size:.84rem;color:var(--muted)}.quest-progress{margin-top:8px;height:8px;width:100%;border-radius:999px;background:#1c8a8424;overflow:hidden}.quest-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff6b4a,#1c8a84);transition:width .2s ease-out}.lootbox-drawer-root{position:fixed;inset:0;z-index:44}.lootbox-drawer-backdrop{position:absolute;inset:0;border:none;background:var(--backdrop);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.lootbox-drawer{position:absolute;top:0;right:0;width:min(440px,92vw);height:100%;padding:20px 18px;background:var(--drawer-bg-warm);border-left:1px solid rgba(245,158,11,.28);box-shadow:-10px 0 34px #1f1b162e;overflow-y:auto;animation:quests-slide-in .18s ease-out}.lootbox-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.lootbox-drawer-header h2{margin:0}.lootbox-balance-row{margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(245,158,11,.26);border-radius:12px;padding:10px 12px;background:var(--surface)}.lootbox-balance-label{font-weight:600;color:var(--muted)}.lootbox-balance-value{font-size:1.05rem;font-weight:800;color:var(--text-gold)}.lootbox-actions{display:flex;gap:10px;flex-wrap:wrap}.lootbox-roll-button{border-radius:999px;padding:8px 14px;border:1px solid rgba(245,158,11,.5);background:linear-gradient(135deg,var(--surface-pop),var(--surface-strong));color:var(--text-gold)}.lootbox-notice{margin-top:10px;font-size:.92rem;color:var(--text-gold)}.lootbox-results{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.loot-reward-card{border:1px solid rgba(107,114,128,.32);border-radius:12px;padding:10px;background:var(--surface);box-shadow:0 6px 14px #1f1b1614}.loot-reward-type{font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.loot-reward-label{margin-top:5px;font-weight:700;color:var(--ink);line-height:1.3}.loot-reward-rarity{margin-top:7px;font-size:.8rem;font-weight:700;text-transform:capitalize}.loot-rarity-common{border-color:#6b728066}.loot-rarity-uncommon{border-color:#22c55e85}.loot-rarity-rare{border-color:#3b82f685}.loot-rarity-epic{border-color:#8b5cf68c}.loot-rarity-legendary{border-color:#f59e0b9e}@keyframes hud-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes quests-slide-in{0%{transform:translate(22px);opacity:0}to{transform:translate(0);opacity:1}}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(520px,92vw);border-radius:18px;border:1px solid rgba(28,138,132,.25);background:linear-gradient(160deg,var(--surface-strong) 0%,var(--surface-accent) 100%);box-shadow:var(--shadow);padding:20px}.auth-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:14px 0;padding:4px;border:1px solid rgba(28,138,132,.22);border-radius:10px;background:#0f172a0a}.auth-mode-tab{min-height:36px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:900;line-height:1.1}.auth-mode-tab.active{background:#1c8a84;color:#f8fafc;box-shadow:0 8px 18px #1c8a842e}.dev-auth-card{display:grid;gap:14px}.dev-auth-form{display:grid;gap:12px}.dev-auth-form label{display:grid;gap:6px;color:var(--muted);font-size:.84rem;font-weight:850}.dev-auth-form input{width:100%;border:1px solid rgba(28,138,132,.32);border-radius:9px;background:var(--surface);color:var(--ink);padding:10px 11px;font:inherit}.dev-auth-actions,.dev-auth-presets{display:flex;flex-wrap:wrap;gap:8px}.dev-auth-actions button,.dev-auth-presets button{border:1px solid rgba(28,138,132,.34);border-radius:9px;background:#1c8a84;color:#f8fafc;padding:9px 12px;font-weight:900}.dev-auth-actions button.secondary,.dev-auth-presets button{background:var(--surface);color:var(--ink)}.dev-auth-actions button.ghost{background:#1c8a8414;color:#14635f}.dev-auth-actions button:disabled{cursor:wait;opacity:.72}.dev-auth-notice{border:1px solid rgba(28,138,132,.2);border-radius:9px;background:#1c8a8414;color:var(--muted);padding:9px 10px;font-size:.84rem;font-weight:750}.app{display:flex;flex-direction:column;gap:16px}.page-loading{min-height:45vh;display:grid;place-items:center}.page-loading-panel{border:1px solid rgba(28,138,132,.22);border-radius:10px;background:var(--surface);color:var(--muted);padding:14px 18px;font-weight:850;box-shadow:var(--shadow)}.layout{display:flex;gap:24px;align-items:flex-start}.panel{background:var(--panel);border:1px solid rgba(255,107,74,.2);border-radius:18px;box-shadow:var(--shadow);padding:20px}.panel-left{flex:1}.panel-right{width:300px}.topics-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.topics{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.topic-button{background:linear-gradient(135deg,var(--surface-pop) 0%,var(--panel-muted) 100%);border-color:#ff6b4a59;color:var(--text-warm)}.jp-stream{border:1px solid rgba(127,60,255,.2);background:var(--surface-inset);border-radius:14px;padding:12px;max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin:8px 0 16px;box-shadow:inset 0 1px #ffffff14}.jp-line{font-size:inherit;line-height:1.4;display:flex;align-items:center;gap:12px}.play-button{width:28px;height:28px;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;background:linear-gradient(135deg,var(--surface-strong) 0%,var(--surface-pop) 100%)}.output-panel{border:1px solid rgba(28,138,132,.35);margin-top:8px;padding:16px;background:linear-gradient(135deg,var(--surface-pop),var(--surface-strong));border-radius:14px;box-shadow:inset 0 1px #ffffff14}.output-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.output-header h2{margin:0;font-size:1.1rem}.translation{color:var(--muted);margin-top:4px}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tag-button{border:1px solid rgba(28,138,132,.35);background:var(--surface-strong);padding:4px 10px;border-radius:10px}.tag-button.selected{border:2px solid var(--accent);color:var(--accent);box-shadow:0 6px 16px #ff6b4a33}.score-buttons{display:flex;gap:12px}.slider-panel{margin-top:16px;display:flex;flex-direction:column;gap:12px}.memory-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.memory-grid{display:grid;grid-template-columns:1fr 120px 100px 60px;gap:8px;margin-top:10px;font-size:.95rem}.muted{color:var(--muted)}.error{color:var(--danger);font-weight:600}.page{background:var(--panel);border:1px solid rgba(255,107,74,.2);border-radius:18px;box-shadow:var(--shadow);padding:28px;min-height:320px}.kanji-games-page{display:flex;flex-direction:column;gap:18px}.kanji-games-hero{display:flex;flex-direction:column;gap:6px}.kanji-games-list{display:flex;flex-direction:column;gap:16px}.kanji-game-card,.kanji-game-detail,.kanji-game-session{width:100%;display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:stretch}.kanji-game-card{text-align:left;border-radius:18px;border:1px solid rgba(28,138,132,.22);background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-soft);padding:18px}.kanji-game-card:hover{border-color:#1c8a8480}.kanji-game-copy{min-width:0;display:flex;flex-direction:column;gap:10px}.kanji-game-card-top,.kanji-game-detail-header,.kanji-game-session-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}.kanji-game-card-top h2,.kanji-game-copy h1{margin:0}.kanji-game-status{flex:0 0 auto;border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:700;color:var(--accent-2);border:1px solid rgba(28,138,132,.34);background:#1c8a841f}.kanji-game-placeholder{min-height:140px;border-radius:16px;border:1px dashed rgba(127,60,255,.32);background:linear-gradient(135deg,#7f3cff14,#ff6b4a14),var(--surface-inset);color:var(--muted);display:grid;place-items:center;font-weight:700;letter-spacing:.03em}.kanji-game-placeholder.large{min-height:260px}.kanji-game-actions{display:flex;gap:12px;flex-wrap:wrap}.kanji-game-overlay{position:absolute;inset:0;border-radius:inherit;display:grid;place-items:center;background:#060a0e6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:3}.kanji-game-overlay-card{width:min(360px,calc(100% - 32px));border-radius:20px;padding:22px;border:1px solid rgba(255,107,74,.18);background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-strong);display:flex;flex-direction:column;gap:12px;text-align:center}.kanji-game-overlay-card h2{margin:0}.kanji-game-session-topbar{display:flex;gap:14px;flex-wrap:wrap}.kanji-game-topbox{min-width:150px;border-radius:16px;padding:14px 16px;border:1px solid rgba(28,138,132,.22);background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:4px}.kanji-game-topbox-timer{min-width:200px}.kanji-game-topbox-timer.warning{border-color:#ff6b4a57;background:linear-gradient(135deg,var(--surface-strong),rgba(255,107,74,.12))}.kanji-game-topbox-label{font-size:.76rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.kanji-game-topbox-value{font-size:1.55rem;line-height:1}.kanji-game-topbox-sub{font-size:.82rem;color:var(--muted)}.kanji-game-radical-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px;align-items:start}.kanji-game-radical-board-panel,.kanji-game-radical-sidebar{padding:18px}.kanji-game-radical-board-wrap{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:22px;padding:14px;background:radial-gradient(circle at center,rgba(127,60,255,.06),transparent 38%),linear-gradient(135deg,var(--surface-strong),var(--surface-accent));border:1px solid rgba(127,60,255,.12)}.radical-board-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));gap:8px;width:100%;height:100%}.radical-board-cell{min-width:0;min-height:0;border-radius:14px}.radical-board-cell-empty{background:#ffffff08;border:1px dashed rgba(127,60,255,.12)}.radical-board-cell-outer{display:grid;place-items:center;padding:0;border:1px solid rgba(28,138,132,.24);background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:inset 0 1px #ffffff0f}.radical-board-char{font-size:clamp(1.2rem,2.4vw,1.95rem);line-height:1}.radical-board-center{position:absolute;inset:24%;display:grid;place-items:center;pointer-events:none}.radical-board-center-card{width:100%;height:100%;min-height:220px;border-radius:24px;border:1px solid rgba(255,107,74,.18);background:linear-gradient(135deg,#ff6b4a14,#7f3cff14),var(--surface-inset);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:20px;box-shadow:var(--shadow-soft)}.radical-board-center-label{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.radical-board-center-char{font-size:clamp(3rem,7vw,5rem);line-height:1}.radical-board-center-name{font-size:.95rem;color:var(--muted)}.kanji-game-session-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.kanji-game-stat{border-radius:14px;padding:12px;border:1px solid rgba(28,138,132,.2);background:var(--surface);display:flex;flex-direction:column;gap:6px}.kanji-game-radical-instructions{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.kanji-game-radical-instructions h2{margin:0;font-size:1rem}.kanji-game-feedback{border-radius:12px;padding:10px 12px;border:1px solid rgba(255,107,74,.2);background:#ff6b4a14;font-weight:600}.kanji-game-alternating-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:18px;align-items:start}.kanji-game-alternating-board,.kanji-game-alternating-sidebar{position:relative;padding:20px}.kanji-game-alternating-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.kanji-choice-center{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.kanji-choice-card,.radical-choice-card,.kanji-single-card{border-radius:22px;padding:20px;border:1px solid rgba(28,138,132,.22);background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;min-height:210px;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease,opacity .16s ease}.kanji-choice-card.is-correct,.radical-choice-card.is-correct{border-color:#1c8a84c7;background:radial-gradient(circle at top,rgba(28,138,132,.2),transparent 54%),linear-gradient(135deg,var(--surface-strong),rgba(28,138,132,.16));box-shadow:0 16px 36px #1c8a8438;transform:translateY(-2px) scale(1.015)}.kanji-choice-card.is-wrong,.radical-choice-card.is-wrong{border-color:#ff6b4ad1;background:radial-gradient(circle at top,rgba(255,107,74,.22),transparent 54%),linear-gradient(135deg,var(--surface-strong),rgba(255,107,74,.14));box-shadow:0 16px 36px #ff6b4a33;transform:translateY(1px) scale(.99)}.kanji-choice-card.is-dimmed,.radical-choice-card.is-dimmed{opacity:.58}.kanji-choice-card.is-revealed,.radical-choice-card.is-revealed{opacity:1}.kanji-choice-char,.kanji-single-char{font-size:clamp(3.2rem,9vw,5.4rem);line-height:1}.kanji-choice-sub,.radical-choice-sub{color:var(--muted);font-size:.95rem}.kanji-choice-furigana{position:relative;color:var(--muted);font-size:1.275rem;letter-spacing:.04em;cursor:default}.kanji-choice-furigana:after{content:"";position:absolute;inset:-3px -7px;background:var(--surface-strong);border-radius:5px;transition:opacity .12s}.kanji-choice-furigana:hover:after{opacity:0}.kanji-image-choice-card.is-correct .kanji-choice-furigana:after,.kanji-image-choice-card.is-wrong .kanji-choice-furigana:after,.kanji-image-choice-card.is-revealed .kanji-choice-furigana:after{opacity:0}.kanji-image-session-timer{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--text);min-width:3.2rem;text-align:right}.kanji-image-session-timer.warning{color:#e05e3a}.kanji-image-duration-row{display:flex;flex-direction:column;gap:8px;margin-top:12px}.kanji-inline-link{background:none;border:none;padding:0;color:var(--accent-2);cursor:pointer;font-size:inherit;text-decoration:underline}.kanji-back-link{background:none;border:none;padding:0 0 8px;color:var(--accent-2);cursor:pointer;font-size:.9rem;display:block}.image-srs-library-layout{display:flex;gap:24px;padding:0 32px 32px;align-items:flex-start}.image-srs-library-list{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.image-srs-library-row{display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;transition:background .1s}.image-srs-library-row:hover{background:var(--surface-strong)}.image-srs-library-row.selected{border-color:var(--accent-2);background:var(--surface-strong)}.image-srs-library-row.overdue{border-left:3px solid #e05e3a}.image-srs-library-row-kanji{font-size:1.6rem;font-weight:700;min-width:36px;text-align:center}.image-srs-library-row-info{flex:1;display:flex;flex-direction:column;gap:2px;font-size:.88rem;min-width:0}.image-srs-library-row-source{font-weight:600}.image-srs-library-row-due{font-size:.8rem;white-space:nowrap}.image-srs-library-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0}.image-srs-due-badge{padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:700}.image-srs-due-badge.overdue{background:#e05e3a26;color:#e05e3a}.image-srs-due-badge.future{background:var(--surface-strong);color:var(--muted)}.image-srs-due-badge.new{background:#1c8a8426;color:var(--accent-2)}.image-srs-library-detail{width:280px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:10px;position:sticky;top:80px}.image-srs-detail-kanji{font-size:3rem;font-weight:800;text-align:center}.image-srs-detail-source{text-align:center;font-size:1rem;font-weight:600}.image-srs-detail-image{width:100%;height:auto;border-radius:10px;object-fit:contain}.image-srs-detail-no-image{text-align:center;padding:24px 0;font-size:.85rem}.image-srs-detail-stats{display:flex;flex-direction:column;gap:6px;font-size:.85rem}.image-srs-detail-stats div{display:flex;justify-content:space-between}.kanji-image-nothing-due{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:10px;background:var(--surface-strong);font-size:.95rem}.kanji-source-badge{border-radius:999px;padding:4px 9px;border:1px solid rgba(28,138,132,.28);background:#1c8a841a;color:var(--accent-2);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.kanji-badge-row{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.kanji-meaning-badge{border-color:#ff6b4a47;background:#ff6b4a1a;color:var(--accent)}.kanji-choice-source{color:var(--muted);font-size:.8rem}.kanji-answer-mark{margin-top:4px;border-radius:999px;padding:5px 10px;background:var(--surface-inset);color:var(--text);font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.kanji-game-answer-area{min-height:200px}.kanji-answer-reveal{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:8px 0 4px}.kanji-reveal-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 18px;border-radius:12px;min-width:110px}.kanji-reveal-wrong{background:#e05e3a1f;border:1px solid rgba(224,94,58,.35)}.kanji-reveal-correct{background:#1c8a841a;border:1px solid rgba(28,138,132,.35)}.kanji-reveal-correct--contrast{background:#1c8a842e}.kanji-reveal-badge{font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.kanji-reveal-kanji{font-size:1.5rem;font-weight:700;line-height:1}.kanji-reveal-reading{font-size:.85rem;color:var(--muted)}.kanji-reveal-meaning{font-size:.82rem;color:var(--ink)}.kanji-choice-bottom{display:flex;flex-direction:column;gap:12px;align-items:center}.kanji-choice-radical-prompt{width:min(280px,100%);border-radius:18px;padding:18px;border:1px solid rgba(255,107,74,.18);background:linear-gradient(135deg,rgba(255,107,74,.08),var(--surface-inset));display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.kanji-choice-radical-char,.radical-choice-char{font-size:clamp(2.4rem,7vw,4rem);line-height:1}.kanji-single-center{display:flex;justify-content:center;margin-bottom:18px}.kanji-single-card{width:min(340px,100%)}.radical-choice-row{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kanji-game-image-board{position:relative;padding:20px;max-width:100%;margin:0 auto}.kanji-image-prompt-card{border-radius:26px;border:1px solid rgba(255,107,74,.18);background:radial-gradient(circle at 18% 16%,rgba(255,107,74,.14),transparent 30%),linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-soft);padding:14px;display:flex;flex-direction:column;align-items:center;margin-bottom:18px}.kanji-image-mock-art{position:relative;width:100%;max-height:480px;aspect-ratio:1 / 1;border-radius:18px;overflow:hidden;display:grid;place-items:center;isolation:isolate;background:radial-gradient(circle at 70% 22%,rgba(255,242,166,.76),transparent 18%),radial-gradient(circle at 28% 82%,rgba(28,138,132,.52),transparent 28%),linear-gradient(145deg,#294f52eb,#141e2af0)}.kanji-image-generated-art{width:100%;max-height:480px;object-fit:contain;border-radius:18px;background:var(--surface-inset);display:block}.kanji-image-mock-art:before,.kanji-image-mock-art:after{content:"";position:absolute;inset:auto -10% -8%;height:42%;border-radius:999px 999px 0 0;background:#1c8a8457;z-index:-1}.kanji-image-mock-art:after{inset:auto 12% -14%;height:55%;background:#ff6b4a33}.kanji-image-mock-glow{position:absolute;width:62%;aspect-ratio:1 / 1;border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.26),transparent 64%);filter:blur(2px)}.kanji-image-mock-subject{font-size:clamp(4.2rem,12vw,8rem);color:#ffffffe0;text-shadow:0 18px 42px rgba(0,0,0,.34)}.kanji-image-prompt-copy{min-width:0;border-radius:20px;padding:18px;background:var(--surface-inset);display:flex;flex-direction:column;justify-content:center;gap:8px}.kanji-image-prompt-copy strong{font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.05}.kanji-image-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.kanji-image-choice-card{min-height:160px;container-type:inline-size}.kanji-image-choice-card .kanji-choice-char{font-size:clamp(1rem,calc(70cqi / var(--label-len, 1)),3.5rem);word-break:keep-all}.kanji-image-start-options{border-radius:16px;padding:14px;border:1px solid rgba(28,138,132,.2);background:var(--surface-inset);display:flex;flex-direction:column;gap:10px}.kanji-image-scope-section{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.07)}.kanji-image-scope-label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted, #888);display:flex;align-items:center;gap:8px}.kanji-image-vocab-unlock-badge{display:flex;align-items:baseline;gap:3px}.kanji-image-mode-toggle{display:flex;gap:10px;flex-wrap:wrap}.kanji-image-mode-toggle button.active{border-color:#1c8a8494;color:var(--accent-2);background:linear-gradient(135deg,rgba(28,138,132,.16),var(--surface-strong))}.kanji-image-topic-field{display:flex;flex-direction:column;gap:8px}.kanji-image-topic-field input,.kanji-image-style-select{border-radius:12px;padding:10px 12px;border:1px solid rgba(28,138,132,.24);color:var(--ink);background:var(--surface);font-size:.95rem;width:100%}.kanji-meaning-setup-panel{max-width:880px}.kanji-generation-log{margin-top:12px;padding:12px 14px;background:var(--surface-alt, rgba(0,0,0,.04));border-radius:10px;border:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-family:monospace;max-height:220px;overflow-y:auto;scroll-behavior:smooth}.kanji-gen-log-line{color:var(--ink);opacity:.85;line-height:1.5}.kanji-gen-log-line:last-child{opacity:1;font-weight:600}.empty-page{display:flex;flex-direction:column;gap:12px}.skill-tree-page{display:flex;flex-direction:column;gap:22px}.topic-progression-page{display:flex;flex-direction:column;gap:18px}.topic-progression-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.topic-progression-header h1,.topic-gate-panel h2,.topic-category-header h2{margin:0}.topic-progression-header p{max-width:680px;margin:6px 0 0}.topic-title-toggle,.topic-level-selector{display:inline-flex;width:fit-content;align-items:center;gap:4px;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:4px}.topic-title-toggle button,.topic-level-selector button{border:0;border-radius:6px;background:transparent;color:var(--muted);min-height:32px;padding:6px 10px;font-size:.8rem;font-weight:900}.topic-title-toggle button:hover,.topic-title-toggle button.active,.topic-level-selector button:hover,.topic-level-selector button.active{background:#1c8a841f;color:var(--accent-2)}.topic-progression-kicker{margin:0 0 6px;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.topic-gate-panel{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr) auto;gap:16px;align-items:center;border:1px solid rgba(28,138,132,.25);border-radius:12px;background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-soft);padding:18px}.topic-gate-copy{display:grid;gap:8px}.topic-gate-copy span{color:var(--muted);font-weight:800}.topic-gate-progress{display:grid;gap:9px}.topic-gate-error{color:#b91c1c;font-size:.78rem;font-weight:850}.topic-gate-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.topic-gate-stats div{display:grid;gap:3px;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:10px}.topic-gate-stats strong{color:var(--accent-2);font-size:1.35rem;line-height:1}.topic-gate-stats span{color:var(--muted);font-size:.78rem;font-weight:800}.topic-gate-unlocks{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-start}.topic-gate-unlocks span{border:1px solid rgba(255,107,74,.28);border-radius:999px;background:var(--surface-strong);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:6px 10px;font-weight:900}.topic-gate-unlocks strong{color:var(--ink);font-size:.84rem;line-height:1.15}.topic-gate-unlocks i{font-style:normal;text-align:center}.topic-gate-actions{display:grid;gap:8px}.topic-gate-actions button{border-radius:999px;min-width:82px;padding:8px 13px;font-weight:900}.topic-gate-actions button.saved{border-color:#16a34a5c;background:#16a34a1f;color:#15803d}.topic-gate-actions button.liked{border-color:#e11d4852;background:#e11d481a;color:#be123c}.topic-root-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.topic-root-nav button{position:relative;isolation:isolate;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:11px;min-height:96px;overflow:hidden;border:1px solid rgba(28,138,132,.18);border-radius:8px;background:linear-gradient(180deg,#ffffffd6,#ffffff80),var(--surface-strong);color:var(--ink);box-shadow:0 12px 28px #1f293714;padding:16px;text-align:left;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}[data-theme=dark] .topic-root-nav button{background:linear-gradient(180deg,#1e293bc7,#0f172aa3),var(--surface-strong)}.topic-root-nav button:after{content:"";position:absolute;inset:auto 0 0;height:4px;background:var(--topic-accent, var(--accent-2));z-index:-1}.topic-root-nav button:nth-of-type(1){--topic-accent: #1c8a84}.topic-root-nav button:nth-of-type(2){--topic-accent: #2f6fed}.topic-root-nav button:nth-of-type(3){--topic-accent: #d94f2b}.topic-root-nav button:nth-of-type(4){--topic-accent: #7f3cff}.topic-root-nav button:nth-of-type(5){--topic-accent: #b16a00}.topic-root-nav button:nth-of-type(6){--topic-accent: #138a3d}.topic-root-nav button.active,.topic-root-nav button:hover{border-color:color-mix(in srgb,var(--topic-accent, var(--accent-2)) 48%,transparent);box-shadow:0 18px 34px #1f293721;transform:translateY(-2px)}.topic-root-nav .topic-root-card-mark{grid-row:span 2;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--topic-accent, var(--accent-2)) 38%,transparent);border-radius:8px;background:color-mix(in srgb,var(--topic-accent, var(--accent-2)) 13%,var(--surface-strong));color:var(--topic-accent, var(--accent-2));font-size:1rem;font-weight:950}.topic-root-nav .topic-root-card-mark:before{content:attr(data-topic-initial)}.topic-root-nav strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:end;font-size:1.05rem;line-height:1.1}.topic-root-nav button>span:not(.topic-root-card-mark){color:var(--muted);font-size:.78rem;font-weight:900}.topic-browser-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:18px;align-items:start}.topic-browser-main,.topic-browser-rail,.topic-rail-panel{display:grid;gap:12px}.topic-browser-main{min-width:0}.topic-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.topic-breadcrumbs button{border-color:#2f6fed2e;border-radius:8px;background:color-mix(in srgb,#2f6fed 7%,var(--surface-strong));padding:6px 10px;color:var(--muted);font-size:.78rem;font-weight:900}.topic-tree-node{position:relative;display:grid;gap:8px;border:1px solid rgba(28,138,132,.16);border-radius:8px;background:color-mix(in srgb,var(--surface-strong) 86%,var(--surface-inset));box-shadow:0 10px 22px #1f29370f;padding:12px}.topic-tree-node:before{content:"";position:absolute;top:12px;bottom:12px;left:13px;width:2px;border-radius:999px;background:#1c8a842e}.topic-tree-node+.topic-tree-node{margin-top:8px}.topic-tree-node.current{border-color:#1c8a846b;box-shadow:0 16px 30px #1c8a841a}.topic-tree-node.depth-1,.topic-tree-node.depth-2,.topic-tree-node.depth-3{margin-left:18px}.topic-tree-node-header{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:stretch;gap:8px;position:relative;z-index:1}.topic-tree-expand{width:34px;min-height:34px;border-color:#1c8a843d;border-radius:999px;background:var(--surface-strong);color:var(--accent-2);font-weight:950}.topic-tree-expand:disabled{opacity:.35}.topic-tree-title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;border-radius:8px;border-color:#1c8a8424;background:var(--surface-strong);padding:10px 12px;text-align:left}.topic-tree-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-tree-title span{color:var(--muted);font-size:.76rem;font-weight:900;white-space:nowrap}.topic-tree-children{display:grid;gap:8px;position:relative;z-index:1}.topic-article-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(80px,auto) auto;align-items:center;gap:10px;border:1px solid rgba(28,138,132,.12);border-radius:8px;background:var(--surface-strong);padding:10px}.topic-article-row.selected{border-color:#1c8a846b;background:color-mix(in srgb,#1c8a84 8%,var(--surface-strong));color:var(--accent-2)}.topic-article-row.unavailable{opacity:.72}.topic-article-main,.topic-article-meta{min-width:0;display:grid;gap:3px}.topic-article-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-article-main span,.topic-article-meta span,.topic-empty-note{color:var(--muted);font-size:.78rem;font-weight:800}.topic-level-badges{display:inline-flex;align-items:center;gap:5px}.topic-level-badges span{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--border);border-radius:999px;background:var(--surface-inset);color:var(--muted);font-size:.72rem;font-weight:950;line-height:1;box-shadow:inset 0 0 0 1px #ffffff2e}.topic-level-badges span.available{border-color:#16a34a6b;background:color-mix(in srgb,#16a34a 14%,var(--surface-strong));color:#15803d}.topic-article-meta{text-align:right}.topic-article-row button{border-radius:999px;padding:6px 11px;font-size:.8rem;font-weight:900}.topic-rail-panel{border:1px solid rgba(47,111,237,.16);border-radius:8px;background:color-mix(in srgb,#2f6fed 5%,var(--surface-strong));box-shadow:0 12px 26px #1f293712;padding:14px}.topic-request-panel{display:grid;gap:12px;border:1px solid rgba(177,106,0,.28);border-radius:8px;background:linear-gradient(135deg,rgba(177,106,0,.12),transparent 58%),var(--surface-strong);box-shadow:0 14px 28px #1f293714;padding:14px}.topic-request-panel h3{margin:0 0 4px;color:var(--text-gold);font-size:1.1rem}.topic-request-panel span{color:var(--muted);font-size:.78rem;font-weight:850;line-height:1.35}.topic-request-panel form{display:grid;gap:8px}.topic-request-panel input{width:100%;min-width:0;border:1px solid rgba(177,106,0,.26);border-radius:8px;background:var(--surface);color:var(--ink);padding:9px 10px;font:inherit;font-size:.86rem;font-weight:800}.topic-request-panel input:focus{border-color:#b16a0085;outline:none;box-shadow:0 0 0 3px #b16a001f}.topic-request-panel button{border-color:#b16a0061;border-radius:999px;background:color-mix(in srgb,var(--text-gold) 12%,var(--surface-strong));color:var(--text-gold);padding:8px 12px;font-weight:950}.topic-request-panel button:disabled{opacity:.55}.topic-request-error{color:#b91c1c!important}.topic-request-success{color:#15803d!important}.topic-review-panel{display:grid;gap:12px;border:1px solid rgba(217,70,239,.22);border-radius:8px;background:linear-gradient(135deg,rgba(217,70,239,.1),transparent 58%),var(--surface-strong);box-shadow:0 14px 28px #1f293714;padding:14px}.topic-review-panel-header{display:flex;align-items:start;justify-content:space-between;gap:10px}.topic-review-panel h3{margin:0;color:var(--ink);font-size:1rem}.topic-review-panel-header button{border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:950}.topic-review-list{display:grid;gap:9px}.topic-review-item{display:grid;gap:8px;border:1px solid rgba(217,70,239,.14);border-radius:8px;background:var(--surface-strong);padding:10px}.topic-review-item strong{display:block;overflow:hidden;color:var(--ink);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.topic-review-item span{color:var(--muted);font-size:.74rem;font-weight:850}.topic-review-flags{display:flex;flex-wrap:wrap;gap:5px}.topic-review-flags span{border:1px solid rgba(220,38,38,.24);border-radius:999px;background:#dc262614;color:#b91c1c;padding:3px 7px;font-size:.68rem}.topic-review-item input{width:100%;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);padding:7px 8px;font:inherit;font-size:.78rem}.topic-review-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.topic-review-actions button{border-radius:999px;padding:6px 7px;font-size:.72rem;font-weight:950}.topic-rail-panel h3{margin:0;color:var(--ink);font-size:.94rem}.topic-rail-list{display:grid;gap:7px}.topic-rail-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid rgba(47,111,237,.12);border-radius:8px;background:var(--surface-strong);padding:10px;text-align:left}.topic-rail-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:.84rem}.topic-rail-list span{color:var(--muted);font-size:.74rem;font-weight:850}.topic-rail-list .topic-level-badges{justify-self:end}.topic-rail-list .topic-level-badges span{width:22px;height:22px;font-size:.68rem}.topic-rail-list .topic-level-badges span.available{color:#15803d}.topic-browser-loading{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);color:var(--muted);padding:16px;font-weight:850}.topic-read-page{display:grid;gap:18px}.topic-read-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px}.topic-read-header h1{margin:0 0 4px}.topic-read-header span,.topic-read-sidebar span{color:var(--muted);font-weight:800}.topic-read-back,.topic-read-header>button:last-child{border-radius:999px;padding:8px 13px;font-weight:900}.topic-read-dashboard{display:grid;grid-template-columns:repeat(2,minmax(140px,190px)) minmax(280px,1fr);gap:10px;align-items:stretch}.topic-read-dashboard>div{display:grid;gap:4px;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:12px}.topic-read-dashboard strong{color:var(--accent-2);font-size:1.45rem;line-height:1}.topic-read-dashboard span{color:var(--muted);font-size:.78rem;font-weight:800}.topic-read-heart-panel{align-content:center}.topic-read-live-debug{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border:1px solid rgba(28,138,132,.22);border-radius:8px;background:var(--surface-strong);padding:9px 10px}.topic-read-live-debug span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;background:var(--surface-inset);color:var(--muted);padding:4px 8px;font-size:.74rem;font-weight:850}.topic-read-live-debug strong{color:var(--ink)}.topic-read-live-debug.is-rescue{border-color:#d946ef6b;background:#d946ef14}.topic-debug-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);padding:10px 12px}.topic-debug-toolbar label{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-size:.82rem;font-weight:900}.topic-debug-toolbar input{accent-color:var(--accent)}.topic-hearts-dimension{border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink);font-size:.82rem;font-weight:700;padding:4px 6px}.topic-fog-legend{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;border-left:1px solid var(--border);padding-left:10px}.topic-fog-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:.78rem;font-weight:900;white-space:nowrap}.topic-fog-swatch{color:#6b7280;font-style:normal;font-weight:950;letter-spacing:0}.topic-fog-swatch.deep{color:#111827}.topic-debug-backend-error{display:grid;gap:6px;border:1px solid rgba(220,38,38,.35);border-radius:8px;background:#dc262614;color:#991b1b;padding:14px}.topic-debug-backend-error strong{font-size:.95rem}.topic-debug-backend-error span{font-size:.85rem;font-weight:800}.topic-debug-threshold{display:inline-flex;align-items:center;gap:5px;margin-left:auto}.topic-debug-threshold span{color:var(--muted);font-size:.78rem;font-weight:900}.topic-debug-threshold button{min-width:30px;border-radius:999px;padding:5px 8px;font-weight:900}.topic-debug-threshold button.active{border-color:#1c8a848c;background:#1c8a841f;color:var(--accent-2)}.topic-read-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:16px;align-items:start}.topic-read-article{border:1px solid rgba(28,138,132,.2);border-radius:8px;background:var(--surface-strong);padding:clamp(18px,3vw,34px)}.topic-read-article h2{margin:0 0 18px;font-size:calc(1.5rem * var(--reader-font-scale, 1))}.topic-read-article p{margin:0 0 16px;font-size:calc(clamp(1.15rem,2.4vw,1.55rem) * var(--reader-font-scale, 1));font-weight:850;line-height:2.15}.topic-read-fontbar{display:flex;flex-basis:100%;width:100%;margin:4px 0 0;padding-top:8px;border-top:1px solid var(--border)}.topic-read-article p:last-child{margin:0}.topic-read-paragraph+.topic-read-paragraph{margin-top:clamp(28px,4vw,52px);padding-top:clamp(8px,1.5vw,14px)}.topic-read-sentence-row{display:block}.topic-read-sentence-row+.topic-read-sentence-row{margin-top:16px}.topic-read-sentence-debug{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:-8px 0 12px}.topic-read-sentence-debug span{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(28,138,132,.18);border-radius:999px;background:var(--surface-inset);color:var(--muted);padding:3px 7px;font-size:.68rem;font-weight:850}.topic-read-sentence-debug strong{color:var(--ink)}.topic-read-segment{display:inline;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:0;line-height:inherit;padding:1px 2px;margin:0 1px;vertical-align:baseline}button.topic-read-segment{cursor:pointer}.topic-read-segment.grammar{box-shadow:inset 0 -2px #2f6fed47}.topic-read-segment.fogged{color:var(--muted)}.topic-read-segment.unmapped .topic-read-fog-block{color:#1f2937}.topic-read-segment.selected{outline:2px solid rgba(249,115,22,.7);outline-offset:2px}.topic-read-unowned-fog{display:inline;border-radius:4px;color:#111827;font-weight:950;letter-spacing:0;padding:1px 2px;margin:0 1px}.topic-read-fog-block{color:#6b7280;font-weight:950;letter-spacing:0}.topic-read-fog-block.deep{color:#111827}.topic-read-sidebar{display:grid;gap:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);padding:14px}.topic-read-sidebar h3{margin:0 0 4px}.topic-read-blocker-list{display:grid;gap:7px}.topic-read-blocker-list span{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:7px}.topic-read-blocker-list i{font-style:normal;text-align:center}.topic-read-blocker-list strong{color:var(--ink)}.topic-read-blocker-list small{color:var(--muted);font-weight:800}.topic-debug-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.topic-debug-summary-grid span{display:grid;gap:3px;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:9px;color:var(--muted);font-size:.74rem;font-weight:850}.topic-debug-summary-grid strong{color:var(--accent-2);font-size:1.1rem;line-height:1}.topic-debug-empty,.topic-segment-inspector{border-top:1px solid var(--border);padding-top:12px}.topic-debug-empty{color:var(--muted);font-size:.85rem;font-weight:750;line-height:1.45}.topic-segment-inspector{display:grid;gap:10px}.topic-segment-inspector h3{margin:0 0 3px}.topic-segment-inspector dl{display:grid;gap:6px;margin:0}.topic-segment-inspector dl div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:start}.topic-segment-inspector dt{color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.topic-segment-inspector dd{margin:0;color:var(--ink);font-size:.8rem;font-weight:850;overflow-wrap:anywhere}.topic-segment-findings{display:grid;gap:6px;border:1px solid rgba(249,115,22,.35);border-radius:8px;background:#f9731614;padding:10px}.topic-segment-findings strong{color:#9a3412}.topic-segment-findings span{color:#9a3412;font-size:.78rem;font-weight:850}.topic-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}.topic-category-card{display:grid;gap:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);padding:14px}.topic-category-header{display:flex;align-items:center;gap:10px}.topic-category-header span{width:10px;height:28px;border-radius:999px}.topic-category-header h2{font-size:1rem}.topic-progression-list{display:grid;gap:8px}.topic-progression-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,auto) auto;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:9px}.topic-progression-row.selected{border-color:#1c8a8459;color:var(--accent-2)}.topic-progression-row-main,.topic-progression-row-meta{min-width:0;display:grid;gap:3px}.topic-progression-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-progression-row-main span,.topic-progression-row-meta span{color:var(--muted);font-size:.78rem;font-weight:800}.topic-progression-row-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;text-align:right}.topic-progression-row button{border-radius:999px;padding:6px 11px;font-size:.8rem;font-weight:900}.skill-tree-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.skill-tree-header h1{margin:0 0 8px}.skill-tree-header p{max-width:720px;margin:0}.skill-tree-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.skill-tree-header-actions button.active{border-color:#1c8a8499;background:linear-gradient(135deg,rgba(28,138,132,.15),var(--surface-strong));color:var(--accent-2)}.skill-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.skill-overview-card{display:grid;gap:6px;text-align:left;border-radius:12px;border:1px solid var(--border);background:var(--surface-strong);padding:14px}.skill-overview-card.active{border-color:#1c8a849e;background:linear-gradient(135deg,rgba(28,138,132,.12),var(--surface-strong))}.skill-overview-title{color:var(--ink);font-weight:800}.skill-overview-meta{color:var(--muted);font-size:.82rem;font-weight:700}.skill-pack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:16px 0 10px}.skill-pack-toolbar{display:flex;justify-content:flex-start;margin:14px 0 0}.skill-pack-toolbar label{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem;font-weight:800}.skill-pack-toolbar select{max-width:260px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);padding:7px 10px;font-weight:700}.skill-pack-card{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);padding:12px;display:grid;gap:8px}.skill-pack-card.active{border-color:var(--accent-2);box-shadow:0 0 0 1px var(--accent-2),0 6px 18px #1c8a841f}.skill-pack-main{border:0;background:transparent;color:inherit;text-align:left;padding:0;display:grid;gap:5px;cursor:pointer}.skill-pack-title{font-weight:900}.skill-pack-meta,.skill-pack-description{color:var(--muted);font-size:.82rem}.skill-pack-description{line-height:1.35}.skill-pack-progress{height:6px;overflow:hidden;border-radius:999px;background:var(--border)}.skill-pack-progress span{display:block;height:100%;border-radius:inherit;background:var(--accent-2)}.skill-pack-actions{display:flex;gap:6px;flex-wrap:wrap}.skill-pack-actions button{border:1px solid var(--border);border-radius:999px;background:var(--surface-strong);color:var(--ink);padding:5px 9px;font-size:.78rem;font-weight:800;cursor:pointer}.skill-pack-actions button:disabled{opacity:.62;cursor:wait}.skill-heart-table{display:grid;gap:1px;margin-top:12px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--border)}.skill-heart-table-head,.skill-heart-table-row{display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:center;gap:12px;background:var(--surface-strong);padding:7px 10px}.skill-heart-table-head{color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.skill-heart-table-row{font-size:.86rem;font-weight:800}.skill-heart-table-row span{display:inline-flex;align-items:center;gap:8px}.skill-heart-table-row i{min-width:16px;font-style:normal;text-align:center}.skill-heart-table-row strong{justify-self:end;font-size:.94rem}.skill-pack-status{border:1px solid rgba(28,138,132,.22);border-radius:8px;background:var(--surface-inset);color:var(--muted);padding:6px 8px;font-size:.75rem;font-weight:700}.skill-tree-pill{flex:0 0 auto;display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:4px 10px;border:1px solid rgba(28,138,132,.35);background:var(--surface-strong);color:var(--accent-2);font-size:.78rem;font-weight:700}.skill-tree-layout{display:grid;grid-template-columns:minmax(220px,.35fr) minmax(0,1fr);gap:18px;align-items:start}.skill-tree-paths{display:grid;gap:10px}.skill-path-link{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border-radius:12px;border:1px solid var(--border);background:var(--surface-strong);padding:12px 14px}.skill-path-link span{font-weight:700}.skill-path-link small{flex:0 0 auto;color:var(--muted);font-weight:700}.skill-path-link.active{border-color:#1c8a8499;background:linear-gradient(135deg,rgba(28,138,132,.13),var(--surface-strong));color:var(--accent-2);box-shadow:var(--shadow-soft)}.skill-template-page{border:1px solid rgba(28,138,132,.25);border-radius:14px;background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-soft);padding:20px}.skill-template-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.skill-template-kicker{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.skill-template-page h2{margin:14px 0 8px}.skill-template-page p{max-width:720px}.skill-tree-population{color:var(--muted);font-size:.9rem}.skill-tree-population code{border-radius:8px;border:1px solid var(--border);background:var(--surface-inset);color:var(--accent-2);padding:2px 6px}.skill-tree-file-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.skill-tree-file-grid span{border-radius:999px;border:1px solid rgba(28,138,132,.25);background:var(--surface-inset);color:var(--muted);padding:5px 9px;font-size:.78rem;font-weight:800}.skill-node-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:18px}.skill-node-lane{min-height:190px;border-radius:14px;border:1px solid rgba(28,138,132,.22);background:var(--surface-inset);padding:12px;display:flex;flex-direction:column;gap:10px}.skill-node-lane-title{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.skill-node-pill{display:grid;gap:2px;border-radius:12px;border:1px solid var(--border);background:linear-gradient(135deg,var(--surface-strong),var(--surface));padding:10px}.skill-node-pill strong{color:var(--ink);font-size:1.08rem}.skill-node-pill span,.skill-node-empty{color:var(--muted);font-size:.84rem}.skill-node-empty{border-radius:10px;border:1px dashed var(--border);padding:10px}.skill-edge-summary{grid-column:1 / -1;color:var(--muted);font-size:.84rem;font-weight:700}.skill-graph-shell{display:grid;gap:12px;margin-top:18px}.skill-graph-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.skill-graph-legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.skill-graph-legend span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;background:var(--surface-inset);color:var(--muted);padding:4px 8px;font-size:.72rem;font-weight:800}.skill-graph-legend i{width:9px;height:9px;border-radius:999px;box-shadow:0 0 10px currentColor}.skill-graph-controls{display:inline-flex;align-items:center;gap:6px}.skill-graph-controls button,.skill-graph-controls span{min-height:30px;border-radius:8px;border:1px solid var(--border);background:var(--surface-strong);color:var(--ink);padding:5px 9px;font-size:.8rem;font-weight:800}.skill-graph-controls span{color:var(--muted);min-width:54px;text-align:center}.skill-graph-controls button.is-active{border-color:#f59e0b8c;background:#f59e0b24;color:#d7ba7d}.skill-graph-debug-summary{width:fit-content;border:1px solid rgba(239,68,68,.34);border-radius:999px;background:#ef444417;color:#fca5a5;padding:5px 10px;font-size:.78rem;font-weight:850}.skill-graph-viewport{position:relative;height:min(72vh,760px);min-height:560px;overflow:hidden;border:1px solid rgba(28,138,132,.24);border-radius:14px;background:radial-gradient(circle at center,rgba(28,138,132,.12),transparent 18%),radial-gradient(circle at 28% 24%,rgba(245,158,11,.08),transparent 20%),linear-gradient(180deg,rgba(255,255,255,.035),transparent 38%),var(--surface-inset);cursor:grab;outline:none;touch-action:auto;-webkit-user-select:none;user-select:none}.skill-graph-viewport.is-active{border-color:#1c8a8485;box-shadow:0 0 0 1px #1c8a8429,0 0 34px #1c8a841f;touch-action:none}.skill-graph-viewport:active{cursor:grabbing}.skill-graph-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.skill-graph-active-hint{position:absolute;right:14px;bottom:14px;z-index:3;border:1px solid rgba(28,138,132,.28);border-radius:999px;background:#0c1618c2;color:var(--muted);padding:6px 10px;font-size:.74rem;font-weight:800;pointer-events:none}.skill-graph-viewport.is-active .skill-graph-active-hint{border-color:#f59e0b57;color:#d7ba7d}.skill-graph-tooltip{position:absolute;left:14px;bottom:14px;z-index:4;max-width:min(340px,calc(100% - 28px));display:grid;gap:4px;border:1px solid rgba(28,138,132,.35);border-radius:10px;background:color-mix(in srgb,var(--surface-strong),transparent 5%);box-shadow:var(--shadow-soft);padding:10px 12px;pointer-events:none}.skill-graph-tooltip strong{color:var(--ink)}.skill-graph-tooltip span{color:var(--muted);font-size:.86rem}.skill-template-placeholder{margin-top:18px;border:1px dashed rgba(28,138,132,.45);border-radius:12px;background:var(--surface-inset);padding:18px}.skill-template-placeholder h3{margin:0 0 8px}.skill-template-placeholder p{margin:0}.skill-template-examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.skill-template-examples span{border-radius:999px;border:1px solid rgba(255,107,74,.25);background:var(--surface-strong);color:var(--text-warm);padding:6px 10px;font-size:.86rem;font-weight:700}.skill-unlockables-panel{margin-top:18px;border:1px solid rgba(28,138,132,.25);border-radius:14px;background:var(--surface-inset);padding:16px}.skill-unlockables-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.skill-unlockables-header h3{margin:0}.skill-unlockables-header span{color:var(--muted);font-size:.84rem;font-weight:700}.skill-unlockables-list{display:grid;gap:10px;max-height:420px;overflow:auto;padding-right:4px}.skill-unlockable-row{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(0,1fr);gap:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);padding:12px}.skill-unlockable-row div:first-child{display:grid;gap:2px}.skill-unlockable-row strong{color:var(--ink);font-size:1.1rem}.skill-unlockable-row div:first-child span,.skill-unlockable-row p{color:var(--muted)}.skill-unlockable-row p{margin:0}.skill-unlockable-tags{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px}.skill-unlockable-tags span{border-radius:999px;border:1px solid rgba(28,138,132,.25);background:var(--surface-strong);color:var(--accent-2);padding:3px 8px;font-size:.76rem;font-weight:700}.skill-unlockables-empty{border-radius:12px;border:1px dashed var(--border);background:var(--surface);color:var(--muted);padding:14px}.skill-training-page{display:flex;flex-direction:column;align-items:center;gap:18px}.skill-training-page.is-embedded{width:100%;gap:10px}.skill-training-topbar{width:min(920px,100%);display:flex;align-items:center;justify-content:space-between;gap:12px}.skill-training-back{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:8px 12px;cursor:pointer}.skill-training-back:hover{border-color:var(--accent);background:var(--surface-strong)}.skill-training-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;color:var(--muted);font-size:.85rem}.skill-training-stats span{border:1px solid var(--border);border-radius:999px;padding:4px 10px;background:var(--surface)}.skill-training-stats .skill-training-gold-flash{border-color:#f59e0b8c;background:#f59e0b1f;color:var(--text-gold);font-weight:700;opacity:1;transition:opacity 2s ease-out}.skill-training-stats .skill-training-gold-flash.is-fading{opacity:0}.skill-training-card{width:min(920px,100%);min-height:760px;justify-content:flex-start}.skill-training-page.is-embedded .skill-training-topbar,.skill-training-page.is-embedded .skill-training-card{width:100%}.skill-training-page.is-embedded .skill-training-card{min-height:min(640px,calc(100dvh - 150px))}.skill-training-stars{top:82px}.skill-training-level{top:12px}.skill-training-display{gap:10px}.skill-training-card.is-waiting{justify-content:flex-start}.skill-training-waiting-display{min-height:360px;align-items:center;justify-content:center}.skill-training-waiting-panel{width:min(420px,100%);min-height:150px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:.95rem}.skill-training-prompt-label{color:var(--muted);font-size:1.05rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;display:inline-flex;align-items:center;gap:.5rem}.skill-training-prompt-label.is-reading{color:#0ea5e9}.skill-training-prompt-label.is-meaning{color:#a855f7}.skill-training-reading-kind{font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:none;padding:.1rem .45rem;border-radius:999px;border:1px solid currentColor}.skill-training-reading-kind.is-on{color:#f97316}.skill-training-reading-kind.is-kun{color:#10b981}.skill-training-reading-kind.is-mixed{color:var(--muted)}.skill-training-main-fit{display:flex;justify-content:center;width:100%;overflow:visible}.skill-training-main-fit::-webkit-scrollbar{display:none}.skill-training-main-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;max-width:100%}.skill-training-main-wrap .srs-streak-badge{bottom:-10px;right:-10px}.kana-char.skill-training-main{line-height:1.15;max-width:none;white-space:nowrap}.skill-training-sentence-context{color:var(--muted);font-size:.95rem;line-height:1.6;max-width:34rem;margin:.35rem auto 0;overflow-wrap:anywhere}.skill-training-sentence-context strong{font-weight:700}.skill-training-card.is-grammar .skill-training-main{--target-ceiling: 26svh}.skill-training-main.is-use{--target-ceiling: 19svh;line-height:1.45;letter-spacing:0}.skill-training-card.is-grammar .skill-training-main.is-use{--target-ceiling: 15svh}.skill-training-card.is-image-meaning{width:min(720px,100%);min-height:760px}.skill-training-card.is-image-meaning .skill-training-display{width:100%;gap:6px}.skill-training-image-meaning-card{width:min(340px,100%);border-radius:18px;border:1px solid rgba(255,107,74,.18);background:radial-gradient(circle at 18% 16%,rgba(255,107,74,.14),transparent 30%),linear-gradient(135deg,var(--surface-strong),var(--surface-accent));box-shadow:var(--shadow-soft);padding:10px;display:grid;gap:8px;justify-items:center}.skill-training-image-meaning-card .kanji-image-generated-art,.skill-training-image-meaning-card .kanji-image-mock-art{width:100%;max-height:245px;border-radius:14px}.skill-training-image-mask{position:relative;width:100%;max-height:245px;border-radius:14px;overflow:hidden;outline:none;background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.2),transparent 26%),linear-gradient(135deg,#14b8a638,#6366f12e),var(--surface-strong)}.skill-training-image-mask.is-small{width:min(240px,100%);aspect-ratio:1;max-height:none;border-radius:8px;border:1px solid var(--border)}.skill-training-image-mask img{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover;filter:blur(18px) saturate(.85) brightness(.78);transform:scale(1.08);transition:filter .18s ease,transform .18s ease}.skill-training-image-mask:hover img,.skill-training-image-mask:focus-visible img,.skill-training-image-mask:focus-within img{filter:none;transform:scale(1)}.skill-training-image-mask-overlay{position:absolute;inset:0;display:grid;place-content:center;gap:6px;padding:18px;text-align:center;color:#fff;background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.2),transparent 24%),linear-gradient(135deg,#0f172a80,#14b8a657 52%,#7c3aed6b),repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 1px,transparent 1px 10px);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .16s ease,transform .16s ease}.skill-training-image-mask-overlay strong{font-size:.86rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.skill-training-image-mask-overlay small{color:#ffffffd1;font-size:.76rem;font-weight:760}.skill-training-image-mask:hover .skill-training-image-mask-overlay,.skill-training-image-mask:focus-visible .skill-training-image-mask-overlay,.skill-training-image-mask:focus-within .skill-training-image-mask-overlay{opacity:0;transform:scale(1.02);pointer-events:none}.skill-training-image-meaning-copy{width:100%;display:grid;gap:4px;justify-items:center;padding:8px;border-radius:12px;background:var(--surface-inset);text-align:center}.skill-training-image-meaning-copy strong{font-size:clamp(1.05rem,3vw,1.45rem);line-height:1.05}.skill-training-image-meaning-copy span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.skill-training-image-meaning-copy button{border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--ink);padding:6px 10px;font-weight:800;cursor:pointer}.skill-training-image-batch-controls{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.skill-training-image-batch-controls input{width:72px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--ink);padding:6px 10px;font:inherit;font-weight:800;text-align:center}.skill-training-image-batch-controls input:disabled{opacity:.5}.skill-training-image-meaning-copy button:disabled,.skill-training-image-empty button:disabled{cursor:wait;opacity:.7}.skill-training-image-meta{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.skill-training-image-choice-grid{width:min(600px,100%);gap:8px}.skill-training-image-choice-grid .kanji-image-choice-card{min-height:86px;border-radius:14px;padding:10px}.skill-training-image-choice-grid .kanji-choice-char{font-size:clamp(1.45rem,calc(52cqi / var(--label-len, 1)),2.65rem)}.skill-training-image-choice-grid .kanji-choice-furigana{font-size:.9rem}.skill-training-image-choice-grid .kanji-answer-mark{margin-top:0;padding:3px 7px;font-size:.62rem}.skill-training-image-generation-status{width:min(440px,100%);display:grid;gap:4px;border:1px solid rgba(28,138,132,.24);border-radius:10px;background:var(--surface);color:var(--muted);padding:8px 10px;font-size:.76rem;text-align:left}.skill-training-image-generation-status strong{color:var(--ink)}.skill-training-main.is-use .skill-training-romaji-char small{font-size:.32em}.skill-training-due{color:var(--muted);font-size:.8rem}.skill-training-srs-error{border:1px solid rgba(239,68,68,.35);border-radius:8px;background:#ef44441a;color:#ef4444;padding:7px 10px;font-size:.82rem;font-weight:700}.skill-training-override-panel{display:grid;gap:8px;width:min(420px,100%);margin:8px auto 0;padding:10px 12px;border:1px solid rgba(168,85,247,.35);border-radius:10px;background:#a855f714;text-align:center}.skill-training-override-verdict{font-size:.9rem;color:var(--ink)}.skill-training-override-accepted{font-size:.84rem;color:var(--muted)}.skill-training-override-actions{display:flex;gap:8px;justify-content:center}.skill-training-override-actions .kana-next-btn.is-secondary{opacity:.75}.skill-training-image-panel{width:min(320px,100%);display:grid;gap:6px;justify-items:center}.skill-training-image-panel>img,.skill-training-image-empty{width:min(240px,100%);aspect-ratio:1;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.skill-training-image-panel>img{object-fit:cover}.skill-training-image-empty{display:grid;place-items:center;gap:8px;padding:14px;color:var(--muted);font-size:.82rem;font-weight:700}.skill-training-image-empty button{border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--ink);padding:6px 10px;font-weight:800;cursor:pointer}.skill-training-image-panel small{color:var(--muted);font-size:.75rem;text-align:center}.skill-training-rule{width:min(620px,100%);border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:10px 12px;font-size:.92rem;line-height:1.45}.skill-training-options .kana-option-btn{min-height:58px;white-space:normal;line-height:1.25}.skill-training-card.is-grammar .skill-training-options .kana-option-btn{font-size:.98rem}.skill-training-options.is-use{display:grid;grid-template-columns:1fr;width:min(420px,100%);margin-left:auto;margin-right:auto}.skill-training-options.is-use .kana-option-btn{min-height:54px}.skill-training-romaji-line{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:.08em}.skill-training-romaji-char{display:inline-flex;flex-direction:column;align-items:center;min-width:.7em;line-height:1.05}.skill-training-romaji-char small{color:var(--muted);font-size:.23em;line-height:1;margin-top:.16em}.skill-training-romaji-char.is-unit{min-width:1.4em}.skill-training-grammar-var,.skill-training-romaji-char.is-grammar-var>span{color:#8cc6d7;font-weight:800;text-shadow:0 0 14px rgba(140,198,215,.18)}.skill-training-card.is-grammar .skill-training-main .skill-training-grammar-var,.skill-training-card.is-grammar .skill-training-main .skill-training-romaji-char.is-grammar-var>span{color:#9bd0c2}.skill-training-card.is-grammar .skill-training-options .skill-training-grammar-var,.skill-training-card.is-grammar .skill-training-options .skill-training-romaji-char.is-grammar-var>span{color:#9ab8e8}.skill-training-card.is-grammar .skill-training-rule .skill-training-grammar-var,.skill-training-card.is-grammar .skill-training-example .skill-training-grammar-var{color:#d7ba7d}.skill-training-options .skill-training-romaji-char small{font-size:.68rem}.skill-training-distractor-debug{width:min(620px,100%);color:var(--muted);font-size:.76rem;font-weight:700;text-align:center}.skill-training-example{width:min(620px,100%);margin:8px auto 0;display:grid;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:12px;text-align:center}.skill-training-example strong{font-size:1.4rem}.skill-training-example span,.skill-training-example small{color:var(--muted)}.skill-training-example p{margin:4px 0 0;font-size:1.35rem;display:grid;gap:3px}.skill-training-example p small{display:block;font-size:.78rem}.skill-training-next3{position:absolute;top:82px;left:calc(100% + 16px);width:112px;display:grid;gap:8px}.skill-training-next3-title{color:var(--muted);font-size:.75rem;font-weight:800;text-align:center;text-transform:uppercase;letter-spacing:.08em}.skill-training-next3-list{display:grid;gap:6px}.skill-training-next3-list>span{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:7px 9px;color:var(--muted);font-size:.8rem;text-align:center}.skill-training-next3-list>span.is-empty{border-style:dashed;background:var(--surface-inset);color:var(--muted);font-weight:850}.skill-training-empty{width:min(720px,100%);border:1px dashed var(--border);border-radius:8px;padding:24px;text-align:center;color:var(--muted)}.kg-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.kg-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.kg-query{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--muted)}.kg-query input{border-radius:10px;border:1px solid var(--border);padding:8px 12px;font-size:.95rem;font-family:inherit;min-width:180px}.kg-points{margin:6px 0 10px;font-size:1.5rem;font-weight:700;color:var(--accent-2);text-shadow:0 8px 18px rgba(28,138,132,.2)}.kg-lootbox-bar{margin-bottom:10px;padding:14px 16px;border-radius:14px;border:1px solid rgba(28,138,132,.25);background:linear-gradient(135deg,#ffffffeb,#f0fdfae6);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.kg-lootbox-title{font-size:1.05rem;font-weight:700}.kg-lootbox-sub{color:var(--muted);font-size:.92rem}.kg-lootbox-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:960px){.navbar{grid-template-columns:1fr}.nav-tabs{justify-content:flex-start}.nav-actions{justify-content:space-between;flex-wrap:wrap}.skill-tree-header{flex-direction:column}.topic-progression-header,.topic-gate-panel{grid-template-columns:1fr}.topic-progression-header{display:grid}.topic-gate-unlocks{justify-content:flex-start}.topic-gate-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-read-header,.topic-read-dashboard,.topic-read-layout{grid-template-columns:1fr}.topic-read-header{align-items:stretch}.topic-progression-row,.topic-browser-layout,.topic-article-row,.topic-rail-list button{grid-template-columns:1fr}.topic-article-meta{text-align:left}.topic-rail-list .topic-level-badges{justify-self:start}.topic-progression-row-meta{text-align:left}.skill-tree-layout,.kanji-game-card,.kanji-game-detail,.kanji-game-session,.kanji-game-radical-layout,.kanji-game-alternating-layout{grid-template-columns:1fr}.kanji-game-session-topbar{flex-direction:column}.radical-board-grid{gap:6px}.radical-board-center{inset:23%}.radical-board-center-card{min-height:180px}.kanji-game-session-stats,.kanji-choice-center,.radical-choice-row{grid-template-columns:1fr}}.lootbox-button{border-radius:999px;padding:8px 16px;border:1px solid rgba(28,138,132,.4);background:#fff;font-weight:600;cursor:pointer}.lootbox-button:disabled{opacity:.5;cursor:not-allowed}.lootbox-button-secondary{border-color:#ff6b4a59;background:linear-gradient(135deg,#ffe3c2,#fff7ec);color:#5b2c1f}.kg-lootbox-notice{margin-bottom:10px;color:var(--muted);font-size:.95rem}.kg-canvas{height:70vh;min-height:420px;border-radius:16px;border:1px solid rgba(28,138,132,.2);overflow:hidden;background:linear-gradient(135deg,#ffffffe6,#fff5e6f2);position:relative}.kg-direction-indicators{position:absolute;inset:0;pointer-events:none;z-index:4}.kg-direction-indicator{position:absolute;background:#ef4444cc;box-shadow:0 0 12px #ef444499;animation:kg-edge-pulse 1.6s ease-in-out infinite}.kg-direction-indicator.top,.kg-direction-indicator.bottom{left:18px;right:18px;height:6px;border-radius:999px}.kg-direction-indicator.top{top:10px}.kg-direction-indicator.bottom{bottom:10px}.kg-direction-indicator.left,.kg-direction-indicator.right{top:18px;bottom:18px;width:6px;border-radius:999px}.kg-direction-indicator.left{left:10px}.kg-direction-indicator.right{right:10px}.kg-debug-bounds{position:absolute;inset:0;pointer-events:none;z-index:1}.kg-debug-bound{position:absolute;border:1px dashed rgba(244,63,94,.8);background:#f43f5e14;box-sizing:border-box}.kg-node{border-radius:999px!important;padding:12px 18px!important;font-size:1.2rem!important;font-weight:700!important;border:3px solid rgba(28,138,132,.65);background:#fff!important;color:#1f1b16!important;position:relative;min-width:120px;text-align:center}.kg-node-relation{border-radius:10px!important;padding:8px 12px!important;font-size:1rem!important;font-weight:600!important}.kg-node-loading:after{content:"";position:absolute;inset:-6px;border-radius:999px;background:conic-gradient(from 0deg,rgba(28,138,132,.9) 0deg 12deg,transparent 12deg 24deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));animation:kg-ants 1.2s linear infinite;pointer-events:none}.kg-node-overdue{animation:kg-overdue-pulse 2.2s ease-in-out infinite;box-shadow:0 0 #ef444400}.kg-edge-overdue{animation:kg-edge-pulse 1.1s ease-in-out infinite;border-color:#ef4444b3;box-shadow:0 0 #ef444400}@keyframes kg-overdue-pulse{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 6px #ef444459}}@keyframes kg-edge-pulse{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 5px #ef444473}}@keyframes kg-ants{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.kg-node-center{font-size:1.5rem!important;border-color:#ff6b4acc;background:linear-gradient(135deg,#fff0d6e6,#fff)!important}.kg-node-label{position:relative;z-index:2}.kg-node-expand{position:absolute;right:-8px;top:50%;transform:translateY(-50%);width:22px;height:22px;padding:0;border-radius:50%;border:1px solid rgba(28,138,132,.45);background:#fff;color:#1f1b16;font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.kg-node-expand:hover{transform:translateY(-50%)}.kg-node-expand:disabled{opacity:.4;cursor:not-allowed}.kg-handle{width:10px;height:10px;background:transparent;border:none;opacity:0;transform:translate(-50%,-50%);pointer-events:none}.kg-edge-label{position:absolute;padding:4px 8px;border-radius:8px;border:1px solid rgba(31,27,22,.25);background:#fff;color:#1f1b16;font-size:.9rem;font-weight:600;box-shadow:0 8px 18px #1f1b1614;z-index:5;cursor:pointer;pointer-events:all}.kg-edge-label-text{display:inline-block}.memory-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center}.memory-overlay-frame{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px}.memory-overlay-panel{width:min(1700px,96vw);border-radius:18px;border:1px solid rgba(255,107,74,.25);background:transparent;padding:14px 16px}.memory-overlay-backdrop{position:absolute;inset:0;background:#110e0a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.memory-overlay-card{position:relative;z-index:1;width:min(520px,92vw);background:#fff;border-radius:18px;border:1px solid rgba(255,107,74,.25);box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:16px}.memory-overlay-cards-panel{z-index:2}.memory-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.memory-overlay-body{display:flex;flex-direction:column;gap:14px;align-items:center}.memory-overlay-cards{width:100%;display:flex;flex-wrap:nowrap;justify-content:center;gap:18px}.memory-card{width:220px;height:330px;border-radius:14px;background:#e5e7eb;border:2px solid rgba(107,114,128,.4);box-shadow:inset 0 1px #fff9;flex:0 0 auto}.memory-card-common{background:#e5e7eb;border-color:#6b728099}.memory-card-uncommon{background:#dcfce7;border-color:#22c55e99}.memory-card-rare{background:#dbeafe;border-color:#3b82f699}.memory-card-epic{background:#ede9fe;border-color:#8b5cf6a6}.memory-card-legendary{background:#fef3c7;border-color:#f59e0bb3}.memory-card-mythic{background:#fee2e2;border-color:#ef4444b3}.memory-overlay-front{font-size:1.6rem;font-weight:700}.memory-overlay-back{font-size:1.05rem;color:var(--muted);text-align:center}@media(max-width:900px){.navbar{grid-template-columns:1fr;grid-template-areas:"brand" "hud" "tabs";align-items:center}.nav-brand{grid-area:brand}.nav-tabs{grid-area:tabs;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:4px}.nav-actions{grid-area:hud;justify-content:space-between;width:100%}.player-hud{max-width:none;width:100%}.quests-fab{right:10px;top:auto;bottom:16px;transform:none}.quests-fab:hover{transform:none}.lootbox-fab{right:10px;top:auto;bottom:68px;transform:none}.lootbox-fab:hover{transform:none}.layout{flex-direction:column}.panel-right{width:100%}}.vocab-game{display:flex;flex-direction:column;gap:18px}.vocab-game-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.vocab-game-header h1{margin:0;font-size:1.6rem}.vocab-subtitle{margin:6px 0 0;color:#3c2f2fb3}.vocab-scorecard{display:flex;gap:12px;background:#fffc;border:1px solid rgba(255,107,74,.2);border-radius:14px;padding:12px 16px;box-shadow:inset 0 1px #ffffffb3}.vocab-scorecard div{display:flex;flex-direction:column;gap:4px;min-width:70px}.vocab-score-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#3c2f2f8c}.vocab-score-value{font-size:1.1rem;font-weight:600}.vocab-audio-bar{display:flex;align-items:center;gap:14px;padding:12px;border-radius:14px;border:1px solid rgba(28,138,132,.25);background:linear-gradient(120deg,#ebf8f6e6,#ffffffe6)}.vocab-topic-row{display:flex;flex-direction:column;gap:6px}.vocab-audio-now{display:flex;align-items:center;gap:8px;color:#3c2f2fbf}.vocab-audio-status{font-size:.85rem;color:#3c2f2f99}.vocab-audio-item{font-weight:600;color:#2b4d4a}.vocab-arena{position:relative;height:360px;border-radius:18px;border:1px solid rgba(28,138,132,.3);background:radial-gradient(circle at top,#f4fcfbe6,#fffffff2);overflow:hidden}.vocab-round-clear{position:absolute;inset:0;display:grid;place-items:center;gap:12px;background:#fffaf0d1;text-align:center;z-index:2}.vocab-round-clear-text{font-size:2rem;font-weight:700;color:#d93a2e;text-shadow:0 2px 0 #ffd84a}.vocab-round-clear-cta{padding:10px 18px;border-radius:999px;border:1px solid rgba(217,58,46,.3);background:linear-gradient(135deg,#ffd84a,#ffb347);color:#7a1c14;font-weight:600}.vocab-tile{position:absolute;width:96px;height:96px;border-radius:16px;border:1px solid rgba(255,107,74,.2);background:linear-gradient(145deg,#fff4e6,#fff9f3);padding:18px 12px;text-align:center;cursor:pointer;transition:box-shadow .16s ease,border-color .16s ease}.vocab-tile.active{border-color:#1c8a8480;box-shadow:0 12px 24px #1c8a8426}.vocab-kanji{font-size:2.2rem;font-weight:600}.vocab-reading{display:block;margin-top:4px;font-size:.95rem;color:#3c2f2fb3}.vocab-game-panel h2{margin-top:0}.vocab-game-panel ul{padding-left:18px;margin:10px 0 0;display:grid;gap:8px;color:#3c2f2fbf}.kana-hub{max-width:640px;margin:40px auto;padding:0 16px}.kana-game-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:24px}.kana-game-card{background:var(--surface-strong);border:1px solid var(--border);border-radius:12px;padding:20px 16px;text-align:left;cursor:pointer;transition:box-shadow .15s,transform .1s}.kana-game-card:hover:not(:disabled){box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.kana-game-card-disabled{opacity:.45;cursor:default}.kana-game-card-title{font-weight:600;font-size:1rem;margin-bottom:6px}.kana-game-card-desc{font-size:.85rem;color:var(--muted, #888)}.kana-card-shell{max-width:480px;margin:32px auto;padding:0 16px;display:flex;flex-direction:column;align-items:center;gap:24px}.kana-card-header{width:100%;display:flex;align-items:center;gap:12px}.kana-back-btn{font-size:.9rem}.kana-mode-toggle{display:flex;gap:4px;margin-left:auto}.kana-mode-toggle button{padding:4px 12px;border-radius:6px;font-size:.85rem;background:transparent;border:1px solid var(--border, #ccc)}.kana-mode-toggle button.active{background:var(--accent, #3b82f6);color:#fff;border-color:transparent}.kana-script-badge{font-size:.75rem;color:var(--muted, #888);text-transform:capitalize}.kana-display{display:flex;flex-direction:column;align-items:center;gap:12px;min-height:160px;justify-content:center}.kana-char{font-size:8rem;line-height:1;transition:color .15s;-webkit-user-select:none;user-select:none}.kana-char-correct{color:#22c55e}.kana-char-wrong{color:#ef4444}.kana-answer-reveal{font-size:2rem;font-weight:700;color:#22c55e;letter-spacing:.05em}.kana-options{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;width:100%}.kana-option-btn{padding:14px 8px;border-radius:10px;font-size:1rem;border:1px solid var(--border);background:var(--surface-strong);color:var(--ink);cursor:pointer;transition:background .1s,border-color .1s}.kana-option-btn:hover:not(:disabled){background:var(--surface-accent)}.kana-opt-correct{background:#dcfce7!important;border-color:#22c55e!important;color:#166534}.kana-opt-wrong{background:#fee2e2!important;border-color:#ef4444!important;color:#991b1b}.kana-type-form{display:flex;gap:8px;width:100%}.kana-type-form input{flex:1;font-size:1.2rem;padding:10px 14px;border-radius:8px;text-align:center}.kana-next-btn{font-size:1rem;padding:10px 28px;border-radius:8px}.kana-skip-btn{font-size:.9rem;padding:10px 14px;border-radius:8px;color:var(--muted);background:var(--surface-strong);border:1px solid var(--border);white-space:nowrap}.kana-skip-btn:disabled{opacity:.5}.kana-string-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;width:100%}.kana-string-slot{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:44px;padding:6px 4px;border-radius:8px;border:1px solid var(--border);background:var(--surface-strong)}.kana-slot-correct{border-color:#22c55e;background:#22c55e1f}.kana-slot-wrong{border-color:#ef4444;background:#ef44441f}.kana-string-char{font-size:1.6rem;line-height:1}.kana-string-romaji{font-size:.65rem;display:flex;flex-direction:column;align-items:center;gap:1px;min-height:1.4em}.kana-slot-typed{color:#ef4444;text-decoration:line-through}.kana-slot-answer{color:#22c55e;font-weight:700}.kana-string-score{font-size:1.2rem;font-weight:700}.kr-kanji{font-size:7rem}.kr-type-badge{font-size:.85rem;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.04em}.on-badge{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.35)}.kun-badge{background:#22c55e1f;color:#16a34a;border:1px solid rgba(34,197,94,.35)}.kr-reveal{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:4px}.kr-readings{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.kr-reading-chip{font-size:1.1rem;padding:3px 10px;border-radius:6px;background:var(--surface-strong);border:1px solid var(--border)}.kr-meaning{font-size:.9rem;color:var(--muted, #888)}.kr-source-note{border:1px solid rgba(28,138,132,.22);border-radius:999px;background:#1c8a8414;color:var(--accent-2);font-size:.74rem;font-weight:850;padding:3px 9px}.kr-options{grid-template-columns:repeat(6,1fr)}.kr-option-btn{font-size:1.1rem;font-family:inherit}.kr-opt-selected{border-color:var(--accent, #3b82f6)!important;background:#3b82f61f!important}.kr-opt-missed{border-color:#f59e0b!important;background:#f59e0b1f!important}.kr-opt-kana{display:block}.kr-opt-romaji{display:block;font-size:.72rem;color:var(--muted, #888);margin-top:2px}.kr-hint{font-size:.8rem;color:var(--muted, #888)}.kr-hearts{display:flex;gap:3px;justify-content:center;margin-top:6px}.kr-heart{font-size:1.1rem;line-height:1}.kr-layout{position:relative}.kr-star-panel{position:absolute;top:60px;right:calc(100% + 16px);display:flex;flex-direction:column;align-items:center;gap:6px;min-width:48px}.kr-star-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}.kr-star-pip{font-size:1rem;color:var(--border, #444);transition:color .2s,transform .15s}.kr-star-pip.filled{color:#f59e0b;transform:scale(1.15)}.kr-star-count{font-size:.75rem;color:var(--muted, #888);font-variant-numeric:tabular-nums}.kr-star-banked{font-size:.7rem;color:#f59e0b;font-weight:700}.kr-vocab-btn{display:flex;flex-direction:column;align-items:center;gap:1px;background:#3b82f61f;border:1px solid rgba(59,130,246,.35);border-radius:8px;padding:5px 8px;cursor:pointer;margin-top:6px;transition:background .15s}.kr-vocab-btn:hover{background:#3b82f638}.kr-vocab-count{font-size:1rem;font-weight:700;color:#3b82f6;line-height:1}.kr-vocab-label{font-size:.6rem;color:var(--muted, #888);text-transform:uppercase;letter-spacing:.05em}.kr-level-badge{position:absolute;top:-4px;left:calc(100% + 16px);display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:100px}.kr-level-label{font-size:.9rem;font-weight:700;color:#f59e0b;letter-spacing:.04em;line-height:1}.kr-level-bar-track{width:100%;height:5px;background:#ffffff1a;border-radius:3px;overflow:hidden}.kr-level-bar-fill{height:100%;background:linear-gradient(90deg,#f59e0b,#fbbf24);border-radius:3px;transition:width .4s ease}.kr-levelup-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0000008c;cursor:pointer;overflow:hidden}.kr-levelup-slam{text-align:center;animation:kr-levelup-slam .65s cubic-bezier(.17,.67,.35,1.45) forwards;pointer-events:none}@keyframes kr-levelup-slam{0%{transform:scale(3.5) translateY(-60px);opacity:0}55%{transform:scale(.88) translateY(0);opacity:1}72%{transform:scale(1.12) translateY(0)}86%{transform:scale(.96) translateY(0)}to{transform:scale(1) translateY(0);opacity:1}}.kr-levelup-text{font-size:2.2rem;font-weight:900;color:#f59e0b;letter-spacing:.12em;text-shadow:0 0 30px rgba(245,158,11,.8),0 3px 8px rgba(0,0,0,.6)}.kr-levelup-num{font-size:6rem;font-weight:900;line-height:1;color:#fff;text-shadow:0 0 40px rgba(245,158,11,1),0 6px 16px rgba(0,0,0,.7)}.kr-levelup-heart{position:fixed;top:-6%;animation:kr-heart-fall linear forwards;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes kr-heart-fall{0%{transform:translateY(0) translate(0) rotate(-15deg);opacity:1}80%{opacity:1}to{transform:translateY(110vh) translate(var(--sway)) rotate(200deg);opacity:0}}.kr-level-xp{font-size:.6rem;color:var(--muted, #888);font-variant-numeric:tabular-nums}.kr-xp-flash{position:absolute;top:-18px;left:0;font-size:.75rem;font-weight:700;color:#f59e0b;animation:kr-xp-float 1.2s ease-out forwards;pointer-events:none}@keyframes kr-xp-float{0%{opacity:1;transform:translateY(0)}60%{opacity:1;transform:translateY(-12px)}to{opacity:0;transform:translateY(-22px)}}.kr-back-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:.8rem;cursor:pointer;color:var(--ink)}.kr-back-btn:hover{background:var(--surface-strong)}.vr-options{grid-template-columns:repeat(2,1fr)!important}.sr-attribution{display:flex;align-items:baseline;gap:6px;font-size:.72rem;color:#666;margin-bottom:10px;flex-wrap:wrap}.sr-book-title{color:#aaa;font-style:italic}.sr-attr-sep{color:#555}.sr-author{color:#999}.sr-aozora{margin-left:auto;font-size:.62rem;color:#555}.sr-display{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 8px}.sr-sentence{font-size:1.35rem;line-height:1.9;text-align:center;color:var(--text, #e8e8e8);letter-spacing:.04em;max-width:520px}.sr-options{grid-template-columns:1fr!important;width:100%;gap:6px!important}.sr-opt{height:auto!important;min-height:44px;padding:10px 14px!important;text-align:left!important;align-items:flex-start!important;white-space:normal!important;line-height:1.5!important}.sr-opt-reading{font-size:.95rem;line-height:1.6;letter-spacing:.03em;color:inherit}.sr-full-reading-reveal{font-size:.9rem;color:#4ade80;line-height:1.6;letter-spacing:.03em;text-align:center;padding:4px 8px}.kr-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--muted, #888);text-align:center}.kr-empty-hint{font-size:.85rem}.kr-celebration{position:fixed;inset:0;pointer-events:none;z-index:999;display:flex;align-items:center;justify-content:center}.kr-cel-3{animation:kr-shake .5s ease-in-out}@keyframes kr-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px,3px)}40%{transform:translate(6px,-3px)}60%{transform:translate(-4px,4px)}80%{transform:translate(4px,-2px)}}.kr-particle{position:absolute;font-size:calc(1.1rem * var(--size, 1));opacity:0;animation:kr-burst var(--dur, 1.2s) ease-out var(--delay, 0s) forwards}@keyframes kr-burst{0%{opacity:1;transform:translate(0) scale(1.4)}60%{opacity:.9}to{opacity:0;transform:translate(var(--tx),var(--ty)) scale(.2)}}.kr-ring{position:absolute;border-radius:50%;border:3px solid;opacity:0;animation:kr-ring-expand var(--dur, 1.1s) ease-out var(--delay, 0s) forwards}@keyframes kr-ring-expand{0%{opacity:.9;transform:scale(.1)}70%{opacity:.5}to{opacity:0;transform:scale(3.5)}}.kr-slam-text{position:absolute;font-size:7rem;font-weight:900;color:#f59e0b;opacity:0;text-shadow:0 0 40px rgba(245,158,11,.6);animation:kr-slam 2s ease-out forwards;z-index:2}.kr-slam-l3{font-size:11rem;background:linear-gradient(135deg,#f59e0b,#ec4899,#3b82f6,#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none;filter:drop-shadow(0 0 30px rgba(245,158,11,.8));animation:kr-slam 2.8s ease-out forwards}@keyframes kr-slam{0%{opacity:0;transform:scale(5)}15%{opacity:1;transform:scale(.85)}25%{opacity:1;transform:scale(1.05)}35%{opacity:1;transform:scale(1)}70%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1)}}.kr-flash-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(245,158,11,.35) 0%,rgba(236,72,153,.15) 50%,transparent 75%);animation:kr-flash-fade .8s ease-out forwards}@keyframes kr-flash-fade{0%{opacity:1}to{opacity:0}}.kr-cel-3{animation:kr-shake-l3 .6s ease-in-out}@keyframes kr-shake-l3{0%,to{transform:translate(0)}15%{transform:translate(-8px,4px)}30%{transform:translate(8px,-5px)}45%{transform:translate(-6px,6px)}60%{transform:translate(7px,-3px)}75%{transform:translate(-4px,5px)}90%{transform:translate(5px,-2px)}}.kr-upcoming{position:absolute;top:60px;left:calc(100% + 16px);display:flex;flex-direction:column;gap:12px;min-width:max-content}.kr-debug-panel{position:absolute;top:60px;left:calc(100% + 100px);display:flex;flex-direction:column;gap:4px;min-width:110px}.kr-debug-title{font-size:.65rem;color:var(--muted, #888);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.kr-debug-row{display:flex;align-items:center;gap:5px}.kr-debug-kanji{font-size:1.1rem;min-width:28px}.kr-debug-due{font-size:.7rem;color:var(--muted, #888);font-variant-numeric:tabular-nums}.kr-upcoming-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.kr-upcoming-char{font-size:2.8rem;line-height:1;color:var(--muted, #888);white-space:nowrap}.kr-upcoming-badge{font-size:.6rem;padding:1px 5px;border-radius:999px}.srs-streak-badge{position:absolute;bottom:5px;right:5px;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 5px;font-size:.7rem;font-weight:800;color:#fff;line-height:1;pointer-events:none;box-shadow:0 1px 4px #00000073;transition:background .3s}.kr-kanji-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.ia-image-wrap{position:relative;display:inline-block}.ia-image-wrap .srs-streak-badge,.kr-kanji-wrap .srs-streak-badge{bottom:-12px;right:-12px}.ia-layout{width:448px;min-height:720px}.ia-image-area{display:flex;flex-direction:column;align-items:center;gap:4px;margin:8px 0 0}.ia-image{width:280px;height:280px;object-fit:cover;border-radius:12px;border:2px solid var(--border, #333);box-shadow:0 4px 20px #00000059}.ia-prompt{font-size:.85rem;color:var(--muted, #888);text-align:center;margin-top:-14px;margin-bottom:0;letter-spacing:.03em;text-transform:uppercase}.ia-english-confirm{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:-20px;margin-bottom:0}.ia-english-text{font-size:1.1rem;font-weight:600;color:#4ade80}.ia-check{font-size:1.1rem;color:#4ade80}.ia-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:360px;margin:-12px auto 0}.ia-opt{padding:14px 10px;border-radius:10px;border:2px solid var(--border, #333);background:var(--card-bg, #1a1a1a);color:var(--text, #eee);font-size:.95rem;font-weight:500;cursor:pointer;text-align:center;transition:background .12s,border-color .12s,transform .08s;min-height:56px;display:flex;align-items:center;justify-content:center}.ia-opt:hover:not(:disabled){background:#ffffff12;border-color:var(--accent, #888)}.ia-opt:active:not(:disabled){transform:scale(.97)}.ia-options-kanji .ia-opt{font-size:2rem;font-weight:700;min-height:72px}.adv-shell{display:flex;flex-direction:column;align-items:center;gap:36px;padding:48px 24px 80px;min-height:100vh}.adv-hero{text-align:center}.adv-title{font-size:4.5rem;font-weight:900;line-height:1;color:var(--ink);letter-spacing:-.02em}.adv-subtitle{font-size:1.4rem;font-weight:700;color:var(--ink);margin-top:4px;letter-spacing:.08em;text-transform:uppercase}.adv-tagline{margin-top:14px;font-size:.95rem;color:var(--muted);max-width:480px;line-height:1.6}.adv-loading{color:var(--muted);font-size:.9rem}.adv-stats-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.adv-stat-card{background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));border:1px solid var(--border);border-radius:14px;padding:20px 28px;text-align:center;min-width:130px}.adv-stat-value{font-size:2.4rem;font-weight:900;line-height:1}.adv-stat-label{font-size:.82rem;font-weight:700;margin-top:6px;color:var(--ink);text-transform:uppercase;letter-spacing:.05em}.adv-stat-sub{font-size:.72rem;color:var(--muted);margin-top:3px}.adv-level-row{display:flex;align-items:center;gap:10px;font-size:.9rem}.adv-level-pip{width:10px;height:10px;border-radius:50%;flex-shrink:0}.adv-level-text{color:var(--ink)}.adv-level-hint{color:var(--muted);font-size:.8rem}.adv-mode-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.adv-mode-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 36px;border-radius:16px;border:2px solid var(--border);background:linear-gradient(135deg,var(--surface-strong),var(--surface-accent));cursor:not-allowed;opacity:.55;transition:opacity .2s,border-color .2s;min-width:200px}.adv-mode-btn:not(:disabled){cursor:pointer;opacity:1}.adv-mode-btn:not(:disabled):hover{border-color:var(--accent-2)}.adv-mode-primary{border-color:var(--accent-2)}.adv-mode-icon{font-size:2rem}.adv-mode-label{font-size:1rem;font-weight:700;color:var(--ink)}.adv-mode-desc{font-size:.78rem;color:var(--muted);text-align:center}.adv-entry-notice{width:min(520px,100%);margin:0 auto;border:1px solid rgba(245,158,11,.45);border-radius:10px;background:#f59e0b1a;color:var(--text-gold);padding:10px 14px;text-align:center;font-weight:700}.adv-coming-soon{font-size:.82rem;color:var(--muted);font-style:italic}.adv-game-shell{--adv-font-scale: 1;display:flex;flex-direction:column;align-items:center;gap:0;min-height:100vh;max-width:680px;margin:0 auto;padding:0 0 40px}.adv-level-up-flash{align-items:center;animation:adv-level-up-shell 2.3s ease both;display:flex;inset:0;justify-content:center;padding:20px;pointer-events:none;position:fixed;z-index:90}.adv-level-up-card{animation:adv-level-up-card 2.3s cubic-bezier(.22,1,.36,1) both;background:linear-gradient(135deg,#facc1533,#3b82f629),#0f172ae6;border:1px solid rgba(253,224,71,.42);border-radius:8px;box-shadow:0 24px 70px #0000006b,0 0 46px #facc152e,inset 0 1px #ffffff24;color:#fef9c3;display:grid;gap:5px;min-width:min(360px,calc(100vw - 56px));overflow:hidden;padding:18px 28px 20px;position:relative;text-align:center}.adv-level-up-card:before{animation:adv-level-up-glint 1.5s ease-out .12s both;background:linear-gradient(105deg,transparent 0%,transparent 28%,rgba(255,255,255,.42) 45%,rgba(253,224,71,.22) 52%,transparent 70%,transparent 100%);content:"";inset:-20%;position:absolute;transform:translate(-48%) skew(-12deg)}.adv-level-up-card span{color:#fef9c3db;font-size:.78rem;font-weight:950;letter-spacing:.1em;position:relative}.adv-level-up-card strong{color:#fff7ed;font-size:clamp(2.5rem,9vw,5.2rem);font-weight:950;line-height:.92;position:relative;text-shadow:0 2px 0 rgba(120,53,15,.45),0 0 30px rgba(250,204,21,.26)}.adv-level-up-card small{color:#dbeafed1;font-size:.8rem;font-weight:850;position:relative}@keyframes adv-level-up-shell{0%{background:#02061700;opacity:0}13%,62%{background:radial-gradient(circle at 50% 42%,#facc1529,#02061733 46%,#0206170a 70%);opacity:1}to{background:#02061700;opacity:0}}@keyframes adv-level-up-card{0%{filter:blur(5px) brightness(1.2);opacity:0;transform:translate3d(0,18px,0) scale(.92)}16%{filter:blur(0) brightness(1.08);opacity:1;transform:translateZ(0) scale(1.02)}34%{transform:translate3d(0,-2px,0) scale(1)}72%{filter:brightness(1);opacity:1;transform:translate3d(0,-4px,0) scale(1)}to{filter:blur(3px) brightness(1);opacity:0;transform:translate3d(0,-14px,0) scale(.985)}}@keyframes adv-level-up-glint{0%{opacity:0;transform:translate(-50%) skew(-12deg)}20%{opacity:.85}to{opacity:0;transform:translate(42%) skew(-12deg)}}.adv-game-header{display:flex;align-items:center;gap:12px;width:100%;padding:14px 20px;border-bottom:1px solid var(--border)}.adv-back-btn{background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--muted);padding:4px 8px;border-radius:6px}.adv-back-btn:hover{background:var(--surface)}.adv-game-mode-badge{font-size:.78rem;font-weight:600;color:var(--muted);margin-left:4px}.adv-header-tools{margin-left:auto;display:flex;align-items:center;gap:10px}.adv-renderer-toggle{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--surface)}.adv-renderer-toggle button{border:0;background:transparent;color:var(--muted);padding:4px 9px;font-size:.7rem;font-weight:900;cursor:pointer}.adv-renderer-toggle button.is-active{background:#22c55e24;color:#22c55e}.adv-map-panel{width:calc(100% - 40px);margin:12px 20px 0;border:1px solid rgba(59,130,246,.28);border-radius:12px;background:var(--surface);box-shadow:0 18px 42px #0000002e;overflow:hidden}.adv-map-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);color:var(--ink)}.adv-map-header strong{font-size:.86rem}.adv-map-header span{color:var(--muted);font-size:.7rem}.adv-map-header button{border:1px solid rgba(59,130,246,.32);border-radius:999px;background:#3b82f61a;color:#93c5fd;padding:5px 9px;font-size:.68rem;font-weight:900;cursor:pointer}.adv-map-header button.is-active{border-color:#22c55e6b;background:#22c55e24;color:#22c55e}.adv-map-canvas-wrap{position:relative;height:min(56vh,620px);min-height:360px;overflow:hidden;overscroll-behavior:contain;background:#111827}.adv-map-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;overscroll-behavior:contain}.adv-map-canvas:active{cursor:grabbing}.adv-map-tooltip{position:absolute;z-index:2;pointer-events:none;display:grid;gap:2px;min-width:98px;padding:7px 9px;border:1px solid rgba(103,232,249,.42);border-radius:8px;background:#0f172aeb;color:#e0f2fe;box-shadow:0 10px 26px #00000047}.adv-map-tooltip strong{font-size:.82rem}.adv-map-tooltip span{color:#93c5fd;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em}.adv-font-slider{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.72rem;font-weight:900}.adv-font-slider input{width:86px;accent-color:var(--accent-2)}.adv-knowledge-toggle{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);padding:4px 10px;font-size:.72rem;font-weight:900;cursor:pointer}.adv-knowledge-toggle.is-active{border-color:#3b82f673;background:#3b82f61f;color:#3b82f6}.adv-inventory-toggle,.adv-stats-toggle,.adv-quests-toggle{align-items:center;background:#22c55e14;border:1px solid rgba(34,197,94,.28);border-radius:999px;color:#86efac;cursor:pointer;display:inline-flex;font-size:.72rem;font-weight:900;gap:7px;padding:4px 9px}.adv-stats-toggle{background:#3b82f614;border-color:#3b82f647;color:#93c5fd}.adv-quests-toggle{background:#f59e0b1a;border-color:#f59e0b57;color:#fcd34d}.adv-inventory-toggle span,.adv-stats-toggle span,.adv-quests-toggle span{align-items:center;background:#22c55e2e;border-radius:999px;color:#dcfce7;display:inline-flex;font-size:.66rem;justify-content:center;min-width:20px;padding:1px 6px}.adv-stats-toggle span{background:#3b82f62e;color:#dbeafe}.adv-quests-toggle span{background:#f59e0b33;color:#fef3c7}.adv-inventory-toggle.is-active,.adv-stats-toggle.is-active,.adv-quests-toggle.is-active{background:#22c55e29;border-color:#22c55e7a;color:#dcfce7}.adv-stats-toggle.is-active{background:#3b82f629;border-color:#3b82f67a;color:#dbeafe}.adv-quests-toggle.is-active{background:#f59e0b2e;border-color:#f59e0b80;color:#fef3c7}.adv-inventory-drawer{background:color-mix(in srgb,var(--surface-strong) 86%,#052e16);border-bottom:1px solid rgba(34,197,94,.24);display:grid;gap:10px;padding:12px 20px}.adv-stats-drawer{background:color-mix(in srgb,var(--surface-strong) 88%,#172554);border-bottom-color:#3b82f63d}.adv-quests-drawer{background:color-mix(in srgb,var(--surface-strong) 88%,#78350f);border-bottom-color:#f59e0b47}.adv-quest-list{max-height:min(34vh,300px);overflow-y:auto;padding-right:2px}.adv-inventory-drawer-header{align-items:center;display:flex;gap:10px;justify-content:space-between}.adv-inventory-drawer-header div{display:grid;gap:2px}.adv-inventory-drawer-header strong{color:var(--ink);font-size:.88rem}.adv-inventory-drawer-header span,.adv-inventory-empty,.adv-equipment-strip span,.adv-gold-summary span,.adv-stat-card span,.adv-stat-card small{color:var(--muted);font-size:.74rem;font-weight:800}.adv-gold-summary{display:flex;flex-wrap:wrap;gap:8px}.adv-gold-summary span{background:#f59e0b1a;border:1px solid rgba(245,158,11,.24);border-radius:999px;color:var(--text-gold);padding:4px 9px}.adv-gold-summary strong{color:var(--text-gold)}.adv-inventory-drawer-header button{background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--muted);cursor:pointer;font-size:.7rem;font-weight:900;padding:4px 9px}.adv-inventory-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));max-height:min(34vh,300px);overflow-y:auto;padding-right:2px}.adv-inventory-card{border:1px solid rgba(148,163,184,.22);border-radius:8px;background:#0f172a5c;display:grid;gap:4px;min-height:98px;padding:9px}.adv-inventory-card strong{color:var(--ink);font-size:calc(1rem * var(--adv-font-scale, 1));line-height:1.25}.adv-inventory-card span{color:#86efac;font-size:.7rem;font-weight:900;text-transform:uppercase}.adv-inventory-card small{color:var(--muted);font-size:.66rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adv-equipment-strip{border-top:1px solid rgba(148,163,184,.16);display:flex;flex-wrap:wrap;gap:8px;padding-top:8px}.adv-stats-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.adv-stat-card{background:#0f172a57;border:1px solid rgba(148,163,184,.22);border-radius:8px;display:grid;gap:5px;min-height:98px;padding:10px}.adv-stat-card strong{color:var(--ink);font-size:1.25rem;line-height:1.1}.adv-stat-meter{background:#0f172a8c;border:1px solid rgba(148,163,184,.2);border-radius:999px;height:9px;overflow:hidden}.adv-stat-meter span{background:linear-gradient(90deg,#ef4444,#22c55e);display:block;height:100%}.adv-stat-meter.is-xp span{background:linear-gradient(90deg,#3b82f6,#a78bfa)}.adv-game-level-badge{font-size:.75rem;font-weight:700;border:1.5px solid;border-radius:20px;padding:2px 10px}.adv-game-scene{width:100%;display:flex;flex-direction:column;position:relative}.adv-vocab-overlay-panel{position:absolute;top:14px;right:14px;z-index:8;width:min(320px,calc(100% - 28px));border-radius:12px;border:1px solid rgba(59,130,246,.34);background:linear-gradient(160deg,#020617e6,#0f172aeb),var(--surface-strong);box-shadow:0 16px 34px #0000005c;padding:11px 12px;display:grid;gap:8px}.adv-vocab-overlay-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.adv-vocab-overlay-header div{display:grid;gap:3px}.adv-vocab-overlay-header span{color:#93c5fd;font-size:.68rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.adv-vocab-overlay-header strong{color:#f8fafc;font-size:1.02rem;line-height:1.15}.adv-vocab-overlay-header strong.is-universe-debug{color:#4ade80}.adv-vocab-overlay-header button{border:1px solid rgba(148,163,184,.45);border-radius:999px;background:#1e293be6;color:#cbd5e1;cursor:pointer;font-size:.68rem;font-weight:900;padding:4px 8px}.adv-vocab-overlay-reading{display:grid;gap:1px;padding:2px 0 1px}.adv-vocab-overlay-reading strong{color:#f8fafc;font-size:1.26rem;font-weight:950;letter-spacing:.02em;line-height:1.05}.adv-vocab-overlay-reading span{color:#93c5fd;font-size:.78rem;font-weight:850;letter-spacing:.04em;text-transform:lowercase}.adv-vocab-overlay-meta{display:flex;flex-wrap:wrap;gap:6px}.adv-vocab-overlay-meta span{border:1px solid rgba(148,163,184,.34);border-radius:999px;background:#1e293bb3;color:#e2e8f0;font-size:.66rem;font-weight:850;padding:3px 8px}.adv-vocab-overlay-meta span.is-universe-debug{border-color:#4ade808f;background:#15803d47;color:#86efac}.adv-vocab-overlay-image{border-radius:8px;overflow:hidden;background:#0206179e;border:1px solid rgba(148,163,184,.26);min-height:100px;display:grid;place-items:center}.adv-vocab-overlay-image img{display:block;width:100%;max-height:180px;object-fit:cover}.adv-vocab-overlay-image-locked{width:100%;min-height:100px;padding:10px 8px;display:grid;place-items:center;gap:6px;text-align:center}.adv-vocab-overlay-image-locked strong{color:#e2e8f0;font-size:1.18rem;line-height:1.2}.adv-vocab-overlay-image-locked small{color:#93c5fd;font-size:.66rem;letter-spacing:.04em;text-transform:uppercase}.adv-vocab-overlay-image small{color:#94a3b8;font-size:.7rem;text-align:center;padding:10px}.adv-vocab-overlay-kanji-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.adv-vocab-overlay-kanji-chip{min-width:0;border:1px solid rgba(74,222,128,.32);border-radius:8px;background:#14532d5c;color:#dcfce7;cursor:pointer;display:grid;gap:2px;justify-items:center;min-height:54px;padding:6px 5px;text-align:center}.adv-vocab-overlay-kanji-chip strong{color:#f8fafc;font-size:1rem;line-height:1}.adv-vocab-overlay-kanji-chip span{color:#bbf7d0;font-size:.62rem;font-weight:800;line-height:1.15;max-width:100%;overflow-wrap:anywhere}.adv-vocab-overlay-kanji-chip small{color:#86efac;font-size:.58rem;font-weight:900;line-height:1}.adv-vocab-overlay-quiz{border:1px solid rgba(148,163,184,.28);border-radius:8px;background:#0f172a73;padding:8px;display:grid;gap:7px}.adv-vocab-overlay-quiz-header{display:grid;gap:1px}.adv-vocab-overlay-quiz-header span{color:#93c5fd;font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.adv-vocab-overlay-quiz-header strong{color:#e2e8f0;font-size:.74rem;font-weight:850}.adv-vocab-overlay-choices{display:grid;grid-template-columns:1fr 1fr;gap:6px}.adv-vocab-overlay-choice{border:1px solid rgba(148,163,184,.34);border-radius:8px;background:#1e293bd6;color:#e2e8f0;cursor:pointer;font-size:.76rem;font-weight:850;line-height:1.2;min-height:34px;padding:6px 7px;text-align:center}.adv-vocab-overlay-choice:disabled{cursor:not-allowed;opacity:.92}.adv-vocab-overlay-choice.is-correct{border-color:#4ade808c;background:#1665348a;color:#dcfce7}.adv-vocab-overlay-choice.is-wrong{border-color:#f871719e;background:#7f1d1d85;color:#fee2e2}.adv-vocab-overlay-result{color:#cbd5e1;font-size:.68rem;font-weight:750}.adv-vocab-overlay-result.is-correct{color:#86efac}.adv-vocab-overlay-result.is-wrong{color:#fecaca}.adv-vocab-overlay-panel p{margin:0;color:#cbd5e1;font-size:.73rem;line-height:1.5}.adv-vocab-overlay-error{color:#fca5a5;font-size:.68rem}.adv-trainer-gate-overlay{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.adv-trainer-gate-backdrop{position:absolute;inset:0;background:#020617b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.adv-trainer-gate-panel{position:relative;z-index:1;width:min(980px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;border:1px solid rgba(148,163,184,.34);border-radius:10px;background:#0f172af5;box-shadow:0 24px 64px #00000075;padding:14px}.adv-trainer-gate-status,.adv-trainer-gate-error{margin:0 0 10px;border-radius:8px;padding:8px 10px;font-size:.82rem;font-weight:800}.adv-trainer-gate-status{border:1px solid rgba(59,130,246,.36);background:#1e40af38;color:#bfdbfe}.adv-trainer-gate-error{border:1px solid rgba(248,113,113,.46);background:#7f1d1d4d;color:#fecaca}@media(max-width:760px){.adv-vocab-overlay-panel{inset:auto 12px 12px;width:auto}.adv-trainer-gate-overlay{align-items:stretch;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.adv-trainer-gate-panel{max-height:calc(100dvh - 20px);padding:10px}}.adv-llm-status{margin-bottom:10px;border:1px solid rgba(59,130,246,.24);border-radius:8px;background:#3b82f614;color:#bfdbfe;padding:8px 10px;font-size:.8rem;font-weight:800}.adv-llm-status.is-error{border-color:#f871713d;background:#f8717114;color:#fecaca}.adv-scene-request-status{margin:12px 18px 0;width:fit-content;max-width:calc(100% - 36px);display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(59,130,246,.28);border-radius:8px;background:#3b82f61a;color:#dbeafe;padding:8px 11px;font-size:.82rem;font-weight:850}.adv-scene-request-status.is-error{border-color:#f8717147;background:#f871711a;color:#fecaca}.adv-scene-request-status small{color:var(--muted);font-size:.72rem;font-weight:800}.adv-scene-request-spinner{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;opacity:0}.adv-scene-request-spinner.is-active{opacity:1}.adv-scene-request-spinner-ring{width:15px;height:15px;border-radius:999px;border:2px solid rgba(148,163,184,.4);border-top-color:var(--accent-2);animation:adv-choice-spin .8s linear infinite}.adv-scene-image-area{width:100%;background:var(--surface-inset);border-bottom:1px solid var(--border)}.adv-scene-image-frame{position:relative;overflow:hidden;background:#000}.adv-scene-image{display:block;width:100%;height:260px;object-fit:cover;object-position:center bottom;background:var(--surface-inset);animation:adv-scene-image-reveal 1s ease-in-out both,adv-scene-image-pan-y 82s linear infinite}.adv-scene-image.is-battle-image{animation:adv-scene-image-reveal 1s ease-in-out both,adv-battle-image-pan-y 42.36s linear infinite}.adv-scene-image-result{display:grid;overflow:hidden}@keyframes adv-scene-image-pan-y{0%,17%{object-position:center bottom}47%,63%{object-position:center top}93%,to{object-position:center bottom}}@keyframes adv-battle-image-pan-y{0%,3.54%{object-position:center bottom}50%,53.54%{object-position:center top}to{object-position:center bottom}}@keyframes adv-scene-image-reveal{0%{opacity:0}to{opacity:1}}.adv-scene-image-prompt{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);padding:8px 14px;font-size:.76rem}.adv-scene-image-prompt summary{cursor:pointer;color:var(--accent-2);font-weight:900;text-transform:uppercase;letter-spacing:.05em}.adv-scene-image-prompt code{display:block;margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}.adv-scene-image-placeholder{position:relative;overflow:hidden;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);padding:18px 20px;text-align:center}.adv-scene-image-icon{font-size:1.25rem;font-weight:800}.adv-scene-image-label{font-size:.8rem}.adv-scene-image-tools{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:4px}.adv-scene-image-tools select,.adv-scene-image-tools button{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);padding:7px 10px;font-size:.78rem;font-weight:850}.adv-scene-image-tools button{background:#22c55e24;border-color:#22c55e5c;color:#22c55e;cursor:pointer}.adv-scene-image-tools button:disabled{opacity:.55;cursor:not-allowed}.adv-scene-image-error{max-width:560px;color:#fecaca;background:#ef44441a;border:1px solid rgba(239,68,68,.26);border-radius:8px;padding:6px 8px;font-size:.76rem}.adv-scene-image-fade{position:absolute;inset:0;z-index:1;pointer-events:none;background:#000;opacity:0;transition:opacity .62s ease-in-out}.adv-scene-image-fade.is-blackout{opacity:1}.adv-hp-strip{position:absolute;right:12px;bottom:12px;z-index:2;width:min(230px,calc(100% - 24px));border:1px solid rgba(248,113,113,.34);border-radius:8px;background:linear-gradient(135deg,#7f1d1d6b,#0f172aeb),var(--surface);box-shadow:0 10px 24px #00000038;padding:7px 8px 8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);isolation:isolate}.adv-hp-strip.is-battle{width:min(190px,max(128px,calc(50% - 18px)))}.adv-hp-strip.is-enemy{right:auto;left:12px;border-color:#f8717170;background:linear-gradient(135deg,#7f1d1d94,#0f172aeb),var(--surface)}.adv-hp-strip.is-player{overflow:visible}.adv-hp-strip.is-player .adv-hp-label,.adv-hp-strip.is-player .adv-hp-track{position:relative;z-index:1}.adv-hp-strip.is-player.is-damaged-0,.adv-hp-strip.is-player.is-damaged-1,.adv-hp-strip.is-enemy.is-damaged-0,.adv-hp-strip.is-enemy.is-damaged-1{animation:adv-hp-hit-bounce .74s cubic-bezier(.22,1,.36,1)}.adv-hp-strip.is-enemy.is-damaged-0,.adv-hp-strip.is-enemy.is-damaged-1{border-color:#fef08ab8}.adv-hp-strip.is-player.is-damaged-0:before,.adv-hp-strip.is-player.is-damaged-1:before{content:"";position:absolute;inset:-7px;z-index:0;border:1px solid rgba(254,226,226,.76);border-radius:12px;box-shadow:0 0 #f871715c,0 0 28px #f8717157,inset 0 0 18px #facc1529;pointer-events:none;animation:adv-hp-alert-ring .78s ease-out both}.adv-hp-strip.is-player.is-damaged-0:after,.adv-hp-strip.is-player.is-damaged-1:after{content:"";position:absolute;inset:-4px;z-index:0;border-radius:11px;background:linear-gradient(105deg,transparent 0%,transparent 24%,rgba(255,255,255,.68) 42%,rgba(254,202,202,.5) 48%,transparent 64%,transparent 100%);filter:blur(.2px);mix-blend-mode:screen;pointer-events:none;animation:adv-hp-alert-glint .66s ease-out both}.adv-hp-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px;color:#fee2e2;font-size:.7rem;font-weight:900}.adv-hp-label span{color:#fca5a5;letter-spacing:.08em}.adv-hp-label strong{color:#fff1f2;font-size:.76rem}.adv-hp-track{height:7px;overflow:hidden;border-radius:999px;background:#0f172adb;border:1px solid rgba(248,113,113,.22)}.adv-hp-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ef4444,#f97316 56%,#facc15);box-shadow:0 0 18px #f871718c;transition:width .22s ease}@keyframes adv-hp-hit-bounce{0%{transform:translateZ(0) scale(1);filter:brightness(1)}16%{transform:translate3d(-5px,-2px,0) scale(1.035);filter:brightness(1.22)}32%{transform:translate3d(4px,1px,0) scale(1.02)}50%{transform:translate3d(-2px,0,0) scale(1.012)}72%{transform:translate3d(1px,0,0) scale(1.004);filter:brightness(1.08)}to{transform:translateZ(0) scale(1);filter:brightness(1)}}@keyframes adv-hp-alert-ring{0%{opacity:0;transform:scale(.94);box-shadow:0 0 #f8717166,0 0 18px #f8717142,inset 0 0 14px #facc1529}18%{opacity:1}to{opacity:0;transform:scale(1.12);box-shadow:0 0 0 12px #f8717100,0 0 36px #f8717100,inset 0 0 22px #facc1500}}@keyframes adv-hp-alert-glint{0%{opacity:0;transform:translate(-32%) skew(-10deg)}20%{opacity:.95}to{opacity:0;transform:translate(34%) skew(-10deg)}}.adv-hp-fill.is-enemy{background:linear-gradient(90deg,#dc2626,#ef4444 58%,#fb7185);box-shadow:0 0 18px #dc26268c}.adv-battle-panel{margin:0 18px 18px;border:1px solid rgba(248,113,113,.26);border-radius:8px;background:linear-gradient(135deg,#7f1d1d33,#0f172aeb),var(--surface);box-shadow:0 18px 40px #00000038;padding:14px}.adv-battle-header{margin-bottom:10px}.adv-battle-header div{display:flex;flex-direction:column;gap:2px}.adv-battle-header span{color:#fca5a5;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.adv-battle-header strong{color:#fff1f2;font-size:1rem}.adv-battle-status{border:1px solid rgba(59,130,246,.24);border-radius:8px;background:#3b82f614;color:#bfdbfe;padding:8px 10px;font-size:.8rem;font-weight:850}.adv-battle-status.is-error{border-color:#f8717147;background:#f871711a;color:#fecaca}.adv-battle-status.is-victory{border-color:#22c55e57;background:#22c55e1f;color:#bbf7d0}.adv-battle-status.is-defeat{border-color:#f8717157;background:#7f1d1d3d;color:#fecaca}.adv-battle-defeat-panel{display:flex;align-items:center;justify-content:space-between;gap:12px}.adv-battle-defeat-panel strong{font-size:.95rem}.adv-battle-defeat-panel button{border:1px solid rgba(254,202,202,.35);border-radius:8px;background:#fecaca1f;color:#fee2e2;padding:7px 11px;font:inherit;font-weight:850;cursor:pointer}.adv-battle-defeat-panel button:hover{background:#fecaca33}.adv-battle-lines{color:var(--ink);font-size:calc(1rem * var(--adv-font-scale));line-height:1.7;margin-bottom:12px;border:1px solid rgba(252,165,165,.18);border-radius:8px;background:#0f172a6b;padding:10px 12px}.adv-battle-lines p{margin:0 0 6px;min-height:1.7em}.adv-battle-lines p:last-child{margin-bottom:0}.adv-battle-lines.is-animated p{animation:adv-battle-line-in .12s ease-out both}.adv-battle-lines .is-intent{color:#fff1f2;font-size:calc(1.12rem * var(--adv-font-scale));font-weight:850}.adv-battle-lines .is-player{color:#bfdbfe;font-weight:850}.adv-battle-lines .is-selected{color:#bfdbfe;font-size:calc(1.02rem * var(--adv-font-scale));font-weight:900}.adv-battle-lines .is-enemy{color:#fecaca;font-weight:850}.adv-battle-lines .is-result{color:var(--muted);font-size:calc(.9rem * var(--adv-font-scale))}.adv-battle-lines .is-separator{border-top:1px solid rgba(252,165,165,.18);color:#fca5a5;font-size:calc(.78rem * var(--adv-font-scale));font-weight:900;letter-spacing:.08em;margin-top:10px;padding-top:8px}.adv-battle-result-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}.adv-battle-result-chip{border:1px solid rgba(226,232,240,.22);border-radius:8px;background:#0f172a80;color:#e2e8f0;min-height:32px;padding:6px 10px;font-size:calc(.9rem * var(--adv-font-scale));font-weight:900;line-height:1.2;display:inline-flex;align-items:center}.adv-battle-result-chips.is-animated .adv-battle-result-chip{animation:adv-battle-chip-in .18s ease-out both;animation-delay:calc(var(--battle-chip-index, 0) * 70ms)}.adv-battle-result-chips.is-exiting .adv-battle-result-chip{animation:adv-scene-line-out .22s ease-in both;animation-delay:calc(var(--battle-chip-exit-index, 0) * 80ms)}.adv-battle-result-chip.is-enemy.is-negative{border-color:#f871715c;background:#7f1d1d57;color:#fecaca}.adv-battle-result-chip.is-player.is-negative{border-color:#fbbf2461;background:#713f124d;color:#fde68a}.adv-battle-result-chip.is-player:not(.is-negative),.adv-battle-result-chip.is-no-change{border-color:#94a3b847;background:#3341556b;color:#cbd5e1}.adv-battle-result-chip.is-status{border-color:#60a5fa5c;background:#1e40af3d;color:#bfdbfe}@keyframes adv-battle-chip-in{0%{opacity:0;transform:translateY(5px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.adv-battle-actions{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}.adv-battle-action-btn{flex:1 1 max(135px,calc(20% - 8px));min-width:fit-content;max-width:100%;border:1px solid rgba(248,113,113,.3);border-radius:8px;background:#0f172ab8;color:var(--ink);padding:9px 11px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer}.adv-battle-action-btn.is-revealing{animation:adv-battle-action-in .16s ease-out both}.adv-battle-action-btn>span{font-size:1.15rem;font-weight:900}.adv-battle-action-btn small{color:var(--muted);font-size:.82rem;line-height:1.3;text-align:left}.adv-battle-action-btn:hover{background:#7f1d1d5c;border-color:#fca5a57a}.adv-battle-action-btn:disabled{cursor:not-allowed;opacity:.58}@keyframes adv-battle-line-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes adv-battle-action-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.adv-battle-debug{margin-top:12px;color:var(--muted);font-size:.75rem}.adv-battle-debug summary{cursor:pointer;color:#fca5a5;font-weight:900}.adv-battle-debug pre{max-height:280px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.adv-scene-body{position:relative;padding:24px 28px;display:flex;flex-direction:column;gap:16px;min-height:clamp(118px,13vh,160px);overflow:hidden}.adv-scene-body:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:#000;opacity:0;transition:opacity .16s ease-in-out}.adv-scene-body.is-blackout:after{opacity:1}.adv-scene-location{display:flex;align-items:flex-start;gap:8px;width:fit-content;max-width:100%;font-size:calc(1.08rem * var(--adv-font-scale));font-weight:900;color:var(--ink);border-bottom:2px solid var(--accent-2);padding-bottom:4px;text-decoration:underline;text-decoration-color:#3b82f652;text-decoration-thickness:3px;text-underline-offset:7px}.adv-scene-location-text{display:inline;line-height:1.35;min-width:0;word-break:keep-all}.adv-scene-location-text .adv-token-stage{white-space:nowrap}.adv-scene-body.is-animated .adv-scene-location{animation:adv-scene-line-in .14s ease-out both}.adv-scene-body.is-exiting .adv-scene-location{animation:adv-scene-line-out .22s ease-in both}.adv-location-dot{width:9px;height:9px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px #3b82f624;flex-shrink:0;margin-top:.45em}.adv-scene-narration{font-size:calc(.95rem * var(--adv-font-scale));line-height:1.75;color:var(--ink);min-height:calc(2.2em * var(--adv-font-scale))}.adv-scene-body.has-exits>.adv-scene-narration{min-height:calc(2.2em * var(--adv-font-scale))}.adv-scene-narration p{margin:0 0 6px;min-height:1.75em}.adv-scene-narration p:last-child{margin-bottom:0}.adv-scene-narration p.is-post-battle-reward{display:inline-flex;align-items:center;min-height:34px;margin:4px 0 8px;padding:7px 11px;border:1px solid rgba(250,204,21,.34);border-radius:8px;background:#713f123d;color:#fef3c7;font-weight:900;box-shadow:0 10px 24px #0f172a2e}.adv-action-result,.adv-exits-result{opacity:0;transform:translateY(8px);transition:opacity .18s ease-out,transform .18s ease-out}.adv-action-result.is-ready,.adv-exits-result.is-ready{opacity:1;transform:translateY(0)}.adv-action-divider{display:flex;align-items:center;gap:10px;margin:2px 0 8px;color:#475569c7;font-size:calc(.68rem * var(--adv-font-scale));font-weight:900;letter-spacing:0;text-transform:uppercase}.adv-action-divider:before,.adv-action-divider:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(59,130,246,.38),transparent)}.adv-action-divider span{padding:2px 8px;border-radius:999px;background:#3b82f617;border:1px solid rgba(59,130,246,.18)}.adv-exits-divider span{background:#22c55e1a;border-color:#22c55e38;color:#166534}.adv-action-result .adv-scene-narration,.adv-exits-result .adv-scene-narration{min-height:auto;padding-left:10px;border-left:3px solid rgba(59,130,246,.26)}.adv-exits-result .adv-scene-narration{border-left-color:#22c55e3d}.adv-scene-narration.is-animated p{animation:adv-scene-line-in .14s ease-out both}.adv-scene-narration.is-exiting p{animation:adv-scene-line-out .22s ease-in both;animation-delay:calc(var(--scene-line-exit-index, 0) * 80ms)}.adv-type-caret{display:inline-block;width:.55em;height:1.05em;margin-left:2px;vertical-align:-.16em;border-right:2px solid var(--accent-2);animation:adv-type-caret-blink .72s steps(2,start) infinite}@keyframes adv-scene-line-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes adv-scene-line-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes adv-type-caret-blink{0%,45%{opacity:1}46%,to{opacity:0}}.adv-start-panel{display:grid;gap:10px;border:1px solid rgba(59,130,246,.24);border-radius:10px;background:var(--surface);padding:14px}.adv-start-panel strong{color:var(--ink);font-size:.95rem}.adv-start-panel span{color:var(--muted);font-size:.84rem;line-height:1.5}.adv-start-panel button{width:fit-content;border:1px solid rgba(34,197,94,.38);border-radius:999px;background:#22c55e24;color:#22c55e;padding:7px 14px;font-weight:900;cursor:pointer}.adv-scene-dialogue{background:var(--surface);border-left:3px solid #3b82f6;border-radius:0 10px 10px 0;padding:14px 16px;display:flex;flex-direction:column;gap:6px}.adv-dialogue-speaker{font-size:.72rem;font-weight:700;color:#3b82f6;text-transform:uppercase;letter-spacing:.06em}.adv-dialogue-line{font-size:1.05rem;line-height:1.7;color:var(--ink)}.adv-vocab-spotlight{width:calc(100% - 56px);display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding:0 28px}.adv-vocab-chip{font-size:.78rem;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:3px 10px;color:var(--ink)}.adv-vocab-reading{color:var(--muted);margin-left:4px}.adv-validation-panel{width:calc(100% - 56px);display:grid;gap:8px;margin-top:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);padding:12px 14px;font-size:.82rem;color:var(--muted)}.adv-validation-panel div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.adv-validation-panel strong{color:var(--ink)}.adv-validation-panel.is-valid{border-color:#22c55e73}.adv-validation-panel.is-valid strong{color:#16a34a}.adv-validation-panel.is-invalid{border-color:#ef444480}.adv-validation-panel.is-invalid strong{color:#dc2626}.adv-token-report{width:calc(100% - 56px);display:grid;gap:8px;margin-top:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px}.adv-token-report-title{color:var(--muted);font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.adv-token-report-grid{display:flex;flex-wrap:wrap;gap:6px}.adv-token-report-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;background:var(--surface-inset);color:var(--ink);padding:3px 8px;font-size:.72rem}.adv-token-report-chip strong{font-weight:900}.adv-token-report-chip span{color:var(--muted);font-size:.66rem;font-weight:800;text-transform:uppercase}.adv-token-report-chip.source-safe{border-color:#3b82f657}.adv-token-report-chip.source-safe_kanji{border-color:#3b82f680;background:#3b82f614}.adv-token-report-chip.source-floor{border-color:#22c55e57}.adv-token-report-chip.source-floor_kanji{border-color:#22c55e80;background:#22c55e14}.adv-token-report-chip.source-pressure{border-color:#f9731666}.adv-token-report-chip.source-pressure_kanji{border-color:#f973168f;background:#f9731614}.adv-token-report-chip.source-global,.adv-token-report-chip.source-global_kanji{border-color:#a855f761;background:#a855f712}.adv-token-report-chip.source-allowed_kanji{border-color:#a855f761}.adv-token-report-chip.source-grammar{opacity:.72}.adv-token-report-chip.source-grammar_form{border-color:#22c55e80;background:#22c55e14}.adv-token-report-chip.is-unknown{border-color:#ef44449e;background:#ef444414}.adv-choices{width:100%;display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:2px 28px 0}.adv-choice-row{display:flex;align-items:center;gap:8px;max-width:100%;padding-top:6px;position:relative}.adv-choice-row.is-revealing{animation:adv-choice-row-in .16s ease-out both}.adv-choice-row.is-exiting{animation:adv-choice-row-out .22s ease-in both;animation-delay:calc(var(--choice-exit-index, 0) * 80ms)}.adv-choice-row.has-movement{align-items:flex-start;flex-basis:100%;flex-wrap:wrap}.adv-choice-row.is-battle .adv-choice-btn{border-color:#f8717161;background:#7f1d1d29}.adv-choice-shell{display:inline-flex;max-width:100%;min-width:0;position:relative}@keyframes adv-choice-spin{to{transform:rotate(360deg)}}.adv-choice-btn{display:flex;align-items:center;gap:14px;width:auto;max-width:100%;padding:14px 54px 14px 18px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface-strong);cursor:pointer;font-size:.95rem;color:var(--ink);text-align:left;transition:border-color .15s,background .15s}.adv-choice-text-panel{cursor:text}.adv-choice-row.is-inspecting .adv-choice-btn{border-color:#67e8f975;background:#082f492e}.adv-choice-row.is-inspecting .adv-choice-text{line-height:1.55}.adv-choice-row.is-inspecting.is-split-grammar .adv-token-stage+.adv-token-stage{margin-left:.18em}.adv-scene-location.is-split-grammar .adv-token-stage+.adv-token-stage{margin-left:.18em}.adv-choice-row.is-inspecting .adv-token-stage.is-clickable{cursor:pointer}.adv-choice-row.is-inspecting .adv-token-stage.is-clickable:hover,.adv-choice-row.is-inspecting .adv-token-stage.is-clickable:focus-visible{background:#67e8f921;box-shadow:0 0 0 1px #67e8f93d;outline:none}.adv-choice-mode-toggle{align-items:center;background:var(--surface-inset);border:1px solid var(--border);border-radius:6px;color:var(--muted);cursor:pointer;display:inline-flex;font-size:.62rem;font-weight:900;height:24px;justify-content:center;line-height:1;padding:0;position:absolute;right:8px;top:8px;width:28px;z-index:2}.adv-choice-mode-toggle:hover,.adv-choice-mode-toggle:focus-visible{border-color:#67e8f994;color:var(--ink);outline:none}.adv-choice-mode-toggle[aria-pressed=true]{border-color:#67e8f9ad;color:#67e8f9}.adv-choice-mode-toggle:disabled{cursor:default;opacity:.5}.adv-choice-btn:hover{border-color:var(--accent-2);background:var(--surface-accent)}.adv-choice-text-panel:hover{border-color:#67e8f975;background:#082f492e}.adv-choice-row.is-post-battle .adv-choice-btn,.adv-choice-row.is-post-battle.is-inspecting .adv-choice-btn,.adv-choice-row.is-post-battle .adv-choice-text-panel,.adv-choice-row.is-post-battle .adv-choice-text-panel:hover{border-color:#bfdbfe61;background:#1e40af33;color:#dbeafe}.adv-choice-row.is-post-battle .adv-choice-btn:hover,.adv-choice-row.is-post-battle .adv-choice-btn:focus-visible{border-color:#bfdbfe8f;background:#1e40af4d}.adv-choice-row.is-post-battle .adv-choice-mode-toggle{border-color:#bfdbfe52;background:#0f172a6b;color:#bfdbfe}.adv-choice-row.is-post-battle .adv-choice-mode-toggle[aria-pressed=true]{border-color:#bfdbfe9e;color:#dbeafe}.adv-choice-btn.is-category,.adv-choice-btn.is-category:hover,.adv-choice-btn:disabled{cursor:default;border-color:var(--border);background:var(--surface-strong);opacity:1}.adv-choice-btn.is-pending,.adv-choice-btn.is-pending:disabled{cursor:wait;border-color:#67e8f980;background:radial-gradient(circle at 18% 50%,rgba(103,232,249,.12),transparent 36%),var(--surface-strong);box-shadow:0 0 0 1px #67e8f91a,0 0 18px #67e8f929;animation:adv-choice-pending-pulse 1.6s ease-in-out infinite}.adv-choice-btn.is-battle.is-pending,.adv-choice-btn.is-battle.is-pending:disabled{border-color:#fca5a585;background:radial-gradient(circle at 18% 50%,rgba(248,113,113,.14),transparent 36%),#7f1d1d29;box-shadow:0 0 0 1px #f871711a,0 0 18px #f8717129}@keyframes adv-choice-pending-pulse{0%,to{filter:brightness(1);transform:translateY(0)}50%{filter:brightness(1.08);transform:translateY(-1px)}}@keyframes adv-choice-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes adv-choice-row-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.adv-choice-key{font-size:.72rem;font-weight:800;width:20px;height:20px;border-radius:5px;background:var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;flex-shrink:0}.adv-choice-label{display:none}.adv-choice-text{min-width:0;font-size:calc(1.03rem * var(--adv-font-scale));font-weight:760}.adv-choice-cost{border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:900;margin-left:auto;padding:4px 8px;white-space:nowrap}.adv-movement-selector{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 4px;max-width:100%}.adv-movement-option{display:flex;align-items:center;gap:12px;width:auto;max-width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:10px;background:var(--surface-inset);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.adv-movement-option:hover{border-color:var(--accent-2);background:var(--surface-accent)}.adv-movement-option:disabled{cursor:default;border-color:var(--border);background:var(--surface-inset);opacity:1}.adv-movement-key{font-size:.68rem;font-weight:850;min-width:28px;height:22px;border-radius:5px;background:var(--border);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.adv-movement-text{min-width:0;flex:1 1 auto;font-size:calc(.98rem * var(--adv-font-scale));font-weight:760}.adv-token-stage{font-weight:850;text-decoration:none}.adv-token-joined{display:inline}.adv-token-stage.adv-token-stage-0{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 1px rgba(0,0,0,.8)}.adv-token-stage.adv-token-stage-1{color:#888}.adv-token-stage.adv-token-stage-2{color:#22c55e}.adv-token-stage.adv-token-stage-3{color:#3b82f6}.adv-token-stage.adv-token-stage-4{color:#f97316}.adv-token-stage.adv-token-stage-5{color:#ef4444}.adv-token-stage.adv-token-stage-6{color:#f59e0b}.adv-token-stage.is-floor-locked{text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor;text-decoration-thickness:2px;text-underline-offset:4px}.adv-scene-narration .adv-token-stage.is-description-hoverable,.adv-scene-location .adv-token-stage.is-description-hoverable{display:inline-block;border-radius:.3em;padding:0 .1em;box-shadow:0 0 0 0 transparent;transition:box-shadow .12s ease,background-color .12s ease}.adv-scene-narration .adv-token-stage.is-description-hoverable.is-clickable,.adv-scene-location .adv-token-stage.is-description-hoverable.is-clickable{cursor:pointer}.adv-scene-narration .adv-token-stage.is-description-hoverable:hover,.adv-scene-location .adv-token-stage.is-description-hoverable:hover{background:#facc1524;box-shadow:0 0 0 2.5px #facc15e6,0 5px 14px #11182759}.adv-scene-narration .adv-token-stage.is-description-hoverable.is-clickable:focus-visible,.adv-scene-location .adv-token-stage.is-description-hoverable.is-clickable:focus-visible{outline:2px solid rgba(250,204,21,.9);outline-offset:2px;background:#facc1524;box-shadow:0 0 0 2.5px #facc15e6,0 5px 14px #11182759}.adv-budget-panel{width:calc(100% - 56px);margin-top:16px;border-radius:12px;border:1px dashed var(--border);background:var(--surface-inset);padding:12px 14px;display:grid;gap:8px}.adv-budget-title{font-size:.76rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.adv-budget-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:start;font-size:.84rem}.adv-budget-row span{color:var(--muted)}.adv-budget-row strong{color:var(--ink);font-weight:700;overflow-wrap:anywhere}.adv-debug-runtime{width:calc(100% - 56px);margin-top:14px;border:1px solid rgba(59,130,246,.28);border-radius:12px;background:var(--surface);color:var(--ink);overflow:hidden}.adv-debug-runtime summary{cursor:pointer;padding:10px 14px;font-size:.78rem;font-weight:900;color:var(--accent-2);text-transform:uppercase;letter-spacing:.06em}.adv-debug-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;padding:0 14px 12px}.adv-debug-row{display:grid;gap:3px;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);padding:8px 10px;min-width:0}.adv-debug-row span,.adv-debug-list span{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.adv-debug-row strong{color:var(--ink);font-size:.78rem;overflow-wrap:anywhere}.adv-debug-list{display:grid;gap:5px;padding:0 14px 12px}.adv-debug-list code{border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);color:var(--ink);padding:8px 10px;white-space:normal;overflow-wrap:anywhere;font-size:.74rem}.adv-locked-panel{width:min(720px,100%);display:grid;gap:16px;border:1px solid rgba(255,107,74,.25);border-radius:16px;background:linear-gradient(135deg,var(--surface-strong),var(--surface-pop));box-shadow:var(--shadow-soft);padding:20px}.adv-locked-panel h2{margin:0}.adv-locked-panel p{margin:0;color:var(--muted)}.adv-lock-requirements{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.adv-lock-req{display:grid;gap:4px;border-radius:12px;border:1px solid rgba(239,68,68,.34);background:var(--surface);padding:10px 12px}.adv-lock-req.is-met{border-color:#22c55e6b}.adv-lock-req span{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.adv-lock-req strong{color:var(--ink)}.adv-lock-hint{font-weight:700}.adv-lock-actions{display:flex;flex-wrap:wrap;gap:10px}.dungeon-floors-view{margin-top:20px}.df-summary{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:18px}.df-summary-sep{opacity:.4}.df-unlock-rule{max-width:560px;margin:-8px 0 16px;border:1px solid rgba(28,138,132,.22);border-radius:8px;background:var(--surface);color:var(--muted);padding:8px 10px;font-size:.82rem;font-weight:800}.df-stack{display:flex;flex-direction:column;gap:14px;max-width:560px}.df-card{border:1px solid var(--border);border-radius:12px;padding:18px 20px 14px;background:var(--panel);transition:box-shadow .15s}.df-card.is-active{border-color:var(--accent-2);box-shadow:0 0 0 1px var(--accent-2),0 4px 18px #1c8a841f}.df-card.is-cleared{border-color:#22c55e80;opacity:.82}.df-card.is-locked{opacity:.46}.df-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.df-card-identity{display:flex;flex-direction:column;gap:3px}.df-floor-label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.df-theme{font-size:1.05rem;font-weight:700;color:var(--ink)}.df-theme-hidden{color:var(--muted);letter-spacing:.1em}.df-status-badge{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:20px;white-space:nowrap}.df-status-badge.is-active{background:#1c8a8424;color:var(--accent-2);border:1px solid rgba(28,138,132,.3)}.df-status-badge.is-cleared{background:#22c55e1f;color:#22c55e;border:1px solid rgba(34,197,94,.28)}.df-status-badge.is-locked{background:transparent;color:var(--muted);border:1px solid var(--border)}.df-categories{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.df-category-row{display:grid;grid-template-columns:128px 1fr 54px;align-items:center;gap:10px}.df-category-row.is-support{opacity:.9}.df-category-label{font-size:.76rem;font-weight:700;color:var(--muted);text-align:right}.df-category-label small{display:block;margin-top:1px;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-2)}.df-bar-wrap{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.df-bar-fill{height:100%;background:var(--accent-2);border-radius:3px;transition:width .4s ease;min-width:0}.df-bar-fill.is-done{background:#22c55e}.df-category-count{font-size:.72rem;font-weight:700;color:var(--muted);text-align:right}.df-category-count.is-done{color:#22c55e}.df-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid var(--border)}.df-overall{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.df-overall-pct{font-size:1rem;font-weight:800;color:var(--accent-2)}.df-overall-count{font-size:.74rem;font-weight:600;color:var(--muted)}.df-entry-readiness{font-size:.72rem;font-weight:800;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:3px 8px;background:var(--surface)}.df-entry-readiness.is-ready{color:#22c55e;border-color:#22c55e59}.df-heart-row{flex-basis:100%;display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:2px}.df-heart-count{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);padding:2px 7px;font-size:.68rem;font-weight:800}.df-heart-count.stage-0{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 1px rgba(0,0,0,.8)}.df-heart-count.stage-1{color:#888}.df-heart-count.stage-2{color:#22c55e}.df-heart-count.stage-3{color:#3b82f6}.df-heart-count.stage-4{color:#f97316}.df-heart-count.stage-5{color:#ef4444}.df-heart-count.stage-6{color:#f59e0b}.df-heart-count strong{color:var(--ink)}.df-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.df-actions button{border:1px solid var(--border);border-radius:999px;background:var(--accent);color:#fff;padding:7px 12px;font-weight:800;cursor:pointer}.df-actions select{max-width:210px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);padding:7px 10px;font-weight:700}.df-image-count-control{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);padding:4px 8px 4px 10px;font-size:.78rem;font-weight:800}.df-image-count-control input{width:64px;border:0;border-left:1px solid var(--border);background:transparent;color:var(--ink);padding:3px 4px 3px 8px;font:inherit;font-weight:900}.df-image-count-control input:focus{outline:none}.df-image-count-control:focus-within{border-color:var(--accent)}.df-actions button:disabled{cursor:not-allowed;opacity:.55}.df-actions .df-secondary-action{background:var(--surface);color:var(--ink)}.df-image-generation-status{margin-top:10px;border:1px solid rgba(28,138,132,.22);border-radius:8px;background:var(--surface);color:var(--muted);padding:8px 10px;font-size:.78rem;font-weight:700}.df-locked-hint{font-size:.78rem;color:var(--muted);margin:0;font-style:italic}.floor-vocab-codex-page{display:flex;flex-direction:column;gap:14px}.fvc-header{display:flex;flex-direction:column;gap:6px}.fvc-back{align-self:flex-start;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);padding:6px 10px;font-weight:800;cursor:pointer}.fvc-header-top{display:flex;align-items:baseline;gap:10px}.fvc-header-top h1{margin:0}.fvc-header-top span{font-size:.9rem;font-weight:700;color:var(--muted)}.fvc-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:900px}.fvc-metric-box{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:3px}.fvc-metric-box span{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.fvc-metric-box strong{font-size:1.05rem;font-weight:900;color:var(--ink)}.fvc-flavor{margin:0;font-size:.9rem;font-weight:700;color:var(--muted)}.fvc-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.fvc-controls button{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);padding:7px 12px;font-weight:800;cursor:pointer}.fvc-controls button:disabled{opacity:.5;cursor:not-allowed}.fvc-controls .fvc-train{background:var(--accent);color:#fff}.fvc-controls span{font-size:.78rem;font-weight:800;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.fvc-status{border:1px solid rgba(28,138,132,.25);border-radius:10px;background:var(--surface);color:var(--muted);padding:7px 10px;font-size:.82rem;font-weight:700}.fvc-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.fvc-card{border:1px solid var(--border);border-radius:14px;background:linear-gradient(170deg,var(--surface),var(--surface-strong));box-shadow:0 6px 14px #14181f14;padding:9px;display:flex;flex-direction:column;gap:8px;min-height:190px;cursor:pointer}.fvc-card.is-locked{background:linear-gradient(170deg,#14181feb,#242a34eb);border-color:#94a3b842}.fvc-card.is-mastered{border-color:#f59e0b73;box-shadow:0 8px 16px #f59e0b24}.fvc-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fvc-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.fvc-card-index{font-size:.64rem;font-weight:900;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.fvc-card-badge{font-size:.62rem;font-weight:900;color:#f59e0b;border:1px solid rgba(245,158,11,.4);border-radius:999px;padding:2px 7px;text-transform:uppercase;letter-spacing:.05em}.fvc-card-image{width:100%;height:92px;border-radius:10px;background:#0f172a1f;overflow:hidden}.fvc-card-image img{width:100%;height:100%;object-fit:cover;display:block}.fvc-card-image-missing{width:100%;height:100%;display:grid;place-items:center;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.04em}.fvc-card.is-locked .fvc-card-image-missing{color:#ffffff9e;text-shadow:0 0 8px rgba(0,0,0,.45);background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.08),transparent 45%)}.fvc-card-copy{display:flex;flex-direction:column;gap:3px}.fvc-card-copy strong{font-size:1.05rem;line-height:1.1;color:var(--ink)}.fvc-card-copy span{font-size:.78rem;color:var(--muted);min-height:1.1em}.fvc-card.is-locked .fvc-card-copy strong,.fvc-card.is-locked .fvc-card-copy span{color:#ffffffb8}.fvc-hearts{display:inline-flex;align-items:center;gap:2px;flex-wrap:wrap}.fvc-heart{font-size:.78rem;color:var(--muted)}.fvc-heart.is-filled{color:#f97316}.fvc-shelf{display:flex;flex-direction:column;gap:8px;margin-top:4px}.fvc-shelf h3{margin:0;font-size:.9rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.fvc-shelf-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.fvc-shelf-card{border:1px solid var(--border);border-radius:10px;padding:7px;background:var(--surface);display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;align-items:center}.fvc-shelf-open{border:1px solid var(--border);border-radius:999px;background:var(--surface-strong);color:var(--ink);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;cursor:pointer}.fvc-modal-root,.fvc-art-root{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:18px}.fvc-modal-backdrop,.fvc-art-backdrop{position:absolute;inset:0;border:0;background:#080c11b3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.fvc-modal-card{position:relative;z-index:1;width:min(560px,calc(100vw - 34px));border:1px solid var(--border);border-radius:16px;background:linear-gradient(170deg,var(--surface),var(--surface-strong));box-shadow:0 24px 48px #00000059;padding:12px;display:flex;flex-direction:column;gap:10px}.fvc-modal-card.is-locked{background:linear-gradient(170deg,#14181ff2,#242a34f2)}.fvc-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.fvc-modal-header div{display:flex;flex-direction:column;gap:2px}.fvc-modal-header span{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.fvc-modal-header strong{font-size:1.3rem;color:var(--ink)}.fvc-modal-card.is-locked .fvc-modal-header strong{color:#ffffffd1}.fvc-modal-header button{border:1px solid var(--border);border-radius:10px;width:32px;height:32px;background:var(--surface);color:var(--ink);font-weight:900;cursor:pointer}.fvc-modal-image{width:100%;border-radius:12px;overflow:hidden;min-height:180px;background:#0f172a26}.fvc-modal-image img{width:100%;max-height:54vh;object-fit:contain;display:block}.fvc-modal-image-button{width:100%;display:block;border:0;padding:0;margin:0;background:transparent;cursor:zoom-in}.fvc-modal-image-missing{min-height:180px;display:grid;place-items:center;color:var(--muted);font-weight:800;font-size:.88rem}.fvc-modal-copy{display:grid;gap:6px}.fvc-modal-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--border);padding-bottom:4px}.fvc-modal-row span{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.fvc-modal-row strong{font-size:.95rem;color:var(--ink);text-align:right}.fvc-modal-card.is-locked .fvc-modal-row strong{color:#ffffffc7}.fvc-modal-hearts{justify-content:center;margin-top:4px}.fvc-modal-actions{display:flex;justify-content:flex-end;gap:8px}.fvc-modal-actions button{border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);padding:7px 12px;font-weight:800;cursor:pointer}.fvc-art-card{position:relative;z-index:1;width:min(960px,calc(100vw - 28px));max-height:calc(100vh - 32px);border:1px solid var(--border);border-radius:16px;background:#070a0ef5;box-shadow:0 26px 52px #00000073;padding:10px;display:flex;flex-direction:column;gap:8px}.fvc-art-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}.fvc-art-card header strong{color:#e2e8f0;font-size:.95rem}.fvc-art-card header button{border:1px solid rgba(148,163,184,.35);border-radius:10px;width:32px;height:32px;background:#0f172acc;color:#e2e8f0;font-weight:900;cursor:pointer}.fvc-art-card img{width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:12px;display:block}.fvc-shelf-thumb{width:56px;height:48px;border-radius:8px;overflow:hidden;background:#0f172a1f}.fvc-shelf-thumb img{width:100%;height:100%;object-fit:cover;display:block}.fvc-shelf-thumb-missing{width:100%;height:100%;background:repeating-linear-gradient(135deg,#94a3b847,#94a3b847 6px,#0f172a2e 6px 12px)}.fvc-shelf-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.fvc-shelf-copy strong{font-size:.85rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1100px){.fvc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:840px){.fvc-metrics{grid-template-columns:1fr;max-width:none}.fvc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fvc-shelf-row{grid-template-columns:1fr}.fvc-modal-row{flex-direction:column;align-items:flex-start}.fvc-modal-row strong{text-align:left}}.authored-review-page{display:flex;flex-direction:column;gap:16px;color:var(--ink)}.authored-review-header,.authored-review-controls,.authored-review-alert,.authored-review-bottom-actions,.authored-review-node,.authored-review-line{border:1px solid var(--border);background:var(--surface);border-radius:8px}.authored-review-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px}.authored-review-header h1,.authored-review-node-title h2,.authored-review-alert h2{margin:0}.authored-review-header p{margin:8px 0 0;color:var(--muted);max-width:760px}.authored-review-manifest{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;overflow-wrap:anywhere}.authored-review-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.authored-review-bottom-nav{display:flex;gap:10px;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap}.authored-review-bottom-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 18px}.authored-review-bottom-actions strong,.authored-review-bottom-actions span{display:block}.authored-review-bottom-actions span{margin-top:3px;color:var(--muted);font-size:.9rem}.authored-review-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.authored-review-summary div{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);padding:12px}.authored-review-summary span,.authored-review-gloss span,.authored-review-token-table td span,.authored-review-token-table small,.authored-review-node-title span,.authored-review-line-meta{color:var(--muted)}.authored-review-summary strong{display:block;font-size:1.35rem;margin-top:4px}.authored-review-message{border:1px solid rgba(28,138,132,.35);background:#1c8a841a;border-radius:8px;padding:10px 12px}.authored-review-message.error{border-color:#dc262673;background:#dc26261a}.authored-review-controls{display:flex;gap:14px;align-items:end;padding:12px;flex-wrap:wrap}.authored-review-controls label,.authored-review-manifest-select,.authored-review-node-select{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:.86rem}.authored-review-controls select,.authored-review-manifest-select select,.authored-review-node-select select{min-width:280px;border:1px solid var(--border);border-radius:8px;background:var(--surface-inset);color:var(--ink);padding:9px 10px}.authored-review-node-select.compact select{min-width:240px}.authored-review-checkbox{flex-direction:row!important;align-items:center;color:var(--ink)!important}.authored-review-semantic-source{display:flex;flex-direction:column;gap:3px;min-width:min(320px,100%);border:1px solid rgba(28,138,132,.22);border-radius:8px;background:#1c8a8414;padding:8px 10px;color:var(--muted);font-size:.78rem}.authored-review-semantic-source strong{color:var(--ink)}.authored-review-alert{padding:14px;border-color:#dc262680}.authored-review-alert.semantic{border-color:#f59e0b94;background:linear-gradient(180deg,rgba(245,158,11,.08),transparent),var(--surface)}.authored-review-alert-list{display:grid;gap:8px;margin-top:10px}.authored-review-alert-list div{display:grid;grid-template-columns:180px 80px 160px minmax(0,1fr);gap:8px;align-items:start;padding:8px;border-radius:6px;background:#dc262614}.authored-review-alert-list.semantic div{grid-template-columns:180px 110px 160px minmax(0,1fr);background:#f59e0b14}.authored-review-node{padding:14px}.authored-review-node-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:12px}.authored-review-line{padding:12px;margin-top:12px;background:var(--surface-strong)}.authored-review-line.is-blocking{border-color:#f59e0b99}.authored-review-line.is-untracked{border-color:#dc262699}.authored-review-line header{display:flex;justify-content:space-between;gap:12px;align-items:start;color:var(--muted);font-size:.85rem}.authored-review-line header div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.authored-review-role,.authored-review-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;border:1px solid var(--border);background:var(--surface-inset);font-size:.78rem;white-space:nowrap}.authored-review-japanese{margin:10px 0 2px;font-size:1.2rem;line-height:1.7}.authored-review-translation{margin:0 0 10px;color:var(--text);line-height:1.5}.authored-review-line-meta{margin:-4px 0 10px}.authored-review-gloss{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.authored-review-gloss div{border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface-inset)}.authored-review-gloss p{margin:4px 0 0;line-height:1.5}.authored-review-support-projection{margin:0 0 12px;border:1px solid rgba(28,138,132,.18);border-radius:8px;background:#1c8a840f;padding:10px}.authored-review-support-projection>span{display:block;margin-bottom:8px;color:var(--muted);font-size:.73rem;font-weight:900;text-transform:uppercase}.authored-review-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.authored-review-support-card{border:1px solid rgba(28,138,132,.18);border-radius:7px;background:var(--surface);padding:8px}.authored-review-support-card.has-issues{border-color:#f59e0b8c;background:#f59e0b14}.authored-review-support-card strong,.authored-review-support-card span,.authored-review-support-card small,.authored-review-support-card em{display:block}.authored-review-support-card em{margin-top:4px;color:#92400e;font-style:normal;font-weight:700}.authored-review-visible-segments{margin:0 0 12px;border:1px solid rgba(28,138,132,.18);border-radius:8px;background:#1c8a840d;padding:10px;overflow-x:auto}.authored-review-visible-segments>span{display:block;margin-bottom:8px;color:var(--muted);font-size:.73rem;font-weight:900;text-transform:uppercase}.authored-review-segment-table{width:100%;min-width:900px;border-collapse:collapse}.authored-review-segment-table th,.authored-review-segment-table td{border-top:1px solid rgba(28,138,132,.14);padding:7px;text-align:left;vertical-align:top}.authored-review-segment-table th{color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase}.authored-review-segment-table td strong,.authored-review-segment-table td span,.authored-review-segment-table td small{display:block}.authored-review-segment-table td small{color:var(--muted);font-size:.76rem;overflow-wrap:anywhere}.segment-blocking,.segment-sense{background:#dc26260f}.segment-review{background:#f59e0b0f}.segment-ok{background:#1c8a840a}.authored-review-token-table-wrap{overflow-x:auto}.authored-review-token-table{width:100%;min-width:980px;border-collapse:collapse}.authored-review-token-table th,.authored-review-token-table td{border-top:1px solid var(--border);padding:8px;text-align:left;vertical-align:top}.authored-review-token-table th{color:var(--muted);font-size:.82rem;font-weight:700}.authored-review-token-table td strong,.authored-review-token-table td span,.authored-review-token-table small{display:block}.authored-review-correction-input,.authored-review-token-table textarea{width:100%;min-width:180px;margin-top:6px;border:1px solid var(--border);border-radius:6px;background:var(--surface-inset);color:var(--ink);padding:6px}.authored-review-token-table textarea{resize:vertical}.authored-review-token-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.authored-review-token-table button.marked{border-color:#1c8a84b3;background:#1c8a8424}.authored-review-token-table button.accepted{border-color:#1c8a84bf;background:#1c8a842e}.status-blocking,.status-missing,.status-sense{border-color:#dc26268c;background:#dc26261a}.status-review{border-color:#f59e0b8c;background:#f59e0b1f}.status-ok{border-color:#1c8a8459;background:#1c8a841a}.status-accepted{border-color:#1c8a84bf;background:#1c8a842e}.token-blocking,.token-missing,.token-sense{background:#dc26260d}.token-review{background:#f59e0b0d}.token-accepted{background:#1c8a840d}.authored-review-token-table tr.is-accepted{box-shadow:inset 3px 0 #1c8a84b3}@media(max-width:840px){.authored-review-header,.authored-review-bottom-actions,.authored-review-gloss{grid-template-columns:1fr}.authored-review-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.authored-review-alert-list div{grid-template-columns:1fr}}.authored-review-page{width:min(100%,1180px);margin:0 auto;padding-bottom:18px}.authored-review-header,.authored-review-controls,.authored-review-summary div,.authored-review-node,.authored-review-line,.authored-review-bottom-actions{box-shadow:0 14px 34px #0f172a14}.authored-review-header{border-color:#1c8a8447;background:linear-gradient(135deg,rgba(28,138,132,.13),transparent 44%),linear-gradient(180deg,var(--surface),var(--surface-strong))}.authored-review-header h1{font-size:1.55rem;letter-spacing:0}.authored-review-actions button,.authored-review-token-actions button{border:1px solid var(--button-border-strong);border-radius:7px;background:var(--surface-strong);color:var(--ink);font-size:.82rem;font-weight:800;min-height:34px;padding:7px 10px}.authored-review-actions button:hover,.authored-review-token-actions button:hover{border-color:#1c8a8494;background:var(--surface-accent)}.authored-review-actions button:disabled,.authored-review-token-actions button:disabled{cursor:default;opacity:.58}.authored-review-summary div{border-color:#1c8a842e;background:linear-gradient(180deg,rgba(255,255,255,.05),transparent),var(--surface-strong)}.authored-review-summary span{font-size:.75rem;font-weight:900;text-transform:uppercase}.authored-review-controls,.authored-review-bottom-actions{border-color:#1c8a842e;background:var(--surface-strong)}.authored-review-node-select select,.authored-review-controls select{min-height:38px;box-shadow:inset 0 1px #ffffff0d}.authored-review-node{border-color:#1c8a8433;background:var(--surface);padding:16px}.authored-review-node-title{border-bottom:1px solid var(--border);padding-bottom:12px}.authored-review-node-title h2{font-size:1.25rem;letter-spacing:0}.authored-review-line{border-left:4px solid rgba(28,138,132,.38);background:linear-gradient(90deg,rgba(28,138,132,.08),transparent 22%),var(--surface-strong)}.authored-review-line.is-blocking{border-left-color:#f59e0bd9}.authored-review-line.is-untracked{border-left-color:#dc2626d9}.authored-review-japanese{font-size:1.28rem;font-weight:700}.authored-review-translation{color:var(--ink);font-size:.95rem}.authored-review-line-meta{font-size:.82rem;font-weight:700}.authored-review-gloss div{border-color:#1c8a8424}.authored-review-gloss span{font-size:.73rem;font-weight:900;text-transform:uppercase}.authored-review-token-table{border-collapse:separate;border-spacing:0;min-width:1120px}.authored-review-token-table th{position:sticky;top:0;z-index:1;border-top:0;background:var(--surface);color:var(--muted);text-transform:uppercase}.authored-review-token-table th:first-child,.authored-review-token-table td:first-child{padding-left:12px}.authored-review-token-table th:last-child,.authored-review-token-table td:last-child{min-width:260px;padding-right:12px}.authored-review-token-table td{background:#ffffff04}.authored-review-token-table tr:hover td{background:#1c8a840b}.authored-review-token-table td strong{font-size:1rem}.authored-review-status{width:fit-content;font-weight:900}.authored-review-token-actions{align-items:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.authored-review-token-actions button{min-width:0;padding:6px 8px}.authored-review-token-table button.marked,.authored-review-token-table button.accepted{color:var(--ink)}.authored-review-correction-input,.authored-review-token-table textarea{min-width:0;border-color:#1c8a8438;background:var(--surface);font-size:.82rem}.authored-review-correction-input:focus,.authored-review-token-table textarea:focus{border-color:#1c8a84b3;box-shadow:0 0 0 3px #1c8a841f;outline:none}.authored-review-token-table td:last-child small{margin-top:6px;border-left:3px solid rgba(28,138,132,.45);padding-left:7px}.token-blocking td,.token-missing td,.token-sense td{background:#dc26260f}.token-review td{background:#f59e0b0f}.token-accepted td{background:#1c8a840f}.authored-review-token-table tr.is-accepted{box-shadow:inset 4px 0 #1c8a84d9}@media(max-width:840px){.authored-review-page{width:100%}.authored-review-token-actions{grid-template-columns:1fr}.authored-review-node-select select,.authored-review-controls select{min-width:min(280px,calc(100vw - 80px))}}.world-builder-page{display:flex;flex-direction:column;gap:18px}.world-builder-header,.world-builder-summary,.world-builder-toolbar,.world-builder-detail-header,.world-builder-list-header,.world-builder-section>div,.world-builder-relation-list h3{display:flex;align-items:center;justify-content:space-between;gap:12px}.world-builder-header h1,.world-builder-detail-header h2,.world-builder-sections h2,.world-builder-section h3,.world-builder-notes h3,.world-builder-relation-list h3{margin:0}.world-builder-kicker,.world-builder-detail-header p{margin:0 0 4px;color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.world-builder-source{min-width:170px;border:1px solid rgba(28,138,132,.2);border-radius:8px;background:var(--surface);padding:10px 12px;text-align:right}.world-builder-source span,.world-builder-summary span,.world-builder-section span{display:block;color:var(--muted);font-size:.78rem;font-weight:800}.world-builder-source strong{display:block;margin-top:4px;font-size:.82rem}.world-builder-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.world-builder-summary>div{border:1px solid rgba(28,138,132,.18);border-radius:8px;background:var(--surface);padding:12px}.world-builder-summary strong{display:block;margin-top:4px;font-size:1.4rem}.world-builder-summary-path{overflow-wrap:anywhere;font-size:.82rem!important;line-height:1.3}.world-builder-view-tabs{display:inline-flex;width:fit-content;border:1px solid rgba(28,138,132,.18);border-radius:8px;background:var(--surface);padding:4px}.world-builder-view-tabs button{border:0;border-radius:6px;background:transparent;color:var(--muted);min-height:34px;padding:7px 13px;font-weight:900}.world-builder-view-tabs button:hover,.world-builder-view-tabs button.active{background:#1c8a841f;color:var(--ink)}.world-builder-warning{border-color:#dc262659!important;background:#dc26260f!important}.world-builder-toolbar{align-items:end;border:1px solid rgba(28,138,132,.16);border-radius:8px;background:var(--surface);padding:12px}.world-builder-toolbar label{min-width:0;flex:1 1 0;color:var(--muted);font-size:.78rem;font-weight:800}.world-builder-toolbar input,.world-builder-toolbar select{width:100%;margin-top:6px;border:1px solid rgba(28,138,132,.24);border-radius:8px;background:var(--panel);color:var(--ink);padding:9px 10px}.world-builder-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:18px;align-items:start}.world-builder-source-layout{grid-template-columns:minmax(300px,390px) minmax(0,1fr)}.world-builder-sidebar,.world-builder-detail,.world-builder-sections{border:1px solid rgba(28,138,132,.16);border-radius:8px;background:var(--surface)}.world-builder-sidebar{overflow:hidden}.world-builder-source-layout .world-builder-sidebar{max-height:calc(100vh - 24px);position:sticky;top:12px}.world-builder-list-header{border-bottom:1px solid rgba(28,138,132,.14);padding:12px}.world-builder-sidebar-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border-bottom:1px solid rgba(28,138,132,.14);padding:6px}.world-builder-sidebar-tabs button{border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-size:.78rem;font-weight:900;min-height:32px}.world-builder-sidebar-tabs button:hover,.world-builder-sidebar-tabs button:focus-visible,.world-builder-sidebar-tabs button.active{background:#1c8a841f;color:var(--ink);outline:none}.world-builder-node-list{max-height:620px;overflow:auto}.world-builder-node-button{width:100%;border:0;border-bottom:1px solid rgba(28,138,132,.1);border-radius:0;background:transparent;color:var(--ink);padding:10px 12px;text-align:left}.world-builder-node-button:hover,.world-builder-node-button.active{background:#1c8a841a}.world-builder-node-button span,.world-builder-node-button small{display:block}.world-builder-node-button span{font-weight:850}.world-builder-node-button small{margin-top:3px;color:var(--muted);font-size:.76rem;line-height:1.3}.world-builder-toc-list{padding:6px}.world-builder-toc-button{align-items:baseline;border:0;border-radius:6px;background:transparent;color:var(--ink);cursor:pointer;display:grid;gap:4px;grid-template-columns:minmax(0,1fr) auto;min-height:34px;padding:7px 8px;text-align:left;width:100%}.world-builder-toc-button:hover,.world-builder-toc-button:focus-visible{background:#1c8a841a;outline:none}.world-builder-toc-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-builder-toc-button small{color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase}.world-builder-toc-button.level-2{padding-left:18px}.world-builder-toc-button.level-3{padding-left:30px}.world-builder-toc-button.level-4{padding-left:42px}.world-builder-toc-button.level-5{padding-left:54px}.world-builder-toc-button.level-6{padding-left:66px}.world-builder-sidebar-empty{color:var(--muted);font-size:.86rem;font-weight:800;padding:12px}.world-builder-detail{min-width:0;padding:16px}.world-builder-detail-header{align-items:flex-start}.world-builder-nav-buttons{display:flex;gap:4px;margin-bottom:4px}.world-builder-nav-btn{background:none;border:none;padding:0 4px;font-size:1.3rem;line-height:1;color:var(--ink);opacity:.35;cursor:pointer;transition:opacity .15s;border-radius:4px}.world-builder-nav-btn:not(:disabled):hover{opacity:.85;background:#1c8a841a}.world-builder-nav-btn:disabled{cursor:default;opacity:.15}.world-builder-detail-header code{max-width:min(330px,42vw);overflow-wrap:anywhere;border-radius:6px;background:#1c8a841a;padding:6px 8px;color:var(--ink);font-size:.78rem}.world-builder-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.world-builder-fields div{border:1px solid rgba(28,138,132,.14);border-radius:8px;padding:10px}.world-builder-fields dt{color:var(--muted);font-size:.75rem;font-weight:800}.world-builder-fields dd{margin:4px 0 0;font-weight:800}.world-builder-body,.world-builder-section p{line-height:1.55}.world-builder-notes{margin-top:16px}.world-builder-notes ul,.world-builder-relation-list ul{margin:10px 0 0;padding:0;list-style:none}.world-builder-notes li{border-left:3px solid rgba(28,138,132,.4);margin-bottom:8px;padding-left:10px;line-height:1.45}.world-builder-relations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.world-builder-relation-list{min-width:0;border:1px solid rgba(28,138,132,.14);border-radius:8px;padding:12px}.world-builder-relation-list h3 span{color:var(--muted);font-size:.8rem}.world-builder-relation-list li+li{margin-top:6px}.world-builder-relation-list button{width:100%;border:1px solid rgba(28,138,132,.14);border-radius:8px;background:var(--panel);color:var(--ink);padding:8px 10px;text-align:left}.world-builder-relation-list button:hover{border-color:#1c8a8473}.world-builder-relation-list button span,.world-builder-relation-list button strong{display:block}.world-builder-relation-list button span{color:var(--muted);font-size:.74rem;font-weight:800}.world-builder-relation-list button strong{margin-top:3px}.world-builder-sections{padding:16px}.world-builder-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.world-builder-section{border:1px solid rgba(28,138,132,.14);border-radius:8px;background:var(--panel);padding:12px}.world-builder-section p{margin:10px 0 0;color:var(--muted);font-size:.88rem}.world-builder-status{color:var(--muted);font-weight:800}.world-builder-markdown{border-top:1px solid rgba(28,138,132,.14);margin-top:14px;padding-top:16px}.world-builder-markdown h1,.world-builder-markdown h2,.world-builder-markdown h3,.world-builder-markdown h4,.world-builder-markdown h5,.world-builder-markdown h6,.world-builder-markdown p{max-width:92ch}.world-builder-markdown h1{margin:0 0 16px;font-size:1.55rem}.world-builder-markdown h2{border-top:1px solid rgba(28,138,132,.16);margin:26px 0 10px;padding-top:16px;font-size:1.15rem}.world-builder-markdown h3{margin:18px 0 8px;font-size:1rem}.world-builder-markdown h4,.world-builder-markdown h5,.world-builder-markdown h6{margin:14px 0 6px;font-size:.94rem}.world-builder-md-heading{align-items:center;display:flex;gap:10px;justify-content:space-between;max-width:92ch;scroll-margin-top:22px}.world-builder-md-heading h1,.world-builder-md-heading h2,.world-builder-md-heading h3,.world-builder-md-heading h4,.world-builder-md-heading h5,.world-builder-md-heading h6{flex:1}.world-builder-heading-image-actions{align-items:center;display:flex;flex:0 0 auto;gap:6px}.world-builder-heading-image-button,.world-builder-heading-thumb{align-items:center;border:1px solid rgba(28,138,132,.22);border-radius:7px;background:var(--panel);color:var(--text);cursor:pointer;display:inline-flex;font-size:.74rem;font-weight:850;height:30px;justify-content:center;padding:0 9px}.world-builder-heading-thumb{height:34px;overflow:hidden;padding:0;width:46px}.world-builder-heading-thumb img{display:block;height:100%;object-fit:contain;width:100%}.world-builder-image-loading,.world-builder-image-load-error{align-items:center;color:var(--muted);display:flex;font-size:.72rem;font-weight:850;height:100%;justify-content:center;line-height:1.2;min-height:48px;padding:8px;text-align:center;width:100%}.world-builder-image-load-error{color:#a83232}.world-builder-heading-image-button:hover,.world-builder-heading-image-button:focus-visible,.world-builder-heading-thumb:hover,.world-builder-heading-thumb:focus-visible{border-color:#1c8a848c;outline:none}.world-builder-markdown p{margin:8px 0;line-height:1.62}.world-builder-markdown strong{font-weight:800}.world-builder-markdown em{font-style:italic}.world-builder-markdown code{border:1px solid rgba(28,138,132,.18);border-radius:5px;background:#1c8a8414;font:.9em/1.35 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;padding:.05em .28em}.world-builder-wiki-link{display:inline;border:0;border-radius:0;background:transparent;color:#2563eb;cursor:pointer;font:inherit;font-weight:750;padding:0;text-align:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}[data-theme=dark] .world-builder-wiki-link{color:#93c5fd}.world-builder-wiki-link:hover,.world-builder-wiki-link:focus-visible{color:#1d4ed8;outline:none;text-decoration-thickness:2px}[data-theme=dark] .world-builder-wiki-link:hover,[data-theme=dark] .world-builder-wiki-link:focus-visible{color:#bfdbfe}.world-builder-md-table-wrap{max-width:100%;overflow-x:auto;margin:14px 0;border:1px solid rgba(28,138,132,.16);border-radius:8px}.world-builder-md-table{width:100%;min-width:680px;border-collapse:collapse;background:var(--panel)}.world-builder-md-table th,.world-builder-md-table td{border-bottom:1px solid rgba(28,138,132,.13);padding:9px 10px;text-align:left;vertical-align:top;line-height:1.45}.world-builder-md-table th{background:#1c8a8417;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.world-builder-md-table tr:last-child td{border-bottom:0}.world-builder-md-list-item{position:relative;padding-left:18px}.world-builder-md-list-item:before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;border-radius:50%;background:#1c8a84d9}.world-builder-md-gap{height:8px}.world-builder-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1f2937d6;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:80}.world-builder-image-tool,.world-builder-image-viewer{background:var(--card);border:1px solid rgba(28,138,132,.22);border-radius:8px;box-shadow:0 24px 70px #02061747;color:var(--text);max-height:calc(100vh - 48px);overflow:auto;padding:18px;width:min(1080px,calc(100vw - 48px))}.world-builder-image-tool>header,.world-builder-image-viewer>header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.world-builder-image-tool header p,.world-builder-image-viewer header p{color:var(--muted);font-size:.8rem;font-weight:900;margin:0 0 4px}.world-builder-image-tool header h2,.world-builder-image-viewer header h2{margin:0 0 4px}.world-builder-image-tool header small{color:var(--muted)}.world-builder-image-tool header button,.world-builder-image-viewer header button,.world-builder-image-tool-row button{border:1px solid rgba(28,138,132,.24);border-radius:7px;background:var(--panel);color:var(--text);cursor:pointer;font-weight:850;min-height:34px;padding:0 12px}.world-builder-image-tool-row button:disabled{cursor:not-allowed;opacity:.55}.world-builder-image-tool-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}.world-builder-image-tool textarea{background:var(--panel);border:1px solid rgba(28,138,132,.18);border-radius:8px;color:var(--text);font:.86rem/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;margin-top:10px;padding:12px;resize:vertical;width:100%}.world-builder-image-tool-row{display:flex;flex-wrap:wrap;gap:8px}.world-builder-paste-zone{align-items:center;background:var(--panel);border:1px dashed rgba(28,138,132,.42);border-radius:8px;color:var(--muted);display:flex;font-weight:850;justify-content:center;margin-bottom:10px;max-height:min(58vh,620px);min-height:220px;overflow:hidden;padding:12px;text-align:center}.world-builder-paste-zone:focus-visible{border-color:#1c8a84bf;outline:none}.world-builder-paste-zone img{display:block;height:auto;max-height:calc(min(58vh,620px) - 24px);max-width:100%;object-fit:contain;width:auto}.world-builder-image-meta{color:var(--muted);font-size:.78rem;font-weight:800;margin:-2px 0 10px}.world-builder-image-status{color:var(--muted);font-size:.82rem;font-weight:850;margin:8px 0 0}.world-builder-image-error{color:#b91c1c;font-size:.82rem;font-weight:850;margin:8px 0 0}.world-builder-image-viewer{width:min(1120px,calc(100vw - 48px))}.world-builder-image-viewer img{background:var(--panel);border-radius:8px;display:block;height:auto;margin:0 auto;max-height:calc(100vh - 170px);max-width:100%;object-fit:contain;width:auto}.world-builder-ordered-item{align-items:baseline;cursor:grab;display:flex;gap:8px;padding:3px 0}.world-builder-ordered-item.drag-over{border-top:2px solid var(--accent, #4a9eff)}.world-builder-ordered-item.dragging{opacity:.4}.world-builder-drag-handle{color:var(--muted, #888);flex-shrink:0;font-size:11px;opacity:0;transition:opacity .1s;-webkit-user-select:none;user-select:none}.world-builder-ordered-item:hover .world-builder-drag-handle{opacity:1}.world-builder-ordered-number{color:var(--muted, #888);flex-shrink:0;font-size:13px;min-width:24px;text-align:right}.world-builder-ordered-content{flex:1;min-width:0}.world-builder-save-row{align-items:center;border-bottom:1px solid var(--border, #333);display:flex;gap:12px;margin-bottom:12px;padding-bottom:12px}.world-builder-save-btn{background:var(--accent, #4a9eff);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:5px 14px}.world-builder-save-btn:disabled{cursor:default;opacity:.6}.world-builder-save-btn:hover:not(:disabled){opacity:.85}.world-builder-save-discard{background:none;border:none;color:var(--muted, #888);cursor:pointer;font-size:12px;padding:0}.world-builder-save-discard:hover{color:var(--text, #fff)}.world-builder-save-status{font-size:12px;color:var(--muted, #888)}.world-builder-save-error{color:var(--error, #e05)}.world-builder-source-row{align-items:stretch;display:flex;gap:0}.world-builder-source-row .world-builder-node-button{flex:1;min-width:0}.world-builder-reorder-col{display:flex;flex-direction:column;flex-shrink:0}.world-builder-reorder-btn{background:none;border:none;border-radius:0;color:var(--muted, #888);cursor:pointer;font-size:10px;line-height:1;opacity:0;padding:0 4px;transition:opacity .1s,color .1s;width:20px}.world-builder-source-row:hover .world-builder-reorder-btn,.world-builder-source-row:focus-within .world-builder-reorder-btn{opacity:1}.world-builder-reorder-btn:hover:not(:disabled){color:var(--text, #fff)}.world-builder-reorder-btn:disabled{cursor:default;opacity:0}@media(max-width:980px){.world-builder-header,.world-builder-toolbar{align-items:stretch;flex-direction:column}.world-builder-source{text-align:left}.world-builder-summary,.world-builder-layout,.world-builder-relations,.world-builder-section-grid{grid-template-columns:1fr}.world-builder-node-list{max-height:360px}.world-builder-md-heading{align-items:flex-start;flex-direction:column}.world-builder-image-tool-grid{grid-template-columns:1fr}}.dev-issues{display:flex;flex-direction:column;gap:18px;max-width:860px}.dev-issues-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.dev-issues-title{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.55rem;font-weight:900;color:var(--ink)}.dev-issues-sub{margin:4px 0 0;font-size:.86rem;color:var(--muted)}.dev-issues-toggle{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:var(--muted);cursor:pointer;white-space:nowrap}.dev-issues-error{border:1px solid rgba(217,72,50,.4);border-radius:12px;padding:10px 14px;background:var(--surface-pop);color:var(--danger);font-size:.88rem}.dev-issues-empty{border:1px dashed var(--border);border-radius:14px;padding:22px;text-align:center;color:var(--muted);font-size:.92rem}.dev-issue-focus{position:relative;border:1px solid var(--border);border-radius:18px;padding:22px 24px 18px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.dev-issue-focus:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}.dev-issue-focus.is-doing:before{background:var(--accent-2)}.dev-issue-focus.is-blocked:before{background:var(--danger)}.dev-issue-focus-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.dev-issue-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}.dev-issue-focus.is-doing .dev-issue-eyebrow{color:var(--accent-2)}.dev-issue-focus.is-blocked .dev-issue-eyebrow{color:var(--danger)}.dev-issue-focus-chips{display:inline-flex;gap:6px}.dev-issue-focus-chips .dev-issue-chip{min-width:0}.dev-issue-focus-title{margin:0 0 12px;font-family:Fraunces,Georgia,serif;font-size:1.62rem;line-height:1.22;font-weight:800;color:var(--ink)}.dev-issue-focus-body{margin:0 0 12px;font-size:.98rem;line-height:1.6;color:var(--ink)}.dev-issue-focus-body .doc-md,.dev-issue-row-body .doc-md{font-size:inherit}.dev-issue-focus-body .doc-md-p:last-child,.dev-issue-row-body .doc-md-p:last-child,.dev-issue-focus-body .doc-md-list:last-child,.dev-issue-row-body .doc-md-list:last-child,.dev-issue-focus-body .doc-md-pre:last-child,.dev-issue-row-body .doc-md-pre:last-child{margin-bottom:0}.dev-issue-focus-body .doc-md-pre,.dev-issue-row-body .doc-md-pre{margin-bottom:12px}.dev-issue-focus-body .doc-md-li,.dev-issue-row-body .doc-md-li{margin-bottom:9px}.dev-issue-focus-ref{margin:0 0 16px;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.78rem;color:var(--muted);word-break:break-word}.dev-issue-focus-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:14px;border-top:1px solid var(--border)}.dev-issue-focus-spacer{flex:1 1 auto}.dev-issue-chip{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.dev-issue-chip-stream{min-width:68px;border:1px solid var(--border);background:var(--surface-pop);color:var(--text-warm)}.dev-issue-chip-stream.is-lx{color:var(--accent-2);border-color:#1c8a8466}.dev-issue-chip-stream.is-deploy{color:var(--accent);border-color:#ff6b4a6b}.dev-issue-chip-stream.is-app{color:var(--accent-3);border-color:#7f3cff5c}.dev-issue-chip-stream.is-radar{color:var(--text-gold);border-color:#8b4b0057}.dev-issue-chip-priority{min-width:34px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace}.dev-issue-chip-priority.is-p0{border-color:#d9483280;color:var(--danger)}.dev-issue-queue-heading{margin:0 0 8px;font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.dev-issue-queue-count{margin-left:6px;opacity:.7}.dev-issue-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.dev-issue-row{border-radius:10px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.dev-issue-row:hover{background:var(--surface-pop)}.dev-issue-row.is-expanded{border-color:var(--border);background:var(--surface-pop)}.dev-issue-row.is-blocked .dev-issue-row-title{text-decoration:line-through;opacity:.6}.dev-issue-row.is-done .dev-issue-row-title{opacity:.5}.dev-issue-row-main{display:flex;align-items:center;gap:4px;padding:2px 8px 2px 2px}.dev-issue-promote{flex:0 0 auto;width:26px;height:26px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-size:.9rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease}.dev-issue-row:hover .dev-issue-promote,.dev-issue-row.is-expanded .dev-issue-promote{opacity:1}.dev-issue-promote:hover{border-color:var(--button-border-strong);color:var(--accent-2)}.dev-issue-row-open{flex:1 1 auto;display:flex;align-items:center;gap:10px;min-width:0;padding:8px 4px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.dev-issue-row-open:focus{outline:none}.dev-issue-row-open:focus-visible{outline:2px solid var(--accent-2);outline-offset:-2px;border-radius:8px}.dev-issue-row-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;color:var(--ink)}.dev-issue-row-age{flex:0 0 auto;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;color:var(--muted)}.dev-issue-row-detail{padding:0 12px 12px 32px}.dev-issue-row-body{margin:0 0 10px;white-space:pre-wrap;font-size:.9rem;line-height:1.55;color:var(--ink);opacity:.88}.dev-issue-row-actions{display:flex;flex-wrap:wrap;gap:8px}.dev-issue-btn{padding:7px 14px;border:1px solid var(--border);border-radius:10px;background:var(--button-bg);color:var(--ink);font-size:.85rem;font-weight:700;cursor:pointer;transition:border-color .12s ease,transform .12s ease}.dev-issue-btn:hover:not(:disabled){border-color:var(--button-border-strong);transform:translateY(-1px)}.dev-issue-btn:disabled{opacity:.5;cursor:default}.dev-issue-btn.is-primary{border-color:transparent;background:linear-gradient(135deg,var(--accent-2),rgba(28,138,132,.82));color:#fff}.dev-issue-btn.is-done{border-color:#138a3d6b;color:#138a3d}.dev-issue-btn.is-quiet{border-color:transparent;background:transparent;color:var(--muted);font-weight:600}.dev-issue-btn.is-quiet:hover:not(:disabled){color:var(--ink)}.dev-issue-edit{display:flex;flex-direction:column;gap:10px}.dev-issue-edit-title,.dev-issue-edit-body,.dev-issue-edit-ref,.dev-issue-add-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-inset);color:var(--ink);font:inherit}.dev-issue-edit-title{font-family:Fraunces,Georgia,serif;font-size:1.24rem;font-weight:800}.dev-issue-edit-body{resize:vertical;line-height:1.55}.dev-issue-edit-ref{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.8rem}.dev-issue-edit-row{display:flex;flex-wrap:wrap;gap:8px}.dev-issue-edit-row select{padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-inset);color:var(--ink);font:inherit;font-size:.85rem}.dev-issue-add{display:flex;gap:8px;align-items:center}.dev-issue-add-input::placeholder{color:var(--muted);opacity:.75}.dev-issue-add-input:focus,.dev-issue-edit-title:focus,.dev-issue-edit-body:focus,.dev-issue-edit-ref:focus{outline:none;border-color:var(--button-border-strong)}.dev-issue-add-hint{margin:-8px 0 0;font-size:.75rem;color:var(--muted)}.dev-issue-add-hint code{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem}@media(max-width:620px){.dev-issue-focus{padding:18px 16px 14px}.dev-issue-focus-title{font-size:1.32rem}.dev-issue-row-detail{padding-left:12px}}.dev-issues-header-right{display:flex;align-items:flex-end;gap:18px}.dev-issues-budget{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.dev-issues-budget-value{font-family:Fraunces,Georgia,serif;font-size:1.5rem;font-weight:900;color:var(--ink);font-variant-numeric:tabular-nums}.dev-issues-budget-label{margin-top:3px;font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.dev-issues-filters{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.dev-issue-filter{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .12s ease,color .12s ease,background .12s ease}.dev-issue-filter:hover{border-color:var(--accent-2);color:var(--ink)}.dev-issue-filter.is-on{border-color:#1c8a848c;background:var(--surface-pop);color:var(--accent-2)}.dev-issue-filter-count{padding:0 6px;border-radius:999px;background:var(--surface-pop);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;font-variant-numeric:tabular-nums}.dev-issue-filter.is-on .dev-issue-filter-count{background:#1c8a8429}.dev-issue-chip-time{min-width:40px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:.02em}.dev-issue-chip-time.is-quick{border-color:#1c8a8473;background:#1c8a841a;color:var(--accent-2)}.dev-issue-edit-estimate{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted)}.dev-issue-edit-estimate input{width:72px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums}.dev-issue-doclink{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border:0;background:none;color:var(--accent-2);font:inherit;font-size:.78rem;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}.dev-issue-doclink:hover{color:var(--accent)}.dev-issue-doclink-icon{opacity:.7;text-decoration:none}.dev-issue-ref-detail{margin-left:8px;color:var(--muted)}.dev-doc-panel{position:fixed;inset:0 0 0 auto;z-index:40;display:flex;flex-direction:column;width:min(620px,94vw);border-left:1px solid var(--border);background:var(--panel);box-shadow:-18px 0 48px #0000002e}@media(min-width:1180px){.dev-issues.has-doc{padding-right:min(640px,46vw);max-width:none}}.dev-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid var(--border)}.dev-doc-head-text{min-width:0}.dev-doc-path{margin:0;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.8rem;font-weight:700;color:var(--ink);word-break:break-word}.dev-doc-detail{margin:4px 0 0;font-size:.78rem;color:var(--accent-2)}.dev-doc-body{flex:1 1 auto;overflow-y:auto;padding:18px 22px 40px}.doc-md{font-size:.9rem;line-height:1.62;color:var(--ink)}.doc-md-h{margin:22px 0 8px;font-family:Fraunces,Georgia,serif;font-weight:800;line-height:1.25;color:var(--ink)}.doc-md-h:first-child{margin-top:0}.doc-md-h1{font-size:1.3rem}.doc-md-h2{font-size:1.08rem;padding-bottom:6px;border-bottom:1px solid var(--border)}.doc-md-h3{font-size:.98rem}.doc-md-p{margin:0 0 12px}.doc-md-quote{margin:0 0 14px;padding:10px 14px;border-left:3px solid var(--accent-2);border-radius:0 10px 10px 0;background:var(--surface-pop);font-size:.85rem;color:var(--muted)}.doc-md-list{margin:0 0 14px;padding:0;list-style:none}.doc-md-li{position:relative;display:flex;gap:8px;margin-bottom:7px;padding-left:14px}.doc-md-li:not(.is-task):before{content:"·";position:absolute;left:2px;font-weight:800;color:var(--muted)}.doc-md-li.is-task{padding-left:0}.doc-md-box{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-top:4px;border:1px solid var(--border);border-radius:4px;font-size:.66rem;font-weight:900;color:var(--accent-2)}.doc-md-li.is-checked .doc-md-box{border-color:#1c8a8480;background:#1c8a8424}.doc-md-li.is-checked>span:last-child{color:var(--muted)}.doc-md-pre{margin:0 0 14px;padding:12px 14px;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface-pop)}.doc-md-pre code{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.79rem;line-height:1.55;color:var(--ink);white-space:pre}.doc-md-code{padding:1px 5px;border-radius:5px;background:var(--surface-pop);font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.82em}.doc-md-link{color:var(--accent-2);text-underline-offset:2px}.doc-md-ref{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.82em;color:var(--muted)}.doc-md-rule{margin:18px 0;border:0;border-top:1px solid var(--border)}.doc-md-table-wrap{margin:0 0 14px;overflow-x:auto}.doc-md-table{width:100%;border-collapse:collapse;font-size:.82rem}.doc-md-table th,.doc-md-table td{padding:7px 10px;border:1px solid var(--border);text-align:left;vertical-align:top}.doc-md-table th{background:var(--surface-pop);font-weight:800}@media(max-width:720px){.dev-issues-header-right{flex-direction:column;align-items:flex-end;gap:10px}}.nav-issues-link{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:7px 12px;border:1px solid rgba(226,232,240,.22);border-radius:9px;background:#e2e8f00f;color:#e2e8f0db;font-size:.78rem;font-weight:900;letter-spacing:.02em;text-decoration:none;white-space:nowrap;transition:border-color .12s ease,background .12s ease,color .12s ease}.nav-issues-link:hover{border-color:#e2e8f073;background:#e2e8f021;color:#f8fafc}.nav-issues-link.active{border-color:#38bda899;background:#38bda829;color:#f0fdfa}.nav-issues-icon{font-size:.9rem;opacity:.8}@media(max-width:900px){.nav-issues-label{display:none}.nav-issues-link{padding:7px 9px}}.doc-md-li.is-numbered{padding-left:0}.doc-md-li.is-numbered:before{content:none}.doc-md-num{flex:0 0 auto;min-width:1.6em;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.82em;font-weight:800;color:var(--accent-2);font-variant-numeric:tabular-nums}.dev-issues-stats{display:flex;flex-wrap:wrap;align-items:baseline;gap:18px;margin-top:8px}.dev-issues-stat{display:inline-flex;align-items:baseline;gap:6px}.dev-issues-stat-value{font-family:Fraunces,Georgia,serif;font-size:1.45rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.dev-issues-stat-label{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.dev-issues-stat.is-open .dev-issues-stat-value{color:var(--accent)}.dev-issues-stat.is-doing .dev-issues-stat-value{color:var(--accent-2)}.dev-issues-stat.is-blocked .dev-issues-stat-value{color:var(--danger)}.dev-issues-stat.is-done .dev-issues-stat-value{color:var(--stat-done)}.dev-issues-stat.is-open .dev-issues-stat-label{color:var(--accent);opacity:.85}.dev-issues-stat.is-done .dev-issues-stat-label{color:var(--stat-done);opacity:.85}.dev-issues-stat.is-zero .dev-issues-stat-value,.dev-issues-stat.is-zero .dev-issues-stat-label{color:var(--muted);opacity:.45}.dev-issues-tracks{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:14px;border-bottom:1px solid var(--border)}.dev-issues-track{display:inline-flex;align-items:baseline;gap:7px;padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;transition:border-color .12s ease,background .12s ease,color .12s ease}.dev-issues-track:hover{border-color:var(--accent-2);color:var(--ink)}.dev-issues-track-label{font-size:.8rem;font-weight:800;letter-spacing:.02em}.dev-issues-track-count{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.74rem;font-weight:800;font-variant-numeric:tabular-nums}.dev-issues-track-time{font-size:.68rem;font-variant-numeric:tabular-nums;opacity:.7}.dev-issues-track.is-on{background:var(--surface-pop);border-color:var(--ink);color:var(--ink)}.dev-issues-track.is-deploy.is-on{border-color:var(--accent);color:var(--accent)}.dev-issues-track.is-lx.is-on{border-color:var(--accent-2);color:var(--accent-2)}.dev-issues-track.is-app.is-on{border-color:var(--accent-3);color:var(--accent-3)}.dev-issues-track.is-radar.is-on{border-color:var(--text-gold);color:var(--text-gold)}.dev-issues-track.is-repo.is-on{border-color:var(--ink);color:var(--ink)}@media(max-width:720px){.dev-issues-track{padding:6px 10px}.dev-issues-track-time{display:none}}.trainer-type-picker{display:flex;flex-wrap:wrap;gap:6px;max-width:860px;margin:0 auto 4px;padding:14px 18px 0}.trainer-type-chip{display:inline-flex;align-items:baseline;gap:7px;padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer;white-space:nowrap;transition:border-color .12s ease,background .12s ease,color .12s ease}.trainer-type-chip:hover:not(:disabled){border-color:var(--accent-2);color:var(--ink)}.trainer-type-chip.is-on{border-color:var(--accent-2);background:var(--surface-pop);color:var(--accent-2)}.trainer-type-chip:disabled{opacity:.4;cursor:default}.trainer-type-count{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.74rem;font-variant-numeric:tabular-nums}.trainer-type-hint{max-width:860px;margin:0 auto;padding:0 18px;font-size:.78rem;color:var(--muted)}@media(max-width:720px){.trainer-type-picker{padding:10px 12px 0;gap:5px}.trainer-type-chip{padding:6px 10px;font-size:.75rem}.trainer-type-hint{padding:0 12px}}.skill-training-size{display:inline-flex;align-items:center;gap:4px}.skill-training-size button{display:inline-flex;align-items:baseline;min-width:36px;min-height:36px;justify-content:center;padding:4px 8px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-weight:800;cursor:pointer}.skill-training-size button:first-child{font-size:.78rem}.skill-training-size button:nth-child(2){font-size:1rem}.skill-training-size button span{font-size:.7em}.skill-training-size button:hover:not(:disabled){border-color:var(--accent-2);color:var(--ink)}.skill-training-size button:disabled{opacity:.35;cursor:default}.skill-training-size button.is-reset{font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--accent-2);border-color:var(--accent-2)}@media(min-width:760px){.kana-card-shell.skill-training-card{max-width:min(920px,100%)}}.dev-shot-drop{margin-top:18px;padding:14px 16px;border:1px dashed var(--border);border-radius:14px}.dev-shot-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dev-shot-file{font-size:.8rem;color:var(--muted);flex:1 1 200px}.dev-shot-label{flex:1 1 200px;min-width:0;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--ink);font:inherit;font-size:.84rem}.dev-shot-hint{margin:8px 0 0;font-size:.76rem;color:var(--muted)}.dev-shot-list{margin:10px 0 0;padding:0;list-style:none}.dev-shot-list li{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:.74rem;color:var(--muted)}.dev-shot-list code{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;color:var(--accent-2);word-break:break-all}@media(max-width:1220px){.skill-training-next3{position:static;width:100%;display:flex;align-items:center;gap:10px;margin-bottom:2px}.skill-training-next3-title{text-align:left;white-space:nowrap}.skill-training-next3-list{flex:1 1 auto;grid-auto-flow:column;grid-auto-columns:1fr}}@media(max-width:640px){.skill-training-page{gap:12px;overflow-x:clip}.kana-card-shell.skill-training-card{padding:0 10px;margin:12px auto;min-height:0;gap:14px}.kr-star-panel,.kr-level-badge{position:static;flex-direction:row;align-items:center;justify-content:center;width:100%;min-width:0;gap:8px}.kr-star-grid{grid-template-columns:repeat(6,auto);justify-content:center}.kana-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kana-option-btn{padding:12px 8px;font-size:.92rem;overflow-wrap:anywhere}.skill-training-topbar,.kana-card-header{flex-wrap:wrap;gap:8px}.kana-mode-toggle{margin-left:0}.skill-training-stats{flex-wrap:wrap;gap:6px;font-size:.78rem}.skill-training-next3-title{font-size:.66rem}.skill-training-next3-list>span{padding:5px 6px;font-size:.74rem}.trainer-type-picker{padding:8px 10px 0}}@media(max-width:640px){.kr-star-panel{display:none}.kr-level-badge{gap:10px;padding:0 2px;font-size:.72rem}.kr-level-badge .kr-level-label{font-size:.82rem;white-space:nowrap}.kr-level-badge .kr-level-bar,.kr-level-badge progress,.kr-level-badge .kr-level-track{flex:1 1 auto;min-width:0;height:5px;border-radius:999px}.kr-level-badge .kr-level-count,.kr-level-badge small{white-space:nowrap;opacity:.65}.skill-training-next3{gap:8px;opacity:.75}.skill-training-next3-list>span{border-color:transparent;background:var(--surface-pop);padding:4px 6px;font-size:.72rem}.kana-card-header{justify-content:center;gap:6px}.kana-mode-toggle{gap:3px}.kana-mode-toggle button,.kana-card-header>button{padding:6px 10px;font-size:.8rem;border-radius:8px}.skill-training-main-fit{margin:4px 0}.skill-training-prompt-label{font-size:.74rem;letter-spacing:.14em}.skill-training-due{font-size:.72rem;opacity:.6}.kana-options{grid-auto-rows:1fr;gap:9px}.kana-option-btn{display:flex;align-items:center;justify-content:center;min-height:58px;padding:10px;font-size:.88rem;line-height:1.28;text-align:center;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.kana-card-shell.skill-training-card{gap:12px}}@media(max-width:640px){.skill-training-topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px 10px;padding:0 2px}.skill-training-back{grid-column:1;padding:8px 12px;font-size:.82rem}.skill-training-size{grid-column:3}.skill-training-size button{min-width:32px;min-height:32px;padding:3px 6px}.skill-training-stats{grid-column:1 / -1;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;font-size:.72rem}.skill-training-stats>span{padding:3px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}.skill-training-stats>span:first-child{flex:1 1 auto;min-width:0}.skill-training-next3{display:none}.kana-card-header{flex-wrap:nowrap;justify-content:center;gap:5px;overflow-x:auto;scrollbar-width:none}.kana-card-header::-webkit-scrollbar{display:none}.kana-mode-toggle button,.kana-card-header>button{padding:6px 9px;font-size:.75rem;white-space:nowrap;flex:0 0 auto}.kr-level-badge{gap:8px;margin-top:-2px;font-size:.68rem;opacity:.8}}.kana-header-rail{position:relative;width:100%}.kana-header-arrow{position:absolute;top:50%;z-index:3;display:none;transform:translateY(-50%);width:22px;height:30px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.62rem;line-height:1;cursor:pointer}.kana-header-arrow.is-left{left:-2px}.kana-header-arrow.is-right{right:-2px}@media(max-width:640px){.kana-header-rail.can-left .kana-header-arrow.is-left,.kana-header-rail.can-right .kana-header-arrow.is-right{display:block}.kana-header-rail.can-left:before,.kana-header-rail.can-right:after{content:"";position:absolute;top:0;bottom:0;width:26px;z-index:2;pointer-events:none}.kana-header-rail.can-left:before{left:0;background:linear-gradient(to right,var(--panel) 30%,transparent)}.kana-header-rail.can-right:after{right:0;background:linear-gradient(to left,var(--panel) 30%,transparent)}.kana-card-header{scroll-padding-inline:22px;padding:0 20px}.kana-card-header>:nth-child(4){order:1}.kana-card-header>:nth-child(3){order:2}.kana-card-header>:nth-child(1){order:3}.kana-card-header>:nth-child(2){order:4}.kana-card-header>.kana-mode-toggle{margin-left:0!important}}@media(max-width:640px){.kana-card-header{justify-content:flex-start;padding-left:22px;padding-right:22px}}@media(max-width:640px){.navbar{grid-template-areas:"brand" "hud" "tabs";gap:10px;padding:10px 12px;border-radius:14px}.nav-brand{gap:9px}.nav-brand-mark{width:30px;height:30px;font-size:.95rem;border-radius:9px}.nav-brand-copy strong{font-size:1.02rem}.nav-brand-copy small{display:none}.nav-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.player-hud{order:3;border:0;background:transparent;padding:0}.player-hud-top{justify-content:flex-start;flex-wrap:wrap;gap:5px}.player-name,.player-name-static{width:auto;max-width:96px;font-size:.8rem}.player-hud .xp-bar,.player-hud progress{height:4px;border-radius:999px}.nav-issues-link{order:1}.theme-toggle{order:2;min-height:32px;padding:4px 10px}.theme-toggle-label{display:none}.nav-tabs{gap:2px;padding:3px;border-radius:10px;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab{padding:6px 9px;font-size:.74rem}}@media(max-width:640px){.dev-issues-tracks,.trainer-type-picker{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:8px 12px 2px;-webkit-mask-image:linear-gradient(to right,transparent,#000 12px,#000 calc(100% - 12px),transparent);mask-image:linear-gradient(to right,transparent,#000 12px,#000 calc(100% - 12px),transparent)}.dev-issues-tracks::-webkit-scrollbar,.trainer-type-picker::-webkit-scrollbar{display:none}.trainer-type-chip{flex:0 0 auto}.trainer-type-hint{margin-top:2px;padding:0 12px 2px;font-size:.72rem;opacity:.75}}
