@charset "UTF-8";
:root{color-scheme:dark;--bg:#0c1422;--panel:#142035;--line:#29354b;--ink:#eef3fa;--muted:#9aabc4;--mint:#9cf0d0;--coral:#ff9b8f;--gold:#ffda8c;font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 18% 0%,#1d3147 0%,transparent 50%),var(--bg);color:var(--ink);min-width:320px;min-height:100vh}button,input{font:inherit}button{border:1px solid var(--line);background:#1c2a41;color:var(--ink);border-radius:12px;min-height:44px;padding:10px 14px;cursor:pointer;transition:background .15s,transform .15s,border-color .15s}button:hover:not(:disabled){background:#293e55;border-color:#58708e}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:default;opacity:.46}button:focus-visible,input:focus-visible,canvas:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input{width:100%;min-height:48px;padding:12px 14px;background:#0f1a2d;border:1px solid #3a4961;border-radius:12px;color:var(--ink);outline:none}input::placeholder{color:#8191ad}h1,h2,p{margin:0}h2{font-size:20px;letter-spacing:.02em}a{color:var(--mint);text-decoration:none}[hidden]{display:none!important}.shell{max-width:1240px;margin:auto;padding:0 28px}.header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:34px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:800;font-size:22px;letter-spacing:.06em}.brand small{display:block;color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.27em;margin-top:3px}.connection{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.connection i{width:7px;height:7px;border-radius:50%;background:var(--gold)}.connection i.online{background:var(--mint);box-shadow:0 0 12px #9cf0d04d}.notice{padding:12px 16px;margin-bottom:18px;border:1px solid #b7776b;border-radius:12px;background:#382633;color:#ffd6c7;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.notice.good{background:#153b38;border-color:#428675;color:#ccffe9}.home{display:grid;grid-template-columns:1.4fr 1fr;gap:72px;align-items:center;min-height:660px;padding:10px 32px 34px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:.18em;color:var(--mint);margin-bottom:16px}.hero h1{font-size:clamp(32px,3.8vw,52px);line-height:1.4;letter-spacing:.015em;font-weight:850}.hero h1 em{font-style:normal;color:var(--mint)}.hero-copy{font-size:15px;line-height:1.9;color:var(--muted);margin-top:22px}.hero canvas{width:100%;max-width:540px;display:block;margin:10px 0;image-rendering:pixelated}.hero-chips{display:flex;gap:10px}.hero-chips span{font-size:11px;border:1px solid var(--line);border-radius:24px;padding:7px 12px;color:#bbc8d9}.panel{border:1px solid var(--line);border-radius:20px;background:linear-gradient(140deg,#18263b,#111c30);box-shadow:0 12px 40px #0002}.entry{padding:30px}.entry h2{font-size:24px;margin-bottom:26px}.entry label{display:block;font-size:12px;color:var(--muted);margin-bottom:9px}.entry>.primary{width:100%;margin-top:16px;display:flex;justify-content:space-between;align-items:center;font-weight:700}.primary{background:var(--mint);color:#12352c;border-color:var(--mint);font-weight:700}.primary:hover:not(:disabled){background:#c3ffe9;border-color:#c3ffe9}.divider{display:flex;align-items:center;gap:12px;margin:23px 0;font-size:11px;color:var(--muted)}.divider:before,.divider:after{content:"";height:1px;flex:1;background:var(--line)}.join-form{display:flex;gap:10px}.join-form input{letter-spacing:.12em;text-transform:uppercase;min-width:0}.join-form button{min-width:70px}.secondary{width:100%;margin-top:16px;display:flex;justify-content:space-between;align-items:center}.secondary span{font-size:11px;color:var(--muted)}.entry-note{font-size:11px;color:var(--muted);line-height:1.8;margin-top:22px}.resume-box{margin-top:16px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;display:grid;gap:8px}.subtle{background:transparent;color:var(--muted);font-size:12px}.arena-layout{display:grid;grid-template-columns:minmax(210px,1fr) minmax(300px,440px) minmax(220px,1fr);gap:20px;align-items:start}.room-panel,.deck-panel{padding:20px}.room-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.room-heading h2{font-size:14px}.room-heading h2 span{display:block;font-size:24px;color:var(--gold);letter-spacing:.13em;margin-top:4px;font-family:ui-monospace,monospace}.icon-button{padding:6px 10px;font-size:11px}.share-link{font-size:10px;color:var(--muted);line-height:1.6;margin:12px 0;overflow-wrap:anywhere}.players{display:grid;gap:10px;margin-top:18px}.player{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:12px 10px;border-radius:12px;min-height:62px}.player-mark{width:30px;height:30px;border-radius:9px;background:#284f4a;color:var(--mint);display:grid;place-items:center;font-weight:700;font-size:12px}.player.foe .player-mark{background:#50333c;color:var(--coral)}.player-copy{min-width:0}.player-copy strong{display:block;font-size:12px;overflow-wrap:anywhere}.player-copy small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.room-status{font-size:12px;color:var(--muted);line-height:1.7;margin:16px 0}.match-controls{display:grid;gap:8px}.instructions{margin-top:24px;border-top:1px solid var(--line);padding-top:16px;font-size:11px;color:var(--muted);line-height:1.9}.instructions summary{cursor:pointer;color:var(--ink);font-size:12px;font-weight:650}.instructions ol{padding-left:18px;margin:12px 0}.instructions li{margin-bottom:7px}.instructions p{margin-top:10px}.battle-column{min-width:0}.scoreboard{height:65px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#172439;border:1px solid var(--line);border-radius:16px 16px 0 0;font-size:11px}.foe-score{color:var(--coral)}.own-score{color:var(--mint)}.scoreboard b{font-size:17px;margin:0 3px}.clock{text-align:center}.clock strong{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:.08em}.clock small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.clock.overtime strong{color:var(--gold)}.arena-wrap{position:relative;overflow:hidden;border:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px;background:#152f38;aspect-ratio:5/7}#arena{width:100%;height:100%;display:block;touch-action:manipulation;cursor:crosshair;image-rendering:pixelated}.arena-overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;background:#0b1827a8;pointer-events:none;padding:26px;backdrop-filter:blur(3px)}.arena-overlay>div{background:#132338ef;border:1px solid #58707d;border-radius:18px;padding:28px 22px;width:100%;box-shadow:0 15px 40px #0004}.arena-overlay h2{font-size:24px;line-height:1.5}.arena-overlay p:last-child{color:#b9cbd9;font-size:13px;line-height:1.8;margin-top:12px}.lane-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.lane-shortcuts button{font-size:11px;min-height:38px;padding:6px}.energy-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}.energy-heading strong{color:var(--mint);font-size:22px;font-variant-numeric:tabular-nums}.energy-heading small{font-size:11px;color:var(--muted)}.energy-track{height:10px;background:#0c1524;border-radius:6px;overflow:hidden;margin-top:12px;position:relative}.energy-track:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 2px),#172439 calc(10% - 2px),#172439 10%)}.energy-track div{background:var(--mint);width:60%;height:100%;transition:width .1s}.energy-note{font-size:10px;color:var(--muted);margin-top:8px}.deck-heading{display:flex;justify-content:space-between;align-items:center;margin:25px 0 12px}.deck-heading h2{font-size:14px}.deck-heading>span{font-size:10px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.card{position:relative;padding:8px 5px;background:#1b2a40;min-width:0;border-radius:12px}.card.selected{border-color:var(--mint);background:#243e46;box-shadow:0 0 0 1px var(--mint)}.card.poor{opacity:.48}.card canvas{display:block;width:56px;height:48px;margin:0 auto 4px;image-rendering:pixelated}.card strong{display:block;font-size:12px;margin-bottom:4px}.card small{font-size:9px;color:var(--muted);display:block}.card .cost{position:absolute;top:5px;left:6px;font-size:11px;color:var(--mint);font-weight:800;background:#101c2ed9;border-radius:7px;padding:2px 5px}.card .stat{font-size:8px;margin-top:5px;color:#c1cfe0}.ability{width:100%;display:flex;align-items:center;gap:9px;padding:14px 10px;text-align:left;margin-top:12px;border-color:#65557c;background:#28273f}.ability.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.ability-icon{font-size:28px;color:var(--gold)}.ability strong{font-size:11px;display:block}.ability small{font-size:9px;color:#bbaccb;display:block;margin-top:4px}.ability>b{font-size:10px;color:var(--gold);margin-left:auto;white-space:nowrap}.selection-info{border-top:1px solid var(--line);margin-top:20px;padding-top:16px;min-height:100px}.selection-info strong{font-size:12px;color:var(--mint)}.selection-info p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:7px}.deck-note{font-size:10px;line-height:1.9;color:var(--muted);margin-top:16px}footer{display:flex;justify-content:space-between;padding:30px 0;color:#8191ad;font-size:10px;margin-top:30px;border-top:1px solid var(--line)}footer span{letter-spacing:.15em}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1000px) and (max-height:880px){.header{height:76px;margin-bottom:22px}.arena-layout{grid-template-columns:minmax(210px,1fr) minmax(300px,380px) minmax(230px,1fr)}.room-panel,.deck-panel{padding:18px}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.card strong{font-size:10px}.card canvas{width:48px;height:42px}.card small{font-size:8px}}
@media(max-width:1000px){.shell{padding:0 18px}.home{gap:32px;padding:10px 0 30px}.arena-layout{grid-template-columns:minmax(200px,1fr) minmax(300px,440px)}.deck-panel{grid-column:1;grid-row:2;margin-top:-10px}.room-panel{grid-column:1;grid-row:1}.battle-column{grid-column:2;grid-row:1/span 2}.instructions{margin-top:14px}.instructions ol{margin:8px 0}.deck-note{display:none}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.card canvas{width:48px;height:42px}.selection-info{min-height:0;margin-top:12px;padding-top:12px}}
@media(max-width:700px){.shell{padding:0 14px}.header{height:72px;margin-bottom:20px}.brand{font-size:19px}.brand img{width:32px;height:32px}.connection{font-size:10px}.home{grid-template-columns:1fr;gap:28px;min-height:0;padding:10px 0 20px}.hero h1{font-size:34px;line-height:1.4}.hero-copy{font-size:13px;margin-top:14px}.hero canvas{max-width:380px;margin:0 auto}.hero-chips{justify-content:center}.entry{padding:24px}.hero .eyebrow{font-size:10px;margin-bottom:10px}.arena-layout{display:flex;flex-direction:column;gap:12px;max-width:460px;margin:auto}.room-panel{width:100%;padding:14px}.room-panel>.eyebrow{margin-bottom:6px;font-size:9px}.room-heading h2{display:flex;align-items:center;gap:8px;font-size:11px}.room-heading h2 span{font-size:20px;margin-top:0}.share-link{display:none}.players{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.player{padding:8px;min-height:50px;gap:7px}.player-mark{width:24px;height:24px;border-radius:6px;font-size:10px;flex-shrink:0}.player-copy strong{font-size:10px}.player-copy small{font-size:9px}.room-status{margin:8px 0;font-size:10px}.match-controls{display:flex;flex-wrap:wrap;gap:6px}.match-controls button{font-size:11px;min-height:36px;padding:7px 12px}.match-controls .subtle{margin-left:auto}.instructions{margin-top:10px;padding-top:8px}.instructions summary{font-size:11px}.battle-column{width:100%}.scoreboard{height:54px;padding:0 14px}.clock strong{font-size:20px}.deck-panel{width:100%;padding:14px;margin-top:0}.deck-heading{margin:14px 0 9px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.card canvas{width:48px;height:42px;margin-bottom:3px}.card strong{font-size:11px}.card small{font-size:9px}.card .stat{font-size:8px}.ability{padding:11px 12px;min-height:60px}.ability strong{font-size:12px}.ability small{font-size:10px}.selection-info{padding-top:10px;margin-top:12px}.selection-info p{font-size:10px}.arena-overlay h2{font-size:21px}.arena-overlay p:last-child{font-size:11px}footer{margin-top:24px;font-size:9px;line-height:1.8;padding-bottom:calc(20px + env(safe-area-inset-bottom))}footer span{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* In-match mobile layout: battlefield and six playable cards stay visible without a long page scroll. */
@media(max-width:700px){
 body.match-live{height:100dvh;overflow:hidden}
 body.match-live .shell{height:100dvh;max-width:480px;padding:0 5px;display:flex;flex-direction:column}
 body.match-live .header,body.match-live footer{display:none}
 body.match-live main{flex:1;min-height:0;display:flex;flex-direction:column}
 body.match-live .arena-layout{flex:1;min-height:0;width:100%;margin:0;display:flex;flex-direction:column;gap:3px;overflow:hidden}
 body.match-live .room-panel{width:100%;flex:0 0 38px;padding:3px 8px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:4px}
 body.match-live .room-panel>.eyebrow,body.match-live .room-panel .players,body.match-live .room-panel .share-link,body.match-live .room-panel .room-status,body.match-live .room-panel .instructions{display:none}
 body.match-live .room-heading{min-width:0;gap:5px}
 body.match-live .room-heading h2{font-size:10px;gap:4px;white-space:nowrap}
 body.match-live .room-heading h2 span{font-size:14px;letter-spacing:.06em}
 body.match-live .icon-button{padding:2px 6px;min-height:29px;border-radius:7px;font-size:10px}
 body.match-live .match-controls{display:flex;gap:4px;flex-wrap:nowrap}
 body.match-live .match-controls button{min-height:29px;padding:3px 7px;font-size:10px;white-space:nowrap;margin:0}
 body.match-live .battle-column{width:100%;flex:0 0 auto}
 body.match-live .scoreboard{height:35px;padding:0 9px;border-radius:9px 9px 0 0}
 body.match-live .clock strong{font-size:16px}
 body.match-live .arena-wrap{height:min(calc((100vw - 10px)*1.4),calc(100dvh - 340px));width:auto;aspect-ratio:5/7;flex:none;align-self:center;border-radius:0 0 10px 10px}
 body.match-live .lane-shortcuts{margin-top:2px;gap:4px}
 body.match-live .lane-shortcuts button{min-height:27px;padding:3px 4px;border-radius:7px;font-size:10px}
 body.match-live .deck-panel{width:100%;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:5px 8px;border-radius:10px}
 body.match-live .energy-heading{font-size:10px}
 body.match-live .energy-heading strong{font-size:15px}
 body.match-live .energy-track{height:5px;margin-top:4px}
 body.match-live .energy-note,body.match-live .deck-heading,body.match-live .selection-info,body.match-live .deck-note{display:none}
 body.match-live .cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:5px}
 body.match-live .card{height:57px;min-height:0;padding:2px 2px 3px;border-radius:7px}
 body.match-live .card canvas{width:28px;height:24px;margin:0 auto 1px}
 body.match-live .card strong{font-size:9px;line-height:1.15;margin:0}
 body.match-live .card small{display:none}
 body.match-live .card .cost{top:2px;left:2px;font-size:9px;padding:1px 3px}
 body.match-live .ability{margin-top:5px;min-height:34px;padding:2px 6px;border-radius:8px;gap:6px}
 body.match-live .ability-icon{font-size:20px}
 body.match-live .ability strong{font-size:10px}
 body.match-live .ability small{font-size:9px;margin-top:1px}
 body.match-live .notice{position:fixed;z-index:10;top:4px;left:6px;right:6px;margin:0;box-shadow:0 4px 24px #0009}
}
