@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wdth,wght@12..96,75..100,400..800&display=swap";@font-face{font-family:Fraunces;font-weight:600;src:url(../fonts/fraunces-600.woff2)format("woff2");font-display:swap}@font-face{font-family:Barlow;font-weight:600;src:url(../fonts/Barlow-600.woff2)format("woff2");font-display:swap}@font-face{font-family:Barlow;font-weight:700;src:url(../fonts/Barlow-700.woff2)format("woff2");font-display:swap}:root{--plum:#2b1b3d;--plum2:#3d2752;--coral:#ff6a3d;--honey:#ffb53d;--cream:#fff1dc;--sage:#4e8c5e;--mauve:#8a5a86;--flag:#e8453c;--p1:#ff6a3d;--p2:#5fb8e8;--display:"Fraunces",Georgia,serif;--ui:"Barlow",system-ui,sans-serif;--st:env(safe-area-inset-top);--sb:env(safe-area-inset-bottom)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;padding:0}html,body{background:var(--plum);color:var(--cream);font-family:var(--ui);touch-action:none;overscroll-behavior:none;font-weight:600;position:fixed;inset:0;overflow:hidden}canvas{display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui>.pass{pointer-events:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.btn{--c:var(--honey);--s:#b9741a;--t:var(--plum);background:var(--c);width:100%;color:var(--t);font-family:var(--display);letter-spacing:-.01em;box-shadow:0 6px 0 var(--s),0 12px 22px #1e0a2866,inset 0 2px 0 #ffffff80,inset 0 -3px 0 #00000014;border-radius:999px;padding:16px 18px;font-size:23px;font-weight:600;line-height:1;transition:transform .12s cubic-bezier(.3,1.6,.5,1),box-shadow .12s}.btn.huge{padding:20px;font-size:34px}.btn.alt{--c:var(--coral);--s:#b03e1c;--t:var(--cream)}.btn.ghost{--c:#fff1dc24;--s:#14061e80;--t:var(--cream);font-family:var(--ui);-webkit-backdrop-filter:blur(6px);font-size:17px;font-weight:700}.row{gap:10px;width:100%;display:flex}.btn:has(.ico){white-space:nowrap;justify-content:center;align-items:center;display:flex}.btn .ico{vertical-align:-4px;flex:none;width:20px;height:20px;margin-right:6px}.btn.ionly{flex:0 0 56px;min-height:48px;padding:0}.btn.ionly .ico{margin:0}.duelpause{position:absolute;top:50%;left:10px;transform:translateY(-50%)}.duelpause:active{transform:translateY(-50%)scale(.94)}.hud{top:calc(var(--st) + 12px);pointer-events:none;align-items:center;gap:10px;display:flex;position:absolute;left:14px;right:14px}.hbtn{pointer-events:auto;background:#2b1b3d80;border-radius:50%;justify-content:center;align-items:center;gap:5px;width:46px;height:46px;transition:transform .1s;display:flex;box-shadow:0 4px #14061e73}.hbtn:active{transform:translateY(3px)scale(.94)}.hbtn i{background:var(--cream);border-radius:3px;width:5px;height:16px}.hlbl{text-shadow:0 2px #2b1b3db3;font-size:15px}.home{padding:calc(var(--st) + 34px) 22px calc(var(--sb) + 22px);background:linear-gradient(#2b1b3d59,#2b1b3d00 30% 52%,#2b1b3dd1 80%);flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.home>*{max-width:360px}.logo{font-family:var(--display);text-align:center;letter-spacing:-.035em;font-weight:600;line-height:.82;animation:3.4s ease-in-out infinite bob;position:relative}.logo span{color:var(--cream);-webkit-text-stroke:3px var(--plum);paint-order:stroke fill;text-shadow:0 7px 0 var(--coral),0 12px 0 var(--plum);font-size:min(23vw,104px);display:block}.logo .l2{color:var(--honey);text-shadow:0 7px 0 #b9741a,0 12px 0 var(--plum);transform:translate(12%)rotate(-4deg)}@keyframes bob{50%{transform:translateY(-5px)rotate(-.6deg)}}.tag{text-align:center;opacity:.95;text-shadow:0 2px #2b1b3dcc;font-size:16px}.pills{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pill{background:#2b1b3d99;border-radius:999px;align-items:center;gap:7px;padding:7px 14px 7px 9px;font-size:15px;display:flex}.pill svg{width:20px;height:20px}.spacer{flex:1}.skin{background:#2b1b3d99;border-radius:999px;align-items:center;gap:10px;padding:6px 14px 6px 6px;font-size:14px;transition:transform .12s cubic-bezier(.3,1.6,.5,1);display:flex;box-shadow:0 3px #14061e73}.skin:active{transform:translateY(3px)scale(.96)}.skin canvas{width:34px;height:34px;position:static}.chal{text-align:center;text-shadow:0 2px #2b1b3dcc;font-size:18px}.chal b{font-family:var(--display);color:var(--honey);-webkit-text-stroke:3px var(--plum);paint-order:stroke fill;text-shadow:0 7px 0 var(--plum);font-size:104px;font-weight:600;line-height:1;display:block}.sheet-wrap{background:#14061e8c;align-items:flex-end;animation:.2s ease-out fade;display:flex;position:absolute;inset:0}.sheet{width:100%;padding:22px 20px calc(var(--sb) + 22px);background:var(--plum2);box-shadow:0 -8px 0 var(--plum) inset,0 -10px 40px #0006;border-radius:30px 30px 0 0;flex-direction:column;gap:12px;animation:.35s cubic-bezier(.2,1.3,.4,1) rise;display:flex}.sheet h3{font-family:var(--display);text-align:center;letter-spacing:-.02em;font-size:36px;font-weight:600}.sheet p{text-align:center;opacity:.85;font-size:15px;line-height:1.35}@keyframes rise{0%{transform:translateY(100%)}}@keyframes fade{0%{opacity:0}}.results{padding:calc(var(--st) + 20px) 22px calc(var(--sb) + 22px);background:#2b1b3d59;flex-direction:column;justify-content:center;align-items:center;gap:22px;animation:.3s fade;display:flex;position:absolute;inset:0}.card{background:var(--cream);width:100%;max-width:340px;color:var(--plum);text-align:center;border-radius:26px;padding:62px 20px 20px;animation:.55s cubic-bezier(.2,1.5,.4,1) drop;position:relative;box-shadow:0 10px #cdb79a,0 24px 44px #14061e8c}.card:after{content:"";pointer-events:none;border:2px dashed #2b1b3d24;border-radius:20px;position:absolute;inset:8px}.medal{width:112px;height:132px;animation:medal .7s var(--d,.9s) cubic-bezier(.2,1.7,.4,1) forwards;margin-left:-56px;position:absolute;top:-58px;left:50%;transform:scale(0)}.medal.none{opacity:.9;animation-name:fade;transform:none}@keyframes medal{0%{opacity:0;transform:translateY(-120px)scale(1.8)rotate(-30deg)}to{opacity:1;transform:none}}.cardrow{justify-content:space-around;align-items:flex-end;margin-top:4px;display:flex}.stat{flex-direction:column;align-items:center;display:flex}.stat .n{font-family:var(--display);letter-spacing:-.04em;font-size:92px;line-height:.9}.stat .n.land{animation:.3s cubic-bezier(.2,2,.4,1) thump}.stat .n.sm{color:#6e4f78;font-size:40px}.stat .u{color:#7d6585;margin-top:4px;font-size:15px}@keyframes thump{40%{transform:scale(1.14)}}.note{margin-top:14px;font-size:17px;font-weight:700}.note.good{color:#c2410c}.sub{opacity:.7;margin-top:4px;font-size:14px}.lbrow{justify-content:center;align-items:center;gap:10px;margin-top:8px;font-size:14px;display:flex}.lbrow .link{cursor:pointer;text-decoration:underline}.lbbtn{background:#2b1b3d1a;border-radius:999px;padding:6px 12px;font-weight:700}.actions{flex-direction:column;gap:12px;width:100%;max-width:340px;animation:.4s 1.2s both fade;display:flex}@keyframes drop{0%{opacity:0;transform:translateY(-70px)scale(.85)}}#toast{bottom:calc(var(--sb) + 110px);background:var(--plum);opacity:0;pointer-events:none;border-radius:999px;padding:10px 16px;font-size:14px;transition:all .25s cubic-bezier(.2,1.4,.4,1);position:absolute;left:50%;transform:translate(-50%,20px)}#toast.on{opacity:1;transform:translate(-50%)}.half{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:50%;display:flex;position:absolute;left:0;right:0}.half.top{top:0;transform:rotate(180deg)}.half.bot{bottom:0}.ready{font-family:var(--display);letter-spacing:-.02em;color:var(--cream);-webkit-text-stroke:2px var(--plum);paint-order:stroke fill;text-shadow:0 5px 0 var(--plum);font-size:40px;animation:1.6s ease-in-out infinite bob}.ready.on{color:var(--pc);animation:.3s cubic-bezier(.2,2,.4,1) thump}.half small{text-shadow:0 2px #2b1b3de6;font-size:15px}.vs{background:var(--cream);width:62px;height:62px;box-shadow:0 0 0 4px var(--plum),0 6px 0 4px #14061e80;border-radius:50%;place-items:center;animation:1.6s ease-in-out infinite vspulse;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none!important}.vs span{font-family:var(--display);letter-spacing:-.04em;background:linear-gradient(180deg,var(--p1) 50%,var(--p2) 50%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:26px}@keyframes vspulse{50%{transform:translate(-50%,-50%)scale(1.1)}}.duelover{flex-direction:column;animation:.3s fade;display:flex;position:absolute;inset:0}.dres{text-align:center;background:#14061e9e;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.dres.flip{transform:rotate(180deg)}.dres b{font-family:var(--display);letter-spacing:-.03em;color:var(--cream);-webkit-text-stroke:2px var(--plum);paint-order:stroke fill;text-shadow:0 6px 0 var(--plum);font-size:60px;font-weight:600;line-height:1;animation:.5s cubic-bezier(.2,1.6,.4,1) drop}.dres.win b{color:var(--pc);font-size:76px}.dres span{font-size:16px}.trophy{width:86px;height:86px;animation:1.1s cubic-bezier(.2,1.6,.4,1) both crown,2s ease-in-out 1.1s infinite bob}@keyframes crown{0%{opacity:0;transform:translateY(-80px)rotate(-30deg)scale(.4)}}.duelover .mid{background:var(--plum2);box-shadow:0 0 0 3px var(--plum);gap:10px;padding:12px 16px;display:flex}@media (prefers-reduced-motion:reduce){*{animation-duration:10ms!important;animation-iteration-count:1!important}}:root{--ch-paper:#fffaf0;--ch-ink:#1f1a17;--ch-soft:#5c544d;--ch-red:#ff5a36;--ch-sun:#ffb800;--ch-green:#22b573;--ch-blue:#2d7ff9;--ch-purple:#9b4dff;--ch-pink:#ff3d8b;--ch-accent:var(--ch-sun);--ch-font:"Bricolage Grotesque",system-ui,sans-serif;--ch-title:clamp(34px,9vw,56px);--ch-btn:18px;--ch-small:14px;--ch-radius:12px;--ch-in:.18s;--ch-stagger:60ms}.ch-title{font-family:var(--ch-font);font-weight:800;font-stretch:75%;font-size:var(--ch-title);letter-spacing:-.02em;line-height:.92}.ch-small{font-family:var(--ch-font);font-size:var(--ch-small);font-weight:600}.ch-btn{min-height:48px;font:800 var(--ch-btn)/1 var(--ch-font);color:var(--ch-ink);background:var(--ch-paper);border:2px solid var(--ch-ink);border-radius:var(--ch-radius);box-shadow:none;cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;padding:12px 22px;transition:transform .12s,background-color .12s;display:inline-flex}.ch-btn:hover{transform:translateY(-2px)}.ch-btn:active{transform:translateY(1px)}.ch-btn.primary{background:var(--ch-accent)}.ch-btn.danger{background:0 0}.ch-btn:focus-visible{outline:3px solid var(--ch-blue);outline-offset:3px}@keyframes ch-in{0%{opacity:0;transform:translateY(16px)}}.ch-enter>*{animation:ch-in var(--ch-in) ease-out both}.ch-enter>:nth-child(2){animation-delay:calc(var(--ch-stagger)*1)}.ch-enter>:nth-child(3){animation-delay:calc(var(--ch-stagger)*2)}.ch-enter>:nth-child(4){animation-delay:calc(var(--ch-stagger)*3)}.ch-enter>:nth-child(n+5){animation-delay:calc(var(--ch-stagger)*4)}@media (prefers-reduced-motion:reduce){.ch-enter>*{animation-name:none}.ch-btn{transition:none}}:root{--ch-accent:var(--ch-sun);--ui:var(--ch-font)}html,body{font-family:var(--ch-font)}.btn,.btn.huge,.btn.alt,.btn.ghost{--c:var(--ch-paper);border-radius:var(--ch-radius);border:2px solid var(--ch-ink);background:var(--ch-paper);width:100%;min-height:52px;color:var(--ch-ink);font:800 var(--ch-btn)/1 var(--ch-font);letter-spacing:0;box-shadow:none;-webkit-backdrop-filter:none;padding:12px 18px;transition:transform .12s,background-color .12s}.btn.pri{background:var(--ch-accent);color:var(--ch-ink)}.btn.ghost{color:var(--ch-paper);border-color:var(--ch-paper);background:0 0}.sheet .btn.ghost,.duelover .btn.ghost{color:var(--ch-paper);border-color:var(--ch-paper)}.btn:hover{transform:translateY(-2px)}.btn:active{box-shadow:none;transform:translateY(1px)}.btn:focus-visible,.hbtn:focus-visible,.skin:focus-visible,.lbbtn:focus-visible{outline:3px solid var(--ch-blue);outline-offset:3px}.btn.site{top:calc(var(--st) + 10px);background:var(--ch-paper);width:auto;min-height:48px;color:var(--ch-ink);border-color:var(--ch-ink);padding:10px 14px;font-size:15px;position:absolute;left:12px}.btn.site:hover{transform:translateY(-2px)}.hbtn{background:var(--ch-paper);border:2px solid var(--ch-ink);width:48px;height:48px;box-shadow:none}.hbtn i{background:var(--ch-ink)}.hlbl{font-size:16px;font-weight:800}.home{padding-top:calc(var(--st) + 72px);background:linear-gradient(#2b1b3d59,#2b1b3d00 30% 45%,#1f1a17db 72%);gap:10px}.menu{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:360px;display:flex}.tag{font-size:16px}.pills{text-shadow:0 2px #2b1b3dcc;gap:6px 14px;font-size:14px;font-weight:600}.skin{background:var(--ch-ink);border:2px solid var(--ch-paper);box-shadow:none;min-height:48px;color:var(--ch-paper);font-size:14px}.sheet{background:var(--ch-ink);border-top:2px solid var(--ch-paper);box-shadow:none;gap:10px;animation:.25s ease-out rise}.sheet h3{font:800 var(--ch-title)/.92 var(--ch-font);letter-spacing:-.02em;font-stretch:75%}.sheet p{font-size:15px}.card{background:var(--ch-paper);color:var(--ch-ink);border:2px solid var(--ch-ink);box-shadow:none;border-radius:18px}.card:after{display:none}.stat .n{font-family:var(--ch-font);font-weight:800;font-stretch:75%}.stat .u{color:var(--ch-soft);font-size:14px}.stat .n.sm{color:var(--ch-soft)}.note{font-size:17px;font-weight:800}.sub{opacity:1;color:var(--ch-soft);font-size:14px}.lbbtn{border-radius:var(--ch-radius);border:2px solid var(--ch-ink);background:var(--ch-paper);min-height:44px;padding:8px 14px;font-size:15px;font-weight:800}.results{gap:18px}.actions{gap:10px;animation:none}#toast{background:var(--ch-ink);border:2px solid var(--ch-paper);border-radius:var(--ch-radius)}.duelover .mid{background:var(--ch-ink);box-shadow:none}.duelover .mid .btn{padding:12px;font-size:17px}.dres.win{background:#14061e66}.half small,.dres span{font-family:var(--ch-font)}.btn.site{z-index:6}.pchip{border:2px solid var(--honey);color:var(--honey);font:700 13px var(--ui,system-ui);background:#2b1b3d99;border-radius:999px;min-height:30px;padding:3px 12px}.pchip.on{color:#fff;background:#9b7bff;border-color:#e2d8ff}.balls{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ballt{color:inherit;background:#fff1dc0f;border:2px solid #fff1dc40;border-radius:16px;flex-direction:column;align-items:center;gap:2px;min-height:48px;padding:8px 4px;display:flex}.ballt canvas{width:52px;height:52px;position:static}.ballt b{font-size:13px}.ballt small{opacity:.85;text-align:center;font-size:11px;line-height:1.2}.ballt.cur{border-color:var(--honey)}.ballt.locked canvas{opacity:.45;filter:grayscale(.6)}.ballt.locked small{color:var(--honey);opacity:1}.ballt:focus-visible{outline:3px solid var(--cream);outline-offset:2px}.lockball{align-self:center;width:80px;height:80px;position:static}.lock-wrap .btn.pri{font-size:17px;line-height:1.2}.x2{color:#5b3cc4;font-style:normal;font-weight:700}.passline{color:inherit;opacity:.85;text-underline-offset:3px;background:0 0;border:0;margin:6px auto 0;padding:4px 10px;font-size:13px;text-decoration:underline;display:block}#contsheet .btn small{font:600 13px/1.2 var(--ch-font,system-ui);opacity:.8;margin-top:2px;display:block}#contsheet .btn{margin-top:8px}#contsheet .btn:disabled{opacity:.6}#contsheet p.small{opacity:.85;text-align:center;margin:6px 0 0;font-size:13px}.near{text-align:left;font-family:var(--ch-font);margin:10px 0 4px}.near-t{font-size:24px;font-weight:800;font-stretch:75%;line-height:1.1}.near.good .near-t{color:#c2410c}.sheet .near.good .near-t{color:var(--honey)}.near-bar{background:color-mix(in srgb,currentColor 15%,transparent);border-radius:7px;height:14px;margin-top:6px;overflow:hidden}.near-bar i{height:100%;width:calc(var(--p) * 100%);background:var(--coral);transform-origin:0;border-radius:7px;animation:.8s cubic-bezier(.2,.8,.2,1) .15s both nearfill;display:block}.near.good .near-bar i{background:var(--honey)}.near-ends{opacity:.7;justify-content:space-between;margin-top:4px;font-size:13px;display:flex}@keyframes nearfill{0%{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.near-bar i{animation:none}}
