@charset "UTF-8";
:root{color-scheme:dark;--bg:#101b1b;--panel:#172726;--panel2:#1d302e;--line:#2d403d;--muted:#92a49b;--text:#eaeedc;--mint:#c1ed86;--gold:#f3ca78;--red:#ea806b;--blue:#8dc4d4;font-family:Arial,"Malgun Gothic","Apple SD Gothic Neo",sans-serif;font-size:14px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button{border:0}a{color:inherit;text-decoration:none}button:disabled{opacity:.42}h1,h2,h3,p{margin:0}small{font-weight:400}button:not(:disabled){transition:background .15s,transform .15s,border-color .15s}button:not(:disabled):active{transform:translateY(1px)}[hidden]{display:none!important}
.topbar{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:24px;background:#12201f}.brand{display:flex;align-items:center;gap:11px;font-size:26px;font-weight:950;letter-spacing:-1.2px;flex-shrink:0}.brand img{width:34px;height:34px;image-rendering:pixelated}.brand-accent{color:var(--mint)}.brand small{display:block;font-family:monospace;font-size:8px;letter-spacing:2px;margin-top:4px;color:var(--muted)}.chapters{display:flex;align-items:center;gap:32px;font-size:12px;color:#70857c}.chapters>span{display:flex;gap:9px;align-items:center}.chapters i{font:10px monospace;border:1px solid #395047;padding:4px 5px;font-style:normal}.chapters b{font-size:8px;font-weight:normal;opacity:.7}.chapters .current{color:var(--mint)}.chapters .current i{background:var(--mint);color:#22352a;border-color:var(--mint)}.header-actions{display:flex;gap:9px}.icon-button{width:34px;height:34px;background:transparent;border:1px solid #3b4e46;border-radius:50%;font-size:17px;color:#bbccba}.icon-button:hover{background:#2b4033}
.app-layout{max-width:1600px;margin:auto;display:grid;grid-template-columns:256px minmax(0,1fr);min-height:calc(100vh - 86px)}.sidebar{padding:30px 23px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#142220}.eyebrow{font:10px monospace;letter-spacing:1.65px;color:var(--muted);text-transform:uppercase}.season-title h1{font-size:23px;line-height:1.5;letter-spacing:-1px;margin:13px 0 16px;font-weight:750}.season-title h1>span{color:var(--mint)}.season-title>p{display:flex;align-items:center;gap:8px;font-size:11px}.season-tag{font:7px monospace;border:1px solid #455044;padding:5px;color:#b2c3a5;letter-spacing:.4px}.player-panel{display:flex;gap:10px;align-items:center;padding:22px 0 15px;margin-top:20px;border-top:1px solid var(--line)}.player-panel h2{font-size:12px;margin:5px 0 6px}.player-panel p{font-size:9px;color:var(--muted);letter-spacing:-.3px}.player-panel .eyebrow{font-size:8px;color:var(--red)}.portrait{width:42px;height:52px;flex:none;background:#334239;position:relative;overflow:hidden;image-rendering:pixelated;border:1px solid #647063}.portrait:before{content:"";position:absolute;width:16px;height:17px;background:#e6b17c;top:8px;left:13px;border-top:6px solid #402e25;box-shadow:-4px 8px 0 -1px #e6b17c}.portrait:after{content:"";position:absolute;bottom:0;left:8px;width:27px;height:23px;background:#ce6956;border-top:5px solid #e58265}.portrait b{position:absolute;left:15px;bottom:4px;font:10px monospace;z-index:1}.resources{font-size:10px;color:var(--muted)}.resources>div:first-child{display:flex;justify-content:space-between;align-items:center}.resources strong{color:var(--text);font:15px monospace}.resources small{color:var(--muted);font-size:10px}.condition-track{height:4px;background:#31423b;margin:8px 0 14px}.condition-track i{display:block;background:var(--mint);width:100%;height:100%;transition:width .4s}.resource-row{display:flex;justify-content:space-between;align-items:center}.resources .coin{color:var(--gold);font-size:16px}.coin i{font-size:12px;font-style:normal;margin-right:5px}.route-heading,.equipment-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0 18px}.route-heading>span:last-child,.equipment-heading>span:last-child{font:10px monospace;color:#7c9085}.route-list{list-style:none;margin:0;padding:0}.route-node{position:relative;display:flex;gap:12px;padding-bottom:20px;align-items:flex-start;color:#72867b}.route-node:not(:last-child):before{content:"";width:1px;position:absolute;left:13px;top:24px;bottom:0;background:#35473d}.node-symbol{width:27px;height:27px;border:1px solid #3b4d42;display:grid;place-items:center;font:11px monospace;background:#172722;z-index:1;flex:none;border-radius:50%}.node-copy{padding-top:2px}.node-copy strong{font-size:11px;font-weight:500;display:block}.node-copy small{display:block;font-size:9px;margin-top:5px;line-height:1.4}.route-node.active{color:var(--mint)}.route-node.active .node-symbol{background:var(--mint);color:#233322;border-color:var(--mint);box-shadow:0 0 0 4px #c1ed8610}.route-node.done{color:#a0ba99}.route-node.done .node-symbol{border-color:#788f68;color:var(--mint)}.deck-button{margin-top:8px;background:#22372d;border:1px solid #435841;width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 10px;font-size:11px}.deck-button:hover{background:#2c4435}.deck-button strong{font:16px monospace;color:var(--mint)}.deck-button small{font:8px monospace;color:var(--muted)}.equipment-heading{margin:25px 0 10px}.relic-list{display:flex;gap:6px;flex-wrap:wrap;min-height:35px}.relic-token{width:34px;height:34px;display:grid;place-items:center;background:#2a3527;border:1px solid #4b553b;color:var(--gold);font:20px monospace}.relic-empty{font-size:10px;color:#6e8375;padding-top:8px}.sidebar-foot{margin-top:auto;padding-top:35px;display:flex;align-items:center;gap:7px;font-size:9px;color:#809686}.status-dot,.live-dot{width:5px;height:5px;background:var(--mint);display:inline-block;border-radius:50%;flex:none}.version{margin-left:auto;font:9px monospace}
.main-content{min-width:0;padding:30px 34px 18px}.match-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.match-heading .eyebrow{font-size:10px;color:var(--mint);display:flex;align-items:center;gap:8px}.slash{color:#587063;margin:0 3px}.match-heading h2{font-size:26px;letter-spacing:-1px;margin:10px 0 8px}.match-heading p{font-size:11px;color:var(--muted);line-height:1.6}.turn-counter{text-align:right;flex:none}.turn-counter small{font:8px monospace;letter-spacing:2px;color:var(--muted)}.turn-counter strong{display:block;font:27px monospace;margin-top:9px;letter-spacing:-1px}.turn-counter strong>span:last-child{font-size:17px;color:#6f8a78}.turn-counter i{font:15px monospace;color:#536b5b;margin:0 10px}.arena{border:1px solid #44594a;border-radius:5px;overflow:hidden;background:#14231e}.scoreboard{height:68px;display:flex;align-items:center;justify-content:center;gap:34px;background:#1c3027;border-bottom:1px solid #3a5141}.team-name{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;min-width:160px}.team-name small{display:block;font:7px monospace;color:#8caa91;letter-spacing:1.5px;margin-top:6px}.team-name.away{text-align:right;justify-content:flex-end}.crest{width:30px;height:35px;display:grid;place-items:center;background:#cb745b;color:#ffebd2;border:2px solid #e5b186;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%);font:19px Georgia,serif}.crest.visitor{background:#527c82;border-color:#a6c8c4;color:#e8ede2}.score{font:31px monospace;display:flex;gap:17px;align-items:center}.score i{font:20px monospace;color:#6f8a70}.score b{font-weight:500}.pitch-wrap{position:relative;background:#1d503e;isolation:isolate}.pitch-wrap canvas{display:block;width:100%;height:auto;image-rendering:pixelated;aspect-ratio:960/400}.pitch-location{position:absolute;left:18px;top:14px;font:8px monospace;letter-spacing:1px;color:#e6e9cb;background:#11261dbb;padding:7px 9px}.pitch-location i{font-style:normal;color:var(--gold);font-size:9px;margin-right:7px}.pitch-location>span{margin-left:12px;color:#aac8aa;font:8px Arial,sans-serif}.pitch-badge{position:absolute;right:18px;bottom:13px;font:8px/1.7 monospace;letter-spacing:1px;color:#b4d1ac;opacity:.9;text-align:right}.pitch-badge strong{font-weight:400;color:#dbebc5}.pitch-announcement{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);font-size:34px;font-weight:950;font-style:italic;color:var(--mint);text-shadow:3px 3px #162d23;white-space:nowrap;pointer-events:none}.pitch-announcement:not(:empty){background:#0d251de8;padding:10px 25px;border:1px solid #88ac6e}.tactical-board{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#1b2e28}.tactic{padding:15px 19px 16px}.tactic:first-child{border-right:1px solid #354b3e}.tactic>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px}.tactic .eyebrow{font-family:inherit;font-size:10px;letter-spacing:0;color:#a8b9a4}.outcome-badge{font-size:9px;border:1px solid #566547;color:#bac8a2;padding:3px 6px;border-radius:2px}.outcome-badge.good{color:var(--mint);border-color:#66814a;background:#b9eb7a0a}.outcome-badge.danger{color:#f39780;border-color:#9b5f49;background:#e9816710}.tactic-numbers{display:flex;align-items:baseline;gap:8px;margin-top:8px}.tactic-numbers>strong{font:28px monospace;color:var(--mint)}.tactic-numbers>span{font-size:10px;color:#a1b19a}.tactic-numbers b{font:13px monospace;color:var(--text)}.tactic-numbers .momentum{margin-left:auto;color:var(--gold);background:#b7a55310;padding:5px 7px;font-size:9px}.meter{margin-top:10px;height:4px;background:#364e3b}.meter>i{height:100%;display:block;width:0;background:var(--mint);transition:width .25s}.opponent-intent{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:15px}.opponent-intent>strong{font-size:13px;color:#dedbc5}.opponent-intent>span{font-size:9px;color:#a4b29f}.opponent-intent b{font:14px monospace;color:var(--red)}.opponent-intent b:last-child{color:var(--text)}.theirs p{font-size:9px;color:#82987e;margin-top:10px;line-height:1.5;min-height:14px}
.hand-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:24px 0 16px}.hand-heading .eyebrow{font-size:8px}.hand-heading h3{font-size:13px;font-weight:500;margin-top:5px}.pile-buttons{display:flex;gap:6px}.pile-buttons button{background:#1b2a25;border:1px solid #35483b;font-size:10px;padding:7px 9px;color:#a4b49e}.pile-buttons b{font:12px monospace;color:var(--text);margin-left:6px}.hand-empty{padding:28px;border:1px dashed #3e5546;border-radius:5px;flex:1;text-align:center;font-size:12px;color:var(--muted);line-height:1.8}.playbar{display:flex;gap:12px;align-items:center;margin-top:13px;border-top:1px solid var(--line);padding-top:17px}.energy{display:flex;gap:8px;align-items:center;min-width:95px}.energy-orb{border:1px solid #8aab59;background:#273b27;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font:bold 25px Georgia;color:var(--mint)}.energy>strong{font:27px monospace;color:var(--mint)}.energy>span:last-child{font:12px monospace;color:#7e967e}.energy small{font:7px monospace;display:block;margin-top:5px;letter-spacing:1px}.selected-info{flex:1;min-width:0;padding-left:10px}.selected-info>strong{font-size:11px;display:block}.selected-info>span{font-size:9px;color:var(--muted);display:block;margin-top:6px;line-height:1.5}.button{background:#293e31;color:var(--text);border:1px solid #4f6849;padding:13px 19px;min-height:43px;font-weight:600;font-size:11px;border-radius:3px}.button:hover:not(:disabled){background:#36503d}.button.primary{background:var(--mint);color:#24382a;border-color:var(--mint);font-weight:800;box-shadow:0 3px 0 #577641}.button.primary:hover:not(:disabled){background:#d4f2a6}.button.primary span{margin-left:16px}.card-use{padding-inline:14px}.match-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px}.match-foot p{font-size:10px;color:#8caa8d;line-height:1.6}.match-foot button{font-size:9px;white-space:nowrap;color:var(--muted);background:transparent;padding:8px 0 8px 8px}.main-footer{display:flex;justify-content:space-between;gap:14px;margin-top:22px;font-size:8px;letter-spacing:.4px;color:#617d6b}.main-footer>span:last-child{font-family:monospace}
.phase-panel{margin-top:24px;padding:24px;background:#1b2c25;border:1px solid #466044;border-radius:5px}.phase-eyebrow{font:10px monospace;color:var(--mint);letter-spacing:2px}.phase-panel h3{font-size:23px;margin:8px 0 12px;letter-spacing:-.6px}.phase-panel>p{font-size:12px;color:var(--muted);line-height:1.8}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:20px}.choice-button{text-align:left;background:#243a2c;border:1px solid #486142;border-radius:4px;padding:20px 16px;color:var(--text);min-height:125px}.choice-button:hover:not(:disabled){background:#304a36;border-color:var(--mint)}.choice-icon{display:block;font-size:23px;color:var(--mint);margin-bottom:11px}.choice-button>strong{display:block;font-size:14px;margin-bottom:8px}.choice-button>small{font-size:11px;line-height:1.7;color:#b0c0a5;display:block}.choice-button>em{font:11px monospace;display:block;color:var(--gold);margin-top:15px}.phase-actions{display:flex;justify-content:flex-end;margin-top:18px;gap:10px}.training-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.training-row{border:1px solid #3e573f;padding:11px;background:#203728;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.training-row>span{flex:1;font-size:11px;min-width:100px}.training-row button{font-size:10px;background:#3b5138;border:1px solid #607451;padding:8px}.training-row .training-description{flex-basis:100%;font-size:9px;color:var(--muted);line-height:1.6}.stats-row{display:flex;gap:30px;margin-top:24px}.stats-row span{font-size:11px;color:var(--muted)}.stats-row b{font:27px monospace;display:block;color:var(--mint);margin-bottom:7px}
dialog{color:var(--text);background:#192d25;border:1px solid #59704d;border-radius:8px;width:min(760px,calc(100% - 28px));max-height:85dvh;padding:0;box-shadow:0 30px 90px #0008}dialog::backdrop{background:#071410bd;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:17px 23px;border-bottom:1px solid #3d553d;position:sticky;top:0;background:#192d25;z-index:2;font-weight:700;font-size:15px}#dialog-body{padding:23px}.dialog-copy{color:#b6c7a8;line-height:1.9;font-size:13px}.dialog-copy strong{color:var(--text)}.dialog-copy ol{padding-left:21px}.dialog-copy li{padding:6px 0}.dialog-copy .button{margin-top:14px}.rule-note{background:#293e2a;padding:14px;border-left:2px solid var(--mint);margin-top:18px;font-size:11px;line-height:1.8}.log-row{padding:13px 0;border-bottom:1px solid #3a5138;font-size:12px;line-height:1.8;color:#b6c9a6}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);padding:12px 20px;border:1px solid #86a25e;background:#263e2b;z-index:10;font-size:12px;max-width:90vw;box-shadow:0 10px 30px #0004;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.main-content{padding:36px 48px}.app-layout{grid-template-columns:275px minmax(0,1fr)}.sidebar{padding:36px 28px}.pitch-wrap canvas{max-height:380px}.match-heading h2{font-size:30px}}
@media(max-width:1100px){.topbar{padding:0 22px;height:73px}.chapters{gap:17px}.chapters b{display:none}.app-layout{grid-template-columns:214px minmax(0,1fr)}.sidebar{padding:25px 17px 17px}.season-title h1{font-size:20px}.season-tag{display:none}.main-content{padding:26px 23px 18px}.match-heading h2{font-size:22px}.scoreboard{gap:22px}.team-name{min-width:125px;font-size:10px}.tactic{padding:13px}.opponent-intent{flex-wrap:wrap;margin-top:10px}.selected-info>span{display:none}.playbar{gap:8px}.button{padding:12px}.energy{min-width:85px}.hand-heading h3{font-size:12px}}
@media(max-width:800px){.topbar{padding:0 18px;height:69px}.brand{font-size:23px}.chapters{gap:10px}.chapters>span:not(.current){display:none}.header-actions{gap:7px}.app-layout{display:block}.sidebar{padding:13px 18px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;background:#152820}.season-title,.route-heading,.route-list,.equipment-heading,.relic-list,.sidebar-foot{display:none}.player-panel{margin:0;padding:0;border:0}.player-panel p{display:none}.portrait{width:35px;height:39px}.portrait:before{top:1px;left:10px}.portrait:after{left:5px;height:18px}.portrait b{left:12px;bottom:2px}.player-panel h2{font-size:11px;margin-bottom:0}.resources{width:150px}.resources strong{font-size:12px}.condition-track{margin:5px 0 6px;height:3px}.resource-row{font-size:9px}.resources .coin{font-size:12px}.deck-button{display:none}.main-content{padding:22px 18px 18px;max-width:760px;margin:auto}.match-heading{margin-bottom:18px}.scoreboard{height:62px}.pitch-wrap canvas{aspect-ratio:960/400}.tactic .eyebrow{font-size:9px}.main-footer{margin-bottom:8px}.match-heading .eyebrow{font-size:9px}}
@media(max-width:520px){.topbar{height:63px;padding:0 14px}.brand{font-size:21px;gap:8px}.brand img{width:28px;height:28px}.brand small{font-size:6px;letter-spacing:1.5px}.chapters{display:none}.icon-button{height:30px;width:30px;font-size:15px}.sidebar{padding:12px 14px}.resources{width:128px}.player-panel{gap:8px}.player-panel .eyebrow{font-size:7px}.player-panel h2{font-size:10px}.main-content{padding:20px 12px 14px}.match-heading{gap:8px;margin-bottom:16px}.match-heading h2{font-size:20px;margin:9px 0 6px}.match-heading p{font-size:10px;max-width:260px}.match-heading .eyebrow{font-size:8px;letter-spacing:1px;gap:5px}.turn-counter small{font-size:7px;letter-spacing:1px}.turn-counter strong{font-size:24px}.turn-counter strong>span:last-child{font-size:13px}.turn-counter i{margin:0 5px}.scoreboard{height:58px;gap:12px}.team-name{min-width:0;font-size:9px;gap:6px}.team-name small{font-size:6px;letter-spacing:.6px;margin-top:4px}.crest{width:23px;height:28px;font-size:15px}.score{font-size:26px;gap:10px}.score i{font-size:16px}.pitch-wrap canvas{aspect-ratio:960/460;object-fit:cover;min-height:175px}.pitch-location{font-size:6px;padding:5px 6px;left:8px;top:8px;letter-spacing:.5px}.pitch-location>span{font-size:6px;margin-left:6px}.pitch-badge{font-size:6px;right:9px;bottom:8px;letter-spacing:.4px}.pitch-announcement{font-size:24px}.tactic{padding:11px 10px}.tactic .eyebrow{font-size:8px}.outcome-badge{font-size:7px;padding:3px 4px}.tactic-numbers{gap:5px}.tactic-numbers>strong{font-size:25px}.tactic-numbers>span{font-size:8px}.tactic-numbers b{font-size:11px}.tactic-numbers .momentum{font-size:7px;padding:4px}.opponent-intent{margin-top:11px;gap:6px}.opponent-intent>strong{font-size:11px}.opponent-intent>span{font-size:8px}.opponent-intent b{font-size:12px}.theirs p{font-size:8px;margin-top:7px;line-height:1.5}.hand-heading{margin:20px 0 12px}.hand-heading h3{font-size:11px;letter-spacing:-.3px}.hand-heading .eyebrow{font-size:7px}.pile-buttons button{font-size:8px;padding:6px}.pile-buttons b{font-size:10px;margin-left:4px}.playbar{position:sticky;bottom:0;background:#13231ef5;backdrop-filter:blur(8px);margin:3px -12px 0;padding:12px 12px calc(12px + env(safe-area-inset-bottom));display:grid;grid-template-columns:auto 1fr auto;gap:8px;z-index:3;border-bottom:1px solid var(--line)}.energy{min-width:72px;gap:5px;grid-row:1/3}.energy-orb{width:29px;height:29px;font-size:22px}.energy>strong{font-size:26px}.energy>span:last-child{font-size:10px}.energy small{font-size:6px}.selected-info{padding:0;grid-column:2;grid-row:1}.selected-info>strong{font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-use{grid-column:2;grid-row:2;padding:7px 10px;min-height:31px;font-size:10px}.playbar .primary{grid-column:3;grid-row:1/3;min-height:51px;font-size:11px;padding:12px}.button.primary span{margin-left:7px}.match-foot{margin-top:13px;align-items:flex-start}.match-foot p{font-size:9px}.match-foot button{padding-top:0;font-size:8px}.main-footer{font-size:7px;gap:10px;margin-top:16px}.phase-panel{margin-top:18px;padding:18px 14px}.phase-panel h3{font-size:21px}.phase-panel>p{font-size:11px}.choice-grid{grid-template-columns:1fr}.choice-button{min-height:100px;padding:15px}.choice-icon{float:left;margin:2px 15px 20px 0}.choice-button>strong{font-size:13px}.choice-button>small{font-size:10px}.choice-button>em{margin-left:39px}.training-list{grid-template-columns:1fr}.stats-row{gap:20px}.stats-row span{font-size:10px}#dialog-body{padding:16px}.dialog-copy{font-size:12px}.toast{bottom:110px;width:max-content;font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Personal encounter layout: one hero, one rival, a hand of techniques. */
.personal-duel{background:#10231e; background-image:radial-gradient(ellipse at 50% 30%,#29443244,transparent 70%)}
.personal-duel .topbar{height:68px;padding:0 28px;gap:22px;background:#101e1b;border-bottom:1px solid #516449}
.personal-duel .brand{font-size:24px}.career-label{border-left:1px solid #3b4b3b;padding-left:22px;display:flex;align-items:center;gap:10px}.career-label strong{font-size:12px;font-weight:500;color:#c7cfac}.career-label .eyebrow{color:var(--gold);font-size:9px}.top-resources{display:flex;gap:27px;align-items:center;margin-left:auto}.hp-resource{position:relative;display:flex;align-items:center;gap:8px;min-width:119px;padding-bottom:8px}.heart-symbol{color:#e48d78;font-size:21px}.hp-resource>strong{font:bold 15px monospace;color:#f0dfc5}.hp-resource small{font:11px monospace;color:#a6aa92}.hp-resource .condition-track{position:absolute;left:29px;right:0;bottom:0;margin:0;height:3px}.hp-resource .condition-track i{background:#db846d}.coin-resource{display:flex;align-items:center;gap:8px;color:var(--gold)}.coin-resource strong{font:19px monospace}.coin-resource small{font:7px monospace;color:#9eaa85;letter-spacing:1px}.top-link{display:flex;align-items:center;gap:8px;background:transparent;border:0;color:#c9d8ae;min-height:34px;padding:4px 10px;font-size:17px}.top-link span,.top-link strong{font-size:12px;font-weight:400}.personal-duel .header-actions{align-items:center;gap:7px}.personal-duel .relic-strip{display:flex;align-items:center;gap:14px;min-height:49px;padding:7px 29px;background:#14271f;border-bottom:1px solid #354d38}.relic-strip>.eyebrow{font-size:8px;letter-spacing:1.3px;white-space:nowrap}.relic-strip>.eyebrow b{font:11px monospace;color:var(--gold);margin-left:4px}.relic-strip .relic-list{min-height:30px;gap:8px;flex:1;align-items:center}.relic-strip .relic-token{width:34px;height:34px;border:0;background:transparent;border-bottom:2px solid #8b9866}.relic-strip .relic-token canvas{width:40px;height:30px;image-rendering:pixelated}.relic-strip .relic-empty{padding:0;font-size:9px}.relic-rule{font-size:9px;color:#6f8a71}.personal-duel .main-content{max-width:1400px;padding:20px 28px 12px;margin:auto}.personal-duel .match-heading{margin-bottom:8px;align-items:flex-start;padding:0 10px}.personal-duel .match-heading h1{font:700 22px/1.5 Arial,"Malgun Gothic",sans-serif;letter-spacing:-.6px;margin-top:5px;color:#e2e5c8}.personal-duel .match-heading p{font-size:10px;color:#839b7a}.personal-duel .match-heading .eyebrow{font-size:8px;color:var(--gold)}.personal-duel .turn-counter{display:flex;align-items:center;gap:9px;border:1px solid #5b704c;padding:8px 12px;background:#233a29}.personal-duel .turn-counter strong{font:22px monospace;margin:0;color:#d4e59f}.personal-duel .turn-counter small{font-size:8px;letter-spacing:1px}.duel-arena{position:relative;height:clamp(350px,46vh,500px);overflow:visible;border:0;border-radius:0;background:#153326;isolation:isolate}.duel-arena:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -40px 40px #10231e;z-index:0}.duel-arena>canvas{width:100%;height:100%;display:block;image-rendering:pixelated;object-fit:cover}.duel-arena .pitch-announcement{top:45%;z-index:3;max-width:90%;font-size:28px}.fighter-status{position:absolute;bottom:3%;width:190px;text-align:center;transform:translateX(-50%);z-index:1;text-shadow:1px 1px 2px #0b211c}.hero-status{left:29.2%}.enemy-status{left:70.8%}.fighter-role{font:7px monospace;letter-spacing:1.2px;color:#a9bf8e}.fighter-status h2{font-size:13px;font-weight:700;margin:4px 0 7px;color:#eee8cd}.fighter-health{position:relative;height:16px;background:#342d26;border:1px solid #8c6e4f;border-radius:3px;overflow:hidden;box-shadow:0 2px 0 #0f221b}.fighter-health>i{position:absolute;inset:0 auto 0 0;width:100%;background:linear-gradient(#ce7e62,#ad5d4e);transition:width .25s}.fighter-health>span{position:relative;z-index:1;font:bold 10px/14px monospace;color:#fff1d6;text-shadow:1px 1px #412f28}.enemy-health>i{background:linear-gradient(#b96958,#84493e)}.fighter-buffs{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:7px;font-size:9px;min-height:20px}.block-buff{color:#a9d1d2;border:1px solid #5e8790;background:#1c3e42;padding:3px 6px;border-radius:3px}.block-buff b{font-family:monospace}.fighter-buffs .momentum{color:var(--gold);background:#3c3e22;border:1px solid #827d43;padding:3px 6px;border-radius:3px;font-size:9px}.fighter-buffs .outcome-badge{font-size:8px;padding:4px 6px;background:#152d25}.enemy-intent{position:absolute;top:1%;left:70.8%;transform:translateX(-50%);text-align:center;z-index:2;min-width:180px}.intent-label{font-size:8px;color:#d0d8b6;text-shadow:1px 1px #11271f}.enemy-intent>div{display:flex;gap:7px;justify-content:center;align-items:center;margin:5px 0}.intent-blade{font-size:25px;color:#efad7a;text-shadow:2px 2px #2b3426}.enemy-intent strong{font:bold 24px monospace;color:#edb78a;text-shadow:2px 2px #112c23}.enemy-intent b{font-size:11px;font-weight:500;color:#e7e1ba}.enemy-intent p{font-size:8px;color:#adc397;line-height:1.6;max-width:230px;margin:auto}.enemy-intent .outcome-badge{display:inline-block;margin-top:5px;font-size:8px;background:#192f25c9}.personal-duel .hand-section{position:relative;z-index:2;margin-top:-2px}.personal-duel .hand-heading{padding:0 110px;margin:6px 0 12px;min-height:32px;gap:20px;align-items:center}.personal-duel .selected-info{padding:0;flex:1}.personal-duel .selected-info strong{font-size:11px;color:#d3d9bd}.personal-duel .selected-info>span{display:block;font-size:9px;margin-top:4px;color:#8ba37e}.damage-preview{font-size:10px;color:var(--gold);white-space:nowrap}.personal-duel .energy{display:flex;flex-direction:column;gap:8px;min-width:0;margin-bottom:14px}.personal-duel .energy-orb{height:64px;width:64px;background:radial-gradient(circle at 35% 30%,#729f65,#30533f 70%);border:3px solid #b4bc78;box-shadow:0 0 0 5px #2b4431,0 6px 0 6px #0f231b;color:#fff1bf}.personal-duel .energy-orb strong{font:bold 34px Georgia,serif;text-shadow:2px 2px #34503c}.personal-duel #energy-cap{font:9px monospace;color:#b0c696;margin-top:5px}.pile-orb{position:relative;min-width:54px;min-height:48px;border:1px solid #597450;border-radius:5px;background:#223c2b;color:#c7d6a9;padding:7px;font-size:17px}.pile-orb b{font:15px monospace;margin-left:4px}.pile-orb small{display:block;font-size:8px;color:#98ac80;margin-top:4px}.energy .pile-orb{margin-top:17px;background:#263c2c}.turn-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;margin-bottom:10px}.turn-actions .pile-orb{align-self:center;margin-bottom:6px}.personal-duel .turn-actions .button{padding:12px 7px;min-height:43px;font-size:11px}.personal-duel .turn-actions .primary{border:2px solid #d0bc78;background:#bda467;color:#233c2a;box-shadow:0 4px 0 #665a36;font-size:12px;border-radius:5px}.personal-duel .turn-actions .primary:hover{background:#ddc58a}.personal-duel .turn-actions .card-use{background:#33533c;border-color:#7d9b62}.personal-duel .match-foot{padding:0 109px;margin-top:15px}.personal-duel .main-footer{border-top:1px solid #2b4534;padding-top:11px;margin-top:14px;font-size:8px}.personal-duel .phase-panel{max-width:940px;margin:18px auto 12px;position:relative;z-index:4;background:#1a3026;border-color:#72855a;padding:28px}.personal-duel .phase-panel h3{font-size:25px}.personal-duel[data-phase="map"] .duel-arena,.personal-duel[data-phase="training"] .duel-arena,.personal-duel[data-phase="shop"] .duel-arena,.personal-duel[data-phase="rest"] .duel-arena,.personal-duel[data-phase="event"] .duel-arena{height:220px;opacity:.8}.personal-duel:not([data-phase="match"]) .enemy-intent{display:none}.personal-duel:not([data-phase="match"]) .fighter-status{display:none}.personal-duel:not([data-phase="match"]) .match-foot{padding:0;max-width:940px;margin-inline:auto}.route-dialog-body{padding:25px 35px}.map-chapters{display:flex;gap:15px;flex-wrap:wrap;font-size:10px;color:#70876d;margin-bottom:24px}.map-chapters .current{color:var(--gold)}.route-dialog-body .route-list{max-width:400px;margin:auto}.route-dialog-body .route-node{padding-bottom:24px}.route-dialog-body .node-symbol{width:37px;height:37px;font-size:16px}.route-dialog-body .route-node:before{left:18px;top:35px}.route-dialog-body .node-copy strong{font-size:14px}.route-dialog-body .node-copy small{font-size:10px}.map-note{font-size:11px;color:#9eb38f;line-height:1.8;margin-top:15px}#route-progress{color:var(--gold);font:11px monospace;margin-left:12px}.shop-balance{display:flex;justify-content:space-between;gap:12px;margin-top:18px;color:var(--gold);font-size:12px;padding-bottom:15px;border-bottom:1px solid #4b6040}.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.shop-item{background:#233c2a;border:1px solid #6b7b50;min-width:0;border-radius:7px;padding:18px 13px;display:flex;flex-direction:column;text-align:center}.shop-item canvas{width:100%;height:85px;object-fit:contain;image-rendering:pixelated;display:block;background:#1a3026;border:1px solid #42583b;margin-bottom:13px}.shop-item h4{font-size:13px;margin:0 0 7px;color:#f0e3b6}.shop-item p{font-size:10px;line-height:1.8;color:#b4c29e;flex:1}.shop-item button{margin-top:17px;padding:11px 7px;background:#baab69;color:#233829;border:1px solid #e6ce8a;font-weight:bold;font-size:12px;border-radius:3px}.shop-item button:disabled{background:#3e4b32;color:#b6bd8c;border-color:#626e49}.item-tag{font:8px monospace;letter-spacing:1px;color:var(--gold);margin-bottom:7px}.equipped-item{display:flex;align-items:center;gap:17px;padding:14px 0;border-bottom:1px solid #3c5439}.equipped-item canvas{width:88px;height:65px;image-rendering:pixelated;background:#1b3024;flex:none}.equipped-item strong{font-size:13px;color:var(--gold)}.equipped-item p{font-size:11px;color:#b4c6a1;line-height:1.8;margin-top:5px}
@media(max-width:1100px){.personal-duel .topbar{gap:14px;padding:0 20px}.personal-duel .career-label{padding-left:14px}.top-resources{gap:16px}.personal-duel .main-content{padding:18px 18px 10px}.personal-duel .hand-heading{padding:0 86px}.personal-duel .match-foot{padding:0 86px}.fighter-status{width:170px}.enemy-intent{top:0}.duel-arena{height:390px}.relic-rule{display:none}}
@media(max-width:800px){.personal-duel .topbar{gap:10px;height:62px;padding:0 14px}.personal-duel .brand{font-size:21px}.personal-duel .brand img{width:25px;height:25px}.career-label{display:none}.top-resources{gap:12px}.coin-resource small{display:none}.personal-duel .header-actions{gap:3px}.top-link{padding:4px 6px}.personal-duel .relic-strip{padding:6px 16px;gap:12px;min-height:45px}.personal-duel .main-content{padding:16px 12px 10px}.duel-arena{height:340px}.fighter-status{width:150px;bottom:1%}.personal-duel .hand-heading{padding:0 70px}.personal-duel .energy-orb{width:51px;height:51px}.personal-duel .energy-orb strong{font-size:29px}.personal-duel .match-foot{padding:0 8px}.personal-duel .phase-panel{padding:20px}.shop-grid{grid-template-columns:repeat(2,1fr)}.shop-item canvas{height:92px}}
@media(max-width:520px){.personal-duel .topbar{height:57px;gap:8px;padding:0 10px}.personal-duel .brand{font-size:16px;gap:5px}.personal-duel .brand img{width:22px;height:22px}.top-resources{gap:8px}.hp-resource{min-width:85px;gap:5px;padding-bottom:4px}.heart-symbol{font-size:16px}.hp-resource>strong{font-size:12px}.hp-resource small{font-size:8px}.hp-resource .condition-track{left:20px;height:2px}.coin-resource{gap:4px;font-size:11px}.coin-resource strong{font-size:14px}.personal-duel .header-actions{gap:1px}.personal-duel #sound-button,.personal-duel #help-button{display:none}.personal-duel .icon-button{width:27px;height:27px;font-size:13px}.top-link{font-size:16px;padding:2px 4px;min-height:30px;gap:3px}.top-link span{display:none}.top-link strong{font-size:10px}.personal-duel .relic-strip{min-height:38px;padding:4px 12px;gap:9px}.relic-strip>.eyebrow{font-size:6px;letter-spacing:.7px}.relic-strip .relic-list{gap:4px;min-height:27px}.relic-strip .relic-token{width:28px;height:26px}.relic-strip .relic-token canvas{width:31px;height:25px}.relic-strip .relic-empty{font-size:8px}.personal-duel .main-content{padding:12px 0 10px}.personal-duel .match-heading{padding:0 14px;margin-bottom:7px;gap:10px;align-items:center}.personal-duel .match-heading h1{font-size:16px;margin-top:5px}.personal-duel .match-heading p{font-size:8px;margin-top:3px}.personal-duel .match-heading .eyebrow{font-size:7px;letter-spacing:.8px}.personal-duel .turn-counter{padding:6px 8px;gap:6px}.personal-duel .turn-counter strong{font-size:19px}.personal-duel .turn-counter small{font-size:6px;letter-spacing:.5px}.duel-arena{height:270px;margin-top:8px}.duel-arena>canvas{object-fit:cover}.fighter-status{width:122px;bottom:0}.hero-status{left:19%}.enemy-status{left:81%}.fighter-role{font-size:6px;letter-spacing:.6px}.fighter-status h2{font-size:10px;margin:3px 0 5px}.fighter-health{height:14px}.fighter-health>span{font-size:9px;line-height:12px}.fighter-buffs{gap:5px;margin-top:4px;font-size:7px}.fighter-buffs .momentum{font-size:7px;padding:3px 4px}.block-buff{padding:3px 4px}.fighter-buffs .outcome-badge{font-size:7px;padding:3px}.enemy-intent{left:79%;top:-5px;min-width:130px}.intent-label{font-size:6px}.enemy-intent>div{gap:4px;margin:2px 0}.intent-blade{font-size:17px}.enemy-intent strong{font-size:19px}.enemy-intent b{font-size:8px}.enemy-intent p{display:none}.enemy-intent .outcome-badge{font-size:6px;padding:2px 4px;margin-top:1px}.duel-arena .pitch-announcement{font-size:22px;padding:8px 15px;top:43%}.personal-duel .hand-section{margin-top:10px}.personal-duel .hand-heading{padding:0 14px;gap:8px;margin:0 0 9px;min-height:30px;align-items:center}.personal-duel .selected-info strong{font-size:10px;white-space:normal}.personal-duel .selected-info>span{font-size:8px;margin-top:4px;display:block;line-height:1.4}.damage-preview{font-size:8px;max-width:105px;white-space:normal;text-align:right}.personal-duel .energy{margin-bottom:8px;gap:5px}.personal-duel .energy-orb{width:35px;height:35px;border-width:2px;box-shadow:0 0 0 3px #2b4431,0 3px 0 4px #0f231b}.personal-duel .energy-orb strong{font-size:23px}.personal-duel #energy-cap{font-size:6px;margin-top:4px;white-space:nowrap}.pile-orb{min-width:33px;min-height:37px;font-size:11px;padding:4px}.pile-orb b{font-size:11px;margin-left:1px}.pile-orb small{font-size:6px;margin-top:3px}.energy .pile-orb{margin-top:10px}.turn-actions{gap:7px;margin-bottom:8px}.turn-actions .pile-orb{margin-bottom:5px}.personal-duel .turn-actions .button{padding:9px 3px;min-height:38px;font-size:8px}.personal-duel .turn-actions .primary{font-size:9px;min-height:44px;white-space:nowrap}.personal-duel .match-foot{padding:0 14px;gap:10px;margin-top:10px}.personal-duel .match-foot p{font-size:8px}.personal-duel .main-footer{margin:10px 14px 0;padding-top:9px;font-size:6px;gap:10px}.personal-duel .main-footer>span:last-child{letter-spacing:0}.personal-duel .phase-panel{margin:14px 12px;padding:18px 13px}.personal-duel .phase-panel h3{font-size:20px}.personal-duel .phase-panel>p{font-size:10px}.personal-duel[data-phase="map"] .duel-arena,.personal-duel[data-phase="training"] .duel-arena,.personal-duel[data-phase="shop"] .duel-arena,.personal-duel[data-phase="rest"] .duel-arena,.personal-duel[data-phase="event"] .duel-arena{height:160px}.personal-duel:not([data-phase="match"]) .duel-arena>canvas{object-fit:cover;object-position:center 35%}.shop-grid{gap:9px}.shop-item{padding:12px 9px}.shop-item h4{font-size:11px}.shop-item p{font-size:9px}.shop-item canvas{height:76px;margin-bottom:10px}.shop-item button{font-size:10px;padding:10px 5px;margin-top:12px}.shop-balance{font-size:10px;line-height:1.7}.item-tag{font-size:7px}.route-dialog-body{padding:20px}.map-chapters{font-size:8px;gap:9px}.route-dialog-body .node-copy strong{font-size:12px}.personal-duel .stats-row b{font-size:23px}}
@media(max-width:360px){.personal-duel .brand img{display:none}.top-resources{gap:6px}.duel-arena{height:245px}.hero-status{left:19%}.enemy-status{left:81%}.fighter-status{width:110px}}
/* Personal journey: a branching football tactics board. */
.personal-duel .relic-strip .relic-list{display:flex}
.personal-duel .route-dialog-body .route-list{display:block;max-width:none}
.personal-duel[data-phase="map"] .duel-arena{display:none}
.personal-duel[data-phase="map"] .phase-panel{max-width:900px;background:#132b27;border:1px solid #627464}
.personal-duel[data-phase="map"] .match-heading{display:none}
.tactics-board{position:relative;height:720px;max-width:760px;margin:24px auto 0;border:9px solid #765944;outline:1px solid #b4936b;border-radius:9px;background:repeating-linear-gradient(95deg,#203e36aa 0 1px,transparent 1px 67px),radial-gradient(ellipse at 40% 35%,#355447,#1d3730);box-shadow:inset 0 0 60px #081c1888,0 12px 30px #081a1a80;isolation:isolate}
.tactics-board:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 2px,#c6e0c803 2px 3px);z-index:4}
.board-pitch{position:absolute;inset:26px 18px;border:2px solid #bcd8bb18;border-radius:2px;pointer-events:none}
.board-pitch:before,.board-pitch:after{content:"";position:absolute;width:47%;height:12%;left:26.5%;border:2px solid #bcd8bb18}
.board-pitch:before{top:-2px}.board-pitch:after{bottom:-2px}
.board-pitch i{position:absolute;width:100%;border-top:2px solid #bcd8bb18;top:50%}
.board-pitch b{position:absolute;width:130px;height:130px;border:2px solid #bcd8bb18;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}
.board-label{position:absolute;left:15px;top:12px;font:8px monospace;letter-spacing:2px;color:#b8c9ab88}
.board-start{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);font:9px monospace;letter-spacing:2px;color:#d1d4b7}
.map-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.map-edge{stroke:#b6c4a755;stroke-width:1.4px;vector-effect:non-scaling-stroke;stroke-dasharray:5 7;fill:none}
.map-edge.walked{stroke:#e6bd72;stroke-width:3px;stroke-dasharray:none}
.map-edge.available{stroke:#f1edc2;stroke-width:2.5px;stroke-dasharray:6 4}
.map-point{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;background:transparent;border:0;padding:0;width:160px;color:#a9b8a0;z-index:2;text-align:center;font-family:inherit}
.map-point-icon{width:44px;height:44px;border:2px solid #899b7e;border-radius:50%;display:grid;place-items:center;background:#223f34;color:#c9d2b7;font:24px Georgia,serif;box-shadow:0 0 0 5px #203c32}
.map-point strong{font-size:11px;font-weight:500;line-height:1.4;margin-top:6px;background:#213d32e8;padding:1px 5px;border-radius:2px}
.map-point small{font-size:8px;margin-top:2px;color:#91a28b}
.map-point.boss .map-point-icon{border-color:#bf9c60;color:#e9c47d;width:50px;height:50px}
.map-point.shop .map-point-icon{color:#e0bc71}.map-point.training .map-point-icon{color:#b9d1d5}.map-point.rest .map-point-icon{color:#b8d9ad}
.map-point.visited{color:#ebca8b}.map-point.visited .map-point-icon{border-color:#d6b56c;color:#edcd8e;background:#49533b}.map-point.visited small{color:#c3b78d}
.map-point.available{cursor:pointer;color:#fff3cd}.map-point.available .map-point-icon{border:3px solid #e7e7ad;color:#fff9d6;background:#516342;box-shadow:0 0 0 6px #d6dda61c,0 0 22px #dded9b26}
.map-point.available strong{color:#fff0c5;font-weight:700}.map-point.available small{color:#d6e89b}
.map-point.available:hover .map-point-icon,.map-point.available:focus-visible .map-point-icon{background:#809058;transform:scale(1.09)}
.map-point:focus-visible{outline:2px solid #efdfa1;outline-offset:6px;border-radius:5px}.map-point.current .map-point-icon{box-shadow:0 0 0 6px #e3c77e36}
.map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:15px;font-size:10px;color:#b8c9a9;margin:22px 0 4px}.route-dialog-body{padding:22px}.route-dialog-body .tactics-board{height:680px}.route-dialog-body .map-legend{gap:10px;font-size:9px}
@media(max-width:520px){.tactics-board{height:690px;border-width:6px;margin-top:22px}.map-point{width:130px}.map-point strong{font-size:10px}.map-point-icon{width:40px;height:40px;font-size:22px}.map-point small{font-size:7px}.map-legend{gap:12px;font-size:9px}.route-dialog-body{padding:14px 10px}.board-pitch{inset:25px 10px}.board-label{font-size:6px;letter-spacing:1px}.personal-duel .relic-rule{display:none}.personal-duel .relic-strip .relic-list{flex-wrap:nowrap;overflow-x:auto}.personal-duel .relic-token{flex:none}}
.map-point.available:active{transform:translate(-50%,-50%) scale(.97)}
@media(min-width:801px) and (max-height:820px){.personal-duel .topbar{height:54px}.personal-duel .relic-strip{min-height:35px;padding-block:2px}.personal-duel .main-content{padding-top:10px}.personal-duel .match-heading h1{font-size:19px}.personal-duel .match-heading p{margin-top:2px}.duel-arena{height:300px}.personal-duel .hand-heading{margin-block:4px;min-height:26px}.personal-duel .match-foot{margin-top:4px}.personal-duel .main-footer{margin-top:5px;padding-top:5px}}
.duel-arena>canvas{object-fit:fill}.enemy-intent{background:#10251dd9;border:1px solid #aab78e55;border-radius:6px;padding:5px 10px;top:3px;min-width:180px}.enemy-intent>div{margin:2px 0}.enemy-intent .outcome-badge{margin-top:3px}.fighter-status h2{text-shadow:0 1px 3px #000,0 0 7px #000}.fighter-role{text-shadow:0 1px 3px #000}
@media(max-width:520px){.hero-status{left:23%}.enemy-status{left:77%}.enemy-intent{left:77%;top:4px;min-width:125px;padding:4px 7px}.personal-duel .duel-arena>canvas{object-fit:fill}.personal-duel .fighter-status{width:125px}.personal-duel:not([data-phase="match"]) .duel-arena>canvas{object-fit:fill}}

/* Night football: quiet navy surfaces, warm player art, clear tactical signals. */
:root{--bg:#0c1018;--panel:#141b26;--panel2:#1b2532;--line:#2b3544;--muted:#929eaf;--text:#e5e8ed;--mint:#b8d6df;--gold:#d7b984;--red:#db8275;--blue:#9dbed8}
.personal-duel{background:#0c1018;background-image:none}
.personal-duel .topbar{background:#0d131d;border-color:#2b3544}
.personal-duel .relic-strip{background:#111923;border-color:#273241}
.personal-duel .brand-accent,.top-link{color:#d2dee7}
.career-label{border-color:#2b3544}.career-label strong{color:#c3cbd6}
.personal-duel .match-heading h1{color:#e5e8ed}
.personal-duel .match-heading p,.personal-duel .selected-info>span,.relic-rule,.pile-orb small{color:#98a6b8}
.personal-duel .selected-info strong{color:#d5dee8}
.icon-button{border-color:#3a4656;color:#bcc9d9}.icon-button:hover{background:#243044}
.personal-duel .turn-counter{background:#192332;border-color:#39475a}
.personal-duel .turn-counter strong{color:#d9e5ef}
.personal-duel .main-footer{border-color:#273241;color:#8e9caf}
.duel-arena{background:#101722;border-radius:8px}
.duel-arena:after{box-shadow:inset 0 -28px 28px #0c1018;}
.enemy-intent{background:#0e1724ed;border-color:#48566a;box-shadow:none}
.enemy-intent .intent-label,.enemy-intent p{color:#bcc9d9}
.enemy-intent b{color:#eef0f3}.enemy-intent .outcome-badge{background:#1d2736}
.fighter-role{color:#b5c7d8}.fighter-status h2{color:#eef0f3}
#hero-name{background:none;color:inherit;font:inherit;padding:0 2px;border-bottom:1px dashed #72809980;max-width:100%;overflow-wrap:anywhere}
#hero-name:hover{color:var(--mint)}
.fighter-health{background:#212735;border-color:#657084;box-shadow:none}
.fighter-health>i{background:#b66d65}.enemy-health>i{background:#8f6972}
body[data-encounter="coach"] .enemy-health>i{background:#9b874f}
.fighter-buffs .momentum{background:#2a2b28;border-color:#70654b;color:#d7be88}
.block-buff{background:#1b3043;border-color:#50718b;color:#bdd6e8}
.fighter-buffs .outcome-badge{background:#141e2c;color:#c5ceda}
.personal-duel .energy-orb{background:#26394d;border-color:#b7c9d9;box-shadow:0 0 0 4px #1a283a;color:#e4edf3}
.personal-duel .energy-orb strong{text-shadow:none}.personal-duel #energy-cap{color:#b1c2d3}
.pile-orb,.energy .pile-orb{background:#1b2737;border-color:#43536a;color:#c1cedd}
.personal-duel .turn-actions .card-use{background:#274257;border-color:#50768d}
.personal-duel .turn-actions .primary{background:#d2bd93;border-color:#e4d3b4;color:#1e232b;box-shadow:0 3px 0 #716754}
.personal-duel .turn-actions .primary:hover{background:#e3d2b2}
.button{background:#1d2b3e;border-color:#42546b;color:#d8e2ec}.button:hover:not(:disabled){background:#2b3b50}
.button.primary{background:#c5d8df;color:#142332;border-color:#d7e6eb}.button.primary:hover:not(:disabled){background:#e1edf1}
.personal-duel .phase-panel,.personal-duel[data-phase="map"] .phase-panel{background:#121b27;border-color:#344155;box-shadow:none}
.personal-duel .phase-panel h3{color:#edf0f4}.personal-duel .phase-panel>p{color:#a6b2c3}
.shop-balance{background:#182231;border-color:#334154;color:#a8b6c7}
.shop-item{background:#182332;border:1px solid #334154;border-radius:8px;box-shadow:none}
.shop-item canvas{display:block;width:100%;height:125px;object-fit:contain;margin:10px auto 13px;image-rendering:pixelated}
.shop-item h4{color:#e4e8ee}.shop-item p{color:#a6b5c8}
.shop-item button{background:#273d52;border-color:#4b637b;color:#dae6ed}
.shop-item button:hover:not(:disabled){background:#36536b}.item-tag{color:#b7c4d4;border-color:#3e4c5f}
.personal-duel .relic-strip .relic-token{border-bottom:1px solid #727d90;width:40px;height:37px}
.personal-duel .relic-strip .relic-token canvas{width:38px;height:32px;object-fit:contain}
.relic-earned{display:flex;align-items:center;gap:16px;margin:22px auto 5px;padding:15px 20px;border:1px solid #766744;background:#232620;border-radius:8px;max-width:600px;text-align:left}
.relic-earned canvas{width:75px;height:75px;object-fit:contain;flex:none}.relic-earned strong{display:block;margin:4px 0;color:#e1c995}.relic-earned span{font-size:10px;color:#c4ae7e}.relic-earned p{font-size:11px;line-height:1.7;color:#b6bdc5}
.combat-rule{margin:8px 10px 10px;border-left:3px solid #bd9f64;background:#1e2530;padding:9px 13px;color:#d3c6ab;font-size:11px;line-height:1.6;border-radius:0 4px 4px 0}
.personal-duel dialog{background:#131d2a;border:1px solid #48566b;box-shadow:0 22px 80px #0009;color:#e2e8ef}
.dialog-top{background:#172332;border-color:#354357;color:#d8e2ee}.dialog-copy{color:#aebbd0}.dialog-copy strong{color:#e4eaf0}
.choice-button,.training-row,.equipped-item,.log-row{background:#1b2839;border-color:#3c4c62;color:#d4deea}
.choice-button:hover:not(:disabled){background:#263b50;border-color:#7d9caf}.choice-button small,.training-description{color:#b2bfd0}
.training-row button{background:#2a4056;border-color:#45617c;color:#dce9ef}
.rule-note{background:#0f1927;border-color:#3b5069;color:#b5c9d8}
.equipped-item canvas{width:76px;height:76px;object-fit:contain}.equipped-item p{color:#aab8c9}
.name-form{padding:28px;max-width:520px;margin:auto;text-align:left}
.name-form>p{font-size:13px;line-height:1.7;color:#a6b6cb;margin:15px 0 24px}
.name-form label{display:block;font-size:13px;font-weight:700;margin-bottom:9px}
.name-form input{width:100%;background:#0d1522;border:1px solid #526880;border-radius:6px;padding:13px 14px;font-weight:600;line-height:1.5;color:#edf3f6;font-family:inherit;font-size:19px}
.name-form input:focus{outline:2px solid #9fbfce;outline-offset:2px}.name-form>small{display:block;font-size:11px;color:#8d9eb3;margin-top:10px}
.name-form .form-error{color:#ecab9d;margin:8px 0;min-height:20px;font-size:12px}
.name-form .phase-actions{justify-content:flex-end;margin-top:16px}
.route-brief{margin:20px 0 12px;text-align:left;padding:14px 16px;background:#182432;border-radius:6px;border:1px solid #344357}
.route-brief>span{color:#9bacc2;font-size:10px}.route-brief>strong{display:block;font-size:14px;margin:7px 0;color:#dde5ee}.route-brief>p{font-size:10px;line-height:1.6;color:#a6b7ca}
.boss-preview{border-left:3px solid #b9a075;background:#20242a;padding:12px 16px;text-align:left}.boss-preview>span{font:8px monospace;letter-spacing:1.5px;color:#b6a17d}.boss-preview strong{display:block;font-size:16px;margin:4px 0;color:#e4d5b8}.boss-preview p{font-size:11px;line-height:1.7;color:#aeb9c8}
.legacy-notice{font-size:12px;line-height:1.7;background:#202b3a;padding:15px;margin:18px 0;color:#bfcada}.legacy-notice .button{display:block;margin-top:12px;font-size:11px}
.personal-duel .tactics-board,.personal-duel .route-dialog-body .tactics-board{height:var(--board-height,1120px);background:#132229;border:5px solid #374554;outline:1px solid #596878;border-radius:6px;box-shadow:none}
.tactics-board:after{display:none}.board-pitch,.board-pitch:before,.board-pitch:after,.board-pitch i,.board-pitch b{border-color:#bac9d313}
.board-label,.board-start{color:#8c9daca0}.board-start{color:#bcc9d5}
.map-edge{stroke:#7f99a270;stroke-dasharray:4 7;stroke-width:1.5px}.map-edge.walked{stroke:#c5ae7d}.map-edge.available{stroke:#c2dce5;stroke-width:3px}
.map-point{width:152px;color:#a4b4c0}.map-point-icon{background:#1e313a;border-color:#647c8b;color:#bacdd4;box-shadow:0 0 0 5px #132229}
.map-point strong{background:#132229f2;color:#b7c6cf;max-width:100%;line-height:1.35}.map-point small{color:#8299a7}.map-point em{font-size:8px;font-style:normal;line-height:1.6;color:#bedee5;background:#132229}
.map-point.available .map-point-icon{background:#344e5a;border-color:#c2dbe5;color:#f1f5f5;box-shadow:0 0 0 4px #a5c6d21a}
.map-point.available strong,.map-point.available small{color:#dce9ed}.map-point.available:hover .map-point-icon,.map-point.available:focus-visible .map-point-icon{background:#496574}
.map-point.visited .map-point-icon{background:#39392f;border-color:#b7a272;color:#e0cca1}.map-point.visited strong{color:#d9c49b}.map-point.visited small{color:#ab9c7e}
.map-point.elite .map-point-icon{border-color:#b28d56;color:#e0b97a;border-radius:11px;transform:rotate(-5deg)}.map-point.boss .map-point-icon{background:#38352c;border-color:#c1a571;color:#edcd8b}
.map-point.rest .map-point-icon{color:#b2ccbc}.map-point.training .map-point-icon{color:#adc5de}.map-legend{color:#9caebb}
@media(max-width:520px){
 .personal-duel .shop-item canvas{height:100px;margin:6px auto 10px}
 .personal-duel .relic-strip .relic-token{width:32px;height:29px}.personal-duel .relic-strip .relic-token canvas{width:30px;height:25px}
 .personal-duel .energy-orb{box-shadow:0 0 0 3px #1a283a}
 .combat-rule{margin:7px 12px;font-size:9px;padding:7px 10px}
 .name-form{padding:22px 18px}.name-form>p{font-size:12px}
 .route-brief{padding:12px}.route-brief>strong{font-size:12px}.boss-preview{padding:10px 12px}.boss-preview strong{font-size:14px}.boss-preview p{font-size:10px}
 .personal-duel .tactics-board{border-width:3px}.map-point{width:92px}.map-point strong{font-size:9px;padding:1px 2px}.map-point small,.map-point em{font-size:7px}.map-point-icon{width:36px;height:36px;font-size:20px}.map-point.boss .map-point-icon{width:42px;height:42px}
 .relic-earned{padding:10px;gap:10px}.relic-earned canvas{width:56px;height:60px}.relic-earned strong{font-size:12px}.relic-earned p{font-size:9px}
}

/* Keep item cutouts and attack intent clear of the player silhouettes. */
.shop-item canvas,.equipped-item canvas{background:#101923;border:1px solid #2c3b4d;border-radius:6px}
.button.primary{box-shadow:none}
.enemy-intent p{display:none}

.personal-duel dialog::backdrop{background:#03070cbd;backdrop-filter:blur(4px)}
.enemy-intent{font-size:0;line-height:1;padding:5px 8px}
.enemy-intent .intent-label{display:block;font-size:7px;line-height:10px}
.enemy-intent>div{line-height:1;margin:3px 0}
.enemy-intent strong{font-size:21px;line-height:23px}
.enemy-intent .intent-blade{font-size:20px;line-height:23px}
.enemy-intent b{line-height:1.2}
.enemy-intent .outcome-badge{font-size:7px;line-height:10px;padding:2px 5px;margin-top:0}
@media(min-width:801px) and (max-height:820px){
 .personal-duel[data-encounter="coach"] .duel-arena,.personal-duel[data-encounter="legend"] .duel-arena{height:270px}
 .combat-rule{margin-block:5px;padding-block:7px}
}

/* Readable football cards: category color, illustrated action, then effect. */
.card{
 --card-color:#568d73;--card-bg:#285c45;--card-head:#1d4937;--card-border:#75aa8b;--card-rule:#deede2;
 position:relative;display:flex;flex-direction:column;isolation:isolate;flex:0 0 196px;
 width:196px;min-width:196px;min-height:286px;margin:0;padding:0;text-align:left;
 border:2px solid var(--card-border);border-bottom-width:5px;border-radius:11px;
 background:var(--card-bg);color:#fff5e6;box-shadow:0 5px 0 #060a11,0 10px 18px #0005;
 overflow:visible;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.card.category-attack,.card.shot,.card.pass{--card-color:#b75c50;--card-bg:#7b302e;--card-head:#592321;--card-border:#c67a68;--card-rule:#f4dcd3}
.card.category-defense,.card.defense{--card-color:#528ab6;--card-bg:#254d74;--card-head:#1b3857;--card-border:#7badd0;--card-rule:#deebf5}
.card.category-skill,.card.dribble,.card.tactic{--card-color:#568d73;--card-bg:#285c45;--card-head:#1d4937;--card-border:#75aa8b;--card-rule:#deede2}
.card:before{content:"";position:absolute;inset:3px;z-index:-1;border:1px solid #fff4;border-radius:7px;pointer-events:none}
.card.rarity-uncommon:before{border-color:#d4e6ee80}
.card.rarity-rare:before{border-color:#f2d49b;box-shadow:inset 0 0 0 1px #bd915e44}
.card-top{display:flex;align-items:center;position:relative;gap:6px;min-height:43px;padding:8px 9px 7px 46px;background:var(--card-head);border-radius:8px 8px 0 0}
.card-cost{position:absolute;left:-7px;top:-7px;display:grid;place-items:center;width:45px;height:45px;border:3px solid #e7d8b7;border-radius:50%;background:#192b3f;color:#fff9e8;font:800 27px/1 Georgia,serif;box-shadow:0 3px 0 #050b12,0 0 0 2px var(--card-head);z-index:2}
.card-title{display:block;flex:1;min-width:0;font-size:14px;font-weight:800;line-height:1.3;letter-spacing:-.55px;overflow-wrap:anywhere;color:#fff5e6;text-shadow:0 1px 1px #0004}
.card .upmark{color:#ffe1a0;margin-left:1px}
.card-art{display:block;width:calc(100% - 16px);height:116px;min-height:116px;margin:0 8px;border:1px solid #e5d8ba80;background:#111e2b;image-rendering:pixelated;object-fit:cover;flex-shrink:0}
.card-type{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:25px;padding:5px 10px;margin-top:5px;background:var(--card-head);border-top:1px solid #ffffff18;border-bottom:1px solid #ffffff20;font:700 10px/1.3 Arial,"Malgun Gothic",sans-serif;letter-spacing:0;text-transform:none;color:#ffefda}
.card-type>span:first-child{display:flex;align-items:center;gap:5px}
.card-category-icon{display:block;flex:none;width:14px;height:14px}
.card-subtype{font-size:9px;font-weight:500;color:var(--card-rule);white-space:nowrap}
.card-type>span:last-child{font-size:9px;font-weight:500;color:var(--card-rule)}
.card.rarity-rare .card-type>span:last-child{color:#ffe1a0}
.card-description{display:flex;flex-direction:column;gap:5px;flex:1;min-height:84px;padding:9px 11px 15px;border-radius:0 0 6px 6px;background:var(--card-bg);color:#fff5e6;font-size:12px;line-height:1.5;word-break:keep-all;overflow-wrap:break-word}
.card-stat{display:flex;align-items:baseline;gap:7px;font-size:15px;font-weight:800;line-height:1.4;color:#fff7e8;letter-spacing:-.35px}
.card-rules{display:block;font-size:11px;line-height:1.55;color:var(--card-rule);letter-spacing:-.15px}
.card-effect-number{font-size:1.25em;font-weight:900;font-variant-numeric:tabular-nums;color:#ffdf9d}
.card-stat .card-effect-number{font-size:25px;line-height:1.1}
.card-rule-number{font-weight:800;color:#fff1ca}
.card-key{position:absolute;right:7px;bottom:3px;min-width:14px;text-align:center;color:#fff6;font:9px/1.2 monospace}
.card.upgraded .card-cost{border-color:#f1cd85}
.card.unaffordable .card-cost{background:#352d37;border-color:#d79582;color:#f3cabd}
.card.unaffordable{box-shadow:0 5px 0 #060a11,0 7px 14px #0004}
.card.unaffordable .card-key{display:block;right:8px;bottom:4px;font:9px/1.2 Arial,"Malgun Gothic",sans-serif;color:#f0c8b6}
.card:disabled{opacity:.82;cursor:default}
.card:hover:not(:disabled),.card.selected{transform:translateY(-9px);border-color:#f2deb1;box-shadow:0 6px 0 #060a11,0 14px 24px #0007}
.card.selected{outline:2px solid #ffe2a0;outline-offset:3px}
.card:focus-visible{outline:3px solid #f9e4ae;outline-offset:4px}
.hand-zone{display:grid;grid-template-columns:92px minmax(0,1fr) 124px;gap:14px;align-items:end}
.hand,.personal-duel .hand{display:flex;justify-content:safe center;align-items:stretch;gap:14px;min-width:0;min-height:332px;margin:0;padding:25px 9px 17px;overflow-x:auto;overflow-y:hidden;scroll-padding-inline:12px;scrollbar-width:thin;scrollbar-color:#52677c transparent;overscroll-behavior-x:contain}
.personal-duel .hand .card{transform-origin:center bottom}
.personal-duel .hand .card:hover:not(:disabled),.personal-duel .hand .card.selected{transform:translateY(-13px);z-index:3}
.personal-duel .hand-heading{padding-inline:106px 138px;margin-bottom:0}
.personal-duel .selected-info strong{font-size:12px}
.personal-duel .selected-info>span{font-size:10px;line-height:1.5}
.personal-duel .hand-empty{align-self:center;min-width:220px;background:#131d2b;border-color:#35475b}
.reward-grid{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:20px;margin-top:22px;padding:12px 5px 10px}
.dialog-cards{display:grid;grid-template-columns:repeat(auto-fit,196px);justify-content:center;align-items:stretch;gap:22px 16px;padding:8px 0 12px}
.dialog-cards .card{width:196px;min-width:196px}
.dialog-cards .card:hover{transform:none}
@media(max-width:1100px){
 .hand-zone{grid-template-columns:75px minmax(0,1fr) 112px;gap:10px}
 .personal-duel .hand-heading{padding-inline:85px 122px}
}
@media(min-width:801px) and (max-width:1360px){
 .personal-duel .hand-heading{padding-inline:0}
 .hand-zone{grid-template-columns:180px minmax(0,1fr);gap:10px 16px;align-items:center}
 .personal-duel .hand{grid-column:1/-1;grid-row:1}
 .personal-duel .hand-zone>.energy{grid-column:1;grid-row:2;flex-direction:row;gap:12px;justify-content:flex-start;margin:0}
 .personal-duel .hand-zone .energy-orb{width:44px;height:44px;border-width:2px;flex:none}
 .personal-duel .hand-zone .energy-orb strong{font-size:28px}
 .personal-duel .hand-zone #energy-cap{margin:0;font-size:9px;white-space:nowrap}
 .personal-duel .hand-zone .energy .pile-orb{margin:0;min-width:48px;min-height:50px}
 .personal-duel .hand-zone>.turn-actions{grid-column:2;grid-row:2;flex-direction:row;justify-content:flex-end;align-items:stretch;gap:12px;margin:0}
 .personal-duel .hand-zone .turn-actions .pile-orb{align-self:stretch;margin:0;min-width:56px;min-height:50px}
 .personal-duel .hand-zone .turn-actions .button{min-width:132px;min-height:50px;font-size:12px;padding:12px 18px}
 .personal-duel .match-foot{padding-inline:0}
}
@media(max-width:800px){
 .personal-duel .hand-heading{padding:0 2px;margin:7px 0 0;gap:14px}
 .hand-zone{grid-template-columns:98px minmax(0,1fr);gap:9px 12px;align-items:center;padding-bottom:12px}
 .personal-duel .hand{grid-column:1/-1;grid-row:1;justify-content:flex-start;min-height:314px;margin-inline:-12px;padding:23px 15px 17px;gap:13px;scroll-snap-type:x proximity;scroll-padding-left:15px}
 .card{flex-basis:170px;width:170px;min-width:170px;min-height:266px;border-radius:10px;scroll-snap-align:start}
 .card-top{min-height:41px;padding:8px 7px 6px 40px}
 .card-cost{width:41px;height:41px;font-size:24px;left:-6px;top:-6px}
 .card-title{font-size:13px;letter-spacing:-.55px}
 .card-art{height:104px;min-height:104px;width:calc(100% - 14px);margin-inline:7px}
 .card-description{min-height:83px;padding:9px 9px 13px;gap:5px}
 .card-stat{font-size:14px}
 .card-stat .card-effect-number{font-size:23px}
 .card-rules{font-size:11px;line-height:1.5}
 .card-type{font-size:10px;padding:5px 9px;min-height:24px}
 .card-key{display:none}
 .personal-duel .hand-zone>.energy{grid-row:2;grid-column:1;display:grid;grid-template-columns:43px 46px;grid-template-rows:43px 16px;gap:2px 9px;align-items:center;justify-items:center;margin:0;min-width:0}
 .personal-duel .hand-zone .energy-orb{grid-column:1;grid-row:1;width:40px;height:40px;border-width:2px;box-shadow:0 0 0 3px #1a283a}
 .personal-duel .hand-zone .energy-orb strong{font-size:26px}
 .personal-duel .hand-zone #energy-cap{grid-column:1;grid-row:2;font-size:8px;line-height:1;margin:0;white-space:nowrap}
 .personal-duel .hand-zone .energy .pile-orb{grid-column:2;grid-row:1/3;margin:0;align-self:stretch;width:46px}
 .personal-duel .hand-zone>.turn-actions{grid-column:2;grid-row:2;display:grid;grid-template-columns:46px minmax(0,1fr) minmax(0,1fr);gap:9px;align-items:stretch;margin:0;min-width:0}
 .personal-duel .hand-zone .pile-orb{min-width:0;min-height:59px;padding:6px 3px;font-size:14px;border-radius:6px}
 .personal-duel .hand-zone .pile-orb b{font-size:13px;margin-left:2px}
 .personal-duel .hand-zone .pile-orb small{font-size:9px;margin-top:5px}
 .personal-duel .hand-zone .turn-actions .pile-orb{align-self:stretch;margin:0}
 .personal-duel .hand-zone .turn-actions .button{grid-area:auto;min-width:0;min-height:59px;font-size:12px;padding:10px 6px;line-height:1.4;border-radius:6px;white-space:normal}
 .personal-duel .hand-zone .turn-actions .primary{font-size:12px}
 .personal-duel .match-foot{padding-inline:0}
 .reward-grid{gap:18px 14px}
 .dialog-cards{grid-template-columns:repeat(auto-fit,170px);gap:20px 14px}
 .dialog-cards .card{width:170px;min-width:170px}
}
@media(max-width:520px){
 .personal-duel .hand-section{margin-top:15px}
 .personal-duel .hand-heading{padding-inline:14px;margin-bottom:0}
 .personal-duel .selected-info strong{font-size:11px;line-height:1.4}
 .personal-duel .selected-info>span{font-size:10px;line-height:1.5}
 .personal-duel .damage-preview{font-size:9px;max-width:110px;line-height:1.5}
 .hand-zone{grid-template-columns:98px minmax(0,1fr);padding:0 12px calc(12px + env(safe-area-inset-bottom));column-gap:10px}
 .personal-duel .hand{margin-inline:-12px;padding-inline:15px;min-height:314px}
 .personal-duel .hand-zone>.turn-actions{gap:6px;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr)}
 .personal-duel .hand-zone .turn-actions .button{font-size:11px;padding-inline:4px}
 .personal-duel .hand-zone .turn-actions .primary{font-size:11px}
 .personal-duel .match-foot{padding-inline:14px;margin-top:3px}
 .reward-grid{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;margin:18px -13px 0;padding:14px 13px 17px;gap:17px;scroll-snap-type:x proximity;scroll-padding-left:13px;scrollbar-width:thin;scrollbar-color:#52677c transparent}
 .dialog-cards{grid-template-columns:repeat(auto-fit,170px);gap:20px 14px}
 #dialog-body:has(.dialog-cards){padding:18px 12px}
}
@media(prefers-reduced-motion:reduce){.card{transition:none}}

/* Practice tutorial stays separate from the saved run and the battle layout. */
#tutorial-dialog.tutorial-dialog{width:min(840px,calc(100% - 24px));max-height:92dvh;margin:auto;padding:0;overflow:hidden;background:#111b29;border:1px solid #51647d;border-radius:12px;box-shadow:0 26px 90px #000b;color:#e8edf3}
#tutorial-dialog[open]{display:flex;flex-direction:column}
.tutorial-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:18px;flex:none;padding:17px 22px;background:#172435;border-bottom:1px solid #34465e}
.tutorial-header>div{min-width:0}
.tutorial-header .eyebrow{color:#d1ba8c;font-size:8px;letter-spacing:1.5px}
.tutorial-header h2{margin:5px 0 0;font-size:21px;font-weight:800;line-height:1.35;letter-spacing:-.5px;color:#f0f3f6}
.tutorial-skip{flex:none;min-height:42px;max-width:145px;padding:9px 12px;border:1px solid #53647b;border-radius:6px;background:#223247;color:#d9e2ee;font-size:11px;font-weight:600;line-height:1.4}
.tutorial-skip:hover:not(:disabled){background:#31465e;border-color:#93a8bc}
.tutorial-body{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:18px 22px 0;scrollbar-width:thin;scrollbar-color:#52677c transparent}
.tutorial-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;min-height:13px;margin-bottom:10px;font-size:10px;font-weight:700;line-height:1.3;color:#b9c9da}
.tutorial-progress b,.tutorial-progress strong,.tutorial-progress .current{color:#f1d49d}
.tutorial-progress ol{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.tutorial-progress li{display:flex;align-items:center;gap:5px;font-size:10px;line-height:1.3;white-space:nowrap;color:#9bb0c8}
.tutorial-progress li>span{display:grid;place-items:center;flex:none;width:23px;height:23px;border:1px solid #3e536b;border-radius:50%;background:#1c2c3e;font-size:10px;color:inherit}
.tutorial-progress li.completed{color:#c6e5d5}
.tutorial-progress li.completed>span{border-color:#668d7c;background:#284638}
.tutorial-progress li.current{color:#fff0ce}
.tutorial-progress li.current>span{border-color:#e1c592;background:#5c4c31}
.tutorial-coach h3{font-size:20px;font-weight:800;line-height:1.4;letter-spacing:-.45px;color:#f3f4f5}
.tutorial-coach p{margin-top:6px;font-size:13px;line-height:1.65;word-break:keep-all;color:#b7c6d8}
.tutorial-coach strong{color:#f4d8a4}
.tutorial-scoreboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}
.tutorial-scoreboard>div{min-width:0;padding:11px 13px;background:#1a2a3c;border:1px solid #344a61;border-radius:7px}
.tutorial-scoreboard span,.tutorial-scoreboard small{display:block;font-size:10px;line-height:1.35;color:#a9bbcf}
.tutorial-scoreboard strong,.tutorial-scoreboard b{display:block;margin-top:4px;font:800 21px/1.2 Arial,"Malgun Gothic",sans-serif;color:#f1e7d3;font-variant-numeric:tabular-nums}
.tutorial-scoreboard>div:last-child{background:#292a2b;border-color:#655a44}
.tutorial-scoreboard>div:last-child strong,.tutorial-scoreboard>div:last-child b{color:#f0cd8d}
.tutorial-intent{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;background:#27232d;border:1px solid #64434a;border-radius:6px;color:#e8c5bd;font-size:12px;line-height:1.5;word-break:keep-all}
.tutorial-intent strong,.tutorial-intent b{color:#ffe0bd;font-variant-numeric:tabular-nums}
.tutorial-hand{display:flex;align-items:stretch;justify-content:safe center;gap:16px;margin:3px -5px 0;padding:19px 9px 15px;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#52677c transparent;scroll-padding-inline:10px}
.tutorial-hand .card{flex-shrink:0}
.tutorial-hand .card:hover:not(:disabled),.tutorial-hand .card.selected{transform:translateY(-5px)}
.tutorial-hand .tutorial-card-target{outline:2px solid #f0d08f;outline-offset:3px;border-color:#f3d99e;box-shadow:0 5px 0 #060a11,0 0 20px #d9b86f24}
.tutorial-hand .tutorial-card-target.selected{outline-width:3px;outline-offset:3px}
.tutorial-actions{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:0 -22px;padding:13px 22px max(15px,env(safe-area-inset-bottom));background:#142132;border-top:1px solid #35475d;box-shadow:0 -8px 20px #101a2918}
.tutorial-energy{display:flex;align-items:baseline;gap:7px;flex:1;font-size:11px;line-height:1.4;color:#afc3d8}
.tutorial-energy strong,.tutorial-energy b{font-size:25px;font-weight:800;line-height:1.1;color:#dceaf2;font-variant-numeric:tabular-nums}
.tutorial-actions>.button{grid-area:auto;min-width:180px;min-height:48px;padding:12px 20px;font-size:13px;line-height:1.4;border-radius:6px}
.tutorial-actions>.button:only-child{width:100%}
.tutorial-summary{margin:17px 0;padding:18px;list-style:none;background:#1d302e;border:1px solid #4d7566;border-radius:8px;color:#d6e8df;font-size:13px;line-height:1.7}
.tutorial-summary h3{margin-bottom:8px;font-size:20px;line-height:1.4;color:#f1e5c6}
.tutorial-summary p{color:#bed2c8}
.tutorial-summary strong{color:#f2dcac}
.tutorial-summary ul{list-style:none;padding:0;margin:9px 0 0}
.tutorial-summary li{display:flex;align-items:baseline;gap:9px}
.tutorial-summary li strong{flex:none}
.tutorial-summary li span{color:#bed2c8}
.tutorial-summary li+li{margin-top:7px}
.tutorial-route{margin:16px 0}
.tutorial-route h3{font-size:15px;line-height:1.4;color:#dce5ef}
.tutorial-route ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 0;padding:0;list-style:none}
.tutorial-route li{padding:13px;border:1px solid #34495f;border-radius:7px;background:#192839;font-size:11px;line-height:1.6;color:#afc1d4}
.tutorial-route strong{display:block;margin-bottom:5px;font-size:13px;line-height:1.4;color:#e7d3aa}
.tutorial-route span{font-size:11px;line-height:1.65;color:#b0c1d2;word-break:keep-all}
.tutorial-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0;color:#e9e8e2;font-size:11px;line-height:1.5}
.tutorial-legend>div{padding:12px 11px;border:1px solid #ffffff30;border-radius:7px}
.tutorial-legend strong{display:block;font-size:14px;line-height:1.35;margin-bottom:5px;color:#fff3e5}
.tutorial-legend span{font-size:11px;line-height:1.5;word-break:keep-all}
.tutorial-legend .category-attack{background:#6c302e;border-color:#b66d5c}
.tutorial-legend .category-defense{background:#244765;border-color:#668fb1}
.tutorial-legend .category-skill{background:#28523f;border-color:#6c997c}
.tutorial-feedback{margin:10px 0 2px;padding:9px 11px;border-left:3px solid #c8ab76;background:#242c35;color:#ead8b4;font-size:12px;line-height:1.55}
@media(max-width:800px){
 .tutorial-header{padding:14px 17px;gap:12px}
 .tutorial-header h2{font-size:19px}
 .tutorial-body{padding:15px 17px 0}
 .tutorial-hand{justify-content:flex-start;margin-inline:-7px;padding:16px 10px 13px;gap:15px;scroll-snap-type:x proximity;scroll-padding-left:10px}
 .tutorial-hand .card{scroll-snap-align:start}
 .tutorial-actions{margin-inline:-17px;padding:12px 17px max(13px,env(safe-area-inset-bottom))}
}
@media(max-width:520px){
 #tutorial-dialog.tutorial-dialog{border-radius:10px}
 .tutorial-header{padding:11px 12px;gap:8px}
 .tutorial-header .eyebrow{font-size:7px;letter-spacing:1px}
 .tutorial-header h2{margin-top:4px;font-size:16px;line-height:1.3}
 .tutorial-skip{min-height:42px;max-width:111px;padding:8px;font-size:10px}
 .tutorial-body{padding:12px 12px 0}
 .tutorial-progress{margin-bottom:7px;font-size:9px;gap:6px}
 .tutorial-progress ol{gap:7px}
 .tutorial-progress li{gap:0;font-size:0}
 .tutorial-progress li>span{width:21px;height:21px;font-size:9px}
 .tutorial-coach h3{font-size:16px;line-height:1.4}
 .tutorial-coach p{margin-top:4px;font-size:12px;line-height:1.5}
 .tutorial-scoreboard{gap:6px;margin-top:10px}
 .tutorial-scoreboard>div{padding:8px 9px;border-radius:6px}
 .tutorial-scoreboard span,.tutorial-scoreboard small{font-size:9px}
 .tutorial-scoreboard strong,.tutorial-scoreboard b{margin-top:3px;font-size:17px}
 .tutorial-intent{gap:8px;margin-top:7px;padding:7px 9px;font-size:11px;line-height:1.4}
 .tutorial-hand{margin:2px -4px 0;padding:14px 8px 12px;gap:15px;scroll-padding-left:8px}
 .tutorial-actions{gap:10px;margin-inline:-12px;padding:10px 12px max(12px,env(safe-area-inset-bottom))}
 .tutorial-energy{font-size:10px;gap:5px}
 .tutorial-energy strong,.tutorial-energy b{font-size:23px}
 .tutorial-actions>.button{min-width:155px;min-height:46px;padding:10px 12px;font-size:12px}
 .tutorial-summary{margin:12px 0;padding:13px;font-size:12px;line-height:1.6}
 .tutorial-summary h3{font-size:18px}
 .tutorial-route{margin:12px 0}
 .tutorial-route ol{grid-template-columns:1fr;gap:7px;margin-top:8px}
 .tutorial-route li{padding:10px 12px}
 .tutorial-route strong{margin-bottom:3px;font-size:12px}
 .tutorial-legend{margin:10px 0;gap:6px;font-size:10px}
 .tutorial-legend>div{padding:9px 8px}
 .tutorial-legend strong{font-size:12px}
 .tutorial-legend span{font-size:10px;line-height:1.45}
 .tutorial-feedback{margin-top:7px;padding:7px 9px;font-size:11px;line-height:1.45}
}

/* Tutorial completion uses the same equipment cards as the shop. */
.starter-reward>h3{font-size:21px;line-height:1.4;letter-spacing:-.4px;color:#eef1f5}
.starter-reward>p{margin-top:8px;font-size:12px;line-height:1.7;word-break:keep-all;color:#b1bfd1}
.starter-reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}
.starter-reward-grid .shop-item{padding:15px 12px}
.starter-reward-grid .shop-item canvas{width:100%;height:100px;margin:6px auto 12px;object-fit:contain}
.starter-reward-grid .shop-item h4{font-size:14px;line-height:1.4}
.starter-reward-grid .shop-item p{font-size:12px;line-height:1.65}
.starter-reward-grid .shop-item button{min-height:42px;margin-top:14px;font-size:12px}
@media(max-width:520px){
 .starter-reward>h3{font-size:18px}
 .starter-reward>p{font-size:11px;line-height:1.6}
 .starter-reward-grid{grid-template-columns:1fr;gap:10px;margin-top:15px}
 .starter-reward-grid .shop-item{display:grid;grid-template-columns:92px minmax(0,1fr);grid-template-rows:auto auto 1fr auto;align-items:start;gap:4px 12px;min-height:160px;padding:12px;text-align:left}
 .starter-reward-grid .item-tag{grid-column:2;grid-row:1;margin:0;font-size:9px;line-height:1.3}
 .starter-reward-grid .shop-item canvas{grid-column:1;grid-row:1/4;align-self:center;width:92px;height:88px;margin:0}
 .starter-reward-grid .shop-item h4{grid-column:2;grid-row:2;margin:0;font-size:14px}
 .starter-reward-grid .shop-item p{grid-column:2;grid-row:3;margin:0;font-size:11px;line-height:1.55}
 .starter-reward-grid .shop-item button{grid-column:1/-1;grid-row:4;margin:6px 0 0;min-height:39px;padding:9px 12px;text-align:center;font-size:12px}
}

/* Upgrade preview compares cards without changing their battle presentation. */
.upgrade-preview>p{font-size:12px;line-height:1.7;word-break:keep-all;color:#b5c4d7}
.upgrade-preview .upgrade-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,196px));justify-content:center;align-items:stretch;gap:22px;margin:20px 0 23px;padding:0 4px}
.upgrade-preview .upgrade-card-side{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.upgrade-preview .upgrade-card-side h3{margin:0 0 14px;text-align:center;font-size:13px;font-weight:700;line-height:1.4;color:#b4c6d9}
.upgrade-preview .upgrade-card-side:last-child h3{color:#f0d29d}
.upgrade-preview .upgrade-card-side .card{flex:1 0 auto}
.upgrade-preview .upgrade-card-side .card:hover{transform:none}
.upgrade-preview .upgrade-card-side:last-child .card{outline:1px solid #dfc180;outline-offset:3px}
.upgrade-preview table.upgrade-changes,.upgrade-preview .upgrade-changes table{width:100%;table-layout:fixed;border-collapse:collapse;border:1px solid #3b4d64;background:#172638;font-size:12px;line-height:1.5}
.upgrade-preview .upgrade-changes th,.upgrade-preview .upgrade-changes td{padding:11px 12px;text-align:center;border-bottom:1px solid #33465e;overflow-wrap:anywhere}
.upgrade-preview .upgrade-changes th{background:#1e3044;color:#bccbdd;font-size:11px;font-weight:700}
.upgrade-preview .upgrade-changes th:first-child,.upgrade-preview .upgrade-changes td:first-child{width:40%;text-align:left}
.upgrade-preview .upgrade-changes td{color:#c5d1df;font-variant-numeric:tabular-nums}
.upgrade-preview .upgrade-changes td:last-child{background:#2b302f;color:#f2d49b;font-weight:700}
.upgrade-preview .upgrade-changes tbody tr:last-child td{border-bottom:0}
.upgrade-preview .upgrade-actions{position:sticky;bottom:-23px;z-index:3;display:grid;grid-template-columns:1fr 1.5fr;gap:11px;margin:20px -23px -23px;padding:14px 23px max(16px,env(safe-area-inset-bottom));border-top:1px solid #3a4d65;background:#142234;box-shadow:0 -7px 18px #0a132326}
.upgrade-preview .upgrade-actions .button{grid-area:auto;min-width:0;min-height:46px;padding:12px 14px;font-size:12px;line-height:1.4;border-radius:6px}
@media(max-width:520px){
 .upgrade-preview>p{font-size:11px;line-height:1.6}
 .upgrade-preview .upgrade-comparison{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,326px);gap:12px;margin:16px auto 20px;padding:0 3px}
 .upgrade-preview .upgrade-card-side h3{margin-bottom:12px;font-size:12px}
 .upgrade-preview .upgrade-card-side .card{width:100%;min-width:0;min-height:248px;border-radius:9px}
 .upgrade-preview .card-top{min-height:37px;padding:7px 5px 6px 33px}
 .upgrade-preview .card-cost{width:35px;height:35px;top:-5px;left:-5px;border-width:2px;font-size:21px}
 .upgrade-preview .card-title{font-size:11px;letter-spacing:-.4px;line-height:1.35}
 .upgrade-preview .card-art{height:87px;min-height:87px;width:calc(100% - 12px);margin-inline:6px}
 .upgrade-preview .card-type{min-height:23px;margin-top:4px;padding:4px 6px;font-size:9px}
 .upgrade-preview .card-category-icon{width:12px;height:12px}
 .upgrade-preview .card-subtype,.upgrade-preview .card-type>span:last-child{font-size:8px}
 .upgrade-preview .card-type>span:first-child{gap:3px}
 .upgrade-preview .card-description{min-height:85px;padding:8px 7px 11px;gap:4px;font-size:10px}
 .upgrade-preview .card-stat{font-size:12px;gap:5px}
 .upgrade-preview .card-stat .card-effect-number{font-size:21px}
 .upgrade-preview .card-rules{font-size:10px;line-height:1.45;letter-spacing:-.2px}
 .upgrade-preview .upgrade-changes th,.upgrade-preview .upgrade-changes td{padding:9px 8px;font-size:11px}
 .upgrade-preview .upgrade-changes th:first-child,.upgrade-preview .upgrade-changes td:first-child{width:38%}
 .upgrade-preview .upgrade-actions{bottom:-16px;gap:9px;margin:17px -16px -16px;padding:12px 16px max(14px,env(safe-area-inset-bottom))}
 .upgrade-preview .upgrade-actions .button{padding:11px 9px;font-size:12px}
}

/* Elite rewards are a single, explicit choice among three relics. */
.elite-relic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:14px;margin-top:22px;padding:3px}
.elite-relic-option{display:flex;flex-direction:column;align-items:stretch;gap:9px;min-width:0;min-height:277px;padding:16px 14px;border:1px solid #455b73;border-radius:9px;background:#192839;color:#d7e2ee;text-align:center;box-shadow:0 4px 0 #0a131f}
.elite-relic-option:hover:not(:disabled){background:#22364b;border-color:#92adc3;transform:translateY(-2px)}
.elite-relic-option .item-tag{margin:0;color:#bdcadd;font-size:9px;line-height:1.4;letter-spacing:.6px}
.elite-relic-option canvas{display:block;width:100%;height:110px;object-fit:contain;image-rendering:pixelated;background:#101b29;border:1px solid #33465d;border-radius:6px}
.elite-relic-option>strong{font-size:15px;line-height:1.4;letter-spacing:-.3px;color:#f0e9d9}
.elite-relic-option>p{flex:1;font-size:12px;line-height:1.7;word-break:keep-all;overflow-wrap:break-word;color:#b9c9db}
.elite-relic-select{display:block;margin-top:3px;padding:8px 10px;border:1px solid #4c647d;border-radius:5px;background:#263d53;font-size:11px;font-weight:700;line-height:1.4;color:#dae6ef}
.elite-relic-option.selected{outline:2px solid #e5c585;outline-offset:2px;border-color:#d6b779;background:#2a3034;box-shadow:0 4px 0 #0a131f,0 0 18px #c9ab6b18}
.elite-relic-option.selected .item-tag{color:#e7cb95}
.elite-relic-option.selected .elite-relic-select{background:#d2bd93;border-color:#e9d7b3;color:#202b36}
.elite-relic-option:focus-visible{outline:3px solid #f0d49b;outline-offset:3px}
@media(max-width:800px){
 .elite-relic-grid{gap:11px}
 .elite-relic-option{padding:13px 11px}
 .elite-relic-option>p{font-size:11px;line-height:1.6}
}
@media(max-width:520px){
 .elite-relic-grid{grid-template-columns:1fr;gap:12px;margin-top:16px;padding:3px}
 .elite-relic-option{display:grid;grid-template-columns:80px minmax(0,1fr);grid-template-rows:auto auto 1fr auto;align-items:start;gap:4px 11px;min-height:140px;padding:11px;text-align:left}
 .elite-relic-option .item-tag{grid-column:2;grid-row:1;font-size:8px;line-height:1.3}
 .elite-relic-option canvas{grid-column:1;grid-row:1/5;align-self:center;width:80px;height:84px}
 .elite-relic-option>strong{grid-column:2;grid-row:2;font-size:14px;line-height:1.35}
 .elite-relic-option>p{grid-column:2;grid-row:3;font-size:11px;line-height:1.5}
 .elite-relic-select{grid-column:2;grid-row:4;justify-self:start;margin-top:4px;padding:4px 12px;font-size:10px}
}
