@font-face{font-family:Nunito;src:url(/v4/fonts/nunito-latin-variable.woff2)format("woff2");font-weight:200 1000;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font:"Nunito",ui-rounded,system-ui,-apple-system,"Segoe UI",sans-serif;--fs-overline:12px;--fs-caption:13px;--fs-small:14px;--fs-body:16px;--fs-h3:17px;--fs-lead:18px;--fs-h2:20px;--fs-h1:28px;--fs-stat:28px;--fs-display:clamp(40px,6vw,64px);--lh-tight:1.1;--lh-snug:1.3;--lh-body:1.5;--w-body:500;--w-label:650;--w-heading:800;--w-numeral:900;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s14:56px;--s18:72px;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:24px;--r-pill:999px;--bg:#fbf7f2;--bg-glow:#efe6fb;--bg-warm:#fde9df;--surface:#fff;--surface-sunken:#f6f2ee;--surface-tint:#f6f1fd;--line:#e9e1ee;--line-strong:#d6c9e3;--ink:#29213e;--ink-2:#655672;--ink-3:#6f6180;--accent:#6540c5;--accent-strong:#4b2d9e;--accent-soft:#eee6fb;--accent-hi:#7c5ad8;--brand-evens:#23755a;--brand-evens-ink:#1f4d3e;--board:#fffdf9;--source:linear-gradient(150deg,#7c5ad8,#6540c5);--target-1:#effaf4;--target-2:#d3efe1;--target-fill:#b7e2cd;--target-line:#a9d8c1;--target-ink:#1f4d3e;--target-strong:#2f8a68;--success:#23744f;--warn:#8a5a00;--warn-soft:#fff4dc;--danger:#b3372b;--danger-soft:#fde8e3;--streak:#ef6a5b;--tier-easy:#23755a;--tier-medium:#6540c5;--tier-hard:#b23a2e;--focus:#382057;--e1:0 1px 2px #3b22560f,0 4px 12px #3b22560a;--e2:0 2px 6px #3b225614,0 12px 28px #3b225614;--e3:0 -8px 40px #21173b2e;--e-accent:0 8px 20px -6px #6540c566;--e-board:0 2px 4px #29213e0a,0 10px 24px #29213e0f;--t-press:.12s;--t-state:.2s;--t-transfer:.24s;--t-enter:.32s;--t-celebrate:.6s;--t-stagger:40ms;--t-travel:.42s;--t-tap:.52s;--t-fall:1.2s;--t-pulse:1.6s;--t-shimmer:1.4s;--ease:cubic-bezier(.2,.8,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--logo-h:34px;--logo-h-play:28px;--gutter:16px;--max:1120px;--read:720px;--topbar:56px;--tabbar:64px}@media (min-width:600px){:root{--fs-h1:32px;--gutter:24px}}@media (min-width:1024px){:root{--gutter:32px;--topbar:72px;--logo-h:40px}}.larger-text{--fs-overline:13px;--fs-caption:15px;--fs-small:16px;--fs-body:18px;--fs-h3:19px;--fs-lead:20px;--fs-h2:22px;--fs-h1:32px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font);font-size:var(--fs-body);font-weight:var(--w-body);line-height:var(--lh-body);color:var(--ink);background:var(--bg);background-image:radial-gradient(1200px 520px at 85% -160px,var(--bg-glow),transparent 70%),radial-gradient(900px 480px at -10% 110%,var(--bg-warm),transparent 70%);min-height:100vh;font-synthesis:none;-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100dvh;margin:0}h1,h2,h3{font-weight:var(--w-heading);line-height:var(--lh-tight);letter-spacing:-.02em;margin:0}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);letter-spacing:0;line-height:var(--lh-snug);font-weight:700}p{margin:0}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}svg{vertical-align:-.25em;flex:none;width:1.25em;height:1.25em}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}main:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.small{font-size:var(--fs-small)}.xs{font-size:var(--fs-caption)}.row{gap:var(--s3);flex-wrap:wrap;align-items:center;display:flex}.stack{gap:var(--s3);display:grid}.skip{left:var(--s3);z-index:50;background:var(--ink);color:#fff;padding:var(--s3) var(--s4);border-radius:var(--r-sm);text-decoration:none;position:absolute;top:-60px}.skip:focus{top:var(--s3)}.eyebrow{align-items:center;gap:var(--s2);font-size:var(--fs-overline);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-weight:700;line-height:1.2;display:inline-flex}.eyebrow:before{content:"";background:var(--streak);border-radius:50%;width:7px;height:7px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}@media (forced-colors:active){.cell,.tier,.card,.btn,.group,.tile{border:1px solid canvastext}}.mt-1{margin-top:var(--s1)}.mt-2{margin-top:var(--s2)}.mt-3{margin-top:var(--s3)}.mt-4{margin-top:var(--s4)}.mt-5{margin-top:var(--s5)}.mb-3{margin-bottom:var(--s3)}.m-0{margin:0}.center{text-align:center;justify-content:center}.nowrap{flex-wrap:nowrap}.shell{max-width:var(--max);padding:0 var(--gutter) calc(var(--tabbar) + var(--s6) + env(safe-area-inset-bottom));min-height:100vh;margin:0 auto}.topbar{z-index:20;justify-content:space-between;align-items:center;gap:var(--s3);min-height:calc(var(--topbar) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);margin:0 calc(-1 * var(--gutter));padding-inline:var(--gutter);background:#fbf7f2eb;border-bottom:1px solid #0000;border-image:linear-gradient(#fbf7f2eb 0 0) 0 fill/0/0 100vw;display:flex;position:sticky;top:0}.brand{min-width:44px;min-height:44px;color:inherit;border-radius:var(--r-sm);align-items:center;text-decoration:none;display:flex}.brand img{height:var(--logo-h);width:auto;display:block}.topbar-actions{gap:var(--s2);align-items:center;display:flex}.topbar-link{align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s3);border-radius:var(--r-pill);font-size:var(--fs-small);font-weight:var(--w-label);color:var(--accent-strong);background:var(--accent-soft);text-decoration:none;display:inline-flex}.topbar-link svg{width:18px;height:18px}.preview-badge{font-size:var(--fs-overline);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong);background:var(--accent-soft);border-radius:var(--r-pill);padding:var(--s1) var(--s3);font-weight:700}.nav{z-index:30;gap:var(--s1);padding:var(--s2) max(var(--s3),calc(50% - 280px)) calc(var(--s2) + env(safe-area-inset-bottom));-webkit-backdrop-filter:saturate(1.4)blur(18px);border-top:1px solid var(--line);background:#fcf9f5f5;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px -14px #3b225626}.nav a{min-height:48px;padding:var(--s1);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--fs-caption);font-weight:var(--w-label);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.nav svg{width:24px;height:24px}.play-mode .nav{display:none}@media (max-width:1023px){.play-mode .topbar{display:none}.play-mode .shell{padding-bottom:var(--s8)}}@media (min-width:1024px){.shell{padding-bottom:var(--s14)}.topbar{margin-bottom:var(--s2)}.nav{-webkit-backdrop-filter:none;box-shadow:none;gap:var(--s1);background:0 0;border:0;padding:0;position:static}.nav a{gap:var(--s2);min-height:44px;padding:0 var(--s4);font-size:var(--fs-small);flex-direction:row;flex:none}.nav svg{width:20px;height:20px}.play-mode .nav{display:flex}.topbar-link{display:none}}.page{padding:var(--s4) 0 var(--s6);animation:page-in var(--t-enter) var(--ease-out)}@keyframes page-in{0%{opacity:0}to{opacity:1}}@media (min-width:1024px){main>.page:not(.page-wide):not(.play){max-width:var(--read);margin-inline-start:auto;margin-inline-end:auto}}.page-title{font-size:var(--fs-h1);margin:var(--s2) 0 var(--s2)}.page-sub{color:var(--ink-2);font-size:var(--fs-body);max-width:60ch}.section{margin-top:var(--s8)}.section>h2{margin-bottom:var(--s3)}@media (min-width:1024px){.section{margin-top:var(--s10)}}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:48px;padding:0 var(--s5);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);font-weight:var(--w-label);font-size:var(--fs-body);color:var(--ink);transition:transform var(--t-press) var(--ease),background var(--t-state),border-color var(--t-state),box-shadow var(--t-state);line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--line-strong)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn svg{width:20px;height:20px}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--e-accent);border-color:#0000}.btn-primary:hover{background:var(--accent-strong);border-color:#0000}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:#ffffffa6;border-color:#0000}.btn-danger{color:var(--danger);border-color:#f1c9c3}.btn-danger:hover{background:var(--danger-soft)}.btn-block{width:100%}@media (min-width:1024px){.btn{min-height:44px}}.icon-btn{border-radius:var(--r-sm);width:44px;height:44px;color:var(--ink-2);transition:background var(--t-state),color var(--t-state);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-btn:hover{border-color:var(--line);background:#ffffffb3}.icon-btn svg{width:22px;height:22px}.icon-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}.chip{align-items:center;gap:var(--s1);border-radius:var(--r-xs);min-height:26px;padding:0 var(--s2);font-size:var(--fs-caption);font-weight:var(--w-label);background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;display:inline-flex}.chip svg{width:14px;height:14px}.chip-mint{background:var(--target-2);color:var(--target-ink)}.chip-gold{background:var(--warn-soft);color:var(--warn)}.chip-coral{background:var(--danger-soft);color:#8f2d22}.chip-plain{background:var(--surface-sunken);color:var(--ink-2)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);padding:var(--s4)}@media (min-width:600px){.card{padding:var(--s5)}}.list,.group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);display:grid;overflow:hidden}.list-item,.group-row{align-items:center;gap:var(--s3);min-height:60px;padding:var(--s3) var(--s4);border:0;border-top:1px solid var(--line);color:inherit;text-align:left;width:100%;transition:background var(--t-state);background:0 0;justify-content:space-between;text-decoration:none;display:flex}.list>.list-item:first-child,.group>.group-row:first-child{border-top:0}a.list-item:hover,button.list-item:hover,a.group-row:hover,button.group-row:hover{background:var(--surface-tint)}.list-item .title,.group-row .title{font-weight:700;font-size:var(--fs-h3)}.list-item .meta,.group-row .meta{color:var(--ink-2);font-size:var(--fs-small)}.list-item>svg,.group-row>svg{width:20px;height:20px;color:var(--ink-3)}.section>.list-item{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--e1)}.tabs{border-radius:var(--r-sm);background:var(--surface-sunken);scrollbar-width:none;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.tabs button{padding:0 var(--s4);min-height:40px;font-weight:var(--w-label);font-size:var(--fs-small);color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:1}.tabs button[aria-selected=true]{background:var(--surface);color:var(--accent-strong);box-shadow:var(--e1)}.toggle{justify-content:space-between;align-items:center;gap:var(--s3);width:100%;min-height:60px;padding:var(--s3) var(--s4);border:0;border-top:1px solid var(--line);text-align:left;background:0 0;display:flex}.toggle:first-child{border-top:0}.toggle strong{font-weight:700;font-size:var(--fs-body)}.toggle .small{color:var(--ink-2)}.toggle .switch{border-radius:var(--r-pill);width:48px;height:28px;transition:background var(--t-state);background:#d9d0e3;flex:none;position:relative}.toggle .switch:after{content:"";width:22px;height:22px;box-shadow:var(--e1);transition:transform var(--t-state) var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle[aria-checked=true] .switch{background:var(--accent)}.toggle[aria-checked=true] .switch:after{transform:translate(20px)}.settings-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);display:grid;overflow:hidden}.notice{gap:var(--s3);border-radius:var(--r-md);padding:var(--s3) var(--s4);margin-top:var(--s3);font-weight:600;font-size:var(--fs-small);align-items:flex-start;display:flex}.notice svg{width:20px;height:20px;margin-top:1px}.notice strong{font-size:var(--fs-body);display:block}.notice-lost{background:var(--danger-soft);color:#7d2419}.notice-info{background:var(--surface-tint);color:var(--accent-strong)}.notice-ok{background:var(--target-1);color:var(--target-ink)}.notice .row{margin-top:var(--s2)}.banner{gap:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);padding:var(--s4);margin:var(--s4) 0;flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.banner strong{font-size:var(--fs-h3);display:block}.update-banner{justify-content:space-between;align-items:center;gap:var(--s3);margin:var(--s2) 0 0;padding:var(--s2) var(--s2) var(--s2) var(--s4);border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-strong);font-size:var(--fs-small);display:flex}.update-banner .btn{min-height:40px;padding:0 var(--s4);flex:none}.empty{padding:var(--s8) var(--s5);text-align:center;color:var(--ink-2)}.empty-state{justify-items:center;gap:var(--s2);text-align:center;padding:var(--s8) var(--s5);display:grid}.empty-state .empty-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.empty-state .empty-icon svg{width:26px;height:26px}.empty-state p{color:var(--ink-2);font-size:var(--fs-small);max-width:34ch}.empty-state .btn{margin-top:var(--s2)}dialog.sheet{width:100%;max-width:none;height:100%;max-height:none;color:inherit;background:0 0;border:0;margin:0;padding:0}dialog.sheet::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#21173b59}.sheet-panel{background:var(--bg);border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:88vh;padding:var(--s2) var(--s5) calc(var(--s6) + env(safe-area-inset-bottom));box-shadow:var(--e3);animation:sheet-up var(--t-enter) var(--ease-out);position:absolute;bottom:0;left:0;right:0;overflow:auto}.sheet-panel:before{content:"";border-radius:var(--r-pill);background:var(--line-strong);width:40px;height:5px;margin:var(--s1) auto var(--s3);display:block}@media (min-width:600px){.sheet-panel{border-radius:var(--r-lg);width:min(560px,100% - 48px);padding:var(--s5) var(--s6) var(--s6);animation:dialog-in var(--t-enter) var(--ease-out);top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.sheet-panel:before{display:none}}@keyframes sheet-up{0%{opacity:.4;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-47%)}to{opacity:1;transform:translate(-50%,-50%)}}.sheet-head{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4);display:flex}.sheet-head h2{font-size:var(--fs-h2)}.sheet-panel .muted{font-size:var(--fs-body)}.toast{left:50%;bottom:calc(var(--tabbar) + var(--s4) + env(safe-area-inset-bottom));z-index:60;background:var(--ink);color:#fff;padding:var(--s3) var(--s5);border-radius:var(--r-sm);font-weight:var(--w-label);font-size:var(--fs-small);box-shadow:var(--e2);animation:toast-in var(--t-state) var(--ease-out);max-width:calc(100% - 32px);position:fixed;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (min-width:1024px){.toast{bottom:var(--s8)}}.text-input{width:100%;margin-top:var(--s2);min-height:48px;padding:var(--s3) var(--s4);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-body);display:block}.text-input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}details>summary{cursor:pointer;align-items:center;min-height:44px;display:flex}details>summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}pre.diag{white-space:pre-wrap;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s3);font-size:var(--fs-overline)}.stats3{gap:var(--s2);margin:var(--s5) 0;grid-template-columns:repeat(3,1fr);display:grid}.stat{background:var(--surface-sunken);border-radius:var(--r-md);padding:var(--s3) var(--s2);text-align:center}.stat strong{font-size:var(--fs-stat);font-weight:var(--w-heading);font-variant-numeric:tabular-nums;line-height:1.1;display:block}.stat span{font-size:var(--fs-caption);color:var(--ink-2);font-weight:var(--w-label)}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 0%,#fff 50%,var(--surface-sunken) 100%);animation:shimmer var(--t-shimmer) linear infinite;border-radius:var(--r-md);background-size:200% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toggle[data-plain]{border:0;min-height:0;padding:0}.gis-holder{margin:var(--s4) 0;justify-content:center;min-height:44px;display:flex}.gis-holder:empty{border-radius:var(--r-pill);background:linear-gradient(90deg,var(--surface-sunken) 0%,#fff 50%,var(--surface-sunken) 100%);animation:shimmer var(--t-shimmer) linear infinite;background-size:200% 100%;max-width:320px;margin-inline-start:auto;margin-inline-end:auto}.gis-holder[data-off]{display:none}.tier-chips{gap:var(--s2)}.group>.card{border:0;border-top:1px solid var(--line);box-shadow:none;border-radius:0}.group>.card:first-child{border-top:0}.skeleton-title{width:70%;height:28px;margin-bottom:var(--s3)}.skeleton-board{aspect-ratio:1;border-radius:var(--r-lg);width:100%;max-width:600px;margin:0 auto;display:block}.boot{place-content:center;justify-items:center;gap:var(--s4);min-height:60dvh;padding:var(--s10) var(--gutter);text-align:center;color:var(--ink-2);font-size:var(--fs-small);display:grid}.boot-art{width:min(78vw,380px);height:auto}.boot-art .half{animation:boot-half var(--t-enter) var(--ease-out) var(--t-press) both}.boot-note{animation:boot-note var(--t-state) linear var(--t-celebrate) both}@keyframes boot-half{0%{opacity:0;transform:translateY(-6px)}}@keyframes boot-note{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.boot-art .half,.boot-note{animation:none}}.settings-groups{gap:var(--s4);display:grid}.settings-block{gap:var(--s2);display:grid}.settings-heading{padding:0 var(--s1);font-size:var(--fs-overline);font-weight:var(--w-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0}.toggle:disabled{cursor:default}.toggle:disabled .switch{opacity:.55}.board-wrap{width:100%;max-width:600px;margin:0 auto;position:relative;container-type:inline-size}.board{border-radius:min(6cqi,var(--r-lg));background:var(--board);border:1px solid var(--line);box-shadow:var(--e-board);aspect-ratio:1;touch-action:manipulation;-webkit-user-select:none;user-select:none;gap:2.6cqi;padding:3.4cqi;display:grid;position:relative}.cell{aspect-ratio:1;border-radius:min(4.4cqi,var(--r-md));background:var(--surface-sunken);font-weight:var(--w-numeral);font-variant-numeric:tabular-nums;color:var(--ink);min-width:0;min-height:0;transition:transform var(--t-press) var(--ease),background var(--t-state),box-shadow var(--t-state),border-color var(--t-state);border:1px solid #0000;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.cell .num{z-index:1;justify-content:center;align-items:baseline;line-height:1;display:flex;position:relative}.cell .v{font-size:max(14px,13.3cqi);line-height:1}.size-4 .cell .v{font-size:max(14px,9.7cqi)}.cell[data-empty=true] .v{color:var(--ink-3);font-size:max(12px,7.5cqi);font-weight:650}.size-4 .cell[data-empty=true] .v{font-size:max(12px,5.5cqi)}.cell[data-kind=bowl] .v{font-size:max(14px,11cqi)}.size-4 .cell[data-kind=bowl] .v{font-size:max(14px,8cqi)}.cell .goal{color:var(--target-ink);align-items:baseline;font-size:max(12px,7.2cqi);font-weight:800;display:inline-flex}.size-4 .cell .goal{font-size:max(12px,5.3cqi)}.cell .goal .slash{opacity:.7;margin:0 .06em 0 .1em;font-weight:650}.cell .role{z-index:1;letter-spacing:.06em;text-transform:uppercase;opacity:.8;font-size:max(10px,2.4cqi);font-weight:700;position:absolute;bottom:6%;left:0;right:0}.cell[data-kind=pile]:not([data-empty=true]){background:var(--surface-tint);border-color:#e6dcf4;box-shadow:0 1px 1px #29213e0d}.cell[data-kind=pile][data-source=true]{background:var(--source);color:#fff;box-shadow:0 1px 0 #fff3 inset,var(--e-accent);border-color:#0000}.cell[data-kind=bowl]{background:var(--target-1);border:1.5px solid var(--target-line);color:var(--target-ink);box-shadow:inset 0 1px 3px #1f4d3e14}.cell[data-kind=bowl] .fill{background:var(--target-fill);transform-origin:bottom;height:100%;transition:transform var(--t-state) var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:scaleY(0)}.cell[data-kind=bowl][data-full=true]{border-color:var(--target-strong);background:var(--target-2)}.cell[data-kind=bowl][data-full=true] .fill{background:#9fd6bb}.cell[data-kind=bowl][data-full=true]:after{content:"";z-index:1;background:var(--target-strong) no-repeat center/70% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E");border-radius:50%;width:max(12px,4.4cqi);height:max(12px,4.4cqi);position:absolute;top:7%;right:7%}.larger-text .cell .goal{font-size:max(14px,8.6cqi)}.larger-text .size-4 .cell .goal{font-size:max(14px,6.4cqi)}.larger-text .cell[data-empty=true] .v{font-size:max(14px,8.6cqi)}.larger-text .size-4 .cell[data-empty=true] .v{font-size:max(14px,6.4cqi)}.larger-text .cell .role{font-size:max(12px,2.9cqi)}.larger-text .cell .delta,.larger-text .cell .mark{font-size:max(14px,4cqi)}.cell[data-kind=pile][data-selecting=true]{background:var(--source);color:#fff;box-shadow:0 0 0 2px var(--board),0 0 0 4px var(--accent),var(--e-accent);border-color:#0000}.cell[data-eligible=true]{box-shadow:inset 0 0 0 2px var(--accent)}.cell[data-chosen=true]{box-shadow:inset 0 0 0 3px var(--accent)}.cell[data-kind=pile][data-chosen=true]{background:var(--accent-soft)}.cell[data-quiet=true]{box-shadow:none}.cell[data-kind=pile][data-quiet=true]{background:var(--surface-sunken);border-color:#0000}.cell .delta,.cell .mark{z-index:2;border-radius:var(--r-pill);place-items:center;font-size:max(12px,3.4cqi);font-weight:800;line-height:1;display:inline-grid;position:absolute;top:6%;left:6%}.cell .delta{color:var(--accent-strong);background:#ffffffe6;padding:2px 5px}.cell .mark{color:#fff;background:var(--accent);min-width:max(18px,4.8cqi);height:max(18px,4.8cqi)}@container (width<240px){.cell .delta{display:none}}.cell[data-coach=true]{animation:coach var(--t-pulse) var(--ease) infinite}@keyframes coach{0%,to{box-shadow:0 0 #7c5ad800}50%{box-shadow:0 0 0 6px #7c5ad84d}}.cell:not(:disabled):active{transform:scale(.97)}.cell:disabled{cursor:default}.cell[data-arrive=true]{animation:arrive var(--t-state) var(--ease-out)}@keyframes arrive{0%{transform:scale(.97)}60%{transform:scale(1.025)}to{transform:none}}.flyer{z-index:3;pointer-events:none;background:var(--source);color:#fff;width:12cqi;height:12cqi;font-weight:var(--w-numeral);box-shadow:var(--e-accent);transition:transform var(--t-transfer) var(--ease);border-radius:3.6cqi;place-items:center;margin:-6cqi 0 0 -6cqi;font-size:6cqi;display:grid;position:absolute}.solved-glow .cell[data-kind=bowl]{animation:glow var(--t-celebrate) var(--ease-out) both}.solved-glow .cell[data-kind=bowl]:nth-child(2n){animation-delay:var(--t-stagger)}.solved-glow .cell[data-kind=bowl]:nth-child(3n){animation-delay:calc(var(--t-stagger) * 2)}.solved-glow .cell[data-kind=bowl]:nth-child(5n){animation-delay:calc(var(--t-stagger) * 3)}@keyframes glow{0%{transform:scale(1)}40%{transform:scale(1.04);box-shadow:0 0 0 6px #2f8a6833}to{transform:none}}@media (forced-colors:active){.cell[data-source=true],.cell[data-selecting=true]{outline-offset:-4px;outline:3px solid canvastext}.cell[data-eligible=true]{outline-offset:-4px;outline:2px dashed canvastext}}.play{gap:var(--s3);padding-top:var(--s2);grid-template-columns:minmax(0,1fr);display:grid}.play-bar{justify-content:space-between;align-items:center;gap:var(--s2);min-height:48px;margin:0 calc(-1 * var(--s2));display:flex}.play-bar-actions{gap:var(--s1);display:flex}.play-home{min-width:44px;min-height:44px;padding:0 var(--s1);border-radius:var(--r-sm);justify-content:center;align-items:center;margin-right:auto;display:inline-flex}.play-home img{height:var(--logo-h-play);width:auto;display:block}.play-home .play-mark{display:none}@media (max-width:359px){.play-home .play-lockup{display:none}.play-home .play-mark{display:block}}@media (min-width:1024px){.play-home{display:none}}.play-head{justify-content:space-between;align-items:flex-start;gap:var(--s3);min-width:0;display:flex}.play-head>div{min-width:0}.play-title{font-size:var(--fs-h1);margin-top:var(--s1);line-height:1.15}.play-meta{gap:var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.count{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);min-height:32px;padding:0 var(--s3);font-weight:var(--w-heading);font-size:var(--fs-small);font-variant-numeric:tabular-nums;flex:none;align-items:center;display:inline-flex}.instruction{min-height:28px;font-size:var(--fs-lead);font-weight:var(--w-label);line-height:var(--lh-snug);margin-top:var(--s1);align-items:center;display:flex}.coach{background:var(--surface-tint);border-radius:var(--r-md);padding:var(--s3) var(--s4);margin-top:var(--s1);border:1px solid #e6dcf4}.coach h3{font-size:var(--fs-h3);margin-bottom:var(--s1)}.coach p{color:var(--ink-2);font-size:var(--fs-small)}.coach .coach-idea{gap:var(--s3);color:var(--ink);align-items:flex-start;display:flex}.coach .coach-idea svg{color:var(--accent);margin-top:2px}.toolbar{gap:var(--s2);margin:var(--s4) auto 0;grid-template-columns:repeat(2,minmax(0,1fr));max-width:600px;display:grid}.toolbar .btn{padding:0 var(--s2)}.confirm-bar{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;justify-content:center;display:flex}.status-line{text-align:center;color:var(--ink-3);font-size:var(--fs-caption);margin-top:var(--s2);min-height:18px}.help-option{justify-content:space-between;align-items:center;gap:var(--s3);text-align:left;width:100%;padding:var(--s3) var(--s4);border:0;border-top:1px solid var(--line);background:0 0;min-height:64px;display:flex}.stack>.help-option{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.help-option strong{font-size:var(--fs-body);display:block}.help-option span{color:var(--ink-2);font-size:var(--fs-small)}.help-option svg{color:var(--accent)}.help-option:disabled{opacity:.5}.hint-text{background:var(--surface-tint);border-radius:var(--r-md);padding:var(--s3) var(--s4);font-weight:var(--w-label);color:var(--accent-strong)}.rules{padding-left:var(--s5);margin:0 0 var(--s3)}.rules li{margin:var(--s2) 0}.result{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e2);padding:var(--s6) var(--s5);animation:result-in var(--t-enter) var(--ease-out);position:relative;overflow:hidden}@keyframes result-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.result .eyebrow{justify-content:center}.result h2{font-size:var(--fs-h1);margin:var(--s2) 0 var(--s1)}.result .verdict{align-items:center;gap:var(--s1);font-weight:var(--w-heading);font-size:var(--fs-lead);color:var(--accent);display:inline-flex}.result .verdict.perfect{color:var(--warn)}.result .verdict svg{fill:currentColor;width:20px;height:20px}.result .result-actions{gap:var(--s2);margin-top:var(--s5);display:grid}.result .result-actions .row{justify-content:center}.histogram{align-items:flex-end;gap:var(--s1);height:80px;margin:var(--s3) 0 var(--s1);padding:0 var(--s1);display:flex}.histogram div{background:#ddd0ef;border-radius:6px 6px 2px 2px;flex:1;min-height:4px}.histogram div[data-you=true]{background:var(--accent)}.histogram-labels{gap:var(--s1);padding:0 var(--s1);font-size:var(--fs-overline);color:var(--ink-3);font-weight:700;display:flex}.histogram-labels span{text-align:center;flex:1}.idea{background:var(--warn-soft);border-radius:var(--r-md);padding:var(--s3) var(--s4);text-align:left;color:#6d4a05;font-weight:600;font-size:var(--fs-small);margin-top:var(--s3)}.confetti{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.confetti i{width:7px;height:11px;animation:fall var(--t-fall) var(--ease-out) forwards;border-radius:2px;position:absolute;top:-12px}@keyframes fall{to{opacity:0;transform:translateY(320px)rotate(240deg)}}.submit-card{margin-top:var(--s3);padding:var(--s4);border-radius:var(--r-md);background:var(--surface-tint);text-align:left}.submit-card .row{margin-top:var(--s3)}.submit-card .alert{color:var(--danger);margin-top:var(--s2)}@media (max-width:1023px){.result{z-index:40;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:82dvh;padding:var(--s5) var(--s5) calc(var(--s6) + env(safe-area-inset-bottom));box-shadow:var(--e3);animation:sheet-up var(--t-enter) var(--ease-out);border-bottom:0;position:fixed;bottom:0;left:0;right:0;overflow:auto}.result:before{content:"";border-radius:var(--r-pill);background:var(--line-strong);width:40px;height:5px;margin:0 auto var(--s3);display:block}.result .stats3{margin:var(--s4) 0}}@media (min-width:600px) and (max-width:1023px){.result{width:min(560px,100%);animation:none;left:50%;right:auto;transform:translate(-50%)}}@media (min-width:1024px){.play{justify-content:center;align-items:start;gap:var(--s10);padding-top:var(--s4);grid-template-columns:minmax(300px,380px) min(600px,100dvh - 190px)}.play-side{top:calc(var(--topbar) + var(--s4));position:sticky}.play .result{margin-top:var(--s5)}}.today{padding-top:0}.today-sheet{row-gap:var(--s4);grid-template-columns:minmax(0,1fr);grid-template-areas:"copy""demo""play";display:grid}.today-copy{grid-area:copy}.hero h1{letter-spacing:-.035em;margin:var(--s2) 0;font-size:clamp(30px,8.4vw,40px);line-height:1.04}.hero h1 span{color:var(--brand-evens)}.today-sub{color:var(--ink-2);font-size:var(--fs-small);max-width:44ch}.today-demo{justify-items:center;row-gap:var(--s3);grid-area:demo;grid-template-columns:minmax(0,1fr);display:grid}.try-stage{width:min(64vw,30dvh,420px);position:relative;container-type:inline-size}.demo-board .board-wrap{max-width:none}.demo-board{transition:opacity var(--t-enter) var(--ease),transform var(--t-enter) var(--ease)}.demo-board.is-fading{opacity:0;transform:scale(.98)}.ghost{z-index:4;pointer-events:none;border:2px solid var(--accent-hi);width:13cqi;height:13cqi;transition:left var(--t-travel) var(--ease),top var(--t-travel) var(--ease);animation:ghost-in var(--t-enter) var(--ease-out);background:#ffffffb8;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 14px #3b225633}.ghost[data-press=true]{animation:ghost-press var(--t-tap) var(--ease-out)}@keyframes ghost-in{0%{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}@keyframes ghost-press{0%{transform:translate(-50%,-50%)scale(1)}35%{transform:translate(-50%,-50%)scale(.78)}to{transform:translate(-50%,-50%)scale(1)}}.today-caption{text-align:center;justify-items:center;gap:var(--s1);width:100%;min-width:0;max-width:40ch;display:grid}.demo-toggle{color:var(--ink-3)}.demo-toggle svg{width:18px;height:18px}.demo-text{font-size:var(--fs-small);color:var(--ink-2);line-height:var(--lh-snug);min-height:2.6em;margin:0}.demo-text strong{color:var(--ink);font-weight:var(--w-heading)}.try-actions{justify-content:center;align-items:center;gap:var(--s2);min-height:44px;display:flex}.try-actions .eyebrow{margin:0}.try-actions>.btn{min-width:96px}.try-actions .btn:disabled{visibility:hidden}.demo-dots{display:flex}.demo-dots button{background:0 0;border:0;place-items:center;width:40px;height:44px;padding:0;display:grid}.demo-dots i{width:8px;height:8px;transition:width var(--t-state) var(--ease),background var(--t-state);background:#d9cfe6;border-radius:4px;display:block}.demo-dots button[aria-current] i{background:var(--accent);width:22px}.try-actions .btn{min-height:44px;padding:0 var(--s4);font-size:var(--fs-small)}.try-actions .btn svg{width:16px;height:16px}.banner.learn-link{box-shadow:none;color:var(--ink-2);background:0 0;border:0;margin:0;padding:0;display:block}.learn-link a{align-items:center;gap:var(--s1);font-weight:var(--w-heading);min-height:44px;text-decoration:none;display:inline-flex}.learn-link svg{width:16px;height:16px}.today.is-deciding .today-sheet{visibility:hidden}.today.returning .today-sheet{grid-template-areas:"copy""play"}.today-title{font-size:var(--fs-h1);letter-spacing:-.02em;margin:var(--s1) 0;line-height:1.1}.today-how{border-top:1px solid var(--line);padding-top:var(--s1)}.today-how>summary{align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s1);cursor:pointer;font-size:var(--fs-small);font-weight:var(--w-label);color:var(--ink-2);border-radius:var(--r-sm);list-style:none;display:flex}.today-how>summary::-webkit-details-marker{display:none}.today-how>summary svg{width:18px;height:18px;color:var(--accent)}.today-how>summary:after{content:"";border:solid var(--ink-3);width:8px;height:8px;transition:transform var(--t-state) var(--ease);border-width:0 2px 2px 0;margin-left:auto;transform:rotate(45deg)}.today-how[open]>summary:after{transform:rotate(-135deg)}.today-how[open]>.today-demo{padding:var(--s2) 0 var(--s3)}.today-play{gap:var(--s3);grid-area:play;align-content:start;display:grid}.tiers{gap:var(--s2);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.tier{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:0;box-shadow:var(--e1);padding:var(--s3);min-height:96px;color:inherit;transition:transform var(--t-state) var(--ease),box-shadow var(--t-state),border-color var(--t-state);flex-direction:column;gap:2px;text-decoration:none;display:flex;position:relative}a.tier:hover{box-shadow:var(--e2);border-color:var(--line-strong);transform:translateY(-1px)}.tier-top{align-items:center;gap:6px;min-width:0;display:flex}.tier-glyph{flex:none;display:grid}.tier-glyph svg{width:18px;height:18px}.tier[data-tier=easy] .tier-glyph{color:var(--tier-easy)}.tier[data-tier=medium] .tier-glyph{color:var(--tier-medium)}.tier[data-tier=hard] .tier-glyph{color:var(--tier-hard)}.tier-name{font-size:var(--fs-h3);font-weight:var(--w-heading);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tier-meta{align-items:center;gap:var(--s1);font-size:var(--fs-caption);font-weight:var(--w-label);color:var(--ink-3);white-space:nowrap;display:flex}.tier-ranked{color:var(--warn);align-items:center;gap:2px;display:inline-flex}.tier-ranked svg{width:14px;height:14px}.tier-ranked span{display:none}.tier-state{align-items:center;gap:0 var(--s2);padding-top:var(--s1);font-size:var(--fs-small);font-weight:var(--w-label);flex-wrap:wrap;margin-top:auto;display:flex}.tier-state .go{color:var(--accent);font-weight:var(--w-heading);align-items:center;gap:2px;display:inline-flex}.tier-state .go svg{width:16px;height:16px}.tier-state .done{color:var(--success);font-weight:var(--w-heading);align-items:center;gap:3px;display:inline-flex}.tier-state .done-gold{color:var(--warn)}.tier-state .done svg{width:15px;height:15px}.tier-state .muted{font-size:var(--fs-caption)}.tier-off{border:1.5px dashed var(--line-strong);box-shadow:none;background:#ffffff80}.tier-off .tier-name{color:var(--ink-2)}.tier-off .tier-state{flex-direction:column;align-items:flex-start}.tier-dot{border-radius:50%;flex:none;width:10px;height:10px}.list-item[data-tier=easy] .tier-dot{background:var(--tier-easy)}.list-item[data-tier=medium] .tier-dot{background:var(--tier-medium)}.list-item[data-tier=hard] .tier-dot{background:var(--tier-hard)}.today-strip{row-gap:var(--s1);justify-content:space-between;align-items:center;gap:var(--s3);padding:0 var(--s1);flex-wrap:wrap;min-height:32px;display:flex}.strip-streak{align-items:center;gap:var(--s2);min-width:0;display:flex}.today-strip .flame{color:var(--streak);display:grid}.today-strip .flame svg{width:18px;height:18px}.streak-num{font-weight:var(--w-heading);font-variant-numeric:tabular-nums}.strip-label{font-size:var(--fs-small);font-weight:var(--w-label);line-height:1.25}.strip-next{align-items:baseline;gap:var(--s1);white-space:nowrap;display:flex}.strip-next .strip-label{font-size:var(--fs-caption)}.today-past{justify-self:start;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s1);border-radius:var(--r-sm);font-size:var(--fs-small);color:var(--ink-2);text-decoration:none;display:none}.today-past strong{color:var(--accent-strong);font-weight:var(--w-label)}.today-past svg{width:18px;height:18px;color:var(--accent)}.today-past:hover strong{text-underline-offset:3px;text-decoration:underline}@media (min-width:1024px){.today-past{display:inline-flex}}.countdown{font-size:var(--fs-small);font-weight:var(--w-heading);font-variant-numeric:tabular-nums;white-space:nowrap}.countdown .xs{display:none}@media (max-width:599px) and (max-height:759px){.today-sub{display:none}.today-sheet{row-gap:var(--s3)}.today-demo{row-gap:var(--s1)}.hero h1{font-size:var(--fs-h1);margin:var(--s1) 0}.try-stage{width:min(60vw,24dvh)}.tier{min-height:80px}}@media (max-width:599px){.today-strip .strip-label{font-size:var(--fs-caption)}.tier{padding:var(--s3) var(--s2) var(--s2)}.tier-name{font-size:var(--fs-body)}.larger-text .tier-glyph{display:none}}@media (min-width:600px){.today-sheet{row-gap:var(--s5)}.try-stage{width:min(56vw,38dvh,440px)}.tier{min-height:112px;padding:var(--s4)}.tier-name{font-size:var(--fs-h2)}.tier-ranked span{display:inline}.today-sub{font-size:var(--fs-body)}.countdown .xs{display:inline}}@media (min-width:1024px){.today-sheet{column-gap:clamp(40px,6vw,88px);row-gap:var(--s6);padding-top:var(--s6);grid-template:"copy demo""play demo"1fr/minmax(0,1fr) clamp(300px,100dvh - 330px,460px);align-items:start}.today-demo{align-self:center}.try-stage{width:100%}.hero h1{margin:var(--s3) 0;font-size:clamp(44px,min(4.8vw,7.6dvh),64px)}.today-sub{font-size:var(--fs-lead)}.today-strip{padding:0}.today.returning .today-sheet{row-gap:var(--s5);grid-template:"copy""play"/minmax(0,820px);justify-content:center}.today-title{font-size:clamp(34px,3.2vw,42px)}.today.returning .try-stage{width:min(360px,40dvh)}}.step-num{border-radius:var(--r-sm);width:36px;height:36px;font-weight:var(--w-heading);background:var(--accent-soft);color:var(--accent-strong);flex:none;place-items:center;display:grid}.step-num[data-done=true]{background:var(--target-2);color:var(--target-ink)}.list-item .meta .tier-dot{width:9px;height:9px;margin-right:var(--s2);vertical-align:1px;display:inline-block}.filters{gap:var(--s2);scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filters .tabs{flex:none}.list-head{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.list-head h2{margin:0}.tabs-sm button{min-height:40px;padding:0 var(--s3);font-size:var(--fs-caption)}.ranks{min-height:120px}.ranks .empty-state{padding:var(--s6) var(--s5)}.rank-row{gap:var(--s3);min-height:60px;padding:var(--s2) var(--s4);border-top:1px solid var(--line);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;display:grid}.rank-row:first-child{border-top:0}.rank-row .rank{width:36px;height:36px;font-weight:var(--w-heading);font-size:var(--fs-body);color:var(--accent-strong);background:var(--accent-soft);border-radius:50%;place-items:center;display:grid}.rank-row[data-podium="1"] .rank{color:#5c4200;background:#f6d77a}.rank-row[data-podium="2"] .rank{color:#3d4152;background:#dfe1ea}.rank-row[data-podium="3"] .rank{color:#5e3312;background:#efc9a8}.rank-row[data-podium] .title{font-size:var(--fs-lead)}.rank-row .title{font-weight:700}.rank-row .meta{color:var(--ink-2);font-size:var(--fs-small)}.rank-row .score{font-weight:var(--w-heading);font-variant-numeric:tabular-nums;white-space:nowrap}.rank-row[data-own=true]{background:var(--surface-tint);box-shadow:inset 3px 0 0 var(--accent)}.skeleton-dot{border-radius:50%;width:36px;height:36px;display:block}.streak{align-items:center;gap:var(--s4);flex-wrap:wrap;justify-content:space-between;display:flex}.streak svg{width:28px;height:28px}.flush{padding:0}.section-tight{margin-top:var(--s5)}.row-text{flex:1;gap:2px;min-width:0;display:grid}.row-text .title,.row-text .meta{text-overflow:ellipsis;overflow:hidden}.row-text .meta{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.list-item.lesson{justify-content:flex-start}.list-item.lesson>.chip,.list-item.lesson>svg{flex:none;margin-left:auto}.thumb{border-radius:var(--r-xs);background:var(--surface);border:1px solid var(--line);width:44px;height:44px;box-shadow:var(--e1);flex:none;gap:2px;padding:3px;display:grid}.thumb.size-3{grid-template-columns:repeat(3,1fr)}.thumb.size-4{grid-template-columns:repeat(4,1fr)}.thumb i{background:var(--surface-sunken);border-radius:2px}.thumb i[data-k=even]{background:var(--accent-hi)}.thumb i[data-k=odd]{background:#dccdf5}.thumb i[data-k=bowl]{background:var(--target-2);box-shadow:inset 0 0 0 1px var(--target-line)}.progress-head{align-items:center;gap:var(--s3);margin-top:var(--s5);display:flex}.progress-label{font-size:var(--fs-small);font-weight:var(--w-label);color:var(--ink-2);white-space:nowrap}.progress{border-radius:var(--r-pill);background:var(--surface-sunken);flex:1;height:8px;overflow:hidden}.progress i{border-radius:inherit;background:var(--accent);width:0;height:100%;transition:width var(--t-enter) var(--ease-out);display:block}.progress i[data-w="1"]{width:20%}.progress i[data-w="2"]{width:40%}.progress i[data-w="3"]{width:60%}.progress i[data-w="4"]{width:80%}.progress i[data-w="5"]{background:var(--success);width:100%}.lesson[data-next=true]{background:var(--surface-tint);box-shadow:inset 3px 0 0 var(--accent)}.level{gap:3px;display:inline-flex}.level i{background:var(--line-strong);border-radius:50%;width:6px;height:6px}.level[data-level="1"] i:nth-child(-n+1),.level[data-level="2"] i:nth-child(-n+2),.level[data-level="3"] i{background:var(--accent)}.shortcuts{gap:var(--s3);display:grid}.shortcut{align-items:center;gap:var(--s3);min-height:72px;padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);color:inherit;transition:box-shadow var(--t-state),border-color var(--t-state);text-decoration:none;display:flex}.shortcut:hover{box-shadow:var(--e2);border-color:var(--line-strong)}.shortcut .title{font-weight:700;font-size:var(--fs-h3)}.shortcut .meta{color:var(--ink-2);font-size:var(--fs-small)}.shortcut>svg{width:20px;height:20px;color:var(--ink-3);flex:none}.shortcut-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.shortcut-icon svg{width:22px;height:22px}.ring{flex:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.ring svg{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:4px}.ring-track{stroke:var(--accent-soft)}.ring-value{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray var(--t-enter) var(--ease-out)}.ring b{font-size:var(--fs-overline);font-weight:var(--w-heading);color:var(--accent-strong)}@media (min-width:600px){.shortcuts{grid-template-columns:1fr 1fr}}.day-tier{background:0 0}.day-tier .title{align-items:center;gap:var(--s2);font-size:var(--fs-body);display:flex}.day-tier .tier-dot{width:9px;height:9px;display:inline-block}.day-tier[data-tier=easy] .tier-dot{background:var(--tier-easy)}.day-tier[data-tier=medium] .tier-dot{background:var(--tier-medium)}.day-tier[data-tier=hard] .tier-dot{background:var(--tier-hard)}.go-text{align-items:center;gap:var(--s1);color:var(--accent);font-weight:var(--w-heading);font-size:var(--fs-small);display:inline-flex}.go-text svg{width:16px;height:16px}.skeleton-line{width:60%;height:14px;display:block}.you-head{align-items:center;gap:var(--s4);margin-top:var(--s2);display:flex}.avatar{background:var(--source);color:#fff;width:56px;height:56px;font-weight:var(--w-heading);font-size:var(--fs-h2);box-shadow:var(--e-accent);border-radius:50%;flex:none;place-items:center;display:grid}.avatar svg{width:26px;height:26px}.you-head .meta{color:var(--ink-2);font-size:var(--fs-small)}.streak-card{align-items:center;gap:var(--s4);grid-template-columns:minmax(0,1fr) auto;display:grid}.streak-main{align-items:center;gap:var(--s3);display:flex}.streak-main .flame{color:var(--streak);display:grid}.streak-main .flame svg{width:32px;height:32px}.streak-card .streak-num{font-size:var(--fs-display);line-height:1}.streak-best{justify-items:end;line-height:1.1;display:grid}.streak-best strong{font-size:var(--fs-h1);font-weight:var(--w-heading)}.badges{gap:var(--s2);flex-wrap:wrap;display:flex}.badges .chip svg{width:14px;height:14px}.stat-tiles{gap:var(--s2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat-tile{padding:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--e1);gap:2px;min-width:0;display:grid}.stat-tile strong{font-size:var(--fs-stat);font-weight:var(--w-heading);margin-top:var(--s1);line-height:1.1}.stat-tile .meta{color:var(--ink-2);font-size:var(--fs-caption)}.stat-name{align-items:center;gap:var(--s2);font-weight:var(--w-heading);font-size:var(--fs-small);display:flex}.stat-tile[data-tier=easy] .tier-dot{background:var(--tier-easy)}.stat-tile[data-tier=medium] .tier-dot{background:var(--tier-medium)}.stat-tile[data-tier=hard] .tier-dot{background:var(--tier-hard)}.you-grid{gap:var(--s5);margin-top:var(--s4);display:grid}.you-links .list-item{justify-content:flex-start}.you-links .row-lead{border-radius:var(--r-sm);background:var(--accent-soft);width:36px;height:36px;color:var(--accent-strong);flex:none;place-items:center;display:grid}.you-links .row-lead svg{width:20px;height:20px}.you-links .meta[data-attention]{color:var(--warn);font-weight:var(--w-label)}.you-links .meta svg{flex:none;width:16px;height:16px}.week-block{gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line);grid-column:1/-1;display:grid}.streak-card .week-block .week{border:0;justify-content:space-between;margin:0;padding:0;list-style:none;display:flex}.week li{border-radius:var(--r-xs);width:30px;height:30px;font-size:var(--fs-overline);background:var(--surface-sunken);color:var(--ink-3);place-items:center;font-weight:700;display:grid}.week li[data-done=true]{background:var(--accent);color:#fff}.week li[data-today=true]{outline:2px solid var(--accent);outline-offset:2px}.overline{font-size:var(--fs-overline);font-weight:var(--w-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.you-empty .btn{align-self:start}.you-details{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--e1);overflow:hidden}.you-details>summary{justify-content:space-between;align-items:center;gap:var(--s3);min-height:52px;padding:0 var(--s4);cursor:pointer;font-weight:var(--w-heading);list-style:none;display:flex}.you-details>summary::-webkit-details-marker{display:none}.you-details>summary .meta{color:var(--ink-2);font-size:var(--fs-small);font-weight:var(--w-label);margin-left:auto}.you-details>summary:after{content:"";border:solid var(--ink-3);width:8px;height:8px;transition:transform var(--t-state) var(--ease);border-width:0 2px 2px 0;transform:rotate(45deg)}.you-details[open]>summary:after{transform:rotate(-135deg)}.you-details .list{box-shadow:none;border:0;border-top:1px solid var(--line);border-radius:0}.you-details .list-item{flex-wrap:wrap;min-height:52px}.back-link{align-items:center;gap:var(--s1);min-height:44px;margin-left:calc(var(--s2) * -1);padding:0 var(--s2);border-radius:var(--r-sm);color:var(--accent-strong);font-weight:var(--w-label);text-decoration:none;display:inline-flex}.back-link svg{width:18px;height:18px}.back-link:hover{background:var(--surface-tint)}.you-sub{max-width:680px}.support-text{width:100%;font-family:ui-monospace,monospace;font-size:var(--fs-caption);resize:vertical}@media (min-width:1024px){.you-grid{align-items:start;column-gap:var(--s6);grid-template-columns:minmax(0,1fr) minmax(0,400px)}}.you-sub .page-sub{margin:0 0 var(--s4)}.archive .page-sub{max-width:56ch}.cal-layout{gap:var(--s4);display:grid}.cal{padding:var(--s3)}.cal-head{justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s2);display:flex}.cal-title{text-align:center;justify-items:center;display:grid}.cal-title h2{font-size:var(--fs-h2);margin:0}.cal-title .meta{font-size:var(--fs-caption);color:var(--ink-2)}.cal-next svg{transform:scaleX(-1)}.cal-head .icon-btn{border:1px solid var(--line);background:var(--surface)}.cal-head .icon-btn:disabled{opacity:.35}.cal-grid{gap:var(--s1);display:grid}.cal-weekdays,.cal-days{gap:var(--s1);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-weekdays span{text-align:center;font-size:var(--fs-overline);font-weight:var(--w-label);letter-spacing:.06em;color:var(--ink-3);padding:var(--s1) 0}.cal-day,.cal-blank{aspect-ratio:1;min-height:44px}.cal-day{border-radius:var(--r-sm);color:var(--ink);font:inherit;transition:background var(--t-state),border-color var(--t-state),transform var(--t-press) var(--ease);background:0 0;border:1px solid #0000;align-content:center;place-items:center;gap:3px;padding:0;display:grid;position:relative}.cal-day b{font-size:var(--fs-small);font-weight:var(--w-heading);font-variant-numeric:tabular-nums;line-height:1}button.cal-day{cursor:pointer;background:var(--surface);border-color:var(--line)}button.cal-day:hover{border-color:var(--line-strong)}button.cal-day:active{transform:scale(.96)}.cal-day[data-kind=catchup]{background:var(--surface-tint);border-color:#e6dcf4}.cal-day[data-kind=today]{border:2px solid var(--accent)}.cal-day[data-complete=true]{background:var(--target-1);border-color:var(--target-line)}.cal-day[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--e-accent)}.cal-day[aria-pressed=true] .cal-dots i{border-color:#fff}.cal-day[aria-pressed=true] .cal-dots i[data-done]{background:#fff}.cal-day[data-kind=future] b,.cal-day[data-kind=empty] b{color:var(--ink-3);font-weight:var(--w-label)}.cal-day[data-kind=future]{background:var(--surface-sunken);opacity:.7;border-radius:var(--r-sm)}.cal-dots{gap:3px;height:7px;display:flex}.cal-dots i{border:1.5px solid;border-radius:50%;width:7px;height:7px}.cal-dots i[data-tier=easy]{color:var(--tier-easy)}.cal-dots i[data-tier=medium]{color:var(--tier-medium)}.cal-dots i[data-tier=hard]{color:var(--tier-hard)}.cal-dots i[data-done=true]{background:currentColor}.cal-dots i[data-none]{visibility:hidden}.cal-legend{gap:var(--s2) var(--s4);margin:var(--s3) 0 0;color:var(--ink-2);flex-wrap:wrap;display:flex}.cal-legend span{align-items:center;gap:var(--s2);display:inline-flex}.cal-key{border:1px solid var(--line);border-radius:4px;width:14px;height:14px}.cal-key[data-kind=catchup]{background:var(--surface-tint);border-color:#e6dcf4}.cal-key[data-kind=daily]{background:var(--surface)}.dot-key{border:1.5px solid var(--accent);border-radius:50%;width:9px;height:9px}.dot-key[data-done]{background:var(--accent)}.cal-panel .eyebrow{margin:0}.cal-panel-title{margin:var(--s1) 0 var(--s1);font-size:var(--fs-h2)}.cal-panel .empty-state{padding:var(--s6) var(--s4)}@media (min-width:600px){.cal{padding:var(--s5)}.cal-days,.cal-weekdays{gap:var(--s2)}.cal-dots i{width:8px;height:8px}.cal-dots{height:8px}}@media (min-width:1024px){.archive.page{max-width:var(--max);margin-inline-start:auto;margin-inline-end:auto}.cal-layout{align-items:start;gap:var(--s6);grid-template-columns:minmax(0,1fr) 360px}.cal-panel{top:calc(var(--topbar) + var(--s4));position:sticky}}
