*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}:root{--bg:#15151a;--fg:#e7e7ee;--mut:#9aa;--br:#33333d;--hi:#ffd866}body{background:var(--bg);color:var(--fg);margin:0;font:14px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:1180px;margin:0 auto;padding:16px}.app h1{color:var(--hi);margin:0 0 12px;font-size:18px}.hud{max-width:1100px;margin-top:8px;margin-left:auto;margin-right:auto;font-size:12px}.viewer-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.hud .player-info,.hud .enemy-info{border:1px solid var(--br);background:#1f2030;border-radius:6px;padding:10px 14px}.hud .block-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hud .lbl{color:var(--mut);font-weight:600}.hud .hp{color:#ff9b9b}.hud .energy{color:var(--hi)}.hud .gold{color:#ffd866}.hud .block{color:#9bd6ff}.hud .status{background:#2c2c36;border-radius:3px;padding:1px 6px;font-size:11px}.hud .status.vuln{color:#ff9bd6}.hud .status.weak{color:#cc9bff}.hud .status.poison{color:#7ce28b}.hud .status.str{color:#ffb86b}.status-badges{align-items:center;gap:8px;display:inline-flex}.status-badge{background:#00000059;border-radius:3px;align-items:center;gap:2px;padding:1px 6px 1px 1px;display:inline-flex}.status-badge img{display:block}.status-num{color:#fff;font-size:12px;font-weight:700}.header-line{align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.header-line h1{margin:0}.floor{color:var(--mut);font-size:12px}@media (width<=980px),(height<=540px){.app{max-width:100vw;padding:4px}.header-line{gap:8px;margin-bottom:4px}.header-line h1{font-size:14px}.floor{font-size:10px}.hud{margin-top:4px;font-size:11px}.hud .player-info,.hud .enemy-info{padding:4px 8px}}@media (orientation:landscape) and (height<=480px){.app{padding:2px}.header-line{gap:6px;margin-bottom:2px}.header-line h1{font-size:12px}.ghost-btn{padding:2px 6px;font-size:10px}}.reward-overlay{z-index:50;background:#0a0a0fd9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.reward-box{border:1px solid var(--br);text-align:center;background:#23232b;border-radius:8px;max-width:720px;padding:24px 32px}.reward-box h2{color:var(--hi);margin:0 0 6px;font-size:22px}.reward-box .sub{color:var(--mut);margin:0 0 18px;font-size:13px}.reward-cards{justify-content:center;gap:14px;margin-bottom:18px;display:flex}.reward-card{color:#fff;cursor:pointer;width:160px;min-height:200px;font:inherit;border:2px solid #444;border-radius:8px;flex-direction:column;gap:8px;padding:10px;transition:transform .12s,border-color .12s;display:flex}.reward-card:hover{border-color:var(--hi);transform:translateY(-4px)}.rc-head{align-items:center;gap:8px;display:flex}.rc-cost{color:var(--hi);border:1px solid var(--hi);background:#222;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:700;display:inline-flex}.rc-name{font-weight:700}.rc-desc{flex:1;font-size:12px;line-height:1.4}.rc-type{opacity:.7;text-align:center;font-size:11px}.reward-actions{justify-content:center;gap:12px;display:flex}.reward-actions .skip{color:var(--mut);border:1px solid var(--br);font:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:8px 20px}.reward-actions .skip:hover{color:var(--fg);border-color:var(--fg)}.reward-actions button{background:var(--hi);color:#000;font:inherit;cursor:pointer;border:0;border-radius:4px;padding:8px 20px;font-weight:600}.ghost-btn{border:1px solid var(--br);color:var(--mut);font:inherit;cursor:pointer;background:0 0;border-radius:4px;margin-left:auto;padding:4px 10px;font-size:12px}.ghost-btn:hover{color:var(--fg);border-color:var(--fg)}.map-view{grid-template-columns:240px 1fr;gap:20px;min-height:600px;padding:20px;display:grid}.map-side{border:1px solid var(--br);background:#1f1f28;border-radius:6px;padding:14px}.map-side h2{color:var(--hi);margin:0 0 10px;font-size:16px}.map-side .stats{color:var(--mut);flex-direction:column;gap:4px;margin-bottom:14px;font-size:13px;display:flex}.relics-title{color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px}.relic{border-top:1px solid var(--br);padding:6px 0;font-size:12px}.relic-name{color:var(--hi);font-weight:600;display:block}.relic-desc{color:#ccc}.map-grid{border:1px solid var(--br);background:#1a1a22;border-radius:6px;flex-direction:column;align-items:center;gap:36px;padding:24px 12px;display:flex}.map-row{gap:50px;display:flex}.map-canvas{border:1px solid var(--br);background:#1a1a22;border-radius:6px;margin:0 auto;position:relative}.map-svg{pointer-events:none;position:absolute;top:0;left:0}.map-node{color:#888;cursor:not-allowed;min-width:80px;font:inherit;background:#23232b;border:2px solid #555;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;font-size:12px;transition:transform .12s,background .12s;display:flex}.map-node .node-icon{font-size:22px}.map-node.playable{cursor:pointer;color:var(--fg)}.map-node.playable:hover{background:#2c2c36;transform:translateY(-2px)}.map-node.visited{opacity:.55;background:#15151a}.map-node.current{color:var(--hi);background:#2c2c36;border-style:dashed}.rest-actions{justify-content:center;gap:16px;margin:20px 0;display:flex}.rest-btn{color:var(--fg);font:inherit;cursor:pointer;background:#2c2c36;border:2px solid #555;border-radius:8px;flex-direction:column;gap:4px;min-width:180px;padding:16px 24px;transition:border-color .12s,transform .12s;display:flex}.rest-btn:hover{border-color:var(--hi);transform:translateY(-3px)}.rest-btn.heal{border-color:#7ce28b}.rest-title{font-size:16px;font-weight:700}.rest-sub{color:var(--mut);font-size:12px}.rest-icon{text-align:center;object-fit:contain;filter:drop-shadow(0 2px 4px #0006);width:56px;height:56px;margin:0 auto 6px;font-size:40px;line-height:56px;display:block}img.rest-icon{background:#ffffff0a;border-radius:6px;padding:2px}.rest-btn.skip .rest-icon{opacity:.5;font-size:32px}.rest-h2-icon{vertical-align:-4px;object-fit:contain;width:24px;height:24px}.treasure-relic{border:2px solid var(--hi);background:#2c2c36;border-radius:8px;margin:16px 0;padding:14px}.tr-name{color:var(--hi);font-size:18px;font-weight:700}.tr-desc{color:#ccc;margin-top:6px;font-size:13px}.rest-btn.forge{border-color:#ffd866}.rest-btn:disabled{opacity:.4;cursor:not-allowed}.rest-btn:disabled:hover{border-color:#555;transform:none}.reward-box.wide{max-width:min(95vw,1100px);max-height:92vh;overflow-y:auto}.forge-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;max-height:60vh;margin:12px 0 18px;padding:4px;display:grid;overflow-y:auto}.reward-card.view-only{border-color:#444!important;transform:none!important}.viewer-buttons{gap:6px;margin-left:8px;display:flex}.viewer-buttons .ghost-btn{margin-left:0}.card-art{cursor:pointer;border-radius:6px;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.card-art img{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.card-art:hover{transform:translateY(-4px);box-shadow:0 0 12px #ffd86680}.card-art-badge{color:var(--hi);background:#000000bf;border-radius:3px;padding:2px 6px;font-size:12px;font-weight:700;position:absolute;top:4px;right:4px}.card-art.fallback{color:#fff;font:inherit;flex-direction:column;gap:6px;padding:10px;display:flex}.card-art.fallback .ca-head{align-items:center;gap:8px;display:flex}.card-art.fallback .ca-cost{color:var(--hi);border:1px solid var(--hi);background:#222;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:inline-flex}.card-art.fallback .ca-name{font-size:13px;font-weight:700}.card-art.fallback .ca-desc{color:#eee;flex:1;font-size:11px;line-height:1.4}.card-art.fallback .ca-type{opacity:.6;text-align:center;font-size:10px}.shop-section{margin:14px 0}.shop-label{color:var(--mut);text-transform:uppercase;letter-spacing:.5px;text-align:left;margin-bottom:6px;font-size:12px}.shop-row{flex-wrap:wrap;gap:12px;display:flex}.shop-item{color:#fff;cursor:pointer;font:inherit;text-align:left;background:#2c2c36;border:2px solid #555;border-radius:8px;flex-direction:column;gap:6px;width:200px;padding:12px;transition:transform .12s,border-color .12s;display:flex}.shop-item:hover:not(:disabled){border-color:var(--hi);transform:translateY(-3px)}.shop-item:disabled{cursor:not-allowed;opacity:.55}.shop-price{color:var(--hi);margin-top:auto;font-size:14px;font-weight:700}.shop-relic-name{color:var(--hi);font-weight:700}.shop-relic-desc{color:#ccc;font-size:12px;line-height:1.4}.shop-empty{color:var(--mut);padding:12px;font-style:italic}.relic-item{background:#23232b}.potion-item{background:#1c2528;border-color:#7ce28b}.service-item{background:#1f1f28;border-color:#7ad6ff}.shop-card-wrap{cursor:pointer;flex-direction:column;align-items:center;gap:6px;display:flex}.shop-card-wrap.disabled{cursor:not-allowed;opacity:.55}.shop-price-tag{color:var(--hi);font-size:14px;font-weight:700}.ancient-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:14px 0 20px;display:grid}.ancient-card{color:#fff;cursor:pointer;font:inherit;text-align:left;background:#2a1f3a;border:2px solid #cc9bff;border-radius:8px;flex-direction:column;gap:10px;padding:16px;transition:transform .12s,border-color .12s;display:flex}.ancient-card:hover{border-color:var(--hi);transform:translateY(-3px)}.ancient-name{color:#cc9bff;border-bottom:1px solid #444;padding-bottom:6px;font-size:18px;font-weight:700}.ancient-section{flex-direction:column;gap:3px;display:flex}.ancient-label{color:var(--mut);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.ancient-relic{color:var(--hi);font-size:14px;font-weight:600}.ancient-relic-desc,.ancient-know{color:#ccc;font-size:12px;line-height:1.4}.event-text{color:#cdd;margin:14px 0 18px;font-size:14px;font-style:italic;line-height:1.6}.event-options{flex-direction:column;gap:8px;margin:12px 0;display:flex}.event-option{border:1px solid var(--br);color:var(--fg);font:inherit;cursor:pointer;text-align:left;background:#2c2c36;border-radius:6px;padding:12px 16px;transition:background .12s,border-color .12s}.event-option:hover{border-color:var(--hi);color:var(--hi);background:#3a3a4a}.event-result{color:#cdd;border-left:3px solid var(--hi);background:#1a1a22;border-radius:4px;margin:14px 0;padding:12px;font-size:14px;line-height:1.6}.char-select{text-align:center;min-height:100vh;color:var(--fg);background:linear-gradient(#0f0f15 0%,#1a1a22 100%);padding:40px 20px 60px}.cs-title{color:var(--hi);letter-spacing:4px;margin:0 0 8px;font-size:36px}.cs-sub{color:var(--mut);margin-bottom:32px;font-size:13px}.cs-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;max-width:1200px;margin:0 auto;display:grid}.cs-card{border:2px solid var(--br);color:var(--fg);font:inherit;text-align:center;cursor:pointer;background:#1f1f28;border-radius:8px;flex-direction:column;gap:8px;padding:14px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;position:relative}.cs-card:not(:disabled):hover{border-color:var(--hi);transform:translateY(-6px);box-shadow:0 10px 30px #ffd8662e}.cs-card.locked{opacity:.55;cursor:not-allowed}.cs-portrait{aspect-ratio:3/4;object-fit:cover;background:#000;border-radius:6px;width:100%}.cs-name{color:var(--hi);font-size:18px;font-weight:700}.cs-desc{color:#cdd;min-height:50px;font-size:12px;line-height:1.4}.cs-stats{color:var(--mut);flex-wrap:wrap;justify-content:center;gap:6px;font-size:11px;display:flex}.cs-lock{color:#ffd866;background:#000000bf;border-radius:4px;padding:6px 12px;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.victory-box{border:2px solid #ffd866!important}.victory-stats{grid-template-columns:1fr 1fr;gap:10px 24px;max-width:320px;margin:16px auto;font-size:15px;display:grid}.victory-stats>div{gap:8px;display:flex}.vlbl{color:var(--mut);width:70px;display:inline-block}.hud .intent{margin-top:6px;font-weight:600}.controls{grid-column:1/-1;justify-content:center;gap:10px;display:flex}.controls button,.result button{background:var(--hi);color:#000;font:inherit;cursor:pointer;border:0;border-radius:4px;padding:8px 20px;font-weight:600}.controls button:hover,.result button:hover{filter:brightness(1.1)}.result{align-items:center;gap:16px;font-size:20px;display:flex}.result.win{color:#7ce28b}.result.loss{color:#ff6e6e}.log{border:1px solid var(--br);color:var(--mut);background:#1a1a22;border-radius:4px;grid-column:1/-1;max-height:140px;padding:8px 12px;font-size:12px;overflow-y:auto}.log div{padding:2px 0}
