:root{color-scheme:dark;--gold:#e5c58b;--muted:#b1b9af;--ink:#101b24;--edge:#716755}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:grid;place-items:center;padding:12px;background:radial-gradient(ellipse at center,#182025,#060a0f 70%);color:#f1ead5;font-family:DuelSerif,monospace}button,select{font:inherit;color:inherit}button{position:relative;border:1px solid #9d8b69;border-radius:7px;padding:8px 14px;background:linear-gradient(#3d4a49 0 12%,#293839 12% 82%,#1a282f 82%);box-shadow:inset 0 1px #d7c69a55,inset 2px 0 #fff1,0 3px 0 #0b111b,0 0 0 1px #0a121b;cursor:pointer;text-shadow:1px 2px #0c1520;transition:filter .1s,translate .1s}button:hover:not(:disabled){filter:brightness(1.22);border-color:#ffe0a3}button:active:not(:disabled){translate:0 2px;box-shadow:inset 0 2px 3px #0009,0 1px #0b111b}button:focus-visible{outline:2px solid #ffe19d;outline-offset:3px}button:disabled{opacity:.38;cursor:default}button[hidden],[hidden]{display:none!important}canvas{display:block;image-rendering:pixelated}#cabinet{position:relative;width:min(1040px,100%);border:2px solid #a38c63;border-radius:12px;background:#131e23;box-shadow:0 0 0 3px #111a20,0 0 0 5px #554a36,0 25px 90px #000b;overflow:hidden}header{position:relative;z-index:5;height:42px;display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:linear-gradient(#141d26f5,#141d2600)}header>b{font-size:18px;letter-spacing:3px;color:#f0d398;text-shadow:2px 2px #17121c}header>b span{font-size:12px;letter-spacing:2px;color:#cbbfa8}nav{display:flex;gap:7px}nav button{padding:4px 9px;font-size:10px;background:#1b2931c9;border-color:#786d59;border-radius:6px}#fullscreen{font-size:16px;line-height:14px}
/* Character select is a game backdrop with a roster and a featured fighter. */
#selection{background:linear-gradient(#132127b3,#0b1824ef),url('assets/courtyard-pixel.png') center/cover}.select-title{display:flex;align-items:center;justify-content:space-between;padding:10px 24px 16px}.select-title h1{margin:0;font-size:26px;letter-spacing:7px;color:#f8dfaa;text-shadow:3px 3px #2c1e20}.select-title>span{font-size:10px;color:#bfc2b1}.select-layout{display:grid;grid-template-columns:1fr 208px;gap:22px;padding:6px 22px 18px}.roster{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.general{padding:4px;min-width:0;display:flex;align-items:center;flex-direction:column;background:linear-gradient(#293934e8,#10232cf0);border-color:#67736d;border-radius:7px}.general canvas{width:80px;height:84px;object-fit:cover;max-width:100%}.general .name{font-size:12px;letter-spacing:2px;padding:5px 0 2px;text-align:center;width:100%;color:#d9d7bf}.general .stat{position:absolute;right:5px;top:4px;font:10px DuelSerif,monospace;color:#dcc991;text-shadow:1px 1px #000}.general[aria-pressed=true]{border-color:#ffe2a1;background:linear-gradient(#81734a,#403b2f);box-shadow:inset 0 0 0 2px #d5b36a,0 0 16px #f5c36c35}.general[aria-pressed=true] .name{color:#ffe6ac}.selected-detail{display:flex;flex-direction:column;align-items:center;text-align:center;padding:5px 10px;background:linear-gradient(transparent,#101e29a8);border-radius:14px}#selected-han{font-size:10px;letter-spacing:3px;color:#b5bdac;margin:4px 0 13px}#selected-portrait{width:144px;height:173px;border-radius:8px;border:2px solid #c9ab73;box-shadow:0 0 0 3px #0c161e,0 10px 24px #0006}.selected-detail h2{font-size:28px;letter-spacing:7px;margin:12px 0 3px;color:#f5dea8}.selected-detail p{font-size:11px;color:#b4bba7;margin:4px 0 10px}.selected-detail strong{font:26px DuelSerif,monospace;color:#e9cb8d;margin-left:10px}#selected-weapon{font-size:11px;color:#a3b5b9}#selected-ultimate{font-size:12px;color:#edd191;margin:5px 0 14px}.selected-detail label{font-size:10px;color:#a8b6b1;margin:4px 0 8px}.rival-picker{display:flex;align-items:center;justify-content:space-between;width:100%;gap:5px}.rival-picker button{font-size:10px;padding:6px 9px}#enemy-display{font-size:14px;letter-spacing:3px}#start,#fight,#tutorial-next{background:linear-gradient(#bd9252 0 10%,#856539 10% 83%,#5b432c 83%);border-color:#e7c589;color:#fff2c9;box-shadow:inset 0 1px #ffe5a5,0 3px #2b2520,0 0 0 2px #121a22}#start{width:100%;margin-top:17px;padding:11px;font-size:20px;font-weight:700;letter-spacing:10px}.selection-bottom{display:flex;justify-content:space-between;padding:8px 23px 12px;font-size:10px;color:#bfc1af}.selection-bottom small{font-size:9px;color:#728b8e}
/* The field, HUD, dialogue and cards form a single stage. */
#cabinet:has(#battle:not([hidden])){width:min(1150px,calc((100dvh - 36px)*1.5),100%)}#cabinet:has(#battle:not([hidden])) header{position:absolute;inset:0 0 auto;height:35px}#cabinet:has(#battle:not([hidden])) header>b{font-size:13px}#cabinet:has(#battle:not([hidden])) header>b span{font-size:10px}.arena{position:relative;overflow:hidden}#scene{width:100%;height:auto;aspect-ratio:3/2}.hud{position:absolute;inset:43px 18px auto;display:flex;justify-content:space-between;gap:18px;z-index:2;pointer-events:none;text-shadow:1px 2px #09131c}.fighter-hud{display:flex;gap:11px;width:43%;min-width:0}.fighter-hud>canvas{width:58px;height:70px;object-fit:cover;border:2px solid #a88d5f;border-radius:7px;box-shadow:0 0 0 2px #172327,0 5px 9px #0006}.enemy-hud{flex-direction:row-reverse}.fighter-stats{flex:1;min-width:0}.fighter-name{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.fighter-name>b{font-size:20px;letter-spacing:4px}.fighter-name small{font-size:9px;color:#cbbb9b}.fighter-name strong{font-weight:400}.meter-title{display:flex;justify-content:space-between;font-size:9px;margin-bottom:3px;color:#eee2bd}.meter-title b{font:12px DuelSerif,monospace}.health{height:12px;border:1px solid #c4ae7b;border-radius:4px;background:#0b1521bd;box-shadow:0 0 0 2px #17202acc;overflow:hidden}.health i{display:block;height:100%;background:linear-gradient(#e2e9a1 0 25%,#9ea955 25% 72%,#56602e 72%);transition:width .2s}.health.enemy i{background:linear-gradient(#f0c58d 0 25%,#c28058 25% 72%,#804737 72%)}.minor-meters{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:5px}.minor-meters small{display:flex;justify-content:space-between;font-size:9px;margin-bottom:2px;color:#dbd3b2}.energy,.rage{height:5px;border:1px solid #7f795f;background:#0c1721a8;border-radius:2px;overflow:hidden}.energy i,.rage i{display:block;height:100%;background:#78bfc9;transition:width .15s}.rage i{background:#d6a45d}.rage.full{box-shadow:0 0 10px #ffdc8166}.rage.full i{background:#ffe2a1}.round-display{text-align:center;color:#f5deb0;min-width:40px;margin-top:3px}.round-display>span{font:30px DuelSerif,monospace;display:block}.round-display small{font-size:10px}.speech{position:absolute;left:3%;top:21%;max-width:33%;z-index:2;color:#f8edcc;background:#16232ae0;border:1px solid #a59473;border-radius:9px;padding:7px 12px;box-shadow:2px 3px 0 #08111a80;text-shadow:1px 1px #000;pointer-events:none}.speech b{display:block;font-size:10px;letter-spacing:2px;color:#d6c093;margin-bottom:3px}.speech span{font-size:12px;line-height:1.45;display:block;word-break:keep-all}.speech:after{content:'';position:absolute;bottom:-6px;left:20px;width:10px;height:10px;transform:rotate(45deg);background:#16232a;border-right:1px solid #a59473;border-bottom:1px solid #a59473}.reply{left:auto;right:3%;top:23%}.reply:after{left:auto;right:20px}.opponent-speaking b{color:#e5a98b}.enemy-tell{position:absolute;top:18.5%;right:3%;font-size:10px;color:#efd2a2;text-shadow:1px 2px #000;padding:3px 6px;background:#171b2190;border-radius:4px}.danger{color:#ffc099}.battle-dock{position:absolute;inset:auto 0 0;padding:4px 17px 10px;z-index:3;pointer-events:none;background:linear-gradient(transparent,#0d1822aa 22%,#0a1521dd)}.battle-dock button{pointer-events:auto}.status{display:flex;justify-content:space-between;font-size:9px;color:#d5d2ba;min-height:16px;text-shadow:1px 1px #000}.controls{display:flex;align-items:center;justify-content:center;gap:9px;position:relative;min-height:35px}#slots{display:flex;gap:7px;flex:0 1 430px}.slot{flex:1;min-width:0;padding:6px 9px;font-size:11px;text-align:left;background:#14232bbd;border-color:#7f7b61}.slot span:first-child{font:11px DuelSerif,monospace;color:#b8ab7d;margin-right:8px}.slot small{float:right;font-size:9px;color:#a5b5b1;padding-top:2px}.slot.active{background:#756039;border-color:#fce0a2;color:#fff1bc}#clear{padding:6px 9px;font-size:10px;background:#182832cc}#fight{min-width:68px;padding:7px 15px;font-size:14px;font-weight:700;letter-spacing:3px;border-radius:12px}.hand-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:10px;color:#d7c399;margin:6px 7px 0}.hand-meta #fortune{margin-left:auto;font-size:9px;color:#9aafb3}#combo.jackpot{color:#ffda80;text-shadow:0 0 8px #eab64d}#reroll{font-size:10px;padding:4px 8px;background:#203237;border-color:#6e817a}#reroll small{font-size:8px;color:#baaa82;margin-left:5px}#move-list{display:flex;justify-content:center;gap:10px;padding:9px 4px 1px;min-height:165px;perspective:900px}.move.card{--card-color:#c6b07b;display:flex;align-items:center;flex-direction:column;flex:0 1 118px;min-width:0;height:151px;padding:5px 6px 7px;border:2px solid #96896d;border-radius:9px;background:linear-gradient(145deg,#4a4e43,#1e2b31 55%,#26323a);box-shadow:inset 0 0 0 2px #14202a,0 5px 0 #0b1520,0 8px 12px #0006;transform:rotate(var(--tilt));transform-origin:50% 115%;transition:transform .15s,filter .15s,opacity .15s;text-align:center}.move.card:after{content:'';position:absolute;inset:3px;border:1px solid #d8c28e33;border-radius:5px;pointer-events:none}.move.card:hover:not(:disabled),.move.card:focus-visible{transform:translateY(-16px) rotate(0) scale(1.06);z-index:4;filter:brightness(1.15);box-shadow:0 0 15px color-mix(in srgb,var(--card-color),transparent 65%),0 9px 15px #0009}.move.card .card-cost{position:absolute;top:4px;left:5px;z-index:2;min-width:23px;height:22px;border:1px solid #c1d4c2;border-radius:6px;background:linear-gradient(#488088,#254c59);box-shadow:0 2px #111c25;font:bold 11px DuelSerif,monospace;display:grid;place-items:center}.move.card .card-rarity{font-size:8px;letter-spacing:2px;color:#bdb29b;height:14px;margin-left:22px}.move.card b{font-size:12px;line-height:17px;color:#f6e7c5;margin-top:1px;white-space:nowrap}.move.card canvas{width:100%;height:62px;margin:4px 0;border:1px solid #82785f;border-radius:5px;object-fit:cover}.move.card .card-desc{font-size:9px;line-height:11px;min-height:18px;display:flex;align-items:center;justify-content:center;color:#cabfa4}.move.card .card-bonus{font-size:10px;color:var(--card-color);margin-top:auto}.move.card kbd{position:absolute;right:5px;bottom:4px;font:8px DuelSerif,monospace;color:#9aabac}.move.card.tier-1{border-color:#7dafc8;box-shadow:inset 0 0 0 2px #24343e,0 5px #0c1924,0 0 12px #75b1ca22}.move.card.tier-1 .card-rarity{color:#9fdaed}.move.card.tier-2{border-color:#d7b675;background:linear-gradient(145deg,#746040,#342f2b 55%,#382d2e);box-shadow:inset 0 0 0 2px #5e4e35,0 5px #171a21,0 0 13px #f8b85633}.move.card.tier-2 .card-rarity{color:#ffdc89}.move.card:disabled{opacity:.52;filter:saturate(.6)}.move.card.picked{transform:translateY(8px) rotate(var(--tilt));opacity:.25;filter:grayscale(.6)}.move.card.charged:not(:disabled){box-shadow:0 0 20px #ffcf6966,inset 0 0 14px #f0be6733}#focus-notice{position:absolute;top:33%;left:4%;font-size:10px;color:#ffde94;background:#2b211ccc;padding:4px 9px;border:1px solid #d4b474;border-radius:6px;z-index:2}
#round-banner{position:absolute;inset:35% 0 auto;display:flex;align-items:center;flex-direction:column;padding:13px 0;z-index:4;pointer-events:none;background:linear-gradient(90deg,transparent,#11202dea 30% 70%,transparent);text-shadow:3px 3px #111824;animation:round-in .9s ease-out both}#round-banner strong{font-size:40px;letter-spacing:12px;color:#ffdf9e}#round-banner small{font-size:11px;letter-spacing:8px;color:#d3bd8b}#round-banner span{font-size:11px;letter-spacing:4px;color:#c1c7bb}@keyframes round-in{0%{opacity:0;transform:scale(1.1)}20%,75%{opacity:1;transform:scale(1)}100%{opacity:0}}#fortune-pop{position:absolute;z-index:6;left:50%;top:40%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;min-width:270px;padding:8px 22px 20px;border:2px solid #c3a46c;border-radius:14px;background:radial-gradient(ellipse,#283333f5,#101d2bf5);box-shadow:0 0 0 3px #111d29,0 0 0 5px #63523a,0 20px 30px #0007;pointer-events:none}#dice-art{width:240px;height:150px;margin:-10px 0 -12px}#dice-title{font-size:21px;letter-spacing:2px;color:#ffe3ac}#dice-detail{font-size:11px;color:#d9bd8b;margin-top:6px}#fortune-pop.lucky{border-color:#ffe095;box-shadow:0 0 0 4px #745631,0 0 65px #ffc75660}#cutin{position:absolute;inset:27% 0 auto;height:43%;z-index:6;overflow:hidden;border-block:3px solid var(--aura,#dbb874);background:#0c0c19;box-shadow:0 0 35px var(--aura);animation:cut-in .16s steps(4)}#cutin canvas{width:100%;height:100%;object-fit:cover}#cutin>div{position:absolute;left:52%;top:28%;color:#fff1d1;text-shadow:3px 3px #141322,0 0 16px var(--aura)}#cutin-label{font-size:13px;letter-spacing:4px}#cutin-title{display:block;font-size:38px;letter-spacing:5px;margin-top:12px;font-weight:900}@keyframes cut-in{from{transform:translateX(-100%)}to{transform:translateX(0)}}#result{position:absolute;inset:0;z-index:7;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:18px;background:radial-gradient(ellipse,#142632ee,#07101af5);text-align:center}#result h2{width:100%;font-size:56px;letter-spacing:16px;color:#ffe1a1;text-shadow:4px 4px #725333;margin:10px}#result p{width:100%;font-size:13px;color:#bfc8b9}#result button{padding:12px 22px}
dialog{max-width:calc(100% - 24px);max-height:90dvh;border:2px solid #b79b6b;border-radius:12px;background:linear-gradient(#233338,#121f2a);color:#e5ddc7;padding:23px;font-size:13px;line-height:1.8;box-shadow:0 0 0 3px #12202a,0 0 0 5px #5d503b,0 20px 60px #000a}dialog::backdrop{background:#050b12df}dialog h2{color:#f3d8a2;margin-top:5px}dialog small{color:#a8b4ac}#close-help{float:right;padding:0 9px}#tutorial{width:540px;padding:24px}.tutorial-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:3px;color:#a4b6b5}#tutorial h2{font-size:25px;letter-spacing:2px;margin:17px 0 9px}#tutorial-copy{min-height:68px;font-size:14px;color:#c8d1c9}#tutorial-demo{display:flex;justify-content:center;align-items:center;gap:14px;min-height:125px;margin:14px 0}#tutorial-demo .tutorial-card{width:115px;height:125px;display:flex;flex-direction:column;justify-content:space-between;padding:12px;background:linear-gradient(#485b50,#25353a);border:2px solid #b6a47c}.tutorial-card small{font-size:10px;color:#a5d9e1}.tutorial-card strong{font-size:18px}.tutorial-card span{font-size:12px;color:#ddc897}#tutorial-demo .chosen{opacity:1;background:linear-gradient(#817448,#4a4432);border-color:#f3d494}#tutorial-demo.success{border-bottom:2px solid #efcd86}#tutorial-feedback{min-height:40px;color:#ebce94;font-size:12px}.tutorial-actions{display:flex;justify-content:space-between;gap:20px;margin-top:12px}.tutorial-actions button{min-width:90px;padding:10px 16px}#tutorial-demo .tutorial-dice{font-size:24px;padding:18px}#rules button{margin-bottom:10px}#cabinet:fullscreen{width:min(100vw,150dvh);margin:auto;border:0;border-radius:0;box-shadow:none;background:#0b1720}
@media(max-width:650px){body{padding:6px}#cabinet{border-radius:9px}header{padding:6px 9px}header>b{font-size:13px;letter-spacing:1px}header>b span{font-size:10px}nav{gap:4px}nav button{padding:4px 6px;font-size:8px}.select-title{padding:8px 10px}.select-title h1{font-size:18px;letter-spacing:3px}.select-title>span{font-size:8px}.select-layout{grid-template-columns:1fr 104px;gap:8px;padding:8px}.roster{grid-template-columns:repeat(4,1fr);gap:6px}.general{padding:2px}.general canvas{width:48px;height:56px}.general .name{font-size:9px;letter-spacing:0}.general .stat{font-size:8px;right:3px}.selected-detail{padding:4px}#selected-han{font-size:8px;letter-spacing:1px}#selected-portrait{width:86px;height:103px}.selected-detail h2{font-size:20px;letter-spacing:3px}.selected-detail p{font-size:9px}.selected-detail strong{font-size:21px;margin-left:4px}#selected-weapon{font-size:9px}#selected-ultimate{font-size:10px}.rival-picker button{padding:4px;font-size:8px}#enemy-display{font-size:11px;letter-spacing:0}#start{font-size:17px;letter-spacing:4px}.selection-bottom{font-size:8px;padding:8px 12px}.selection-bottom small{font-size:7px}#cabinet:has(#battle:not([hidden])){width:100%}.arena{min-height:570px}#scene{width:100%;height:570px;object-fit:fill}.hud{inset:39px 8px auto;gap:6px}.fighter-hud{width:44%;gap:5px}.fighter-hud>canvas{width:32px;height:39px}.fighter-name>b{font-size:12px;letter-spacing:1px}.fighter-name small{font-size:7px}.meter-title{font-size:7px}.meter-title b{font-size:9px}.health{height:8px}.minor-meters{gap:4px;margin-top:4px}.minor-meters small{font-size:7px}.energy,.rage{height:4px}.round-display{min-width:22px}.round-display>span{font-size:19px}.round-display small{font-size:8px}.speech{top:21%;left:3%;max-width:45%;padding:5px 7px}.speech b{font-size:8px;margin-bottom:2px}.speech span{font-size:10px;line-height:1.4}.reply{left:auto;right:3%;top:26%}.enemy-tell{top:18%;font-size:8px;padding:2px 4px}.battle-dock{padding:3px 7px 8px}.status{font-size:8px;min-height:17px}.controls{gap:5px;min-height:30px}#slots{gap:4px;flex:1}.slot{padding:5px 4px;font-size:9px}.slot span:first-child{margin-right:4px;font-size:9px}.slot small{display:none}#clear{font-size:9px;padding:5px}#fight{font-size:11px;padding:6px;min-width:45px;letter-spacing:1px}.hand-meta{gap:4px;font-size:8px;margin:5px 0 0;flex-wrap:wrap}.hand-meta #fortune{font-size:7px}#reroll{font-size:8px;padding:4px}#reroll small{font-size:7px;margin-left:2px}#move-list{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;gap:8px;padding:10px 4px 7px;min-height:160px;scrollbar-width:thin;scrollbar-color:#9d8a64 #182831}.move.card{flex:0 0 88px;height:139px;transform:none;padding:4px}.move.card b{font-size:11px}.move.card canvas{height:52px}.move.card .card-cost{width:20px;min-width:20px;height:20px;font-size:10px;top:3px;left:4px}.move.card .card-rarity{font-size:7px;letter-spacing:1px}.move.card .card-desc{font-size:8px;line-height:10px}.move.card .card-bonus{font-size:9px}.move.card kbd{display:none}.move.card:hover:not(:disabled),.move.card:focus-visible{transform:translateY(-4px)}.move.card.picked{transform:translateY(5px)}#focus-notice{top:35%;font-size:8px;padding:3px 5px}#cutin-title{font-size:22px;letter-spacing:1px;margin-top:7px}#cutin-label{font-size:9px;letter-spacing:1px}#fortune-pop{min-width:250px;padding-inline:12px}#round-banner strong{font-size:30px}#result h2{font-size:38px}#result p{font-size:11px}#tutorial{padding:17px}#tutorial h2{font-size:20px}#tutorial-copy{font-size:12px}#tutorial-demo{gap:8px}#tutorial-demo .tutorial-card{width:85px;height:115px;padding:9px}.tutorial-card strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){button,.move.card,.health i,.energy i,.rage i{transition:none}#cutin,#round-banner{animation:none}}
/* Five-stage order sheet: no cards, energy economy, or random draws. */
.strategy-dock{position:absolute;inset:auto 0 0;z-index:3;padding:8px 20px 12px;background:linear-gradient(transparent,#0f202bed 16%,#101c27fa 55%);text-shadow:1px 1px #07121c}.strategy-dock .status{align-items:center;gap:10px;margin-bottom:5px;font-size:10px}.strategy-dock .status b{font-size:12px;color:#f2d89d}.strategy-dock .status span{margin-left:auto}#speed{font-size:9px;padding:3px 8px}#policy-list{display:flex;gap:7px}#policy-list button{flex:1;padding:5px 8px;font-size:11px}#policy-list button[aria-pressed=true]{background:linear-gradient(#9d8150,#665535);border-color:#edcd8a;color:#fff1c6;box-shadow:inset 0 0 0 1px #dcc58c55,0 2px #121b20}.plan-label{display:flex;justify-content:space-between;padding:5px 1px;font-size:9px;color:#bfc6b3}#plan-count{color:#e3c784}.plan-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.plan-row>b{font-size:10px;color:#bfbd9d;width:25px;flex-shrink:0}.plan-row #slots{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;flex:1}.strategy-dock .slot{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px;min-height:34px;text-align:center}.strategy-dock .slot small{font:10px DuelSerif,monospace;color:#b9ac7e;display:block;float:none}.strategy-dock .slot b{font-size:12px;font-weight:500}.strategy-dock .slot.editing{border-color:#f5d394;background:#344644;box-shadow:inset 0 0 0 1px #d9bc73,0 2px #12212b}.strategy-dock .slot.active{opacity:1;border-color:#ffe7a3;background:#80633c}.strategy-dock .slot:disabled{opacity:.8}#enemy-plan{display:grid;grid-template-columns:repeat(5,1fr);flex:1;gap:6px}#enemy-plan span{text-align:center;padding:3px;border:1px solid #5a625a88;border-radius:4px;font-size:10px;color:#c5ab92;background:#09131d6b}#enemy-plan span.active{color:#ffe7b5;border-color:#b59863}.command-footer{display:flex;gap:10px;margin-top:7px}#command-list{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;flex:1}.command{display:flex;align-items:center;justify-content:center;gap:7px;min-height:27px;padding:4px 7px;font-size:11px}.command>span{color:#d7bd81;font-size:15px;line-height:1}.command>b{font-size:11px;font-weight:500}.command.unlearned{opacity:.17}.confirm-stack{display:flex;gap:6px;align-items:stretch}.confirm-stack #clear{font-size:10px;padding:8px}.confirm-stack #fight{font-size:18px;letter-spacing:4px;min-width:84px}#command-info{margin:6px 0 0;min-height:23px;color:#c6c7b2;font-size:10px;line-height:1.45}.duel-condition{display:flex;justify-content:space-between;margin-top:7px;font-size:10px;color:#d2c399}.enemy-tell{font-size:9px;max-width:58%;top:18%;text-align:right}.strategy-dock:has(#command-list[hidden]) #policy-list,.strategy-dock:has(#command-list[hidden]) .plan-label,.strategy-dock:has(#command-list[hidden]) .confirm-stack{display:none}.strategy-dock:has(#command-list[hidden]){background:linear-gradient(transparent,#0d1b29dc);padding-bottom:15px}#battle-review{width:min(640px,86%);padding:12px 20px;margin:0 auto;color:#bfc8bb;font-size:11px;line-height:1.7;text-align:left;max-height:28vh;overflow:auto}#result{gap:10px}#result h2{font-size:44px}#tutorial-demo{white-space:pre-line;text-align:center;color:#edcc89;border-block:1px solid #536360;font-size:16px;line-height:2}#tutorial-copy{line-height:1.9}#cabinet:has(#battle:not([hidden])) .speech{top:21%}#cabinet:has(#battle:not([hidden])) .reply{top:23%}
@media(max-width:650px){.strategy-dock{padding:5px 8px 9px}.strategy-dock .status{font-size:8px;margin-bottom:4px}.strategy-dock .status b{font-size:10px}.strategy-dock .status span{max-width:54%}#speed{font-size:8px;padding:3px}#policy-list{gap:4px}#policy-list button{font-size:9px;padding:5px 2px}.plan-label{font-size:8px;padding:5px 0}.plan-row{gap:4px}.plan-row>b{width:18px;font-size:8px}.plan-row #slots{gap:4px}.strategy-dock .slot{flex-direction:column;gap:2px;padding:4px 1px;min-height:40px}.strategy-dock .slot small{font-size:8px}.strategy-dock .slot b{font-size:9px}.enemy-plan-row{margin-bottom:4px}#enemy-plan{gap:4px}#enemy-plan span{font-size:8px;padding:3px 1px}.command-footer{gap:5px;margin-top:5px}#command-list{grid-template-columns:repeat(3,1fr);gap:4px}.command{min-height:26px;padding:4px 2px;gap:3px}.command>span{font-size:11px}.command>b{font-size:9px}.confirm-stack{flex-direction:column;gap:5px}.confirm-stack #fight{font-size:13px;letter-spacing:2px;min-width:48px;flex:1;padding:5px}.confirm-stack #clear{font-size:9px;padding:5px}#command-info{font-size:8px;min-height:25px}.duel-condition{font-size:7px;margin-top:5px}.enemy-tell{font-size:7px;max-width:75%;top:17%}#cabinet:has(#battle:not([hidden])) .speech{top:24%;max-width:45%}#cabinet:has(#battle:not([hidden])) .reply{top:29%}#battle-review{font-size:9px;width:94%}#tutorial-demo{font-size:13px}}
/* Battle planning is a full-screen card table; combat retains only its timeline. */
.planning-heading{display:none}.planning .strategy-dock{inset:35px 0 0;padding:20px 28px 16px;display:flex;flex-direction:column;justify-content:center;gap:6px;background:linear-gradient(90deg,#0d1927ed,#172b32d9,#0d1927ed),url('assets/courtyard-pixel.png') center/cover}.planning .hud,.planning .speech,.planning .enemy-tell{visibility:hidden}.planning .planning-heading{display:block;text-align:center;margin:0 0 7px}.planning-heading>span{font-size:9px;letter-spacing:5px;color:#bba879}.planning-heading h2{font-size:32px;letter-spacing:9px;margin:8px 0;color:#f4db9e;text-shadow:0 3px #5d4230,0 7px 20px #000}.planning-heading p{font-size:11px;color:#b5c1bb;letter-spacing:2px;margin:5px}.planning .status,.planning .enemy-plan-row{display:none}.planning #policy-list{justify-content:center;gap:0;max-width:680px;align-self:center;width:100%;border-block:1px solid #8c805b;padding:4px 0}.planning #policy-list button{border:0;border-radius:0;background:transparent;box-shadow:none;color:#a6b4af;font-size:12px;padding:6px}.planning #policy-list button[aria-pressed=true]{color:#ffe4a5;background:linear-gradient(transparent,#b9984933);box-shadow:inset 0 -2px #dbbc73}.planning .plan-label{justify-content:center;gap:20px;padding:5px;font-size:10px}.planning .plan-row{margin:0 auto 2px;width:min(700px,100%)}.planning .plan-row>b{display:none}.planning .slot{position:relative;min-height:58px;flex-direction:column;border-radius:3px;background:linear-gradient(110deg,#233339,#18252c);border-color:#586962;box-shadow:inset 0 0 0 3px #0e1c25,0 4px #08121d;gap:5px}.planning .slot small{font-size:9px;letter-spacing:3px}.planning .slot b{font-size:12px;color:#d3d0b1}.planning .slot.editing{border-color:#ffdc8c;background:linear-gradient(#6b593a,#3e382c);box-shadow:inset 0 0 0 3px #302a21,0 0 18px #d1ac4133}.planning .slot.editing:after{content:'▼';position:absolute;bottom:-12px;color:#f5d487;font-size:10px}.planning .command-footer{display:flex;flex-direction:column;gap:0;margin:0;min-height:0}.planning #command-list{display:flex;align-items:center;justify-content:flex-start;gap:10px;overflow-x:auto;overflow-y:hidden;min-height:193px;padding:17px 8px 10px;scrollbar-width:thin;scrollbar-color:#8c7b53 #15232b}.planning .command{flex:0 0 112px;height:162px;display:flex;flex-direction:column;gap:0;padding:5px 5px 7px;border:2px solid #9c8c67;border-radius:9px 9px 5px 5px;background:linear-gradient(145deg,#617067,#23383e 40%,#1d3037);box-shadow:inset 0 0 0 2px #10232c,0 5px #0b141b,0 7px 12px #0007;transition:transform .16s,border-color .16s;overflow:hidden;text-align:center}.planning .command:after{content:'';position:absolute;inset:3px;border:1px solid #e4cd9140;border-radius:5px;pointer-events:none}.planning .command canvas{width:100%;height:61px;object-fit:cover;margin:4px 0;border-block:1px solid #a29365}.planning .command .tactic-type{font-size:8px;letter-spacing:3px;line-height:11px;color:#e7cb91}.planning .command>b{font-size:13px;color:#ffe9bc;margin:2px 0 5px}.planning .command .tactic-summary{font-size:9px;line-height:1.5;color:#c7d0c3;min-height:26px;word-break:keep-all}.planning .command .tactic-state{font-size:8px;color:#b4a77f;margin-top:auto}.planning .command[data-tactic=ultimate]{background:linear-gradient(135deg,#977549,#4d3535 45%,#302531);border-color:#ddbb73}.planning .command:hover:not(:disabled),.planning .command:focus-visible{transform:translateY(-9px);border-color:#ffe4a2;filter:brightness(1.12);z-index:2}.planning .command:disabled{opacity:.52;filter:saturate(.45)}.planning .command.unlearned{display:none}.planning #command-info{font-size:11px;color:#e4d5ae;line-height:1.5;min-height:38px;margin:4px 8px;text-align:center;padding:5px 15px;border-block:1px solid #b8a97733}.planning .confirm-stack{display:flex;flex-direction:row;align-items:center;gap:10px;margin:4px 6px}.planning #order-prompt{margin-right:auto;color:#9eafa9;font-size:10px}.planning #clear{background:none;border:0;box-shadow:none;font-size:11px;color:#afb6a5}.planning #fight{min-width:122px;font-size:18px;border-radius:4px;padding:10px 22px;letter-spacing:6px}.planning #fight:before{content:'◆';font-size:10px;margin-right:8px;color:#f5d69c}.ended .strategy-dock{visibility:hidden}
/* The outcome is a character-led victory tableau, not a report dialog. */
#result{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:35px 30px 25px;align-items:center;align-content:stretch;background:radial-gradient(ellipse at 25% 50%,#6a543f44,transparent 50%),linear-gradient(100deg,#091724f2,#112329ee),url('assets/courtyard-pixel.png') center/cover;text-align:center;overflow-y:auto}#result[data-verdict=lose]{background:radial-gradient(ellipse at 25% 50%,#843c3e44,transparent 55%),linear-gradient(100deg,#101827ef,#101b28f5),url('assets/courtyard-pixel.png') center/cover}.result-hero{position:relative;align-self:center;padding:15px 0}.result-eyebrow{font-size:9px;letter-spacing:5px;color:#c6ad7d}#result-art{width:100%;height:240px;object-fit:contain;margin-top:-2px;filter:drop-shadow(0 12px 9px #0008)}#result h2{font-size:65px;letter-spacing:18px;margin:-18px 0 8px;color:#ffe4a8;text-shadow:2px 3px #92713f,5px 6px #1b1d23;position:relative;width:auto}#result[data-verdict=lose] h2{color:#d2b7ae;text-shadow:2px 3px #62464a,5px 6px #141d26}#result p#result-description{font-size:12px;letter-spacing:2px;color:#dbc69e;margin:10px 0;width:auto}#result-quote{font-size:12px;color:#adbdba;margin:18px 18px 0;line-height:1.7}.result-record{padding:25px 20px;border-left:1px solid #b8a37855;text-align:left}.record-heading{font-size:13px;letter-spacing:5px;color:#dbbf89;display:block;border-bottom:1px solid #b8a37855;padding-bottom:14px}#result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:24px 0 18px}#result-stats div{display:flex;flex-direction:column;gap:7px}#result-stats b{font:26px DuelSerif,monospace;color:#f4db9e}#result-stats small{font-size:10px;color:#91aaa9}#result-highlight{border-block:1px solid #b8a37833;padding:8px 0}#result #result-highlight p{font-size:11px;line-height:1.8;color:#c2c9bb;margin:9px 0;width:auto}#result details{margin-top:16px}#result summary{cursor:pointer;font-size:10px;color:#9eafa9;letter-spacing:1px}#result #battle-review{width:100%;max-height:110px;font-size:10px;line-height:1.8;padding:10px 0 0 18px}.result-actions{display:flex;gap:12px;margin-top:24px}#result .result-actions button{font-size:12px;border-radius:3px;padding:11px 16px;flex:1}#again{color:#ffdf98!important;background:linear-gradient(#79613e,#4e402f);border-color:#d4b77c}#result-select{background:transparent}
@media(max-width:650px){.planning .strategy-dock{padding:10px 12px 12px;justify-content:center;gap:5px}.planning-heading h2{font-size:25px;letter-spacing:5px;margin:8px 0}.planning-heading>span{font-size:8px;letter-spacing:3px}.planning-heading p{font-size:9px;letter-spacing:1px}.planning #policy-list button{font-size:10px;padding:7px 2px}.planning .plan-label{font-size:8px;gap:10px;padding:4px 0}.planning .slot{min-height:55px;gap:5px}.planning .slot b{font-size:9px}.planning .slot small{font-size:8px;letter-spacing:1px}.planning #command-list{min-height:195px;gap:9px;padding:16px 4px 10px;scroll-snap-type:x proximity}.planning .command{flex-basis:108px;scroll-snap-align:center;height:162px}.planning .command>b{font-size:12px}.planning #command-info{font-size:10px;min-height:49px;margin:2px 0;padding:6px}.planning #order-prompt{font-size:8px;max-width:95px;line-height:1.6}.planning #fight{min-width:90px;font-size:16px;letter-spacing:4px;padding:10px}.planning #clear{font-size:10px;padding:6px}.planning .confirm-stack{margin:5px 0;gap:6px}#result{grid-template-columns:1fr;padding:35px 18px 18px;align-content:start;gap:6px}.result-hero{padding:5px 0 0}.result-eyebrow{font-size:8px;letter-spacing:4px}#result-art{height:152px;width:100%;margin:-5px 0 0}#result h2{font-size:44px;letter-spacing:12px;margin:-13px 0 5px}#result p#result-description{font-size:10px;margin:6px 0;letter-spacing:1px}#result-quote{font-size:10px;margin:8px 0 12px}.result-record{padding:10px 2px 0;border-left:0;border-top:1px solid #b8a37855}.record-heading{font-size:10px;letter-spacing:4px;padding:0;border:0}#result-stats{padding:10px 0;gap:6px}#result-stats b{font-size:23px}#result-stats small{font-size:8px}#result-stats div{gap:4px}#result #result-highlight p{font-size:9px;line-height:1.5;margin:5px 0}#result-highlight{padding:4px 0}#result details{margin-top:8px}#result summary{font-size:9px}.result-actions{margin-top:12px;gap:10px}#result .result-actions button{font-size:11px;padding:10px}}
@media(prefers-reduced-motion:reduce){.planning .command{transition:none}}
.planning-heading{position:relative}.strategy-intel{position:absolute;right:0;top:0;z-index:4;text-align:right}.strategy-intel summary{cursor:pointer;color:#b7baa3;font-size:9px;list-style:none;border-bottom:1px dotted #a79b72;padding:3px}.strategy-intel p{position:absolute;right:0;top:18px;width:250px;padding:13px;background:#10212bf5;border:1px solid #bfa36d;box-shadow:0 6px 20px #0009;text-align:left;color:#e4d3ae;font-size:11px;line-height:1.8;white-space:pre-line;letter-spacing:0}.strategy-intel summary:focus-visible{outline:2px solid #e9c783}@media(max-width:650px){.strategy-intel{top:-7px}.strategy-intel summary{font-size:8px}.planning-heading>span{display:block;text-align:left;font-size:8px;letter-spacing:1px}.planning-heading p#strategy-rival{font-size:8px;letter-spacing:0}.planning-heading h2{margin-top:12px}}
.condition-tag{font-style:normal;font-size:8px;color:#e7b969;letter-spacing:2px;line-height:1.2}.planning .slot{min-height:65px;gap:3px}.strategy-dock .slot .condition-tag{font-size:8px}#round-banner.roulette{animation:none;background:linear-gradient(90deg,transparent,#11202df5 15% 85%,transparent)}#round-banner.roulette strong{letter-spacing:10px;color:#ffe4a5}#round-banner.roulette span{font-size:10px;letter-spacing:1px}
/* Opaque speech balloons and high-contrast combat HUD. */
.speech{background:#fff!important;border:2px solid #29313b;border-radius:7px;box-shadow:3px 4px 0 #0009;padding:10px 14px;color:#17202b;text-shadow:none;max-width:38%}.speech b{font-size:13px;font-weight:900;color:#785327;letter-spacing:1px}.speech span{font-size:17px;font-weight:800;line-height:1.45;color:#111a25}.speech:after{background:#fff;border-color:#29313b}.health{height:16px;border:2px solid #fff0bc}.meter-title{font-size:13px;font-weight:900;color:#fff;text-shadow:1px 2px #000}.meter-title b{font:900 20px DuelSerif,monospace;color:#fff;text-shadow:2px 2px #000}.fighter-name>b{font-weight:900}.fighter-name small{font-size:11px;font-weight:800;color:#fff0cf}.ranking-panel{margin-top:12px;border-top:1px solid #c2a77966;padding-top:10px}.ranking-panel>b{color:#ffe0a0;font-size:14px}#result #ranking-summary{font-size:14px;font-weight:800;white-space:pre-line;line-height:1.7;color:#fff0c7;margin:8px 0}#ranking-top{font-size:12px;padding:0;list-style:none;color:#cbd8d1;line-height:1.8;margin:6px 0}#ranked-state{text-align:center;font-size:10px;color:#bdd6b9;margin:0}.strategy-dock:has(#command-list[hidden]) #ranked-state{display:none}#result{align-items:start}.result-record{max-height:100%;overflow-y:auto}#result .result-actions{position:sticky;bottom:0;background:#14212deb;padding:8px 0}#ranking-retry{font-size:11px;padding:6px!important}
@media(max-width:650px){.speech{padding:7px 9px}.speech b{font-size:10px}.speech span{font-size:13px;line-height:1.4}.meter-title{font-size:9px}.meter-title b{font-size:14px}.health{height:11px}.fighter-name small{font-size:8px}.duel-condition{margin-top:4px}.hud{inset:40px 8px auto}#result #ranking-summary{font-size:12px}#ranking-top{font-size:11px}.ranking-panel>b{font-size:12px}.result-record{overflow:visible}#ranked-state{font-size:9px}.planning .strategy-dock{gap:3px}}
#roulette-reels{font:900 27px DuelSerif,monospace;color:#e9dab6;letter-spacing:6px;padding:3px 22px;border-block:1px solid #c9ac6544;margin:4px}#round-banner.jackpot{border-block:3px solid #ffdb77;box-shadow:0 0 45px #ffb22e55;background:linear-gradient(90deg,#352019e8,#4e3420f5,#352019e8)}#round-banner.jackpot #roulette-reels{font-size:45px;color:#fff0a2;text-shadow:3px 3px #a03c22,0 0 20px #ffb52a}#round-banner.jackpot strong{color:#ffdc6f}#ko-banner{position:absolute;inset:38% 0 auto;z-index:5;text-align:center;pointer-events:none;padding:12px 5%;background:linear-gradient(90deg,transparent,#0a1421ec 20% 80%,transparent)}#ko-title{display:block;font-size:clamp(30px,5vw,65px);font-weight:1000;letter-spacing:9px;color:#ffe3a0;text-shadow:3px 4px #984533,6px 7px #111828}#ko-winner{display:block;font-size:20px;color:#fff1c8;margin:9px 0;letter-spacing:4px}#ko-quote{font-size:18px;font-weight:800;color:#fff;background:#182633d9;display:inline-block;margin:6px 0 0;padding:9px 18px;border-inline:3px solid #d2af6c}#cutin{height:48%;inset:22% 0 auto;border-block-width:5px}#cutin-title{font-size:46px;text-shadow:4px 4px #120e21,0 0 18px var(--aura)}#result[data-verdict=lose] #result-art{filter:drop-shadow(0 9px 7px #000a)}@media(max-width:650px){#ko-winner{font-size:15px}#ko-quote{font-size:13px;line-height:1.6}#ko-title{font-size:33px;letter-spacing:5px}#cutin-title{font-size:27px}#round-banner.jackpot #roulette-reels{font-size:34px}}
#ko-banner{top:18%}#ko-quote:empty{display:none}

/* Lobby record book: inset panels and compact arcade controls. */
#cabinet:has(#battle:not([hidden])) .lobby-record-button{display:none}
#cabinet:has(#selection:not([hidden])) header{height:auto;min-height:42px;gap:8px;flex-wrap:wrap}
#cabinet:has(#selection:not([hidden])) header nav{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
nav .lobby-record-button{color:#ffe3a3;border-color:#c5a565;background:#463c28;font-weight:800}
#records{width:min(640px,calc(100vw - 24px));max-height:90dvh;padding:22px;border:3px solid #b99a60;border-radius:3px;background:linear-gradient(135deg,#24332d,#111b23 65%);box-shadow:inset 0 0 0 3px #080f14,0 0 0 3px #182229,0 20px 70px #000d;color:#f8e8c6}
#records::backdrop{background:#03070cdc}
.records-heading{display:flex;align-items:center;justify-content:space-between;color:#b9a67c;font-size:12px;letter-spacing:2px}
#records button{border-radius:2px;font-weight:800;min-height:36px}
#records h2{font-size:26px;letter-spacing:5px;color:#ffe0a0;margin:12px 0;text-shadow:2px 3px #000}
#records-status{font-size:13px;line-height:1.6;min-height:22px;color:#ddcda9}
.personal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;border:2px solid #88734d;background:#0b151a;padding:5px}
.personal-stats>div{padding:14px 8px;background:#25312c;text-align:center}
.personal-stats>div:first-child{grid-column:span 2;background:#433b27}
.personal-stats span{display:block;font-size:12px;color:#c2b997}.personal-stats strong{display:block;font-size:26px;color:#ffdb8b;margin-top:5px;text-shadow:2px 2px #000}
.player-identity{margin-top:20px;padding:12px;border:1px solid #766647;background:#091419}.player-identity span{display:block;font-size:12px;color:#c9b888;margin-bottom:8px}.player-identity code{display:block;overflow-wrap:anywhere;font:13px/1.6 DuelSerif,monospace;user-select:all;color:#eee6cd}
#records .records-note{font-size:12px;line-height:1.6;color:#aaa992;margin:9px 0}
.leaderboard-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.leaderboard-table th{padding:10px 4px;background:#413924;color:#e9cc91;text-align:left;white-space:nowrap}.leaderboard-table td{padding:11px 4px;border-bottom:1px solid #485044}.leaderboard-table td:first-child{color:#dbc28e;font-weight:900}.leaderboard-table td:last-child{text-align:right}.leaderboard-table .my-ranking{background:#635124;color:#fff0b7;font-weight:800}
.records-footer,#records-pages{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}#records-page{font-size:13px;color:#dcc18b}.records-empty{padding:32px 8px;text-align:center;line-height:1.8}
@media(max-width:600px){#records{padding:14px}#records h2{font-size:22px}.leaderboard-table{font-size:11px}.leaderboard-table td{padding:10px 3px}nav .lobby-record-button{font-size:11px;padding:5px 8px}.personal-stats strong{font-size:23px}}

@font-face{font-family:DuelSerif;src:url('assets/GowunBatang-Bold.ttf') format('truetype');font-weight:100 900;font-display:swap}
#result,#records{font-family:DuelSerif,monospace;font-synthesis:none}
#result{background-color:#0a151f}#result .result-record{border:3px solid #b39458;padding:18px;background:#12222bed;box-shadow:inset 0 0 0 3px #050c13,0 4px 0 #03080d;border-radius:0}
#result .record-heading{font-size:22px;letter-spacing:2px;color:#ffe3a1;padding:0 0 12px;text-shadow:2px 2px #000;border-bottom:2px solid #665638}
.career-record{padding:16px 0 12px;border-bottom:2px solid #665638}.career-label{font-size:14px;color:#c5b28b;letter-spacing:3px}#career-score{display:flex;gap:22px;align-items:baseline;margin:12px 0 4px}#career-score>span{display:flex;align-items:baseline;gap:6px}#career-score b{font-size:36px;font-weight:400;text-shadow:3px 3px #020609}#career-score small{font-size:18px}#career-score .career-wins{color:#ffe38d}#career-score .career-losses{color:#ed9e8f}#career-score .career-draws{color:#a8c3ca}
#result #ranking-summary{font-size:12px;font-weight:400;line-height:1.6;margin:12px 0 0;color:#b8c8bb}
#result-stats{gap:0;padding:16px 0}#result-stats>div{gap:9px;align-items:center;border-right:2px solid #4d5143}#result-stats>div:last-child{border-right:0}#result-stats b{font:22px DuelSerif,monospace;color:#ffe4a8;text-shadow:2px 2px #000}#result-stats small{font-size:12px;color:#cabd9d}
#result-highlight{border:0;padding:0}#result #result-highlight p{display:flex;flex-direction:column;gap:6px;font-size:12px;line-height:1.65;padding:10px 12px;margin:8px 0;background:#07151c;border-left:3px solid #c5a363;color:#acc3c5}#result-highlight b{font-size:14px;font-weight:400;color:#ead9b4}
#result summary{font-size:12px;color:#c4bba2}#result #battle-review{font-size:12px;line-height:1.9}#result .result-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;background:#12222b;padding:8px 0 0}#result .result-actions button{font-size:14px;min-height:44px;border-radius:0;padding:10px 6px;border-width:2px;box-shadow:inset 2px 2px #fff2,inset -2px -2px #0006,0 3px #05090c}#result #again{grid-column:1/-1;font-size:22px;letter-spacing:5px;min-height:50px;background:linear-gradient(#97713b 0 8%,#70512a 8% 88%,#47321b 88%);color:#fff0b6!important}#result #result-select,#result #result-ranks{background:#253941;color:#e4d8b8}
@media(max-width:650px){#result{padding:16px 12px}.result-hero{padding:0}#result-art{height:128px}#result .result-record{padding:14px 12px}#result .record-heading{font-size:18px}#career-score{gap:18px}#career-score b{font-size:30px}.career-record{padding:12px 0}#result-stats{padding:14px 0}#result .result-actions{margin-top:10px}#result #result-highlight p{padding:8px;margin:6px 0}#result #result-highlight b{font-size:12px}}

/* A single Korean pixel face across menus, HUD, dialogue, cards and results. */
body,button,select,input,textarea,summary{font-family:DuelSerif,monospace;font-synthesis:none}button{font-weight:400}.speech span{font-family:DuelSerif,monospace;font-weight:400}.planning .command .tactic-summary{font-size:12px;line-height:1.55}.planning .command>b{font-size:16px;letter-spacing:0}#command-info{white-space:pre-line;line-height:1.7!important}.planning #command-info{min-height:74px}.planning #command-list{padding-bottom:14px}.planning .command{height:210px}.planning .command .tactic-state{font-size:11px}
@media(max-width:650px){.planning .command{height:186px;flex-basis:125px}.planning .command>b{font-size:14px}.planning .command .tactic-summary{font-size:11px}.planning #command-info{font-size:12px;min-height:90px}.speech span{font-size:13px}.general .name{font-size:12px}}
@media(max-width:650px){.planning .arena{min-height:690px}.planning #scene{height:690px}.planning .strategy-dock{justify-content:flex-start;overflow-y:auto;padding-bottom:12px}.planning .command-footer{flex-shrink:0}.planning .confirm-stack{position:sticky;bottom:0;background:#11232bf5;padding:8px 0;z-index:3}.planning #command-list{flex-shrink:0}}

/* Chunky arcade life meters and the automatic fate roll. */
.health{height:28px;border-radius:0;border:3px solid #ffe1a2;box-shadow:0 0 0 2px #121622,3px 3px 0 #060b13;position:relative;background:#471d25}
.health:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 9.5%,#11182788 9.5% 10%);pointer-events:none}
.meter-title b{font-size:24px}.health i{box-shadow:inset 0 3px #fff6,inset 0 -3px #0005}
#battle-dice{width:240px;height:150px;image-rendering:pixelated;margin:-12px 0 -8px}
#round-banner.roulette strong{font-size:30px;letter-spacing:2px}#round-banner.roulette span{max-width:95%;text-align:center;line-height:1.6}
@media(max-width:650px){.health{height:24px;border-width:2px}.meter-title b{font-size:19px}.duel-condition{font-size:8px}#round-banner.roulette{top:30%}#round-banner.roulette strong{font-size:21px;letter-spacing:0}#round-banner.roulette span{font-size:9px}.condition-tag{letter-spacing:0}}
/* Dialogue lives below the fighters, leaving the impact and damage lane clear. */
#cabinet:has(#battle:not([hidden])) .speech{top:64%;bottom:auto;left:3%;right:auto;width:44%;max-width:44%;padding:8px 12px}
#cabinet:has(#battle:not([hidden])) .reply{top:64%;left:auto;right:3%}
.speech:after{top:-7px;bottom:auto;border-right:0;border-bottom:0;border-left:2px solid #29313b;border-top:2px solid #29313b}
@media(max-width:650px){
 #cabinet:has(#battle:not([hidden])) .speech{top:57%;padding:7px 9px}
 #cabinet:has(#battle:not([hidden])) .reply{top:57%}
 .speech span{line-height:1.35}
}

/* Transparent combat layer stays above HUD, speech, and combat banners. */
#combat-fx{position:absolute;top:0;left:0;width:100%;height:100%;z-index:30;pointer-events:none;image-rendering:pixelated}
.planning #combat-fx,.ended #combat-fx{visibility:hidden}

#campaign-start,#campaign-resume{width:100%;margin-top:8px;padding:10px 5px;background:#543b23;border-color:#edc679;color:#ffe5a4;font-size:14px}
#mastery,#campaign-career{font-size:11px;line-height:1.6;color:#ddc797;margin:8px 0}
#campaign-rewards{padding:14px 0;border-block:2px solid #bb9658;text-align:left}#campaign-rewards>b{color:#ffe095;font-size:17px}#result #campaign-rewards p{font-size:12px;line-height:1.6}#campaign-rewards button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:8px 0;padding:12px!important;border:2px solid #b4955f;background:#283332;text-align:left}#campaign-rewards button:hover{background:#635031;border-color:#ffe09d}#campaign-rewards strong{font-size:14px;color:#ffe5ac}#campaign-rewards span{font-size:11px;color:#e8dfc5}.confirm-stack{flex-wrap:wrap}#auto-plan,#auto-fight{font-size:12px;padding:8px}#auto-fight{background:#665132;border-color:#eac77e}.strategy-dock:has(#command-list[hidden]) #auto-plan,.strategy-dock:has(#command-list[hidden]) #auto-fight{display:none}.tutorial-actions{display:flex;gap:8px}#tutorial-prev{margin-left:auto}
@media(max-width:650px){#campaign-start,#campaign-resume{font-size:11px}#mastery,#campaign-career{font-size:9px}.planning .confirm-stack{flex-wrap:wrap}.planning #order-prompt{display:none}#auto-plan,#auto-fight{font-size:11px;padding:8px}.planning #fight{min-width:65px;padding:8px}.selected-detail{overflow-y:auto}#campaign-rewards>b{font-size:15px}}

#campaign-route{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:9px 0}#campaign-route span{font-size:11px;padding:7px;background:#11202b;border:1px solid #647064;color:#a7b8b1}#campaign-route .current{border:2px solid #f5d07e;color:#ffe3a0;background:#674c28}#campaign-route .cleared{color:#8fd69b;border-color:#659d6e}

#start{font-size:16px;letter-spacing:1px;white-space:nowrap}.roster{align-content:start}.general{min-height:0}#campaign-route[hidden]{display:none}#campaign-rewards[hidden]{display:none}
@media(max-width:650px){#start{font-size:12px;letter-spacing:0;padding-inline:3px}#campaign-rewards button{flex-direction:column;align-items:flex-start;gap:6px}.planning #ranked-state{font-size:11px;line-height:1.5}}

#motion-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px;border:1px solid #a89461;background:#15232d;color:#ffe5a7;font-size:12px}#motion-loading[hidden]{display:none}#motion-progress{width:100px;height:12px;accent-color:#e2b868}#motion-retry{padding:5px;font-size:12px}@media(max-width:650px){#motion-loading{flex-wrap:wrap;font-size:11px;gap:6px}}

#chapter{width:min(580px,92vw);max-height:85dvh;overflow:auto;color:#f5e6bf;background:#142129;border:4px double #d3ad65;box-shadow:0 0 0 5px #111;padding:28px;font-family:inherit}#chapter::backdrop{background:#03090ee8}#chapter h2{font-size:26px;color:#ffe09b;margin:18px 0}#chapter p,#chapter blockquote{font-size:16px;line-height:1.7}#chapter blockquote{margin:12px 0;padding:12px;border-left:3px solid #cda35d;background:#24333a}#chapter button{width:100%;padding:14px;background:#70532b;color:#fff0bb;border:3px ridge #d8b575;font-family:inherit;font-size:18px}#campaign-rewards button{min-height:74px;border:3px ridge #c8a56a;box-shadow:3px 3px #090f16}#campaign-rewards span{font-size:14px;line-height:1.5}#mastery,#campaign-career{font-size:12px}#result:has(#campaign-rewards:not([hidden])) .career-label{display:none}

#result[data-campaign-state=reward] #result-stats,#result[data-campaign-state=reward] #result-highlight,#result[data-campaign-state=reward] .result-record>details{display:none}#result[data-campaign-state] .result-actions{position:static}@media(max-width:650px){#result[data-campaign-state] .result-record{max-height:none;overflow:visible}#result[data-campaign-state=reward] .result-hero{display:none}#result[data-campaign-state=reward]{grid-template-rows:auto;align-content:start}#result[data-campaign-state=reward] .record-heading{font-size:16px}#result[data-campaign-state=reward] #campaign-rewards{padding:8px 0}#result[data-campaign-state=reward] .career-record{padding:4px 0}}
/* Tournament: a compact arcade bracket and one decisive mid-fight choice. */
#campaign-start{order:-1;min-height:48px;font-size:17px;background:linear-gradient(#aa8043 0 8%,#755228 8% 88%,#49331c 88%);border:3px ridge #ffe0a0;box-shadow:0 4px #080c12;color:#fff1b7}#chapter{width:min(900px,95vw);padding:24px;max-height:91dvh}#chapter h2{margin:12px 0}.tournament-bracket{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:14px;overflow-x:auto;padding:8px 2px 16px}.bracket-round{display:flex;flex-direction:column;justify-content:space-around;gap:8px}.bracket-round>b{color:#dbbc7f;text-align:center}.bracket-pair{border:2px solid #62706b;box-shadow:3px 3px #060d13;background:#1f313b;position:relative}.bracket-pair>div{padding:5px 8px;font-size:13px;border-bottom:1px solid #51605f}.bracket-pair>div:last-child{border-bottom:0}.bracket-me{background:#80612b;color:#fff2b8;font-weight:bold}.bracket-out{opacity:.4;text-decoration:line-through}.bracket-versus{display:flex;justify-content:center;gap:70px;margin:8px}.bracket-versus>div{display:flex;align-items:center;gap:12px}.bracket-versus canvas{width:55px;height:66px;image-rendering:pixelated}.bracket-versus b{color:#ffdf93;font-size:20px}#chapter p{margin:8px 0;font-size:14px}#rally{width:min(700px,92vw);max-height:90dvh;overflow:auto;background:#10212b;color:#f4e3b7;border:4px double #f2ca79;padding:28px;box-shadow:0 0 0 5px #081018}#rally::backdrop{background:#040b12dc}#rally>span{font-size:13px;letter-spacing:3px;color:#d5b77b}#rally h2{font-size:28px;color:#ffe3a1;margin:14px 0}#rally-status{font-size:16px;line-height:1.6}#rally-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}#rally-options button{display:flex;flex-direction:column;justify-content:center;gap:16px;min-height:165px;padding:20px 12px;border:3px ridge #b49a66;background:#2b3d43;color:#eee2c7;box-shadow:4px 5px #030c15;font:inherit;text-align:left}#rally-options button:first-child{background:#56302a}#rally-options button:last-child{background:#443256}#rally-options button:hover{transform:translateY(-5px);border-color:#ffe296}#rally-options strong{font-size:22px;color:#ffe6aa}#rally-options span{font-size:14px;line-height:1.7}#clash-callout{position:absolute;left:50%;top:37%;transform:translate(-50%,-50%) rotate(-5deg);z-index:45;pointer-events:none;text-align:center;white-space:nowrap;animation:clash-stamp .85s steps(8) both}#clash-callout strong{display:block;color:#fff2b4;font-size:clamp(25px,5vw,52px);text-shadow:3px 3px #9c371b,-2px -2px #461a17,6px 6px #080c19;letter-spacing:4px}#clash-callout small{display:block;color:#fff;font-size:16px;margin-top:8px;text-shadow:2px 2px #000}#clash-callout[hidden]{display:none}@keyframes clash-stamp{0%{scale:1.7;opacity:0}15%,75%{scale:1;opacity:1}100%{scale:1.12;opacity:0}}#career-score{flex-wrap:wrap;gap:15px}.career-crowns b{color:#ffcf68!important}#result[data-campaign-state=tournament] #campaign-rewards button{justify-content:center;color:#ffe5a4;font:inherit;font-size:20px;background:#70512a;min-height:58px}#result[data-campaign-state=tournament] #campaign-rewards b{font-size:20px}#result[data-campaign-state=tournament] h2{letter-spacing:8px}.leaderboard-table{min-width:480px}
@media(max-width:650px){#chapter{padding:16px}#chapter h2{font-size:22px}.tournament-bracket{gap:8px;grid-template-columns:repeat(4,minmax(87px,1fr))}.bracket-pair>div{font-size:12px;padding:4px}.bracket-versus{gap:20px}.bracket-versus b{font-size:16px}.bracket-versus canvas{width:40px;height:48px}#rally{padding:20px}#rally-options{grid-template-columns:1fr;gap:10px}#rally-options button{min-height:92px;gap:8px;padding:14px}#rally-options strong{font-size:20px}#rally h2{font-size:23px}#campaign-start{font-size:13px;min-height:44px}#clash-callout{top:32%}#career-score b{font-size:26px}}
@media(prefers-reduced-motion:reduce){#clash-callout{animation:none}#rally-options button:hover{transform:none}}
#chapter-next{position:sticky;bottom:-1px;z-index:2;box-shadow:0 -8px 0 #142129}.tournament-bracket{max-height:48dvh;overflow:auto}.bracket-round{justify-content:space-between}.bracket-round>b{position:sticky;top:0;background:#142129;padding:5px 0;z-index:1}.bracket-round:not(:first-child) .bracket-pair{margin-block:auto}.bracket-versus{padding:8px;border-block:1px solid #866f44;background:#0c1821}
#chapter #tournament-withdraw{position:static;margin-top:12px;padding:8px;font-size:12px;background:transparent;border:1px solid #705e53;color:#b6aaa0;box-shadow:none}#tournament-withdraw[hidden]{display:none}.selected-detail>label{margin-top:14px;color:#b8ad91}

#combo-meter{position:absolute;z-index:44;top:29%;left:7%;display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:9px;pointer-events:none;color:#ffe18b;text-shadow:3px 3px #642919,5px 5px #080b14;animation:combo-pop .22s steps(4) both;transform:rotate(-6deg)}#combo-meter[data-side=b]{left:auto;right:7%;transform:rotate(6deg)}#combo-meter strong{font-size:64px;line-height:1}#combo-meter b{font-size:24px}#combo-meter span{grid-column:1/-1;font-size:19px;color:#fff4c9;margin-top:6px}#combo-meter.combo-finish strong{color:#fff8da;filter:drop-shadow(0 0 7px #ff803c)}#combo-meter[hidden]{display:none}@keyframes combo-pop{from{scale:1.35}to{scale:1}}@media(max-width:650px){#combo-meter{top:27%;left:5%}#combo-meter[data-side=b]{right:5%}#combo-meter strong{font-size:44px}#combo-meter b{font-size:19px}#combo-meter span{font-size:15px}}@media(prefers-reduced-motion:reduce){#combo-meter{animation:none}}

/* Crisis is a readable combat state, not only an animation. */
.fighter-hud.crisis .health{outline:2px solid #ff795f;box-shadow:0 0 0 4px #571f2b,0 0 18px #fa60395c}
.fighter-hud.crisis .duel-condition{color:#ffe8b3;text-shadow:2px 2px #651a20}
.fighter-hud.crisis .health i{background:linear-gradient(#fff0ab 0 14%,#ff6248 14% 70%,#c02132 70%)}
#cutin.desperate{border-color:#ffce77;box-shadow:0 0 0 5px #702b31,0 0 60px #ef522477}
#cutin.desperate #cutin-label{color:#ffe4a1;font-size:clamp(16px,3vw,28px)}
#cutin-title{overflow-wrap:anywhere;font-size:clamp(24px,5vw,58px)}
#rally-status{white-space:pre-line;line-height:1.7}
#rally-options small{display:block;color:#e7c38f;font-size:12px;line-height:1.6;margin-top:12px}
#tutorial{max-height:88dvh;overflow-y:auto}
#tutorial-demo{white-space:pre-line;line-height:1.7}

/* Forty-warrior selection and deliberate confirmation. */
#campaign-start{order:0;margin-top:18px}#start{margin-top:8px}
.roster{max-height:620px;overflow-y:auto;padding:4px 8px 8px 4px;scrollbar-color:#b89a63 #142630}
#hero-detail{width:min(820px,94vw);max-height:90dvh;overflow:auto;padding:24px;border:4px double #e8c988;background:linear-gradient(120deg,#192d35,#101a29);color:#ebd9b4;box-shadow:0 0 0 5px #090f18}
#hero-detail::backdrop{background:#02080ce8}#hero-close{display:block;margin-left:auto;padding:6px 14px}
.hero-intro{display:grid;grid-template-columns:160px 1fr;gap:26px;align-items:center}.hero-intro canvas{width:160px;height:192px;border:3px ridge #ceb076;image-rendering:pixelated;background:#142028}.hero-intro h2{font-size:36px;margin:9px 0;color:#ffe4a0}.hero-intro small{color:#b7aa86;letter-spacing:3px}.hero-intro b{font-size:14px}.hero-story{white-space:pre-line;line-height:2;font-size:14px}.hero-signature{padding:14px;background:#342e35;border-left:4px solid #dab270;line-height:1.8}
.hero-techniques{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:20px}.hero-techniques>div{padding:12px;background:#21343c;border:2px ridge #796e57}.hero-techniques b{display:block;color:#ffe1a0;margin-bottom:7px}.hero-techniques span{font-size:12px;line-height:1.8;color:#c9d0c3}#hero-confirm{position:sticky;bottom:0;display:block;width:100%;padding:15px;margin-top:20px;font-size:21px;background:#79552c;border:3px ridge #ffdc99;color:#fff2c9;box-shadow:0 -6px 14px #0c1422}
.rename-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin:12px 0 22px}.rename-form label,.rename-form p{grid-column:1/-1}.rename-form input{min-width:0;font:18px DuelSerif,monospace;background:#0b1921;color:#fff1c8;border:3px ridge #bc9f6a;padding:10px}.rename-form button{font:inherit;padding:10px}.rename-form p{margin:0;min-height:1.5em}
@media(max-width:650px){.roster{max-height:66dvh}.hero-intro{grid-template-columns:90px 1fr;gap:12px}.hero-intro canvas{width:90px;height:108px}.hero-intro h2{font-size:26px}.hero-intro b,.hero-story{font-size:11px}.hero-story{line-height:1.9}.hero-techniques{grid-template-columns:1fr}#hero-detail{padding:15px}#hero-detail h3{font-size:16px}.hero-signature{font-size:12px}header nav{flex-wrap:wrap}}

/* Scroll the roster instead of shrinking grid rows beneath fixed portraits. */
.select-layout{grid-template-columns:minmax(0,1fr) 208px}.roster{min-width:0;grid-auto-rows:max-content;align-self:start;align-content:start;overflow-x:hidden}
.general{height:auto;min-height:max-content;overflow:hidden;flex-shrink:0}.general canvas{flex:none;width:min(80px,100%);height:auto;aspect-ratio:5/6;object-fit:contain}.general .name{flex:none;overflow-wrap:anywhere;line-height:1.5}.selected-detail{min-width:0}#selected-portrait{max-width:100%;height:auto;aspect-ratio:5/6;flex:none}.selected-detail>span,.selected-detail>h2{max-width:100%;overflow-wrap:anywhere}
@media(max-width:650px){.select-layout{grid-template-columns:minmax(0,1fr) 104px}.general canvas{width:min(48px,100%)}.general{padding:3px 2px}.roster{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:max-content}}
/* Simultaneous combat states stay directly beneath their own health bar. */
.duel-condition{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.duel-condition>span:last-child{display:flex;flex-wrap:wrap;gap:3px;max-width:100%}.status-chip{display:inline-block;padding:3px 5px;background:#133e39ee;color:#dbffdb;border:1px solid #73ab79;line-height:1.35;font-size:10px;text-shadow:1px 1px #000}.status-chip.debuff{background:#571e2bed;border-color:#e38383;color:#ffe0d4}.status-chip.crisis{background:#654222ed;color:#fff2af;border-color:#e9be57}.status-chip.mixed{background:#45354fed;border-color:#b696b9;color:#f4defe}
#crisis-roulette{position:absolute;z-index:60;inset:22% 15% auto;min-height:190px;text-align:center;background:#101623f5;border:3px solid #dcb766;box-shadow:0 0 0 4px #2a1c20,0 0 70px #ef9d4444;padding:15px;color:#fff0c7;pointer-events:none;overflow:hidden}#crisis-roulette small{display:block;position:relative;z-index:1}#crisis-prize{display:block;position:relative;font-size:30px;padding:42px 0 10px;text-shadow:3px 3px #43111c;z-index:1}#crisis-desc{position:relative;font-size:13px;z-index:1}#crisis-wheel{position:absolute;width:220px;height:220px;top:10px;left:calc(50% - 110px);border-radius:50%;opacity:.35;background:repeating-conic-gradient(#eaaa43 0deg 35deg,#772638 35deg 70deg,#162f3c 70deg 90deg);border:8px double #f9d28b}#crisis-roulette.settled{border-color:#fff3ae;box-shadow:0 0 0 4px #9d672b,0 0 80px #ffda6666}#crisis-roulette.settled strong{color:#ffe483}
#champion-ending{isolation:isolate;overflow:hidden;text-align:center;width:min(640px,94vw);max-height:94dvh;padding:25px;background:linear-gradient(#172236,#332524 65%,#101a25);border:4px double #efc76d;color:#ffe8b5;box-shadow:0 0 0 5px #282022,0 0 90px #e8b95b55}#champion-ending::backdrop{background:#060a14e8}#champion-ending h2{font-size:clamp(24px,6vw,44px);margin:12px 0;letter-spacing:5px;color:#ffe9a1;text-shadow:3px 4px #6b332b}#champion-art{width:min(360px,65vw);max-height:30dvh;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 20px #ffc36577)}#champion-ending h3{font-size:24px;margin:0 0 15px}#champion-story{white-space:pre-line;word-break:keep-all;line-height:1.9;font-size:16px;min-height:110px;animation:ending-reveal .65s ease-out}#champion-next{display:block;margin:15px auto 0;min-width:160px;padding:12px}#champion-page{font-size:11px;color:#b8aa91}.champion-rays{position:absolute;z-index:-1;inset:-30%;opacity:.17;background:none}@keyframes ending-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){.status-chip{font-size:8px;padding:2px 3px}.duel-condition{gap:2px}#crisis-roulette{inset:22% 8% auto;padding:10px;min-height:140px}#crisis-prize{font-size:22px;padding-top:27px}#crisis-desc{font-size:10px}#champion-ending{padding:18px}#champion-story{font-size:13px;min-height:100px}#champion-ending h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.champion-rays,#champion-story{animation:none}}
#champion-ending{overflow-y:auto}#champion-art{margin-inline:auto}#champion-next{position:sticky;bottom:0;background:#715329;box-shadow:0 0 0 3px #171c25,0 4px 0 #0a1018}

header>b.game-brand{white-space:nowrap;letter-spacing:1px;flex-shrink:0}header>b.game-brand span{letter-spacing:0}

/* v1.03: readable battle ledger and unconstrained planning layout. */
body{font-family:DuelSerif,'Batang','Gungsuh',serif;font-size:16px;line-height:1.55}
button,input,select,summary{font-family:inherit;letter-spacing:0;touch-action:manipulation}
header>b{letter-spacing:1px}header nav button{font-size:13px;min-height:32px}
.planning .arena{min-height:0!important;overflow:visible;background:#142025}
#cabinet:has(.planning){width:min(1100px,100%)!important;overflow:visible}
#cabinet:has(.planning) header{position:relative!important;height:auto;min-height:42px}
.planning #scene,.planning #combat-fx,.planning .hud,.planning .speech,.planning .enemy-tell{display:none!important}
.planning .strategy-dock{position:relative!important;inset:auto!important;min-height:0;overflow:visible!important;justify-content:flex-start!important;padding:24px clamp(12px,3vw,32px) 0;gap:12px;background:linear-gradient(100deg,#121b21ee,#26302bee),url('assets/courtyard-pixel.png') center/cover}
.planning .planning-heading h2{font-size:clamp(24px,4vw,34px);letter-spacing:2px;margin:5px 0}
.planning .planning-heading>span,.planning-heading p#strategy-rival{font-size:14px;letter-spacing:0}
.planning .strategy-intel{position:relative;top:auto;right:auto;text-align:center}
.planning .strategy-intel summary{display:inline-block;font-size:14px;padding:5px}
.planning .strategy-intel p{position:relative;inset:auto;width:auto;margin:4px 0;font-size:14px}
.planning .plan-label{font-size:14px;gap:8px;flex-wrap:wrap}.planning #ranked-state{font-size:12px}
.planning .plan-row{width:100%;max-width:none}.planning #slots{gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}
.planning .slot{min-width:0;min-height:86px;height:auto;padding:8px 4px;gap:5px;border-radius:3px}
.planning .slot small{font-size:13px;letter-spacing:0}.planning .slot b{font-size:15px;line-height:1.35;overflow-wrap:anywhere}.planning .slot .condition-tag{font-size:11px;letter-spacing:0}
.planning .command-footer{display:flex;flex-direction:column;overflow:visible;min-height:0;flex-shrink:0}
.planning #command-list{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));align-items:stretch;gap:12px;overflow:visible;min-height:0;max-height:none;padding:16px 0}
.planning .command{height:auto;min-height:222px;width:auto;transform:none!important;gap:5px;padding:10px 8px;background:linear-gradient(145deg,#3e4439,#182527 70%);border:2px solid #96845e;border-radius:3px;box-shadow:inset 0 0 0 2px #111b1d,0 3px #070e12;overflow:visible}
.planning .command canvas{height:72px;object-fit:contain;border:0;margin:0}.planning .command .tactic-type{font-size:12px;line-height:1.5;letter-spacing:1px}.planning .command>b{font-size:18px;line-height:1.35;margin:0}.planning .command .tactic-summary{font-size:14px;line-height:1.5;color:#e4dfce}.planning .command .tactic-state{font-size:12px;line-height:1.5;margin-top:auto}.planning .command.unlearned{display:none}.planning .command:disabled{opacity:.58}.planning .command:focus-visible{outline:3px solid #ffdc8c;outline-offset:3px}
#counter-guide{font-size:14px;line-height:1.65;color:#ead092;border-block:1px solid #8f7a4f;padding:10px 0;margin:0}.strategy-dock:has(#command-list[hidden]) #counter-guide{display:none}
.planning #command-info{min-height:65px!important;font-size:15px!important;line-height:1.6!important;padding:12px 0;margin:0;color:#f0e4c8}
.planning .confirm-stack{position:sticky!important;bottom:0;z-index:25;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 0 max(12px,env(safe-area-inset-bottom));margin:0;background:#132025;border-top:2px solid #ad915c;box-shadow:0 -8px 16px #09101588}
.planning #order-prompt{display:block;font-size:13px;max-width:none;margin-right:auto}.planning #fight,.planning #auto-fight,.planning #clear{min-height:46px;font-size:16px;padding:10px 15px;letter-spacing:0}.planning #fight{min-width:100px;background:#856034}
#style-choice,#progress-book{width:min(780px,94vw);max-height:90dvh;overflow:auto;border:4px double #c8aa6b;border-radius:4px;background:#142025;color:#eee5d2;padding:24px;box-shadow:0 15px 80px #000b;font-family:inherit}
#style-choice::backdrop,#progress-book::backdrop{background:#050a0ee8}#style-title,#progress-title{font-size:26px;color:#efd69e;letter-spacing:1px;margin:8px 0 16px}#style-plan{font-size:15px;line-height:1.8;padding:12px;border-block:1px solid #8b7753}#style-choice #policy-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}#style-choice #policy-list button{display:flex;flex-direction:column;gap:8px;text-align:left;padding:16px;background:#263532;border:2px solid #756548;min-height:110px}#style-choice #policy-list b{font-size:22px}#style-choice #policy-list span{font-size:15px;line-height:1.65}#style-choice #policy-list button[aria-pressed=true]{border-color:#f3d290;background:#635033;box-shadow:inset 0 0 0 2px #30271c}.style-actions{position:sticky;bottom:-24px;padding:14px 0;display:flex;gap:10px;background:#142025}.style-actions button{flex:1;min-height:48px;font-size:16px}#style-start{background:#77582f}#style-desc{font-size:14px}
#exchange-readout{position:absolute;inset:26% 7% auto;z-index:8;padding:10px 14px;background:#111b24f5;border:2px solid #a38e62;text-align:center;pointer-events:none;box-shadow:0 4px 0 #060b11}.duel-cards{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.duel-cards span{font-size:17px;line-height:1.4}.duel-cards b{font-size:19px;color:#e2cf9b}#exchange-readout[data-side=a]{border-color:#93d4cf}#exchange-readout[data-side=a] .duel-cards b{color:#a4e5dd}#exchange-readout[data-side=b]{border-color:#e48b79}#exchange-readout[data-side=b] .duel-cards b{color:#ffad96}#readout-reason{font-size:14px;line-height:1.5;color:#dbd6c5;margin:6px 0}#readout-hit{display:block;font-size:19px;color:#ffdf9b;min-height:1.5em}.planning #exchange-readout,.ended #exchange-readout{display:none}
.progress-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;border:1px solid #927a4f;padding:12px 16px;margin:0 0 14px;background:#28302b;box-shadow:none;text-align:left;border-radius:3px}.progress-strip span{font-size:14px;color:#dfc28d}.progress-strip strong{font-size:16px;color:#f3e5c5}.general{position:relative}.mastery-stamp{position:absolute;top:3px;right:3px;font-size:11px;color:#fff3d6;background:#715032;border:1px solid #d5b46e;padding:1px 4px;pointer-events:none}.mastery-stamp.grade-3{background:#793e2c;color:#ffe19b}#progress-close{float:right;min-height:40px}#progress-book progress{width:100%;height:16px;accent-color:#cfad66}.quest-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quest-list article{border:1px solid #64716a;padding:14px;background:#202d30}.quest-list article.complete{border-color:#c5a264;background:#3a3426}.quest-list h3{font-size:18px;margin:5px 0}.quest-list p,.progress-note{font-size:14px;line-height:1.75}.quest-list small{font-size:13px}.quest-list b{font-size:15px;color:#e1c48c}.mastery-book{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.mastery-entry{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 3px;min-width:0}.mastery-entry canvas{width:60px;height:72px}.mastery-entry b{font-size:16px}.mastery-entry span,.mastery-entry small{font-size:12px}.mastery-entry.grade-3{border-color:#efc76e;background:#5b4127}#result-progress{border:1px solid #9e8654;padding:12px;background:#2b332b;margin:12px 0}#result-progress:empty{display:none}#result-progress b{font-size:21px;color:#f0d295}#result #result-progress p{font-size:15px;line-height:1.7;margin:6px 0}#result-progress button{font-size:14px;min-height:40px}.speech span{font-size:18px!important;line-height:1.6!important}.speech b{font-size:14px!important}.general .name{font-size:15px}#result #result-highlight p{font-size:15px;line-height:1.8}#result-highlight h3{font-size:19px;color:#ebd29a}#result summary{font-size:14px}#result #battle-review{font-size:14px;max-height:230px}#result #result-description,#result-quote{font-size:16px!important}#records p,#rules p{font-size:16px;line-height:1.8}#mastery,#campaign-career{font-size:14px;line-height:1.7}
@media(max-width:650px){body{padding:6px}header{padding:8px!important;height:auto!important;gap:6px;flex-wrap:wrap}header>b.game-brand{font-size:18px}header nav button{font-size:12px;padding:5px 7px}.planning .slot{min-height:95px}.planning .slot b{font-size:13px}.planning .slot .condition-tag{font-size:10px}.planning #slots{gap:4px}.planning #command-list{grid-template-columns:repeat(2,minmax(0,1fr))}.planning .command{min-height:220px}.planning .confirm-stack{gap:6px}.planning #order-prompt{flex-basis:100%;font-size:12px}.planning #fight,.planning #auto-fight,.planning #clear{font-size:14px;min-width:0;flex:1;padding:10px 6px}.progress-strip{flex-wrap:wrap;gap:4px;padding:10px}.progress-strip strong{font-size:14px;order:3;width:100%}.progress-strip>span:last-child{margin-left:auto}.quest-list{grid-template-columns:1fr}.mastery-book{grid-template-columns:repeat(3,1fr)}#style-choice,#progress-book{padding:16px}#style-choice #policy-list{gap:8px}#style-choice #policy-list button{padding:12px;min-height:120px}#style-choice #policy-list b{font-size:19px}#style-choice #policy-list span{font-size:14px}#style-title{font-size:23px}.style-actions{bottom:-16px}#exchange-readout{inset:27% 3% auto;padding:5px 8px}.duel-cards{gap:5px;grid-template-columns:1fr auto 1fr}.duel-cards span{font-size:12px}.duel-cards b{font-size:13px}#readout-reason{font-size:11px;margin:3px 0}#readout-hit{font-size:15px}.speech span{font-size:14px!important}.speech b{font-size:12px!important}}
@media(max-height:560px) and (min-width:651px){.planning .strategy-dock{padding-top:12px}.planning #command-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
#exchange-readout{top:24%;padding:6px 12px}#readout-reason{font-size:13px;line-height:1.35;margin:4px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}#readout-hit{font-size:17px;min-height:0;line-height:1.4}#readout-hit:empty{display:none}
@media(max-width:650px){#exchange-readout{top:24%;padding:4px 8px}#readout-reason{font-size:11px}#readout-hit{font-size:14px}}
#multiplier-stack{position:absolute;top:100%;left:0;right:0;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;background:#111824f5;padding:10px;border:2px solid #d1a657;box-shadow:0 8px 25px #0009}.multiplier-tile{display:flex;flex-direction:column;justify-content:center;min-width:100px;padding:6px 10px;border:1px solid #bea065;background:#3d3027;animation:multiplier-pop .25s ease-out}.multiplier-tile small{font-size:12px;color:#e6cda6}.multiplier-tile b{font-size:26px;color:#ffe497}.multiplier-tile:last-child{background:#6b342b;border-color:#ffca68}#rally-options .burst-card{border-color:#f1c069;background:linear-gradient(145deg,#725031,#3a252b)}.rally-multiplier{display:block;font-size:48px;color:#ffda80;line-height:1.1;text-shadow:2px 3px #391c20}.meter-title b{font-variant-numeric:tabular-nums}@keyframes multiplier-pop{from{transform:scale(.78);filter:brightness(1.8)}to{transform:scale(1);filter:brightness(1)}}@media(max-width:650px){#multiplier-stack{gap:4px;padding:5px}.multiplier-tile{min-width:65px;padding:4px}.multiplier-tile b{font-size:20px}.multiplier-tile small{font-size:10px}.rally-multiplier{font-size:36px}}@media(prefers-reduced-motion:reduce){.multiplier-tile{animation:none}}
/* Keep the decision ribbon below the fixed-height health HUD on square screens. */
#exchange-readout{top:max(24%,150px);padding:4px 10px}.duel-cards span{font-size:15px}.duel-cards b{font-size:17px}#readout-reason{font-size:12px;-webkit-line-clamp:1;margin:3px 0}#readout-hit{font-size:15px}@media(max-width:650px){#exchange-readout{top:max(24%,140px)}.duel-cards span{font-size:12px}.duel-cards b{font-size:13px}#readout-reason{font-size:11px}#readout-hit{font-size:14px}}

/* Game screens: portrait-led menus, a compact hand, and combat information on the HUD. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
button,select,input{border-radius:1px!important}button{border:2px solid #8a744b;background:linear-gradient(#3c3529,#1c211f);box-shadow:inset 0 0 0 1px #191811,0 2px #080e12;transition:filter .12s,border-color .12s}button:hover:not(:disabled),button:focus-visible{border-color:#f9d58e;background-color:#463a26}button:focus-visible{outline:2px solid #ffdf92;outline-offset:3px}
#cabinet{border-radius:2px;box-shadow:0 0 0 3px #101615,0 0 0 4px #6b5637,0 20px 60px #0009}header nav button{background:#151b1a;border:1px solid #746345;box-shadow:none;min-height:30px}
#selection{background:linear-gradient(#111b20c9,#111a20f0),url('assets/courtyard-pixel.png') center/cover}.select-title{justify-content:center;border:0;padding:15px 12px 5px}.select-title>span,.selection-bottom,#selected-han,#selected-weapon,#mastery{display:none}.select-title h1{font-size:30px;letter-spacing:8px;text-shadow:2px 3px #18160f;margin:0}
#progress-open{width:auto;position:relative;margin:6px auto 12px;padding:5px 20px;justify-content:center;gap:12px;background:none;border:0;border-block:1px solid #8c744b;box-shadow:none}#progress-open #progress-goal{display:none}#progress-open span{font-size:13px}#progress-open>span:last-child{color:#ffdf91}
.select-layout{padding-top:0}.roster{gap:6px}.general{border:1px solid #695739;background:#111918;box-shadow:inset 0 0 0 2px #070e10}.general.selected,.general[aria-pressed=true]{border:2px solid #ffe2a3;background:#51402b}.general .name{font-size:14px;text-shadow:1px 2px #000}.selected-detail{background:linear-gradient(#0b14199c,#121b1f);border:0;border-left:1px solid #806b47}.selected-detail h2{letter-spacing:6px}.selected-detail>button{min-height:42px;letter-spacing:2px}#campaign-start{background:linear-gradient(#8e6332,#473620);border-color:#d8b573}#campaign-career{font-size:12px!important;line-height:1.4!important}.selected-detail label{font-size:12px}
dialog{border-radius:2px!important;border:3px double #bda06b!important;background:linear-gradient(#101b21ee,#111a20f5),url('assets/courtyard-pixel.png') center/cover!important;box-shadow:0 0 0 3px #101616,0 20px 70px #000b!important}dialog::backdrop{background:#060a0de8!important}dialog h2{text-shadow:2px 3px #17120d;letter-spacing:3px}
.planning .strategy-dock{padding-top:12px;gap:8px;background:linear-gradient(#142026dd,#101b22ed),url('assets/courtyard-pixel.png') center/cover}.planning-heading{position:relative;padding:0!important;text-align:center}.planning-heading>span,.planning-heading>h2,.planning .status,.planning .plan-label,.planning .enemy-plan-row,#board-enemy{display:none!important}.planning-versus{display:flex;justify-content:center;align-items:center;gap:25px}.planning-versus canvas{width:60px;height:72px;border:1px solid #b79557}.planning-versus>span{font-size:22px;color:#edd09a}.planning-heading #strategy-rival{font-size:15px;margin:4px 0 8px;letter-spacing:2px}.planning .strategy-intel{position:absolute;right:0;top:8px;font-size:12px;background:#111b22;padding:6px;border:1px solid #6d6045;max-width:38%;z-index:4}.planning .strategy-intel summary{font-size:12px}.planning .strategy-intel[open]{max-width:70%}.planning .strategy-intel p{font-size:13px}
.planning #slots{gap:8px}.planning .slot{min-height:83px;background:linear-gradient(#403a2d,#192321);border:2px solid #84724e;padding:6px}.planning .slot.editing{border-color:#ffe5a4;box-shadow:inset 0 0 0 2px #886d3d,0 0 12px #f5b84c30}.planning .slot>b{font-size:15px}.planning .slot .condition-tag{font-size:11px;line-height:1.3}.planning .plan-row>b{display:none}
.planning #command-list{display:flex!important;justify-content:flex-start!important;gap:12px!important;overflow-x:auto!important;overflow-y:hidden!important;padding:12px 4px 14px!important;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#ae915a #111a20;margin:0!important;min-height:0!important}.planning .command{flex:0 0 164px;width:164px;min-height:218px!important;height:218px;scroll-snap-align:start;padding:7px;gap:5px;border:2px solid #9a8050;background:linear-gradient(#433d2d,#172323);transform:none!important}.planning .command canvas{height:95px!important;width:100%;object-fit:contain}.planning .command>b{font-size:16px}.planning .command .tactic-summary{font-size:12px;line-height:1.45;min-height:34px}.planning .command .tactic-type{font-size:11px}.planning .command .tactic-state{font-size:11px}.planning .command[data-tactic^=ultimate]{border-color:#debc73;background:linear-gradient(#614a36,#292130)}
.planning #counter-guide{display:none}.planning #command-info{font-size:13px!important;line-height:1.5!important;min-height:0!important;max-height:42px;overflow:auto;padding:4px 0!important;margin:0!important;border:0}.planning .confirm-stack{padding:8px 0 max(8px,env(safe-area-inset-bottom));border:0;background:#111b21;box-shadow:none}.planning #order-prompt{font-size:14px}.planning #auto-fight,.planning #clear,.planning #fight{min-height:44px;font-size:15px}.planning #fight:before{display:none}
/* Four illustrated fighting stances. Tapping a banner starts the match. */
#style-choice{width:min(880px,96vw);padding:24px 20px 14px;text-align:center;overflow-y:auto;max-height:94dvh}#style-title{font-size:32px;margin:0 0 18px;letter-spacing:8px}#style-choice #policy-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}#style-choice #policy-list button{display:flex;align-items:center;justify-content:flex-start;text-align:center;padding:6px 6px 14px;gap:10px;min-height:230px;background:linear-gradient(#493528,#201d19);border:2px solid #a27e47;position:relative;overflow:hidden}#style-choice #policy-list button[data-policy=assault]{background:linear-gradient(#263c40,#172225);border-color:#759fa4}#style-choice #policy-list button[data-policy=capture]{background:linear-gradient(#3b304c,#211c2c);border-color:#9e88bc}#style-choice #policy-list button[data-policy=safe]{background:linear-gradient(#54472b,#272319);border-color:#d5b86b}#style-choice #policy-list button[aria-pressed=true]{box-shadow:inset 0 0 0 1px #e6d6a733}#style-choice #policy-list canvas{width:100%;height:140px;object-fit:contain;image-rendering:pixelated}#style-choice #policy-list b{font-size:24px;letter-spacing:3px}#style-choice #policy-list span{font-size:12px;line-height:1.4;white-space:normal;color:#e5d9bb}#style-choice .style-actions{position:static;margin:14px 0 0;padding:0;justify-content:center;background:none}#style-choice #style-back{flex:none;padding:7px 24px;min-height:36px;background:none;font-size:14px;border:0;border-bottom:1px solid #90764f;box-shadow:none}
/* Damage occupies the health gauge itself; no floating panel over the battle. */
.health{position:relative}.damage-lane{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:7px;background:#11161b95;pointer-events:none;z-index:1;white-space:nowrap}.damage-lane strong{font-size:24px;line-height:1;font-variant-numeric:tabular-nums;color:#ffdaa2;text-shadow:1px 1px #000,-1px -1px #000}.damage-lane small{font-size:12px;line-height:1;color:#ffeab3}.damage-lane.critical strong{color:#ffed88}.damage-pulse{animation:hud-hit .22s ease-out}@keyframes hud-hit{from{filter:brightness(1.8)}to{filter:brightness(1)}}
.round-display{position:relative}#combo-meter{display:none!important}#clash-callout{position:absolute;top:68px;left:50%;right:auto;width:105px;transform:translateX(-50%);margin:0;padding:0;border:0;background:none;box-shadow:none;animation:hud-hit .22s ease-out;pointer-events:none}#clash-callout strong{font-size:15px!important;letter-spacing:0;text-shadow:1px 2px #000,0 0 6px #000;line-height:1.3;color:#ffe0a2}#clash-callout small{display:none}
#battle:not(.planning) .strategy-dock{padding:5px 16px 10px;background:linear-gradient(transparent,#0e1b22bf 45%,#0e1821e8)}#battle:not(.planning) .status{position:absolute;right:10px;top:-26px;background:none}#battle:not(.planning) #phase,#battle:not(.planning) #scene-caption{display:none}#battle:not(.planning) #exchange-readout{position:relative;inset:auto;top:auto;padding:2px 0;margin:0 0 5px;background:none;border:0;box-shadow:none;min-height:24px;z-index:3}#exchange-readout .duel-cards{grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.duel-cards span{font-size:13px!important}.duel-cards b{font-size:13px!important}#exchange-readout #multiplier-stack{position:absolute;inset:0;top:0;background:none;border:0;padding:0;box-shadow:none;align-items:center}#exchange-readout.amplifying .duel-cards{visibility:hidden}#exchange-readout .multiplier-tile{flex-direction:row;align-items:center;gap:10px;background:none!important;border:0;padding:0;animation:hud-hit .2s ease-out}#exchange-readout .multiplier-tile b{font-size:22px}#exchange-readout .multiplier-tile small{font-size:13px}#slots[data-edge=a] .active{border-color:#e9d798;box-shadow:inset 0 0 0 1px #e9d798}#enemy-plan[data-edge=b] .active{border-color:#f79a73;color:#ffc4a6}
#battle:not(.planning) .plan-row{margin-bottom:3px}#battle:not(.planning) .slot{background:#111c2199;border:1px solid #807052;box-shadow:none}#battle:not(.planning) .slot .condition-tag{font-size:10px}#battle:not(.planning) #enemy-plan span{background:none}#battle:not(.planning) #ranked-state{display:none}
#result .result-eyebrow,#result .career-label{display:none}#result .result-record{border-left:0;padding:16px}#result .record-heading{font-size:19px;letter-spacing:4px;padding-bottom:8px}#result #result-stats{padding:14px 0;gap:8px}#result #result-progress{border:0;border-block:1px solid #8d784c;background:none;padding:8px 0}#result #result-progress p{font-size:13px;line-height:1.4}#result #result-progress b{font-size:17px}#result #result-highlight{border:0}#result .result-actions{gap:6px;margin-top:15px}#result .result-actions button{font-size:14px;min-height:42px;padding:8px}#result #ranking-summary{font-size:14px}#result summary{font-size:14px;color:#c6b388}#result #result-description{display:none}#result-quote{margin:8px 4px;font-size:15px!important}
#rally>span{font-size:13px}#rally h2{font-size:32px;letter-spacing:8px}#rally-options button{border:2px solid #ba9a5d;background:linear-gradient(#483a2a,#172126)}#rally-options small{display:none}#tutorial-feedback:empty{display:none}#chapter-content>p{display:none}.records-heading>span{display:none}.records-footer{border-top:1px solid #887149}.leaderboard-table{background:none}.leaderboard-table td{border-color:#625a43}.quest-list article{background:none;border:0;border-bottom:1px solid #756342}.quest-list article.complete{background:#62502a26}.hero-intro{border-bottom:1px solid #8d754a}.hero-story{font-size:14px!important;line-height:1.7!important}
@media(max-width:650px){#cabinet{border-radius:0}.select-title h1{font-size:24px;letter-spacing:5px}#selection .general .name{font-size:12px}header nav{gap:3px}header nav button{font-size:11px;padding:4px 6px}.planning .strategy-dock{padding:10px 10px 0;gap:6px}.planning-versus canvas{width:45px;height:54px}.planning .strategy-intel{top:0;max-width:30%;padding:4px}.planning .strategy-intel summary{font-size:10px}.planning .strategy-intel[open]{max-width:80%}.planning-heading #strategy-rival{font-size:13px;margin:3px 0 6px}.planning #slots{gap:4px}.planning .slot{min-height:82px;padding:4px}.planning .slot>b{font-size:12px}.planning .slot .condition-tag{font-size:10px}.planning .command{flex-basis:146px;width:146px;min-height:207px!important;height:207px}.planning .command canvas{height:88px!important}.planning .command>b{font-size:15px}.planning .confirm-stack{gap:5px}.planning #order-prompt{display:none}.planning #auto-fight,.planning #clear,.planning #fight{font-size:14px;padding:8px;flex:1}.planning #command-info{max-height:39px;font-size:12px!important}
#style-choice{padding:16px 12px 12px}#style-title{font-size:25px;margin-bottom:12px;letter-spacing:5px}#style-choice #policy-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#style-choice #policy-list button{min-height:183px;padding:5px 4px 9px;gap:5px}#style-choice #policy-list canvas{height:113px}#style-choice #policy-list b{font-size:21px}#style-choice #policy-list span{font-size:11px}#style-choice .style-actions{margin-top:8px}.damage-lane{gap:4px}.damage-lane strong{font-size:20px}.damage-lane small{font-size:10px}#clash-callout{top:62px;width:75px}#clash-callout strong{font-size:12px!important}#battle:not(.planning) .strategy-dock{padding:4px 8px 8px}.duel-cards span{font-size:11px!important}.duel-cards b{font-size:12px!important}#battle:not(.planning) .slot{padding:5px 3px}#result .result-record{padding:10px 6px}#result #result-stats b{font-size:23px}#result #result-stats small{font-size:11px}.progress-strip>span:last-child{margin:0}}
@media(max-height:520px) and (min-width:651px){#style-choice{padding:14px}#style-title{font-size:24px;margin-bottom:10px}#style-choice #policy-list button{min-height:200px}#style-choice #policy-list canvas{height:112px}}
@media(prefers-reduced-motion:reduce){.damage-pulse,#clash-callout,#exchange-readout .multiplier-tile{animation:none}}
#rally{text-align:center}#rally-options button{position:relative;justify-content:flex-start;align-items:center;padding:8px 8px 14px;gap:9px}#rally-options canvas{width:100%;height:105px;object-fit:contain}#rally-options .rally-multiplier{position:absolute;top:6px;right:8px;font-size:32px}#rally-options strong{font-size:20px}#rally-options span{font-size:13px;line-height:1.45}#rally-status{font-size:14px}#result #result-progress>p{margin:4px 0}#result #result-progress button{background:none;border:0;border-bottom:1px solid #9f8553;min-height:30px;padding:4px 0;box-shadow:none}
@media(max-width:650px){#rally{padding:15px}#rally-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#rally-options button{padding:5px 4px 10px;min-height:205px}#rally-options canvas{height:77px}#rally-options strong{font-size:16px}#rally-options span{font-size:11px;line-height:1.6}#rally-options .rally-multiplier{font-size:25px;top:3px;right:3px}#rally-status{font-size:12px}}
#cabinet:has(.planning){width:min(1100px,calc(100vw - 24px))!important;min-width:0}.planning .arena,.planning .strategy-dock,.planning .command-footer{min-width:0;max-width:100%;width:100%}.planning #command-list{width:100%;max-width:100%;min-width:0;flex:0 0 auto}.planning #slots{min-width:0;grid-template-columns:repeat(5,minmax(0,1fr))}.planning .slot{min-width:0;overflow-wrap:anywhere}
@media(max-width:650px){#cabinet:has(.planning){width:calc(100vw - 12px)!important}}
#result .result-record{background:none;border:0;box-shadow:none}#result #result-stats{border:0}#result .result-actions{background:none}#result #result-progress{border-bottom:0}#rally-options span{word-break:keep-all;overflow-wrap:break-word}
/* Sliding combat messages: four rows per fighter, newest at the bottom. */
.combat-feed{position:absolute;top:112px;left:10px;width:clamp(115px,20%,180px);height:116px;z-index:7;pointer-events:none;text-align:left}#feed-b{left:auto;right:10px;text-align:right}.feed-row{position:absolute;bottom:0;left:0;right:0;height:25px;transition:transform .2s ease-out,opacity .2s ease-out;will-change:transform}.feed-row>span{display:inline-block;max-width:100%;padding:3px 7px;font-size:14px;line-height:19px;font-weight:900;color:#ffe0bf;text-shadow:1px 2px #000;background:linear-gradient(90deg,#172027db,#17202700);border-left:2px solid #e39a74;white-space:nowrap;animation:feed-slide-left .2s ease-out}#feed-b .feed-row>span{background:linear-gradient(270deg,#172027db,#17202700);border-left:0;border-right:2px solid #e39a74;animation-name:feed-slide-right}.feed-row.buff>span{color:#a0f2bc;border-color:#8edda6!important}.feed-row.debuff>span{color:#ffa09b;border-color:#ef8680!important}.feed-row.critical>span,.feed-row.crisis>span{color:#ffe384;border-color:#f5d474!important}.feed-row.expired>span{color:#c4cfcc;border-color:#8faaa3!important}.feed-row.leaving{opacity:0!important}.planning .combat-feed,.ended .combat-feed{display:none}
@keyframes feed-slide-left{from{translate:-24px 0;opacity:0}to{translate:0 0;opacity:1}}@keyframes feed-slide-right{from{translate:24px 0;opacity:0}to{translate:0 0;opacity:1}}
@media(max-width:650px){.combat-feed{top:105px;left:6px;width:132px}#feed-b{right:6px}.feed-row>span{font-size:12px;padding:3px 5px}}@media(prefers-reduced-motion:reduce){.feed-row{transition:none}.feed-row>span{animation:none!important}}
@media(min-width:651px){#cabinet:has(#battle:not([hidden])) .speech,#cabinet:has(#battle:not([hidden])) .reply{top:70%}}
.feed-row>span{overflow:hidden;text-overflow:ellipsis}

/* Rounded lacquered controls, retaining the existing gold game frames. */
button{border-radius:8px!important}
button.command,#policy-list button,#rally-options button{border-radius:12px!important;overflow:hidden}
button.general,button.slot{border-radius:7px!important;overflow:hidden}
header nav button{border-radius:6px!important}
button:active:not(:disabled){filter:brightness(1.12)}

/* v1.09 — a single lacquer-and-vermilion duel cabinet. */
:root{--gold:#d0b581;--muted:#b8afa2;--ink:#171719;--edge:#605043}
body{background:#090a0b;padding:16px;color:#eee1c9}
#cabinet{width:min(1180px,100%);border:1px solid #67523b;border-radius:10px;background:#151719;box-shadow:0 24px 80px #000b,0 0 0 4px #151313}
header{background:#111315;height:54px;padding:8px 22px;border-bottom:1px solid #584331}
header .game-brand{font-size:23px;letter-spacing:3px;color:#e8d4aa}header .game-brand span{font-size:12px;color:#968573;letter-spacing:0}
header nav button{min-height:34px;background:none;border:0;border-bottom:1px solid #5f4b36;padding:5px 9px;font-size:13px;color:#c1b7a4}
#cabinet:has(#selection:not([hidden])) #choose{display:none}
#selection{position:relative;background:linear-gradient(90deg,#0d1114e8,#14191be8),url('assets/courtyard-pixel.png') center/cover;padding:16px 22px 18px}
.select-title{justify-content:flex-start;padding:0 0 15px}.select-title h1{font-size:21px;letter-spacing:4px;color:#c4b291}
#progress-open{position:absolute;top:12px;right:22px;margin:0;padding:5px 2px;border:0;border-bottom:1px solid #766044;font-size:13px;gap:7px}
#progress-rank{color:#b5a58b}#progress-open>span:last-child{color:#e5ceb0}
.select-layout{grid-template-columns:260px minmax(0,1fr);gap:24px;padding:0;align-items:stretch}
.selected-detail{grid-column:1;grid-row:1;padding:14px 18px 16px;border:0;background:linear-gradient(#4221249c,#171919aa 60%);border-top:3px solid #a84736;border-radius:8px;position:relative;overflow:visible}
#selected-portrait{width:160px;height:192px;border:0;box-shadow:none;image-rendering:pixelated;filter:drop-shadow(0 8px 8px #0009)}
.selected-detail h2{font-size:34px;letter-spacing:8px;margin:7px 0 0}.selected-detail p{font-size:14px;margin:0}.selected-detail strong{font-size:24px;color:#d7bd8c}
#selected-ultimate{font-size:15px;margin:10px 0 16px;color:#c8a982;min-height:22px}
.selected-detail label{font-size:13px;margin-top:9px;color:#a59c8a}.rival-picker{margin-bottom:8px}.rival-picker button{background:none;border:0;box-shadow:none;min-width:40px;min-height:36px}.rival-picker span{font-size:16px}
#campaign-start,#start,#campaign-resume{font-size:17px;letter-spacing:4px;min-height:44px;padding:10px;margin-top:8px}
#campaign-start{background:#893d31;border:1px solid #cf8c64;box-shadow:inset 0 1px #e8b48666,0 3px #251719;color:#ffe7bd}
#start{background:transparent;border:1px solid #655344;box-shadow:none;color:#c9b99a;font-size:15px}
#campaign-resume{background:#36302a;font-size:14px;letter-spacing:0}#campaign-career{display:none}
.roster{grid-column:2;grid-row:1;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;align-content:center;max-height:none;overflow:visible}
#selection .general{min-width:0;padding:0;border:1px solid #574837;background:#15181a;box-shadow:inset 0 0 0 2px #090c0e;transition:transform .12s,border-color .12s}
#selection .general canvas{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:top;border-radius:5px 5px 0 0}
#selection .general .name{font-size:13px;letter-spacing:1px;padding:5px 0 6px;background:#0f1315;color:#c5b89f}
#selection .general .stat{display:none}#selection .general[aria-pressed=true]{border:1px solid #edbb78;box-shadow:0 0 0 2px #aa6d3a;background:#51342a;transform:translateY(-2px)}
#selection .general[aria-pressed=true] .name{background:#673e29;color:#ffe4a8}
#selection .general:hover{transform:translateY(-2px);border-color:#ddaf78}
/* Planning feels like a hand laid on the same field, not a form. */
.planning .arena{height:auto!important;min-height:0!important}.planning #scene{position:absolute;height:100%!important;opacity:.08}
.planning .strategy-dock{position:relative!important;inset:auto!important;min-height:0!important;max-height:none!important;padding:28px 28px 0!important;gap:12px;background:linear-gradient(#14181bf0,#171719f5),url('assets/courtyard-pixel.png') center/cover;overflow:visible!important}
#cabinet:has(.planning){width:min(1140px,calc(100vw - 24px))!important}#cabinet:has(.planning) header{position:relative!important;height:48px}
.planning .hud,.planning .speech,.planning #round-banner{display:none!important}
.planning-heading{display:grid;grid-template-columns:180px 1fr;column-gap:20px;align-items:center;text-align:left;border-bottom:1px solid #66513b;padding-bottom:16px!important}
.planning-versus{grid-column:1;grid-row:1/4;gap:12px}.planning-versus canvas{width:68px;height:82px;border:0;border-radius:4px}.planning-versus>span{font-size:19px;color:#97724e}
.planning-heading #strategy-rival{grid-column:2;font-size:23px;letter-spacing:3px;margin:0 0 6px;color:#e6d0ac}
.planning #enemy-tendency{grid-column:2;font-size:15px;line-height:1.5;color:#c3ac87;letter-spacing:0;margin:0;max-width:90%}
.planning .strategy-intel{position:static;grid-column:2;max-width:none!important;background:none;border:0;padding:4px 0 0;text-align:left}.planning .strategy-intel summary{display:inline-block;border:0;font-size:12px;color:#8e8c83}.planning .strategy-intel p{position:static;width:auto;max-width:100%;background:none;border:0;box-shadow:none;padding:5px 0;margin:0;font-size:13px;color:#b6aa91}
#campaign-route{grid-column:2;justify-content:flex-start;margin:0}#campaign-route span{background:none;border:0;padding:3px;font-size:12px}#campaign-route .current{border:0;background:none;color:#f2c88e}
.planning .plan-label{display:flex!important;font-size:13px;color:#a5947a;padding:0}.planning #plan-count{display:none}
.planning .slot{background:#252323;border:1px solid #675440;box-shadow:none;min-height:78px;border-top:3px solid #665341;padding:8px 5px}
.planning .slot small{font-size:13px;color:#978975}.planning .slot>b{font-size:16px;color:#e6d7bb}.planning .slot .condition-tag{font-size:11px;color:#a5a193}
.planning .slot.editing{border-color:#dbaa68;background:#473426;box-shadow:none}.planning .slot.editing small{color:#ffdaa0}
.planning #command-list{gap:10px!important;padding:12px 2px 14px!important;scrollbar-color:#675340 transparent}
.planning .command{flex-basis:150px;width:150px;min-height:210px!important;height:210px;background:#202328;border:1px solid #766345;box-shadow:inset 0 0 0 3px #0e141a}
.planning .command canvas{height:100px!important}.planning .command>b{font-size:16px}.planning .command .tactic-type{font-size:12px;color:#aa9778}.planning .command .tactic-state{display:none}.planning .command .tactic-summary{font-size:12px;color:#b9b8ad}
.planning .command[data-tactic^=ultimate]{background:#3b292a;border-color:#bc8157}.planning .command:disabled{opacity:.3}.planning .command.unlearned{display:none}
.planning #command-info{font-size:14px!important;max-height:44px;color:#b9ad95}.planning .confirm-stack{margin:4px -28px 0;padding:12px 28px!important;background:#101417;border-top:1px solid #584837;position:sticky;bottom:0;z-index:6;gap:12px}
.planning #fight,#rally-confirm,#chapter-next,#hero-confirm{background:#893d31;border:1px solid #ce9068;color:#ffe2af;box-shadow:inset 0 1px #ffe6b344,0 3px #1a0f10;min-height:46px;font-size:18px;letter-spacing:4px}
.planning #fight{min-width:160px}.planning #auto-fight,.planning #clear{background:none;border:1px solid #5d503e;color:#b6a993;box-shadow:none;font-size:14px}
.planning #order-prompt{margin-right:auto;color:#bdae90;font-size:14px}
/* Shared modal framing: quiet background, portraits and choices carry the screen. */
dialog{border:1px solid #967247!important;border-top:3px solid #ad8052!important;border-radius:10px!important;background:linear-gradient(#191d20f7,#111619fa),url('assets/courtyard-pixel.png') center/cover!important;box-shadow:0 24px 90px #000e!important;max-height:92dvh;overflow:auto}dialog::backdrop{background:#080b10cf!important;backdrop-filter:blur(3px)}
dialog h2{color:#eed8b1;font-size:28px;letter-spacing:5px}#style-choice #policy-list button{background:#242224;border:1px solid #68513f;border-top:4px solid #9e5740}#style-choice #policy-list button[data-policy=assault]{background:#19262b}#style-choice #policy-list button[data-policy=capture]{background:#292231}#style-choice #policy-list button[data-policy=safe]{background:#322b20}
#rally{width:min(860px,96vw);padding:22px;text-align:center}#rally h2{margin:5px 0;font-size:27px;letter-spacing:5px}#rally-status{color:#bba786;margin:8px 0 14px}#rally-options{gap:12px}#rally-options button{min-height:190px;background:#23232a;border:1px solid #756045;box-shadow:none}#rally-options button[aria-pressed=true]{background:#573729;border-color:#f1c687;box-shadow:inset 0 0 0 2px #a87649}#rally-options canvas{height:85px}#rally-options strong{font-size:19px}#rally-options span{font-size:13px;color:#c8bea7}
#rally-revision{border-top:1px solid #66543b;margin-top:16px;padding-top:7px}#revision-note{font-size:14px;color:#d5b98b;margin:7px 0 12px}#revision-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#revision-slots button{font-size:14px;padding:10px 4px;min-height:42px;background:#20262a;border:1px solid #605843;box-shadow:none}#revision-slots button[aria-pressed=true]{color:#ffdb96;border-color:#d6a96d;background:#453628}
#revision-moves{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px 0}#revision-moves button{font-size:13px;min-height:36px;padding:6px 9px;background:none;border:1px solid #544b3f;box-shadow:none}#revision-moves button[aria-pressed=true]{border-color:#d5ae74;color:#ffdaad}#revision-undo{border:0;background:none;box-shadow:none;color:#a69983;font-size:12px;min-height:30px}#rally-confirm{display:block;width:min(300px,100%);margin:12px auto 0;position:sticky;bottom:0}
.reward-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:14px 0}.reward-choices>small{grid-column:1/-1;color:#b8a88b;font-size:13px;text-align:center}.reward-choices button,#campaign-rewards .reward-choices button{display:flex;flex-direction:column;text-align:center;gap:5px;padding:10px 6px!important;background:#202224;border:1px solid #69543f;box-shadow:none;margin:0}.reward-choices button[aria-pressed=true],#campaign-rewards .reward-choices button[aria-pressed=true]{border-color:#e2b477;background:#4d3028}.reward-seal{display:grid;place-items:center;border:1px solid #b97b54;background:#6b3028;color:#efcf9b;width:32px;height:36px;font-size:22px}.reward-choices strong{font-size:16px}.reward-choices span{font-size:12px;line-height:1.5;color:#baac94}
#result{background:linear-gradient(100deg,#19181be8,#13181bee),url('assets/courtyard-pixel.png') center/cover}.result-record{border:0!important;background:none!important;box-shadow:none!important}#result .record-heading{font-size:17px;color:#b8a07d;border:0}#result #career-score{gap:15px;flex-wrap:wrap}#result #career-score b{font-size:31px}#result .career-record{border-bottom:1px solid #554636}#result #result-stats>div{border-right:1px solid #554636}#result #result-stats b{font-size:24px}.result-actions button{background:#252729!important;border:1px solid #65513d!important;box-shadow:none!important}#result #again{background:#843c31!important;font-size:20px}#campaign-rewards{border:0;padding:10px 0}#result #result-progress{display:none}
#chapter{width:min(900px,96vw)}#chapter-next{display:block;width:min(340px,100%);margin:18px auto 0}.bracket-pair{background:#1d2428!important;border-color:#594a38!important}.bracket-me{color:#f1cc86!important;background:#563726!important}
@media(max-width:900px){.select-layout{grid-template-columns:200px minmax(0,1fr);gap:16px}.selected-detail{padding:14px 10px}.roster{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.planning-heading #strategy-rival{font-size:20px}.planning .slot>b{font-size:14px}}
@media(max-width:650px){body{padding:6px;display:block}#cabinet{width:100%;border-radius:7px}header{padding:8px 10px!important;gap:5px}header .game-brand{font-size:19px;letter-spacing:2px}header nav{gap:2px}header nav button{font-size:12px;padding:5px;min-height:32px}#selection{padding:12px 10px}.select-title{padding:0 0 12px}.select-title h1{font-size:19px;letter-spacing:3px}#progress-open{right:10px;top:9px}#progress-open span{font-size:12px}
.select-layout{display:flex;flex-direction:column;gap:12px}.selected-detail{display:grid;grid-template-columns:92px 1fr 1fr;gap:4px 9px;padding:12px;align-items:center;border-top:2px solid #9f4935;overflow:visible;text-align:left}#selected-portrait{grid-column:1;grid-row:1/5;width:90px;height:108px} .selected-detail h2{grid-column:2;grid-row:1;font-size:27px;letter-spacing:4px}.selected-detail p{grid-column:3;grid-row:1;font-size:12px;text-align:right}.selected-detail strong{font-size:21px;margin-left:4px}#selected-ultimate{grid-column:2/4;margin:0;font-size:13px;min-height:0}.selected-detail label{display:none}.rival-picker{grid-column:2/4;margin:0;height:29px}.rival-picker button{min-height:28px;padding:0 8px}.rival-picker span{font-size:14px}#campaign-start{grid-column:2;grid-row:4}#start{grid-column:3;grid-row:4}#campaign-start,#start{font-size:14px;min-height:38px;margin:0;padding:6px;letter-spacing:1px}#campaign-resume{grid-column:1/4;grid-row:5;margin:4px 0 0;min-height:34px}.roster{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;max-height:none!important;overflow:visible!important}#selection .general .name{font-size:12px;padding:4px 0}#selection .general canvas{aspect-ratio:1/1}
.planning .strategy-dock{padding:14px 10px 0!important;gap:8px}.planning-heading{grid-template-columns:96px 1fr;column-gap:10px;padding-bottom:10px!important}.planning-versus{gap:4px}.planning-versus canvas{width:40px;height:48px}.planning-versus>span{font-size:14px}.planning-heading #strategy-rival{font-size:16px;letter-spacing:0;line-height:1.5;margin:0}.planning #enemy-tendency{font-size:13px;max-width:100%;line-height:1.5}.planning .strategy-intel summary{font-size:12px}.planning .plan-label{font-size:12px}.planning .slot{min-height:75px;padding:5px 2px}.planning .slot>b{font-size:12px;word-break:keep-all;overflow-wrap:anywhere}.planning .slot small{font-size:12px}.planning .slot .condition-tag{font-size:10px}.planning #slots{gap:4px}.planning .command{flex-basis:134px;width:134px;min-height:194px!important;height:194px}.planning .command canvas{height:84px!important}.planning .command>b{font-size:14px}.planning #command-info{font-size:12px!important;max-height:38px}.planning .confirm-stack{margin:2px -10px 0;padding:10px!important;gap:7px}.planning #fight{min-width:80px;flex:1.3;font-size:16px}.planning #auto-fight,.planning #clear{font-size:13px;min-height:44px}.planning #order-prompt{display:none}
#rally{padding:14px 10px;max-height:94dvh}#rally-options{gap:6px}#rally-options button{padding:5px;min-height:174px;gap:7px}#rally-options canvas{height:62px}#rally-options strong{font-size:15px}#rally-options span{font-size:12px;line-height:1.45}#rally h2{font-size:23px}#revision-slots{gap:5px}#revision-slots button{font-size:12px;line-height:1.5}#revision-moves{gap:5px;margin:9px 0}#revision-moves button{font-size:12px;padding:5px 7px}#revision-note{font-size:12px}#rally-confirm{font-size:16px;min-height:42px}.reward-choices span{font-size:12px}.reward-choices strong{font-size:15px}#result #career-score{gap:14px}#result #career-score b{font-size:27px}#result .result-record{padding:12px 6px}#chapter{padding:15px 10px}}
@media(prefers-reduced-motion:reduce){#selection .general{transition:none}}
/* Benchmark application: one readable enemy intent, a selected hand, and peripheral feedback. */
.planning .planning-heading{display:grid;text-align:left;margin:0;grid-template-columns:180px 1fr}
.planning .intent-read{grid-column:2;display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:9px 0 3px}.intent-read b{font-size:15px;color:#f3c48a;font-weight:400}.intent-read span{font-size:13px;color:#a1b2b5}.intent-read span[data-edge=a]{color:#9ad9b0}.intent-read span[data-edge=b]{color:#f49887}
.planning .command[aria-pressed=true]{border-color:#e4bd78;box-shadow:inset 0 0 0 2px #ba8541;translate:0 -4px}.planning .command:hover:not(:disabled){translate:0 -4px;filter:brightness(1.12)}
#battle:not(.planning) #exchange-readout .duel-cards{max-width:600px;margin:auto}#exchange-readout[data-side=a] #readout-a{color:#b5ecc0}#exchange-readout[data-side=b] #readout-b{color:#f5a992}
#exchange-readout .multiplier-tile small{color:#dab885}#exchange-readout .multiplier-tile b{color:#ffc883;font-variant-numeric:tabular-nums}
@media(max-width:650px){.planning .planning-heading{grid-template-columns:96px 1fr}.planning .intent-read{grid-column:1/-1;gap:7px;margin:8px 0 0;justify-content:center}.intent-read b{font-size:13px}.intent-read span{font-size:12px}.planning-versus{grid-row:1/3}}
#battle:not(.planning) .planning-heading{display:none}
.planning .planning-heading p#strategy-rival{font-size:22px;letter-spacing:2px}
#result p#result-key{font-size:14px;color:#d6ba88;line-height:1.8;white-space:pre-line;width:auto;margin:18px 12px 0}
#result #campaign-rewards .reward-choices button{background:#202328!important;border:1px solid #62513f!important;box-shadow:none!important}
#result #campaign-rewards .reward-choices button[aria-pressed=true]{background:#57382b!important;border-color:#edc183!important}
#result #campaign-rewards>button{background:#843c31!important;border:1px solid #ca8a60!important;justify-content:center;box-shadow:none!important}
@media(max-width:650px){.planning .planning-heading p#strategy-rival{font-size:16px;letter-spacing:0}#result p#result-key{font-size:13px;margin:10px 0}.planning .strategy-intel{grid-column:2}}
@media(max-width:650px){.ended .arena{height:calc(100dvh - 14px)!important;min-height:0!important}.ended #scene{height:100%!important}#result .result-hero{padding-top:0}#result .result-hero #result-art{height:118px}#result .result-record .career-record{padding:9px 0}}
/* Duel-specific letterbox, with the two techniques sharing one beat. */
#duel-cinematic{position:absolute;inset:0;z-index:12;pointer-events:none;border-top:38px solid #05070bec;border-bottom:48px solid #05070bec;background:linear-gradient(#080b1444,transparent 25% 75%,#080b1422)}
#duel-cinematic>div{position:absolute;top:15%;left:5%;right:5%;display:grid;grid-template-columns:1fr 35px 1fr;align-items:center;text-align:center;gap:10px;text-shadow:2px 3px #000}
#duel-cinematic b{font-size:clamp(15px,2.6vw,30px);color:#ffe0a0}#duel-cinematic b:last-child{color:#b7e6fa}#duel-cinematic span{font-size:18px;color:#b4aea0}
#duel-verdict{position:absolute;bottom:12%;width:100%;text-align:center;font-size:clamp(21px,3vw,36px);letter-spacing:6px;color:#ffe4b0;text-shadow:2px 3px #100c15}
#duel-cinematic[data-phase=cross]>div{opacity:.25}#duel-cinematic[data-phase=impact]>div{opacity:.5}
/* Floating gold motes, no rotating rays or radial stripes. */
.champion-rays{inset:0;opacity:.7;background:none!important;animation:none!important;overflow:hidden;pointer-events:none}
.champion-rays:before,.champion-rays:after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,#ffe5a3 0 1px,transparent 2px),radial-gradient(circle,#d2a353 0 2px,transparent 3px);background-size:73px 101px,127px 149px;background-position:19px 23px,57px 72px;animation:gold-rise 13s linear infinite}
.champion-rays:after{opacity:.45;transform:translateX(27px);background-size:113px 157px,173px 199px;animation-duration:19s}
@keyframes gold-rise{from{background-position:19px 124px,57px 221px}to{background-position:19px 23px,57px 72px}}
@media(prefers-reduced-motion:reduce){.champion-rays:before,.champion-rays:after{animation:none}}
@media(max-width:650px){#duel-cinematic{border-top-width:35px;border-bottom-width:35px}#duel-cinematic>div{top:23%;left:3%;right:3%;gap:4px;grid-template-columns:1fr 18px 1fr}#duel-cinematic b{font-size:15px}#duel-verdict{bottom:19%;font-size:23px;letter-spacing:3px}}
/* Shared lacquer-and-brass game frames, with sprite-led technique entries. */
#hero-detail{padding:22px;width:min(920px,94vw);border-radius:16px!important}
#hero-close{position:sticky;top:0;z-index:3;min-height:40px;border-radius:9px;background:#151a20f2;border:1px solid #8e714c}
#hero-detail .hero-intro{grid-template-columns:160px 1fr;gap:22px;padding:18px;border:1px solid #796044;border-radius:14px;background:linear-gradient(110deg,#6f362744,#162028b8),url('assets/courtyard-pixel.png') center/cover;box-shadow:inset 0 0 0 3px #0b111a88;margin-top:10px}
#hero-detail .hero-intro canvas{width:160px;height:192px;border:0;border-radius:12px;filter:drop-shadow(0 8px 5px #0009)}
#hero-detail .hero-intro h2{font-size:34px;margin:5px 0 9px;color:#ffe0a5}
#hero-detail .hero-intro b{font-size:14px;line-height:1.6;color:#ddc49c}
#hero-detail .hero-story{white-space:pre-line;background:#09121bb0;padding:12px 15px;border:1px solid #77634b70;border-radius:10px;margin:12px 0 0;font-size:14px!important;line-height:1.85!important;word-break:keep-all}
#hero-detail h3{font-size:18px;letter-spacing:4px;color:#dabc89;margin:22px 0 12px;border-bottom:1px solid #806345;padding-bottom:10px}
#hero-detail .hero-techniques{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#hero-detail .hero-technique{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;padding:10px;gap:12px;border:1px solid #61553f;border-radius:12px;background:linear-gradient(120deg,#2b2c2c,#131c23);box-shadow:inset 0 0 0 3px #0b121770;min-width:0;overflow:hidden}
#hero-detail .hero-technique[data-tactic^=ultimate]{border-color:#b88451;background:linear-gradient(115deg,#523027,#191b28)}
#hero-detail .hero-technique[data-tactic=ultimate2]{border-color:#8e799e;background:linear-gradient(115deg,#342c48,#151c28)}
#hero-detail .hero-technique canvas{width:110px;height:auto;aspect-ratio:200/128;image-rendering:pixelated;border-radius:8px;border:1px solid #95754566;background:#111920}
#hero-detail .technique-copy small{font-size:11px;letter-spacing:2px;color:#bda574}
#hero-detail .technique-copy b{font-size:16px;line-height:1.45;margin:4px 0 5px;word-break:keep-all}
#hero-detail .technique-copy span{display:block;font-size:13px;line-height:1.65;color:#c7c4b7;word-break:keep-all}
#hero-confirm{border-radius:11px;bottom:0;box-shadow:0 -8px 18px #10161df0!important}
.planning .command,#rally-options button,#style-choice #policy-list button{border-radius:12px;overflow:hidden;box-shadow:inset 0 0 0 3px #0b111b88,0 5px 0 #080d12}
.planning .command canvas,#policy-list canvas,#rally-options canvas{border-radius:8px;image-rendering:pixelated}
.planning .slot,#revision-slots button,.reward-choices button{border-radius:9px}
#chapter .bracket-pair,.tutorial-card,#result-stats>div,#result-stats>span{border-radius:9px}
#tutorial-copy,#tutorial-feedback,.hero-signature{border-radius:12px;background:#111b2580;padding:12px;line-height:1.7}
#result .result-record{border-radius:14px;background:linear-gradient(110deg,#17202966,#0b111b44)}
#records .leaderboard-table th{color:#dbbb80;border-bottom:2px solid #8a6944;background:#252321}
#records .leaderboard-table tbody tr:nth-child(-n+3){color:#f5d697;background:#70512a1c}
#records-body input{border-radius:8px;background:#101921;color:#f4dbad;border:1px solid #876a45}
button:focus-visible{outline:2px solid #ffe1a3;outline-offset:3px}
@media(max-width:650px){
 .select-layout>.selected-detail{order:-1;box-shadow:inset 0 0 0 1px #9d714633,0 6px 15px #0004;border-radius:12px}
 #hero-detail{padding:12px;max-height:94dvh;width:96vw}
 #hero-detail .hero-intro{grid-template-columns:80px minmax(0,1fr);padding:12px;gap:12px}
 #hero-detail .hero-intro canvas{width:80px;height:96px;align-self:start}
 #hero-detail .hero-intro h2{font-size:28px;letter-spacing:3px}
 #hero-detail .hero-intro b{font-size:13px}
 #hero-detail .hero-story{font-size:13px!important;padding:10px;margin-top:9px}
 #hero-detail .hero-techniques{grid-template-columns:1fr}
 #hero-detail .hero-technique{grid-template-columns:100px minmax(0,1fr);gap:10px;padding:10px}
 #hero-detail .hero-technique canvas{width:100px}
 #hero-confirm{font-size:18px;min-height:48px;padding:10px;margin-top:12px}
}
@media(max-width:360px){#hero-detail .hero-technique{grid-template-columns:84px minmax(0,1fr)}#hero-detail .hero-technique canvas{width:84px}.selected-detail h2{font-size:24px}}
@media(max-width:650px){
 #hero-detail .hero-intro>div{display:contents}
 #hero-detail .hero-intro canvas{grid-column:1;grid-row:1/4}
 #hero-detail .hero-intro small{grid-column:2;grid-row:1;font-size:12px;letter-spacing:1px}
 #hero-detail .hero-intro h2{grid-column:2;grid-row:2;margin:0}
 #hero-detail .hero-intro b{grid-column:2;grid-row:3}
 #hero-detail .hero-story{grid-column:1/-1;grid-row:4;margin:0}
}
/* The combat toolbar owns real layout space, including wrapped/zoomed mobile text. */
#cabinet:has(#battle:not([hidden]):not(.planning):not(.ended))>header{position:relative!important;inset:auto;height:auto!important;min-height:44px;flex-wrap:wrap;gap:6px}
#cabinet:has(#battle:not([hidden]):not(.planning):not(.ended))>header nav{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
#battle:not(.planning):not(.ended) .hud{top:12px}
#duel-cinematic[data-phase=hitstop]{background:#06091255;border-color:#04060bf5}
#duel-cinematic[data-phase=hitstop]>div,#duel-cinematic[data-phase=aftermath]>div{opacity:.15}
#duel-cinematic[data-phase=hitstop] #duel-verdict,#duel-cinematic[data-phase=aftermath] #duel-verdict{visibility:hidden}

/* v1.16 — show the move, then let the player try it. */
.skill-stage{display:block;width:100%;height:auto;aspect-ratio:24/11;border:1px solid #796043;border-radius:12px;image-rendering:pixelated;background:#111a20;overflow:hidden}
.preview-caption{font-size:14px!important;line-height:1.5!important;color:#e4cf9c;margin:8px 0!important;text-align:center;min-height:21px}
.skill-tabs{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.skill-tabs button{font:inherit;font-size:12px;padding:7px 10px;min-height:36px;border:1px solid #65553d;border-radius:8px;background:#192427;color:#d4c8b1}
.skill-tabs button[aria-pressed=true]{border-color:#f0cc82;background:#60432d;color:#fff1cc;box-shadow:inset 0 0 0 1px #d2a85b}
#selection-preview{margin-top:8px}#selection-skills{max-height:92px;overflow:auto;align-content:start;margin:4px 0 10px;scrollbar-width:thin}
#selection-skills button{font-size:11px;padding:5px 7px;min-height:32px;letter-spacing:0}
#selected-portrait[hidden]{display:none!important}.selected-detail #selection-preview-status{font-size:12px!important;min-height:36px}
#enemy-pick{display:flex;width:100%;align-items:center;gap:9px;min-height:62px;background:#172327;border:1px solid #6e634b;border-radius:10px;padding:6px 10px;box-shadow:inset 0 1px #c2b28222}
#enemy-pick canvas{width:40px;height:48px;border-radius:5px;object-fit:contain}#enemy-pick small{margin-left:auto;font-size:11px;color:#bbaa85}#enemy-display{font-size:17px}
#opponent-picker{width:min(900px,96vw);max-height:92dvh;overflow:auto;padding:18px;border:2px solid #a18556;border-radius:16px;background:#101c22}
.picker-heading{display:flex;align-items:center;justify-content:space-between;position:sticky;top:-18px;z-index:2;background:#101c22;padding:10px 0;margin-bottom:14px}.picker-heading h2{margin:0;font-size:24px}
#opponent-roster{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;max-height:none;overflow:visible}
#opponent-roster .general{min-width:0;padding:5px;min-height:0;height:auto;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:3px}
#opponent-roster canvas{width:100%;max-width:80px;height:auto}#opponent-roster .name{font-size:14px}#opponent-roster .stat{font-size:11px}#opponent-roster button:disabled{opacity:.3}
#hero-detail{width:min(720px,96vw);max-height:94dvh;padding:18px;overflow:auto;scrollbar-width:thin}
#hero-detail .hero-intro{grid-template-columns:64px minmax(0,1fr);padding:8px 12px;gap:14px;border:0;background:none;margin-bottom:8px}
#hero-detail .hero-intro canvas{width:64px;height:77px}#hero-detail .hero-intro h2{font-size:30px;margin:0}#hero-detail .hero-intro b{font-size:13px}
#hero-detail #hero-skill-name{font-size:21px;line-height:1.3;text-align:center;margin:12px 0 4px;letter-spacing:2px}
.skill-warning{font-size:12px;color:#c7a396;text-align:center;margin:0 0 12px}
#hero-detail .hero-techniques{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}
#hero-detail .hero-technique{display:flex;flex-direction:column;gap:2px;padding:4px;min-width:0;text-align:center}
#hero-detail .hero-technique canvas{width:100%;max-width:112px;height:auto;aspect-ratio:25/16;border:0;border-radius:6px}
#hero-detail .hero-technique b{font-size:12px;line-height:1.4;word-break:keep-all}#hero-detail .hero-lore{font-size:13px;color:#bcb49e;padding:8px}
#hero-detail .hero-story{white-space:pre-line;margin:8px 0!important;font-size:13px!important}#hero-confirm{position:sticky;bottom:-18px;width:100%;z-index:3;margin:8px 0 0;min-height:48px;background:#783d2c;border:1px solid #d6aa70;border-radius:10px;box-shadow:0 -8px 16px #101b22}
#hero-close{float:right;position:sticky;top:-10px;z-index:3}#hero-content{clear:both}
#tutorial{width:min(660px,96vw);max-height:94dvh;padding:18px;overflow:auto;border-radius:16px}#tutorial h2{font-size:25px;margin:10px 0;letter-spacing:1px}
#tutorial-copy{padding:0;background:none;line-height:1.5;font-size:14px;margin:8px 0 12px}#tutorial-demo{border:0;white-space:normal;line-height:1.4;padding:0}
.lesson-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:10px 0}.lesson-slots span{display:grid;place-items:center;min-height:42px;border:1px dashed #77674b;border-radius:7px;font-size:12px;color:#8f907e}.lesson-slots span.filled{border-style:solid;border-color:#e0bd7c;background:#57422b;color:#ffe7b8}
.lesson-hint{display:block;font-size:13px;margin:8px 0;color:#d4b989}.lesson-card{display:inline-flex;flex-direction:column;align-items:center;border:2px solid #d8af6a;border-radius:10px;padding:5px 16px;background:#243239;min-width:140px}.lesson-card canvas{width:112px;height:72px;object-fit:contain}.lesson-card b{font-size:15px}.lesson-card[aria-pressed=true]{background:#534329;border-color:#b9d99b}
#tutorial-feedback{padding:8px 10px;margin:8px 0;background:#25362b;font-size:13px;line-height:1.5;color:#d4e4ba}
.tutorial-actions{position:sticky;bottom:-18px;background:#101b24;padding:10px 0 4px;z-index:2}.tutorial-actions button{min-height:42px;font-size:13px;border-radius:8px}.tutorial-actions button:disabled{opacity:.35}#tutorial-skip{background:transparent;color:#b4aa92}
#plan-preview{grid-column:1/-1;width:100%;margin:8px 0;color:#cfbd96;font-size:13px}#plan-preview summary{cursor:pointer;padding:8px;border-bottom:1px solid #66573e}#plan-preview .skill-stage{max-width:560px;margin:10px auto}#plan-preview-title{display:block;text-align:center;font-size:17px}#battle:not(.planning) #plan-preview{display:none}
@media(max-width:650px){
 #selection-preview{max-width:400px;margin:6px auto}#selection-skills{max-height:82px}.selected-detail #selection-preview-status{min-height:0}
 #opponent-picker{padding:12px}#opponent-roster{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.picker-heading{top:-12px}#opponent-roster .general{padding:3px}#opponent-roster .name{font-size:12px}
 #hero-detail{padding:12px}#hero-detail .hero-intro>div{display:block}#hero-detail .hero-intro canvas{grid-area:auto}#hero-detail .hero-intro h2{font-size:26px;letter-spacing:3px}#hero-detail .hero-techniques{grid-template-columns:repeat(4,minmax(0,1fr))}#hero-detail .hero-technique canvas{width:100%}#hero-detail .hero-technique b{font-size:11px}#hero-confirm{bottom:-12px}
 #tutorial{padding:12px}#tutorial h2{font-size:22px}#tutorial-copy{font-size:13px}.tutorial-actions{bottom:-12px}#tutorial-stage-status{font-size:12px!important}.lesson-card canvas{width:88px;height:56px}
}
@media(max-width:360px){#opponent-roster{grid-template-columns:repeat(4,minmax(0,1fr))}#hero-detail .hero-techniques{grid-template-columns:repeat(3,minmax(0,1fr))}}
#tutorial-demo{display:block;min-height:0;margin:10px 0}#tutorial-copy{min-height:0}.tutorial-actions{gap:8px}.tutorial-actions button{min-width:0;flex:1;padding:8px 10px}.lesson-slots span{min-width:0;word-break:keep-all;line-height:1.35;padding:4px 1px}
#hero-skill-stage{object-fit:fill;height:auto;max-height:none}.skill-stage{box-sizing:border-box}
@media(max-width:650px){
 .selected-detail{grid-template-columns:1fr 1fr;gap:7px 10px}
 .selected-detail>*{grid-column:auto;grid-row:auto;min-width:0}
 .selected-detail #selected-name{grid-column:1;grid-row:1;margin:0}.selected-detail>p:not(.preview-caption){grid-column:2;grid-row:1}
 .selected-detail #selected-weapon{display:none}.selected-detail #selected-ultimate{display:none}
 .selected-detail #selection-preview{grid-column:1/-1;grid-row:2;width:100%;max-width:none;margin:0}
 .selected-detail #selection-preview-status{grid-column:1/-1;grid-row:3;text-align:center;margin:0!important;min-height:0}
 .selected-detail #selection-skills{grid-column:1/-1;grid-row:4;max-height:76px;flex-direction:row;margin:0}
 .selected-detail .rival-picker{grid-column:1/-1;grid-row:5;height:auto;margin:4px 0}
 .selected-detail #campaign-start{grid-column:1;grid-row:6}.selected-detail #start{grid-column:2;grid-row:6}
 .selected-detail #campaign-resume{grid-column:1/-1;grid-row:7}.selected-detail #mastery{display:none}
 .selected-detail #enemy-pick{min-height:58px;padding:5px 9px;font-size:14px}
}
@media(min-width:651px){
 .select-layout{grid-template-columns:320px minmax(0,1fr)}
 .selected-detail{display:flex;flex-direction:column;justify-content:flex-start;gap:6px}
 .selected-detail #selected-name{order:-3;margin-top:0}.selected-detail>p:has(#selected-power){order:-2}
 .selected-detail #selected-weapon,.selected-detail #selected-ultimate{display:none}
 #selection-skills{max-height:none;overflow:visible;margin:4px 0 12px}
 .selected-detail .rival-picker{width:100%;margin-top:0}.selected-detail label{margin-top:auto}
 .selected-detail #campaign-start,.selected-detail #start,.selected-detail #campaign-resume{width:100%}
}
@media(min-width:1050px){.select-layout{grid-template-columns:360px minmax(0,1fr)}}

/* Selected warrior identity and roster power badges. */
.selected-detail .selected-identity{display:flex;align-items:center;gap:16px;width:100%;order:-5;grid-column:1/-1;grid-row:1;text-align:left;margin:0 0 8px}
.selected-detail .selected-identity #selected-portrait{display:block;width:70px;height:84px;max-width:none;flex:0 0 70px;border:1px solid #aa8555;border-radius:8px;box-shadow:0 3px 8px #0005;filter:none;object-fit:contain}
.selected-detail .selected-identity>div{min-width:0;flex:1}.selected-detail .selected-identity #selected-name{margin:0 0 5px;font-size:28px;letter-spacing:3px;line-height:1.3}
.selected-detail .selected-identity p{margin:0;text-align:left;font-size:14px;color:#c1b694}.selected-detail .selected-identity strong{font-size:23px;margin-left:7px;color:#f0cf8e}
#roster .general,#opponent-roster .general{position:relative}
#selection #roster .general .stat,#opponent-roster .general .stat{display:block;position:absolute;top:3px;right:3px;z-index:1;min-width:25px;padding:2px 4px;border:1px solid #c39a5c;border-radius:5px;background:#101719ed;color:#ffe3a2;font:700 13px/1.2 DuelSerif,serif;font-variant-numeric:tabular-nums;text-align:center;text-shadow:1px 1px #000;box-shadow:0 2px 4px #0008;pointer-events:none}
@media(max-width:650px){.selected-detail .selected-identity{gap:13px;margin-bottom:3px}.selected-detail .selected-identity #selected-portrait{width:60px;height:72px;flex-basis:60px}.selected-detail .selected-identity #selected-name{font-size:26px}#selection #roster .general .stat,#opponent-roster .general .stat{font-size:11px;min-width:22px;padding:2px 3px;top:2px;right:2px}}
/* Compact selected warrior, matching the selected portrait frame. */
#selection .selected-detail{align-self:start;border:2px solid #edbb78;border-radius:16px;box-shadow:0 0 0 2px #aa6d3a55,inset 0 0 0 1px #ffe1a322;background:linear-gradient(#392b25,#141d20);padding:16px;gap:10px}
#selection .selected-detail .selected-identity{margin:0 0 10px}#selection .selected-detail label{margin-top:8px}
@media(max-width:650px){#selection .selected-detail{width:100%;gap:8px}#selection .selected-detail .rival-picker{grid-row:2}#selection .selected-detail #campaign-start,#selection .selected-detail #start{grid-row:3}#selection .selected-detail #campaign-resume{grid-row:4}}
/* Explicit rail controls survive disappearing system scrollbars and viewport zoom. */
.planning .command-footer{display:flex;flex-direction:column;min-width:0;overflow:visible}
.planning #command-list{display:flex!important;flex-wrap:nowrap!important;width:100%;min-width:0;max-width:100%;overflow-x:scroll!important;overflow-y:hidden!important;scrollbar-gutter:stable;touch-action:pan-x pan-y;overscroll-behavior-x:contain;scroll-snap-type:none}
.planning #command-list .command{flex-shrink:0!important}#card-scroll{display:flex;align-items:center;gap:12px;width:100%;padding:0 3px 5px;min-height:40px}#card-scroll button{flex:0 0 44px;min-height:38px;border:1px solid #ac8752;border-radius:8px;background:#30291f;color:#e2c68f}#card-scroll button:disabled{opacity:.3}#cards-position{flex:1;min-width:0;accent-color:#d0ac6e;cursor:ew-resize;height:26px}#battle:not(.planning) #card-scroll{display:none}
#rules{width:min(620px,95vw);max-height:92dvh;overflow:auto;padding:20px;border-radius:16px}.rule-heading{display:flex;justify-content:space-between;align-items:center;color:#bca77e}#rules #rule-title{font-size:26px;margin:12px 0}#rules #rule-sentence{font-size:17px;line-height:1.7;min-height:58px;margin:12px 0 20px;color:#eee0bf;word-break:keep-all}#rule-example{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:15px;border:1px solid #775f3e;border-radius:12px;background:#101a20}.rule-card{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0;text-align:center}.rule-card canvas{width:100%;max-width:200px;height:auto;image-rendering:pixelated;border-radius:9px}.rule-card b{font-size:14px;line-height:1.6;color:#e2cb9c}.rule-result{grid-column:1/-1;text-align:center;font-size:18px;color:#d5dfab;border-top:1px solid #645a42;padding-top:12px}#rule-dots{display:flex;justify-content:center;gap:5px;margin:18px 0;flex-wrap:wrap}#rules #rule-dots button{min-width:32px;min-height:32px;padding:4px;margin:0;background:#18242a;border:1px solid #655840;border-radius:6px;font-size:13px}#rules #rule-dots button[aria-pressed=true]{background:#74512e;border-color:#eac77e}.rule-actions{display:flex;gap:10px}.rule-actions button{flex:1;min-height:44px;border-radius:8px}#rules #tutorial-replay{display:block;margin:6px auto 0;background:none;border:0;border-bottom:1px solid #76664b;font-size:13px;color:#bcb092}
@media(max-width:650px){#rules{padding:14px}#rules #rule-title{font-size:23px}#rules #rule-sentence{font-size:15px}#rule-example{padding:10px;gap:8px}.rule-card b{font-size:12px}.rule-result{font-size:15px}}
#duel-cinematic[data-phase=evade]{border-block-width:18px;background:#060c161c}#duel-cinematic[data-phase=evade] #duel-verdict{font-size:24px;color:#bfe4d2;text-shadow:2px 3px #0b1619}#duel-cinematic[data-phase=evade]>div{font-size:13px}
#turn-choice{width:min(590px,95vw);max-height:92dvh;overflow:auto;border:2px solid #c9a267;border-radius:16px;padding:20px;background:linear-gradient(#242827f7,#111d24fa);box-shadow:0 0 0 3px #352a1c,0 16px 60px #000b}.turn-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}#turn-title{font-size:24px;margin:0}#turn-momentum{color:#b9dcaf;font-size:15px;white-space:nowrap}#turn-recap{font-size:12px;color:#aaad9d;max-height:3.2em;overflow:auto;line-height:1.6}#turn-intent{border-block:1px solid #806947;padding:12px 0;font-size:17px;color:#e4c894;line-height:1.5}.turn-selected{display:flex;align-items:center;gap:16px;background:#121e2380;padding:12px;border-radius:12px}.turn-selected canvas{width:130px;height:84px;image-rendering:pixelated;flex:none}.turn-selected h3{font-size:21px;margin:0 0 8px}.turn-selected p{font-size:13px;color:#c6bea8;line-height:1.6;margin:0}#turn-change,#turn-stake,#turn-go,#turn-auto{width:100%;min-height:42px;border-radius:8px;margin:9px 0 0}#turn-change{background:#293235;border-color:#97815c}#turn-cards{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}#turn-cards[hidden]{display:none}#turn-cards button{min-height:40px;padding:6px 10px;font-size:13px;border-radius:7px}#turn-cards button[aria-pressed=true],#turn-stake[aria-pressed=true]{background:#735027;border-color:#efd098}#turn-stake:disabled{opacity:.4}#turn-choice>small{display:block;font-size:11px;color:#a8ab97;margin:7px 0}#turn-go{background:#863e2d;border-color:#dba476;font-size:19px}#turn-auto{background:none;border:0;color:#aeb3a8;font-size:13px}#decision-mode{font-size:11px;padding:4px 7px;white-space:nowrap}
@media(max-width:650px){#turn-choice{padding:14px}#turn-title{font-size:21px}#turn-intent{font-size:15px}.turn-selected{gap:10px;padding:8px}.turn-selected canvas{width:100px;height:64px}.turn-selected h3{font-size:17px}.turn-selected p{font-size:12px}}

/* Keep dialogue tails below the character momentum rail at every aspect ratio. */
#cabinet:has(#battle:not([hidden])) .speech,#cabinet:has(#battle:not([hidden])) .reply{top:var(--speech-top,74%)}

@media(min-width:651px){#cabinet:has(#battle:not([hidden])) .speech{padding:4px 10px}.speech b{display:inline;font-size:12px!important;margin-right:8px}.speech span{display:inline;font-size:14px!important;line-height:1.5!important}}
/* A two-card wager on the battlefield, with a illustrated replacement hand. */
#turn-choice{width:min(660px,96vw);padding:22px;background:radial-gradient(ellipse at 50% 40%,#384035df,#111a1bf5 75%),url('assets/courtyard-pixel.png') center/cover;border:1px solid #8c774f;border-radius:10px;box-shadow:inset 0 0 0 4px #151b19,0 25px 80px #000c}#turn-choice::backdrop{background:#05090db3;backdrop-filter:blur(2px)}#turn-title{font-size:23px}#turn-intent{border:0;text-align:center;font-size:14px;padding:7px;margin:8px 0 18px;color:#c9c2a8}#turn-momentum{display:flex;gap:6px}#turn-momentum i{display:block;width:13px;height:13px;transform:rotate(45deg);border:1px solid #9b845d;background:#151d22}#turn-momentum i.lit{background:#ffc66b;box-shadow:0 0 9px #ef983e}
.turn-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:470px;margin:0 auto 16px;align-items:stretch}.turn-selected,#turn-choice #turn-stake{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-width:0;min-height:292px;margin:0;padding:12px 10px;border:2px solid #bda16b;border-radius:12px;background:linear-gradient(135deg,#45504a,#172830 65%,#233137);box-shadow:inset 0 0 0 3px #152024,inset 0 0 0 4px #94795080,0 8px 0 #070e11,0 15px 18px #0009;text-align:center;gap:8px}.turn-selected{transform:rotate(-2deg)}#turn-choice #turn-stake{transform:rotate(2deg);background:radial-gradient(ellipse at 50% 35%,#853a24,#311d22 65%,#201e23);border-color:#d39b54;color:#ffe3aa;transition:transform .15s,box-shadow .15s}.turn-card-type{font-size:11px;letter-spacing:3px;color:#ccb98b}.turn-selected canvas,#turn-stake canvas{width:100%;height:auto;max-height:112px;object-fit:contain;image-rendering:pixelated}.turn-selected h3{font-size:20px;margin:0}.turn-selected p{font-size:12px;line-height:1.6;min-height:38px}.turn-selected #turn-change{margin-top:auto;min-height:32px;background:#152229;width:auto;padding:5px 14px;font-size:12px;border-color:#807452}#turn-stake strong{font:900 40px/1 DuelSerif,serif;text-shadow:0 2px #6e261f,0 0 16px #ff941a}#turn-stake b{font-size:17px}.stake-risk{font-size:11px;line-height:1.6;color:#cbb697}#turn-choice #turn-stake:disabled{opacity:.6;filter:saturate(.25)}#turn-choice #turn-stake[aria-pressed=true]{transform:translateY(-8px) rotate(0);border-color:#ffdfa0;box-shadow:inset 0 0 0 3px #48271c,0 0 24px #ec8e3a80,0 10px 0 #190f0b}#turn-cards{flex-wrap:nowrap;overflow-x:auto;gap:10px;padding:10px 5px 15px;scroll-snap-type:x proximity}#turn-cards button{flex:0 0 120px;min-height:154px;display:flex;flex-direction:column;gap:6px;align-items:center;padding:9px 7px;border:2px solid #88734e;background:linear-gradient(#39413b,#17242b);box-shadow:inset 0 0 0 2px #10191e,0 4px #091115;scroll-snap-align:start}#turn-cards canvas{width:100%;height:66px;object-fit:contain;image-rendering:pixelated}#turn-cards b{font-size:13px}#turn-cards small{font-size:10px;line-height:1.5;color:#bbb497}#turn-cards button[aria-pressed=true]{border-color:#ffe1a1;box-shadow:0 0 12px #edb76770}.turn-actions{position:sticky;bottom:-22px;padding:8px 0 0;background:linear-gradient(transparent,#111b1bf5 18%)}#turn-go{max-width:320px;display:block;margin:0 auto!important;background:linear-gradient(#a9763f,#66432c);min-height:46px}#turn-auto{margin:2px 0 0!important;min-height:30px;font-size:11px}
#selection #roster .general .stat,#opponent-roster .general .stat{top:auto;bottom:4px;right:4px}#selection #roster .general .name,#opponent-roster .general .name{padding-right:25px;box-sizing:border-box}
@media(max-width:650px){#turn-choice{padding:16px 12px}#turn-title{font-size:20px}.turn-duo{gap:12px}.turn-selected,#turn-choice #turn-stake{min-height:250px;padding:10px 7px;gap:6px}.turn-selected h3{font-size:16px}.turn-selected p{font-size:11px}.turn-selected canvas,#turn-stake canvas{max-height:92px}#turn-stake strong{font-size:34px}.turn-actions{bottom:-16px}.turn-card-type{font-size:10px}#turn-cards button{flex-basis:110px}#turn-intent{font-size:12px}.stake-risk{font-size:10px}#selection #roster .general .stat,#opponent-roster .general .stat{bottom:3px;right:3px}}
@media(prefers-reduced-motion:reduce){#turn-choice #turn-stake{transition:none}}
/* Async record rows must never recenter the victory artwork/title. */
#result .result-hero{align-self:start;min-width:0}#result .result-record{min-width:0}#result .career-record{min-height:130px}#result{scrollbar-gutter:stable}
@media(min-width:651px){#result{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* Tournament response must not change title typography or page placement. */
#result h2,#result[data-campaign-state=tournament] h2{letter-spacing:8px}
body:has(#battle.ended:not([hidden])){align-items:start}
@media(min-width:651px){#result{grid-template-rows:minmax(0,1fr)}#result .result-record{height:100%;overflow:auto;scrollbar-gutter:stable}#result .result-hero{position:sticky;top:0}}
#turn-intent.danger{color:#ffd18b;text-shadow:0 0 10px #b74624}

/* Compact lobby without the passive showcase. */
@media(min-width:651px){#selection .select-layout{grid-template-columns:260px minmax(0,1fr)}#selection #roster{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:650px){#selection .selected-detail #campaign-start,#selection .selected-detail #start{grid-row:2}#selection .selected-detail #campaign-resume{grid-row:3}}

/* Only the speaking warrior has a balloon; give mobile dialogue enough line width. */
@media(max-width:650px), (max-width:950px) and (max-height:500px){
 #cabinet:has(#battle:not([hidden])) .speech,#cabinet:has(#battle:not([hidden])) .reply{width:88%;max-width:88%;padding:8px 12px;box-sizing:border-box}
 #cabinet:has(#battle:not([hidden])) .speech{left:3%;right:auto}
 #cabinet:has(#battle:not([hidden])) .reply{left:auto;right:3%}
 .speech span{overflow-wrap:anywhere;word-break:keep-all;line-height:1.45!important}
 .speech:after{left:27%}.reply:after{left:auto;right:27%}
}

@media(min-width:651px) and (max-width:950px) and (max-height:500px){#battle:not(.planning):not(.ended) #scene{height:570px;aspect-ratio:auto}}

/* Slightly softened meter ends; preserve the three distinct momentum cells. */
.health{border-radius:7px;overflow:hidden}.health i{border-radius:4px}.health:after{border-radius:4px}

/* Shared ultimate labels stay visible in planning, hero detail and turn selection. */
.has-ultimate-badge{position:relative}.ultimate-badge{position:absolute;top:6px;right:6px;z-index:3;padding:3px 7px;border:1px solid #e8b86a;border-radius:5px;background:#542b20;color:#ffe0a4;font:700 12px/1.3 DuelSerif,serif;white-space:nowrap;pointer-events:none;box-shadow:0 2px 3px #0008}.ultimate-badge.counter{background:#302646;border-color:#b8a0e0;color:#e4d4ff}.planning .has-ultimate-badge .tactic-type{text-align:left;align-self:stretch;padding-left:2px}.hero-technique.has-ultimate-badge,#turn-cards .has-ultimate-badge{padding-top:30px}.planning #command-info{max-height:none!important;min-height:42px;line-height:1.65!important;overflow:visible;white-space:normal;overflow-wrap:anywhere}

/* Mobile gets a portrait composition, compact field and smooth fractional scaling. */
@media(max-width:650px){
 #battle:not(.planning):not(.ended) .arena{min-height:0!important}
 #battle:not(.planning):not(.ended) #scene{height:clamp(500px,145vw,640px);aspect-ratio:auto;image-rendering:auto}
}

/* Tournament intermission: rival portrait first; rewards stay in the next-round dialog. */
.next-rival{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px auto}.next-rival canvas{width:clamp(100px,16vw,180px);height:auto;border:2px solid #b38d58;border-radius:12px;box-shadow:0 5px 20px #0008}.next-rival small{font-size:12px;color:#bca580}.next-rival strong{font-size:25px;letter-spacing:5px}#result[data-campaign-state=tournament] #result-stats,#result[data-campaign-state=tournament] #result-key{display:none}#campaign-rewards>b{display:block;text-align:center;font-size:20px}#chapter .bracket-versus canvas{width:clamp(80px,18vw,170px);height:auto;border-radius:12px}#chapter .bracket-versus{justify-content:center;gap:36px}

#result[data-campaign-state=tournament] .record-heading,#result[data-campaign-state=tournament] .career-label{display:none}#result[data-campaign-state=tournament] .career-record{min-height:0;padding:5px 0 10px}#result[data-campaign-state=tournament] .result-record{display:flex;flex-direction:column}#result[data-campaign-state=tournament] #campaign-rewards{order:-1;padding-top:0}#result[data-campaign-state=tournament] .next-rival canvas{width:clamp(120px,17vw,185px)}


/* v1.52: original pixel sprites keep nearest-neighbour scaling. */

/* ---------------------------------------------------------------- v1.55 duel planning */
/* VS banner: red (you) and blue (rival) corners, big slanted VS, route pips and the rival's intent. */
#battle.planning .planning-heading{display:grid!important;grid-template-columns:1fr;justify-items:center;text-align:center;row-gap:8px;padding:10px 0 14px!important;border-bottom:1px solid #66513b;background:linear-gradient(90deg,#8a1f1426,transparent 32%,transparent 68%,#1f3f8a26)}
#battle.planning .planning-heading>*{grid-column:1!important;grid-row:auto!important}
.planning-versus{display:flex!important;align-items:center;justify-content:center;gap:clamp(10px,3vw,34px)!important}
.planning-versus figure{margin:0;display:grid;justify-items:center;gap:4px}
.planning-versus canvas{width:clamp(64px,9vw,104px)!important;height:auto!important;aspect-ratio:160/192;border-radius:6px!important;border:3px solid #d8483a!important;box-shadow:0 0 0 2px #1b0b08,0 6px 18px #000a,0 0 22px #d8483a55;image-rendering:pixelated}
.planning-versus .vs-b canvas{border-color:#3f78e0!important;box-shadow:0 0 0 2px #081020,0 6px 18px #000a,0 0 22px #3f78e055;transform:scaleX(-1)}
.planning-versus .vs-name{font-size:clamp(14px,1.7vw,19px);letter-spacing:.15em;color:#ffe6b0;text-shadow:0 2px 0 #000}
.planning-versus .vs-b .vs-name{color:#cfe0ff}
.planning-versus .vs-mark{font:italic 900 clamp(34px,5vw,58px)/1 DuelSerif,serif!important;letter-spacing:-.02em;color:#fff1c4!important;background:linear-gradient(#fff6d6,#ffc24a 55%,#c0551a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(2px 3px 0 #3a1004) drop-shadow(0 0 14px #ff8a2a88);transform:skewX(-10deg)}
#battle.planning .planning-heading #strategy-rival{font-size:clamp(12px,1.3vw,14px)!important;letter-spacing:.3em!important;color:#c9ae78!important;margin:0!important}
#battle.planning #campaign-route{display:flex;gap:0;justify-content:center;margin:0!important}
#battle.planning #campaign-route span{position:relative;padding:5px 16px 5px 20px!important;font-size:12px!important;color:#8f8a7c!important;background:#171a1e!important;border:0!important;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%);margin-left:-6px}
#battle.planning #campaign-route .cleared{color:#9fe0a8!important;background:#1f3322!important}
#battle.planning #campaign-route .current{color:#2a1604!important;background:linear-gradient(#ffe6a0,#e0a23a)!important;font-weight:700}
#battle.planning #enemy-tendency{max-width:min(560px,92%)!important;margin:0!important;padding:8px 14px!important;font-size:clamp(13px,1.4vw,15px)!important;line-height:1.5!important;color:#dfe7ff!important;background:#0f1a30cc;border:1px solid #3f78e077;border-left:4px solid #3f78e0;border-radius:4px;text-align:left!important}
#battle.planning #enemy-tendency::before{content:"상대의 속셈  ";color:#8fb2ff;font-size:.8em;letter-spacing:.1em}
#battle.planning .intent-read{display:flex!important;justify-content:center;gap:8px!important;margin:0!important}
#battle.planning .intent-read b,#battle.planning .intent-read span{font-size:13px!important;padding:5px 11px;border-radius:999px;background:#1b1d22;border:1px solid #4a4a52}
#battle.planning .intent-read b{color:#cfe0ff!important;border-color:#3f78e0aa}
#battle.planning .intent-read span[data-edge=a]{color:#0f2a12!important;background:#8fe39f;border-color:#8fe39f}
#battle.planning .intent-read span[data-edge=b]{color:#2a0c0a!important;background:#ff8f7f;border-color:#ff8f7f}
#battle.planning .intent-read span[data-edge=even]{color:#c8c8cc!important}
#battle.planning .strategy-intel{display:none}

/* Cards: all visible at once (no sideways scrolling), each with what it blocks / is blocked by. */
#battle.planning #command-list{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(122px,1fr))!important;gap:8px!important;overflow:visible!important;padding:2px!important;scroll-snap-type:none!important}
#battle.planning #card-scroll{display:none!important}
#battle.planning #command-list .command{width:auto!important;min-width:0!important;max-width:none!important;flex:none!important;padding-bottom:8px!important;position:relative}
#command-list .command canvas{height:62px!important;width:100%!important;object-fit:contain}
#command-list .tactic-edge{display:grid;gap:2px;margin-top:4px;padding:0 5px;font-style:normal;text-align:left}
#command-list .tactic-edge i{font-style:normal;font-size:11px;line-height:1.3;white-space:normal}
#command-list .tactic-edge .up{color:#8fe39f}
#command-list .tactic-edge .down{color:#ff9a8a}
#command-list .tactic-edge .even{color:#b7b7bd}
#command-list .tactic-hint{position:absolute;top:4px;right:4px;font-size:10px;font-weight:700;padding:1px 5px;border-radius:3px}
#command-list .tactic-hint:empty{display:none}
#command-list .beats-first{box-shadow:0 0 0 2px #8fe39f,0 0 16px #8fe39f55!important}
#command-list .beats-first .tactic-hint{background:#8fe39f;color:#0f2a12}
#command-list .loses-first .tactic-hint{background:#ff8f7f;color:#2a0c0a}
#command-list .loses-first{opacity:.72}
@media(max-width:650px){
 #battle.planning .planning-heading{row-gap:6px;padding:6px 0 10px!important}
 #battle.planning #command-list{grid-template-columns:repeat(3,1fr)!important;gap:5px!important}
 #command-list .command canvas{height:40px!important}
 #command-list .command b{font-size:13px!important}
 #command-list .tactic-summary{display:none!important}
 #command-list .tactic-edge i{font-size:10px}
 #battle.planning #campaign-route span{padding:4px 12px 4px 15px!important;font-size:11px!important}
}
/* v1.55 compaction: tighter banner, no duplicate card blurb, hint as a bottom strip. */
.planning-versus canvas{width:clamp(52px,6.2vw,80px)!important}
#battle.planning .planning-heading{row-gap:6px;padding:6px 0 10px!important}
#battle.planning #command-list .tactic-summary{display:none!important}
#battle.planning #command-list .command{padding:4px 4px 6px!important;min-height:0!important;height:auto!important}
#command-list .tactic-type{font-size:10px!important}
#command-list .tactic-hint{position:static!important;display:block;margin:4px 4px 0;text-align:center}
#command-list .tactic-state{display:none!important}
@media(max-width:650px){
 .planning-versus canvas{width:48px!important}
 .planning-versus .vs-mark{font-size:30px!important}
 #battle.planning #enemy-tendency{padding:5px 9px!important;font-size:12px!important}
 #battle.planning #enemy-tendency::before{content:""}
 #command-list .command canvas{height:34px!important}
}

/* ---------------------------------------------------------------- v1.55 result */
#result #result-art{filter:drop-shadow(0 10px 20px #000c)}
#result #result-title{font:900 clamp(56px,8vw,96px)/1 DuelSerif,serif;letter-spacing:.12em;background:linear-gradient(#fff6d6,#ffc24a 55%,#b4521a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(3px 4px 0 #3a1004) drop-shadow(0 0 22px #ff8a2a66);margin:4px 0 2px}
#result[data-verdict=lose] #result-title{background:linear-gradient(#e8ecf4,#8f9bb3 55%,#46506a);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(3px 4px 0 #0c1020)}
#campaign-rewards{display:grid;justify-items:center;gap:10px;padding:14px;border:1px solid #6b5536;border-radius:8px;background:linear-gradient(#1c1712ee,#110e0bee)}
#campaign-rewards .stage-head{font:700 clamp(22px,2.6vw,30px) DuelSerif,serif;letter-spacing:.2em;color:#ffe3a0;text-shadow:0 2px 0 #000,0 0 14px #ffb04a55}
#campaign-rewards .next-rival{display:grid;justify-items:center;gap:6px;border:0!important;background:none!important;padding:0!important}
#campaign-rewards .next-rival>small{letter-spacing:.3em;color:#c9ae78}
#campaign-rewards .next-vs{display:flex;align-items:center;gap:clamp(10px,2vw,22px)}
#campaign-rewards .next-vs figure{margin:0;display:grid;justify-items:center;gap:4px}
#campaign-rewards .next-vs canvas{width:clamp(76px,9vw,110px)!important;height:auto!important;aspect-ratio:160/192;border-radius:6px;border:3px solid #d8483a;box-shadow:0 0 0 2px #1b0b08,0 0 18px #d8483a55;image-rendering:pixelated}
#campaign-rewards .next-vs figure:last-child canvas{border-color:#3f78e0;box-shadow:0 0 0 2px #081020,0 0 18px #3f78e055;transform:scaleX(-1)}
#campaign-rewards .next-vs b{font-size:15px;letter-spacing:.15em;color:#ffe6b0}
#campaign-rewards .next-vs .vs-mark{font:italic 900 38px/1 DuelSerif,serif;background:linear-gradient(#fff6d6,#ffc24a 55%,#c0551a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(2px 3px 0 #3a1004);transform:skewX(-10deg)}
#campaign-rewards .verify-note{color:#8f8a7c;font-size:12px;letter-spacing:.1em;animation:spBlink 1.2s steps(2) infinite}
#campaign-rewards>button{width:100%;max-width:420px}
#career-score.pending{opacity:.65}
#career-score.pending::after{content:"확인 중";font-size:11px;color:#c9ae78;align-self:center;margin-left:6px}
@keyframes spBlink{50%{opacity:.35}}

/* v1.56 legibility */
#command-list .tactic-hint{text-shadow:none!important;font-size:11px!important;font-weight:800!important;letter-spacing:.02em;padding:2px 6px!important;border-radius:4px}
#command-list .beats-first .tactic-hint{background:#b8f5c2!important;color:#062010!important}
#command-list .loses-first .tactic-hint{background:#ffd0c8!important;color:#3a0804!important}
#command-list .tactic-edge i{text-shadow:none!important;font-weight:700}
#command-list .tactic-edge .up{color:#a8f0b4!important}
#command-list .tactic-edge .down{color:#ffb3a6!important}
#command-list .loses-first{opacity:.85!important}
#result[data-verdict=lose] #result-title{background:linear-gradient(#ffffff,#d6dcea 50%,#9aa6c2)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 2px #000) drop-shadow(3px 4px 0 #0c1020) drop-shadow(0 0 20px #6f88ff88)!important}
#result[data-verdict=draw] #result-title{background:linear-gradient(#ffffff,#e8dcc0)!important;-webkit-background-clip:text!important;background-clip:text!important;filter:drop-shadow(3px 4px 0 #1a1208)!important}
/* v1.58: game-style plaques for the result actions and the post-knockout 다음 button */
#result .result-actions{gap:10px!important;background:none!important}
#result .result-actions button,#next-result,#result #campaign-rewards button,#champion-next{position:relative;font:900 16px/1 DuelSerif,serif!important;letter-spacing:.14em;color:#fff3d6!important;text-shadow:0 2px 0 #2a0c04,0 0 8px #0008;min-height:50px!important;padding:12px 18px!important;border:2px solid #d9a54a!important;border-radius:6px!important;background:linear-gradient(#3e2c1c,#1e150e 55%,#120c08)!important;box-shadow:inset 0 1px 0 #ffe3a066,inset 0 -3px 0 #0008,0 0 0 2px #1a0f06,0 4px 0 #0b0704,0 6px 14px #000a!important;cursor:pointer;transition:transform .08s,filter .12s}
#result .result-actions button::before,#next-result::before,#result #campaign-rewards button::before,#champion-next::before{content:'';position:absolute;inset:3px;border:1px solid #f0c77255;border-radius:3px;pointer-events:none}
#result #campaign-rewards button,#champion-next{background:linear-gradient(#c8402a,#8e1e12 55%,#5a0e08)!important;border-color:#ffd27a!important}
#result .result-actions button#again{grid-column:1/-1;font-size:18px!important;background:linear-gradient(#c8402a,#8e1e12 55%,#5a0e08)!important;border-color:#ffd27a!important}
#result .result-actions button:hover,#next-result:hover,#result #campaign-rewards button:hover,#champion-next:hover{filter:brightness(1.18);transform:translateY(-1px)}
#result .result-actions button:active,#next-result:active{transform:translateY(2px);box-shadow:inset 0 2px 5px #0009,0 0 0 2px #1a0f06!important}
#next-result{position:absolute;z-index:6;left:50%;bottom:12%;translate:-50% 0;min-width:170px;font-size:20px!important;background:linear-gradient(#c8402a,#8e1e12 55%,#5a0e08)!important;border-color:#ffd27a!important;animation:next-pulse 1.4s ease-in-out infinite}
#next-result[hidden]{display:none}
@keyframes next-pulse{50%{box-shadow:inset 0 1px 0 #ffe3a066,inset 0 -3px 0 #0008,0 0 0 2px #1a0f06,0 4px 0 #0b0704,0 0 22px #ffb04a99}}
@media(prefers-reduced-motion:reduce){#next-result{animation:none}}
/* v1.58: the 패배 title as solid bright lettering with a dark outline (gradient text was hard to read) */
#result[data-verdict=lose] #result-title{background:none!important;-webkit-text-fill-color:#eef2ff!important;color:#eef2ff!important;filter:none!important;text-shadow:-2px -2px 0 #0a0e1c,2px -2px 0 #0a0e1c,-2px 2px 0 #0a0e1c,2px 2px 0 #0a0e1c,4px 6px 0 #0a0e1c,0 0 26px #7d95ffcc!important}
/* v1.58: plain text on the matchup chips (the inherited shadow blurred the dark lettering) */
#battle.planning .intent-read b,#battle.planning .intent-read span{text-shadow:none!important;font-weight:700!important}
/* v1.58: the champion stage is drawn on the canvas; retire the dotted overlay that looked like snow */
.champion-rays,.champion-rays:before,.champion-rays:after{display:none!important}
#champion-art{filter:drop-shadow(0 0 14px #ffb04a55)!important;border:2px solid #d9a54a;border-radius:4px;box-shadow:0 0 0 3px #1a0f06}
/* v1.62: replay button beside the battle review */
#result .review-row{display:flex;align-items:flex-start;gap:10px;margin-top:8px}
#result .review-row details{flex:1;margin-top:0}
#replay{flex:none;position:relative;font:900 13px/1 DuelSerif,serif;letter-spacing:.1em;color:#fff3d6;text-shadow:0 1px 0 #2a0c04;padding:8px 12px;border:2px solid #d9a54a;border-radius:5px;background:linear-gradient(#3e2c1c,#1e150e 55%,#120c08);box-shadow:inset 0 1px 0 #ffe3a066,0 0 0 2px #1a0f06,0 3px 0 #0b0704;cursor:pointer}
#replay:hover{filter:brightness(1.18)}#replay:active{transform:translateY(2px)}

/* v1.65: always-visible matchup triangle on the planning screen */
#rps-guide{display:none;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin:6px 0 0;font-size:13px}
#battle.planning #rps-guide{display:flex}
#rps-guide .rps{padding:3px 10px;border-radius:4px;font-weight:900;color:#fff;text-shadow:0 1px 0 #0008;border:1px solid #fff3}
#rps-guide .heavy{background:#a8372b}#rps-guide .guard{background:#2d5d9a}#rps-guide .flank{background:#2f7d4b}
#rps-guide i{font-style:normal;color:#e8d9b5;font-size:12px}
#rps-guide em{flex-basis:100%;text-align:center;font-style:normal;color:#e8d9b5;font-size:12px}
.pick-choices .pick-owned{grid-column:1/-1;color:#e8d9b5}
.command[hidden]{display:none!important}
/* v1.65: tournament reward picks inside the bracket dialog — dark plaques, the chosen one lit */
#chapter .reward-choices button{background:#1d1f22!important;border:2px solid #5a4a38!important;color:#e9dcc0;padding:12px 8px!important;font-size:14px;opacity:.78}
#chapter .reward-choices button[aria-pressed=true]{background:linear-gradient(#6b2a1e,#3e1812)!important;border-color:#ffd27a!important;opacity:1;box-shadow:0 0 0 2px #1a0f06,0 0 16px #ffb04a66}
#chapter .reward-choices button[aria-pressed=true] strong::after{content:' ✔';color:#ffd27a}

/* v1.68: calmer planning header — no route strip or temperament line, one hint line, one-line triangle */
#battle.planning #campaign-route,#battle.planning #enemy-tendency{display:none!important}
#rps-guide i{font-size:16px;color:#e8d9b5}
.pick-choices .pick-kind{width:auto!important;height:auto!important;padding:2px 8px;font-size:12px!important;border-radius:3px;align-self:center}
/* v1.70: the rival faces the player on the bracket too (mirror the right-hand portrait, like the planning VS) */
.bracket-versus>div:last-child canvas{transform:scaleX(-1)}
.bracket-versus>div:first-child{flex-direction:row-reverse}
/* v1.72: "무력" label and the number share one baseline */
.selected-detail .selected-identity p{display:flex!important;align-items:baseline;gap:7px;line-height:1}
.selected-detail .selected-identity p strong{margin-left:0!important;line-height:1}
/* v1.72: dice banner and crisis roulette as lacquered plaques with gold trim (matching the result buttons) */
#round-banner.roulette{inset:26% 50% auto auto!important;translate:50% 0;width:min(440px,90%);padding:14px 18px 16px!important;border:2px solid #d9a54a;border-radius:8px;background:linear-gradient(#2a1a12f2,#140c08f7)!important;box-shadow:0 0 0 2px #1a0f06,inset 0 1px 0 #ffe3a055,0 10px 30px #000c!important}
#round-banner.roulette::before{content:'';position:absolute;inset:4px;border:1px solid #f0c77244;border-radius:5px;pointer-events:none}
#round-banner.roulette small{color:#e8c98a!important;letter-spacing:.5em!important;font-size:12px!important}
#round-banner.roulette strong{font:900 24px/1.2 DuelSerif,serif!important;letter-spacing:.08em!important;color:#fff0c8!important;text-shadow:0 2px 0 #3a1004,0 0 12px #ffb04a55!important;margin-top:2px}
#round-banner.roulette span{font-size:12px!important;letter-spacing:.02em!important;color:#d9c9a6!important;margin-top:4px}
#round-banner.roulette.jackpot{border-color:#ffd27a;background:linear-gradient(#6b2a1ef5,#3e1812f7)!important;box-shadow:0 0 0 2px #1a0f06,0 0 26px #ffb04a88,0 10px 30px #000c!important}
#round-banner.roulette.jackpot strong{color:#ffe07a!important}
#battle-dice{margin:-6px 0 -10px!important}
#crisis-roulette{inset:18% 50% auto auto!important;translate:50% 0;width:min(460px,92%);min-height:0!important;padding:14px 16px 16px!important;border:2px solid #d9a54a!important;border-radius:8px;background:linear-gradient(#2a1a12f2,#140c08f7)!important;box-shadow:0 0 0 2px #1a0f06,inset 0 1px 0 #ffe3a055,0 10px 30px #000c!important;overflow:visible!important}
#crisis-roulette::before{content:'';position:absolute;inset:4px;border:1px solid #f0c77244;border-radius:5px;pointer-events:none}
#crisis-roulette small#crisis-owner{color:#e8c98a;letter-spacing:.3em;font-size:12px}
#crisis-wheel{position:relative!important;inset:auto!important;width:auto!important;height:auto!important;opacity:1!important;background:none!important;border:0!important;border-radius:0!important;transform:none!important;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 6px}
.crisis-slot{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 2px;border:1px solid #5a4a38;border-radius:4px;background:#1d1f22;color:#bfb29a;transition:background .08s,border-color .08s,transform .08s}
.crisis-slot b{font:700 13px/1.2 DuelSerif,serif}.crisis-slot small{font-size:10px;color:#8f846f}
.crisis-slot.lit{background:linear-gradient(#6b2a1e,#3e1812);border-color:#ffd27a;color:#fff0c8;transform:translateY(-2px);box-shadow:0 0 12px #ffb04a66}
.crisis-slot.lit small{color:#ffd27a}
#crisis-prize{padding:6px 0 4px!important;font:900 26px/1.2 DuelSerif,serif!important;text-shadow:0 2px 0 #3a1004!important}
#crisis-desc{font-size:13px!important;color:#e0d2b2}
#crisis-roulette.settled{border-color:#ffd27a!important;box-shadow:0 0 0 2px #1a0f06,0 0 28px #ffb04a88,0 10px 30px #000c!important}
#crisis-roulette.settled .crisis-slot:not(.lit){opacity:.45}
@media(max-width:650px){.crisis-slot b{font-size:11px}#crisis-prize{font-size:21px!important}#round-banner.roulette strong{font-size:19px!important}}

/* v1.75: speech bubbles — name on its own line, the line wraps to 2-3 lines in a narrower bubble */
#cabinet:has(#battle:not([hidden])) .speech,#cabinet:has(#battle:not([hidden])) .reply{max-width:min(300px,40%)!important;width:auto!important;padding:8px 12px!important}
.speech b{display:block!important;margin:0 0 3px!important;font-size:12px!important}
.speech span{display:block!important;font-size:15px!important;line-height:1.5!important;word-break:keep-all;overflow-wrap:anywhere}
@media(max-width:650px){#cabinet:has(#battle:not([hidden])) .speech,#cabinet:has(#battle:not([hidden])) .reply{max-width:72%!important}.speech span{font-size:14px!important}}

/* v1.75: crisis roulette reads like a game moment — red crest banner, big brush title and prize */
#crisis-roulette{width:min(560px,94%)!important;padding:0 0 18px!important;overflow:visible!important}
#crisis-roulette small#crisis-owner{display:block;margin:-20px auto 6px;width:max-content;padding:8px 26px 9px;font:900 22px/1 DuelSerif,serif!important;letter-spacing:.14em!important;color:#fff4e0!important;background:linear-gradient(#c8402a,#7a160c);border:2px solid #ffd27a;border-radius:4px;box-shadow:0 0 0 2px #1a0f06,0 6px 14px #000a;text-shadow:0 2px 0 #3a0600}
#crisis-wheel{margin:12px 14px 6px!important;gap:8px!important}
.crisis-slot{padding:10px 4px!important}.crisis-slot b{font:900 16px/1.15 DuelSerif,serif!important}.crisis-slot small{font-size:12px!important}
#crisis-prize{font:900 40px/1.15 DuelSerif,serif!important;color:#ffe07a!important;text-shadow:0 3px 0 #3a1004,0 0 18px #ffb04a88!important;padding:8px 0 2px!important}
#crisis-desc{font-size:15px!important;letter-spacing:.02em}
#crisis-roulette:not(.settled) #crisis-prize{color:#fff0c8!important;font-size:32px!important}
@media(max-width:650px){#crisis-roulette small#crisis-owner{font-size:17px!important;padding:7px 16px}.crisis-slot b{font-size:12px!important}#crisis-prize{font-size:30px!important}#crisis-desc{font-size:13px!important}}
/* v1.75: dice banner lettering at game size */
#round-banner.roulette small{font:900 15px/1 DuelSerif,serif!important;letter-spacing:.35em!important}
#round-banner.roulette strong{font-size:32px!important}
#round-banner.roulette span{font-size:14px!important}
@media(max-width:650px){#round-banner.roulette strong{font-size:24px!important}#round-banner.roulette span{font-size:12px!important}}
