:root{color-scheme:dark;--ink:#f3f6f1;--muted:#a9b6a6;--panel:#16241b;--line:#2f4a37;--accent:#6fd08c;--accent-ink:#08160d;--felt-a:#1c6b46;--felt-b:#0c3524;--back-a:#1e3a8a;--back-b:#0f1f4d;--card-width:60px;--card-height:84px;color:var(--ink);background:#081410;font-family:Inter,ui-sans-serif,system-ui,sans-serif}html[data-felt=slate]{--felt-a:#3c4a58;--felt-b:#17202b;--panel:#1a222b;--line:#35434f;--accent:#7fc4ff;--accent-ink:#06121c}html[data-felt=plum]{--felt-a:#5b2a55;--felt-b:#23122a;--panel:#241628;--line:#46284a;--accent:#e59bd8;--accent-ink:#1d0a1a}html[data-felt=sand]{--felt-a:#9a7a4c;--felt-b:#4a3720;--panel:#2a2116;--line:#4d3d27;--accent:#f0c26b;--accent-ink:#211703}html[data-back=moss]{--back-a:#2f6b3a;--back-b:#16371f}html[data-back=ember]{--back-a:#9b3521;--back-b:#4a170d}html[data-back=linen]{--back-a:#c9bda4;--back-b:#8d8168}html[data-contrast=high]{--panel:#000;--line:#fff;--accent:#ff0;--accent-ink:#000;--muted:#fff;--felt-a:#000;--felt-b:#000}html[data-interface=large]{font-size:118%}html[data-timer=hidden] .hud-time{display:none}*{box-sizing:border-box}[hidden]{display:none!important}body{overscroll-behavior:none;min-height:100svh;margin:0}#runtime{flex-direction:column;align-items:center;gap:.6rem;min-height:100svh;padding:.6rem;display:flex}.title-bar{justify-content:space-between;align-items:center;gap:.5rem;width:min(60rem,100%);display:flex}.title-actions{gap:.4rem;display:flex}h1{letter-spacing:-.02em;margin:0;font-size:1.25rem}.icon-button{border:1px solid var(--line);background:var(--panel);min-height:44px;color:inherit;font:inherit;cursor:pointer;border-radius:.6rem;padding:0 .75rem}.panel{border:1px solid var(--line);background:var(--panel);border-radius:1rem;gap:.6rem;width:min(32rem,100%);padding:1.1rem;display:grid}.panel h2{margin:0;font-size:1.1rem}select,button{border:1px solid var(--line);min-height:44px;color:inherit;font:inherit;cursor:pointer;background:#1d2f24;border-radius:.6rem;padding:.5rem .8rem}.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:800}button:disabled{opacity:.45;cursor:default}.hint{color:var(--muted);margin:0;font-size:.85rem}#game-ui{flex-direction:column;flex:1;gap:.5rem;width:min(60rem,100%);min-height:0;display:flex}.hud{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.hud div{border:1px solid var(--line);background:var(--panel);text-align:center;border-radius:.6rem;padding:.3rem .4rem;display:grid}.hud span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.62rem}.hud strong{font-variant-numeric:tabular-nums;font-size:1rem}.duel-bar{border:1px solid var(--line);background:var(--panel);border-radius:.7rem;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding:.4rem .6rem;display:grid}.duel-player{text-align:center;border:2px solid #0000;border-radius:.5rem;padding:.25rem .5rem;display:grid}.duel-bar[data-turn="0"] .duel-player[data-player="0"],.duel-bar[data-turn="1"] .duel-player[data-player="1"]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.duel-player span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.duel-player strong{font-variant-numeric:tabular-nums;font-size:1.25rem}.duel-middle{color:var(--muted);justify-items:center;gap:.2rem;font-size:.75rem;display:grid}.duel-middle button{min-height:34px;padding:.1rem .7rem}.table-wrap{flex:1;min-height:18rem;position:relative}.surface{border:1px solid var(--line);background:radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--felt-a) 70%, #fff 6%) 0%, transparent 60%), linear-gradient(160deg, var(--felt-a) 0%, var(--felt-b) 100%);touch-action:none;border-radius:1rem;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 8rem #00000073}.fx{pointer-events:none;border-radius:1rem;position:absolute;inset:0}.slot{width:var(--card-width);height:var(--card-height);border-radius:calc(var(--card-width) * .1);font-size:calc(var(--card-width) * .4);color:#ffffff29;border:2px dashed #ffffff2e;place-items:center;transition:box-shadow .18s,border-color .18s,transform .26s;display:grid;position:absolute;top:0;left:0}.slot-stock.recyclable:after{content:"↺";font-size:calc(var(--card-width) * .5);color:#fff6}.slot.is-cursor{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent)}.slot.is-hint{border-color:#ffd166;box-shadow:0 0 1.4rem #ffd166aa}.slot.refused{animation:.4s refuse}@keyframes refuse{0%,to{box-shadow:none;border-color:#ffffff2e}25%,75%{border-color:#e2564a;box-shadow:0 0 0 3px #e2564a73}}.card{width:var(--card-width);height:var(--card-height);will-change:transform;perspective:800px;cursor:grab;transition:transform .25s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:0}.card.dragging{cursor:grabbing;filter:drop-shadow(0 1.1rem 1rem #00000073);transition:none}.card.snapping{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.card.landed .flip{animation:.5s cubic-bezier(.34,1.56,.64,1) land}@keyframes land{0%{filter:brightness(1.5);transform:scale(1.14)}to{filter:brightness();transform:scale(1)}}.card.flipping .flip{animation:.42s cubic-bezier(.4,0,.2,1) flip}@keyframes flip{0%{transform:rotateY(180deg)translateY(-6%)}to{transform:rotateY(0)translateY(0)}}.card.is-cursor .face,.card.is-held .face{box-shadow:0 0 0 3px var(--accent), 0 .5rem .8rem #0006}.card.is-hint .face{box-shadow:0 0 0 3px #ffd166,0 0 1.4rem #ffd166aa}.flip{width:100%;height:100%;transform-style:preserve-3d;position:relative}.face{border-radius:calc(var(--card-width) * .1);backface-visibility:hidden;position:absolute;inset:0;box-shadow:0 .15rem .35rem #0006}.front{padding:calc(var(--card-width) * .07);background:linear-gradient(170deg,#fffdf7 0%,#f2ece0 100%);border:1px solid #14100b40;display:grid}.back{background:repeating-linear-gradient(45deg, #ffffff17 0 3px, transparent 3px 7px), linear-gradient(150deg, var(--back-a) 0%, var(--back-b) 100%);border:1px solid #ffffff38;place-items:center;display:grid;transform:rotateY(180deg)}.back span{border:2px solid #ffffff47;border-radius:50% 12%;width:58%;height:62%}.card[data-face=down] .flip{transform:rotateY(180deg)}.card[data-face=down]{cursor:default}.card[data-colour=red] .front{color:#c0272d}.card[data-colour=black] .front{color:#17140f}.corner{font-weight:800;line-height:.95;font-size:calc(var(--card-width) * .28);justify-items:center;display:grid}.corner i{font-style:normal;font-size:calc(var(--card-width) * .24)}.corner.top{place-self:start}.corner.bottom{place-self:end;transform:rotate(180deg)}.pip{font-size:calc(var(--card-width) * .62);opacity:.9;place-items:center;display:grid;position:absolute;inset:0}.card[data-court=yes] .pip{font-size:calc(var(--card-width) * .46);opacity:.55}.card[data-court=yes] .front:after{content:"";border-radius:calc(var(--card-width) * .06);opacity:.3;border:2px solid;position:absolute;inset:16%}.controls{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}dl{grid-template-columns:repeat(2,1fr);gap:.5rem;margin:0;display:grid}dt{color:var(--muted);font-size:.72rem}dd{margin:0;font-weight:700}dialog{border:1px solid var(--line);background:var(--panel);color:inherit;border-radius:1rem;width:min(30rem,92vw);max-height:86svh}.dialog-content{gap:.6rem;display:grid}.dialog-head{justify-content:space-between;align-items:center;display:flex}dialog h3{color:var(--accent);margin:.4rem 0 0;font-size:.95rem}dialog p,dialog li{color:var(--muted);margin:0;font-size:.9rem;line-height:1.55}dialog ul{gap:.2rem;margin:0;padding-left:1.1rem;display:grid}dialog label{justify-content:space-between;align-items:center;gap:1rem;min-height:44px;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}html[data-motion=reduced] *{transition:none!important;animation:none!important}@media (width<=560px){.hud{grid-template-columns:repeat(3,1fr)}.title-actions .icon-button{padding:0 .55rem;font-size:.85rem}}
