:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#12141a;--panel:#1b1e27;--panel-alt:#22262f;--border:#333846;--text:#e4e6eb;--text-dim:#9aa0ac;--accent:#d9a441;--accent-2:#5b8cff;--danger:#e2555a;--ok:#55c98a;font-family:Consolas,Malgun Gothic,monospace}*{box-sizing:border-box}html,body{background-color:var(--bg);height:100%;color:var(--text);background-image:linear-gradient(#07090e6b,#07090e94),url(/world-map.png);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;margin:0;overflow:hidden}#app{flex-direction:column;height:100dvh;min-height:0;display:flex}button{background:var(--panel-alt);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:6px 10px;font-family:inherit}button:hover{border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}input,select{background:var(--panel-alt);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-family:inherit}h1,h2,h3{margin:0 0 8px}.centered-screen{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.auth-box{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;width:360px;padding:24px;display:flex}.remember-field{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;font-size:.9em;display:flex}.auth-box .error,.char-select .error{color:var(--danger);min-height:1.2em;font-size:.9em}.char-select{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:480px;padding:24px}.char-card{background:var(--panel-alt);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:10px 14px;display:flex}.char-card button.danger{color:var(--danger);border-color:var(--danger)}.char-select .notice{color:var(--ok);min-height:1.2em;font-size:.9em}.char-delete-confirm{border-top:1px solid var(--border);flex-direction:column;flex-basis:100%;gap:6px;padding-top:8px;display:flex}.char-delete-confirm[hidden]{display:none}.char-select-actions{gap:8px;display:flex}.char-select-actions button{flex:1}.char-select-actions .secondary{color:var(--text-dim)}.char-create{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:640px;max-height:90vh;padding:24px;overflow-y:auto}.stat-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0;display:grid}.stat-cell{background:var(--panel-alt);border:1px solid var(--border);border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.stat-controls{gap:4px;display:flex}.stat-controls button{min-width:28px;padding:2px 7px}.growth-overlay{z-index:20;background:#04070cd1;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.growth-window{width:min(1180px,96vw);max-height:92vh;color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:20px;overflow:auto;box-shadow:0 18px 60px #0000008c}.growth-window>header,.growth-points,.growth-stat,.growth-skill-card{align-items:flex-start;display:flex}.growth-window>header{justify-content:space-between}.growth-window>header h2{margin:0}.growth-title{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.growth-open-hint{color:var(--text-dim);font-size:.85em}.growth-header-actions{gap:6px;display:flex}.growth-points{color:var(--accent);gap:18px;margin:12px 0;font-weight:700}.growth-stats{grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px;display:grid}.growth-stat{cursor:help;background:var(--panel-alt);border:1px solid var(--border);border-radius:5px;justify-content:space-between;gap:8px;padding:8px}.growth-stat.pending{box-shadow:inset 0 0 0 1px var(--accent);background:#c29a581f}.growth-stat-actions{gap:4px;display:flex}.growth-stat-actions button{min-width:28px;padding-inline:7px}.growth-initial-hint{color:var(--text-dim);margin:8px 0 0;font-size:.9em}.growth-attribute-help{background:var(--panel-alt);border:1px solid var(--border);border-radius:6px;margin-top:10px;padding:10px 14px}.growth-attribute-help h3{color:var(--accent);margin:0 0 8px}.growth-attribute-help ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:0;padding-left:20px;display:grid}.growth-attribute-help p{color:var(--text-dim);margin:10px 0 0;font-size:.9em}.growth-skill-columns{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:16px;display:grid}.growth-skill-section h3{color:var(--accent)}.growth-race-section .growth-skill-grid{grid-template-columns:minmax(240px,320px)}.growth-skill-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.growth-skill-card{opacity:.72;cursor:help;background:var(--panel-alt);border:1px solid var(--border);border-radius:6px;gap:9px;padding:9px}.growth-skill-card.learned{opacity:1;border-color:var(--accent)}.growth-skill-card.pending{box-shadow:inset 0 0 0 1px var(--accent);background:#c29a581f}.growth-skill-icon{border:1px solid var(--accent);background:#151c28;border-radius:5px;flex:0 0 38px;place-items:center;height:38px;font-weight:800;display:grid}.growth-skill-copy{word-break:keep-all;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.growth-skill-copy small{color:var(--text-dim)}.growth-skill-card>button{align-self:center}.growth-auto-open{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;margin-right:auto;font-size:.9em;display:flex}.growth-footer-actions{background:var(--panel);border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;margin:16px -20px -20px;padding:12px 20px;display:flex;position:sticky;bottom:-20px}@media (width<=760px){.growth-stats{grid-template-columns:repeat(2,1fr)}.growth-attribute-help ul{grid-template-columns:1fr}}.skill-pick{background:var(--panel-alt);border:1px solid var(--border);border-radius:4px;align-items:flex-start;gap:8px;margin:6px 0;padding:9px 10px;display:flex}.skill-pick>span,.choice-field{flex-direction:column;gap:5px;display:flex}.skill-description,.choice-description{color:var(--text-dim);line-height:1.45}.choice-description{background:var(--panel-alt);border-left:3px solid var(--accent);min-height:3.2em;padding:8px 10px}.choice-ability{flex-direction:column;gap:3px;min-height:1.2em;padding:0 10px;line-height:1.45;display:flex}.choice-ability strong{color:var(--accent);font-size:.95em}.choice-ability small{color:var(--text-dim)}.game-layout{flex-direction:column;flex:1;gap:8px;height:100%;min-height:0;padding:12px;display:flex}.field-panel{flex-direction:column;flex:none;align-items:center;gap:4px;min-height:0;display:flex}.field-board{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:8px;max-width:100%;display:flex}.field-map{--cell:clamp(14px, 2vw, 22px);grid-template-columns:repeat(var(--columns,24), var(--cell));grid-auto-rows:var(--cell);max-width:100%;font-family:Consolas,DejaVu Sans Mono,Courier New,monospace;font-size:calc(var(--cell) * .86);cursor:crosshair;-webkit-user-select:none;user-select:none;background:#000;border:1px solid #dab26247;border-radius:4px;outline:none;padding:6px;font-weight:700;display:grid;overflow-x:auto}.field-map span{width:var(--cell);height:var(--cell);justify-content:center;align-items:center;line-height:1;display:flex}.field-map span.blocked{box-shadow:inset 0 0 0 1px #aab4aa38}.field-map:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px #d9a44159}.field-units{min-width:190px;max-width:300px;max-height:calc(var(--cell,22px) * 16 + 12px);color:silver;background:#000;border:1px solid #dab26247;border-radius:4px;padding:6px 8px;font-family:Consolas,DejaVu Sans Mono,Courier New,monospace;font-size:13px;line-height:1.5;overflow-y:auto}.field-units-room{color:#fff;overflow-wrap:anywhere;margin-bottom:4px;font-weight:700}.field-units-header{color:#ff0;margin:6px 0 2px}.field-units-room+.field-units-header{margin-top:0}.field-units-quest{color:#0ff;overflow-wrap:anywhere}.field-units-gather{overflow-wrap:anywhere}.field-units-empty{color:gray}.field-unit{white-space:pre}.field-unit[data-monster]{cursor:pointer}.field-unit[data-monster]:hover{background:#202020}.field-unit-glyph{padding:0 2px;font-weight:700}.field-unit-bar{vertical-align:middle;background:#400000;width:56px;height:8px;display:inline-block}.field-unit-bar>span{background:red;height:100%;display:block}.field-legend{color:silver;background:#000000b8;border-radius:4px;flex-direction:column;gap:2px;max-width:100%;padding:4px 8px;font-size:.8em;display:flex}.field-legend:empty{display:none}.field-legend-row{flex-wrap:wrap;align-items:center;gap:2px 10px;display:flex}.field-legend-row strong{color:var(--accent)}.field-legend-glyph{padding:0 3px;font-family:Consolas,DejaVu Sans Mono,Courier New,monospace;font-weight:700}.log-panel{overscroll-behavior:contain;-webkit-backdrop-filter:blur(2.5px)saturate(.82);background:#0c0f16ad;border:1px solid #dab26247;border-radius:8px;flex:1;min-height:0;padding:14px 18px;font-size:.92em;line-height:1.5;overflow-y:auto;box-shadow:0 10px 30px #00000047}.log-panel p{overflow-wrap:anywhere;border-left:3px solid #0000;margin:2px 0;padding:2px 8px}.log-panel .sys{color:var(--accent)}.log-panel .system{color:#c4cbd7}.log-panel .command{color:#9aa8bc;margin-top:10px}.log-panel .chat{color:#8ed5ff;background:#8ed5ff0f;border-left-color:#8ed5ff}.log-panel .party{color:#65dfd0;background:#65dfd00f;border-left-color:#65dfd0}.log-panel .npc{color:#e8cda9;border-left-color:#ad9475}.log-panel .separator{color:var(--border);letter-spacing:.08em;white-space:nowrap;margin:9px 0 7px;overflow:hidden}.log-panel .error{color:#ff929a;background:#ff929a12;border-left-color:#ff929a}.log-panel .combat{color:#ffc28a}.log-panel .damage{color:#ff929a}.log-panel .heal{color:#8ce3b0}.log-panel .reward{color:#f5d779;background:#f5d7790f;border-left-color:#f5d779}.log-panel .quest{color:#e7d8a2;border-left-color:#bca96b}.log-panel .tutorial{color:#b9bdff;background:#969cf00f;border-left-color:#969cf0}.log-panel .emote{color:var(--accent-2);font-style:italic}.log-panel .tell{color:#e4adff;background:#e4adff0f;border-left-color:#e4adff}.log-panel .entity-room{color:#72b7ff;font-weight:700}.log-panel .entity-npc{color:#52d6c7;font-weight:700}.log-panel .entity-item{color:#78d98b}.log-panel .entity-quest{color:#ffd166;font-weight:700}.log-panel .entity-skill{color:#d59cff}.log-panel .entity-monster{font-weight:700}.log-panel .entity-monster.grade-1{color:#c1c7d0}.log-panel .entity-monster.grade-2{color:#63d17d}.log-panel .entity-monster.grade-3{color:#5ca8ff}.log-panel .entity-monster.grade-4{color:#c27aff}.log-panel .entity-monster.grade-5{color:#ff9f43;text-shadow:0 0 5px #ff9f4359}.input-row{-webkit-backdrop-filter:blur(4px);background:#0c0f16d1;border:1px solid #dab26240;border-radius:8px;flex:none;gap:6px;padding:10px 12px;display:flex;box-shadow:0 6px 22px #0000003d}.input-row input{flex:1;min-width:0}.input-row button{white-space:nowrap;flex:none}.command-bar{scrollbar-width:thin;flex:none;gap:5px;min-width:0;max-width:100%;display:flex;overflow-x:auto}.command-bar button{white-space:nowrap;background:#0c0f16d1;flex:none;padding:3px 9px;font-size:.85em}.small-btn{padding:2px 6px;font-size:.8em}.empty-hint{color:var(--text-dim);font-size:.85em}@media (width<=640px){.game-layout{gap:5px;padding:6px}.log-panel{background:#0c0f16bd;padding:10px 12px}.input-row{padding:8px}}.prologue-overlay{z-index:60;background:#05070d;flex-direction:column;justify-content:flex-end;animation:.7s both prologue-in;display:flex;position:fixed;inset:0;overflow:hidden}.prologue-overlay.closing{animation:1.2s both prologue-out}.prologue-stage{position:absolute;inset:0}.prologue-scene{opacity:0;will-change:transform, opacity;background-position:50%;background-repeat:no-repeat;background-size:cover;transition:opacity 1.6s;position:absolute;inset:-6%}.prologue-scene.visible{opacity:1}.prologue-scene.pan-0{animation:12s linear both prologue-pan-0}.prologue-scene.pan-1{animation:12s linear both prologue-pan-1}.prologue-scene.pan-2{animation:12s linear both prologue-pan-2}.prologue-scene.pan-3{animation:12s linear both prologue-pan-3}.prologue-panel{background:linear-gradient(#05070d00,#05070df0 65%);padding:28px clamp(20px,6vw,90px) clamp(24px,6vh,64px);position:relative}.prologue-caption{max-width:62ch;color:var(--text);text-shadow:0 2px 12px #000000e6;opacity:0;margin:0 auto 18px;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.85;transition:opacity .9s,transform .9s;transform:translateY(12px)}.prologue-caption.visible{opacity:1;transform:none}.prologue-actions{align-items:center;gap:10px;max-width:62ch;margin:0 auto;display:flex}.prologue-progress{gap:6px;margin-right:auto;display:flex}.prologue-dot{background:#e4e6eb40;border-radius:2px;width:22px;height:3px;transition:background .4s}.prologue-dot.done{background:var(--accent)}.prologue-skip{color:var(--text-dim)}@keyframes prologue-in{0%{opacity:0}to{opacity:1}}@keyframes prologue-out{0%{opacity:1}to{opacity:0}}@keyframes prologue-pan-0{0%{transform:scale(1)translate(0,0)}to{transform:scale(1.12)translate(-2.5%,-1.5%)}}@keyframes prologue-pan-1{0%{transform:scale(1.12)translate(2%,1%)}to{transform:scale(1)translate(0,0)}}@keyframes prologue-pan-2{0%{transform:scale(1.04)translate(-2%,1.5%)}to{transform:scale(1.14)translate(1.5%,-1%)}}@keyframes prologue-pan-3{0%{transform:scale(1.1)translate(-1.5%,-1.5%)}to{transform:scale(1.02)translate(2%,1%)}}@media (prefers-reduced-motion:reduce){.prologue-scene{animation:none;transform:none}.prologue-caption{transition:opacity .4s;transform:none}}.menu-button{justify-content:center;align-items:center;padding:6px 9px;display:inline-flex}.gear-icon{width:18px;height:18px;display:block}.menu-overlay{z-index:40;background:#05070db8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.menu-window{width:min(420px,94vw);color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:18px 20px 20px;box-shadow:0 18px 60px #0000008c}.menu-window>header{justify-content:space-between;align-items:center;display:flex}.menu-window>header h2{margin:0;font-size:1.15em}.menu-items{flex-direction:column;gap:8px;margin-top:14px;display:flex}.menu-item{text-align:left;background:var(--panel-alt);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.menu-item:hover{border-color:var(--accent)}.menu-item small{color:var(--text-dim)}
