:root{--bg-void: #0a0814;--bg-panel: #16132a;--bg-panel-hover: #1f1a38;--bg-combat: #120e20;--ink: #f2e6cc;--ink-dim: #c4a882;--ink-faint: #9a8a70;--gold: #d4b578;--gold-bright: #ecd398;--gold-glow: rgba(212, 181, 120, .45);--violet: #8068c8;--violet-glow: rgba(128, 104, 200, .35);--blood: #8c3030;--blood-glow: rgba(140, 48, 48, .4);--line: #342a4c;--line-light: #483d66;--ok: #4a9c70;--ok-bright: #68cc92;--danger: #d04848;--warning: #d0a048;--sanity-high: #68cc92;--sanity-mid: #d0a048;--sanity-low: #d04848;--lucidity-color: #8cc8e8;--debt-color: #c46890;--rep-color: #d4b578;--shards-color: #a88ee8;--faction-cats: #8cc898;--faction-sailors: #6e9cc8;--faction-temple: #c88eaa;--font-body: "Georgia", "Times New Roman", serif;--font-ui: "Segoe UI", system-ui, -apple-system, sans-serif;--fs-xs: 13px;--fs-sm: 15px;--fs-base: 17px;--fs-md: 20px;--fs-lg: 26px;--fs-xl: 34px;--fs-2xl: 44px;--fs-hero: 64px;--lh-tight: 1.35;--lh-normal: 1.7;--lh-loose: 1.9;--sp-xs: 6px;--sp-sm: 10px;--sp-md: 16px;--sp-lg: 22px;--sp-xl: 32px;--sp-2xl: 44px;--sp-3xl: 60px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-panel: 0 4px 24px rgba(0, 0, 0, .5), 0 1px 4px rgba(0, 0, 0, .3);--shadow-btn: 0 2px 10px rgba(0, 0, 0, .35);--glow-gold: 0 0 18px var(--gold-glow);--glow-blood: 0 0 18px var(--blood-glow);--glow-violet: 0 0 18px var(--violet-glow);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .14s;--dur-normal: .28s;--dur-slow: .45s;--dur-dramatic: .85s}*,*:before,*:after{box-sizing:border-box;margin:0}*:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--radius-sm)}html{font-size:var(--fs-base);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background:radial-gradient(ellipse at 20% 15%,#221a3a,var(--bg-void) 60%);color:var(--ink);font-family:var(--font-body);line-height:var(--lh-normal);overflow-x:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-void)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--line-light)}#app{--scene-bg-image: url(/assets/images/backgrounds/bg_kadath_distant_spires.jpg);position:relative;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;width:100%;isolation:isolate;transition:transform 80ms ease;background-image:var(--scene-bg-image);background-size:cover;background-position:center;background-attachment:fixed}#app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0502088c,#05020866 40%,#050208b3);pointer-events:none;z-index:0}#app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 10% 10%,rgba(200,169,110,.07),transparent 44%),radial-gradient(circle at 80% 20%,rgba(122,37,37,.12),transparent 42%),linear-gradient(180deg,transparent 60%,rgba(4,4,8,.5));z-index:0;pointer-events:none}.scene{display:flex;flex-direction:column;gap:var(--sp-xl);min-height:100vh;min-height:100dvh;width:100%;padding:64px 16px 200px;position:relative;z-index:1;background:none!important}.scene-enter{animation:scene-in var(--dur-slow) var(--ease-out-expo)}@keyframes scene-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.start-screen,.summary-screen{align-items:center;justify-content:center;text-align:center;background:linear-gradient(180deg,#0e0c1a99,#08070ebf);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.scene-title{letter-spacing:.1em;color:var(--gold);font-size:var(--fs-xl);text-shadow:0 0 22px var(--gold-glow)}.scene-header{display:flex;align-items:center;gap:var(--sp-xl)}.scene-npc{width:88px;height:88px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 10px var(--gold-glow));border-radius:var(--radius-md);flex-shrink:0}.scene-text{line-height:var(--lh-loose);max-width:860px;color:var(--ink);font-size:var(--fs-md);word-break:break-word;overflow-wrap:break-word}.scene-log{color:var(--ink-dim);font-size:var(--fs-sm);min-height:24px;margin-top:var(--sp-md);font-style:italic;padding:var(--sp-sm) var(--sp-md);border-left:2px solid var(--line);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.choices{position:fixed;bottom:0;left:0;right:0;z-index:15;display:flex;flex-direction:column;gap:var(--sp-sm);padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(5,2,8,.95) 70%,transparent);max-height:55vh;max-height:55dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.choice-btn{position:relative;text-align:left;border:1px solid var(--line);background:#1a152dcc;color:var(--ink);padding:var(--sp-lg) var(--sp-xl);cursor:pointer;font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-normal);border-radius:var(--radius-md);word-break:break-word;overflow-wrap:break-word;transition:border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-normal),background var(--dur-fast)}.choice-btn:hover:not(:disabled):not(.choice-btn-blocked){border-color:var(--gold);background:var(--bg-panel-hover);transform:translate(6px);box-shadow:var(--glow-gold),inset 0 0 50px #d4b5780a}.choice-btn:active:not(:disabled):not(.choice-btn-blocked){transform:translate(4px) scale(.997)}.choice-btn-blocked{opacity:.42;border-color:#3a3050;background:#15111fa6;cursor:not-allowed}.choice-btn-blocked:hover{border-color:#3a3050;transform:none;box-shadow:none}.choice-reason{margin-top:calc(var(--sp-xs) * -1);margin-bottom:var(--sp-xs);color:#c4aac4;font-size:var(--fs-xs);line-height:var(--lh-tight);padding-left:var(--sp-xl)}.combat-overlay{border:1px solid var(--blood);background:linear-gradient(135deg,#120e1ef2,#37121259);border-radius:var(--radius-lg);padding:var(--sp-2xl);animation:combat-appear var(--dur-dramatic) var(--ease-out-expo)}@keyframes combat-appear{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.combat-enemy{display:flex;flex-direction:column;align-items:center;gap:var(--sp-lg);margin-bottom:var(--sp-2xl)}.combat-enemy h2{color:var(--blood);text-transform:uppercase;letter-spacing:.12em;font-size:var(--fs-xl);text-shadow:0 0 20px var(--blood-glow)}.combat-enemy .combat-desc{color:var(--ink-dim);font-size:var(--fs-base);font-style:italic}.enemy-sprite{width:180px;height:180px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 14px var(--blood-glow));animation:enemy-pulse 2.2s ease-in-out infinite}@keyframes enemy-pulse{0%,to{filter:drop-shadow(0 0 12px rgba(122,37,37,.5));transform:scale(1)}50%{filter:drop-shadow(0 0 22px rgba(122,37,37,.85));transform:scale(1.02)}}.combat-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-lg)}.combat-btn{display:flex;flex-direction:column;align-items:center;gap:var(--sp-sm);padding:var(--sp-lg) var(--sp-xl);border:1px solid var(--line);background:#161326e6;color:var(--ink);cursor:pointer;border-radius:var(--radius-md);font-family:var(--font-body);transition:border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-normal)}.combat-btn:hover{transform:translateY(-3px)}.combat-btn-label{font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-base)}.combat-btn-desc{font-size:var(--fs-sm);color:var(--ink-dim)}.combat-btn.attack-btn{border-color:var(--blood)}.combat-btn.attack-btn:hover{box-shadow:var(--glow-blood)}.combat-btn.defend-btn{border-color:var(--faction-sailors)}.combat-btn.defend-btn:hover{box-shadow:0 0 14px #5e8ab859}.combat-btn.focus-btn{border-color:var(--gold)}.combat-btn.focus-btn:hover{box-shadow:var(--glow-gold)}.combat-btn.ritual-btn{border-color:var(--violet)}.combat-btn.ritual-btn:hover{box-shadow:var(--glow-violet)}.combat-btn.ritual-weak{border-color:var(--sanity-low);opacity:.75}.combat-btn.ritual-weak:hover{box-shadow:0 0 8px var(--sanity-low)}.combat-round-badge{font-size:var(--fs-sm);color:var(--ink-dim);margin:var(--sp-xs) 0}.sidebar{display:none}.panel{border:1px solid var(--line);padding:var(--sp-lg);margin-bottom:var(--sp-lg);background:#141123e0;border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.panel h3{margin:0 0 var(--sp-md);color:var(--gold);font-size:var(--fs-base);text-transform:uppercase;letter-spacing:.1em}.stat-bar-group{display:flex;flex-direction:column;gap:var(--sp-sm)}.stat-row{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp-md);align-items:center;font-size:var(--fs-sm);color:var(--ink-dim)}.stat-row .stat-label{display:flex;align-items:center;gap:var(--sp-sm);min-width:90px}.stat-icon{width:22px;height:22px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.stat-bar{height:10px;background:#2c224099;border-radius:5px;overflow:hidden;min-width:70px}.stat-bar-fill{height:100%;border-radius:5px;background:var(--bar-color, var(--gold));transition:width .7s var(--ease-out-expo);box-shadow:0 0 8px var(--bar-color, var(--gold))}.stat-value{font-weight:700;color:var(--ink);text-align:right;min-width:32px;font-size:var(--fs-base);font-variant-numeric:tabular-nums}.stat-delta-pos{color:var(--ok-bright);font-size:var(--fs-xs);font-weight:700;animation:delta-pop .9s var(--ease-out-back) forwards}.stat-delta-neg{color:var(--danger);font-size:var(--fs-xs);font-weight:700;animation:delta-pop .9s var(--ease-out-back) forwards}@keyframes delta-pop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}.stats{list-style:none;padding:0;display:grid;gap:var(--sp-md)}.stats li{display:flex;justify-content:space-between;color:var(--ink-dim);font-size:var(--fs-sm)}.log{color:#d0c09a;font-size:var(--fs-sm);line-height:var(--lh-normal)}.toolbar{display:flex;gap:var(--sp-sm);flex-wrap:wrap;margin-bottom:var(--sp-md)}.toolbar button{border:1px solid var(--line);background:#19152ae6;color:var(--ink);padding:var(--sp-sm) var(--sp-lg);cursor:pointer;border-radius:var(--radius-md);font-family:var(--font-ui);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;transition:border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast)}.toolbar button:hover:not(:disabled){border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow-btn)}.advanced-panel{margin-top:var(--sp-md);border-top:1px solid var(--line);padding-top:var(--sp-md)}.advanced-panel summary,.compact-sidebar>summary{color:var(--ink-dim);cursor:pointer;margin-bottom:var(--sp-md);font-family:var(--font-ui);font-size:var(--fs-sm);-webkit-user-select:none;user-select:none;transition:color var(--dur-fast)}.advanced-panel summary:hover,.compact-sidebar>summary:hover{color:var(--gold)}.compact-sidebar{border:1px solid var(--line);background:#120e1ee6;padding:var(--sp-lg);border-radius:var(--radius-md)}.compact-sidebar .panel{margin-bottom:var(--sp-sm)}.compact-sidebar .panel:last-child{margin-bottom:0}.menu-hero{display:flex;flex-direction:column;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-xl)}.menu-npc{width:140px;height:140px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 20px var(--gold-glow));animation:npc-breathe 3s ease-in-out infinite}@keyframes npc-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.menu-title{font-size:var(--fs-hero);letter-spacing:.2em;color:var(--gold-bright);text-shadow:0 0 28px var(--gold-glow),0 0 56px rgba(212,181,120,.18);animation:title-glow 4s ease-in-out infinite}@keyframes title-glow{0%,to{text-shadow:0 0 28px var(--gold-glow),0 0 56px rgba(212,181,120,.18)}50%{text-shadow:0 0 38px var(--gold-glow),0 0 72px rgba(212,181,120,.28),0 0 110px rgba(212,181,120,.1)}}.menu-subtitle{color:var(--ink-dim);font-size:var(--fs-lg);letter-spacing:.14em;font-weight:400}.menu-version{color:var(--ink-faint);font-size:var(--fs-sm);font-family:var(--font-ui)}.difficulty-cards{display:flex;gap:var(--sp-xl);flex-wrap:wrap;justify-content:center}.difficulty-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--sp-md);width:240px;padding:var(--sp-2xl) var(--sp-xl);border:1px solid var(--line);background:#161326d9;color:var(--ink);cursor:pointer;border-radius:var(--radius-lg);font-family:var(--font-body);transition:border-color var(--dur-normal),transform var(--dur-normal),box-shadow var(--dur-normal)}.difficulty-card:hover{border-color:var(--gold);transform:translateY(-6px);box-shadow:var(--glow-gold),var(--shadow-panel)}.difficulty-card h3{color:var(--gold);margin:0;font-size:var(--fs-xl);letter-spacing:.08em}.difficulty-card p{color:var(--ink-dim);font-size:var(--fs-base);margin:0;text-align:center;line-height:var(--lh-normal)}.difficulty-tag{display:inline-block;padding:var(--sp-sm) var(--sp-md);border:1px solid var(--line-light);border-radius:var(--radius-md);font-family:var(--font-ui);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.summary-ending{font-size:var(--fs-2xl);color:var(--gold-bright);text-shadow:0 0 24px var(--gold-glow);animation:scene-in var(--dur-dramatic) var(--ease-out-expo)}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-lg);text-align:left;width:100%;max-width:540px}.summary-stat{display:flex;justify-content:space-between;padding:var(--sp-md) var(--sp-lg);border:1px solid var(--line);border-radius:var(--radius-md);background:#161326b3;font-size:var(--fs-base)}.summary-stat span{color:var(--ink-dim)}.summary-stat strong{color:var(--ink)}.toast-container{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:var(--sp-sm);pointer-events:none}.toast{padding:var(--sp-md) var(--sp-xl);border-radius:var(--radius-md);font-size:var(--fs-base);font-family:var(--font-ui);white-space:nowrap;max-width:90vw;animation:toast-in .35s var(--ease-out-back),toast-out .4s 2s ease-in forwards;pointer-events:auto}.toast-info{border:1px solid var(--ok);background:#112018f2;color:#b8f0ce}.toast-achievement{border:1px solid var(--gold);background:#282012f2;color:var(--gold-bright);text-shadow:0 0 8px var(--gold-glow)}.toast-danger{border:1px solid var(--danger);background:#280c0cf2;color:#f0b8b8}.toast-combat{border:1px solid var(--blood);background:#230a0af2;color:#d4a8a8}@keyframes toast-in{0%{opacity:0;transform:translateY(-14px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1}to{opacity:0;transform:translateY(-8px)}}.particle{position:absolute;border-radius:50%;pointer-events:none}@keyframes particle-float{0%{opacity:0;transform:translateY(0) translate(0)}8%{opacity:.7}85%{opacity:.2}to{opacity:0;transform:translateY(-100vh) translate(var(--drift, 20px))}}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);margin-bottom:var(--sp-md);font-size:var(--fs-sm);color:var(--ink-dim)}.settings-row:last-child{margin-bottom:0}.settings-row input[type=range]{width:100px;height:6px;accent-color:var(--gold);cursor:pointer}.settings-row button{padding:var(--sp-xs) var(--sp-sm);border:1px solid var(--line);background:#19152ae6;color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--fs-xs);transition:border-color var(--dur-fast)}.settings-row button:hover{border-color:var(--gold)}.fullscreen-btn{position:fixed;bottom:var(--sp-xl);right:var(--sp-xl);z-index:9998;display:none;align-items:center;justify-content:center;gap:var(--sp-sm);padding:var(--sp-md) var(--sp-xl);border:1px solid var(--line-light);background:#16132aeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-sm);letter-spacing:.06em;cursor:pointer;border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:border-color var(--dur-normal),transform var(--dur-fast),box-shadow var(--dur-normal),background var(--dur-fast)}.fullscreen-btn:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--glow-gold),var(--shadow-panel);background:#1e1934f2}.fullscreen-btn:active{transform:translateY(0) scale(.97)}.fullscreen-btn svg{width:20px;height:20px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.choice-btn:disabled,.toolbar button:disabled,.combat-btn:disabled{opacity:.45;cursor:not-allowed}.ui-frame-dialogue{position:relative}.ui-frame-dialogue:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-image:url(/assets/images/ui/ui_frame_dialogue.png) 12 stretch;border-width:12px;border-style:solid;pointer-events:none;opacity:.35}@media(max-width:960px){.scene-title{font-size:var(--fs-lg)}.scene-text{font-size:var(--fs-base)}.panel{margin-bottom:var(--sp-md)}.compact-sidebar{padding:var(--sp-md)}.toolbar button,.choice-btn{min-height:48px;font-size:var(--fs-base)}.combat-actions{grid-template-columns:1fr}.menu-title{font-size:var(--fs-2xl)}.difficulty-cards{flex-direction:column;align-items:center}.difficulty-card{width:100%;max-width:360px}.enemy-sprite{width:140px;height:140px}.summary-grid{grid-template-columns:1fr}}@media(max-width:480px){.scene-npc{width:64px;height:64px}.menu-npc{width:100px;height:100px}.stat-row .stat-label{min-width:72px;font-size:var(--fs-xs)}.stat-bar{min-width:50px;height:8px}.scene-title{font-size:18px;letter-spacing:.06em}.scene-text{font-size:14px;line-height:1.6}.choices{max-height:62dvh;max-height:62vh;padding:10px 10px calc(10px + env(safe-area-inset-bottom));gap:6px}.choice-btn{font-size:13px;padding:9px 12px;min-height:44px;line-height:1.45}.choice-reason{font-size:11px;padding-left:12px}.combat-overlay{padding:var(--sp-md)}.combat-enemy h2{font-size:18px;letter-spacing:.06em;word-break:break-word}.combat-enemy .combat-desc{font-size:13px}.enemy-sprite{width:100px;height:100px}.combat-btn{padding:var(--sp-sm) var(--sp-md)}.combat-btn-label{font-size:13px}.combat-btn-desc{font-size:11px}.menu-title{font-size:28px;letter-spacing:.1em}.menu-subtitle{font-size:15px;letter-spacing:.06em}.difficulty-card h3{font-size:18px}.difficulty-card p{font-size:13px}.summary-ending{font-size:26px}.summary-stat{font-size:13px}.toast{font-size:13px;white-space:normal;padding:var(--sp-sm) var(--sp-md)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0ms!important;animation-delay:0ms!important;transition-duration:0ms!important;scroll-behavior:auto!important}}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:9000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirm-modal{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-xl);max-width:380px;width:90%;box-shadow:0 8px 32px #0009}.confirm-modal p{color:var(--ink-mid);margin-bottom:var(--sp-lg);white-space:pre-wrap}.confirm-modal-actions{display:flex;gap:var(--sp-sm);justify-content:flex-end}.confirm-modal-ok{background:var(--sanity-low);color:#fff;border:none;border-radius:var(--radius-sm);padding:var(--sp-sm) var(--sp-lg);cursor:pointer;font-family:var(--font-body)}.confirm-modal-ok:hover{filter:brightness(1.15)}.confirm-modal-cancel{background:transparent;color:var(--ink-mid);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-sm) var(--sp-lg);cursor:pointer;font-family:var(--font-body)}.confirm-modal-cancel:hover{background:var(--bg-hover)}kbd{display:inline-block;padding:1px 5px;font-size:.7em;font-family:var(--font-mono, monospace);background:#ffffff1a;border:1px solid rgba(255,255,255,.25);border-bottom-width:2px;border-radius:3px;color:var(--ink-faint);vertical-align:middle;line-height:1.4;pointer-events:none}.endings-progress{display:flex;flex-direction:column;gap:var(--sp-xs);margin-top:var(--sp-md);padding:var(--sp-md);background:#ffffff0a;border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.endings-slots{display:flex;gap:var(--sp-xs);flex-wrap:wrap}.endings-slot{width:18px;height:18px;border:1px solid var(--border-subtle);border-radius:3px;opacity:.35}.endings-slot-known{background:var(--lucidity-color, #8fa8d4);border-color:var(--lucidity-color, #8fa8d4);opacity:1}.endings-count{font-size:var(--fs-xs);color:var(--ink-dim)}.summary-score{display:flex;justify-content:space-between;padding:var(--sp-sm) 0;border-top:1px solid var(--border-subtle);margin-top:var(--sp-sm)}.score-value{font-size:var(--fs-lg, 1.25rem);font-weight:700;color:var(--lucidity-color, #8fa8d4);font-family:var(--font-display)}.slot-row{display:flex;align-items:center;gap:var(--sp-xs);padding:var(--sp-xs) 0;border-bottom:1px solid rgba(255,255,255,.05)}.slot-label{flex:1;font-size:var(--fs-sm);color:var(--ink-dim)}.save-slot-btn{background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;font-size:var(--fs-sm);color:var(--ink-mid);transition:background var(--dur-fast)}.save-slot-btn:hover{background:var(--bg-hover)}.save-slot-btn.slot-empty{opacity:.4;cursor:not-allowed}.save-slot-btn.slot-empty:hover{background:transparent}.inv-use-btn{font-size:var(--fs-xs);padding:2px 8px;background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--ink-mid);cursor:pointer;vertical-align:middle;transition:background var(--dur-fast),color var(--dur-fast)}.inv-use-btn:hover{background:var(--lucidity-color, #8fa8d4);color:#000;border-color:var(--lucidity-color, #8fa8d4)}.combat-enemy-stats{font-size:var(--fs-xs);color:var(--ink-dim);margin:var(--sp-xs) 0;letter-spacing:.03em}.combat-enemy-stats strong{color:var(--ink-mid)}.stats-topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#050208d1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid rgba(200,169,110,.15);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex-wrap:nowrap}.stats-topbar::-webkit-scrollbar{display:none}.stat-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;background:#ffffff12;border:1px solid rgba(255,255,255,.12);font-size:12px;color:var(--ink, #efdfbe);white-space:nowrap;flex-shrink:0;cursor:default;transition:background .2s}.stat-pill:hover{background:#ffffff1f}.stat-pill img{width:14px;height:14px;opacity:.85;vertical-align:middle}.stat-pill.pill-sanity-low{border-color:var(--sanity-low, #d04848)}.stat-pill.pill-sanity-mid{border-color:var(--sanity-mid, #d0a048)}.stat-pill.pill-sanity-high{border-color:var(--sanity-high, #68cc92)}.stat-pill.pill-debt-high{border-color:var(--debt-color, #c46890);color:#e4884a}.bottom-sheet-trigger{position:fixed;bottom:16px;right:16px;z-index:25;width:44px;height:44px;border-radius:50%;background:#c8a96e26;border:1px solid rgba(200,169,110,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#c8a96e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s}.bottom-sheet-trigger:hover{background:#c8a96e47}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:30;opacity:0;pointer-events:none;transition:opacity .3s}.bottom-sheet-overlay.open{opacity:1;pointer-events:auto}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:31;background:#0c0814f7;border-top:1px solid rgba(200,169,110,.2);border-radius:20px 20px 0 0;max-height:85vh;max-height:85dvh;overflow-y:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1)}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-handle{width:40px;height:4px;background:#fff3;border-radius:2px;margin:0 auto 8px}.bottom-sheet-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(200,169,110,.25);background:#c8a96e14;color:#c8a96eb3;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.bottom-sheet-close:hover{background:#c8a96e33;color:#c8a96e}#app[data-phase=menu] .scene,#app[data-phase=summary] .scene{padding:24px 16px 32px;justify-content:flex-start;align-items:center;min-height:100vh;min-height:100dvh;overflow-y:auto}#app[data-phase=menu] .choices,#app[data-phase=summary] .choices{position:static;background:none;padding:0;max-height:none;overflow-y:visible}.choice-btn{min-height:48px;width:100%}@media(min-width:768px)and (max-width:1023px){.scene{padding:72px 24px 180px}}@media(min-width:1024px){#app{display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto;align-items:stretch;flex-direction:unset}.stats-topbar{display:none!important}.scene{padding:var(--sp-3xl) var(--sp-2xl);min-height:100vh;min-height:100dvh;background:none!important}#app[data-phase=menu] .scene,#app[data-phase=summary] .scene{padding:var(--sp-3xl) var(--sp-2xl);justify-content:unset;align-items:unset}.sidebar{display:flex;flex-direction:column;border-left:1px solid var(--line);background:linear-gradient(180deg,#130f22,#0a0812);padding:var(--sp-xl) var(--sp-lg);overflow-y:auto;max-height:100vh;max-height:100dvh;position:sticky;top:0}.choices{position:static;background:none;padding:0;max-height:none;overflow-y:visible;max-width:820px}.choice-btn{width:auto}.bottom-sheet-trigger,.bottom-sheet-overlay,.bottom-sheet{display:none!important}.fullscreen-btn{display:flex}.toast-container{top:var(--sp-lg)}}.vn-dialogue-box{position:relative;margin-top:auto;background:#08050fe0;border:1px solid rgba(200,169,110,.25);border-radius:12px;overflow:visible;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer}.vn-name-badge{position:absolute;top:-14px;left:20px;background:#c8a96e26;border:1px solid rgba(200,169,110,.4);border-radius:20px;padding:2px 14px;font-size:12px;font-weight:600;color:#c8a96e;letter-spacing:.05em;white-space:nowrap;font-family:var(--font-ui);pointer-events:none}.vn-inner{display:flex;align-items:flex-end;gap:0;padding:20px 16px 16px}.vn-inner--no-portrait{padding:20px 20px 16px}@media(prefers-reduced-motion:no-preference){.vn-portrait{animation:portrait-enter .4s var(--ease-out-expo)}@keyframes portrait-enter{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}}.vn-portrait{width:110px;height:110px;object-fit:contain;object-position:bottom;flex-shrink:0;image-rendering:pixelated;filter:drop-shadow(0 0 10px rgba(200,169,110,.22))}.vn-text-container{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding-left:12px}.vn-inner--no-portrait .vn-text-container{padding-left:0}.vn-scene-title{font-size:11px;font-weight:600;color:var(--gold, #c8a96e);letter-spacing:.08em;text-transform:uppercase;opacity:.8;margin:0;font-family:var(--font-ui)}.vn-scene-text{font-size:15px;line-height:1.65;color:var(--ink, #efdfbe);min-height:60px;margin:0;max-width:none}.vn-dialogue-box:after{content:"▼";position:absolute;bottom:8px;right:12px;font-size:9px;color:#c8a96e73;pointer-events:none}@media(prefers-reduced-motion:no-preference){.vn-dialogue-box:after{animation:vn-blink 1.4s step-end infinite}@keyframes vn-blink{0%,to{opacity:.45}50%{opacity:0}}}@media(min-width:1024px){.vn-portrait{width:130px;height:130px}.vn-scene-text{font-size:16px}}.combat-overlay{width:100%;display:flex;flex-direction:column;gap:0;background:#08050feb;border:1px solid rgba(180,60,60,.35);border-radius:12px;overflow:hidden;animation:combat-appear var(--dur-dramatic) var(--ease-out-expo)}.combat-enemy-section{display:flex;align-items:center;gap:16px;padding:20px 20px 16px;background:#3c050538}.combat-enemy-sprite-wrap{position:relative;flex-shrink:0}.combat-enemy-sprite{width:150px;height:150px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 18px rgba(200,50,50,.45))}@media(prefers-reduced-motion:no-preference){.combat-enemy-sprite{animation:enemy-idle 3s ease-in-out infinite;will-change:transform}@keyframes enemy-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}}.combat-enemy-aura{position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:50%;background:radial-gradient(ellipse,rgba(200,50,50,.18) 0%,transparent 70%);pointer-events:none}@media(prefers-reduced-motion:no-preference){.combat-enemy-aura{animation:aura-pulse 2.2s ease-in-out infinite}@keyframes aura-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}}.combat-enemy-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.combat-enemy-name{font-size:18px;font-weight:700;color:var(--ink, #efdfbe);margin:0;letter-spacing:.04em}.combat-enemy-stats-row{display:flex;gap:6px;flex-wrap:wrap}.combat-stat-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;background:#ffffff12;border:1px solid rgba(255,255,255,.15);color:var(--gold, #c8a96e);font-family:var(--font-ui)}.combat-stat-badge.danger{border-color:#c8505073;color:#e48888}.combat-round-badge{font-size:12px;color:#c8a96ea6;font-style:italic;font-family:var(--font-ui)}.combat-divider{height:1px;background:linear-gradient(to right,transparent,rgba(180,60,60,.35),transparent)}.combat-actions-section{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}.combat-ritual-warning{font-size:12px;color:#e4884a;text-align:center;padding:2px 0;font-family:var(--font-ui)}.combat-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.combat-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:12px 8px;border-radius:var(--radius-md);border:1px solid rgba(200,169,110,.2);background:#ffffff0d;color:var(--ink, #efdfbe);cursor:pointer;font-family:var(--font-body);min-height:72px;transition:background var(--dur-fast),border-color var(--dur-fast),transform .1s}.combat-btn:hover:not(:disabled){background:#c8a96e1f;border-color:#c8a96e66;transform:none;box-shadow:none}.combat-btn:active:not(:disabled){transform:scale(.97)}.combat-btn:disabled{opacity:.4;cursor:not-allowed}.cb-icon{font-size:18px;line-height:1}.cb-label{font-size:13px;font-weight:600;letter-spacing:.03em}.cb-hint{font-size:10px;color:#c8a96e99;text-align:center;line-height:1.3}.combat-btn-attack{border-color:#dc50504d}.combat-btn-attack:hover:not(:disabled){box-shadow:0 0 10px #dc505033}.combat-btn-defend{border-color:#5096dc4d}.combat-btn-defend:hover:not(:disabled){box-shadow:0 0 10px #5096dc33}.combat-btn-focus{border-color:#b4a0dc4d}.combat-btn-focus:hover:not(:disabled){box-shadow:0 0 10px #b4a0dc33}.combat-btn-ritual{border-color:#c88c3c4d}.combat-btn-ritual:hover:not(:disabled){box-shadow:0 0 10px #c88c3c33}.combat-btn-ritual.ritual-weak{opacity:.7;border-color:#c850504d}.combat-keys-hint{text-align:center;font-size:11px;color:#ffffff2e;letter-spacing:.15em;font-family:var(--font-ui)}@media(max-width:480px){.combat-enemy-sprite{width:110px;height:110px}.combat-enemy-section{gap:10px;padding:12px 12px 10px}.combat-enemy-name{font-size:15px}.combat-actions-grid{gap:6px}.combat-btn{min-height:64px;padding:10px 6px}}.map-panel{padding:10px 12px 8px}.map-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.map-toggle-btn{background:none;border:none;color:#c8a96e80;font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color .15s,background .15s}.map-toggle-btn:hover{color:#c8a96e;background:#c8a96e1a}.map-container{border-radius:8px;overflow:hidden;background:#05020899;border:1px solid rgba(200,169,110,.1)}.map-container svg{display:block;width:100%}.map-node{transition:opacity .15s}.map-node:hover:not(.map-node-locked){opacity:.82;cursor:pointer}@media(prefers-reduced-motion:no-preference){@keyframes map-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.18;transform:scale(1.14)}}}.map-legend{display:flex;gap:10px;padding:6px 2px 0;flex-wrap:wrap}.map-legend-item{font-size:10px;color:#efdfbe66;display:flex;align-items:center;gap:3px}.legend-current{color:#c8a96ed9}.legend-visited{color:#c8a96e80}.legend-locked{color:#fff3}@media(max-width:767px){.map-container svg{max-height:260px}}.ability-panel{background:#b48c3c0f;border:1px solid rgba(200,169,110,.2);border-radius:8px;padding:12px}.ability-panel .panel-title{font-size:12px;font-weight:600;color:#c8a96eb3;text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px}.ability-info{margin-bottom:10px}.ability-name{font-size:14px;font-weight:600;color:#c8a96e;margin-bottom:3px}.ability-name.ability-used{color:#c8a96e66;text-decoration:line-through}.ability-desc{font-size:11px;color:#efdfbe80;line-height:1.5}.ability-blocked-hint{font-size:11px;color:#e4884a;margin-top:4px}.ability-btn{width:100%;padding:8px 12px;border-radius:6px;border:1px solid rgba(200,169,110,.4);background:#c8a96e1a;color:#c8a96e;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.ability-btn:hover:not(:disabled){background:#c8a96e33}.ability-btn-disabled,.ability-btn:disabled{border-color:#ffffff1a;background:#ffffff08;color:#ffffff40;cursor:not-allowed}.difficulty-card{align-items:flex-start;text-align:left;gap:var(--sp-sm);padding:12px 14px;min-height:0;width:210px}.dc-header{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:2px}.dc-name{font-size:15px;font-weight:700;color:#efdfbe;font-family:var(--font-ui)}.dc-diff{font-size:11px;padding:2px 8px;border-radius:20px;font-family:var(--font-ui)}.dc-diff-wanderer{background:#50b45026;color:#8ec88e;border:1px solid rgba(80,180,80,.3)}.dc-diff-dreamer{background:#648cc826;color:#9ab4d8;border:1px solid rgba(100,140,200,.3)}.dc-diff-occultist{background:#c8505026;color:#d88888;border:1px solid rgba(200,80,80,.3)}.dc-passive{font-size:10px;color:#c8a96eb3;margin-bottom:1px}.dc-active{font-size:10px;color:#efdfbe99;margin-bottom:1px}.dc-bonus{font-size:9px;color:#efdfbe59;margin-top:2px}.combat-tell{margin:0 16px 12px;padding:10px 14px;background:#c8505014;border-left:3px solid rgba(200,80,80,.4);border-radius:0 8px 8px 0}.combat-tell-label{font-size:10px;font-weight:700;color:#dc6464b3;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.combat-tell-text{font-size:13px;color:#efdfbecc;line-height:1.5;font-style:italic}.combat-tell-hint{font-size:11px;color:#c8a96e99;margin-top:4px}.combat-token-section{margin:0 16px 12px;padding:10px 14px;background:#64b4dc12;border:1px solid rgba(100,180,220,.2);border-radius:8px;display:flex;flex-direction:column;gap:6px}.combat-token-label{font-size:10px;font-weight:700;color:#96c8f0b3;text-transform:uppercase;letter-spacing:.5px}.combat-token{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;align-self:flex-start}.token-guard{background:#5082c833;border:1px solid rgba(80,130,200,.5);color:#9ab4d8}.token-focus{background:#b48cdc33;border:1px solid rgba(180,140,220,.5);color:#c4a8e0}.combat-token-hint{font-size:11px;color:#efdfbe66}.combat-combo-hints{display:flex;gap:6px;flex-wrap:wrap}.combo-hint-badge{font-size:11px;padding:2px 8px;border-radius:12px;background:#c8a96e1a;border:1px solid rgba(200,169,110,.3);color:#c8a96e}.combat-btn-combo{border-color:#c8a96e80!important;background:#c8a96e1a!important;box-shadow:inset 0 0 8px #c8a96e1a}.combat-btn-combo .cb-label{color:#c8a96e}.cb-hint-combo{color:#c8a96e!important;font-weight:700;font-size:11px!important}@media(prefers-reduced-motion:no-preference){.combat-btn-combo{animation:combo-pulse 2s ease-in-out infinite}@keyframes combo-pulse{0%,to{border-color:#c8a96e80}50%{border-color:#c8a96ee6}}}.conflict-panel{background:#0f0819eb;border:1px solid rgba(180,100,100,.35);border-radius:12px;padding:16px;margin:12px 0;animation:conflict-enter .4s ease-out}@keyframes conflict-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.conflict-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.conflict-badge{font-size:10px;font-weight:700;color:#c86464cc;letter-spacing:.5px;text-transform:uppercase;background:#c864641a;padding:2px 8px;border-radius:20px;border:1px solid rgba(200,100,100,.25)}.conflict-factions{display:flex;align-items:center;gap:6px;font-size:12px}.faction-tag{font-weight:600}.conflict-vs{color:#ffffff4d;font-size:10px}.conflict-title{font-size:15px;font-weight:700;color:#efdfbe;margin-bottom:6px}.conflict-text{font-size:13px;color:#efdfbeb3;line-height:1.6;font-style:italic;margin-bottom:14px}.conflict-options{display:flex;flex-direction:column;gap:7px}.conflict-option-btn{width:100%;padding:10px 14px;border-radius:8px;border:1px solid rgba(200,169,110,.25);background:#ffffff0a;color:#efdfbe;font-size:13px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s;line-height:1.4;min-height:48px}.conflict-option-btn:hover:not(:disabled){background:#c8a96e1a;border-color:#c8a96e66}.conflict-option-blocked{opacity:.45;cursor:not-allowed}.co-text{display:block}.co-blocked{display:block;font-size:11px;color:#c8a96e80;margin-top:3px}.faction-milestone-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 8px;border-radius:20px;margin-top:4px}.milestone-cats{background:#c8a96e1f;color:#c8a96e;border:1px solid rgba(200,169,110,.3)}.milestone-sailors{background:#5b8fc41f;color:#5b8fc4;border:1px solid rgba(91,143,196,.3)}.milestone-temple{background:#8860b01f;color:#8860b0;border:1px solid rgba(136,96,176,.3)}.scene-hotspot{position:absolute;width:32px;height:32px;transform:translate(-50%,-50%);background:none;border:none;cursor:pointer;z-index:5;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center}.hs-dot{width:10px;height:10px;border-radius:50%;background:#c8a96ee6;box-shadow:0 0 6px #c8a96e99;display:block;flex-shrink:0}@media(prefers-reduced-motion:no-preference){.hs-dot{animation:hs-pulse 2.5s ease-in-out infinite}@keyframes hs-pulse{0%,to{opacity:.9;transform:scale(1);box-shadow:0 0 6px #c8a96e99}50%{opacity:.5;transform:scale(.8);box-shadow:0 0 10px #c8a96ee6}}}.hs-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#08050fe6;color:#c8a96e;font-size:11px;white-space:nowrap;padding:3px 8px;border-radius:4px;border:1px solid rgba(200,169,110,.3);pointer-events:none;opacity:0;transition:opacity .2s}.scene-hotspot:hover .hs-tooltip,.scene-hotspot:focus .hs-tooltip{opacity:1}.scene-hotspot[data-type=lore] .hs-dot{background:#b48cdce6;box-shadow:0 0 6px #b48cdc99}.scene-hotspot[data-type=shards] .hs-dot{background:#c8a96ee6;box-shadow:0 0 6px #c8a96e99}.scene-hotspot[data-type=secret] .hs-dot{background:#5b8fc4e6;box-shadow:0 0 6px #5b8fc499}.hotspot-reveal{position:fixed;bottom:80px;left:50%;transform:translate(-50%);width:min(360px,calc(100vw - 32px));z-index:60;background:#08050ff2;border:1px solid rgba(200,169,110,.3);border-radius:12px;padding:14px 16px;animation:reveal-enter .3s ease-out;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@keyframes reveal-enter{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.hr-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.hr-icon{font-size:16px;line-height:1}.hr-label{font-size:13px;font-weight:600;color:#c8a96e;flex:1}.hr-close{background:none;border:none;color:#ffffff59;font-size:14px;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.hr-close:hover{color:#ffffffb3}.hr-text{font-size:13px;color:#efdfbecc;line-height:1.6;font-style:italic;margin:0 0 8px}.hr-effects{font-size:11px;color:#c8a96eb3;letter-spacing:.3px}.sidebar-tab-bar{display:flex;gap:4px;padding:6px 8px 0;border-bottom:1px solid rgba(200,169,110,.12);margin-bottom:4px}.sidebar-tab{flex:1;background:none;border:1px solid rgba(200,169,110,.15);border-bottom:none;border-radius:4px 4px 0 0;color:#efdfbe73;font-size:var(--fs-xs, 11px);font-family:var(--font-sans, sans-serif);padding:5px 4px;cursor:pointer;transition:color .15s,background .15s;letter-spacing:.3px}.sidebar-tab:hover{color:#efdfbebf;background:#c8a96e0f}.sidebar-tab.active{color:var(--gold, #c8a96e);background:#c8a96e1a;border-color:#c8a96e4d}.sidebar-tab-content{display:none}.sidebar-tab-content.active{display:block}.character-sheet{padding:8px 8px 12px;display:flex;flex-direction:column;gap:6px}.cs-header{display:flex;align-items:center;gap:10px;padding:8px 6px;background:#c8a96e0f;border:1px solid rgba(200,169,110,.12);border-radius:4px}.cs-portrait{width:52px;height:52px;object-fit:contain;border-radius:3px;border:1px solid rgba(200,169,110,.2);image-rendering:pixelated;background:#08050f80}.cs-info{display:flex;flex-direction:column;gap:3px}.cs-archetype{font-size:14px;font-weight:600;color:var(--gold, #c8a96e);letter-spacing:.5px}.cs-difficulty-label{font-size:11px;color:#efdfbe73;font-style:italic}.cs-section-title{font-size:var(--fs-xs, 11px);font-weight:700;color:#c8a96ea6;text-transform:uppercase;letter-spacing:1px;padding:2px 4px;border-left:2px solid rgba(200,169,110,.3);margin-top:4px}.cs-radar-container{display:flex;justify-content:center;padding:4px 0}.cs-radar-container svg{max-width:160px;width:100%;height:auto}.faction-bars-enhanced{display:flex;flex-direction:column;gap:7px}.faction-bar-row{display:flex;flex-direction:column;gap:3px}.fb-header{display:flex;align-items:center;gap:5px;font-size:11px}.fb-icon{font-size:12px;line-height:1}.fb-name{flex:1;color:#efdfbeb3;font-size:11px}.fb-value{font-weight:700;font-size:11px}.fb-milestone-badge{font-size:10px;color:var(--gold, #c8a96e);line-height:1}.fb-bar-container{position:relative;height:7px;background:#ffffff0d;border-radius:3px;overflow:visible}.fb-bar-fill{height:100%;border-radius:3px;border:1px solid transparent;transition:width .4s ease;min-width:2px}.fb-milestone-marker{position:absolute;top:-3px;bottom:-3px;width:2px;border-left:2px dashed transparent;opacity:.5;transition:opacity .2s;z-index:1}.fb-milestone-marker.marker-reached{opacity:1}.equipment-slots{display:grid;grid-template-columns:1fr 1fr;gap:5px}.equipment-slot{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:4px;font-size:10px;text-align:center;min-height:52px;justify-content:center}.equipment-slot.slot-filled{background:#c8a96e14;border:1px solid rgba(200,169,110,.25)}.equipment-slot.slot-empty{background:#ffffff05;border:1px dashed rgba(255,255,255,.08);color:#fff3}.slot-icon{font-size:18px;line-height:1.1}.slot-name{color:#efdfbebf;font-size:10px;line-height:1.2}.slot-type{color:#c8a96e80;font-size:9px;text-transform:uppercase;letter-spacing:.4px}.slot-empty-icon{font-size:16px;opacity:.2}.slot-empty-label{font-size:9px;opacity:.25}.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.achievement-badge{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border-radius:4px;text-align:center;font-size:9px;transition:transform .15s;cursor:default;min-height:48px;justify-content:center}.achievement-badge.badge-unlocked{background:#c8a96e1a;border:1px solid rgba(200,169,110,.3);color:#efdfbed9}.achievement-badge.badge-locked{background:#ffffff05;border:1px solid rgba(255,255,255,.06);color:#fff3;filter:grayscale(1)}.badge-icon{font-size:16px;line-height:1}.badge-label{font-size:9px;line-height:1.25;word-break:break-word}.daily-challenge-section{background:#c8a96e0f;border:1px solid rgba(200,169,110,.2);border-radius:10px;padding:14px 16px;margin:12px 0 16px;max-width:460px;width:100%;align-self:center;transition:border-color .2s,background .2s}.daily-challenge-section.dc-completed{background:#3ca03c0d;border-color:#3cc83c33}.daily-challenge-section.dc-accepted{border-color:#c8a96e80;background:#c8a96e1a}.dch-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dch-badge{font-size:10px;font-weight:700;color:#c8a96ea6;text-transform:uppercase;letter-spacing:.5px}.dch-streak{font-size:12px;color:#e4884a;font-weight:600}.dch-content{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.dch-icon{font-size:26px;flex-shrink:0;line-height:1;margin-top:2px}.dch-info{flex:1;min-width:0}.dch-title{font-size:14px;font-weight:700;color:#efdfbe;margin-bottom:4px}.dch-desc{font-size:12px;color:#efdfbea6;line-height:1.5}.dch-hint{font-size:11px;color:#c8a96e80;margin-top:5px;font-style:italic;line-height:1.4}.dch-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dch-accept-btn{flex:1;padding:8px 14px;border-radius:8px;border:1px solid rgba(200,169,110,.4);background:#c8a96e1f;color:#c8a96e;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;min-height:40px}.dch-accept-btn:hover:not(:disabled){background:#c8a96e38}.dch-accept-btn:disabled{opacity:.75;cursor:default}.dch-accept-btn.dch-accept-active{background:#c8a96e38;border-color:#c8a96e99;color:#e4c880}.dch-skip-btn{padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:none;color:#ffffff4d;font-size:12px;cursor:pointer;transition:color .15s;min-height:40px}.dch-skip-btn:hover{color:#ffffff80}.dch-skip-btn.dch-skip-hidden{opacity:.3;pointer-events:none}.dch-completed-label{font-size:13px;color:#3cc850d9;font-weight:600}.dc-summary-badge{margin:12px auto 0;max-width:420px;padding:10px 16px;background:#c8a96e1a;border:1px solid rgba(200,169,110,.3);border-radius:8px;text-align:center;font-size:13px;color:#c8a96e;font-weight:600}.dc-summary-bonus{display:inline-block;margin-left:8px;padding:1px 7px;background:#c8a96e33;border-radius:4px;font-size:12px;color:#e4c880}.dc-summary-failed{margin:12px auto 0;max-width:420px;padding:8px 16px;background:#dc3c3c12;border:1px solid rgba(220,60,60,.25);border-radius:8px;text-align:center;font-size:12px;color:#dc6464cc}.flash-mode-section{background:#5b8fc40f;border:1px solid rgba(91,143,196,.22);border-radius:10px;padding:14px 16px;margin:0 0 16px;max-width:460px;width:100%;align-self:center}.fm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.fm-badge{font-size:10px;font-weight:700;color:#5b8fc4cc;text-transform:uppercase;letter-spacing:.5px}.fm-time{font-size:11px;color:#efdfbe66;background:#ffffff0d;padding:2px 8px;border-radius:20px;border:1px solid rgba(255,255,255,.1)}.fm-active-path{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.fm-path-icon{font-size:22px;flex-shrink:0;line-height:1;margin-top:2px}.fm-path-info{flex:1;min-width:0}.fm-path-name{font-size:14px;font-weight:700;color:#efdfbe}.fm-path-subtitle{font-size:11px;color:#efdfbe80;line-height:1.4;margin-top:2px}.fm-path-ending{font-size:11px;color:#5b8fc4b3;margin-top:3px}.fm-steps{display:flex;gap:4px;margin-bottom:10px}.fm-step-dot{flex:1;height:4px;border-radius:2px;background:#5b8fc440;border:1px solid rgba(91,143,196,.15)}.fm-start-btn{width:100%;padding:10px;border-radius:8px;border:1px solid rgba(91,143,196,.4);background:#5b8fc41f;color:#7ab8d4;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;min-height:44px;font-family:var(--font-sans, sans-serif)}.fm-start-btn:hover{background:#5b8fc438}.fm-rotation-hint{font-size:10px;color:#fff3;text-align:center;margin-top:6px}.flash-progress-indicator{display:flex;align-items:center;gap:10px;padding:6px 12px 10px;margin-bottom:2px;border-bottom:1px solid rgba(91,143,196,.12)}.fp-label{font-size:11px;color:#5b8fc4d9;font-weight:700;white-space:nowrap;flex-shrink:0;letter-spacing:.3px}.fp-bar{display:flex;gap:3px;flex:1}.fp-step{flex:1;height:3px;border-radius:2px;background:#5b8fc41f;transition:background .3s}.fp-step.fp-step-done{background:#5b8fc499}.flash-summary-badge{font-size:13px;color:#7ab8d4;font-weight:600;text-align:center;padding:6px 0}
