:root{color-scheme:dark;--ink: #f6efe4;--muted: #cbbba6;--lacquer: #140e0c;--panel: #241812;--line: rgba(240, 215, 162, .16);--wood: #e4c48a;--wood-dark: #c89a58;--board-edge: #5a391f;--piece-face: #fff8ea;--grid: #6a4528;--vermilion: #c44536;--green: #1f6b45;--gold: #f0d7a2;--accent: #c44536;--accent-soft: #ffb4a8;--skill-font: "Shippori Mincho", "Yu Mincho", serif;--body-font: "Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;font-family:var(--body-font)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;color:var(--ink);background:radial-gradient(ellipse at 50% 20%,#3a2a22 0%,var(--lacquer) 62%)}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app{width:min(480px,100%);min-height:100dvh;margin:0 auto;padding:calc(12px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));background:radial-gradient(ellipse at 80% 0%,color-mix(in srgb,var(--accent) 28%,transparent),transparent 42%),linear-gradient(180deg,rgba(255,244,220,.04),transparent 80px),#1a120f;box-shadow:0 0 0 1px #f0d7a214;display:flex;flex-direction:column;gap:8px;font-family:var(--body-font)}.top,.actions,.hand,.log{display:flex;align-items:center;justify-content:space-between;gap:8px}.top h1,.skill-name,.card h2,.cutin-skill{font-family:var(--skill-font);font-weight:700}.eyebrow{margin:0;color:var(--gold);font-size:12px;letter-spacing:.08em}h1,h2,p{margin:0}h1{font-size:28px;line-height:1.1}.turn{margin:0;padding:6px 10px;border:1px solid var(--line);background:var(--panel);font-size:14px}.turn.sente{box-shadow:inset 3px 0 #f0d7a2}.turn.gote{box-shadow:inset 3px 0 #c44536}.turn.check{color:#ffb4a8}.hand{position:relative;z-index:2;min-height:42px;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:8px;padding:6px 8px;border:1px solid var(--line);background:#241812a6;overflow:visible}.hand-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.hand-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;width:100%}.hand h2{font-size:13px;color:var(--muted);font-weight:500}.hand h2 .role{color:var(--accent-soft);margin-left:2px}.hand-stats{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--gold);font-variant-numeric:tabular-nums}.score-chip{opacity:.9}.charge-gems{display:inline-flex;align-items:flex-end;gap:5px;min-height:18px}.charge-pack{position:relative;display:inline-grid;place-items:end center;flex:0 0 auto}.charge-pack>i{display:block;background:linear-gradient(160deg,var(--accent-soft),var(--accent));box-shadow:0 0 0 1px #00000059}.charge-pack.one>i{width:7px;height:10px;clip-path:polygon(50% 0,100% 30%,80% 100%,20% 100%,0 30%)}.charge-pack.five{width:16px;height:15px}.charge-pack.five>i{position:absolute;width:11px;height:12px;clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);background:linear-gradient(160deg,#ffe7a0,var(--accent))}.charge-pack.five>i:first-child{left:0;bottom:0;opacity:.78;transform:translate(-1px,1px) scale(.92)}.charge-pack.five>i:last-child{right:0;bottom:1px;z-index:1}.charge-pack.ten{width:22px;height:18px}.charge-pack.ten>i{position:absolute;width:12px;height:13px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,#fff4c8,#e85d4c 55%,#7a1f18)}.charge-pack.ten>i:nth-child(1){left:0;bottom:0;opacity:.7;transform:scale(.9)}.charge-pack.ten>i:nth-child(2){left:5px;bottom:3px;z-index:1}.charge-pack.ten>i:nth-child(3){right:0;bottom:0;opacity:.82;transform:scale(.92);z-index:0}.charge-pack.empty{width:7px;height:10px;opacity:.28;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);border-radius:2px;background:transparent}.hand.active h2{color:var(--gold)}.ply-line{margin:0;font-size:12px;color:var(--muted);text-align:right}.seat-note{margin:0;font-size:12px;color:var(--muted)}.muted-timer{opacity:.7}.option-row{display:flex;flex-wrap:wrap;gap:6px}.option-row button{border:1px solid var(--line);background:#2a1d16;min-height:34px;padding:0 10px}.option-row button[aria-pressed=true]{background:color-mix(in srgb,var(--accent, #c44536) 30%,#2a1d16);color:var(--accent-soft, var(--gold))}.pieces{display:flex;flex-wrap:wrap;gap:6px}.hand button,.actions button,.card>button{border:1px solid var(--line);background:#2a1d16;min-height:36px;padding:0 10px}.hand button{display:inline-flex;align-items:baseline;gap:4px}.hand button span{color:var(--gold);font-size:12px}.hand button.selected{outline:2px solid var(--vermilion)}.hand button:disabled{opacity:.45}.hand-piece-btn{position:relative;display:inline-flex!important;align-items:flex-end;gap:2px;min-width:44px;min-height:48px!important;padding:4px 6px!important;background:transparent!important;border-color:transparent!important}.hand-piece-btn.selected{outline:2px solid var(--vermilion)}.hand-piece-stack{position:relative;width:34px;height:40px;display:block}.hand-tile{position:absolute;left:0;top:auto;bottom:0;width:32px;height:38px;transform:translate(calc(var(--stack, 0) * 3px),calc(var(--stack, 0) * -3px));font-size:16px;pointer-events:none}.hand-tile.gote{transform:translate(calc(var(--stack, 0) * 3px),calc(var(--stack, 0) * -3px)) rotate(180deg)}.app[data-view=gote] .hand-tile.gote{transform:translate(calc(var(--stack, 0) * 3px),calc(var(--stack, 0) * -3px))}.app[data-view=gote] .hand-tile.sente{transform:translate(calc(var(--stack, 0) * 3px),calc(var(--stack, 0) * -3px)) rotate(180deg)}.hand-tile .kanji{font-size:15px}.hand-count{position:absolute!important;right:2px;top:2px;min-width:1.1em;padding:0 3px;border-radius:999px;background:#2a1d16;color:var(--gold)!important;font-size:11px!important;line-height:1.3}.board-wrap{width:min(100%,max(260px,calc(100dvh - 300px)));margin-inline:auto;flex:1 1 auto}.top-slim{gap:8px;align-items:center}.top-slim .turn{flex:1 1 auto;min-width:0}.top-slim .ply-line{text-align:left;white-space:nowrap}.board-frame{width:100%}.file-row{display:grid;color:var(--muted);font-size:11px;text-align:center;font-family:var(--skill-font)}.board-with-ranks{display:grid;grid-template-columns:1fr 1.1em;gap:2px;align-items:stretch}.rank-col{display:grid;color:var(--muted);font-size:11px;text-align:center;font-family:var(--skill-font);align-items:center}.board{position:relative;width:100%;aspect-ratio:1;display:grid;overflow:hidden;background:radial-gradient(circle at 20% 15%,color-mix(in srgb,var(--accent-soft) 35%,transparent),transparent 40%),linear-gradient(180deg,rgba(255,236,196,.35),transparent 28%),var(--wood);border:3px solid var(--board-edge);box-shadow:0 10px 24px #00000059;container-type:size}.sq{position:relative;border:0;padding:0;background:transparent;box-shadow:inset 0 0 0 .5px var(--grid);display:block;min-width:0;min-height:0}.sq.last{background:#7a4a1238}.sq.last-from{background:#ffc45038;box-shadow:inset 0 0 0 .5px var(--grid),inset 0 0 0 2px #e0a030a6}.sq.last-to{background:#ffc4507a;box-shadow:inset 0 0 0 .5px var(--grid),inset 0 0 0 3px #e0a030}.sq.bunshin-pick{background:#2a6f9773;box-shadow:inset 0 0 0 .5px var(--grid),inset 0 0 0 2px #2a6f97}.tile.emphasize{outline:2px solid #ffb020;filter:drop-shadow(0 0 4px rgba(255,176,32,.75)) brightness(1.08);z-index:1}.sq.skill-flash{animation:skill-pulse 1.2s ease;box-shadow:inset 0 0 0 .5px var(--grid),inset 0 0 0 3px var(--accent)}@keyframes skill-pulse{0%,to{filter:brightness(1)}40%{filter:brightness(1.25)}}.sq.chosen{background:#fff4d68c}.sq.quiet{background:radial-gradient(circle at center,var(--green) 0 13%,transparent 14%)}.sq.waza{background:radial-gradient(circle at center,#2a6f97 0 13%,transparent 14%)}.sq.capture{box-shadow:inset 0 0 0 .5px var(--grid),inset 0 0 0 2px var(--vermilion)}.sq.capture.waza{background:transparent;box-shadow:inset 0 0 0 .5px var(--grid),inset 0 0 0 2px #2a6f97}.sq.threat{box-shadow:inset 0 0 0 .5px var(--grid),inset 0 0 0 2px color-mix(in srgb,var(--accent) 80%,#ff9800)}.sq.check .tile{box-shadow:0 0 0 2px var(--vermilion)}.tile{position:absolute;left:11%;top:6%;width:78%;height:88%;display:grid;place-items:center;background:linear-gradient(180deg,var(--piece-face) 0%,color-mix(in srgb,var(--piece-face) 70%,#e7d0a4) 100%);clip-path:polygon(50% 1%,86% 16%,97% 100%,3% 100%,14% 16%);color:#24180f;filter:drop-shadow(0 1px 0 rgba(70,40,12,.35))}.tile.gote{transform:rotate(180deg)}.app[data-view=gote] .tile.gote{transform:none}.app[data-view=gote] .tile.sente{transform:rotate(180deg)}.tile.promoted{color:#9d1c1c}.kanji{font-family:var(--skill-font);font-size:8.2cqmin;line-height:1;font-weight:700}.seal{position:absolute;bottom:7%;font-size:4.2cqmin;color:var(--vermilion);font-family:Shippori Mincho,serif}.skill{min-height:4.6rem;padding:8px 10px;background:var(--panel);border:1px solid var(--line)}.skill-name{font-size:18px}.skill .uses{margin-left:8px;color:var(--gold);font-family:Zen Kaku Gothic New,sans-serif;font-size:12px;font-weight:500}.skill p:last-of-type{margin-top:2px;color:var(--muted);font-size:14px;line-height:1.45}.skill-actions{display:flex;flex-wrap:wrap;gap:6px}.skill-actions:not(:empty){margin-top:8px}.skill-actions button{border:1px solid var(--line);background:#2a1d16;min-height:34px;padding:0 10px}.skill-actions button[aria-pressed=true]{background:#1d3d52;color:#d7ecf8}.log{justify-content:flex-start;overflow-x:auto;min-height:28px;font-size:13px}.log span{flex:0 0 auto;padding:2px 6px;background:#2a1d16}.log span.latest{outline:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 28%,#2a1d16);font-weight:700}.by-gote{color:#ffd0c8}.muted{color:var(--muted);font-size:13px}.actions{display:grid;grid-template-columns:repeat(4,1fr)}.actions button{padding:8px 4px;font-size:14px}.actions button:disabled{opacity:.4}.actions button[aria-pressed=true]{background:#3d2a16;color:var(--gold)}.start-actions{grid-template-columns:1fr 1fr;margin-top:auto}.skill-actions .recommend{background:color-mix(in srgb,var(--accent) 35%,#2a1d16);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.suggest-panel{margin-top:8px;display:flex;flex-direction:column;gap:6px}.suggest-title{margin:0;font-size:12px;color:var(--gold)}.suggest-actions{display:flex;flex-wrap:wrap;gap:6px}.suggest-pick{border:1px solid var(--line);background:#2a1d16;min-height:36px;padding:0 10px;display:inline-flex;align-items:center;gap:6px}.suggest-num{font-family:var(--skill-font);font-weight:700;font-size:15px}.suggest-pick.suggest-0,.sq.suggest-0.suggest-to{--suggest: #5ec8ff}.suggest-pick.suggest-1,.sq.suggest-1.suggest-to{--suggest: #7dff9a}.suggest-pick.suggest-2,.sq.suggest-2.suggest-to{--suggest: #ffd76a}.suggest-pick.suggest-0{border-color:#5ec8ff;color:#d7f3ff}.suggest-pick.suggest-1{border-color:#7dff9a;color:#d9ffe4}.suggest-pick.suggest-2{border-color:#ffd76a;color:#fff0c2}.sq.suggest-to{outline:2px solid var(--suggest, #5ec8ff);outline-offset:-2px;box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--suggest, #5ec8ff) 22%,transparent);z-index:1}.sq.suggest-from{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--suggest, #5ec8ff) 80%,white)}.sq.suggest-from.suggest-0{--suggest: #5ec8ff}.sq.suggest-from.suggest-1{--suggest: #7dff9a}.sq.suggest-from.suggest-2{--suggest: #ffd76a}.suggest-badges{position:absolute;left:2px;top:2px;display:flex;flex-wrap:wrap;gap:2px;z-index:2;pointer-events:none}.suggest-badge,.suggest-from-tag{font-family:var(--skill-font);font-size:11px;font-weight:700;line-height:1;padding:2px 3px;border-radius:3px;color:#1a120f;background:var(--suggest, #5ec8ff)}.suggest-badge.suggest-0,.suggest-from-tag.suggest-0{--suggest: #5ec8ff}.suggest-badge.suggest-1,.suggest-from-tag.suggest-1{--suggest: #7dff9a}.suggest-badge.suggest-2,.suggest-from-tag.suggest-2{--suggest: #ffd76a}.suggest-from-tag{position:absolute;right:2px;bottom:2px;opacity:.85;pointer-events:none}.status-stack{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.timer{margin:0;min-width:3.5em;text-align:center;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 30%,#2a1d16);color:var(--accent-soft);font-size:13px;font-variant-numeric:tabular-nums}.picker{display:flex;flex-direction:column;gap:10px;flex:1}.picker h2{font-family:var(--skill-font);font-size:22px}.cast{display:grid;grid-template-columns:1fr;gap:8px}.cast-card{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#2a1d16;padding:10px;min-height:64px}.cast-card.selected{outline:2px solid var(--accent, var(--gold));background:color-mix(in srgb,var(--accent, #c44536) 18%,#2a1d16)}.cast-art{grid-row:1 / span 2;width:48px;height:48px;border-radius:14px;object-fit:cover;border:1.5px solid var(--accent, var(--gold))}.cast-mark{grid-row:1 / span 2;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-family:var(--skill-font);font-size:22px;background:color-mix(in srgb,var(--accent, #c44536) 40%,#3a2418);color:var(--accent-soft, var(--gold))}.cast-card strong{font-size:16px}.cast-card em{grid-column:2;font-style:normal;color:var(--muted);font-size:12px}.cutin{position:fixed;inset:0;z-index:5;display:grid;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;gap:8px;padding:calc(20px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--accent) 42%,#1a1020),transparent 58%),linear-gradient(180deg,#08060ec7,#08060e8c 40%,#08060ed9);animation:cutin-fade 1.7s ease both}.cutin:before{content:"";position:absolute;left:-20%;top:28%;width:140%;height:38%;background:linear-gradient(100deg,transparent 0%,color-mix(in srgb,var(--accent) 75%,#ff3b3b) 22%,color-mix(in srgb,var(--accent) 55%,#1a1020) 78%,transparent 100%);transform:rotate(-18deg);opacity:.85;pointer-events:none;z-index:0}.cutin>*{position:relative;z-index:1}.cutin-banner{width:min(420px,94vw);padding:10px 14px;border:2px solid color-mix(in srgb,var(--accent-soft) 70%,#fff);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,#1a120f),#1a120f 85%);box-shadow:0 8px 24px #00000073;transform:skew(-6deg);text-align:center}.cutin-banner>*{transform:skew(6deg)}.cutin-bust{width:min(300px,78vw);max-height:52dvh;display:grid;place-items:end center;filter:drop-shadow(0 12px 18px rgba(0,0,0,.45));animation:cutin-bust-in .35s ease both}.cutin-figure{width:100%;height:auto;max-height:48dvh}.cutin-figure.cutin-art{width:min(300px,78vw);max-height:52dvh;object-fit:contain;border-radius:8px;filter:drop-shadow(0 12px 18px rgba(0,0,0,.45))}.cutin-figure .fig-torso,.cutin-figure .fig-head{fill:var(--piece-face, #fff4e5);stroke:var(--accent);stroke-width:2.5}.cutin-figure .fig-limb{stroke:var(--accent-soft);fill:none;stroke-width:7;stroke-linecap:round}.cutin-figure .fig-eye{fill:#24180f}.cutin-figure .fig-mouth{stroke:#24180f;stroke-width:2.5}.cutin-figure .fig-flare{fill:var(--accent);opacity:.9}.cutin[data-pose=heavy] .cutin-banner{border-color:#fff;box-shadow:0 0 0 2px var(--accent),0 12px 28px #00000080}.cutin-who{margin:4px 0 0;color:var(--accent-soft);font-size:13px;letter-spacing:.12em;display:flex;gap:8px;justify-content:center;align-items:baseline}.cutin-cost{font-size:11px;opacity:.85;letter-spacing:0}.cutin-skill{margin:0;font-size:clamp(28px,8vw,42px);line-height:1.05;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.35)}.cutin-shout{width:min(420px,94vw);margin:0;padding:12px 14px;text-align:center;color:#fff;font-size:clamp(18px,5vw,24px);font-family:var(--skill-font);background:#0c0810b8;border:1px solid color-mix(in srgb,var(--accent-soft) 50%,transparent);box-shadow:0 8px 20px #00000059}.cutin-enemy .cutin-banner{border-color:#c9d4ff;background:linear-gradient(90deg,#2a3348,#1a120f 85%)}.cutin-enemy .cutin-who{color:#c9d4ff}@keyframes cutin-fade{0%{opacity:0;transform:translate(-12px) scale(1.02)}10%{opacity:1;transform:translate(0) scale(1)}82%{opacity:1}to{opacity:0}}@keyframes cutin-bust-in{0%{opacity:0;transform:translateY(18px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.cheer{position:relative;flex:0 0 auto;width:64px;pointer-events:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));border-radius:10px;padding:2px;background:color-mix(in srgb,var(--cheer-line, #c44536) 18%,transparent);box-shadow:inset 0 0 0 1.5px var(--cheer-line, #c44536);transition:width .35s ease,transform .35s ease}.cheer.compact{width:56px}.cheer-svg{width:100%;height:auto;display:block;animation:cheer-breathe-svg 3.2s ease-in-out infinite;transform-origin:50% 90%}.cheer-art{width:100%;height:auto;display:block;border-radius:0;object-fit:contain;aspect-ratio:1;background:transparent;transform-origin:50% 85%;animation:cheer-breathe 3.2s ease-in-out infinite}.cheer.has-art{background:transparent;box-shadow:none;padding:0;overflow:visible;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}.cheer.has-art.appeal{z-index:6;width:108px}.cheer.compact.has-art.appeal{width:96px}.hand:has(.cheer.appeal){z-index:5}.cheer.has-art.mood-ready:not(.appeal) .cheer-art{animation:cheer-breathe-ready 2.4s ease-in-out infinite}.cheer.has-art.mood-doki:not(.appeal) .cheer-art{animation:cheer-breathe-tense 2.2s ease-in-out infinite}.cheer.has-art.mood-surprise:not(.appeal) .cheer-art{animation:cheer-breathe-surprise 2.6s ease-in-out infinite}.cheer.has-art.mood-think .cheer-art{animation:cheer-breathe 3.6s ease-in-out infinite}.cheer.mood-ready .cheer-svg{animation:cheer-breathe-ready-svg 2.4s ease-in-out infinite}.cheer.mood-doki .cheer-svg{animation:cheer-breathe-tense-svg 2.2s ease-in-out infinite}.cheer.mood-surprise .cheer-svg{animation:cheer-breathe-surprise-svg 2.6s ease-in-out infinite}.cheer.mood-think .cheer-svg{animation:cheer-breathe-svg 3.6s ease-in-out infinite}.cheer-arm{transform-box:fill-box;transform-origin:top center}.cheer-arm-l{animation:cheer-arm-sway-l 2.8s ease-in-out infinite}.cheer-arm-r{animation:cheer-arm-sway-r 3.1s ease-in-out infinite}@keyframes cheer-breathe{0%,to{transform:scale(1) rotate(-.7deg)}50%{transform:scale(1.015,.978) rotate(.7deg)}}@keyframes cheer-breathe-ready{0%,to{transform:scale(1) rotate(-1.1deg)}50%{transform:scale(1.022,.972) rotate(1.3deg)}}@keyframes cheer-breathe-tense{0%,to{transform:scale(1) rotate(0)}40%{transform:scale(1.012,.988) rotate(-.9deg)}70%{transform:scale(.995,1.006) rotate(.9deg)}}@keyframes cheer-breathe-surprise{0%,to{transform:scale(1) rotate(0)}30%{transform:scale(1.018,.986) rotate(1.1deg)}60%{transform:scale(1) rotate(-1.1deg)}}@keyframes cheer-appeal-near{0%,to{transform:scale(1.08,1.02) rotate(-2deg) translateY(-6px)}50%{transform:scale(1.18,1.1) rotate(2.2deg) translateY(-14px)}}@keyframes cheer-appeal-far{0%,to{transform:scale(1.08,1.02) rotate(2deg) translateY(6px)}50%{transform:scale(1.18,1.1) rotate(-2.2deg) translateY(14px)}}.hand.seat-near .cheer.has-art.appeal .cheer-art{animation:cheer-appeal-near 1.8s ease-in-out infinite}.hand.seat-far .cheer.has-art.appeal .cheer-art{animation:cheer-appeal-far 1.8s ease-in-out infinite}@keyframes cheer-breathe-svg{0%,to{transform:scale(1) rotate(-.8deg)}50%{transform:scale(1.02,.98) rotate(.8deg)}}@keyframes cheer-breathe-ready-svg{0%,to{transform:scale(1) rotate(-1.2deg)}50%{transform:scale(1.03,.975) rotate(1.4deg)}}@keyframes cheer-breathe-tense-svg{0%,to{transform:scale(1) rotate(0)}40%{transform:scale(1.015,.99) rotate(-1deg)}70%{transform:scale(.995,1.008) rotate(1deg)}}@keyframes cheer-breathe-surprise-svg{0%,to{transform:scale(1) rotate(0)}30%{transform:scale(1.02,.985) rotate(1.2deg)}60%{transform:scale(1) rotate(-1.2deg)}}@keyframes cheer-arm-sway-l{0%,to{transform:rotate(0)}50%{transform:rotate(-6deg)}}@keyframes cheer-arm-sway-r{0%,to{transform:rotate(0)}50%{transform:rotate(7deg)}}.cheer-body,.cheer-head{fill:var(--cheer-skin, #fff4e5);stroke:var(--cheer-line, #c44536);stroke-width:2}.cheer-eye{fill:#24180f;stroke:#24180f}.cheer-mouth{stroke:#24180f}.cheer-arm path{stroke:var(--cheer-line, #c44536)}.cheer-label{fill:var(--cheer-line, #c44536);font-size:14px;font-family:var(--skill-font);font-weight:700}.cheer-bang{fill:var(--cheer-line, #c44536);font-size:16px;font-weight:700;font-family:var(--skill-font)}.cheer-bubble{margin:0;text-align:center;font-size:10px;color:var(--cheer-soft, #ffb4a8);background:#140e0cbf;border:1px solid color-mix(in srgb,var(--cheer-line, #c44536) 45%,transparent);padding:1px 3px;white-space:nowrap}@keyframes cheer-idle{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}@keyframes cheer-jump{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.05)}}@keyframes cheer-doki{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-2px) scale(1.06)}55%{transform:translateY(0) scale(.98)}70%{transform:translateY(-3px) scale(1.04)}}@keyframes cheer-surprise{0%,to{transform:translate(0) scale(1) rotate(0)}25%{transform:translate(-3px,-6px) scale(1.08) rotate(-6deg)}55%{transform:translate(3px,-2px) scale(1.04) rotate(5deg)}}@keyframes cheer-think{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(3deg)}}.cheer[data-character=yusha]{--cheer-skin: #ffb19f;--cheer-line: #d63b2c;--cheer-soft: #ffb4a8}.cheer[data-character=senshi]{--cheer-skin: #9fd9b0;--cheer-line: #1f7a3d;--cheer-soft: #b7ecc8}.cheer[data-character=miko]{--cheer-skin: #ffe08a;--cheer-line: #9a6b00;--cheer-soft: #ffe7a0}.cheer[data-character=touzoku]{--cheer-skin: #8fd9cb;--cheer-line: #1f6f5c;--cheer-soft: #b8ebe0}.cheer[data-character=shonin]{--cheer-skin: #d4b0ff;--cheer-line: #6b3d9a;--cheer-soft: #e2c8ff}.cutin[data-character=yusha] .fig-torso{fill:#ffd0c4}.cutin[data-character=senshi] .fig-torso{fill:#cfe8d4}.cutin[data-character=miko] .fig-torso{fill:#fff0c8}.cutin[data-character=touzoku] .fig-torso{fill:#c9ebe3}.cutin[data-character=shonin] .fig-torso{fill:#e8d4ff}.match-banner{position:fixed;inset:0;z-index:6;border:0;margin:0;padding:24px;display:grid;place-content:center;gap:10px;background:#0a07058c;cursor:pointer}.match-banner-label{font-family:var(--skill-font);font-size:clamp(48px,14vw,84px);font-weight:700;color:var(--gold);text-shadow:0 4px 0 rgba(0,0,0,.45);letter-spacing:.08em;animation:match-banner-pop .45s ease both}.match-banner-sub{display:grid;gap:4px;justify-items:center;color:var(--ink);font-size:16px}.match-banner-sub em{font-style:normal;font-size:12px;color:var(--muted)}@keyframes match-banner-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.sq.counter-focus{outline:3px solid #ffd76a;outline-offset:-3px;box-shadow:inset 0 0 0 999px #ffd76a38;z-index:1}.sq.counter-from{box-shadow:inset 0 0 0 2px #ffffffb3}.sq.counter-to{outline:3px solid #ffd76a;outline-offset:-3px;box-shadow:inset 0 0 0 999px #ffd76a47}.sq.counter-bounce{outline:3px solid #7ec8ff;outline-offset:-3px;box-shadow:inset 0 0 0 999px #7ec8ff38}.sq.counter-revive{outline:3px solid #9dffb0;outline-offset:-3px;box-shadow:inset 0 0 0 999px #9dffb033}.counter-badge{position:absolute;z-index:3;min-width:1.35em;padding:1px 3px;border-radius:4px;font-size:11px;font-weight:700;line-height:1.2;pointer-events:none;color:#1a120f;background:#ffd76a}.counter-badge.from{left:2px;top:2px;background:#fff}.counter-badge.to{right:2px;bottom:2px}.counter-badge.bounce{right:2px;top:2px;background:#7ec8ff}.counter-badge.revive{left:2px;bottom:2px;background:#9dffb0}.fx-preview-row{display:flex;flex-wrap:wrap;gap:6px}.fx-preview-row button{min-height:36px;padding:0 10px;font-size:12px}.fx-preview-stage{margin-top:10px;padding:12px;border:1px solid var(--line);background:#140e0a8c;display:flex;flex-direction:column;align-items:center;gap:8px}.fx-preview-cell{position:relative;width:88px;height:88px;container-type:size;background:linear-gradient(180deg,#d4a574,#b07d45);border:2px solid #5a391f;overflow:hidden}.fx-preview-cell .tile{position:absolute;left:11%;top:6%;width:78%;height:88%}.fx-preview-stage p{margin:0;font-size:13px;color:var(--gold)}.sq.cpu-from,.sq.hand-from{box-shadow:inset 0 0 0 2px #ffffff8c}.sq.cpu-to,.sq.hand-to{box-shadow:inset 0 0 0 3px var(--accent-soft)}.piece-hand{position:absolute;left:var(--from-x);top:var(--from-y);width:48px;height:48px;margin:-24px 0 0 -24px;z-index:4;pointer-events:none;animation:piece-hand-near .9s ease forwards;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45));transform-origin:50% 50%}.piece-hand.seat-far{animation-name:piece-hand-far}.piece-hand.drop{animation-name:piece-hand-near-drop}.piece-hand.seat-far.drop{animation-name:piece-hand-far-drop}.piece-hand-svg{width:100%;height:100%;display:block}.piece-hand .hand-palm{fill:#f3d2b3;stroke:#5a391f;stroke-width:2}.piece-hand .hand-grip{stroke:#5a391f;stroke-width:3;stroke-linecap:round;opacity:.7}@keyframes piece-hand-near{0%{left:var(--from-x);top:var(--from-y);transform:scale(1.05) rotate(-12deg);opacity:0}18%{opacity:1;transform:scale(1.1) rotate(-18deg)}45%{left:var(--from-x);top:var(--from-y);transform:scale(.95) rotate(-6deg)}to{left:var(--to-x);top:var(--to-y);transform:scale(1) rotate(8deg);opacity:1}}@keyframes piece-hand-far{0%{left:var(--from-x);top:var(--from-y);transform:scaleY(-1) scale(1.05) rotate(-12deg);opacity:0}18%{opacity:1;transform:scaleY(-1) scale(1.1) rotate(-18deg)}45%{left:var(--from-x);top:var(--from-y);transform:scaleY(-1) scale(.95) rotate(-6deg)}to{left:var(--to-x);top:var(--to-y);transform:scaleY(-1) scale(1) rotate(8deg);opacity:1}}@keyframes piece-hand-near-drop{0%{left:50%;top:108%;transform:scale(1.1) rotate(-20deg);opacity:0}30%{opacity:1}to{left:var(--to-x);top:var(--to-y);transform:scale(1) rotate(6deg);opacity:1}}@keyframes piece-hand-far-drop{0%{left:50%;top:-12%;transform:scaleY(-1) scale(1.1) rotate(-20deg);opacity:0}30%{opacity:1}to{left:var(--to-x);top:var(--to-y);transform:scaleY(-1) scale(1) rotate(6deg);opacity:1}}.sheet-counter{background:#0a07058c}.counter-hint{margin:6px 0 0;font-size:12px;color:var(--gold)}.actions .ghost{background:transparent;border-style:dashed}.counter-peek-bar{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--gold);background:#241812f2}.counter-peek-bar p{margin:0;font-size:13px;color:var(--gold)}.counter-peek-bar button{border:1px solid var(--line);background:#2a1d16;min-height:36px;padding:0 12px}.app[data-character=yusha] .tile{clip-path:polygon(50% 0%,90% 18%,96% 100%,4% 100%,10% 18%)}.app[data-character=senshi] .tile{border-radius:4px;clip-path:none}.app[data-character=miko] .tile{clip-path:polygon(50% 2%,84% 14%,96% 100%,4% 100%,16% 14%)}.app[data-character=touzoku] .tile{clip-path:polygon(12% 0,88% 0,100% 18%,92% 100%,8% 100%,0 18%)}.app[data-character=shonin] .tile{clip-path:polygon(50% 0%,100% 28%,82% 100%,18% 100%,0 28%)}.sheet{position:fixed;inset:0;background:#0a0705b8;display:grid;place-items:center;padding:20px;z-index:2}.card{width:min(420px,100%);background:#241812;border:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:12px}.help ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-height:50dvh;overflow:auto}.help li{display:block;font-size:14px;line-height:1.45}.help li span{color:var(--gold)}.help li strong{margin:0 .45em}.help li em{display:block;margin-top:2px;font-style:normal;color:var(--muted)}.note{color:var(--muted);font-size:13px;line-height:1.5}.tile.stunned{filter:saturate(.7) brightness(.92)}.chain-seal{position:absolute;inset:8% 12%;border:2px solid color-mix(in srgb,#6a7a8a 70%,#c9d4e0);border-radius:4px;box-shadow:inset 0 0 0 1px #ffffff40,0 0 0 1px #28323c73;background:repeating-linear-gradient(45deg,transparent 0 4px,rgba(80,95,110,.35) 4px 6px);pointer-events:none}.fx-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.fx-dokonjo-smoke{background:radial-gradient(circle,rgba(220,220,220,.75),transparent 70%);animation:fx-smoke .9s ease forwards}.fx-dokonjo-chain:after{content:"";position:absolute;inset:12%;border:2px solid #8a9aaa;box-shadow:inset 0 0 0 1px #ffffff4d;animation:fx-chain .5s ease both}.fx-kyoka{background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.85) 50%,transparent 60%),radial-gradient(circle at 50% 40%,rgba(180,220,255,.55),transparent 65%);animation:fx-mirror .7s ease forwards}.fx-chototsu{background:linear-gradient(180deg,#ff782826,#ff3c008c);box-shadow:0 0 12px #ff5a008c;animation:fx-fire-trail .85s linear forwards}.fx-bunshin .tile,.sq.fx-bunshin .tile{animation:fx-ninja-wobble .85s ease both}.fx-senryo{background:radial-gradient(circle,rgba(255,255,210,.8),transparent 60%);animation:fx-newtype .7s ease forwards}.fx-ikki .tile,.sq.fx-ikki .tile{animation:fx-spin-rush .9s ease both}.fx-ikki{background:conic-gradient(from 0deg,transparent 0 60%,rgba(255,255,255,.5) 70%,transparent 80%);animation:fx-slash .9s linear forwards}.fx-kogun{background:radial-gradient(circle,rgba(160,200,255,.15),transparent 55%);animation:fx-tornado 1s ease both}.fx-kogun:before{content:"";position:absolute;inset:10%;border:2px solid rgba(180,210,255,.55);border-radius:50%;animation:fx-tornado-spin .8s linear infinite}.fx-zensoku{background:radial-gradient(circle at 50% 80%,rgba(180,140,80,.45),transparent 60%);animation:fx-dust 1s ease both}.fx-zensoku .tile,.sq.fx-zensoku .tile{animation:fx-shake-cheer .9s ease both}.fx-cheer-overlay{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}.fx-cheer{position:absolute;left:calc(18% + var(--i) * 18%);top:calc(30% + (var(--i) % 2) * 12%);color:#fff8e8;font-family:var(--skill-font);font-size:clamp(14px,4vw,22px);text-shadow:0 2px 0 #5a391f,0 0 8px rgba(0,0,0,.45);animation:fx-cheer-float 1.2s ease both;animation-delay:calc(var(--i) * .08s)}@keyframes fx-smoke{0%{opacity:0;transform:scale(.6)}40%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1.4)}}@keyframes fx-chain{0%{opacity:0;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes fx-mirror{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes fx-fire-trail{0%{opacity:0;filter:blur(2px)}20%{opacity:1}to{opacity:0;transform:translateY(-30%)}}@keyframes fx-ninja-wobble{0%{transform:translate(0)}20%{transform:translate(-18%)}45%{transform:translate(16%)}70%{transform:translate(-8%)}to{transform:translate(0)}}@keyframes fx-newtype{0%{opacity:0;transform:scale(.4)}40%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(1.6)}}@keyframes fx-spin-rush{0%{transform:rotate(0) scale(1)}60%{transform:rotate(360deg) scale(1.08)}to{transform:rotate(420deg) scale(1)}}@keyframes fx-slash{0%{opacity:0;transform:scale(.8) rotate(0)}40%{opacity:1}to{opacity:0;transform:scale(1.2) rotate(90deg)}}@keyframes fx-tornado{0%{opacity:0;transform:scale(.7)}40%{opacity:1}to{opacity:0;transform:scale(1.2)}}@keyframes fx-tornado-spin{to{transform:rotate(360deg)}}@keyframes fx-dust{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes fx-shake-cheer{0%,to{transform:translate(0)}20%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,2px)}80%{transform:translate(1px,-2px)}}@keyframes fx-cheer-float{0%{opacity:0;transform:translateY(8px) scale(.9)}30%{opacity:1}to{opacity:0;transform:translateY(-18px) scale(1.05)}}@media(min-width:860px){body{display:grid;place-items:center}.app{min-height:auto;padding-top:20px;padding-bottom:20px}}
