@font-face{font-family:Galmuri;src:url(/PROJ_R/assets/fonts/Galmuri11-Bold.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--bg:#1b1a1f;--panel:#26242c;--panel-2:#312e38;--line:#4a4552;--text:#ece6da;--muted:#a39d92;--accent:#e0a64a;--danger:#d0533f;--ally:#4aa3e0;font-family:Galmuri,monospace}*{box-sizing:border-box;touch-action:manipulation}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;overflow:hidden}#app{width:100%;height:100%;position:relative}.boot-title{text-align:center;letter-spacing:.3em;margin-top:30vh}.screen{position:absolute;inset:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px 24px;box-shadow:0 10px 40px #0008}.btn{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:7px 14px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:#1b1a1f;border-color:var(--accent);font-weight:700}.btn.danger{border-color:var(--danger);color:#ffb4a8}.btn.active{border-color:var(--accent);color:var(--accent)}.sandbox{background:radial-gradient(ellipse at 50% 30%, #3a3226, var(--bg) 70%);place-items:center;padding:16px;display:grid}.sandbox-panel{flex-direction:column;gap:12px;width:min(380px,100%);display:flex}.sandbox-panel .logo{letter-spacing:.3em;text-align:center;color:var(--accent);margin:0}.sandbox-panel .subtitle{text-align:center;color:var(--muted);margin:-6px 0 6px}.sandbox-panel label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.sandbox-panel select,.sandbox-panel input{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:7px 8px}.loading{text-align:center;color:var(--muted);font-size:13px}.fatal{text-align:center;color:#ffb4a8;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.result-overlay{background:#0009;place-items:center;padding:16px;animation:.4s fade-in;display:grid;position:absolute;inset:0}.result-panel{min-width:min(460px,100%);max-height:90vh;overflow:auto}.result-panel h2{text-align:center;letter-spacing:.2em;margin:0 0 12px;font-size:30px}.result-overlay.victory h2{color:var(--accent)}.result-overlay.defeat h2{color:var(--danger)}.result-panel table{border-collapse:collapse;width:100%;font-size:13px}.result-panel th,.result-panel td{text-align:right;border-bottom:1px solid var(--line);padding:4px 8px}.result-panel td:first-child,.result-panel th:first-child{text-align:left}.result-panel tr.enemy td{color:var(--muted)}.result-actions{justify-content:center;gap:8px;margin-top:16px;display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.result-panel h3{color:var(--accent);margin:16px 0 6px;font-size:14px}.result-panel ul.moments,.result-panel ul.bonds{flex-direction:column;gap:5px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.result-panel ul.moments li{align-items:center;gap:8px;display:flex}.result-panel ul.bonds .delta{width:36px;font-weight:800;display:inline-block}.result-panel ul.bonds .delta.up{color:#7ad08a}.result-panel ul.bonds .delta.down{color:#e07a6a}.result-panel ul.bonds em{color:var(--accent);font-style:normal;font-weight:700}.battle-stage{position:absolute;inset:0}.battle-canvas{width:100%;height:100%;display:block}.screen.battle.berserk:after{content:"";pointer-events:none;animation:1.2s infinite alternate pulse;position:absolute;inset:0;box-shadow:inset 0 0 120px #c0201888}@keyframes pulse{0%{opacity:.5}to{opacity:1}}.hud-controls{gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.hud-chips{pointer-events:none;flex-wrap:wrap;gap:4px;display:flex;position:absolute;top:10px;left:12px;right:12px}.chip{pointer-events:auto;font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#26242ccc;border-left-width:4px;border-radius:4px;padding:3px 8px;font-size:12px}.chip.enemy{border-left-color:var(--danger);color:#ffcabf}.hud-inspect{border:1px solid var(--line);background:#26242ce6;border-radius:8px;width:240px;padding:12px;font-size:13px;position:absolute;top:48px;right:12px}.insp-name{font-size:16px;font-weight:800}.insp-sub{color:var(--muted);margin-bottom:8px}.insp-row{margin:2px 0}.insp-row b{width:36px;color:var(--muted);font-weight:600;display:inline-block}.insp-intent{border-left:3px solid var(--accent);background:#0004;border-radius:3px;margin-top:8px;padding:6px 8px}.insp-reasons{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.reason-chip{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:1px 7px;font-size:11px}.hud-log{border:1px solid var(--line);background:#1b1a1fcc;border-radius:8px;flex-direction:column;width:min(380px,100% - 24px);max-height:34vh;font-size:12px;display:flex;position:absolute;bottom:12px;left:12px}.hud-log-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.hud-log-head span{cursor:pointer;font-weight:700}.hud-log-head label{color:var(--muted);align-items:center;gap:4px;display:flex}.hud-log-list{padding:4px 10px;overflow-y:auto}.hud-log.collapsed .hud-log-list{display:none}.hud-log-row{color:var(--muted);padding:1px 0}.hud-log-row.hl{color:var(--text);font-weight:600}.hud-log-row.ev-combo{color:#ffe23a}.hud-log-row.ev-rescued{color:#8cd8ff}.hud-log-row.ev-died,.hud-log-row.ev-downed{color:#ff9a8a}.hud-log.only-hl .hud-log-row:not(.hl){display:none}@media (max-width:720px){.hud-inspect{width:calc(100% - 24px);top:auto;bottom:60px}.hud-log{max-height:22vh;bottom:56px}}.trait-chip{background:var(--panel-2);border:1px solid var(--line);cursor:help;border-radius:4px;margin:1px 2px 1px 0;padding:0 5px;font-size:11px;display:inline-block}.insp-rels{color:var(--muted);flex-direction:column;gap:4px;margin:8px 0 0;padding:0 0 0 2px;font-size:12px;list-style:none;display:flex}.insp-rels b{color:var(--accent);margin-right:3px}.ui-pip .screen.grid,.ui-pip .grid-result,.ui-pip .wb{--t-fg:#5dff8a;--t-dim:#34a85c;--t-line:#1f7a3e;--t-warn:#e6ffb0;--t-ch:#9dffb8;--t-hp:#ffc94a;--t-bg:#021407e8;--pix:polygon(0 4px, 4px 4px, 4px 0, calc(100% - 4px) 0, calc(100% - 4px) 4px, 100% 4px, 100% calc(100% - 4px), calc(100% - 4px) calc(100% - 4px), calc(100% - 4px) 100%, 4px 100%, 4px calc(100% - 4px), 0 calc(100% - 4px))}.ui-pip .screen.grid .ghud,.ui-pip .wb{text-shadow:0 0 3px #3dff7a88}.ui-pip .screen.grid .gh-term,.ui-pip .screen.grid .gh-target,.ui-pip .screen.grid .gt-btn,.ui-pip .screen.grid .gbelt-b,.ui-pip .screen.grid .gh-tile,.ui-pip .screen.grid .xzoom .btn,.ui-pip .screen.grid .grid-pixel,.ui-pip .screen.grid .kata-panel,.ui-pip .screen.grid .ship-hud,.ui-pip .screen.grid .ship-modal .panel,.ui-pip .screen.grid .gbag-panel,.ui-pip .screen.grid .glvl-panel,.ui-pip .screen.grid .glvl-card,.ui-pip .wb-opt,.ui-pip .wb .btn,.ui-pip .wb-tabs button,.ui-pip .wb-close{clip-path:var(--pix);border-radius:0!important}.ui-pip .screen.grid .gh-term,.ui-pip .screen.grid .gh-target,.ui-pip .screen.grid .gt-btn,.ui-pip .screen.grid .ship-modal .panel,.ui-pip .screen.grid .glvl-panel,.ui-pip .screen.grid .gbag-panel{border-width:2px!important}.ui-pip .screen.grid .gh-target>b,.ui-pip .screen.grid .gt-btn:active,.ui-pip .screen.grid .gt-btn.on{color:#021006}.ui-pip .wb{clip-path:polygon(0 12px,12px 12px,12px 0,calc(100% - 12px) 0,calc(100% - 12px) 12px,100% 12px,100% calc(100% - 12px),calc(100% - 12px) calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 12px),0 calc(100% - 12px));background:radial-gradient(#062a10 0%,#021006 70%,#010603 100%)}.ui-pip .wb:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#00000050 2px 3px),radial-gradient(#0000 55%,#000b 100%);position:absolute;inset:0}.ui-pip .wb-svg{shape-rendering:crispedges;text-rendering:optimizespeed}.ui-pip .wb-body path,.ui-pip .wb-part path,.ui-pip .rp-room rect,.ui-pip .rp-hull{stroke-width:2px;fill:#04200b}.ui-pip .wb-part.fitted path,.ui-pip .rp-room.done rect{stroke:var(--t-fg);fill:#073a16}.ui-pip .wb-head>b,.ui-pip .wb-slot span,.ui-pip .wb-tabs button[aria-selected=true]{background:var(--t-fg);color:#021006;text-shadow:none}.ui-pip .wb-opt{background:#04200b}.ui-pip .wb .btn{border-color:var(--t-dim)!important;color:var(--t-fg)!important;background:#04200b!important}.ui-pip .wb .btn.primary{text-shadow:none;background:var(--t-fg)!important;color:#021006!important}.ui-pip .wb-grid{stroke:#1f7a3e40}.ui-pip .loading:not([hidden]){color:#5dff8a;text-shadow:0 0 4px #3dff7a99;background:radial-gradient(#031208 0%,#010603 100%);justify-content:center;align-items:center;font:16px Galmuri,monospace;display:flex;position:fixed;inset:0}.ui-pip .loading:not([hidden]):after{content:"▌";margin-left:4px;animation:.8s step-end infinite pip-cursor}@keyframes pip-cursor{50%{opacity:0}}.branch-menu{color:#5dff8a;box-sizing:border-box;background:#02080a;min-height:100vh;padding:24px;font-family:Galmuri,monospace}.branch-menu h2{margin:0 0 16px;font-weight:400}.branch-line{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.branch-line b{color:#9dffb8;width:72px;font-weight:400}.branch-line a{color:#5dff8a;border:1px solid #1f7a3e;padding:4px 10px;text-decoration:none}.branch-line a:hover{color:#021006;background:#5dff8a}.branch-line span{color:#34a85c;font-size:12px}.boot{--b-fg:#5dff8a;--b-dim:#34a85c;--b-line:#1f7a3e;--b-warn:#ffc94a;--b-err:#ff5a4a;color:var(--b-fg);text-shadow:0 0 4px #3dff7a99;background:radial-gradient(at 50% 42%,#072a12 0%,#031208 45%,#010603 100%);place-items:center;font-family:Galmuri,monospace;animation:.5s ease-out boot-on;display:grid;position:fixed;inset:0;overflow:hidden}.boot:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#00000059 2px 3px),radial-gradient(#0000 50%,#000d 100%);animation:6s step-end infinite boot-flicker;position:absolute;inset:0}.boot-tube{flex-direction:column;gap:14px;width:min(560px,100vw - 32px);display:flex}.boot-logo{letter-spacing:.08em;color:var(--b-fg);text-shadow:0 0 6px #3dff7acc,0 0 22px #3dff7a66,4px 4px #0b3d1a;margin:0;font:clamp(56px,13vw,112px)/1 Galmuri,monospace}.boot-sub{color:var(--b-dim);letter-spacing:.3em;margin:-6px 0 6px;font-size:14px}.boot-log{flex-direction:column;gap:3px;min-height:7.5em;font-size:14px;display:flex}.boot-row{white-space:pre}.boot-row .d{color:var(--b-line)}.boot-row .v.warn{color:var(--b-warn);text-shadow:0 0 4px #ffc94a88}.boot-row .v.err{color:var(--b-err)}.boot-row .v.wait{color:var(--b-dim);animation:.6s step-end infinite boot-blink}.boot-bar{color:var(--b-dim);letter-spacing:.04em;font-size:13px}.boot-bar.done{color:var(--b-fg)}.boot-menu{flex-direction:column;align-items:flex-start;gap:6px;margin-top:8px;display:flex}.boot-item{all:unset;cursor:pointer;color:var(--b-fg);touch-action:manipulation;min-width:180px;padding:6px 12px 6px 28px;font-size:20px;position:relative}.boot-item:before{content:">";opacity:0;position:absolute;left:10px}.boot-item.on,.boot-item:hover,.boot-item:focus-visible{background:var(--b-fg);color:#021006;text-shadow:none}.boot-item.on:before,.boot-item:hover:before{opacity:1}.boot-item.go{animation:.12s step-end 3 boot-blink}.boot.off .boot-tube{animation:.32s ease-in forwards boot-off}.boot.off{animation:.32s ease-in forwards boot-dark}@keyframes boot-on{0%{filter:brightness(3)saturate(0);transform:scaleY(.02)}to{filter:none;transform:none}}@keyframes boot-off{60%{filter:brightness(3);transform:scaleY(.02)}to{filter:brightness(4);transform:scale(0,.02)}}@keyframes boot-dark{to{background:#000}}@keyframes boot-blink{50%{opacity:0}}@keyframes boot-flicker{0%,96%,to{opacity:1}97%{opacity:.82}98%{opacity:1}99%{opacity:.9}}@media (prefers-reduced-motion:reduce){.boot,.boot:after,.boot.off .boot-tube,.boot.off{animation:none}}
