:root{--felt-dark: #0d3b23;--felt: #14532d;--felt-light: #1a6b3a;--ink: #f3f6f2;--ink-dim: #b7c8bc;--gold: #f4c542;--danger: #e4574f;--card-w-lg: 74px;--card-h-lg: 104px;--card-w-md: 60px;--card-h-md: 84px;--card-w-sm: 44px;--card-h-sm: 62px;--radius: 10px;--card-font: Georgia, "Times New Roman", serif;--brand-red: #e4574f;font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:radial-gradient(ellipse at 50% 30%,var(--felt-light),var(--felt) 55%,var(--felt-dark));background-attachment:fixed;color:var(--ink)}button{font:inherit}.screen{min-height:100%;display:flex;flex-direction:column}.home{align-items:center;justify-content:center;padding:24px}.home-panel{background:#00000059;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:36px 32px;width:min(400px,100%);display:flex;flex-direction:column;gap:16px;text-align:center;box-shadow:0 24px 60px #00000073}.home-panel h1{margin:0}.brand{display:block;margin:0;font-size:56px;font-weight:700;letter-spacing:.18em;color:var(--gold);text-shadow:0 3px 0 rgba(0,0,0,.4)}.brand-small{font-size:36px}.brand-tiny{display:inline;font-size:20px;letter-spacing:.14em;color:var(--gold)}.brand-o{color:var(--brand-red);font-family:var(--card-font)}.tagline{margin:-8px 0 8px;color:var(--ink-dim)}.field{display:flex;flex-direction:column;gap:6px;text-align:left;font-size:14px;color:var(--ink-dim)}.field input,.code-input{padding:12px 14px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:var(--ink);font-size:16px;outline:none}.field input:focus,.code-input:focus{border-color:var(--gold)}.code-input{text-transform:uppercase;letter-spacing:.3em;text-align:center;flex:1;min-width:0}.join-row{display:flex;gap:10px}.divider{display:flex;align-items:center;gap:12px;color:var(--ink-dim);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#ffffff26}.btn{padding:11px 18px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.25);background:#ffffff1a;color:var(--ink);cursor:pointer;transition:transform .06s ease,background .15s ease}a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:hover:not(:disabled){background:#ffffff2e}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--gold);border-color:var(--gold);color:#3a2c00;font-weight:700}.btn-primary:hover:not(:disabled){background:#ffd65c}.btn-ghost{background:transparent;border-color:transparent;color:var(--ink-dim)}.btn-ghost:hover:not(:disabled){color:var(--ink);background:#ffffff14}.btn-wide{width:100%}.btn-small{padding:6px 12px;font-size:14px}.btn-kaboo{padding:12px 22px;border-radius:999px;border:2px solid var(--danger);background:#e4574f26;color:#ffb3ae;font-weight:800;letter-spacing:.12em;cursor:pointer}.btn-kaboo:hover:not(:disabled){background:var(--danger);color:#fff}.btn-kaboo:disabled{opacity:.35;cursor:not-allowed}.room-code{font-size:40px;letter-spacing:.35em;font-weight:800;color:var(--gold);background:#0000004d;border:1px dashed rgba(244,197,66,.5);border-radius:12px;padding:16px 8px 20px;cursor:pointer;position:relative}.copy-hint{position:absolute;bottom:6px;left:0;right:0;font-size:11px;letter-spacing:.1em;color:var(--ink-dim);font-weight:400}.lobby-players{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;text-align:left}.lobby-players li{display:flex;align-items:center;gap:10px;background:#ffffff0f;padding:10px 14px;border-radius:var(--radius)}.player-disconnected{opacity:.5}.player-dot{width:9px;height:9px;border-radius:50%;background:#6ee787;flex-shrink:0}.dot-off{background:#888}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#ffffff26;color:var(--ink-dim)}.badge-you{background:#f4c54240;color:var(--gold)}.badge-kaboo{background:var(--danger);color:#fff;font-weight:700;letter-spacing:.08em}.lobby-name{flex:1}.cursor-chip{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;border:2px solid;background:#00000040;padding:0}.cursor-chip-btn{cursor:pointer;transition:transform .08s ease}.cursor-chip-btn:hover{transform:scale(1.08)}.cursor-picker{background:#0000004d;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:12px}.picker-title{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.picker-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.shape-opt{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:2px solid rgba(255,255,255,.15);background:#ffffff0f;cursor:pointer;transition:transform .08s ease,border-color .12s ease}.shape-opt:hover{transform:translateY(-2px)}.shape-opt.sel{border-color:var(--gold);background:#f4c54224}.swatch{width:30px;height:30px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;padding:0;transition:transform .08s ease}.swatch:hover{transform:scale(1.12)}.swatch.sel{border-color:#fff;box-shadow:0 0 0 2px #ffffff59}.swatch-custom{display:inline-flex;align-items:center;justify-content:center;background:conic-gradient(#f4c542,#6ec1ff,#8de78d,#ff8b6b,#d79bff,#f4c542);overflow:hidden;position:relative}.swatch-custom input{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;width:200%;height:200%;opacity:0;cursor:pointer;border:none;padding:0}.lobby-count,.waiting{color:var(--ink-dim);font-size:14px;margin:0}.card{position:relative;border-radius:8px;border:1px solid rgba(0,0,0,.35);display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;box-shadow:0 2px 6px #00000059}.card-lg{width:var(--card-w-lg);height:var(--card-h-lg)}.card-md{width:var(--card-w-md);height:var(--card-h-md)}.card-sm{width:var(--card-w-sm);height:var(--card-h-sm)}.card-face{background:#fdfdf6}.card-red{color:#c92a2a}.card-black{color:#1a1a1a}.card-corner{position:absolute;top:4px;left:5px;font-size:13px;font-weight:700;line-height:1;font-family:var(--card-font)}.card-sm .card-corner{font-size:10px}.card-lg .card-corner{font-size:15px}.card-corner-bottom{top:auto;left:auto;right:5px;bottom:4px;transform:rotate(180deg)}.card-pip{font-size:26px}.card-sm .card-pip{font-size:18px}.card-lg .card-pip{font-size:34px}:root{--back-a: #7c2d3e;--back-b: #6b2434}.card-back{background:repeating-linear-gradient(45deg,var(--back-a),var(--back-a) 6px,var(--back-b) 6px,var(--back-b) 12px);border-color:#ffffff40}.back-crosshatch .card-back{background-color:var(--back-b);background-image:repeating-linear-gradient(45deg,var(--back-a) 0 2px,transparent 2px 9px),repeating-linear-gradient(-45deg,var(--back-a) 0 2px,transparent 2px 9px)}.back-dots .card-back{background-color:var(--back-b);background-image:radial-gradient(var(--back-a) 2.4px,transparent 2.9px);background-size:11px 11px}.back-rings .card-back{background:repeating-radial-gradient(circle at 50% 50%,var(--back-a) 0 3px,var(--back-b) 3px 10px)}.back-checker .card-back{background:conic-gradient(var(--back-a) 90deg,var(--back-b) 90deg 180deg,var(--back-a) 180deg 270deg,var(--back-b) 270deg);background-size:14px 14px}.back-zigzag .card-back{background-color:var(--back-b);background-image:linear-gradient(135deg,var(--back-a) 25%,transparent 25%),linear-gradient(225deg,var(--back-a) 25%,transparent 25%),linear-gradient(315deg,var(--back-a) 25%,transparent 25%),linear-gradient(45deg,var(--back-a) 25%,transparent 25%);background-position:-7px 0,-7px 0,0 0,0 0;background-size:14px 14px}.card-back-pattern{width:70%;height:78%;border:1.5px solid rgba(255,255,255,.35);border-radius:6px}.card-ghost{background:#ffffff0a;border:1.5px dashed rgba(255,255,255,.22);box-shadow:none}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-3px);transition:transform .08s ease}.card:disabled{cursor:default}.card-highlighted{outline:3px solid var(--gold);outline-offset:2px}.card-selected{outline:3px solid var(--danger);outline-offset:2px;transform:translateY(-5px);box-shadow:0 8px 18px #00000073}.card-marked{outline:3px solid var(--danger);outline-offset:2px;animation:mark-pulse 1s ease infinite}@keyframes mark-pulse{0%,to{box-shadow:0 0 4px 1px #e4574f80}50%{box-shadow:0 0 18px 5px #e4574fbf}}.table-screen{height:100%;overflow:hidden}.table-header{display:flex;align-items:center;gap:16px;padding:10px 18px;background:#00000059;border-bottom:1px solid rgba(255,255,255,.08)}.room-tag{font-size:13px;letter-spacing:.2em;color:var(--ink-dim);text-transform:uppercase}.final-banner{color:#ffb3ae;font-weight:700;font-size:14px}.table-header .ability-help-btn{margin-left:auto}.table-main{flex:1;display:flex;min-height:0}.table-felt{flex:1;display:flex;flex-direction:column;align-items:center;padding:14px 16px 10px;gap:10px;overflow-y:auto}.opponents{display:flex;gap:28px;justify-content:center;flex-wrap:wrap}.player-panel{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 12px;border-radius:14px;border:2px solid transparent}.player-turn{border-color:#f4c542b3;background:#f4c54212;box-shadow:0 0 24px #f4c54226}.player-label{display:flex;align-items:center;gap:7px;font-size:14px}.player-name{font-weight:600}.hand-grid{display:flex;gap:6px}.hand-col{display:flex;flex-direction:column;gap:6px;justify-content:flex-start}.hand-grid-mirrored .hand-col{justify-content:flex-end}.center-area{display:flex;align-items:center;gap:28px;margin:6px 0}.pile{display:flex;flex-direction:column;align-items:center;gap:5px}.pile-label{font-size:12px;color:var(--ink-dim);letter-spacing:.06em}.center-actions{display:flex;align-items:center}.kaboo-confirm{display:flex;align-items:center;gap:8px}.cursor-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:70}.live-cursor{position:absolute;left:0;top:0;display:flex;align-items:flex-start;gap:2px;transition:transform .09s linear;will-change:transform}.live-cursor svg{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.hide-native-cursor,.hide-native-cursor *{cursor:none!important}.own-cursor{transition:none;z-index:95}.own-cursor svg{transform-origin:25% 25%;transition:transform .09s ease,filter .09s ease}.own-cursor.is-over svg{transform:scale(1.4);filter:drop-shadow(0 0 5px var(--cursor-color)) drop-shadow(0 1px 2px rgba(0,0,0,.5))}.cursor-name{margin-top:13px;background:var(--cursor-color);color:#1c1c1c;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;box-shadow:0 1px 4px #0006}.fly-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:90}.fly{position:absolute;left:0;top:0;will-change:transform}.fly-inner{transform:translate(-50%,-50%)}.fly .card{box-shadow:0 12px 28px #0000008c}@media(prefers-reduced-motion:no-preference){.fly{transition:transform .4s cubic-bezier(.35,.8,.35,1)}.fly-shake .card{animation:shake .5s ease}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.discard-anim{animation:flip-in .4s ease;transform-style:preserve-3d}@keyframes flip-in{0%{transform:rotateY(85deg) translate(-28px);opacity:.3}to{transform:none;opacity:1}}.discard-from-deck{animation:from-deck .55s ease;transform-style:preserve-3d}@keyframes from-deck{0%{transform:translate(-88px) rotateY(88deg);opacity:.4}to{transform:none;opacity:1}}.slot-anim{animation:flip-card .35s ease;transform-style:preserve-3d}@keyframes flip-card{0%{transform:rotateY(88deg)}to{transform:none}}}.prompt-bar{display:flex;align-items:center;gap:14px;background:#0006;border:1px solid rgba(255,255,255,.12);padding:9px 18px;border-radius:999px;min-height:44px;max-width:92%}.prompt-text{font-size:15px}.prompt-buttons{display:flex;gap:8px}.you-row{display:flex;align-items:flex-end;gap:26px}.drawn-tray{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 14px;background:#00000059;border-radius:14px;border:1px solid rgba(244,197,66,.4)}.slap-hint{font-size:12px;color:var(--ink-dim);margin:0}.log-feed{width:250px;background:#0000004d;border-left:1px solid rgba(255,255,255,.08);padding:14px;overflow-y:auto;flex-shrink:0}.log-feed h3{margin:0 0 10px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}.log-feed ul{list-style:none;margin:0;padding:0}.log-feed li{font-size:13px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06);color:var(--ink-dim)}.log-feed li:first-child{color:var(--ink)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.overlay-light{background:#00000073}.modal{background:#123822;border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:28px 30px;max-width:520px;width:100%;text-align:center;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 80px #0009;max-height:90vh;overflow-y:auto}.modal h2{margin:0}.hint{color:var(--ink-dim);font-size:14px;margin:0}.reveal-cards{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.reveal-card-block{display:flex;flex-direction:column;align-items:center;gap:5px}.reveal-owner{font-size:12px;color:var(--ink-dim)}.modal-actions{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}.ready-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:16px}.result-row{display:flex;align-items:center;gap:14px;padding:8px 12px;border-radius:12px;background:#ffffff0d}.result-winner{background:#f4c54226;border:1px solid rgba(244,197,66,.5)}.result-name{font-weight:600;width:110px;text-align:left;flex-shrink:0}.result-cards{display:flex;gap:5px;flex:1;flex-wrap:wrap}.result-empty{color:var(--ink-dim);font-size:13px;align-self:center}.result-total{font-size:22px;font-weight:800;color:var(--gold);width:44px;text-align:right}.reveal-toaster{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:12px;z-index:50}.reveal-pop{background:#123822;border:1px solid var(--gold);border-radius:14px;padding:14px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 16px 50px #0000008c;animation:pop-in .18s ease}.reveal-context{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700}@keyframes pop-in{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.toasts{position:fixed;top:18px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:60;pointer-events:none}.toast{background:#141414eb;border:1px solid rgba(255,255,255,.2);color:var(--ink);padding:10px 18px;border-radius:999px;font-size:14px;animation:pop-in .15s ease}@media(max-width:860px){.table-main{flex-direction:column}.log-feed{width:auto;border-left:none;border-top:1px solid rgba(255,255,255,.08);max-height:150px}.opponents{gap:14px}.center-area{gap:16px}.you-row{gap:14px}:root{--card-w-lg: 60px;--card-h-lg: 86px;--card-w-md: 50px;--card-h-md: 70px;--card-w-sm: 38px;--card-h-sm: 54px}}.howto{align-items:center;padding:0 0 40px}.howto-bar{position:sticky;top:0;z-index:5;width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#061e12e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,.1)}.howto-bar .brand-tiny{text-decoration:none}.howto-body{width:min(560px,100%);padding:8px 20px 0;display:flex;flex-direction:column;gap:26px}.howto-body h1{font-size:30px;margin:18px 0 0;color:var(--gold);letter-spacing:.02em}.howto-lede{margin:0;color:var(--ink-dim);font-size:15px;line-height:1.55}.howto-section{display:flex;flex-direction:column;gap:12px}.howto-section h2{font-size:13px;margin:0;color:var(--gold);letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid rgba(244,197,66,.28);padding-bottom:7px}.howto-section p{margin:0;font-size:15px;line-height:1.55}.howto-note{color:var(--ink-dim);font-size:13.5px!important}.ability{display:flex;flex-direction:column;gap:10px}.ability h3{margin:6px 0 0;font-size:16px;display:flex;align-items:baseline;gap:10px}.ability-rank{font-family:var(--card-font);color:var(--gold);font-size:18px;letter-spacing:.06em}.value-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}.value-grid li{display:flex;justify-content:space-between;gap:10px;padding:7px 11px;border-radius:8px;background:#00000040;border:1px solid rgba(255,255,255,.08);font-size:14px}.value-grid .value-good{border-color:#f4c54273;background:#f4c5421a}.value-num{font-weight:700;color:var(--gold);font-family:var(--card-font)}.demo-figure{margin:0}.demo-stage{position:relative;height:212px;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#1a6b3a8c,#0d3b23bf);border:1px solid rgba(255,255,255,.1);overflow:hidden}.demo-inner{position:absolute;top:0;left:50%;width:440px;height:100%;transform:translate(-50%)}.demo-stage .card{box-shadow:0 3px 8px #00000073}.demo-pile{position:absolute}.demo-pile-label,.demo-side-label{position:absolute;left:50%;top:-17px;transform:translate(-50%);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap}.demo-hand{display:grid;grid-template-columns:repeat(2,var(--card-w-sm));gap:7px}.demo-slot{position:relative;display:inline-flex}.demo-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:10px;border:3px solid var(--danger);opacity:0;pointer-events:none}.demo-side{position:absolute}.demo-flip{position:relative;display:inline-flex;width:var(--card-w-sm);height:var(--card-h-sm)}.demo-flip-back,.demo-flip-front{position:absolute;top:0;right:0;bottom:0;left:0}.demo-flip-front{opacity:0}.demo-chip{padding:5px 11px;border-radius:999px;background:var(--gold);color:#3a2c00;font-size:12px;font-weight:700;white-space:nowrap}.demo-chip-row{position:absolute;display:flex;gap:6px;opacity:0}.demo-chip-quiet{background:#ffffff29;color:var(--ink)}.demo-eye{position:absolute;font-size:19px;opacity:0}.demo-kaboo{display:inline-block;padding:7px 16px;border-radius:999px;border:2px solid var(--danger);background:#e4574f26;color:#ffb3ae;font-weight:800;letter-spacing:.12em;font-size:13px;flex-shrink:0}.howto-kaboo-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.howto-foot{display:flex;justify-content:center;padding:6px 0 10px}.stage-swap,.stage-king{height:168px}.stage-turn .pos-deck{left:30px;top:42px}.stage-turn .pos-discard{left:94px;top:42px}.stage-turn .pos-hand{position:absolute;left:315px;top:42px}.stage-turn .anim-drawn{position:absolute;left:30px;top:42px}.stage-slap .pos-discard{left:120px;top:46px}.stage-slap .pos-hand{position:absolute;left:265px;top:46px}.stage-peek .pos-hand{position:absolute;left:172px;top:44px}.stage-peek .anim-eye{left:236px;top:18px}.stage-swap .pos-theirs{left:40px;top:46px}.stage-swap .pos-yours{left:305px;top:46px}.stage-swap .anim-chip{position:absolute;left:50%;bottom:20px;opacity:0}.stage-king .pos-hand{position:absolute;left:172px;top:42px}.stage-king .anim-chip{left:50%;bottom:22px}@keyframes flip-pinch{0%,10%{transform:scaleX(1)}16%{transform:scaleX(.04)}22%,to{transform:scaleX(1)}}@keyframes drawn-travel{0%,5%{transform:translate(0) scale(1)}24%,42%{transform:translate(38px,84px) scale(1.12)}64%,to{transform:translate(285px) scale(1)}}@keyframes drawn-face{0%,15.9%{opacity:0}16%,to{opacity:1}}@keyframes drawn-back{0%,15.9%{opacity:1}16%,to{opacity:0}}@keyframes replaced-travel{0%,58%{transform:translate(0)}82%,to{transform:translate(-221px)}}@keyframes replaced-pinch{0%,62%{transform:scaleX(1)}68%{transform:scaleX(.04)}74%,to{transform:scaleX(1)}}@keyframes replaced-face{0%,67.9%{opacity:0}68%,to{opacity:1}}@keyframes replaced-back{0%,67.9%{opacity:1}68%,to{opacity:0}}.anim-drawn{animation:drawn-travel 7s ease-in-out infinite}.anim-drawn>*{animation:flip-pinch 7s ease-in-out infinite}.anim-drawn .demo-flip-front{animation:drawn-face 7s steps(1) infinite}.anim-drawn .demo-flip-back{animation:drawn-back 7s steps(1) infinite}.anim-replaced{animation:replaced-travel 7s ease-in-out infinite}.anim-replaced>*{animation:replaced-pinch 7s ease-in-out infinite}.anim-replaced .demo-flip-front{animation:replaced-face 7s steps(1) infinite}.anim-replaced .demo-flip-back{animation:replaced-back 7s steps(1) infinite}@keyframes slap-travel{0%,32%{transform:translate(0) scale(1)}48%{transform:translateY(-9px) scale(1.06)}74%,to{transform:translate(-196px) scale(1)}}@keyframes slap-pinch{0%,24%{transform:scaleX(1)}30%{transform:scaleX(.04)}36%,to{transform:scaleX(1)}}@keyframes slap-face{0%,29.9%{opacity:0}30%,to{opacity:1}}@keyframes slap-back{0%,29.9%{opacity:1}30%,to{opacity:0}}.anim-slap{animation:slap-travel 6s ease-in-out infinite}.anim-slap>*{animation:slap-pinch 6s ease-in-out infinite}.anim-slap .demo-flip-front{animation:slap-face 6s steps(1) infinite}.anim-slap .demo-flip-back{animation:slap-back 6s steps(1) infinite}@keyframes peek-pinch{0%,12%{transform:scaleX(1)}18%{transform:scaleX(.04)}24%,66%{transform:scaleX(1)}72%{transform:scaleX(.04)}78%,to{transform:scaleX(1)}}@keyframes peek-face{0%,17.9%{opacity:0}18%,71.9%{opacity:1}72%,to{opacity:0}}@keyframes peek-back{0%,17.9%{opacity:1}18%,71.9%{opacity:0}72%,to{opacity:1}}@keyframes eye-in{0%,14%{opacity:0;transform:translateY(6px)}24%,64%{opacity:1;transform:translateY(0)}74%,to{opacity:0;transform:translateY(6px)}}.anim-peek>*{animation:peek-pinch 5.5s ease-in-out infinite}.anim-peek .demo-flip-front{animation:peek-face 5.5s steps(1) infinite}.anim-peek .demo-flip-back{animation:peek-back 5.5s steps(1) infinite}.anim-eye{animation:eye-in 5.5s ease-in-out infinite}@keyframes ring-a{0%,11%{opacity:0;transform:scale(1.14)}18%,58%{opacity:1;transform:scale(1)}62%,to{opacity:0;transform:scale(1)}}@keyframes ring-b{0%,26%{opacity:0;transform:scale(1.14)}33%,58%{opacity:1;transform:scale(1)}62%,to{opacity:0;transform:scale(1)}}@keyframes chip-in{0%,38%{opacity:0;transform:translate(-50%,8px)}46%,60%{opacity:1;transform:translate(-50%)}68%,to{opacity:0;transform:translate(-50%)}}@keyframes swap-right{0%,64%{transform:translate(0)}88%,to{transform:translate(214px)}}@keyframes swap-left{0%,64%{transform:translate(0)}88%,to{transform:translate(-214px)}}.stage-swap .anim-ring-a{animation:ring-a 7s ease-in-out infinite}.stage-swap .anim-ring-b{animation:ring-b 7s ease-in-out infinite}.stage-swap .anim-chip{animation:chip-in 7s ease-in-out infinite}.stage-swap .anim-swap-a{animation:swap-right 7s ease-in-out infinite}.stage-swap .anim-swap-b{animation:swap-left 7s ease-in-out infinite}@keyframes king-pinch{0%,16%{transform:scaleX(1)}23%{transform:scaleX(.04)}30%,78%{transform:scaleX(1)}85%{transform:scaleX(.04)}92%,to{transform:scaleX(1)}}@keyframes king-face{0%,22.9%{opacity:0}23%,84.9%{opacity:1}85%,to{opacity:0}}@keyframes king-back{0%,22.9%{opacity:1}23%,84.9%{opacity:0}85%,to{opacity:1}}@keyframes king-chip{0%,42%{opacity:0;transform:translate(-50%,8px)}52%,78%{opacity:1;transform:translate(-50%)}86%,to{opacity:0;transform:translate(-50%)}}.stage-king .anim-ring-a{animation:ring-a 7.5s ease-in-out infinite}.stage-king .anim-ring-b{animation:ring-b 7.5s ease-in-out infinite}.stage-king .anim-chip{animation:king-chip 7.5s ease-in-out infinite}.stage-king .demo-flip>*{animation:king-pinch 7.5s ease-in-out infinite}.stage-king .demo-flip-front{animation:king-face 7.5s steps(1) infinite}.stage-king .demo-flip-back{animation:king-back 7.5s steps(1) infinite}@keyframes kaboo-pulse{0%,70%,to{transform:scale(1)}80%{transform:scale(1.07)}}.anim-kaboo{animation:kaboo-pulse 3.2s ease-in-out infinite}.howto-paused .demo-stage *,.howto-paused .anim-kaboo{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.howto:not(.howto-playing) .demo-stage *,.howto:not(.howto-playing) .anim-kaboo{animation-play-state:paused!important}}@media(max-width:480px){.demo-inner{transform:translate(-50%) scale(.88);transform-origin:top center}.demo-stage{height:187px}.stage-swap,.stage-king{height:148px}}@media(max-width:430px){.demo-inner{transform:translate(-50%) scale(.79)}.demo-stage{height:168px}.stage-swap,.stage-king{height:133px}}@media(max-width:390px){.demo-inner{transform:translate(-50%) scale(.72)}.demo-stage{height:153px}.stage-swap,.stage-king{height:121px}}@media(max-width:360px){.demo-inner{transform:translate(-50%) scale(.63)}.demo-stage{height:134px}.stage-swap,.stage-king{height:106px}}.home-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 4px;margin:4px 0 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}.home-links a{padding:7px 10px;border-radius:8px;font-size:13px;color:var(--ink-dim);text-decoration:none;white-space:nowrap;transition:color .15s ease,background .15s ease}.home-links a:hover{color:var(--gold);background:#ffffff12}.home-links a:focus-visible,.howto a:focus-visible,.howto button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.howto-bar-spacer{width:64px}.howto-list,.howto-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:7px;font-size:15px;line-height:1.55}.howto-list{list-style:disc}.howto-steps{list-style:decimal}.howto-list::marker,.howto-steps::marker{color:var(--gold)}.ability-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.ability-list li{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:baseline;padding:9px 12px;border-radius:9px;background:#0000003d;border:1px solid rgba(255,255,255,.08);font-size:14.5px;line-height:1.5}.quickref{display:flex;flex-direction:column;gap:8px;padding:13px 15px;border-radius:10px;background:#00000042;border:1px solid rgba(244,197,66,.28)}.quickref p{font-size:14px!important;line-height:1.5}.demo-hand-art{position:absolute;line-height:0;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}.demo-think,.demo-pow{position:absolute;white-space:nowrap;opacity:0}.demo-think{font-size:13px;font-style:italic;color:var(--ink-dim);background:#0006;padding:4px 9px;border-radius:999px}.demo-pow{font-weight:900;font-size:17px;letter-spacing:.08em;color:var(--gold);text-shadow:0 2px 0 rgba(0,0,0,.5)}.stage-irl-peek .pos-grid{position:absolute;left:172px;top:36px}.stage-irl-peek .anim-reach{left:196px;top:150px}.stage-irl-peek .anim-think{left:268px;top:44px}.stage-irl-race{height:196px}.stage-irl-race .pos-pile{position:absolute;left:198px;top:44px}.stage-irl-race .anim-race-win{left:96px;top:120px}.stage-irl-race .anim-race-lose{left:280px;top:120px}.stage-irl-race .anim-pow{left:204px;top:8px}.stage-irl-slap{height:196px}.stage-irl-slap .pos-pile{position:absolute;left:130px;top:50px}.stage-irl-slap .pos-mine{position:absolute;left:266px;top:50px}.stage-irl-slap .anim-slap-hand{left:120px;top:88px}.stage-irl-slap .anim-slap-pow{left:146px;top:12px}@keyframes reach-in{0%,6%{transform:translateY(40px);opacity:0}16%,74%{transform:translate(0);opacity:1}86%,to{transform:translateY(40px);opacity:0}}@keyframes lift-card{0%,18%{transform:translateY(0) rotate(0)}28%,66%{transform:translateY(-13px) rotate(-7deg)}78%,to{transform:translateY(0) rotate(0)}}@keyframes lift-card-b{0%,22%{transform:translateY(0) rotate(0)}32%,66%{transform:translateY(-13px) rotate(6deg)}78%,to{transform:translateY(0) rotate(0)}}@keyframes lift-face{0%,25.9%{opacity:0}26%,71.9%{opacity:1}72%,to{opacity:0}}@keyframes lift-back{0%,25.9%{opacity:1}26%,71.9%{opacity:0}72%,to{opacity:1}}@keyframes think-in{0%,30%{opacity:0;transform:translateY(6px)}40%,64%{opacity:1;transform:translateY(0)}74%,to{opacity:0;transform:translateY(6px)}}.stage-irl-peek .anim-reach{animation:reach-in 7s ease-in-out infinite}.stage-irl-peek .anim-lift-a{animation:lift-card 7s ease-in-out infinite}.stage-irl-peek .anim-lift-b{animation:lift-card-b 7s ease-in-out infinite}.stage-irl-peek .demo-flip-front{animation:lift-face 7s steps(1) infinite}.stage-irl-peek .demo-flip-back{animation:lift-back 7s steps(1) infinite}.stage-irl-peek .anim-think{animation:think-in 7s ease-in-out infinite}@keyframes race-flip{0%,14%{transform:scaleX(1)}20%{transform:scaleX(.04)}26%,to{transform:scaleX(1)}}@keyframes race-face{0%,19.9%{opacity:0}20%,to{opacity:1}}@keyframes race-back{0%,19.9%{opacity:1}20%,to{opacity:0}}@keyframes race-win{0%,30%{transform:translate(0) rotate(0);opacity:0}34%{transform:translate(0) rotate(0);opacity:1}46%{transform:translate(84px,-38px) rotate(12deg);opacity:1}50%,76%{transform:translate(90px,-30px) rotate(12deg);opacity:1}88%,to{transform:translate(0) rotate(0);opacity:0}}@keyframes race-lose{0%,30%{transform:translate(0) rotate(0);opacity:0}34%{transform:translate(0) rotate(0);opacity:1}47%{transform:translate(-40px,-26px) rotate(-10deg);opacity:1}56%,76%{transform:translate(-16px,-8px) rotate(-6deg);opacity:1}88%,to{transform:translate(0) rotate(0);opacity:0}}@keyframes pow-in{0%,46%{opacity:0;transform:scale(.6)}52%{opacity:1;transform:scale(1.12)}58%,72%{opacity:1;transform:scale(1)}80%,to{opacity:0;transform:scale(1)}}.stage-irl-race .anim-race-flip>*{animation:race-flip 6.5s ease-in-out infinite}.stage-irl-race .demo-flip-front{animation:race-face 6.5s steps(1) infinite}.stage-irl-race .demo-flip-back{animation:race-back 6.5s steps(1) infinite}.stage-irl-race .anim-race-win{animation:race-win 6.5s ease-in-out infinite}.stage-irl-race .anim-race-lose{animation:race-lose 6.5s ease-in-out infinite}.stage-irl-race .anim-pow{animation:pow-in 6.5s ease-out infinite}@keyframes slap-card-travel{0%,26%{transform:translate(0)}44%,to{transform:translate(-136px)}}@keyframes slap-card-pinch{0%,12%{transform:scaleX(1)}18%{transform:scaleX(.04)}24%,to{transform:scaleX(1)}}@keyframes slap-card-face{0%,17.9%{opacity:0}18%,to{opacity:1}}@keyframes slap-card-back{0%,17.9%{opacity:1}18%,to{opacity:0}}@keyframes slap-hand{0%,40%{transform:translateY(-52px) scale(1.16);opacity:0}46%{transform:translateY(-52px) scale(1.16);opacity:1}54%{transform:translate(0) scale(1);opacity:1}58%{transform:translateY(-5px) scale(1.02);opacity:1}62%,78%{transform:translate(0) scale(1);opacity:1}90%,to{transform:translateY(-52px) scale(1.16);opacity:0}}@keyframes slap-pow{0%,52%{opacity:0;transform:scale(.6)}57%{opacity:1;transform:scale(1.15)}62%,76%{opacity:1;transform:scale(1)}84%,to{opacity:0;transform:scale(1)}}.stage-irl-slap .anim-slap-card{animation:slap-card-travel 6.5s ease-in-out infinite}.stage-irl-slap .anim-slap-card>*{animation:slap-card-pinch 6.5s ease-in-out infinite}.stage-irl-slap .demo-flip-front{animation:slap-card-face 6.5s steps(1) infinite}.stage-irl-slap .demo-flip-back{animation:slap-card-back 6.5s steps(1) infinite}.stage-irl-slap .anim-slap-hand{animation:slap-hand 6.5s ease-in infinite}.stage-irl-slap .anim-slap-pow{animation:slap-pow 6.5s ease-out infinite}.about-body{gap:22px;align-items:center}.about-body h1{align-self:flex-start}.about-prose{display:flex;flex-direction:column;gap:13px;font-size:15.5px;line-height:1.62}.about-prose p{margin:0}.about-signoff{color:var(--gold);font-style:italic;padding-top:4px}.about-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.about-fan{position:relative;width:100%;height:196px;display:flex;align-items:center;justify-content:center;border-radius:14px;outline:none}.about-fan-card{position:absolute;transform-origin:50% 210%;transform:rotate(calc(var(--i) * 4.4deg));animation:fan-breathe 5.5s ease-in-out infinite;animation-delay:calc(var(--n) * .11s)}@keyframes fan-breathe{0%,to{transform:rotate(calc(var(--i) * 4.4deg)) translateY(0)}50%{transform:rotate(calc(var(--i) * 6.2deg)) translateY(-5px)}}@media(prefers-reduced-motion:reduce){.about-fan-card{animation:none}}@media(max-width:480px){.ability-list li{grid-template-columns:50px 1fr;gap:9px;font-size:14px}.about-fan{height:146px}}.ability-help-btn{font-style:italic}.ability-help{max-width:480px;text-align:left}.ability-help h2,.ability-help .hint{text-align:center}.ability-help-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ability-help-list li{display:flex;align-items:center;gap:16px;padding:9px 12px;border-radius:10px;background:#00000042;border:1px solid rgba(255,255,255,.08)}.ability-help-quiet{opacity:.78}.ability-help-cards{display:flex;flex-shrink:0;padding-left:4px}.ability-help-cards .card{box-shadow:0 3px 8px #00000080}.ability-help-cards .card:first-child{transform:rotate(-7deg)}.ability-help-cards .card+.card{margin-left:-26px}.ability-help-text{display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.45}.ability-help-text strong{color:var(--gold);font-size:15px}.ability-help-text span{color:var(--ink-dim)}@media(max-width:520px){.ability-help-list li{gap:11px;padding:8px 10px}.ability-help-text{font-size:13px}}.site-footer{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;padding:18px 16px 8px;font-size:12px;color:#b7c8bc9e}.site-footer a{color:inherit;text-decoration:none;padding:2px 4px;border-radius:5px;transition:color .15s ease}.site-footer a:hover{color:var(--gold)}.site-footer a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.site-footer-copy{white-space:nowrap}.home .site-footer{padding-top:22px}.about-disclaimer{margin:0;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:12.5px!important;line-height:1.55;color:#b7c8bcb8;text-align:center}.howto-body p a:not(.btn),.howto-body li a:not(.btn){color:var(--gold);text-decoration:underline;text-underline-offset:2px}
