@font-face{font-family:Shantell Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-cyrillic-ext-full-normal-BjYxMGxf.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Shantell Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-cyrillic-full-normal-DUfzUDR1.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Shantell Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-vietnamese-full-normal-BtHVRjmM.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Shantell Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-latin-ext-full-normal-db8N66z1.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Shantell Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-latin-full-normal-BMB_BRHG.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Shantell Sans Variable;font-style:italic;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-cyrillic-ext-wght-italic-BQ7hZY23.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Shantell Sans Variable;font-style:italic;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-cyrillic-wght-italic-yzWqHhYZ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Shantell Sans Variable;font-style:italic;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-vietnamese-wght-italic-DqGQIITw.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Shantell Sans Variable;font-style:italic;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-latin-ext-wght-italic-DAl0n-Qr.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Shantell Sans Variable;font-style:italic;font-display:swap;font-weight:300 800;src:url(/assets/shantell-sans-latin-wght-italic-BZwdb6EN.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@property --sweep{syntax: "<angle>"; inherits: false; initial-value: 360deg;}:root{--font-hand: "Shantell Sans Variable", "Chalkboard SE", "Segoe Print", "Comic Sans MS", system-ui, sans-serif;--font-pen: var(--font-hand);--font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--hand: "INFM" 0, "BNCE" 0;--hand-loud: "INFM" 55, "BNCE" 12;--paper: #fdfeff;--grid: #d5e4f2;--grid-strong: #b9d0e6;--sheet: #ffffff;--sheet-rule: #dde9f5;--margin-red: #f3a6a6;--ink: #1f2f6b;--ink-soft: #4b5a8c;--ink-hint: #66729d;--ink-faint: #a9b4d2;--pen-2: #6a2c8a;--red-pen: #d0302b;--red-wash: #ffe3e0;--pen-green: #1c7a44;--green-wash: #dbf5e5;--hl-yellow: #ffe45c;--hl-pink: #ffb8d4;--hl-mint: #aeecc9;--hl-blue: #c2e3ff;--hl-orange: #ffd3a3;--hl-lilac: #ddd1ff;--blush: #ffa3c2;--note-yellow: #fff1a1;--note-pink: #ffdbe9;--note-mint: #d4f5e2;--note-blue: #d8ecff;--lift: 0 1px 1px rgba(31, 47, 107, .08), 0 6px 14px -6px rgba(31, 47, 107, .28);--lift-high: 0 1px 2px rgba(31, 47, 107, .08), 0 16px 30px -14px rgba(31, 47, 107, .4);--lift-note: 0 1px 1px rgba(31, 47, 107, .1), 0 12px 16px -12px rgba(31, 47, 107, .55);--wob-a: 14px 5px 16px 6px / 6px 15px 5px 13px;--wob-b: 6px 16px 7px 14px / 15px 6px 13px 5px;--wob-pill: 255px 18px 225px 18px / 18px 225px 18px 255px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--cat-sat: 75%;--cat-l1: 95%;--cat-l2: 90.5%;--cat-label-sat: 45%;--cat-label-l: 31%;--kind-sat: 65%;--kind-l: 22%;--felt-1: #2b7a5d;--felt-2: #175139;--felt-rim: #0f3a2a;--felt-ink: #f1f8f4;--felt-muted: rgba(241, 248, 244, .72);--felt-lift: 0 1px 2px rgba(0, 0, 0, .06), 0 8px 24px rgba(0, 0, 0, .05);--card-face: #fffcf5;--card-ink: #1f1b17;--card-line: #e6ddcf;--suit-me: #c0263a;--suit-them: #1f3b6a;--back-me: #b4293a;--back-them: #2a4c82;--back-deck: #8a6428;--gold: #f2c14e;--on-gold: #3a2a05;--back-ink: #ffffff;--room-1: #22336a;--room-2: #0d1531;--room-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23f2c14e' stroke-opacity='.2' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath transform='translate(14 12) rotate(-12 17 17) scale(1.4)' d='M12 20C5 15 3 11 5 8s6-3 7 1c1-4 5-4 7-1s0 7-7 12z'/%3E%3Cpath transform='translate(96 20) rotate(10 17 17) scale(1.4)' d='M12 3C8 8 4 10 4 14c0 3 4 4 7 1l-1 5h4l-1-5c3 3 7 2 7-1 0-4-4-6-8-11z'/%3E%3Cpath transform='translate(30 96) rotate(8 17 17) scale(1.4)' d='M12 3l7 9-7 9-7-9z'/%3E%3Cpath transform='translate(108 100) rotate(-8 17 17) scale(1.4)' d='M12 13c-2 2-6 3-6-1s4-3 5-2c-2-2-1-6 1-6s3 4 1 6c1-1 5-2 5 2s-4 3-6 1l1 7h-2z'/%3E%3Cpath d='M70 70l3 3-3 3-3-3zM150 70l3 3-3 3-3-3zM70 150l3 3-3 3-3-3zM2 140l2 2-2 2-2-2z' stroke-opacity='.14'/%3E%3C/g%3E%3C/svg%3E");--room-pink: #f4b6bf;--seal: #b4293a;--seal-ink: #ffffff;--seal-line: #e2ddd7;--wrong-face: #fde6e9;--wrong-ink: #a3192b;--wrong-edge: #e0495b;--loss: #ff9aa4;color-scheme:light}@media (prefers-color-scheme: dark){:root{--felt-1: #1f5d47;--felt-2: #0f3527;--felt-rim: #08231a;--felt-lift: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3);--card-face: #f3ede2;--card-line: #d8cfbf;--seal: #e35d6a;--seal-ink: #1a1016;--seal-line: #33313b}}*{box-sizing:border-box}html{overflow-x:clip;background:var(--paper);scrollbar-color:var(--ink-faint) transparent}body{margin:0;min-height:100vh;overflow-x:hidden;overflow-x:clip;color:var(--ink);font:430 16px/1.55 var(--font-hand);font-variation-settings:var(--hand);background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:20px 20px;background-position:center -1px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}:focus-visible{outline:2.5px dashed var(--ink);outline-offset:3px}.felt :focus-visible{outline:2px solid var(--gold);outline-offset:2px}::selection{background:color-mix(in srgb,var(--hl-yellow) 80%,transparent);color:var(--ink)}input,textarea{caret-color:var(--pen-2)}::placeholder{color:var(--ink-hint);opacity:1}.app{position:relative;z-index:1;max-width:640px;margin:0 auto;padding:1.4rem 1rem calc(2.5rem + env(safe-area-inset-bottom));view-transition-name:page}h1{font-size:clamp(2.05rem,8vw,2.7rem);font-weight:750;font-variation-settings:var(--hand-loud);line-height:1.08;letter-spacing:-.01em;margin:0 0 .35rem;text-wrap:balance}.page-title{font-size:clamp(1.8rem,6.5vw,2.2rem);margin:.25rem 0 .75rem}h3{display:block;width:fit-content;font-size:1.15rem;font-weight:750;font-variation-settings:var(--hand-loud);color:var(--ink);margin:2rem 0 .75rem;padding-bottom:.4rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 8'%3E%3Cpath d='M2 5c5-4 9 2 14-1s9-3 14 0 9 2 14-1 9-2 14 0' fill='none' stroke='%23ff8fbc' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") left bottom / 48px 7px repeat-x}.note{color:var(--ink-soft);font-size:.93rem;margin:.4rem 0}.note.center{text-align:center}.note.warn{position:relative;color:var(--ink);background:var(--note-pink);border-radius:2px 3px 8px 2px;padding:1rem 1rem .85rem;margin-top:1.5rem;rotate:.6deg;box-shadow:var(--lift-note)}.zh{font-family:var(--font-pen);font-variation-settings:var(--hand);font-style:italic;font-weight:620;color:var(--pen-2)}.card:before,.activity:before,.note.warn:before,.lang-card:before{content:"";position:absolute;z-index:2;top:-10px;left:50%;width:64px;height:20px;translate:-50% 0;rotate:-3deg;background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--tape, var(--hl-pink)) 80%,transparent) 0,color-mix(in srgb,var(--tape, var(--hl-pink)) 80%,transparent) 6px,color-mix(in srgb,var(--tape, var(--hl-pink)) 55%,transparent) 6px,color-mix(in srgb,var(--tape, var(--hl-pink)) 55%,transparent) 12px);box-shadow:0 1px 1px #1f2f6b14;pointer-events:none}button{font:inherit;font-weight:650;color:var(--ink);cursor:pointer;background:var(--sheet);border:2px solid var(--ink);border-radius:var(--wob-a);padding:.8rem 1rem;min-height:48px;transition:transform .06s ease,background .15s ease,border-color .15s ease}button:active{transform:scale(.985)}button:disabled{cursor:default}button:not(.felt *){transition:transform .18s var(--ease-out),translate .25s var(--ease-out),rotate .25s var(--ease-out),background-color .15s ease,border-color .15s ease,box-shadow .2s ease,opacity .2s ease}button:not(.felt *):active:not(:disabled){transform:scale(.965)}.primary,.secondary,.danger,.option,.swap{position:relative;isolation:isolate;border-color:transparent}.primary:after,.secondary:after,.danger:after,.option:after,.swap:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:2px solid var(--line-c, var(--ink));border-radius:inherit;filter:url(#wobble);pointer-events:none}@media (hover: hover){:is(.primary,.secondary,.danger,.option,.swap):not(:disabled):not(.felt *):hover:after{filter:url(#boil)}:is(.primary,.secondary,.danger):not(:disabled):not(.felt *):hover{rotate:-.6deg}}.primary{background:var(--hl-yellow);color:var(--ink);font-weight:750;box-shadow:var(--lift)}.primary:disabled{background:color-mix(in srgb,var(--hl-yellow) 35%,var(--sheet));color:var(--ink-hint);box-shadow:none}.secondary{background:var(--sheet)}.danger{--line-c: var(--red-pen);color:var(--red-pen);background:transparent}.big{width:100%;margin-top:1rem}.link{background:none;border:none;color:var(--ink);padding:.5rem .15rem;min-height:44px;font-weight:700;text-decoration:underline wavy var(--hl-pink) 2px;text-underline-offset:6px}@media (hover: hover){.link:hover{color:var(--pen-2);text-decoration-color:var(--pen-2)}}.link.back{text-decoration:none}.link.wide{width:100%;margin-top:1.25rem;text-align:center}.home-links{display:flex;gap:.5rem;margin-top:1.4rem}.home-links .link{flex:1;text-align:center}.link.arrow:after{content:"";display:inline-block;width:22px;height:12px;margin-left:.35rem;vertical-align:middle;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 12'%3E%3Cpath d='M2 6.5c5-1 11 .5 17-.5M14 2l5 4-5 4' fill='none' stroke='%231f2f6b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;transition:translate .25s var(--ease-out)}@media (hover: hover){.link.arrow:hover:after{translate:4px 0}}.key-hint{display:inline-grid;place-items:center;min-width:1.55em;height:1.55em;padding:0 .3em;margin-right:.55rem;font-size:.72rem;font-weight:700;line-height:1;color:var(--ink-soft);border:1.5px solid currentColor;border-radius:50% 45% 55% 48%/52% 50% 48%;vertical-align:.1em}.primary .key-hint,.secondary .key-hint{color:inherit;opacity:.7;margin:0 0 0 .5rem;border-radius:var(--wob-pill)}@media (hover: none) and (pointer: coarse){.key-hint{display:none}}.circles,.segmented{display:flex;gap:.35rem;flex-wrap:wrap}.circles>:is(button,a),.segmented>button{position:relative;isolation:isolate;flex:1 1 0;display:grid;place-items:center;min-height:46px;padding:.45rem .6rem;background:none;border:none;border-radius:999px;color:var(--ink-soft);font-weight:700;line-height:1.2;text-align:center;text-decoration:none;text-wrap:balance}@media (hover: hover){.circles>:is(button,a):not(.on):hover,.segmented>button:not(.on):hover{color:var(--ink);background:color-mix(in srgb,var(--hl-yellow) 25%,transparent)}}.circles>.on,.segmented>.on{color:var(--ink)}.circles>.on:before,.segmented>.on:before{content:"";position:absolute;z-index:-1;top:16%;right:8%;bottom:16%;left:8%;background:var(--hl-yellow);border-radius:40% 58% 46% 60%/62% 44% 56% 40%;rotate:-2deg;animation:blob-in .35s var(--ease-out)}.circles>.on:after,.segmented>.on:after{content:"";position:absolute;top:1px;right:3px;bottom:1px;left:3px;border:2px solid var(--ink);border-radius:48% 52% 44% 56%/58% 46% 54% 42%;rotate:-2.5deg;filter:url(#wobble);-webkit-mask:conic-gradient(from -70deg,#000 var(--sweep),transparent 0);mask:conic-gradient(from -70deg,#000 var(--sweep),transparent 0);animation:ring-draw .5s var(--ease-out);pointer-events:none}.hero{--cat-room: 5.6rem;position:relative;margin:.4rem 0 1.25rem;padding-right:var(--cat-room)}.hero-cat{position:absolute;top:-.6rem;right:-.2rem;width:92px;rotate:5deg;color:var(--ink)}@media (max-width: 400px){.hero{--cat-room: 4.4rem}.hero-cat{width:74px}}.swipe{padding:0 .12em;margin:0 -.12em;background:linear-gradient(176deg,transparent 52%,var(--hl-yellow) 52% 90%,transparent 90%) no-repeat;background-size:100% 100%;box-decoration-break:clone;-webkit-box-decoration-break:clone;animation:swipe-in .7s var(--ease-out) .25s backwards}.pair-switch{margin:.55rem 0 .25rem;padding-right:0}.hero .pair-switch{margin-right:calc(var(--cat-room) * -1)}.pair-switch>button{min-width:6.5rem;font-size:.9rem}.hero-status{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;margin:.6rem calc(var(--cat-room) * -1) 0 0;font-size:1.02rem;font-weight:600}.circled{position:relative;display:inline-grid;place-items:center;min-width:1.9em;padding:0 .3em;margin-right:.15rem;font-weight:800;color:var(--red-pen);font-variant-numeric:tabular-nums}.circled:after{content:"";position:absolute;top:-3px;right:-4px;bottom:-2px;left:-5px;border:2px solid currentColor;border-radius:52% 46% 55% 44%/56% 50% 46% 52%;rotate:-8deg;-webkit-mask:conic-gradient(from -90deg,#000 var(--sweep),transparent 0);mask:conic-gradient(from -90deg,#000 var(--sweep),transparent 0);animation:ring-draw .6s var(--ease-out) .55s backwards}.circled.quiet{color:var(--ink)}.hero-mastered{display:inline-flex;align-items:center;gap:.3rem;color:var(--ink-soft);font-size:.95rem}.tiny-heart{width:19px;height:auto;color:var(--ink);animation:heartbeat 1.6s ease-in-out infinite}.sync-bar{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;font-size:.85rem;color:var(--ink-soft);background:color-mix(in srgb,var(--hl-blue) 55%,var(--sheet));border-radius:3px;padding:.4rem .45rem .4rem .8rem;margin:0 .2rem 1.1rem;rotate:-.5deg;box-shadow:0 1px 1px #1f2f6b1a}.sync-text{flex:1;min-width:0}.sync-dot{width:10px;height:10px;flex:none;border-radius:50% 45% 55% 48%;border:2px solid var(--ink-soft);background:transparent}.sync-bar.ok .sync-dot{background:var(--hl-mint);border-color:var(--pen-green)}.sync-bar.unlinked .sync-dot{border-style:dashed}.sync-bar.error .sync-dot{background:var(--red-wash);border-color:var(--red-pen)}.sync-bar.syncing .sync-dot{animation:pulse 1.1s ease-in-out infinite}.sync-bar.error{color:var(--red-pen);background:color-mix(in srgb,var(--red-wash) 80%,var(--sheet))}.sync-edit{color:var(--ink);font-weight:700;flex:none;text-decoration:underline wavy var(--hl-pink) 2px;text-underline-offset:4px}.sync-refresh{min-height:36px;padding:.2rem .75rem;font-size:.82rem;border-width:1.5px;border-radius:var(--wob-pill);background:var(--sheet);flex:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.settings{position:relative;display:grid;gap:.9rem;background:var(--sheet);border-radius:var(--wob-b);padding:1rem 1.05rem 1.1rem}.settings:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--ink);border-radius:inherit;filter:url(#wobble);pointer-events:none}.settings label,.field{display:grid;gap:.3rem}.settings label>span,.field>span,.duel-field>span{font-size:.88rem;font-weight:700;color:var(--ink-soft)}select{font:inherit;font-weight:650;color:var(--ink);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M2 2.5c2 2 4 3.5 6 5 2-1.8 4-3.4 6-5.2' fill='none' stroke='%231f2f6b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right .8rem center / 14px no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid var(--ink);border-radius:var(--wob-a);padding:.65rem 2.3rem .65rem .8rem;min-height:48px;min-width:0;cursor:pointer}.swap{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;text-align:left;background:var(--paper);padding:.6rem .8rem;border-radius:var(--wob-b)}.swap-value{animation:swap-in .4s var(--ease-spring)}.swap-icon{width:30px;height:22px;flex:none;color:var(--ink);transition:rotate .45s var(--ease-out)}.swap:active .swap-icon{rotate:180deg}.activities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem .9rem;margin-top:1.7rem}.activity{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;min-height:10rem;padding:1.05rem .85rem .95rem;text-align:left;color:var(--ink);background:var(--note-c);border:none;border-radius:2px 3px 10px/3px 2px 14px 4px;box-shadow:var(--lift-note);rotate:var(--r);animation:note-in .55s var(--ease-spring) backwards;animation-delay:calc(var(--i) * 70ms + .1s)}.activity:before{--tape: var(--tape-c);rotate:var(--tr)}.note-0{--note-c: var(--note-yellow);--r: -1.6deg;--tape-c: var(--hl-pink);--tr: -4deg}.note-1{--note-c: var(--note-pink);--r: 1.3deg;--tape-c: var(--hl-blue);--tr: 3deg}.note-2{--note-c: var(--note-mint);--r: .9deg;--tape-c: var(--hl-yellow);--tr: -2deg}.note-3{--note-c: var(--note-blue);--r: -1.2deg;--tape-c: var(--hl-mint);--tr: 5deg}@media (hover: hover){.activity:hover{rotate:0deg;translate:0 -4px;box-shadow:0 1px 1px #1f2f6b1a,0 20px 22px -14px #1f2f6b8c}.activity:hover .act-icon{animation:wiggle .5s ease-in-out}.activity:hover .act-icon .pen-mark{animation:icon-draw .6s var(--ease-out)}}.activity:active{transform:scale(.96)}.act-icon{width:42px;height:42px;margin-bottom:.2rem;color:var(--ink);overflow:visible}.act-icon .pen-mark{stroke-dasharray:60;stroke-dashoffset:0}.activity-name{font-size:1.12rem;font-weight:750;font-variation-settings:var(--hand-loud);line-height:1.15}.activity-blurb{color:var(--ink-soft);font-size:.85rem;font-weight:500;line-height:1.35}.activity-dir{position:absolute;top:.75rem;right:.7rem;font-size:.7rem;font-weight:750;letter-spacing:.03em;color:var(--ink-soft);border:1.5px solid currentColor;border-radius:var(--wob-pill);padding:.05rem .45rem;background:color-mix(in srgb,var(--sheet) 55%,transparent)}.duel-cta{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:88px;margin-top:1.6rem;padding:.9rem .6rem .9rem 1.15rem;overflow:hidden;text-align:left;font-family:var(--font-system);font-variation-settings:normal;color:var(--felt-ink);background:radial-gradient(ellipse at 30% 25%,var(--felt-1),var(--felt-2) 85%);border:none;border-radius:16px;box-shadow:inset 0 0 0 3px var(--felt-rim),inset 0 0 30px #0000004d,var(--lift-high);rotate:-.5deg}.duel-cta:focus-visible{outline:2.5px solid var(--gold);outline-offset:3px}.duel-cta-text{display:grid;gap:.15rem;min-width:0}.duel-cta-title{font-size:1.08rem;font-weight:800;letter-spacing:-.01em}.duel-cta-sub{font-size:.82rem;font-weight:500;color:var(--felt-muted)}.duel-cta-hand{position:relative;flex:none;width:96px;height:62px}.duel-cta-hand .pcard-back{position:absolute;bottom:0;left:31px;width:34px;height:48px;transform-origin:50% 125%;rotate:var(--fan);transition:rotate .35s var(--ease-spring),translate .35s var(--ease-spring);animation:hand-in .75s var(--ease-spring) backwards}.duel-cta-hand .pcard-back:nth-child(1){--fan: -17deg;animation-delay:.35s}.duel-cta-hand .pcard-back:nth-child(2){--fan: 0deg;animation-delay:.45s}.duel-cta-hand .pcard-back:nth-child(3){--fan: 17deg;animation-delay:.55s}@media (hover: hover){.duel-cta:hover{rotate:0deg;box-shadow:inset 0 0 0 3px var(--felt-rim),inset 0 0 30px #0000004d,0 0 0 3px var(--gold),var(--lift-high)}.duel-cta:hover .pcard-back:nth-child(1){rotate:-28deg}.duel-cta:hover .pcard-back:nth-child(2){translate:0 -6px}.duel-cta:hover .pcard-back:nth-child(3){rotate:28deg}}.lang-switch{margin-top:1.4rem}.lang-switch>a{font-size:.9rem}.session-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.4rem}.session-bar .counter{font-weight:750;font-variant-numeric:tabular-nums}.session-bar .score{margin-left:auto;color:var(--pen-green);font-weight:750;font-size:.95rem}.progress{position:relative;flex-basis:100%;height:30px;margin-right:18px}.progress-track{position:absolute;inset:11px 0 auto;height:11px;overflow:hidden;background:var(--sheet);border:2px solid var(--ink);border-radius:var(--wob-pill)}.progress-fill{height:100%;background:repeating-linear-gradient(-50deg,var(--hl-yellow) 0 5px,color-mix(in srgb,var(--hl-yellow) 55%,var(--sheet)) 5px 8px);transition:clip-path .6s var(--ease-out)}.progress-fish{position:absolute;top:-3px;width:42px;translate:-55% 0;color:var(--ink);transition:left .6s var(--ease-out)}.progress-fish svg{display:block;width:100%;scale:-1 1;animation:swim 2.6s ease-in-out infinite}.stage{position:relative;margin-top:2.1rem;animation:deal .5s var(--ease-out) backwards}.stage-peek{position:absolute;z-index:3;top:-33px;right:1.6rem;width:76px;color:var(--ink);pointer-events:none}.stage:has(.match) .stage-peek{right:50%;translate:50% 0}.card{position:relative;background:var(--sheet);border-radius:3px;padding:1.6rem 1.25rem 1.5rem;box-shadow:var(--lift-high)}.card:before{left:1.6rem;translate:0 0;rotate:-5deg}.index-card{--rule: 2rem;padding-top:.85rem;background-color:var(--sheet);background-image:linear-gradient(var(--margin-red),var(--margin-red)),repeating-linear-gradient(to bottom,transparent 0 calc(var(--rule) - 1px),var(--sheet-rule) calc(var(--rule) - 1px) var(--rule));background-size:100% 2px,100% 100%;background-position:0 2.6rem,0 2.6rem;background-repeat:no-repeat,repeat-y}.stage .card:before{content:none}.prompt-label{font-size:.9rem;font-weight:700;color:var(--ink-soft);margin:0 0 1.25rem;min-height:1.4rem}.prompt{font-size:2.3rem;line-height:1.15;font-weight:700;font-variation-settings:var(--hand);margin:0 0 1.35rem;overflow-wrap:anywhere;text-wrap:balance;animation:write .7s var(--ease-out) .15s backwards}.prompt.zh{font-weight:650}.prompt.small{font-size:1.25rem;margin-bottom:.6rem;color:var(--ink-soft);animation:none}.prompt.small.zh{color:var(--pen-2);opacity:.75}.reveal{width:fit-content;max-width:100%;font-size:2rem;line-height:1.2;font-weight:750;margin:0 0 .6rem;overflow-wrap:anywhere;padding:0 .1em;background:linear-gradient(175deg,transparent 55%,var(--hl-yellow) 55% 92%,transparent 92%) no-repeat;animation:swipe-in .6s var(--ease-out) .35s backwards}.options{display:grid;gap:.75rem}.option{display:flex;align-items:center;text-align:left;font-size:1.12rem;font-weight:600;padding:.75rem 3rem .75rem .85rem;min-height:54px;background:var(--sheet);border-radius:var(--wob-a);animation:rise .4s var(--ease-out) backwards}.option:nth-child(2n){border-radius:var(--wob-b)}.option:nth-child(1){animation-delay:.2s}.option:nth-child(2){animation-delay:.26s}.option:nth-child(3){animation-delay:.32s}.option:nth-child(4){animation-delay:.38s}.option-text{flex:1;min-width:0;padding-left:.3rem;overflow-wrap:anywhere}@media (hover: hover){.option:not(:disabled):hover{background:color-mix(in srgb,var(--hl-yellow) 30%,var(--sheet));translate:3px 0}}.option.right{--line-c: var(--pen-green);background:var(--green-wash);color:var(--pen-green);font-weight:750}.option.wrong{--line-c: var(--red-pen);background:var(--red-wash);color:var(--red-pen);animation:shake .35s}.option.wrong .option-text{text-decoration:line-through 2px}.option.dim{opacity:.45}.pen{position:absolute;pointer-events:none;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round}.pen path{stroke-dasharray:1;stroke-dashoffset:1;animation:pen-draw .45s var(--ease-out) .05s forwards}.tick{top:50%;right:.75rem;width:34px;height:28px;margin-top:-15px;stroke:var(--pen-green);stroke-width:4.2}.ink-word{position:relative;display:inline-block;max-width:100%}.ring{left:-7px;top:-7px;width:calc(100% + 16px);height:calc(100% + 14px);stroke:var(--red-pen);stroke-width:3;z-index:1}.feedback{margin-top:1.2rem;animation:rise .35s var(--ease-out)}.feedback .good,.feedback .bad{font-size:1.08rem;font-weight:750;margin:0}.feedback .good{color:var(--pen-green)}.feedback .bad{color:var(--red-pen)}.feedback :is(.good,.bad) :is(strong,.zh){padding:0 .12em;background:linear-gradient(175deg,transparent 50%,var(--hl-yellow) 50% 92%,transparent 92%) no-repeat;animation:swipe-in .5s var(--ease-out) .2s backwards}.feedback .good .zh,.feedback .bad strong:not(.zh){color:var(--ink)}.feedback>button{width:100%;margin-top:1.1rem}.flash{perspective:1400px}.flip.card{display:grid;padding:0;background:none;box-shadow:none;cursor:pointer;transform-style:preserve-3d;transition:transform .65s var(--ease-out),rotate .3s ease}.flip.card:before{content:none}.flip.turned{transform:rotateY(180deg);cursor:default}@media (hover: hover){.flip:not(.turned):hover{transform:rotateY(-7deg) rotateX(3deg)}}.flip .face{grid-area:1 / 1;min-height:14rem;padding:.85rem 1.25rem 1.4rem;border-radius:3px;box-shadow:var(--lift-high);-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--sheet);background-image:linear-gradient(var(--margin-red),var(--margin-red)),repeating-linear-gradient(to bottom,transparent 0 calc(2rem - 1px),var(--sheet-rule) calc(2rem - 1px) 2rem);background-size:100% 2px,100% 100%;background-position:0 2.6rem,0 2.6rem;background-repeat:no-repeat,repeat-y}.flip .back{transform:rotateY(180deg)}.flip-hint{margin:0;font-size:.85rem;color:var(--ink-hint)}@media (hover: hover) and (pointer: fine){.flip-hint:after{content:" (or press space)"}}.flash>.primary.big{margin-top:1.2rem}.grade-row{display:flex;gap:.7rem;margin-top:1.2rem}.grade-row button{flex:1}.answer-input{width:100%;font:inherit;font-size:1.55rem;font-weight:650;color:var(--ink);padding:.35rem .2rem .3rem;min-height:54px;background:transparent;border:none;border-bottom:2.5px solid var(--ink);border-radius:0;transition:border-color .2s ease,background-size .35s var(--ease-out);background-image:linear-gradient(transparent 62%,color-mix(in srgb,var(--hl-yellow) 55%,transparent) 62%);background-repeat:no-repeat;background-size:0% 100%}.answer-input.zh{font-family:var(--font-pen)}.answer-input::placeholder{font-weight:500;font-size:1.2rem}.answer-input:focus{outline:none;background-size:100% 100%;border-bottom-color:var(--pen-2)}.answer-input.right{color:var(--pen-green);border-bottom-color:var(--pen-green);background-image:linear-gradient(transparent 62%,var(--green-wash) 62%);background-size:100% 100%}.answer-input.wrong{color:var(--red-pen);border-bottom-color:var(--red-pen);text-decoration:line-through 2px;background-image:none}.type-actions{display:flex;gap:.65rem;margin-top:1.1rem}.type-actions .primary{flex:1.5}.type-actions .secondary{flex:1;font-size:.95rem}.match-head{display:flex;justify-content:space-between;gap:1rem;font-weight:700;color:var(--ink-soft);font-size:.9rem;margin-bottom:1.35rem;min-height:1.4rem;font-variant-numeric:tabular-nums}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.match-col{display:grid;gap:.7rem;align-content:start}.tile{position:relative;padding:.75rem .55rem;min-height:56px;font-size:1rem;text-align:center;line-height:1.25;overflow-wrap:anywhere;background:var(--sheet);rotate:var(--tilt, 0deg);animation:rise .4s var(--ease-out) backwards}.match-col .tile:nth-child(2){animation-delay:.05s;border-radius:var(--wob-b)}.match-col .tile:nth-child(3){animation-delay:.1s}.match-col .tile:nth-child(4){animation-delay:.15s;border-radius:var(--wob-b)}.match-col .tile:nth-child(n+5){animation-delay:.2s}@media (hover: hover){.tile:not(:disabled):not(.selected):hover{background:color-mix(in srgb,var(--hl-yellow) 25%,var(--sheet))}}.tile.selected{background:var(--hl-yellow);rotate:0deg;translate:0 -3px;box-shadow:var(--lift)}.tile.matched{color:var(--pen-green);background:var(--green-wash);border-color:var(--pen-green);border-style:dashed;rotate:0deg;animation:matched .45s var(--ease-spring)}.tile.matched:after{content:"";position:absolute;top:-9px;right:-7px;width:22px;height:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'%3E%3Cpath d='M50 80C22 62 12 44 20 30s24-11 30 3c6-14 22-16 30-3s-2 32-30 50z' fill='%23ffb8d4' stroke='%231f2f6b' stroke-width='7' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;animation:pop .45s var(--ease-spring) .1s backwards}.tile.shake{border-color:var(--red-pen);background:var(--red-wash);color:var(--red-pen);animation:shake .35s}.match-meter{display:flex;justify-content:center;gap:.4rem;margin-top:1.2rem}.match-meter span{width:20px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'%3E%3Cpath d='M50 80C22 62 12 44 20 30s24-11 30 3c6-14 22-16 30-3s-2 32-30 50z' fill='none' stroke='%23a9b4d2' stroke-width='8' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat}.match-meter span.on{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'%3E%3Cpath d='M50 80C22 62 12 44 20 30s24-11 30 3c6-14 22-16 30-3s-2 32-30 50z' fill='%23ffb8d4' stroke='%231f2f6b' stroke-width='8' stroke-linejoin='round'/%3E%3C/svg%3E");animation:pop .4s var(--ease-spring)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.summary{text-align:center}.session-summary{text-align:center;margin-top:3rem;padding-top:4.3rem}.session-summary:before{content:none}.session-summary .prompt-label{padding-right:0;margin-top:2.6rem}.session-summary.index-card{background-position:0 3.9rem,0 3.9rem}.sticker{position:absolute;top:-40px;left:50%;width:104px;translate:-50% 0;color:var(--ink);animation:sticker-in .7s var(--ease-spring) .15s backwards}.sticker>.dd{width:100%;display:block}.sticker .burst{position:absolute;width:30px;animation:burst 1.3s var(--ease-out) .6s backwards}.sticker .b1{left:-34px;top:10px;--bx: -18px;rotate:-18deg}.sticker .b2{right:-36px;top:-4px;--bx: 16px;animation-delay:.72s}.sticker .b3{right:-22px;top:54px;width:22px;--bx: 22px;rotate:16deg;animation-delay:.84s}.big-score{font-size:3.6rem;font-weight:800;font-variation-settings:var(--hand-loud);line-height:1.1;margin:.1rem 0 .2rem;color:var(--red-pen)}.score-ring{position:relative;display:inline-block;padding:.02em .32em;font-variant-numeric:tabular-nums}.score-ring:after{content:"";position:absolute;top:0;right:-.08em;bottom:-.04em;left:-.08em;border:3px solid currentColor;border-radius:50% 46% 52% 44%/56% 50% 46% 52%;rotate:-6deg;-webkit-mask:conic-gradient(from -90deg,#000 var(--sweep),transparent 0);mask:conic-gradient(from -90deg,#000 var(--sweep),transparent 0);animation:ring-draw .8s var(--ease-out) .5s backwards}.summary-line{font-size:1.25rem;font-weight:750;margin:.6rem 0 .1rem;text-wrap:balance}.session-summary h3{margin-left:auto;margin-right:auto}.missed{list-style:none;padding:0;margin:0;text-align:left}.missed li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem .15rem;border-bottom:1.5px dashed var(--grid-strong);animation:rise .4s var(--ease-out) backwards;animation-delay:calc(.5s + min(var(--i),12)*60ms)}.lang-error{padding:2rem 0}.error-badge{display:inline-block;font-size:.85rem;font-weight:750;color:var(--red-pen);border:2px solid currentColor;border-radius:var(--wob-pill);padding:.15rem .75rem;margin:0 0 1rem;rotate:-3deg}.lang-error h1{font-size:clamp(1.8rem,7vw,2.3rem);margin:0 0 .6rem}.lang-error code{font-family:var(--font-pen);font-size:1.02em;font-weight:700;padding:0 .15em;background:linear-gradient(175deg,transparent 50%,var(--hl-blue) 50% 92%,transparent 92%)}.lang-list{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:1.3rem 1rem}.lang-list li{animation:note-in .55s var(--ease-spring) backwards;animation-delay:calc(var(--i) * 80ms + .1s)}.lang-list li:nth-child(4n+1){--note-c: var(--note-yellow);--r: -1.2deg;--tape: var(--hl-pink)}.lang-list li:nth-child(4n+2){--note-c: var(--note-pink);--r: 1deg;--tape: var(--hl-blue)}.lang-list li:nth-child(4n+3){--note-c: var(--note-mint);--r: -.7deg;--tape: var(--hl-yellow)}.lang-list li:nth-child(4n+4){--note-c: var(--note-blue);--r: 1.4deg;--tape: var(--hl-mint)}.lang-card{position:relative;display:flex;align-items:center;gap:.9rem;text-decoration:none;color:inherit;background:var(--note-c);border-radius:2px 3px 10px/3px 2px 14px 4px;padding:1.1rem 1rem 1rem;min-height:76px;rotate:var(--r);box-shadow:var(--lift-note);transition:rotate .25s var(--ease-out),translate .25s var(--ease-out)}@media (hover: hover){.lang-card:hover{rotate:0deg;translate:0 -3px}}.lang-icon{position:relative;display:grid;place-items:center;width:46px;height:46px;flex:none;color:var(--ink);font-family:var(--font-pen);font-weight:700;font-size:1.25rem;font-variation-settings:normal}.lang-icon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--ink);border-radius:52% 46% 55% 44%/56% 50% 46% 52%;rotate:-8deg}.lang-names{display:grid;gap:.1rem}.lang-name{font-weight:750;font-size:1.1rem;font-variation-settings:var(--hand-loud)}.lang-names .note{margin:0;font-size:.82rem}.search{width:100%;font:inherit;font-weight:600;color:var(--ink);padding:.7rem .9rem .7rem 2.7rem;min-height:50px;border:2px solid var(--ink);border-radius:var(--wob-b);background:var(--sheet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%231f2f6b' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M10.5 4c3.8-.2 6.6 2.6 6.4 6.3-.2 3.6-3 6.1-6.5 6-3.4-.1-6-2.9-5.9-6.3C4.6 6.7 7 4.2 10.5 4z'/%3E%3Cpath d='M15.5 15.8 20 20.4'/%3E%3C/g%3E%3C/svg%3E") .85rem center / 20px no-repeat;margin-top:.25rem}.search:focus{outline:2.5px dashed var(--ink);outline-offset:3px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.7rem}.filters select{font-size:.92rem;background-color:var(--sheet)}.dir-toggle{min-height:48px;padding:.5rem;font-size:1.05rem}.browse-summary{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:.75rem 0 .3rem}.link.small{font-size:.88rem;min-height:36px;padding:0}.table-head,.row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.62fr) auto;gap:0 .5rem;align-items:center}.table-head.with-kind,.row.with-kind{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(3.4rem,.55fr) minmax(4rem,.62fr) auto}.table-head{position:sticky;top:0;z-index:2;background:var(--paper);border-bottom:2px solid var(--ink);padding:0 .35rem;margin-bottom:.3rem}.col-head{background:none;border:none;border-radius:0;padding:.35rem 0;min-height:36px;text-align:left;font-size:.8rem;font-weight:750;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-head:active:not(:disabled){transform:none}@media (hover: hover){.col-head:hover{color:var(--ink)}}.col-head.right{text-align:right}.rows{list-style:none;padding:0;margin:0}.row{padding:.32rem .35rem;font-size:.9rem;line-height:1.3;border-radius:3px}.row{background:hsl(var(--cat-h, 30) var(--cat-sat) var(--cat-l1))}.row:nth-child(2n){background:hsl(var(--cat-h, 30) var(--cat-sat) var(--cat-l2))}.row.due .row-source:after{content:"";display:inline-block;width:7px;height:7px;margin-left:.35rem;border-radius:50%;background:var(--red-pen);vertical-align:.1em}.row-source{font-weight:600;overflow-wrap:anywhere}.row-target{overflow-wrap:anywhere}.row-note{grid-column:1 / -1;font-size:.76rem;line-height:1.25;color:var(--ink-soft);padding-top:.1rem}.row-cat{font-size:.74rem;color:hsl(var(--cat-h, 30) var(--cat-label-sat) var(--cat-label-l));font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-kind{font-size:.74rem;font-weight:650;color:hsl(var(--kind-h, 30) var(--kind-sat) var(--kind-l));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-prog{display:inline-flex;align-items:center;gap:.3rem;justify-content:flex-end}.miss{font-size:.72rem;font-weight:700;color:var(--red-pen);font-variant-numeric:tabular-nums}.pips{display:inline-flex;gap:2px}.pip{width:7px;height:7px;border-radius:50% 45% 55% 48%;border:1.5px solid var(--ink-faint)}.pip.on{background:var(--pen-green);border-color:var(--pen-green)}.empty{padding:2rem 0;text-align:center}.empty-fish{width:96px;color:var(--ink);animation:swim 3s ease-in-out infinite}.browse>.primary.big{position:sticky;bottom:calc(.9rem + env(safe-area-inset-bottom));z-index:3;margin-top:1.2rem;box-shadow:var(--lift-high)}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-top:.4rem}.stat{display:grid;gap:.05rem;text-align:center;background:var(--note-c);border-radius:2px 3px 9px/3px 2px 12px 4px;padding:.85rem .25rem .7rem;box-shadow:var(--lift-note);rotate:var(--r, 0deg);animation:note-in .5s var(--ease-spring) backwards}.stat:nth-child(1){--r: -1.5deg}.stat:nth-child(2){--r: 1deg;animation-delay:.06s}.stat:nth-child(3){--r: -.6deg;animation-delay:.12s}.stat:nth-child(4){--r: 1.4deg;animation-delay:.18s}.stat.mint{--note-c: var(--note-mint)}.stat.yellow{--note-c: var(--note-yellow)}.stat.blue{--note-c: var(--note-blue)}.stat.pink{--note-c: var(--note-pink)}.stat-value{font-size:1.75rem;font-weight:800;font-variation-settings:var(--hand-loud);line-height:1.15;font-variant-numeric:tabular-nums}.stat-label{font-size:.78rem;font-weight:700;color:var(--ink-soft)}.streak{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;margin:1.1rem 0 0;color:var(--ink-soft);font-weight:650}.streak.on{color:var(--ink);font-weight:750}.streak-hearts{display:inline-flex;gap:.1rem}.streak-hearts .tiny-heart:nth-child(2n){animation-delay:.2s}.streak-hearts .tiny-heart:nth-child(3n){animation-delay:.4s}.cat-bars{display:grid;gap:.85rem}.cat-bar-head{display:flex;justify-content:space-between;font-size:.95rem;font-weight:650}.cat-bar-head .note{margin:0;font-variant-numeric:tabular-nums}.bar{position:relative;height:13px;margin-top:.3rem;overflow:hidden;background:var(--sheet);border:2px solid var(--ink);border-radius:var(--wob-pill)}.bar-seen,.bar-mastered{position:absolute;inset:0 auto 0 0;transform-origin:left;animation:bar-grow .8s var(--ease-out) backwards;animation-delay:calc(min(var(--i, 0),16)*35ms + .15s)}.bar-seen{background:repeating-linear-gradient(-50deg,var(--hl-yellow) 0 4px,color-mix(in srgb,var(--hl-yellow) 45%,var(--sheet)) 4px 7px)}.bar-mastered{background:var(--hl-mint);box-shadow:inset -2px 0 0 var(--pen-green)}.weak{width:100%;border-collapse:collapse;font-size:.95rem}.weak th{text-align:left;font-size:.8rem;font-weight:750;color:var(--ink-soft);padding-bottom:.35rem;border-bottom:2px solid var(--ink)}.weak td{padding:.5rem 0;border-bottom:1.5px dashed var(--grid-strong)}.weak td:last-child,.weak th:last-child{text-align:right;font-variant-numeric:tabular-nums}.weak td:last-child{color:var(--red-pen);font-weight:700}.empty-note{display:flex;align-items:center;gap:.6rem}.empty-pig{width:58px;flex:none;color:var(--ink)}.data-row{display:flex;gap:.55rem;flex-wrap:wrap}.data-row button{flex:1;min-width:90px}.empty-card{text-align:center;padding-top:1.4rem}.empty-doodle{width:90px;color:var(--ink);margin-bottom:.4rem}.empty-card .prompt{animation:none}.duel-lobby{position:relative;overflow:hidden}.duel-lobby:before{content:none}.duel-lobby .page-title{margin-top:0;padding-right:6rem}.duel-lobby .note:first-of-type{padding-right:4.5rem}.duel-lobby h3:first-of-type{margin-top:1.4rem}.duel-deck{margin:0;font-weight:750}.duel-source{margin:.1rem 0 .85rem;font-size:.85rem}.duel-source.error{color:var(--red-pen)}.duel-field{display:grid;gap:.3rem;margin-bottom:.85rem}.duel-field select{background-color:var(--paper)}.duel-hero{position:absolute;top:.9rem;right:1.1rem;width:86px;height:66px}.duel-hero .pcard-back{position:absolute;bottom:0;left:26px;width:34px;height:48px;transform-origin:50% 120%;rotate:var(--fan);animation:hand-in .8s var(--ease-spring) backwards}.duel-hero .pcard-back:nth-child(1){--fan: -18deg;animation-delay:.2s}.duel-hero .pcard-back:nth-child(2){--fan: 0deg;animation-delay:.3s}.duel-hero .pcard-back:nth-child(3){--fan: 18deg;animation-delay:.4s}.table-btn{color:var(--felt-ink);font-family:var(--font-system);font-variation-settings:normal;font-weight:800;background:radial-gradient(ellipse at 40% 30%,var(--felt-1),var(--felt-2) 90%);border-radius:14px;box-shadow:inset 0 0 0 3px var(--felt-rim),inset 0 0 18px #0000004d,var(--lift)}.table-btn:after{top:6px;right:6px;bottom:6px;left:6px;border:2px dashed color-mix(in srgb,var(--gold) 75%,transparent);border-radius:9px;filter:none}@media (hover: hover){.table-btn:not(:disabled):hover{rotate:0deg;box-shadow:inset 0 0 0 3px var(--felt-rim),inset 0 0 18px #0000004d,0 0 0 3px var(--gold),var(--lift)}.table-btn:not(:disabled):hover:after{filter:none}}.table-btn:disabled{color:var(--felt-muted);opacity:.7;background:radial-gradient(ellipse at 40% 30%,var(--felt-1),var(--felt-2) 90%)}.card-btn{font-family:var(--font-system);font-variation-settings:normal;font-weight:750;color:var(--card-ink);background:var(--card-face);border-radius:10px;box-shadow:0 1px #00000014,0 4px 10px #1f2f6b38}.card-btn:after{content:"♥";top:0;right:0;bottom:0;left:0;border:1px solid var(--card-line);border-radius:10px;filter:none;padding:4px 8px;font-size:.8rem;line-height:1;color:var(--suit-me);text-align:left}.card-btn:before{content:"♠";position:absolute;right:8px;bottom:4px;font-size:.8rem;line-height:1;color:var(--suit-them);rotate:180deg}@media (hover: hover){.card-btn:not(:disabled):hover{rotate:-1.5deg;translate:0 -3px}.card-btn:not(:disabled):hover:after{filter:none}}.card-btn:disabled{opacity:.55}.answer-input.duel-code-input{margin-top:.4rem;font-family:var(--font-system);font-variation-settings:normal;font-size:1.5rem;font-weight:800;text-align:center;letter-spacing:.35em;text-transform:uppercase;color:var(--suit-me);background:var(--card-face);border:1px solid var(--card-line);border-radius:10px;box-shadow:inset 0 1px 3px #1f2f6b1f}.answer-input.duel-code-input::placeholder{letter-spacing:.05em;font-size:1.05rem;font-weight:600;text-transform:none}.answer-input.duel-code-input:focus{outline:2.5px dashed var(--ink);outline-offset:3px;background-size:0 0}@media (min-width: 560px){.settings{grid-template-columns:1fr 1fr}.settings>:last-child{grid-column:1 / -1}.prompt{font-size:2.7rem}.activities{gap:1.3rem 1.1rem}.activity{min-height:9rem;padding:1.1rem 1rem 1rem}}@media (min-width: 760px){body:before{content:"";position:fixed;z-index:0;top:0;bottom:0;left:calc(50% - 320px - 1.4rem);width:4px;border-left:1.5px solid var(--margin-red);border-right:1.5px solid var(--margin-red);opacity:.8;pointer-events:none}}.pen-arrow{display:inline-block;vertical-align:middle;overflow:visible}.back-arrow{width:20px;height:12px;margin-right:.15rem;translate:0 -1px;transition:translate .25s var(--ease-out)}@media (hover: hover){.link:hover .back-arrow{translate:-4px -1px}}.sort-arrow{width:10px;height:14px;margin-left:.25rem}.sort-arrow.desc{scale:1 -1}.dir-toggle .sort-arrow{width:12px;height:18px;margin:0}.han{font-family:"Kaiti SC","STKaiti","KaiTi","BiauKai",var(--font-hand);font-style:normal;font-size:1.12em;color:var(--pen-2);font-weight:600}@media (max-width: 559px){.table-head,.row,.table-head.with-kind,.row.with-kind{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto}.table-head .col-head.cat,.table-head .col-head.kind{display:none}.row-source{grid-column:1;grid-row:1}.row-target{grid-column:2;grid-row:1}.row-prog{grid-column:3;grid-row:1}.row-cat{grid-column:1;grid-row:2}.row-kind{grid-column:2;grid-row:2}.row-note{grid-row:3}}body:has(.session) .doodle>.dd,body:has(.session) .doodle .dd *{animation-play-state:paused}body:has(.session) .doodle>.dd{filter:url(#wobble)}.felt{background:radial-gradient(ellipse at 50% 30%,var(--felt-1),var(--felt-2) 75%);color:var(--felt-ink);border:1px solid var(--felt-rim);box-shadow:inset 0 0 0 4px var(--felt-rim),inset 0 0 40px #00000059,var(--felt-lift)}.felt .note,.felt .prompt-label{color:var(--felt-muted)}.felt .link{color:var(--felt-ink)}.pcard{position:relative;display:grid;place-items:center;width:100%;min-height:5.6rem;padding:1.15rem .55rem;margin:0;background:var(--card-face);color:var(--card-ink);border:1px solid var(--card-line);border-radius:10px;box-shadow:0 1px #00000014,0 4px 10px #00000047;text-align:center;line-height:1.2;font-weight:650;overflow-wrap:anywhere;transition:transform .16s ease,box-shadow .16s ease,opacity .2s ease,filter .2s ease}.pcard:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid currentColor;border-radius:7px;opacity:.12;pointer-events:none}.pcard-word{position:relative;z-index:1}.pcard-corner{position:absolute;font-size:.8rem;line-height:1}.pcard-corner.tl{top:7px;left:8px}.pcard-corner.br{bottom:7px;right:8px;transform:rotate(180deg)}.pcard.me .pcard-corner{color:var(--suit-me)}.pcard.them .pcard-corner{color:var(--suit-them)}.pcard.size-s .pcard-word{font-size:1.35rem}.pcard.size-m .pcard-word{font-size:1.05rem}.pcard.size-l .pcard-word{font-size:.9rem}.pcard.size-xl .pcard-word{font-size:.78rem;font-weight:600}.pcard-back{display:block;border-radius:7px;border:2px solid var(--card-face);background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.3) 0 18%,transparent 19%),repeating-linear-gradient(45deg,rgba(255,255,255,.13) 0 3px,transparent 3px 7px),var(--back-them);box-shadow:0 2px 5px #00000059}.pcard-back.me{background-color:var(--back-me)}.pcard-back.deck{background-color:var(--back-deck)}.duel-board{border-radius:22px;padding:.6rem .6rem .9rem;margin:0 -.35rem}.duel-table{--tc-w: 92px;border-radius:16px;padding:.55rem .65rem .6rem;background:radial-gradient(ellipse at 50% 45%,var(--felt-1),var(--felt-2) 80%);box-shadow:inset 0 0 0 1px #ffffff14,0 6px 14px #0000004d;margin-bottom:.8rem}@media (min-height: 720px){.duel-table{position:sticky;top:.4rem;z-index:5}}.seat-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:46px}.seat{display:flex;align-items:center;gap:.5rem}.seat-name{font-size:.85rem;font-weight:700;color:var(--felt-muted);transition:color .2s ease}.seat.active .seat-name{color:var(--felt-ink)}.chip{position:relative;display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;background:var(--back-them);color:var(--back-ink);font-weight:800;font-variant-numeric:tabular-nums;box-shadow:0 2px #00000059,0 3px 8px #0000004d}.seat.me .chip{background:var(--back-me)}.chip:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;border:3px dashed rgba(255,255,255,.75)}.seat.active .chip{animation:chip-glow 1.6s ease-in-out infinite}.chip-value{position:relative;animation:bump .35s ease-out}.float{position:absolute;left:50%;top:-6px;font-weight:900;font-size:1rem;opacity:0;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.5);animation:float-up 1.2s ease-out}.float.up{color:var(--gold)}.float.down{color:var(--loss)}.fan{display:flex;align-items:center;gap:.85rem}.fan-cards{position:relative;width:calc(26px + (var(--n) - 1) * 9px);height:42px}.fan-cards .pcard-back{position:absolute;top:2px;left:calc(var(--i) * 9px);width:26px;height:38px;transform-origin:50% 130%;transform:rotate(calc((var(--i) - (var(--n) - 1) / 2) * 5deg))}.fan.active .fan-cards{animation:bob 1.4s ease-in-out infinite}.fan-count{font-size:.75rem;font-weight:800;color:var(--felt-muted);font-variant-numeric:tabular-nums}.fan-count:before{content:"×";margin-right:1px}.zone{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:.4rem;margin:.35rem 0}.zone-center{min-width:0}.zone-cards{position:relative;height:calc(var(--tc-w) * 1.4 + 16px)}.slot,.slot-outline{position:absolute;top:8px;left:50%;width:var(--tc-w);margin-left:calc(var(--tc-w) / -2)}.slot{perspective:700px;transition:transform .4s cubic-bezier(.2,.9,.3,1.15)}.slot.played.aside{transform:translate(-54%) rotate(-6deg)}.slot.matched.aside{transform:translate(54%) rotate(6deg);z-index:1}.slot-outline{display:grid;place-items:center;aspect-ratio:5 / 7;border:2px dashed rgba(255,255,255,.22);border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--felt-muted);text-align:center;padding:.5rem}.pcard.table{width:var(--tc-w);aspect-ratio:5 / 7;min-height:0;padding:1.2rem .4rem;box-shadow:0 2px #0000001a,0 10px 22px #0006}.pcard.table.size-s .pcard-word{font-size:1.45rem}.pcard.table.size-l .pcard-word{font-size:.86rem}.pcard.table.size-xl .pcard-word{font-size:.72rem}.slot.aside .pcard.table{box-shadow:0 0 0 3px var(--gold),0 0 22px color-mix(in srgb,var(--gold) 55%,transparent),0 10px 22px #0006}.flipper{position:relative;transform-style:preserve-3d}.flipper>.pcard{backface-visibility:hidden;-webkit-backface-visibility:hidden}.flip-back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;transform:rotateY(180deg);backface-visibility:hidden;-webkit-backface-visibility:hidden}.stamp{position:absolute;left:50%;top:calc(100% - 22px);z-index:3;transform:translate(-50%,-50%) rotate(-6deg);padding:.1rem .55rem;border:3px solid var(--gold);border-radius:6px;background:#141e198c;color:var(--gold);font-weight:900;font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none;animation:stamp .45s cubic-bezier(.2,1.6,.4,1) .3s backwards}.sparks{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.sparks i{position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px var(--gold);opacity:0;animation:spark .7s ease-out .3s}.sweep{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;animation:sweep .55s ease-in forwards}.attempts{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;margin-top:.1rem}.mini{display:inline-block;max-width:9rem;padding:.25rem .55rem;border-radius:6px;background:var(--card-face);color:var(--wrong-ink);font-size:.76rem;font-weight:700;line-height:1.2;text-decoration:line-through;text-decoration-thickness:2px;box-shadow:0 0 0 2px var(--wrong-edge),0 3px 6px #0000004d;overflow-wrap:anywhere}.pile{display:grid;justify-items:center;gap:.3rem}.pile-stack{position:relative;width:32px;height:46px}.pile-stack .pcard-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(calc(var(--i) * -1.5px),calc(var(--i) * -2px))}.pile-empty{position:absolute;top:0;right:0;bottom:0;left:0;border:2px dashed rgba(255,255,255,.22);border-radius:7px}.pile-count{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;font-weight:800;font-size:.9rem;font-variant-numeric:tabular-nums;color:var(--back-ink);text-shadow:0 1px 3px rgba(0,0,0,.7);animation:bump .35s ease-out}.pile-label{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--felt-muted)}.turn-banner{margin:0;padding:.4rem .85rem;border-radius:999px;font-size:.82rem;font-weight:800;text-align:center;animation:banner-in .4s cubic-bezier(.2,1.5,.4,1)}.turn-banner.mine{background:var(--seal);color:var(--seal-ink);box-shadow:0 0 16px color-mix(in srgb,var(--seal) 55%,transparent)}.turn-banner.guess{background:var(--gold);color:var(--on-gold);box-shadow:0 0 16px color-mix(in srgb,var(--gold) 60%,transparent)}.turn-banner.wait{background:#00000040;color:var(--felt-muted);font-weight:650}.dots{display:inline-flex;gap:2px;margin-left:3px}.dots i{width:3px;height:3px;border-radius:50%;background:currentColor;animation:pulse 1.2s ease-in-out infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}.duel-hand{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;padding:0 .15rem}.duel-hand.wide{grid-template-columns:repeat(2,minmax(0,1fr))}.hand-slot{display:flex;animation:deal-in .5s cubic-bezier(.2,.9,.3,1.1) both;animation-delay:calc(min(var(--i),20)*45ms)}.hand-slot .pcard{font-family:inherit}.hand-slot .pcard:disabled{opacity:.82;filter:saturate(.7)}.duel-hand.playing .pcard:not(:disabled),.duel-hand.guessing .pcard:not(:disabled){cursor:pointer}.duel-hand.guessing .pcard:not(:disabled){box-shadow:0 0 0 2px var(--gold),0 4px 10px #00000047}@media (hover: hover){.duel-hand.playing .pcard:not(:disabled):hover,.duel-hand.guessing .pcard:not(:disabled):hover{transform:translateY(-5px) rotate(-1.5deg);box-shadow:0 0 0 2px var(--gold),0 12px 20px #00000059}}.duel-hand .pcard:not(:disabled):active{transform:translateY(-2px) scale(.96)}.pcard.wrong,.pcard.wrong:disabled{background:var(--wrong-face);color:var(--wrong-ink);border-color:var(--wrong-edge);opacity:1;filter:none;animation:shake .4s}.pcard.wrong:after{content:"✗";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:3rem;font-weight:900;color:color-mix(in srgb,var(--wrong-ink) 22%,transparent);transform:rotate(-12deg)}.pcard.in-play,.pcard.in-play:disabled{background:transparent;border:2px dashed rgba(255,255,255,.28);box-shadow:none;opacity:1;filter:none}.pcard.in-play>*{visibility:hidden}.duel-turn-frame{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;pointer-events:none;border:6px solid var(--seal-line);transition:border-color .2s ease}.duel-turn-frame.mine{border-color:var(--seal);animation:frame-glow 1.6s ease-in-out infinite}.duel-connecting{text-align:center}.duel-code{display:flex;justify-content:center;gap:.35rem;margin:.9rem 0}.code-card{display:grid;place-items:center;width:2.5rem;height:3.4rem;border-radius:8px;background:var(--card-face);color:var(--suit-me);font-size:1.7rem;font-weight:800;box-shadow:0 4px 10px #00000059;animation:deal-in .5s cubic-bezier(.2,.9,.3,1.1) both;animation-delay:calc(var(--i) * 80ms)}.duel-copy{min-height:40px;padding:.45rem 1.1rem;margin:0 auto .4rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#00000038;color:var(--felt-ink);font-size:.85rem;font-weight:700}.duel-copy.done{background:var(--gold);border-color:transparent;color:var(--on-gold)}.shuffle{position:relative;width:56px;height:64px;margin:1.1rem auto .4rem}.shuffle .pcard-back{position:absolute;top:6px;left:12px;width:34px;height:50px}.shuffle .pcard-back:nth-child(1){animation:shuffle-left 1.6s ease-in-out infinite}.shuffle .pcard-back:nth-child(3){animation:shuffle-right 1.6s ease-in-out infinite}.duel-summary{position:relative;overflow:hidden}.duel-verdict{font-size:2.3rem;font-weight:900;letter-spacing:-.02em;margin:0 0 1rem;animation:banner-in .6s cubic-bezier(.2,1.5,.4,1) both}.duel-summary.won .duel-verdict{color:var(--gold);text-shadow:0 0 18px color-mix(in srgb,var(--gold) 50%,transparent)}.duel-final{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.5rem}.duel-vs{font-weight:800;color:var(--felt-muted);text-transform:uppercase;font-size:.8rem}.pcard.final{width:7.5rem;aspect-ratio:5 / 7;display:flex;flex-direction:column;justify-content:center;gap:.15rem;padding:1rem .4rem;animation:deal-in .55s cubic-bezier(.2,.9,.3,1.1) .2s both}.pcard.final.them{animation-delay:.35s}.pcard.final.winner{box-shadow:0 0 0 3px var(--gold),0 0 26px color-mix(in srgb,var(--gold) 60%,transparent)}.final-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.final-score{font-size:2.6rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.pcard.final.me .final-score{color:var(--suit-me)}.pcard.final.them .final-score{color:var(--suit-them)}.final-tally{display:grid;font-size:.68rem;font-weight:600;opacity:.7;line-height:1.3}.crown{position:absolute;top:-.9rem;left:50%;font-size:1.6rem;transform:translate(-50%) rotate(-8deg);animation:banner-in .5s cubic-bezier(.2,1.6,.4,1) .8s backwards}.duel-final .pcard.final.winner{margin-top:.6rem}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-16px;left:var(--x);width:8px;height:14px;border-radius:2px;background:hsl(var(--h) 85% 60%);opacity:0;animation:confetti-fall 2.8s cubic-bezier(.3,.6,.6,1) var(--d) forwards}@media (min-width: 560px){.duel-table{--tc-w: 116px}.duel-hand{grid-template-columns:repeat(4,minmax(0,1fr))}.duel-hand.wide{grid-template-columns:repeat(3,minmax(0,1fr))}.zone{grid-template-columns:60px minmax(0,1fr) 60px}}@keyframes deal-in{0%{opacity:0;transform:translateY(-45vh) rotate(-25deg) scale(.5)}}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.45)}to{transform:scale(1)}}@keyframes float-up{0%{opacity:0;transform:translate(-50%,6px) scale(.6)}15%{opacity:1;transform:translate(-50%,-6px) scale(1.2)}to{opacity:0;transform:translate(-50%,-34px) scale(1)}}@keyframes chip-glow{0%,to{box-shadow:0 2px #00000059,0 0 color-mix(in srgb,var(--gold) 70%,transparent)}50%{box-shadow:0 2px #00000059,0 0 0 6px color-mix(in srgb,var(--gold) 0%,transparent)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes stamp{0%{opacity:0;transform:translate(-50%,-50%) rotate(-6deg) scale(2.4)}}@keyframes spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}to{opacity:0;transform:rotate(var(--a)) translateY(-125px) scale(.3)}}@keyframes sweep{to{opacity:0;transform:translate(130px,-6px) scale(.3) rotate(20deg)}}@keyframes banner-in{0%{opacity:0;transform:scale(.7)}}@keyframes frame-glow{0%,to{box-shadow:inset 0 0 color-mix(in srgb,var(--seal) 0%,transparent)}50%{box-shadow:inset 0 0 22px 2px color-mix(in srgb,var(--seal) 45%,transparent)}}@keyframes shuffle-left{0%,to{transform:translate(0) rotate(0);z-index:0}30%{transform:translate(-26px) rotate(-14deg)}60%{transform:translate(0) rotate(0);z-index:2}}@keyframes shuffle-right{0%,to{transform:translate(0) rotate(0);z-index:2}30%{transform:translate(26px) rotate(14deg)}60%{transform:translate(0) rotate(0);z-index:0}}@keyframes confetti-fall{0%{opacity:1;transform:translate(0) rotate(0)}85%{opacity:1}to{opacity:0;transform:translate(var(--dx),105vh) rotate(var(--s))}}@media (prefers-reduced-motion: reduce){.duel-lobby *,.felt *,.duel-turn-frame,.confetti *{animation:none!important;transition:none!important}}.felt{font-family:var(--font-system);font-variation-settings:normal;line-height:1.5}.card.felt{border-radius:14px;padding:1.5rem 1.25rem;background-image:radial-gradient(ellipse at 50% 30%,var(--felt-1),var(--felt-2) 75%)}.card.felt:before,.felt .primary:after,.felt .link:after{content:none}.felt .prompt-label{font-size:.72rem;font-weight:400;text-transform:uppercase;letter-spacing:.09em;margin:0 0 .6rem;min-height:0;padding:0}.felt .note{font-size:.9rem}.felt .primary{background:var(--seal);color:var(--seal-ink);border:1px solid transparent;border-radius:14px;font-weight:600;box-shadow:none;rotate:none}.felt .link{color:var(--felt-ink);font-weight:600;min-height:40px;padding:.5rem 0;text-decoration:none}.felt .big-score{font-size:3.2rem;font-weight:700;font-variation-settings:normal;letter-spacing:-.03em;margin:.2rem 0;color:inherit}.felt button{font-weight:inherit}.felt .pcard{font-weight:650}.paper-defs{position:absolute;width:0;height:0;overflow:hidden}.doodles{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.card-room{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .6s ease;background:var(--room-pattern) center top / 160px 160px,radial-gradient(ellipse at 50% 30%,var(--room-1),var(--room-2) 85%)}body:has(.felt) .card-room{opacity:1}html:has(.felt){background:var(--room-2)}body:has(.felt){--seal-line: var(--room-2)}body:has(.felt){background:var(--room-pattern) center top / 160px 160px,var(--room-2)}body:has(.felt):before{display:none}body:has(.felt) .doodle{display:none}.room-pieces{display:none}.room-piece{position:absolute;top:var(--top);width:var(--size);rotate:var(--rot, 0deg);pointer-events:auto;cursor:pointer;filter:drop-shadow(0 6px 7px rgba(0,0,0,.45));perspective:600px;animation:room-deal .7s var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 70ms + .25s)}.room-piece.l{left:calc((100vw - 640px) / 2 * var(--m) - var(--size) / 2)}.room-piece.r{right:calc((100vw - 640px) / 2 * var(--m) - var(--size) / 2)}.court{position:relative;display:block;aspect-ratio:100 / 140;transform-style:preserve-3d;transition:transform .6s var(--ease-out),translate .25s var(--ease-out)}.court.turned{transform:rotateY(180deg)}.court-face{display:block;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.court-back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8%/5.7%;transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.cr-rank{font:800 15px/1 var(--font-system)}.chip-face{display:block;width:100%;height:auto}.chip-spin{display:block}.chip-spin.spun{animation:chip-spin .9s var(--ease-out)}@media (hover: hover){.room-piece.piece-card:hover .court{translate:0 -6px}.room-piece.piece-chip:hover{scale:1.08}}.room-piece.hop{animation:hop .7s var(--ease-spring)}.room-piece.flinch{animation:flinch .45s ease-in-out}@media (min-width: 880px){body:has(.felt) .room-pieces{display:block}}.room-strip{display:flex;justify-content:center;align-items:flex-end;margin:2rem 0 .5rem;padding-top:.5rem}.room-strip .room-piece{position:relative;top:auto;width:62px;margin:0 -9px;transform-origin:50% 130%;rotate:calc((var(--i) - (var(--n) - 1) / 2) * 12deg)}.room-strip .strip-chip{width:42px;margin:0 0 .6rem 1.6rem;rotate:0deg;align-self:center}@media (min-width: 880px){.room-strip{display:none}}@keyframes room-deal{0%{opacity:0;transform:translateY(-30px) rotate(-14deg) scale(.8)}}@keyframes chip-spin{0%{transform:rotateY(0) scale(1.1)}to{transform:rotateY(720deg) scale(1)}}:where(.dd){display:block;width:100%;height:auto;overflow:visible}.dd .wash{opacity:.92}.dd .eyes,.dd .tail,.dd .fin,.dd .ear,.dd .arms path,.dd .bubbles{transform-box:fill-box}.doodle{position:absolute;top:var(--top);display:none;width:calc(var(--size) * .66);color:var(--ink);rotate:var(--rot)}.doodle>.dd{filter:url(#boil)}.doodle.flip>.dd{scale:-1 1}.doodle-strip{display:flex;justify-content:center;align-items:flex-end;gap:1.1rem;margin:2.2rem 0 .5rem;color:var(--ink)}.strip-item{display:block;width:62px;rotate:calc((var(--i) - 1) * 6deg)}.strip-item.doodle-heart{width:34px;align-self:center}.strip-item>.dd{filter:url(#boil)}.strip-item.hop{animation:hop .7s var(--ease-spring)}.strip-item.flinch{animation:flinch .45s ease-in-out}body:has(.session) .strip-item .dd,body:has(.session) .strip-item .dd *{animation-play-state:paused}body:has(.session) .strip-item>.dd{filter:url(#wobble)}.doodle-fish.l>.dd{scale:-1 1}.doodle-fish.r>.dd{scale:1 1}@media (min-width: 880px){.doodle-strip{display:none}.doodles{pointer-events:none}.doodle{display:block;width:var(--size);pointer-events:auto;cursor:pointer}.doodle.l{left:calc((100vw - 640px) / 2 * var(--m) - var(--size) / 2)}.doodle.r{right:calc((100vw - 640px) / 2 * var(--m) - var(--size) / 2)}.doodle-fish.l>.dd{scale:1 1}.doodle-fish.r>.dd{scale:-1 1}.doodle.flip.doodle-fish.l>.dd{scale:-1 1}.doodle.flip.doodle-fish.r>.dd{scale:1 1}}.dd .eyes{transform-origin:center;animation:blink 5.2s infinite;animation-delay:calc(var(--i, 0) * -.9s)}.dd .tail{transform-origin:0% 60%;animation:tail 2.8s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -.4s)}.doodle-fish>.dd{animation:swim 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.6s)}.dd .fin{transform-origin:0% 50%;animation:fin .7s ease-in-out infinite alternate}.dd .bubbles circle{animation:bubble 2.6s ease-out infinite}.dd .bubbles circle:nth-child(2){animation-delay:1.3s}.dd .ear.l{transform-origin:80% 100%;animation:ear 4.5s ease-in-out infinite}.dd .ear.r{transform-origin:20% 100%;animation:ear 4.5s ease-in-out infinite reverse;animation-delay:-1s}.doodle-heart>.dd{animation:heartbeat 1.5s ease-in-out infinite;animation-delay:calc(var(--i) * -.3s)}.dd .arms path{transform-origin:50% 0%;animation:arm 2.2s ease-in-out infinite alternate}.dd .arms path:nth-child(2n){animation-delay:-.7s}.dd .arms path:nth-child(3n){animation-delay:-1.3s}.doodle-star>.dd,.doodle-sparkle>.dd{animation:twinkle 3s ease-in-out infinite;animation-delay:calc(var(--i) * -.5s)}.hero-cat .tail{animation-duration:2.2s}.peek{filter:url(#boil)}.peek .eyes{animation-duration:3.8s}.doodle.hop,.peek.hop{animation:hop .7s var(--ease-spring)}.doodle.flinch,.peek.flinch{animation:flinch .45s ease-in-out}@media (hover: hover){.doodle:hover>.dd{animation-duration:.6s}}.pop-heart{position:fixed;z-index:5;width:26px;translate:-50% 0;color:var(--ink);animation:pop-heart 1.1s var(--ease-out) forwards}::view-transition-old(page){animation:page-out .22s ease-in both}::view-transition-new(page){animation:page-in .42s var(--ease-out) both}@keyframes blob-in{0%{opacity:0;scale:.6 .4}}@keyframes ring-draw{0%{--sweep: 0deg}to{--sweep: 360deg}}@keyframes swipe-in{0%{background-size:0% 100%}}@keyframes swap-in{0%{opacity:0;transform:translateY(8px) rotate(-3deg)}}@keyframes note-in{0%{opacity:0;transform:translateY(18px) scale(.92) rotate(-4deg)}}@keyframes hand-in{0%{opacity:0;transform:translate(150px) rotate(40deg)}}@keyframes wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-9deg)}65%{transform:rotate(7deg)}}@keyframes pen-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes icon-draw{0%{stroke-dashoffset:60}to{stroke-dashoffset:0}}@keyframes deal{0%{opacity:0;transform:translate(26px) rotate(1.5deg)}}@keyframes write{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -20% 0 0)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes matched{0%{transform:scale(1)}45%{transform:scale(1.08) rotate(-2deg)}to{transform:scale(1)}}@keyframes pop{0%{opacity:0;transform:scale(.2) rotate(-30deg)}}@keyframes sticker-in{0%{opacity:0;transform:scale(1.8) rotate(-20deg)}}@keyframes burst{0%{opacity:0;transform:translate(calc(var(--bx) * -1),18px) scale(.3)}}@keyframes bar-grow{0%{transform:scaleX(0)}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.14)}28%{transform:scale(1)}42%{transform:scale(1.09)}60%{transform:scale(1)}}@keyframes blink{0%,93%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes tail{0%,to{transform:rotate(-7deg)}50%{transform:rotate(11deg)}}@keyframes swim{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(3px,-4px) rotate(-3deg)}}@keyframes fin{0%{transform:scaleX(1) rotate(-6deg)}to{transform:scaleX(.82) rotate(8deg)}}@keyframes bubble{0%{opacity:0;transform:translateY(6px)}30%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes ear{0%,86%,to{transform:rotate(0)}90%{transform:rotate(-12deg)}94%{transform:rotate(4deg)}}@keyframes arm{0%{transform:rotate(-5deg)}to{transform:rotate(6deg)}}@keyframes twinkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.82) rotate(12deg);opacity:.75}}@keyframes hop{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-16px) scale(1.06,.96)}60%{transform:translateY(0) scale(1.08,.9)}80%{transform:translateY(-4px) scale(.98,1.02)}}@keyframes flinch{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-4px) rotate(-4deg)}75%{transform:translate(4px) rotate(4deg)}}@keyframes pop-heart{0%{opacity:0;transform:translateY(0) scale(.4)}20%{opacity:1;transform:translateY(-10px) scale(1.15)}to{opacity:0;transform:translateY(-56px) scale(.9) rotate(12deg)}}@keyframes page-out{to{opacity:0;transform:translate(-28px) rotate(-1.2deg)}}@keyframes page-in{0%{opacity:0;transform:translate(36px) rotate(1.4deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important}.doodle>.dd,.strip-item>.dd,.peek{filter:url(#wobble)}}
