:root{color:#e8edf2;background:#111418;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{min-height:36px;border:1px solid #3d4754;border-radius:6px;background:#202832;color:#f5f7fa;cursor:pointer;font:inherit;padding:0 12px}button:hover:not(:disabled){background:#2b3542}button:disabled{color:#687380;cursor:not-allowed}.app-shell{min-height:100vh;padding:20px}.menu-screen,.result-screen,.reward-screen{align-items:center;background:linear-gradient(135deg,rgba(72,169,166,.12),transparent 34%),radial-gradient(circle at 80% 10%,rgba(243,201,105,.12),transparent 28%),#111418;display:flex;min-height:100vh;padding:24px}.menu-hero,.result-panel,.reward-panel{max-width:820px;width:100%}.menu-hero h1,.result-panel h1,.reward-panel h1{font-size:56px;line-height:1;margin:8px 0 14px}.menu-copy,.result-panel p{color:#b8c2cc;font-size:17px;max-width:560px}.eyebrow{color:#f3c969;font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.menu-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.primary-button{background:#48a9a6;border-color:#61c5c2;color:#071112;font-weight:700}.primary-button:hover:not(:disabled){background:#5dc2bf}.top-bar{align-items:center;border-bottom:1px solid #2a313b;display:flex;justify-content:space-between;margin-bottom:18px;padding-bottom:16px}.combat-top-bar{align-items:center;border-bottom:1px solid rgba(42,49,59,.72);display:grid;gap:14px;grid-template-columns:minmax(280px,520px) auto;justify-content:center;margin-bottom:12px;padding-bottom:10px;width:min(100%,760px)}h1,h2,p{margin:0}h1{font-size:24px}h2{font-size:15px;margin-bottom:10px}.top-bar p,.muted{color:#9aa6b2;font-size:13px}.workspace,.combat-layout{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(110px,160px) minmax(280px,460px) minmax(140px,210px);justify-content:center;width:100%}.map-layout{display:grid;gap:18px;grid-template-columns:minmax(320px,760px) minmax(220px,320px)}.run-progress-shell{background:linear-gradient(180deg,rgba(118,219,232,.07),transparent 36%),#111418;min-height:100vh}.run-progress-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:48px}.floor-label{color:#f5f7fa;font-size:22px;font-weight:800;letter-spacing:0}.run-progress-actions{display:flex;gap:8px}.run-progress-layout{align-items:center;display:grid;gap:28px;grid-template-columns:minmax(220px,320px) minmax(420px,780px);min-height:calc(100vh - 160px)}.run-relic-column{align-self:stretch}.run-chain-stage{align-items:center;display:flex;justify-content:center;min-width:0}.linear-chain-wrap{overflow:hidden;padding:34px 20px;position:relative;width:100%}.linear-chain-wrap:before,.linear-chain-wrap:after{content:"";inset-block:0;pointer-events:none;position:absolute;width:82px;z-index:2}.linear-chain-wrap:before{background:linear-gradient(90deg,#111418,#11141800);left:0}.linear-chain-wrap:after{background:linear-gradient(270deg,#111418,#11141800);right:0}.linear-chain{align-items:center;display:flex;justify-content:center;min-width:0}.linear-chain-item{align-items:center;display:flex}.chain-link{background:#3d4754;display:block;height:2px;width:clamp(28px,5vw,72px)}.floor-node{align-items:center;aspect-ratio:1;background:#202832;border:1px solid #3d4754;border-radius:8px;color:#f5f7fa;display:flex;flex-direction:column;gap:4px;height:78px;justify-content:center;padding:0;transition:border-color .14s ease,box-shadow .14s ease,opacity .14s ease,transform .14s ease}.floor-node:disabled{cursor:default}.floor-node.completed{filter:saturate(.3);opacity:.36}.floor-node.current{border-color:#f5f7fa;box-shadow:0 0 22px #76dbe857;cursor:pointer;transform:scale(1.08)}.floor-node.future{opacity:1}.floor-node-icon{font-size:18px;font-weight:900}.floor-node-battle{background:#18323b;border-color:#4fb8d0}.floor-node-event{background:#2a263d;border-color:#a98cdf}.floor-node-shop{background:#3b321c;border-color:#e4be61}.floor-node-boss{background:#3b2026;border-color:#ec7280}.floor-node-finalBoss{background:#44212d;border-color:#ff8aa5;box-shadow:0 0 16px #ff8aa538}.side-panel,.combat-left,.combat-right,.board-column{align-self:start;display:flex;flex-direction:column;gap:12px}.board-column{align-items:center;position:relative}.panel{border:1px solid #2a313b;border-radius:8px;background:#171c22;padding:14px;transition:border-color .14s ease,transform .14s ease,background .14s ease}.combat-shell{background:linear-gradient(180deg,rgba(72,169,166,.06),transparent 34%),#111418;display:flex;justify-content:center}.play-area-wrapper{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 40px);padding-bottom:clamp(18px,5vh,64px);width:100%}.combat-feedback-slot{align-items:center;display:flex;height:74px;justify-content:center;pointer-events:none;width:100%}.combat-right .combat-feedback-slot{align-items:stretch;min-height:150px;height:auto}.combat-hud{align-items:center;background:transparent;border:0;display:grid;gap:10px;grid-template-columns:max-content minmax(160px,320px) max-content;padding:0;position:relative}.combat-hud.impacting{animation:enemy-impact-basic .22s ease-out}.combat-hud.impacting.attack-tetris,.combat-hud.impacting.attack-backToBack{animation:enemy-impact-strong .26s ease-out}.combat-hud.impacting.attack-tSpin{animation:enemy-impact-spin .3s ease-out}.combat-hud.impacting.attack-perfectClear{animation:enemy-impact-critical .36s ease-out}.combat-hud.impacting:after{border:1px solid rgba(118,219,232,.5);border-radius:6px;content:"";inset:-5px;pointer-events:none;position:absolute}.combat-hud.impacting.attack-perfectClear:after{border-color:#f2d978b8}.enemy-name{color:#f5f7fa;font-size:15px;line-height:1;white-space:nowrap}.enemy-hp{color:#c9d3dd;font-size:13px;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.attack-trail{align-items:center;animation:attack-trail-basic .62s ease-out forwards;color:#f5f7fa;display:flex;font-weight:900;justify-content:center;pointer-events:none;position:absolute;top:12px;left:50%;z-index:4}.attack-trail span{background:#171c22d6;border:1px solid rgba(118,219,232,.4);border-radius:999px;box-shadow:0 0 18px #76dbe842;display:inline-flex;padding:5px 10px}.attack-trail.attack-medium span{border-color:#f2d97875;box-shadow:0 0 20px #f2d9783d}.attack-trail.attack-high{animation-name:attack-trail-strong}.attack-trail.attack-high span,.attack-trail.attack-critical span{font-size:18px;padding:6px 12px}.attack-trail.attack-tSpin span{border-color:#c99bea94;box-shadow:0 0 24px #c99bea47}.attack-trail.attack-backToBack span{border-color:#76dbe8a3;box-shadow:0 0 20px #76dbe84d,0 0 34px #76dbe82e}.attack-trail.attack-perfectClear{animation-name:attack-trail-critical}.attack-trail.attack-perfectClear span{border-color:#f2d978c2;color:#f2d978;box-shadow:0 0 22px #f2d9786b,0 0 42px #ee8d952e}.combat-feedback{align-items:center;animation:feedback-pop .26s ease-out;border:1px solid rgba(232,237,242,.18);border-radius:8px;background:#171c22db;display:flex;flex-direction:column;gap:6px;max-width:min(100%,360px);min-width:220px;padding:10px 14px;text-align:center}.combat-right .combat-feedback{justify-content:center;min-width:0;width:100%}.combat-feedback strong{color:#f5f7fa;font-size:24px;line-height:1}.combat-right .combat-feedback strong{font-size:22px}.combat-feedback-details{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.combat-feedback-details span{border:1px solid rgba(232,237,242,.14);border-radius:999px;color:#c9d3dd;font-size:11px;font-weight:700;padding:3px 7px}.combat-feedback-low{box-shadow:0 0 12px #76dbe824}.combat-feedback-medium{box-shadow:0 0 18px #f2d97833}.combat-feedback-medium strong{font-size:27px}.combat-right .combat-feedback-medium strong{font-size:24px}.combat-feedback-high{border-color:#76dbe87a;box-shadow:0 0 26px #76dbe84d}.combat-feedback-high strong{font-size:31px}.combat-right .combat-feedback-high strong{font-size:27px}.combat-feedback-critical{border-color:#f2d978ad;box-shadow:0 0 30px #f2d97857,0 0 54px #ee8d9529}.combat-feedback-critical strong{color:#f2d978;font-size:34px}.combat-right .combat-feedback-critical strong{font-size:29px}@keyframes feedback-pop{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes attack-trail-basic{0%{opacity:0;transform:translate(-50%,18px) scale(.94)}35%{opacity:1}to{opacity:0;transform:translate(calc(-50% + 120px),-54px) scale(1)}}@keyframes attack-trail-strong{0%{opacity:0;transform:translate(-50%,20px) scale(.92)}32%{opacity:1}to{opacity:0;transform:translate(calc(-50% + 146px),-66px) scale(1.08)}}@keyframes attack-trail-critical{0%{opacity:0;transform:translate(-50%,22px) scale(.9)}28%{opacity:1}to{opacity:0;transform:translate(calc(-50% + 164px),-76px) scale(1.14)}}@keyframes enemy-impact-basic{0%,to{transform:translate(0)}38%{transform:translate(3px)}}@keyframes enemy-impact-strong{0%,to{transform:translate(0);box-shadow:none}32%{transform:translate(5px);box-shadow:0 0 22px #76dbe847}}@keyframes enemy-impact-spin{0%,to{transform:rotate(0);box-shadow:none}35%{transform:rotate(.6deg) translate(4px);box-shadow:0 0 24px #c99bea4d}}@keyframes enemy-impact-critical{0%,to{transform:scale(1);box-shadow:none}35%{transform:scale(1.018);box-shadow:0 0 26px #f2d97857,0 0 48px #ee8d952e}}.board{aspect-ratio:10 / 20;background:#0b0e11;border:2px solid #384250;contain:layout paint;display:grid;flex:0 0 auto;overflow:hidden;place-self:start center;position:relative;width:min(100%,calc((100vh - 160px)/2))}.board-stage{align-items:stretch;display:grid;gap:8px;grid-template-columns:clamp(16px,2vw,22px) minmax(0,1fr);width:100%}.garbage-gauge{align-self:stretch;min-height:180px;opacity:.92;pointer-events:none;width:100%}.garbage-gauge-track{background:#0b0e11d1;border:1px solid rgba(61,71,84,.86);border-radius:999px;box-shadow:inset 0 0 0 1px #f5f7fa08;height:100%;overflow:hidden;position:relative}.garbage-gauge-fill{background:#e4be61;border-radius:inherit;bottom:0;box-shadow:0 0 14px #e4be6142;left:0;min-height:0;position:absolute;right:0;transition:background .14s ease,box-shadow .14s ease,height .14s ease}.garbage-gauge-medium .garbage-gauge-fill{background:#e28f4d;box-shadow:0 0 16px #e28f4d52}.garbage-gauge-high .garbage-gauge-fill{background:#e65f5c;box-shadow:0 0 20px #e65f5c6b}.garbage-gauge-ready{background:#f5f7fa33;border-radius:inherit;bottom:0;display:block;left:0;position:absolute;right:0}.board.danger-board-warning{border-color:#e6c86c;box-shadow:0 0 14px #f2d9782e}.board.danger-board-danger{border-color:#ee8d95;box-shadow:0 0 18px #ee8d9547,0 0 34px #ee8d951f}.board.danger-board-critical{animation:danger-board-critical-pulse .88s ease-in-out infinite;border-color:#ff8f9e;box-shadow:0 0 22px #ee8d955c,0 0 46px #ee8d952e}.board.danger-board-garbage-pressure:after{border:1px solid rgba(242,217,120,.42);content:"";inset:4px;pointer-events:none;position:absolute;z-index:2}.danger-screen-edge{animation:danger-screen-edge-pulse .92s ease-in-out infinite;border:2px solid rgba(238,141,149,.42);box-shadow:inset 0 0 42px #ee8d9529,inset 0 0 86px #ee8d951a;inset:8px;pointer-events:none;position:fixed;z-index:20}.board.grid-visible{gap:1px}.board.grid-hidden{gap:0}.cell{background:#151a20;border:0;min-height:0;min-width:0;width:100%}.cell.filled{background:#76dbe8;box-shadow:inset 0 0 0 1px #ffffff2e}.cell.active{background:#f2d978}.cell.ghost{background:#e8edf20d;box-shadow:inset 0 0 0 1px #e8edf242,inset 0 0 0 3px #e8edf20a}.cell.garbage{filter:saturate(.7) brightness(.82)}@keyframes danger-board-critical-pulse{0%,to{box-shadow:0 0 18px #ee8d9547,0 0 34px #ee8d951f}50%{box-shadow:0 0 28px #ee8d9575,0 0 58px #ee8d9538}}@keyframes danger-screen-edge-pulse{0%,to{opacity:.42}50%{opacity:.88}}.empty-board{align-items:center;aspect-ratio:10 / 20;border:2px dashed #384250;color:#8b98a5;display:flex;justify-content:center;width:100%}.controls-row,.debug-buttons,.preview-list,.reward-grid{display:flex;flex-wrap:wrap;gap:8px}.preview-list{min-height:36px}.node-map{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.map-node{align-items:flex-start;border-color:#2f3945;display:flex;flex-direction:column;gap:8px;min-height:82px;padding:12px;text-align:left}.map-node span{color:#9aa6b2;font-size:11px;text-transform:uppercase}.map-node.current{border-color:#f3c969}.map-node.available{border-color:#48a9a6}.map-node.boss{border-color:#e65f5c}.map-node.elite{border-color:#b794f4}.map-node:hover:not(:disabled),.reward-card:hover{transform:translateY(-2px)}.reward-card-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:24px}.reward-card{align-items:flex-start;background:#171c22;border-color:#3d4754;display:flex;flex-direction:column;gap:10px;min-height:150px;padding:16px;text-align:left}.reward-card span{color:#b8c2cc;white-space:normal}.stat-row{align-items:center;display:flex;justify-content:space-between;gap:12px;margin:8px 0}.stat-row span{color:#9aa6b2}.hp-bar{background:#313944;border-radius:4px;height:10px;overflow:hidden}.hp-bar div{background:#e65f5c;height:100%;transition:width .16s ease}.piece-chip{border:1px solid #3d4754;border-radius:6px;display:inline-flex;min-width:34px;padding:6px 8px;justify-content:center}.hold-panel,.queue-panel{border:1px solid #2a313b;border-radius:8px;background:#171c22;padding:14px}.hold-panel.used{opacity:.58}.piece-renderer{display:grid;gap:3px;grid-template-columns:repeat(4,1fr);height:76px;width:76px}.piece-renderer.small{height:54px;width:54px}.piece-renderer.large{height:88px;width:88px}.piece-renderer.dimmed{filter:grayscale(.35) brightness(.55)}.piece-cell{border-radius:3px;min-height:0;min-width:0}.piece-cell.filled{box-shadow:inset 0 0 0 1px #ffffff2e}.queue-list{align-items:center;display:flex;flex-direction:column;gap:10px}.queue-piece{transform-origin:top center}.relic-item{border-top:1px solid #2a313b;display:flex;flex-direction:column;gap:4px;padding:10px 0 0}.relic-item span{color:#9aa6b2;font-size:13px}.relic-panel.compact{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto;padding:10px}.relic-panel.compact h2{font-size:12px;margin-bottom:2px}.relic-panel.compact .muted{font-size:12px}.relic-panel.compact .relic-item{align-items:center;border:1px solid #2f3945;border-radius:6px;flex-direction:row;gap:8px;padding:6px}.relic-panel.compact .relic-item strong{font-size:12px;line-height:1.15}.relic-icon{align-items:center;background:#202832;border:1px solid #3d4754;border-radius:6px;color:#f2d978;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;height:24px;justify-content:center;width:24px}.relic-panel.compact .relic-icon{font-size:10px;height:20px;width:20px}.shop-actions{display:flex;justify-content:flex-end;margin-top:18px}pre{color:#b8c2cc;font-size:11px;max-height:220px;overflow:auto;white-space:pre-wrap}.event-log{color:#b8c2cc;font-size:12px;height:180px;line-height:1.45;list-style-position:inside;margin:0;max-height:180px;overflow:auto;padding:0}.setting-row{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(130px,170px) 1fr 64px;margin:10px 0}.setting-row span{color:#9aa6b2}.setting-row input{width:100%}.modal-backdrop{align-items:center;background:#00000094;display:flex;inset:0;justify-content:center;position:fixed;z-index:20}.reward-modal,.settings-modal{background:#171c22;border:1px solid #3d4754;border-radius:8px;padding:20px;width:min(440px,calc(100vw - 32px))}.settings-modal{max-height:min(720px,calc(100vh - 32px));overflow:auto;width:min(760px,calc(100vw - 32px))}.settings-header{align-items:center;display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.settings-tabs{display:flex;gap:8px;margin-bottom:16px}.settings-tabs button.active{background:#48a9a6;border-color:#61c5c2;color:#071112;font-weight:700}.settings-content{display:flex;flex-direction:column;gap:10px}.toggle-row,.control-binding-row{align-items:center;border-top:1px solid #2a313b;display:flex;justify-content:space-between;gap:16px;padding:10px 0 0}.control-bindings{display:grid;gap:8px}.control-binding-row button{min-width:180px}.binding-active{border-color:#f3c969;color:#f3c969}.settings-error{color:#e65f5c;font-size:13px}@media(max-width:900px){.workspace,.combat-layout,.map-layout{grid-template-columns:1fr}.combat-shell{align-items:stretch}.play-area-wrapper{justify-content:flex-start;min-height:auto;padding-bottom:0}.menu-hero h1,.result-panel h1,.reward-panel h1{font-size:42px}.top-bar{align-items:flex-start;gap:12px;grid-template-columns:1fr}.combat-top-bar{grid-template-columns:1fr auto;width:100%}}@media(max-height:760px){.play-area-wrapper{justify-content:flex-start;min-height:auto;padding-bottom:0}}
