:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f5f2ea;--ground-2:#ece8dd;--ground-3:#e2ddd0;--raised:#fff;--ink:#1d1c22;--ink-2:#57565f;--ink-3:#6e6c73;--rule:#e4dfd3;--set:#e2452b;--set-ink:#bf3119;--set-soft:#fbe2dc;--wait:#e7e2d6;--night:#1b1c22;--night-2:#25262e;--night-3:#33343d;--night-ink:#f1efe8;--night-ink-2:#a9a8b2;--night-set:#ff6b4f;--tan-1:#e2452b;--tan-2:#e9a23b;--tan-3:#23877a;--tan-4:#3e4c9a;--tan-5:#e48aa0;--tan-6:#7faf5f;--tan-7:#7a4c8f;--kind-noun:var(--tan-4);--kind-verb:var(--tan-3);--kind-phrase:var(--tan-2);--kind-other:var(--tan-7);--again-bg:#fbe5ea;--again:#9c2f49;--hard-bg:#fbefd9;--hard:#7f5310;--good-bg:#e6f0dd;--good:#3b6524;--easy-bg:#e3e6f5;--easy:#2f3c86;--marker:#fbe6bf;--marker-tip:#f5cf86;--ring:0 0 0 1px var(--rule);--lift:0 10px 30px #281e0a14;--paper:var(--ground);--surface:var(--raised);--ink-soft:var(--ink-2);--ink-faint:var(--ink-3);--line:var(--rule);--line-soft:var(--ground-2);--accent:var(--set);--accent-deep:var(--set-ink);--accent-soft:var(--set-soft);--accent-stroke:#f3b9ab;--accent-text:var(--set-ink);--moss:var(--good);--moss-soft:var(--good-bg);--moss-text:var(--good);--dark:var(--night);--dark-soft:var(--night-2);--dark-line:var(--night-3);--dark-chip:var(--night-3);--dark-btn-line:var(--night-3);--dark-text:var(--night-ink);--dark-muted:#8c8b96;--dark-muted-2:var(--night-ink-2);--dark-accent:var(--night-set);--row-selected:var(--ground-2);--answer:var(--raised);--claude:#d97757;--glow:var(--ground-2);--graph-edge:var(--ground-3);--graph-label:var(--ink);--font-display:"Bricolage Grotesque", "Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:var(--font-body);--font-code:ui-monospace, SFMono-Regular, Menlo, monospace;--font-jp:"Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;--t-word:44px;--t-display:34px;--t-title:26px;--t-heading:16px;--t-body:14px;--t-small:13px;--t-meta:12px;--r-card:16px;--r-card-sm:12px;--r-card-lg:18px;--r-pill:999px;--r-chip:999px;--r-input:10px;--r-nav:8px;--r-key:14px;--r-btn:10px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.5, .64, 1);--dur-1:.14s;--dur-2:.26s;--dur-3:.48s;--stagger:40ms;--sidebar-w:232px;--page-x:30px;--page-y:26px}*{box-sizing:border-box}html{font-family:var(--font-body);font-size:var(--t-body);color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}body{background:var(--ground);min-height:100dvh;margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-variation-settings:"opsz" 32;letter-spacing:-.015em;color:var(--ink);text-wrap:balance;margin:0;font-weight:650;line-height:1.15}h1{font-size:var(--t-title);letter-spacing:-.02em}h2{font-size:var(--t-heading);line-height:1.25}h3{letter-spacing:-.01em;font-size:14.5px;line-height:1.3}p{text-wrap:pretty;margin:0}a{color:inherit;text-decoration:none}a:hover{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1.5px}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:2.5px solid var(--ink);outline-offset:3px;border-radius:6px}::selection{background:var(--set);color:#fff}code{font-family:var(--font-code);background:var(--ground-2);border-radius:6px;padding:.1em .4em;font-size:.88em}.display{font-family:var(--font-display)}.jp{font-family:var(--font-jp);font-weight:600}.mono{font-variant-numeric:tabular-nums}.mono-label{color:var(--ink-3);font-size:13px;font-weight:500}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.link-accent{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.25em;transition:text-decoration-color var(--dur-1) ease;font-size:14px;font-weight:600;text-decoration-thickness:1.5px}.link-accent:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.error-text{color:var(--set-ink);font-size:14px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tnum{font-variant-numeric:tabular-nums}.lemma{font-family:var(--font-display);letter-spacing:-.01em;font-weight:700}.card{background:var(--raised);border-radius:var(--r-card);box-shadow:var(--ring);padding:16px 18px}.card--sm{border-radius:var(--r-card-sm)}.card--lg{border-radius:var(--r-card-lg)}.card--dark{background:var(--night);color:var(--night-ink);box-shadow:none}.card--accent{background:var(--set);color:#fff;box-shadow:none}.card--paper{background:var(--ground-2);box-shadow:none}.card-head{justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:12px;display:flex}.card-head h2,.card-head .card-title{font-family:var(--font-display);font-size:var(--t-heading);letter-spacing:-.01em;font-weight:650;line-height:1.25}.card-head a{color:var(--ink-2);font-size:12.5px}.card-head a:hover{color:var(--set-ink);text-decoration:none}.card--dark .card-head .card-title{color:var(--night-ink)}.card--dark .link-accent{color:var(--night-ink);-webkit-text-decoration-color:var(--night-3);text-decoration-color:var(--night-3)}.btn{border-radius:var(--r-btn);background:var(--raised);min-height:36px;box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink);white-space:nowrap;transition:background-color var(--dur-1) ease, color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);border:0;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13.5px;font-weight:550;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{background:#fffdf8;text-decoration:none}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.55;cursor:default}.btn--primary,.btn--accent{background:var(--ink);box-shadow:none;color:#fff}.btn--primary:hover,.btn--accent:hover{background:#2d2c34}.on-night .btn--primary,.on-night .btn--accent{background:var(--night-ink);color:var(--night)}.on-night .btn--primary:hover,.on-night .btn--accent:hover{background:#fff}.btn-tan{background:var(--set);width:10px;height:10px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1.5px;flex:none;transform:rotate(45deg)}.btn:hover .btn-tan{transform:rotate(225deg)}.btn--outline{background:var(--raised)}.btn--outline:hover{background:#fffdf8}.btn--dark-outline{background:var(--night-2);box-shadow:none;color:var(--night-ink)}.btn--dark-outline:hover{background:var(--night-3)}.btn--sm{border-radius:8px;min-height:30px;padding:0 11px;font-size:13px}.btn--lg{border-radius:12px;min-height:44px;padding:0 20px;font-size:15px}.btn--block{border-radius:12px;width:100%;min-height:44px;padding:0;font-size:14.5px}.btn--square{border-radius:var(--r-btn)}.btn--quiet{box-shadow:none;color:var(--ink-2);background:0 0}.btn--quiet:hover{background:var(--ground-2);color:var(--ink)}.btn--danger{color:var(--again)}.btn svg{flex:none}.icon-btn{width:32px;height:32px;color:var(--ink-2);transition:background-color var(--dur-1) ease, color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);border-radius:8px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--ground-2);color:var(--ink);text-decoration:none}.icon-btn:active{transform:scale(.92)}.kbd{background:var(--raised);min-width:18px;box-shadow:inset 0 0 0 1px var(--rule), 0 1px 0 var(--rule);color:var(--ink-3);font:500 11px / 18px var(--font-body);text-align:center;border-radius:5px;padding:0 5px;display:inline-block}.chip{border-radius:var(--r-chip);color:var(--ink-2);background:var(--ground);white-space:nowrap;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex}.chip--level{color:var(--ink);font-weight:600}.chip--tag{background:var(--set-soft);color:var(--set-ink);font-weight:600}.chip--tag-lg{padding:3px 11px;font-size:13px}.chip--theme{background:var(--ground-2);color:var(--ink-2)}.chip--dark{background:var(--night-3);color:var(--night-ink)}.chip--pill{background:var(--raised);box-shadow:var(--ring)}.kind{background:var(--kind-other);border-radius:1.5px;flex:none;width:7px;height:7px;display:inline-block;transform:rotate(45deg)}.kind[data-kind=noun]{background:var(--kind-noun)}.kind[data-kind=verb]{background:var(--kind-verb)}.kind[data-kind=phrase],.kind[data-kind=expression],.kind[data-kind=idiom]{background:var(--kind-phrase)}.stat{border-radius:var(--r-card-sm);background:var(--raised);box-shadow:var(--ring);align-content:start;gap:2px;min-width:0;padding:12px 14px;display:grid}.stat-top{color:var(--ink-3);justify-content:space-between;align-items:center;font-size:12px;font-weight:500;display:flex}.stat-top svg{color:var(--ink-3)}.stat-value{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:22px;font-weight:650;line-height:1.2}.stat-sub{color:var(--ink-3);font-size:12px}.stat--mono .stat-value{font-size:20px}.stat-value--accent{color:var(--set-ink)}.stat-value--moss{color:var(--good)}.progress{border-radius:var(--r-pill);background:var(--ground-2);height:6px;overflow:hidden}.progress--thin{height:4px}.progress--dark{background:var(--night-3)}.progress-bar{border-radius:var(--r-pill);background:var(--set);transform-origin:0;height:100%;transition:width var(--dur-3) var(--ease-out)}.progress--dark .progress-bar{background:var(--night-set)}.spark{align-items:flex-end;gap:3px;height:20px;display:flex}.spark-bar{background:var(--ground-3);transform-origin:bottom;border-radius:1px;width:5px;min-height:2px}.spark-bar[data-hot=true]{background:var(--set)}.spark-bar[data-empty=true]{background:var(--ground-2)}.segmented{background:var(--ground-2);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented-item{color:var(--ink-2);transition:background-color var(--dur-2) var(--ease-out), color var(--dur-1) ease;border-radius:7px;padding:4px 12px;font-size:13px;font-weight:550;text-decoration:none}.segmented-item:hover{color:var(--ink);text-decoration:none}.segmented-item[aria-current=true]{background:var(--raised);color:var(--ink);box-shadow:0 1px 2px #281e0a14}.rows{gap:0;display:grid}.row{grid-template-columns:var(--cols,1fr auto);min-width:0;transition:background-color var(--dur-1) ease;border-radius:10px;align-items:center;gap:12px;margin:0 -10px;padding:9px 10px;display:grid}a.row:hover,button.row:hover{background:var(--ground);text-decoration:none}.card--paper a.row:hover,.card--paper button.row:hover{background:var(--raised)}.row>*{min-width:0}.field{color:var(--ink);gap:6px;font-size:13px;font-weight:550;display:grid}.field textarea{resize:vertical;min-height:72px}.input{border-radius:var(--r-input);background:var(--raised);width:100%;min-height:38px;box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink);transition:box-shadow var(--dur-1) ease;border:0;align-items:center;gap:8px;padding:7px 12px;font-size:14px;font-weight:400;display:flex}.input:focus-within{box-shadow:inset 0 0 0 1.5px var(--ink)}.input input,.input textarea,.input select{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:0}.input svg{color:var(--ink-3);flex:none}.input--sm{border-radius:8px;min-height:32px;padding:5px 10px;font-size:13.5px}.select-chip{background:var(--raised);height:30px;box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink-2);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-1) ease;border-radius:8px;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:550;display:inline-flex;position:relative}.select-chip:hover{background:#fffdf8}.select-chip svg{color:var(--ink-3);flex:none}.select-chip select{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.select-chip[data-active=true]{background:var(--ink);box-shadow:none;color:#fff}.select-chip[data-active=true] svg{color:#fff}.select-chip--quiet{box-shadow:none;background:0 0;padding:0 6px}.select-chip .clear{z-index:1;border-radius:var(--r-pill);width:18px;height:18px;color:inherit;place-items:center;margin-right:-5px;display:inline-grid;position:relative}.select-chip .clear:hover{background:var(--night-3)}.avatar{background:var(--tan-2);width:28px;height:28px;color:var(--night);font-family:var(--font-display);border-radius:8px;flex:none;place-items:center;font-size:13px;font-weight:700;display:inline-grid}.avatar--sm{border-radius:6px;width:22px;height:22px;font-size:11px}.mark{flex:none;width:22px;height:22px;display:inline-block}.mark svg{width:100%;height:100%;display:block;overflow:visible}.mark--md{width:26px;height:26px}.mark--nav{width:22px;height:22px}.mark--lg{width:44px;height:44px}.mark polygon{stroke:var(--mark-gap,var(--ground));stroke-width:.12px;stroke-linejoin:round;transition:transform var(--dur-3) var(--ease-spring);transform-box:fill-box;transform-origin:50%}.mark polygon:first-child{fill:var(--tan-1);--sx:0;--sy:-8%}.mark polygon:nth-child(2){fill:var(--tan-2);--sx:-8%;--sy:0}.mark polygon:nth-child(3){fill:var(--tan-3);--sx:6%;--sy:0}.mark polygon:nth-child(4){fill:var(--tan-4);--sx:8%;--sy:-8%}.mark polygon:nth-child(5){fill:var(--tan-5);--sx:0;--sy:4%}.mark polygon:nth-child(6){fill:var(--tan-6);--sx:8%;--sy:8%}.mark polygon:nth-child(7){fill:var(--tan-7);--sx:-6%;--sy:8%}.wordmark:hover .mark polygon{transform:translate(var(--sx), var(--sy))}.wordmark{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.wordmark:hover{text-decoration:none}.wordmark-text{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:700}.wordmark--dark{color:var(--night-ink);--mark-gap:var(--night)}.mark--claude polygon{fill:var(--claude)}.dot{background:var(--set);border-radius:1.5px;flex:none;width:7px;height:7px;display:inline-block;transform:rotate(45deg)}.dot--off{background:var(--wait)}.empty{color:var(--ink-2);justify-items:start;gap:10px;max-width:56ch;padding:20px 0;display:grid}.empty--center{text-align:center;justify-items:center;margin:0 auto;padding:48px 0}.empty h2{color:var(--ink);font-size:20px}.empty p{font-size:14px;line-height:1.5}.empty--inline{color:var(--ink-2);padding:8px 0 2px;font-size:13.5px}.dialog{border-radius:var(--r-card-lg);background:var(--raised);color:var(--ink);border:0;width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;overflow:auto;box-shadow:0 24px 64px -16px #1d1c2259}.dialog[open]{animation:dialog-in var(--dur-3) var(--ease-spring)}.dialog[open]::backdrop{animation:fade-in var(--dur-2) ease}.dialog--wide{width:min(840px,100vw - 32px)}.dialog::backdrop{background:#1d1c2266}.dialog-inner{gap:16px;padding:22px 24px 24px;display:grid}.dialog-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.dialog-head h2{font-size:20px}.dialog-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.form-grid{gap:12px;display:grid}.form-grid--2{grid-template-columns:1fr 1fr}.form-hint{color:var(--ink-3);font-size:12px;font-weight:400}.card .input,.dialog .input,.card .select-chip,.dialog .select-chip{background:var(--ground);box-shadow:none}.card .input:focus-within,.dialog .input:focus-within{box-shadow:inset 0 0 0 1.5px var(--ink)}.pair-picker{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;display:grid}.pair-picker .field{grid-template-columns:minmax(0,1fr);min-width:0;font-size:12.5px}.pair-picker .input select{width:100%}.pair-picker-actions{grid-column:1/-1;gap:6px;display:flex}.pair-picker-error{color:var(--again);grid-column:1/-1}@media (width<=720px){.pair-picker{grid-template-columns:minmax(0,1fr)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:none}}@keyframes piece-dock{0%{opacity:0;transform:translate(var(--fx,0), var(--fy,140%)) rotate(var(--fr,24deg)) scale(.9)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes figure-settle{0%{transform:scale(.96)}55%{transform:scale(1.015)}to{transform:none}}@keyframes slot-blink{0%,to{opacity:1}50%{opacity:.45}}@keyframes card-swap{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes count-up{0%{opacity:0;transform:translateY(.4em)}to{opacity:1;transform:none}}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes nudge{0%,to{transform:none}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@media (prefers-reduced-motion:no-preference){.page>*,.rise>*{animation:rise var(--dur-3) var(--ease-out) backwards}.page>:nth-child(2),.rise>:nth-child(2){animation-delay:calc(var(--stagger) * 1)}.page>:nth-child(3),.rise>:nth-child(3){animation-delay:calc(var(--stagger) * 2)}.page>:nth-child(4),.rise>:nth-child(4){animation-delay:calc(var(--stagger) * 3)}.page>:nth-child(5),.rise>:nth-child(5){animation-delay:calc(var(--stagger) * 4)}.page>:nth-child(6),.rise>:nth-child(6){animation-delay:calc(var(--stagger) * 5)}.page>:nth-child(n+7),.rise>:nth-child(n+7){animation-delay:calc(var(--stagger) * 6)}.rows>.row{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(.12s + var(--stagger) * .6 * var(--i,0))}.rows>.row:first-child{--i:1}.rows>.row:nth-child(2){--i:2}.rows>.row:nth-child(3){--i:3}.rows>.row:nth-child(4){--i:4}.rows>.row:nth-child(5){--i:5}.rows>.row:nth-child(6){--i:6}.rows>.row:nth-child(n+7){--i:7}.spark-bar{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:.24s}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.tangram{--gap-colour:var(--ground);width:100%;height:auto;display:block;overflow:visible}.tangram polygon{stroke:var(--gap-colour);stroke-width:.08px;stroke-linejoin:round}.tangram-slots polygon{fill:var(--wait)}.tangram-set polygon{fill:var(--c,var(--set));transform-box:fill-box;transform-origin:50%}.tangram--ink .tangram-set polygon{fill:var(--ink)}.tangram--outline .tangram-slots polygon{fill:#0000;stroke:var(--ground-3);stroke-width:.06px}.tangram--outline .tangram-set polygon{stroke:var(--gap-colour)}.card .tangram,.on-raised .tangram{--gap-colour:var(--raised)}.on-night .tangram{--gap-colour:var(--night)}.on-night .tangram-slots polygon{fill:var(--night-3)}.tangram--ink.on-night .tangram-set polygon,.on-night .tangram--ink .tangram-set polygon{fill:var(--night-ink)}.tangram--loose .tangram-slots polygon{transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:no-preference){.tangram-set polygon{animation:piece-dock .56s var(--ease-spring) backwards;animation-delay:calc(.18s + var(--order,0) * 90ms)}.tangram[data-entrance=false] .tangram-set polygon{animation-delay:0s}.tangram[data-complete=true]{animation:figure-settle .62s var(--ease-out) both;transform-origin:50% 70%;animation-delay:.81s}.tangram--loose .tangram-slots polygon{animation:7s ease-in-out infinite alternate drift}.tangram--loose .tangram-slots polygon:nth-child(2n){animation-duration:9s;animation-direction:alternate-reverse}.tangram--loose .tangram-slots polygon:nth-child(3n){animation-duration:11s}@keyframes drift{0%{transform:translate(0)rotate(0)}to{transform:translate(3%,-4%)rotate(6deg)}}}@media (prefers-reduced-motion:reduce){.tangram-set polygon{animation:.15s both slot-fill}@keyframes slot-fill{0%{fill:var(--wait)}}}.app-frame{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100dvh;display:grid}.topbar{display:none}.sidebar{background:var(--night);height:100dvh;color:var(--night-ink-2);flex-direction:column;align-self:start;padding:14px 10px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{justify-content:space-between;align-items:center;padding:4px 8px 14px;display:flex}.sidebar-jp{font-family:var(--font-jp);color:var(--night-ink-2);font-size:11px}.pair-card{background:var(--night-2);transition:background-color var(--dur-1) ease;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex;position:relative}.pair-card:has(select):hover{background:var(--night-3)}.pair-card-name{color:var(--night-ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;overflow:hidden}.pair-card-level{color:var(--night-ink-2);white-space:nowrap;margin-left:auto;font-size:12px}.pair-card-chev{color:var(--night-ink-2);flex:none}.pair-card select{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.sidebar-nav{gap:12px;margin-top:10px;display:grid}.nav-group{gap:1px;display:grid}.nav-group-name{color:#8a8995;padding:4px 10px;font-size:12px}.nav-item{border-radius:var(--r-nav);height:32px;color:var(--night-ink-2);transition:background-color var(--dur-1) ease, color var(--dur-1) ease;align-items:center;gap:10px;padding:0 10px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item svg{flex:none}.nav-item:hover{color:var(--night-ink);background:var(--night-2);text-decoration:none}.nav-item[aria-current=page]{background:var(--night-3);color:#fff}.nav-tan{background:var(--set);opacity:0;width:8px;height:8px;transition:transform var(--dur-3) var(--ease-spring), opacity var(--dur-2) ease;border-radius:1.5px;flex:none;margin-left:auto;transform:rotate(-90deg)scale(.4)}.nav-item[aria-current=page] .nav-tan{opacity:1;transform:rotate(45deg)}.nav-badge{border-radius:var(--r-pill);background:var(--night-3);color:var(--night-ink);font-variant-numeric:tabular-nums;margin-left:auto;padding:0 7px;font-size:12px;font-weight:600;line-height:18px}.nav-item[aria-current=page] .nav-badge{background:var(--set);color:#fff}.sidebar-flex{flex:1;min-height:20px}.user-row{background:var(--night-2);border-radius:10px;align-items:center;gap:10px;padding:8px 6px 8px 10px;display:flex}.user-row-col{flex:1;min-width:0;display:grid}.user-row-name{color:var(--night-ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;overflow:hidden}.user-row-streak{color:var(--night-ink-2);font-size:12px}.user-row .icon-btn{color:var(--night-ink-2)}.user-row .icon-btn:hover,.user-row .icon-btn[aria-current=page]{background:var(--night-3);color:var(--night-ink)}.sidebar-signout{color:#8a8995;text-align:left;transition:color var(--dur-1) ease;margin-top:4px;padding:4px 10px;font-size:12px}.sidebar-signout:hover{color:var(--night-ink)}.tabbar{display:none}.page{padding:var(--page-y) var(--page-x) 48px;align-content:start;gap:18px;min-width:0;max-width:1280px;display:grid}.page--tight{gap:14px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;display:flex}.page-head-left{gap:4px;display:grid}.page-head-left p{color:var(--ink-2);max-width:60ch;font-size:13px}.page-head-right{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;max-width:100%;display:flex}.stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}@media (width<=1180px){.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=960px){:root{--page-x:20px;--page-y:20px}.app-frame{grid-template-columns:minmax(0,1fr)}.topbar{background:var(--ground);z-index:20;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.topbar-right{align-items:center;gap:10px;display:flex}.sidebar{width:var(--sidebar-w);z-index:40;transition:transform var(--dur-3) var(--ease-out);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar[data-open=true]{transform:none;box-shadow:24px 0 64px -16px #1d1c224d}.topbar .wordmark-text{font-size:16px}.app-main{padding-bottom:76px}.tabbar{z-index:30;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:var(--night);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.tab{color:var(--night-ink-2);justify-items:center;gap:2px;padding:4px 0;font-size:11px;font-weight:500;text-decoration:none;display:grid}.tab:hover{color:var(--night-ink);text-decoration:none}.tab[data-current=true]{color:#fff}.tab:after{content:"";background:var(--set);width:5px;height:5px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1px;transform:rotate(45deg)scale(0)}.tab[data-current=true]:after{transform:rotate(45deg)scale(1)}.sidebar-backdrop{z-index:39;animation:fade-in var(--dur-2) ease;background:#1d1c2259;position:fixed;inset:0}.page-head{flex-direction:column;align-items:stretch}.page-head-right{justify-content:flex-start}}@media (width<=720px){.stats-row{grid-template-columns:minmax(0,1fr)}}.today-hello{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;display:flex}.today-hello h1{font-size:28px;line-height:1.2}.today-hello h1 em{color:var(--set);font-style:normal}.today-hello p{color:var(--ink-3);margin-top:2px;font-size:13px}.today-actions{flex-wrap:wrap;gap:8px;display:flex}.today-hero{border-radius:var(--r-card-lg);background:var(--night);min-height:196px;color:var(--night-ink);grid-template-columns:150px minmax(0,1fr) 1px minmax(280px,330px);align-items:center;gap:26px;padding:22px 26px;display:grid}.today-figure{justify-self:center;width:100%;max-height:168px}.today-figure .tangram{height:100%;max-height:168px}.today-figure--loose{aspect-ratio:12/7}.today-figure-copy{justify-items:start;min-width:0;display:grid}.today-eyebrow{color:var(--night-ink-2);font-size:12px}.today-name{font-size:var(--t-display);color:#fff;letter-spacing:-.02em;margin:2px 0;line-height:1.12}.today-gloss{color:var(--night-ink-2);font-size:13px}.today-pips{gap:6px;margin:14px 0 8px;display:flex}.today-pips i{background:var(--night-3);border-radius:2px;width:12px;height:12px;transform:rotate(45deg)scale(.8)}.today-pips i[data-on=true]{background:var(--c);transform:rotate(45deg)}.today-next{color:var(--night-ink);font-size:13px}.today-next b{color:var(--tan-2);font-weight:600}.today-first-line{max-width:44ch;color:var(--night-ink);margin:8px 0 14px;font-size:15px}.today-hero-rule{background:var(--night-3);align-self:stretch}.today-hero-side{gap:14px;min-width:0;display:grid}.today-connect{color:var(--night-ink);gap:6px;font-size:13px}.today-connect code{color:#fff}.today-done{align-items:center;gap:8px;min-height:44px;display:flex}.today-done-fig{background:var(--night-2);border-radius:8px;place-items:center;max-width:60px;height:44px;padding:5px;display:grid}.today-done-fig .tangram{--gap-colour:var(--night-2);width:auto;height:100%}.today-done-text{color:var(--night-ink-2);font-size:12px;line-height:1.4}.today-done-text span{color:var(--night-ink)}.today-minis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.today-mini{background:var(--night-2);border-radius:12px;padding:9px 12px;display:grid}.today-mini b{font-family:var(--font-display);color:#fff;font-variant-numeric:tabular-nums;font-size:22px;font-weight:650;line-height:1.2}.today-mini span{color:var(--night-ink-2);font-size:12px}.today-week{align-items:center;gap:6px;display:flex}.today-week-day{color:var(--night-ink-2);justify-items:center;gap:3px;font-size:11px;display:grid}.today-week-day i{background:var(--night-2);border-radius:6px;width:20px;height:20px}.today-week-day i[data-on=true]{background:var(--c)}.today-week-day i[data-today=true]{box-shadow:0 0 0 2px var(--night), 0 0 0 3.5px var(--night-ink-2)}.today-week-note{color:var(--night-ink-2);margin-left:6px;font-size:12px}.today-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;gap:18px;display:grid}.today-col{gap:18px;min-width:0;display:grid}.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.tile{background:var(--ground);height:100%;color:var(--ink);transition:transform var(--dur-2) var(--ease-out), background-color var(--dur-2) ease;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:9px;padding:10px 12px;text-decoration:none;display:grid;position:relative}.tile:hover{background:var(--ground-2);text-decoration:none;transform:translateY(-2px)}.tile .kind{transition:transform var(--dur-3) var(--ease-spring);grid-row:1/3;align-self:start;margin-top:7px}.tile:hover .kind{transform:rotate(225deg)scale(1.2)}.tile-lemma{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;line-height:1.35;overflow:hidden}.tile-gloss{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:12.5px;overflow:hidden}.tile-note{color:var(--again);font-size:11px;position:absolute;top:8px;right:10px}.tile--more{box-shadow:inset 0 0 0 1px var(--rule);background:0 0;grid-template-columns:minmax(0,1fr)}.tile--more .tile-gloss{grid-column:1}.tiles-legend{color:var(--ink-3);gap:14px;margin-top:12px;font-size:12px;display:flex}.tiles-legend>span{align-items:center;gap:6px;display:inline-flex}.today-line-col{min-width:0;display:grid}.today-line-title{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:550;overflow:hidden}.today-line-sub{color:var(--ink-3);font-size:12px}.today-session{--cols:auto minmax(0, 1fr) auto}.today-session-ico{background:var(--ground);width:28px;height:28px;color:var(--ink-2);border-radius:8px;place-items:center;display:grid}.today-session-ico[data-mode=reading]{background:var(--easy-bg);color:var(--easy)}.today-session-ico[data-mode=drill]{background:var(--hard-bg);color:var(--hard)}.today-session-ico[data-mode=conversation],.today-session-ico[data-mode=translation]{background:var(--good-bg);color:var(--good)}.today-go-arrow{color:var(--ink-3);transition:transform var(--dur-2) var(--ease-out)}.row:hover .today-go-arrow{color:var(--ink);transform:translate(3px)}.today-pattern{--cols:minmax(0, 1fr) auto}.today-freq{gap:3px;display:flex}.today-freq i{background:var(--ground-2);border-radius:1.5px;width:7px;height:7px;transform:rotate(45deg)}.today-freq i[data-on=true]{background:var(--c)}.today-gap{background:var(--again-bg);box-shadow:none}.today-gap .card-head{padding-bottom:4px}.today-gap h2{color:var(--again)}.today-gap-word{font-family:var(--font-display);color:var(--again);font-size:20px;font-weight:650;text-decoration:none;display:inline-block}.today-gap-word:hover{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1.5px}.today-gap p{color:var(--ink-2);margin-top:4px;font-size:13px}.today-gap--fresh{background:var(--easy-bg)}.today-gap--fresh h2,.today-gap--fresh .today-gap-word{color:var(--easy)}.today-new-line{color:var(--ink-3);margin:-4px 0 12px;font-size:13px}.today-foot{color:var(--ink-3);align-items:center;gap:8px;padding:0 4px;font-size:12px;display:flex}.today-foot>span{flex:1;min-width:0}.today-foot a{color:var(--ink-2);font-weight:550}@media (prefers-reduced-motion:no-preference){.today-hello,.today-hero,.today-col>*{animation:rise var(--dur-3) var(--ease-out) backwards}.today-hero{animation-delay:60ms}.today-col>:first-child{animation-delay:.14s}.today-col>:nth-child(2){animation-delay:.2s}.today-col>:nth-child(3){animation-delay:.26s}.tiles>li{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(.22s + var(--i,0) * var(--stagger))}.today-pips i[data-on=true]{animation:pip-in .52s var(--ease-spring) backwards;animation-delay:calc(.3s + var(--k,0) * 70ms)}@keyframes pip-in{0%{opacity:0;transform:rotate(-90deg)scale(.2)}}}@media (width<=1180px){.today-hero{grid-template-columns:130px minmax(0,1fr)}.today-hero-rule{display:none}.today-hero-side{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px 20px}.today-hero-side .today-week{grid-column:1/-1}.today-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.today-hello h1{font-size:22px}.today-actions{width:100%}.today-actions .today-go{flex:1;min-height:44px}.today-hero{grid-template-columns:92px minmax(0,1fr);gap:16px;padding:16px}.today-name{font-size:26px}.today-pips{gap:5px;margin:10px 0 6px}.today-pips i{width:10px;height:10px}.today-hero-side{grid-template-columns:minmax(0,1fr)}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.review-page{grid-template-rows:auto 1fr;min-height:100dvh;position:relative}.review-top{align-items:center;gap:16px;display:flex}.review-top h1{font-size:20px}.review-count{color:var(--ink-3);white-space:nowrap;font-size:13px}.review-count b{color:var(--ink);font-weight:600}.review-bar{border-radius:var(--r-pill);background:var(--ground-2);flex:1;max-width:240px;height:4px;overflow:hidden}.review-bar i{border-radius:inherit;background:var(--set);height:100%;transition:width var(--dur-3) var(--ease-out);display:block}.review-fig{background:var(--raised);box-shadow:var(--ring);border-radius:12px;align-items:center;gap:10px;margin-left:auto;padding:6px 12px 6px 8px;display:flex}.review-fig-art{place-items:center;max-width:64px;height:40px;display:grid}.review-fig-art .tangram{--gap-colour:var(--raised);width:auto;height:100%}.review-fig-text{min-width:96px;display:grid}.review-fig-text b{font-family:var(--font-display);font-size:14px;font-weight:650}.review-fig-text span{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px}.review-stage{align-content:center;place-items:center;gap:18px;padding-bottom:40px;display:grid}.review-stack{width:min(600px,100%);position:relative}.review-stack:before,.review-stack:after{content:"";box-shadow:var(--ring);border-radius:20px;position:absolute;inset:0}.review-stack:before{background:#fbf9f4;transform:rotate(-2.2deg)translateY(10px)}.review-stack:after{background:#fdfcf9;transform:rotate(1.5deg)translateY(5px)}.review-card{z-index:1;background:var(--raised);box-shadow:var(--ring), var(--lift);border-radius:20px;position:relative;overflow:hidden}.review-card-top{padding:24px 30px 20px;position:relative}.review-card-top:after{content:"";background:var(--c,var(--set));border-radius:2px;width:16px;height:16px;position:absolute;top:24px;right:26px;transform:rotate(45deg)}.review-chips{flex-wrap:wrap;align-items:center;gap:6px;margin:0 32px 14px 0;display:flex}.review-from{color:var(--ink-3);font-size:12px}.review-cloze{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;font-size:24px;font-weight:600;line-height:1.3}.cloze-blank{background:var(--ground-2);min-width:3ch;color:var(--ink-3);border-radius:6px;padding:0 4px;display:inline-block}.cloze-blank.is-revealed{background:color-mix(in srgb, var(--c,var(--set)) 18%, white);color:var(--ink)}.review-base{color:var(--ink-3);margin-top:6px;font-size:14px}.review-answer{gap:4px;padding:0 30px 18px;display:grid}.answer-word{font-family:var(--font-display);font-size:var(--t-word);letter-spacing:-.025em;font-weight:680;line-height:1.1}.answer-gloss{color:var(--ink-2);font-size:16px}.answer-note{background:var(--ground);color:var(--ink-2);white-space:pre-line;border-radius:12px;margin-top:10px;padding:10px 14px;font-size:13px;line-height:1.5}.review-actions{padding:0 30px 26px}.review-show{background:var(--ground);width:100%;height:48px;transition:background-color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);border-radius:12px;justify-content:center;align-items:center;gap:10px;font-weight:600;display:flex}.review-show:hover{background:var(--ground-2)}.review-show:active{transform:scale(.98)}.grade-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.grade{border-radius:var(--r-key);text-align:left;min-height:56px;transition:transform var(--dur-1) var(--ease-out), filter var(--dur-1) ease;justify-content:space-between;align-items:center;gap:8px;padding:0 12px 0 14px;display:flex}.grade:hover{filter:saturate(1.3)brightness(.98);transform:translateY(-2px)}.grade:active{transform:scale(.96)}.grade-col{display:grid}.grade-top{font-family:var(--font-display);font-size:15px;font-weight:650;line-height:1.2}.grade-int{opacity:.85;font-size:12px}.grade .kbd{box-shadow:none;color:inherit;background:#fff9}.grade--again{background:var(--again-bg);color:var(--again)}.grade--hard{background:var(--hard-bg);color:var(--hard)}.grade--good{background:var(--good-bg);color:var(--good)}.grade--easy{background:var(--easy-bg);color:var(--easy)}.review-kbd{z-index:1;color:var(--ink-3);text-align:center;font-size:12.5px;position:relative}.review-flyer{z-index:60;pointer-events:none;position:fixed;top:0;left:0;overflow:visible}.review-toast{z-index:20;background:var(--night);color:var(--night-ink-2);border-radius:14px;align-items:center;gap:12px;padding:10px 16px 10px 10px;font-size:13px;display:flex;position:absolute;top:78px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0003}.review-toast b{font-family:var(--font-display);color:var(--night-ink);font-size:15px;font-weight:650;display:block}.review-toast-fig{place-items:center;max-width:56px;height:40px;display:grid}.review-toast-fig .tangram{--gap-colour:var(--night);width:auto;height:100%}.review-page--done{align-content:center}.review-done{border-radius:var(--r-card-lg);background:var(--night);width:min(820px,100%);color:var(--night-ink);grid-template-columns:200px minmax(0,1fr);align-items:center;gap:36px;margin:0 auto;padding:32px 36px;display:grid}.review-done-figure{justify-self:center;width:100%;max-height:220px}.review-done-figure .tangram{height:100%;max-height:220px}.review-done-copy{justify-items:start;gap:8px;display:grid}.review-eyebrow{color:var(--night-ink-2);font-size:12px}.review-done-copy h1{font-size:var(--t-display);color:#fff;line-height:1.15}.review-done-copy p{color:var(--night-ink-2);font-size:14px}.review-done-earned{gap:8px;margin-top:4px;display:flex}.review-done-mini{background:var(--night-2);border-radius:8px;place-items:center;max-width:60px;height:44px;padding:5px;display:grid}.review-done-mini .tangram{--gap-colour:var(--night-2);width:auto;height:100%}.review-done-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}@media (prefers-reduced-motion:no-preference){.review-card{animation:card-in .46s var(--ease-out) backwards}@keyframes card-in{0%{opacity:0;transform:translate(36px)rotate(2.5deg)}}.review-answer{animation:rise var(--dur-2) var(--ease-out) backwards}.cloze-blank.is-revealed{animation:blank-fill .42s var(--ease-spring) backwards}@keyframes blank-fill{0%{opacity:0;transform:scale(.7)}}.review-fig .tangram[data-entrance=false] .tangram-set polygon{animation:piece-land .52s var(--ease-spring) backwards;animation-delay:.6s}@keyframes piece-land{0%{opacity:0;transform:scale(1.5)rotate(-30deg)}}.review-fig[data-finished=true]{animation:fig-cheer .9s var(--ease-spring) .64s}@keyframes fig-cheer{30%{transform:scale(1.1)rotate(-3deg)}}.review-toast{animation:toast 2.4s var(--ease-out) both;animation-delay:.5s}@keyframes toast{0%{opacity:0;transform:translate(-50%,-12px)scale(.95)}12%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-8px)}}.review-done{animation:rise var(--dur-3) var(--ease-out) backwards}}@media (width<=960px){.review-page{min-height:calc(100dvh - 120px)}.review-top{flex-wrap:wrap;gap:10px 14px}.review-bar{flex-basis:100%;order:5;max-width:none}}@media (width<=720px){.review-fig{flex:1;margin-left:0}.review-stage{align-content:start;padding-top:12px}.review-card-top{padding:20px 20px 16px}.review-answer{padding:0 20px 14px}.review-actions{padding:0 20px 20px}.review-cloze{font-size:20px}.answer-word{font-size:34px}.grade-row{grid-template-columns:repeat(2,minmax(0,1fr))}.grade .kbd{display:none}.review-fig-text{min-width:0}.review-done{grid-template-columns:minmax(0,1fr);gap:18px;padding:22px}.review-done-figure{max-width:160px}.review-kbd{display:none}}.vocab-toolbar{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.vocab-search{width:260px;max-width:100%}.vocab-filters{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.vocab-sort{margin-left:auto}.vocab-sort .segmented-item{cursor:pointer}.vocab-sort .segmented-item[aria-pressed=true]{background:var(--raised);color:var(--ink);box-shadow:0 1px 2px #281e0a14}.vocab-body{grid-template-columns:minmax(0,1fr) minmax(340px,380px);align-items:start;gap:18px;display:grid}.list-card{min-width:0;padding:8px 10px}.list-card>.empty{padding:14px 8px;font-size:13.5px}.item-list{gap:1px;display:grid}.item-row{text-align:left;cursor:pointer;width:100%;min-height:40px;transition:background-color var(--dur-1) ease;border-radius:10px;grid-template-columns:8px minmax(0,1fr) minmax(0,120px) minmax(0,96px) 74px 84px;align-items:center;gap:12px;padding:9px 10px 9px 12px;display:grid}.item-row:hover{background:var(--ground)}.item-row[aria-pressed=true]{background:var(--ground-2)}.item-row .kind{transition:transform var(--dur-3) var(--ease-spring)}.item-row:hover .kind,.item-row[aria-pressed=true] .kind{transform:rotate(225deg)scale(1.15)}.item-word{align-items:baseline;gap:10px;min-width:0;display:flex}.item-lemma{max-width:60%;font-family:var(--font-display);letter-spacing:-.005em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:15px;font-weight:620;line-height:1.3;overflow:hidden}.item-gloss{min-width:0;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.item-practised{min-width:0;color:var(--good);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;margin-left:auto;font-size:11.5px;overflow:hidden}.item-check{width:14px;height:14px;box-shadow:inset 0 0 0 1.5px var(--ink-3);color:#fff;transition:background-color var(--dur-1) ease, box-shadow var(--dur-1) ease;border-radius:4px;place-items:center;margin:0 -3px;display:grid}.item-check[data-on=true]{background:var(--ink);box-shadow:none}.vocab-actions .btn[aria-pressed=true]{background:var(--ground-2);box-shadow:none}.pick-bar{z-index:5;border-radius:var(--r-card-sm);background:var(--raised);box-shadow:var(--ring), var(--lift);gap:8px;margin:8px 0 2px;padding:10px 12px;display:grid;position:sticky;bottom:16px}.pick-bar-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.pick-bar-note{color:var(--ink-2);font-size:13px}.pick-bar-actions{gap:6px;display:flex}.pick-bar-words{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pick-bar-words .chip{gap:4px;padding-right:5px}.pick-bar-remove{width:16px;height:16px;transition:background-color var(--dur-1) ease;border-radius:50%;place-items:center;display:grid}.pick-bar-remove:hover{background:var(--raised)}.item-pos{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.item-themes{min-width:0;display:flex;overflow:hidden}.item-themes .chip{text-overflow:ellipsis;max-width:100%;padding:1px 8px;font-size:11.5px;overflow:hidden}.item-row:hover .chip--theme,.item-row[aria-pressed=true] .chip--theme{background:var(--raised)}.state-pill{border-radius:var(--r-pill);background:var(--set-soft);color:var(--set-ink);white-space:nowrap;justify-self:start;padding:1px 8px;font-size:11.5px;font-weight:600;line-height:1.5;display:inline-block}.state-pill[data-state=learning]{background:var(--hard-bg);color:var(--hard)}.state-pill[data-state=review]{background:var(--good-bg);color:var(--good)}.state-pill[data-state=relearning]{background:var(--again-bg);color:var(--again)}.item-sched{color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;justify-self:end;font-size:12px}.item-sched[data-due=true]{color:var(--ink);font-weight:600}.item-sched[data-due=late]{color:var(--again);font-weight:600}.detail-panel{background:var(--raised);border-radius:var(--r-card);min-width:0;box-shadow:var(--ring);overscroll-behavior:contain;--kind-c:var(--kind-other);max-height:calc(100vh - 36px);display:block;position:sticky;top:18px;overflow:auto}.detail-panel[data-kind=noun]{--kind-c:var(--kind-noun)}.detail-panel[data-kind=verb]{--kind-c:var(--kind-verb)}.detail-panel[data-kind=phrase]{--kind-c:var(--kind-phrase)}.detail-panel--empty{padding:0}.detail-bar{z-index:1;background:var(--raised);justify-content:space-between;align-items:center;gap:10px;padding:10px 10px 4px 20px;display:flex;position:sticky;top:0}.detail-meta-line{min-width:0;color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-size:12.5px;display:inline-flex;overflow:hidden}.detail-actions{flex:none;gap:0;display:flex}.detail-head{gap:2px;padding:2px 20px 0;display:grid}.detail-lemma{letter-spacing:-.02em;overflow-wrap:anywhere;outline:none;font-size:32px;font-weight:650;line-height:1.1}.detail-sound{color:var(--ink-3);font-size:13px}.detail-body{gap:16px;padding:12px 20px 20px;display:grid}.detail-tr{gap:2px;display:grid}.detail-gloss{color:var(--ink);font-size:15px;font-weight:550;line-height:1.4}.detail-gloss-alt{color:var(--ink-2);font-size:13.5px}.detail-lang{color:var(--ink-3);font-size:12px}.detail-examples{gap:10px;display:grid}.example{gap:2px;display:grid}.example-it{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:550;line-height:1.4}.example-it b{background:color-mix(in srgb, var(--kind-c) 16%, transparent);color:var(--ink);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;margin:0 -1px;padding:0 3px;font-weight:650}.example-en{color:var(--ink-2);font-size:13px;line-height:1.45}.detail-notes{border-radius:var(--r-card-sm);background:var(--ground);gap:8px;padding:12px 14px;display:grid}.detail-notes p{color:var(--ink);font-size:13.5px;line-height:1.55}.detail-notes em{font-style:normal;font-weight:600}.contrast{border-radius:var(--r-card-sm);background:var(--again-bg);text-align:left;width:100%;transition:transform var(--dur-1) var(--ease-out);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 14px;text-decoration:none;display:grid}.contrast:hover{text-decoration:none;transform:translateY(-1px)}.contrast-col{gap:2px;display:grid}.contrast-title{font-family:var(--font-display);color:var(--again);font-size:14px;font-weight:650}.contrast-note{color:var(--ink-2);font-size:13px;line-height:1.45}.contrast-go{color:var(--again);transition:transform var(--dur-2) var(--ease-out)}.contrast:hover .contrast-go{transform:translate(3px)}.detail-section{gap:8px;display:grid}.detail-h{font-size:var(--t-heading);font-weight:650}.related-row{flex-wrap:wrap;gap:6px;display:flex}.related-pill{border-radius:var(--r-pill);background:var(--ground);cursor:pointer;transition:background-color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);align-items:baseline;gap:6px;padding:4px 11px;text-decoration:none;display:inline-flex}.related-pill:hover{background:var(--ground-2);text-decoration:none;transform:translateY(-1px)}.related-pill:active{transform:scale(.96)}.related-word{font-family:var(--font-display);color:var(--ink);font-size:13.5px;font-weight:620}.related-type{color:var(--ink-3);font-size:11.5px}.memory-box{gap:10px;display:grid}.memory-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.memory-status{color:var(--ink-2);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.memory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;display:grid}.memory-cell{background:var(--ground);border-radius:10px;align-content:start;gap:1px;min-width:0;padding:8px 10px;display:grid}.memory-cell dd{margin:0}.memory-value{font-family:var(--font-display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;grid-row:1;font-size:17px;font-weight:650;line-height:1.25}.memory-value--date{font-size:14px;line-height:1.53}.memory-label{color:var(--ink-3);grid-row:2;font-size:11.5px}.memory-foot{color:var(--ink-3);font-size:12.5px}.practice-box{gap:8px;display:grid}.practice-recent{gap:4px;margin:0;padding:0;list-style:none;display:grid}.practice-recent li{background:var(--ground);border-radius:10px;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:8px;padding:8px 10px;display:grid}.practice-recent-mark{background:var(--hard-bg);width:20px;height:20px;color:var(--hard);border-radius:50%;place-items:center;display:grid}.practice-recent li[data-ok=true] .practice-recent-mark{background:var(--good-bg);color:var(--good)}.practice-recent-col{gap:1px;min-width:0;display:grid}.practice-recent-phrase{font-size:13.5px;line-height:1.4}.practice-recent-meta{color:var(--ink-3);font-size:11.5px}.practice-recent-meta .link-accent{font-size:11.5px}.prov-row{color:var(--ink-3);font-size:12.5px;line-height:1.5}.prov-row .link-accent{font-weight:550}.detail-empty{text-align:center;align-content:center;justify-items:center;gap:14px;min-height:300px;padding:28px 24px;display:grid}.detail-empty .tangram{width:112px}.detail-empty p{color:var(--ink-3);max-width:30ch;font-size:13px;line-height:1.5}.detail-backdrop{display:none}@media (prefers-reduced-motion:no-preference){.item-list>li{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(80ms + var(--i,0) * 25ms)}.detail-panel:not(.detail-panel--empty){animation:panel-in .36s var(--ease-out) backwards}.detail-head,.detail-body>*{animation:rise var(--dur-3) var(--ease-out) backwards}.detail-head{animation-delay:40ms}.detail-body>:first-child{animation-delay:80ms}.detail-body>:nth-child(2){animation-delay:.12s}.detail-body>:nth-child(3){animation-delay:.16s}.detail-body>:nth-child(n+4){animation-delay:.2s}@keyframes panel-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}}.import{gap:14px;min-width:0;display:grid}.import-intro{color:var(--ink-2);margin:0;font-size:13.5px;line-height:1.55}.import-drop{border-radius:var(--r-card-sm);background:var(--ground);color:var(--ink-2);font:inherit;cursor:pointer;transition:background-color var(--dur-1) ease, color var(--dur-1) ease, transform var(--dur-2) var(--ease-out);flex-direction:column;align-items:center;gap:8px;padding:32px 20px;font-size:13.5px;font-weight:550;display:flex}.import-drop:hover,.import-drop[data-over=true]{background:var(--ground-2);color:var(--ink)}.import-drop[data-over=true]{transform:scale(1.01)}.import-drop:disabled{cursor:progress}.import-table-wrap{border-radius:var(--r-card-sm);background:var(--ground);max-height:50vh;overflow:auto}.import-table{border-collapse:collapse;width:100%;font-size:13px}.import-table th,.import-table td{text-align:left;vertical-align:top;padding:7px 10px}.import-table tbody tr:nth-child(2n) td{background:var(--ground-2)}.import-table th{background:var(--ground-3);color:var(--ink);font-size:12px;font-weight:600;position:sticky;top:0}.import-table .num{text-align:right;font-variant-numeric:tabular-nums}.import-lemma{font-family:var(--font-display);font-weight:620}.import-themes,.import-notes{color:var(--ink-2)}.import-notes{max-width:220px;font-size:12px}.import-row--error td{color:var(--ink-2);text-decoration:line-through}.import-row--error .import-notes{color:var(--again);text-decoration:none}.import-summary{gap:8px;margin:0;display:flex}.import-summary div{border-radius:var(--r-card-sm);background:var(--ground);gap:1px;min-width:96px;padding:10px 14px;display:grid}.import-summary dt{color:var(--ink-3);grid-row:2;font-size:12px}.import-summary dd{font-family:var(--font-display);letter-spacing:-.015em;font-variant-numeric:tabular-nums;grid-row:1;margin:0;font-size:22px;font-weight:650;line-height:1.2}.pagination{box-shadow:0 -1px 0 var(--ground-2);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;padding:8px 0 2px;display:flex}.pagination-pages{align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.pagination-page{min-width:30px;height:30px;color:var(--ink-2);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--dur-1) ease, color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);border-radius:8px;padding:0 8px;font-size:13px;font-weight:550}.pagination-page:hover{background:var(--ground);color:var(--ink)}.pagination-page:active{transform:scale(.94)}.pagination-page[aria-current=page]{background:var(--ink);color:#fff}.pagination-gap{color:var(--ink-3);padding:0 4px}@media (width<=1320px){.item-row{grid-template-columns:8px minmax(0,1fr) minmax(0,96px) 74px 84px}.item-row .item-themes{display:none}}@media (width<=1180px){.vocab-body{grid-template-columns:minmax(0,1fr)}.item-row{grid-template-columns:8px minmax(0,1fr) minmax(0,120px) minmax(0,110px) 74px 84px}.item-row .item-themes{display:flex}.page>.vocab-body{animation:none}.detail-panel--empty{display:none}.vocab-body>.detail-panel:not(.detail-panel--empty){z-index:46;border-radius:0;width:min(420px,100vw);max-height:100vh;position:fixed;inset:0 0 0 auto;box-shadow:-24px 0 64px -16px #1d1c224d}.detail-backdrop{z-index:45;animation:fade-in var(--dur-2) ease;background:#1d1c2259;display:block;position:fixed;inset:0}}@media (width<=960px){.vocab-sort{margin-left:0}}@media (width<=720px){.list-card{padding:6px}.item-row{grid-template-rows:auto auto;grid-template-columns:8px minmax(0,1fr) auto;gap:1px 10px;padding:8px 10px}.item-row .kind{grid-row:1;align-self:center}.item-word{grid-area:1/2/3;gap:0;display:grid}.item-lemma{max-width:100%}.item-row .item-check{grid-row:1;align-self:center}.item-row .item-pos,.item-row .item-themes,.item-practised{display:none}.pick-bar{bottom:84px}.item-row .state-pill{grid-area:1/3;justify-self:end}.item-row .item-sched{grid-area:2/3;font-size:11.5px}.vocab-search{width:100%}.vocab-filters{width:0;margin:0 calc(var(--page-x) * -1);padding:2px var(--page-x) 4px;scrollbar-width:none;flex-wrap:nowrap;flex:1 0 100%;overflow-x:auto}.vocab-filters::-webkit-scrollbar{display:none}.vocab-filters>*{flex:none}.vocab-actions{justify-content:flex-start}.vocab-long{display:none}}@media (width<=640px){.pagination{flex-wrap:wrap;justify-content:center}}.graph{height:calc(100vh - var(--page-y) - 48px - 72px);grid-template-columns:minmax(0,1fr) 260px;gap:14px;min-width:0;min-height:480px;display:grid}.graph-canvas{--graph-edge:var(--ground-3);--graph-label:var(--ink);--accent:var(--again);--moss:var(--good);--ink-soft:var(--easy);--ink-faint:#b5b0a3}.graph--loading{color:var(--ink-3);border-radius:var(--r-card);background:var(--raised);box-shadow:var(--ring);place-items:center;font-size:13px;display:grid}@media (prefers-reduced-motion:no-preference){.graph--loading{animation:1.6s ease-in-out infinite slot-blink}}.graph-stage{background:var(--raised);border-radius:var(--r-card);min-width:0;min-height:0;box-shadow:var(--ring);position:relative;overflow:hidden}.graph-canvas{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;width:100%;height:100%;display:block}.graph-canvas:active{cursor:grabbing}.graph-stage-foot{pointer-events:none;justify-content:space-between;align-items:center;gap:10px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.graph-stage-foot .btn{pointer-events:auto;background:var(--raised);box-shadow:var(--ring), 0 4px 12px #281e0a0f;color:var(--ink-2)}.graph-stage-foot .btn:hover{background:var(--raised);color:var(--ink);transform:translateY(-1px)}.graph-hint,.graph-notice{color:var(--ink-2);background:var(--raised);box-shadow:var(--ring), 0 4px 12px #281e0a0f;border-radius:8px;padding:5px 10px;font-size:12.5px}.graph-hint{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.graph-notice{width:fit-content;color:var(--ink);margin:0;position:absolute;top:12px;left:12px;right:12px}.graph-side{background:var(--raised);border-radius:var(--r-card);min-height:0;box-shadow:var(--ring);align-content:start;gap:18px;padding:14px 14px 16px;display:grid;overflow:auto}.graph-search{gap:4px;display:grid}.graph-search-field{background:var(--ground);box-shadow:none;padding-right:4px}.graph-search-field:focus-within{box-shadow:inset 0 0 0 1.5px var(--ink)}.graph-search-field input{font:inherit;color:var(--ink)}.graph-search-field .icon-btn{width:24px;height:24px}.graph-matches{gap:1px;margin:0;padding:0;list-style:none;display:grid}.graph-matches button,.graph-theme-row{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-1) ease, color var(--dur-1) ease;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:5px 8px;font-size:13px;display:flex}.graph-matches button{font-family:var(--font-display);font-size:14px;font-weight:600}.graph-matches button:hover,.graph-theme-row:hover{background:var(--ground)}.graph-theme-row[aria-pressed=true]{background:var(--ink);color:#fff}.graph-theme-row[aria-pressed=true] .graph-theme-count{color:var(--night-ink-2)}.graph-swatch{background:var(--swatch,#b5b0a3);width:8px;height:8px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1.5px;flex:none;transform:rotate(45deg)}.graph-theme-row:hover .graph-swatch,.graph-matches button:hover .graph-swatch{transform:rotate(225deg)scale(1.2)}.graph-theme-row[aria-pressed=true] .graph-swatch{box-shadow:0 0 0 1.5px #fff}.graph-theme-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.graph-theme-count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px}.graph-section{gap:4px;display:grid}.graph-section-head{justify-content:space-between;align-items:baseline;padding:0 8px 4px;display:flex}.graph-section-title{font-family:var(--font-display);font-size:var(--t-heading);letter-spacing:-.01em;align-items:baseline;gap:6px;font-weight:650;display:flex}.graph-section-title .graph-theme-count{font-family:var(--font-body);font-weight:500}.graph-section>.graph-section-title{padding:0 8px 4px}.graph-clear{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px;font-weight:550}.graph-clear:hover{color:var(--set-ink)}.graph-theme-group{gap:1px;display:grid}.graph-theme-group+.graph-theme-group{margin-top:8px}.graph-group-title{color:var(--ink-3);padding:2px 8px;font-size:12px}.graph-empty{color:var(--ink-3);margin:0;padding:2px 8px;font-size:12.5px}.graph-legend{color:var(--ink-2);grid-template-columns:1fr 1fr;gap:6px 10px;margin:0;padding:0 8px;font-size:13px;list-style:none;display:grid}.graph-legend li{align-items:center;gap:8px;display:flex}.graph-legend-tan{background:#b5b0a3;border-radius:1.5px;flex:none;width:8px;height:8px;transform:rotate(45deg)}.graph-legend-tan[data-type=contrast]{background:var(--again)}.graph-legend-tan[data-type=synonym]{background:var(--good)}.graph-legend-tan[data-type=derived]{background:var(--easy)}.graph-toggle{background:var(--ground);cursor:pointer;transition:background-color var(--dur-1) ease;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:1px 8px;margin-top:8px;padding:8px;font-size:13px;font-weight:550;display:grid}.graph-toggle:hover{background:var(--ground-2)}.graph-toggle input{width:15px;height:15px;accent-color:var(--ink)}.graph-toggle-hint{color:var(--ink-3);grid-column:2;font-size:12px;font-weight:400;line-height:1.4}.graph-run{color:var(--ink-2);font-variant-numeric:tabular-nums;align-self:center;font-size:12.5px}.page>.graph-overlay{animation:none}.graph-overlay .graph-backdrop{z-index:45;cursor:pointer;animation:fade-in var(--dur-2) ease;background:#1d1c2247;border:0;padding:0;position:fixed;inset:0}.graph-overlay .detail-panel{z-index:46;border-radius:0;width:min(420px,100vw);max-height:100vh;position:fixed;inset:0 0 0 auto;box-shadow:-24px 0 64px -16px #1d1c224d}@media (prefers-reduced-motion:no-preference){.graph-stage,.graph-side{animation:rise var(--dur-3) var(--ease-out) backwards}.graph-side{animation-delay:60ms}}@media (width<=960px){.graph{grid-template-rows:minmax(360px,60vh) auto;grid-template-columns:1fr;height:auto;min-height:0}.graph-side{max-height:none;overflow:visible}.graph-hint{display:none}.graph-stage-foot{justify-content:flex-end}}.patterns-lede{max-width:72ch!important}.patterns-lede strong{color:var(--ink);font-weight:600}.errors-body{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:18px;display:grid}.errors-col{align-content:start;gap:14px;min-width:0;display:grid}.pattern-list{gap:8px;display:grid}.pattern{border-radius:var(--r-card);background:var(--raised);box-shadow:var(--ring)}.pattern-head{border-radius:var(--r-card);text-align:left;width:100%;transition:background-color var(--dur-1) ease;grid-template-columns:12px minmax(0,1fr) auto auto 16px;align-items:center;gap:14px;padding:12px 16px 12px 18px;display:grid}.pattern:not([data-open=true]) .pattern-head:hover{background:#fffdf8}.pattern-tan{background:var(--c,var(--set));width:10px;height:10px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1.5px;justify-self:center;transform:rotate(45deg)}.pattern-head:hover .pattern-tan,.pattern[data-open=true] .pattern-tan{transform:rotate(225deg)}.pattern-col{gap:1px;min-width:0;display:grid}.pattern-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);overflow-wrap:anywhere;font-size:15px;font-weight:620;line-height:1.3}.pattern-sub{color:var(--ink-3);font-size:12px}.pattern-trend{border-radius:var(--r-pill);background:var(--ground);color:var(--ink-2);white-space:nowrap;padding:2px 9px;font-size:12px;font-weight:550;line-height:1.4}.pattern-trend[data-trend=worsening]{background:var(--again-bg);color:var(--again)}.pattern-trend[data-trend=improving]{background:var(--good-bg);color:var(--good)}.pattern-trend[data-trend=new]{background:var(--easy-bg);color:var(--easy)}.pattern-chev{color:var(--ink-3);transition:transform var(--dur-3) var(--ease-spring)}.pattern[data-open=true] .pattern-chev{color:var(--ink);transform:rotate(180deg)}.rhythm{align-items:center;gap:4px;height:12px;display:inline-flex}.rhythm-mark{background:var(--c,var(--set));width:7px;height:7px;transform:rotate(45deg) scale(var(--s,1));border-radius:1.5px}.rhythm-mark[data-empty=true]{background:var(--ground-3)}.pattern-body{gap:12px;padding:0 18px 16px 44px;display:grid}.pattern-why{color:var(--ink-2);max-width:68ch;font-size:13.5px;line-height:1.5}.said-list{gap:6px;display:grid}.said{border-radius:var(--r-card-sm);background:var(--ground);gap:2px;padding:9px 12px;display:grid}.said-pair{flex-wrap:wrap;align-items:baseline;gap:2px 12px;display:flex}.said-was{color:var(--ink-3);text-decoration-thickness:1px;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3);font-size:13px}.said-now{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:15.5px;font-weight:620;line-height:1.3}.said-meta{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:2px 12px;font-size:12.5px;line-height:1.45;display:flex}.said-when{color:var(--ink-3);white-space:nowrap}.pattern-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rule-text{color:var(--ink);border-radius:var(--r-card-sm);background:var(--easy-bg);max-width:68ch;padding:10px 12px;font-size:13.5px;line-height:1.5}.practised-note{color:var(--good);align-items:center;gap:6px;font-size:12px;display:inline-flex}.patterns-empty{justify-items:start;gap:8px;padding:20px 22px;display:grid}.patterns-empty h2{font-size:var(--t-heading)}.patterns-empty p{color:var(--ink-2);max-width:60ch;font-size:13.5px;line-height:1.5}.patterns-empty .btn{margin-top:4px}.patterns-empty-tans{gap:6px;margin-bottom:2px;display:flex}.patterns-empty-tans i{background:var(--tan-3);border-radius:1.5px;width:10px;height:10px;transform:rotate(45deg)}.patterns-empty-tans i:nth-child(2){background:var(--tan-2);transform:rotate(20deg)}.patterns-empty-tans i:nth-child(3){background:var(--tan-5);transform:rotate(-10deg)}.errors-side{top:var(--page-y);position:sticky}.interference{background:var(--night);color:var(--night-ink);box-shadow:none;gap:10px;display:grid}.interference h2{color:var(--night-ink)}.interference-sub{color:var(--night-ink-2);font-size:12.5px;line-height:1.45}.interference-list{gap:6px;display:grid}.interference-item{border-radius:var(--r-card-sm);background:var(--night-2);grid-template-columns:8px minmax(0,1fr);gap:2px 10px;padding:9px 12px;display:grid}.interference-tan{background:var(--night-3);border-radius:1.5px;grid-row:1/3;width:7px;height:7px;margin-top:6px;transform:rotate(45deg)}.interference-item[data-active=true] .interference-tan{background:var(--tan-2)}.interference-label{font-family:var(--font-display);color:var(--night-ink);font-size:14px;font-weight:600}.interference-item:not([data-active=true]) .interference-label{color:var(--night-ink-2)}.interference-note{color:var(--night-ink-2);grid-column:2;font-size:12.5px;line-height:1.45}.quiet .card-head{padding-bottom:6px}.quiet-empty{color:var(--ink-2);font-size:13px;line-height:1.5}.quiet-list{display:grid}.quiet-row{grid-template-columns:8px minmax(0,1fr);align-items:start;gap:12px;padding:7px 0;display:grid}.quiet-tan{background:var(--tan-6);border-radius:1.5px;width:7px;height:7px;margin-top:6px;transform:rotate(45deg)}.quiet-tan--said{background:var(--tan-4)}.quiet-col{gap:1px;min-width:0;display:grid}.quiet-label{color:var(--ink);overflow-wrap:anywhere;font-size:13.5px;font-weight:550}.quiet-sub{color:var(--ink-3);font-size:12px}@media (prefers-reduced-motion:no-preference){.errors-side>*,.patterns-empty,.pattern-list>.pattern{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(80ms + var(--i,0) * var(--stagger))}.errors-side>*{animation-delay:.16s}.errors-side>:nth-child(2){animation-delay:.2s}.errors-side>:nth-child(3){animation-delay:.24s}.rhythm-mark{animation:rhythm-in .46s var(--ease-spring) backwards;animation-delay:calc(.22s + var(--i,0) * 30ms)}@keyframes rhythm-in{0%{opacity:0;transform:rotate(-90deg)scale(.2)}}.pattern-body>*{animation:rise .32s var(--ease-out) backwards}.pattern-body>:nth-child(2){animation-delay:40ms}.pattern-body>:nth-child(n+3){animation-delay:80ms}.said{animation:rise .32s var(--ease-out) backwards;animation-delay:calc(60ms + var(--i,0) * var(--stagger))}}.drill{border-radius:var(--r-card-sm);background:var(--ground);flex-basis:100%;gap:10px;padding:14px 16px;display:grid}.drill-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.drill-phrase{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);text-wrap:balance;font-size:20px;font-weight:640;line-height:1.25}.drill-streak{flex:none;gap:6px;padding-top:8px;display:inline-flex}.drill-pip{background:var(--ground-3);width:10px;height:10px;transition:background-color var(--dur-2) ease, transform var(--dur-3) var(--ease-spring);border-radius:2px;transform:rotate(45deg)scale(.8)}.drill-pip[data-set=true]{background:var(--c,var(--set));transform:rotate(45deg)}.drill-why{color:var(--ink-2);max-width:64ch;font-size:13px;line-height:1.5}.drill-verdict{background:var(--raised);border-radius:10px;gap:6px;padding:10px 12px;display:grid}.drill-verdict[data-passed=true]{background:var(--good-bg)}.drill-verdict[data-passed=false]{background:var(--again-bg)}.drill-verdict .passage{gap:6px;max-width:none;margin:0}.drill-verdict .passage-para{font-size:17px;line-height:1.5}.drill-verdict .passage-word[data-outcome=misread]{background:#ffffffb3}.drill-heard{color:var(--again);font-size:13px;line-height:1.45}.drill-verdict[data-passed=true] .drill-heard{color:var(--good);font-weight:600}.drill-actions{flex-wrap:wrap;gap:6px;display:flex}.drill-note{color:var(--ink-2);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.drill-error{color:var(--again);font-size:12.5px}.drill-notice{background:var(--easy-bg);color:var(--easy);border-radius:8px;padding:7px 10px;font-size:12.5px;line-height:1.45}.drill-loading{color:var(--ink-3);font-size:12.5px}.drill-rec{background:var(--set);border-radius:1.5px;flex:none;width:8px;height:8px;display:inline-block;transform:rotate(45deg)}@media (prefers-reduced-motion:no-preference){.drill,.drill-verdict{animation:rise .32s var(--ease-out) backwards}.drill-pip[data-set=true]{animation:piece-dock .52s var(--ease-spring) backwards;--fy:120%}.drill-rec{animation:1.2s ease-in-out infinite slot-blink}}@media (width<=1080px){.errors-body{grid-template-columns:minmax(0,1fr)}.errors-side{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;position:static}}@media (width<=720px){.pattern-head{grid-template-columns:12px minmax(0,1fr) 16px;gap:8px 12px;padding:12px 14px}.pattern-head .pattern-trend{grid-area:2/2;justify-self:start}.pattern-head .rhythm{grid-area:2/2;justify-self:end}.pattern-head .pattern-chev{grid-area:1/3}.pattern-body{padding:0 14px 14px}.drill{padding:12px 14px}.drill-phrase{font-size:18px}.errors-side{grid-template-columns:minmax(0,1fr)}}.timeline{gap:12px;max-width:920px;display:grid}.timeline-day{padding-bottom:10px}.timeline-day .card-head{padding-bottom:4px}.timeline-count{color:var(--ink-3);font-size:12px}.timeline-entries{display:grid}.entry-session{position:relative}.entry-session-link{transition:background-color var(--dur-1) ease;border-radius:10px;grid-template-columns:28px minmax(0,1fr) auto 14px;align-items:center;gap:12px;margin:0 -10px;padding:9px 46px 9px 10px;text-decoration:none;display:grid}.entry-session-link:hover{background:var(--ground);text-decoration:none}.entry-session-ico,.recap-ico{background:var(--good-bg);width:28px;height:28px;color:var(--good);transition:transform var(--dur-3) var(--ease-spring);border-radius:8px;place-items:center;display:grid}.entry-session[data-mode=reading] .entry-session-ico,.recap-ico[data-mode=reading]{background:var(--easy-bg);color:var(--easy)}.entry-session[data-mode=drill] .entry-session-ico,.recap-ico[data-mode=drill]{background:var(--hard-bg);color:var(--hard)}.entry-session-link:hover .entry-session-ico{transform:rotate(-8deg)scale(1.06)}.entry-session-col{min-width:0;display:grid}.entry-session-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:550;overflow:hidden}.entry-session-meta{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.entry-session-left{white-space:nowrap;align-items:center;gap:10px;font-size:12px;display:flex}.kept{border-radius:var(--r-pill);background:var(--set-soft);color:var(--set-ink);align-items:center;gap:6px;padding:2px 9px 2px 8px;font-weight:600;display:inline-flex}.kept-tan{background:var(--set);border-radius:1.5px;width:7px;height:7px;transform:rotate(45deg)}.fixed{color:var(--ink-3)}.entry-session-go{color:var(--ink-3);transition:transform var(--dur-2) var(--ease-out), color var(--dur-1) ease}.entry-session-link:hover .entry-session-go{color:var(--ink);transform:translate(3px)}.entry-session-delete{opacity:0;width:30px;height:30px;transition:opacity var(--dur-1) ease, background-color var(--dur-1) ease, color var(--dur-1) ease;margin-top:-15px;position:absolute;top:50%;right:-4px}.entry-session:hover .entry-session-delete,.entry-session-delete:focus-visible{opacity:1}.entry-session-delete:hover{color:var(--again);background:var(--again-bg)}@media (hover:none){.entry-session-delete{opacity:1}}.timeline .list-more{justify-content:center;padding-top:4px;display:flex}.sessions-empty{justify-items:start;gap:8px;max-width:640px;padding:20px 22px;display:grid}.sessions-empty p{color:var(--ink-2);max-width:56ch;font-size:13.5px;line-height:1.5}.sessions-empty .btn{margin-top:6px}.recap-head{align-items:center;gap:12px;display:flex}.recap-ico{border-radius:11px;flex:none;width:40px;height:40px}.recap-head-col{gap:2px;min-width:0;display:grid}.recap-kind{color:var(--ink-3);font-size:13px}.recap-top{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:stretch;gap:10px 18px;display:grid}.recap-summary{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);align-items:center;font-size:16px;font-weight:560;line-height:1.45;display:flex}.recap-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.recap-stats:only-child{grid-column:1/-1;max-width:620px}.recap-section{align-content:start;gap:10px;min-width:0;display:grid}.recap-section>.card-head{padding-bottom:2px}.recap-count{color:var(--ink-3);font-size:12px}.recap-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.kept-words{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;display:grid}.kept-word{background:var(--ground);height:100%;color:var(--ink);transition:transform var(--dur-2) var(--ease-out), background-color var(--dur-2) ease;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:9px;padding:10px 12px;text-decoration:none;display:grid}.kept-word:hover{background:var(--ground-2);text-decoration:none;transform:translateY(-2px)}.kept-word .kind{transition:transform var(--dur-3) var(--ease-spring);grid-row:1/4;align-self:start;margin-top:7px}.kept-word:hover .kind{transform:rotate(225deg)scale(1.2)}.kept-word-lemma{font-family:var(--font-display);overflow-wrap:anywhere;font-size:15px;font-weight:600;line-height:1.35}.kept-word-gloss{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.kept-word-note{color:var(--ink-3);font-size:11.5px}.kept-word-note:empty{display:none}.kept-word-note[data-gap=true]{color:var(--again)}.recap-corrections:not([data-clean=true]){background:var(--again-bg);box-shadow:none}.recap-corrections:not([data-clean=true]) .card-head h2{color:var(--again)}.correction-groups{gap:14px;display:grid}.correction-group{gap:6px;display:grid}.correction-group h3{font-size:13.5px;font-weight:620}.correction-times{font-family:var(--font-body);color:var(--ink-3);letter-spacing:0;font-size:12px;font-weight:450}.recap-corrections .said{background:var(--raised)}.graded-list{display:grid}.graded{transition:background-color var(--dur-1) ease;border-radius:10px;grid-template-columns:8px minmax(0,auto) minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 -10px;padding:8px 10px;text-decoration:none;display:grid}.graded:hover{background:var(--ground);text-decoration:none}.graded-lemma{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:600}.graded-gloss{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.graded-grade{border-radius:var(--r-pill);background:var(--good-bg);color:var(--good);padding:2px 9px;font-size:12px;font-weight:600}.graded-grade[data-grade="1"]{background:var(--again-bg);color:var(--again)}.graded-grade[data-grade="2"]{background:var(--hard-bg);color:var(--hard)}.graded-grade[data-grade="4"]{background:var(--easy-bg);color:var(--easy)}.recap-reading{gap:12px}.recap-reading .read-stat{background:var(--ground);box-shadow:none}.recap-reading .said-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.recap-passage{border-radius:var(--r-card-sm);background:var(--ground);padding:14px 18px}.recap-passage .passage{gap:10px;max-width:40em;margin:0}.recap-passage .passage-para{font-size:18px;line-height:1.6}.practised-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.practised-list li{border-radius:10px;grid-template-columns:minmax(0,150px) minmax(0,1fr) auto 20px;align-items:baseline;gap:12px;margin:0 -10px;padding:8px 10px;display:grid}.practised-lemma{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;font-size:15px;font-weight:600;text-decoration:none}.practised-lemma:hover{text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}.practised-phrase{font-size:14px;line-height:1.45}.practised-kind{border-radius:var(--r-pill);background:var(--ground);color:var(--ink-2);white-space:nowrap;padding:1px 8px;font-size:11.5px;font-weight:600}.practised-kind[data-kind=own]{background:var(--easy-bg);color:var(--easy)}.practised-ok{background:var(--hard-bg);width:20px;height:20px;color:var(--hard);border-radius:50%;align-self:center;place-items:center;display:grid}.practised-list li[data-ok=true] .practised-ok{background:var(--good-bg);color:var(--good)}.recap-feedback .feedback{max-width:560px}.feedback{gap:12px;display:grid}.rating{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.rating-q{padding:0;font-size:13px;font-weight:550}.rating-scale{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;display:grid}.rating-step{background:var(--ground);height:34px;color:var(--ink-2);font-family:var(--font-display);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--dur-1) ease, color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);border-radius:8px;place-items:center;font-size:14px;font-weight:650;display:grid}.rating-step:hover{background:var(--ground-2);color:var(--ink)}.rating-step:active{transform:scale(.95)}.rating-step[data-on=true]{background:var(--ink);color:#fff}.rating-step:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.rating-ends{color:var(--ink-3);justify-content:space-between;gap:8px;font-size:11.5px;display:flex}.feedback .field textarea{min-height:56px}.feedback-error{color:var(--again);font-size:12.5px}.feedback-foot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.feedback--saved .feedback-foot{justify-content:space-between}.feedback-done{color:var(--ink-3);font-size:12.5px}.feedback-answers{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;display:grid}.feedback-answer{background:var(--ground);border-radius:10px;gap:2px;min-width:0;padding:8px 10px;display:grid}.feedback-answer dt{color:var(--ink-3);grid-row:2;font-size:11.5px}.feedback-answer dd{font-family:var(--font-display);grid-row:1;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:650;display:flex}.pips{gap:4px;display:inline-flex}.pips span{background:var(--ground-3);border-radius:1.5px;width:7px;height:7px;transform:rotate(45deg)}.pips span[data-on=true]{background:var(--set)}.feedback-note{background:var(--ground);white-space:pre-line;overflow-wrap:anywhere;border-radius:10px;padding:8px 12px;font-size:13.5px;line-height:1.5}@media (prefers-reduced-motion:no-preference){.practised-list li{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(60ms + var(--i,0) * 30ms)}.timeline-day,.sessions-empty{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(60ms + var(--i,0) * var(--stagger))}.recap-top,.recap-page>.recap-section,.recap-grid>*{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:60ms}.recap-page>.recap-section,.recap-grid>:first-child{animation-delay:.12s}.recap-grid>:nth-child(2){animation-delay:.17s}.kept-words>li,.graded-list>li{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(.18s + var(--i,0) * var(--stagger))}}@media (width<=1180px){.recap-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=960px){.recap-top{grid-template-columns:minmax(0,1fr)}.recap-stats:only-child{max-width:none}}@media (width<=720px){.entry-session-link{grid-template-columns:28px minmax(0,1fr);gap:4px 12px;padding-right:40px}.entry-session-ico{grid-row:1/3;align-self:start}.entry-session-left{grid-column:2}.entry-session-left:empty,.entry-session-go{display:none}.entry-session-delete{margin-top:0;top:8px}.recap-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.recap-stats:has(>:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}.kept-words{grid-template-columns:repeat(2,minmax(0,1fr))}.graded{grid-template-columns:8px minmax(0,1fr) auto}.graded-gloss{display:none}.practised-list li{grid-template-columns:minmax(0,1fr) auto 20px;row-gap:2px}.practised-phrase{grid-area:2/1/auto/-1}.feedback-answers{grid-template-columns:minmax(0,1fr)}.recap-passage{padding:12px 14px}.recap-passage .passage-para{font-size:17px}}.library-hero{border-radius:var(--r-card-lg);background:var(--night);color:var(--night-ink);grid-template-columns:minmax(0,1fr) 1px minmax(280px,420px);align-items:center;gap:26px;padding:20px 24px;display:grid}.library-next{justify-items:start;gap:2px;min-width:0;display:grid}.library-eyebrow{font-family:var(--font-body);letter-spacing:0;color:var(--night-ink-2);font-size:12px;font-weight:400}.library-next-title{max-width:100%;font-size:var(--t-title);color:#fff;overflow-wrap:anywhere;margin:2px 0 0;line-height:1.15}.library-next-meta{color:var(--night-ink-2);font-size:13px}.library-go{background:var(--night-ink);box-shadow:none;color:var(--ink);margin-top:14px}.library-go:hover{background:#fff}.library-hero-rule{background:var(--night-3);align-self:stretch}.library-how-wrap{gap:10px;min-width:0;display:grid}.library-how{gap:8px;display:grid}.library-how li{color:var(--night-ink);grid-template-columns:12px minmax(0,1fr);gap:10px;font-size:13px;line-height:1.45;display:grid}.library-how-tan{background:var(--tan-1);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:10px;height:10px;margin-top:4px}.library-how-tan--tri{background:var(--tan-2);clip-path:polygon(0 0,100% 100%,0 100%)}.library-how-tan--para{background:var(--tan-3);clip-path:polygon(0 100%,34% 0,100% 0,66% 100%);width:12px}.passage-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.passage-card{border-radius:var(--r-card);background:var(--raised);box-shadow:var(--ring);transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) ease;align-content:start;gap:10px;padding:14px 16px 12px;display:grid;position:relative}.passage-card:hover{box-shadow:var(--ring), var(--lift);transform:translateY(-2px)}.passage-card-top{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:9px;display:grid}.passage-card-tan{background:var(--wait);width:9px;height:9px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1.5px;margin-top:6px;transform:rotate(45deg)}.passage-card-tan[data-read=true]{background:var(--c,var(--set))}.passage-card:hover .passage-card-tan{transform:rotate(225deg)}.passage-card-main{min-width:0;color:var(--ink);text-decoration:none}.passage-card-main:after{content:"";border-radius:inherit;position:absolute;inset:0}.passage-card-main:hover{text-decoration:none}.passage-card-main:focus-visible{outline:none}.passage-card-main:focus-visible:after{outline:2px solid var(--ink);outline-offset:2px}.passage-card-title{font-family:var(--font-display);font-size:var(--t-heading);letter-spacing:-.01em;font-weight:650;line-height:1.3;display:block}.passage-card-delete{z-index:1;width:26px;height:26px;color:var(--ink-3);opacity:0;transition:opacity var(--dur-1) ease, background-color var(--dur-1) ease, color var(--dur-1) ease;margin:-3px -6px 0 0;position:relative}.passage-card:hover .passage-card-delete,.passage-card-delete:focus-visible{opacity:1}.passage-card-delete:hover{background:var(--again-bg);color:var(--again)}@media (hover:none){.passage-card-delete{opacity:1}}.passage-card-meta{flex-wrap:wrap;align-items:center;gap:6px;padding-left:18px;display:flex}.passage-card-source{color:var(--ink-3);font-size:12px}.passage-card-read{box-shadow:0 -1px 0 var(--ground-2);align-items:center;gap:8px;margin-top:2px;padding-top:10px;display:flex}.passage-acc{border-radius:var(--r-chip);white-space:nowrap;padding:2px 9px;font-size:12px;font-weight:600;line-height:1.4}.passage-acc[data-tone=good]{background:var(--good-bg);color:var(--good)}.passage-acc[data-tone=hard]{background:var(--hard-bg);color:var(--hard)}.passage-acc[data-tone=again]{background:var(--again-bg);color:var(--again)}.passage-card-when{min-width:0;color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.passage-card-go{color:var(--ink-3);transition:transform var(--dur-2) var(--ease-out), color var(--dur-1) ease;flex:none;margin-left:auto}.passage-card:hover .passage-card-go{color:var(--ink);transform:translate(3px)}.list-more{justify-content:center;display:flex}.library-empty{grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:center;gap:28px;padding:22px 26px;display:grid}.library-empty-figure{width:100%}.library-empty-copy{justify-items:start;gap:8px;display:grid}.library-empty-copy p{max-width:52ch;color:var(--ink-2);font-size:13.5px;line-height:1.5}.library-empty-copy .btn{margin-top:6px}.seed-list{gap:6px;max-height:46vh;display:grid;overflow:auto}.seed-row{border-radius:var(--r-card-sm);background:var(--ground);transition:background-color var(--dur-1) ease;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.seed-row:hover{background:var(--ground-2)}.seed-row .btn{background:var(--raised)}.seed-col{gap:2px;min-width:0;display:grid}.seed-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:15px;font-weight:650}.seed-preview{color:var(--ink-3);font-size:12.5px;line-height:1.45}.form-hint[data-over=true]{color:var(--again);font-weight:600}.reader-page{max-width:1120px}.reader-head{justify-items:start;gap:6px;display:grid}.reader-back{border-radius:var(--r-nav);color:var(--ink-2);transition:background-color var(--dur-1) ease, color var(--dur-1) ease;align-items:center;gap:3px;margin:0 0 2px -8px;padding:3px 10px 3px 6px;font-size:12.5px;font-weight:550;text-decoration:none;display:inline-flex}.reader-back:hover{background:var(--ground-2);color:var(--ink);text-decoration:none}.reader-back svg{transition:transform var(--dur-2) var(--ease-out)}.reader-back:hover svg{transform:translate(-3px)}.reader-meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.reader-meta .chip{background:var(--ground-2)}.reader-notes{max-width:64ch;color:var(--ink-2);font-size:13px;line-height:1.5}.reading{grid-template-columns:minmax(0,680px) minmax(260px,320px);align-items:start;gap:18px;min-width:0;display:grid}.reading-side{grid-area:1/2;gap:10px;min-width:0;display:grid}.reading:not([data-state=report]) .reading-side{position:sticky;top:18px}.reading-sheet{grid-area:1/1}.reader-bar{border-radius:var(--r-card);background:var(--raised);box-shadow:var(--ring);gap:12px;padding:14px 16px;display:grid}.reader-bar-status{align-items:center;gap:12px;min-width:0;display:flex}.reader-bar-col{min-width:0;display:grid}.reader-bar-state{font-family:var(--font-display);font-size:var(--t-heading);letter-spacing:-.01em;font-weight:650;line-height:1.3}.reader-bar-count{color:var(--ink-3);font-size:12px}.reader-bar-count[data-stopped=true]{color:var(--again)}.reader-bar-progress{border-radius:var(--r-pill);background:var(--ground-2);order:1;height:6px;position:relative;overflow:hidden}.reader-bar-progress span{border-radius:inherit;background:var(--ink-2);transform-origin:0;transition:transform .7s var(--ease-out);position:absolute;inset:0}.reader-bar-progress[data-stopped=true] span{background:var(--ground-3)}.reader-bar-actions{flex-wrap:wrap;order:2;gap:6px;display:flex}.reader-bar-actions .btn{flex:1}.reader-bar-actions .btn--quiet{background:var(--ground);color:var(--ink)}.reader-bar-actions .btn--quiet:hover{background:var(--ground-2)}.reader-bar-actions .btn--quiet[aria-pressed=true]{background:var(--hard-bg);color:var(--hard)}.reader-tan{background:var(--ink);width:18px;height:18px;transition:background-color var(--dur-2) ease;border-radius:2px;flex:none;margin:0 3px;transform:rotate(45deg)}.reader-tan--offline{background:var(--wait)}.reader-tan--listening{background:var(--set)}.reader-notice{border-radius:var(--r-card-sm);background:var(--ground-2);color:var(--ink);padding:10px 14px;font-size:13px;line-height:1.45}.reader-notice--error{background:var(--again-bg);color:var(--again);font-weight:550}.reading-sheet{border-radius:var(--r-card-lg);background:var(--raised);box-shadow:var(--ring);padding:30px 40px 34px}.passage{gap:18px;display:grid}.passage-para{font-family:var(--font-display);letter-spacing:-.003em;color:var(--ink-2);text-wrap:pretty;font-size:19px;font-weight:420;line-height:1.7}.passage--read .passage-para{color:var(--ink)}.passage-run{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px}.passage-run[data-outcome=ok]{background:var(--good-bg);box-shadow:0 0 0 .12em var(--good-bg)}.passage-run[data-outcome=misread]{background:var(--again-bg);box-shadow:0 0 0 .12em var(--again-bg);color:var(--again);text-underline-offset:.22em;text-decoration:underline;text-decoration-thickness:1.5px}.passage-run[data-outcome=skipped]{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1.5px;-webkit-text-decoration-color:var(--again);text-decoration-color:var(--again)}.passage-run[data-outcome=heard]{background:var(--marker);box-shadow:0 0 0 .12em var(--marker)}.passage-run[data-outcome=tip]{background:var(--marker-tip);box-shadow:0 0 0 .12em var(--marker-tip);text-decoration:underline;-webkit-text-decoration-color:var(--tan-2);text-decoration-color:var(--tan-2);text-underline-offset:.24em;text-decoration-thickness:2px}@media (prefers-reduced-motion:no-preference){.passage-run{transition:background-color .16s,box-shadow .16s}}.passage-word{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;transition:color .16s,background-color .16s}.passage-word[data-outcome=unscored],.passage-word[data-outcome=pending]{color:var(--ink-3)}.passage-word[data-outcome=ok]{color:var(--ink)}.passage-word[data-outcome=misread]{background:var(--again-bg);color:var(--again);text-underline-offset:.22em;padding:0 .12em;text-decoration:underline;text-decoration-thickness:1.5px}.passage-word[data-outcome=skipped]{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1.5px;-webkit-text-decoration-color:var(--again);text-decoration-color:var(--again)}.passage-word[data-outcome=current]{color:var(--ink);background:var(--ground-3)}.passage-word[data-accent=true],.passage-word[data-self=true]{color:var(--ink);-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--hard);text-decoration-color:var(--hard);text-underline-offset:.22em}.passage-word[data-self=true]{-webkit-text-decoration-color:var(--good);text-decoration-color:var(--good)}.reading-verdict{border-radius:var(--r-card);background:var(--raised);box-shadow:var(--ring);justify-items:start;gap:12px;padding:16px 18px;display:grid}.reading-verdict-head{gap:3px;display:grid}.reading-verdict-head p{color:var(--ink-2);font-size:13px;line-height:1.45}.read-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;width:100%;margin:0;display:grid}.read-stat{border-radius:var(--r-card-sm);background:var(--raised);box-shadow:var(--ring);flex-direction:column;gap:1px;min-width:0;padding:10px 12px;display:flex}.reading-verdict .read-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-verdict .read-stat{background:var(--ground);box-shadow:none}.reading-verdict .read-stat:last-child:nth-child(odd){grid-column:1/-1}.read-stat dt{color:var(--ink-3);font-size:12px;font-weight:500}.read-stat dd{display:contents}.read-stat-value{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);font-size:22px;font-weight:650;line-height:1.2}.read-stat-of{letter-spacing:0;color:var(--ink-3);font-size:13px;font-weight:550}.read-stat-sub{color:var(--ink-3);font-size:12px}.missed-words{width:100%;display:grid}.missed-words li{box-shadow:0 -1px 0 var(--ground-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:9px;padding:7px 0;display:grid}.missed-words li:before{content:"";background:var(--again);border-radius:1.5px;width:7px;height:7px;transform:translateY(-1px)rotate(45deg)}.missed-word{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;font-size:15px;font-weight:650}.missed-heard{color:var(--ink-3);text-align:right;font-size:12px}.reading-stopped{border-radius:var(--r-card-sm);background:var(--hard-bg);width:100%;color:var(--ink);padding:10px 14px;font-size:13px;line-height:1.5}.reading-stopped strong{color:var(--hard);font-weight:650}.reading-ended{width:100%;color:var(--ink-2);font-size:13px;line-height:1.5}.reading-caveat{color:var(--ink-3);font-size:12px;line-height:1.5}@keyframes reader-breathe{0%,to{transform:rotate(45deg)scale(.86)}50%{transform:rotate(45deg)scale(1.08)}}@keyframes reader-turn{to{transform:rotate(225deg)}}@media (prefers-reduced-motion:no-preference){.library-hero,.passage-grid>li,.library-empty,.reader-head,.reading-side,.reading-sheet{animation:rise var(--dur-3) var(--ease-out) backwards}.library-hero{animation-delay:60ms}.passage-grid>li{animation-delay:calc(.14s + var(--i,0) * var(--stagger))}.reading-sheet{animation-delay:60ms}.reading-side{animation-delay:.12s}.reader-tan{scale:calc(1 + var(--level,0));transition:background-color var(--dur-2) ease, scale 90ms linear}.reader-tan--listening{animation:2.4s ease-in-out infinite reader-breathe}.reader-tan--speaking{animation:.9s ease-in-out infinite reader-breathe}.reader-tan--thinking{animation:reader-turn 1.2s var(--ease-spring) infinite alternate}.reading[data-state=report] .passage{animation:fade-in var(--dur-3) ease backwards}.reading-verdict>*{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--stagger) * 2)}.reading-verdict>:first-child{animation-delay:0s}.missed-words li{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(.2s + var(--i,0) * var(--stagger))}.seed-row{animation:rise var(--dur-3) var(--ease-out) backwards}}@media (width<=1180px){.library-hero{grid-template-columns:minmax(0,1fr);gap:16px}.library-hero-rule{display:none}.library-how-wrap{box-shadow:0 -1px 0 var(--night-3);padding-top:14px}.reading{grid-template-columns:minmax(0,720px);gap:12px}.reading-side{display:contents}.reading-sheet{order:1;grid-area:auto/1}.reader-bar{z-index:5;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:12px 14px;position:sticky;top:12px}.reader-bar-progress{order:3;grid-column:1/-1;height:4px}.reader-bar-actions .btn{flex:none}.reading-verdict{order:2}.reading-verdict .read-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.reading-verdict .read-stat:last-child:nth-child(odd){grid-column:auto}}@media (width<=960px){.reader-bar{top:64px}}@media (width<=720px){.passage-grid{grid-template-columns:minmax(0,1fr);gap:8px}.library-hero{padding:16px}.library-next-title{font-size:22px}.library-go{width:100%;min-height:44px}.library-empty{grid-template-columns:minmax(0,1fr);gap:14px;padding:18px}.library-empty-figure{width:min(70%,220px)}.reader-bar{grid-template-columns:minmax(0,1fr);gap:10px}.reader-bar-actions .btn{flex:1}.reading-sheet{border-radius:var(--r-card);padding:20px 18px 24px}.passage{gap:14px}.passage-para{font-size:18px;line-height:1.65}.read-stats,.reading-verdict .read-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.read-stat:last-child:nth-child(odd),.reading-verdict .read-stat:last-child:nth-child(odd){grid-column:1/-1}}.talk{grid-template:"stage side""feed side"1fr/minmax(0,1fr) minmax(290px,340px);align-items:start;gap:18px;display:grid}.talk-stage{border-radius:var(--r-card-lg);background:var(--night);min-height:272px;color:var(--night-ink);grid-template:"head head""fig say"1fr"fig actions"/176px minmax(0,1fr);grid-area:stage;gap:14px 28px;padding:18px 24px 22px;display:grid}.talk-stage-head{color:var(--night-ink-2);flex-wrap:wrap;grid-area:head;justify-content:space-between;align-items:center;gap:6px 12px;font-size:12.5px;display:flex}.talk-stage-mode{color:var(--night-ink);font-weight:600}.talk-stage-mode .tnum{color:var(--night-ink-2);font-weight:500}.call-figure{grid-area:fig;align-self:center;width:100%}.call-figure svg{width:100%;height:auto;transition:opacity var(--dur-3) ease;display:block;overflow:visible}.call-figure polygon{stroke:var(--night);stroke-width:.08px;stroke-linejoin:round;transform-box:fill-box;transform-origin:50%;transition:transform .56s var(--ease-spring)}.call-slots polygon{fill:var(--night-3)}.call-voice polygon{fill:var(--night-ink)}.call-voice{opacity:0;transition:opacity var(--dur-3) ease}.call-set polygon{fill:var(--c,var(--set))}.call-figure[data-state=speaking] .call-voice{opacity:.9}.call-figure[data-state=speaking] polygon{transform:translate(calc(var(--hx) * (1 + var(--loud,0) * 2)), calc(var(--hy) * (1 + var(--loud,0) * 2)));transition-duration:.12s}.call-figure[data-state=thinking] .call-voice{opacity:.28}.call-figure[data-state=connecting] polygon{transform:translate(calc(var(--hx) * .8), calc(var(--hy) * .8)) rotate(-2deg)}.call-figure[data-state=connecting] svg{opacity:.7}.talk-say{grid-area:say;align-self:end;justify-items:start;gap:6px;min-width:0;display:grid}.talk-status{color:var(--night-ink-2);align-items:center;gap:7px;font-size:12.5px;font-weight:550;display:inline-flex}.talk-status-mark{background:var(--night-3);width:8px;height:8px;transition:background-color var(--dur-2) ease;border-radius:1.5px;transform:rotate(45deg)}.talk-stage[data-state=listening] .talk-status-mark{background:var(--night-set)}.talk-stage[data-state=speaking] .talk-status-mark,.talk-stage[data-state=ended] .talk-status-mark{background:var(--night-ink)}.talk-stage[data-state=thinking] .talk-status-mark,.talk-stage[data-state=holding] .talk-status-mark{background:var(--tan-2)}.talk-line-now{-webkit-line-clamp:4;max-width:34ch;font-family:var(--font-display);letter-spacing:-.015em;color:#fff;text-wrap:balance;-webkit-box-orient:vertical;font-size:24px;font-weight:620;line-height:1.22;display:-webkit-box;overflow:hidden}.talk-line-now--quiet{color:var(--night-ink-2)}.talk-say-note{max-width:46ch;color:var(--night-ink-2);font-size:13px;line-height:1.45}.talk-actions{grid-area:actions;justify-items:start;gap:10px;min-width:0;display:grid}.talk-start{background:var(--night-ink);color:var(--night);margin-top:4px}.talk-start:hover{background:#fff}.talk-start:disabled{opacity:1;background:var(--night-3);color:var(--night-ink-2)}.talk-start:disabled .btn-tan{opacity:.5}.call-keys{flex-wrap:wrap;gap:8px 12px;display:flex}.call-key{white-space:nowrap;min-width:48px;color:var(--night-ink-2);justify-items:center;gap:5px;font-size:12px;font-weight:550;line-height:1.2;display:grid}.call-key-disc{border-radius:var(--r-pill);background:var(--night-2);width:44px;height:44px;color:var(--night-ink);transition:background-color var(--dur-1) ease, color var(--dur-1) ease, transform var(--dur-1) var(--ease-out);place-items:center;display:grid}.call-key:hover .call-key-disc{background:var(--night-3)}.call-key:active:not(:disabled) .call-key-disc{transform:scale(.92)}.call-key:disabled{opacity:.5}.call-key[aria-pressed=true],.call-key--end,.call-key--send{color:var(--night-ink)}.call-key[aria-pressed=true] .call-key-disc,.call-key[aria-pressed=true]:hover .call-key-disc{background:var(--tan-2);color:var(--night)}.call-key--send .call-key-disc,.call-key--send:hover .call-key-disc{background:var(--set);color:#fff}.call-key--end .call-key-disc{background:var(--night-ink);color:var(--night)}.call-key--end:hover .call-key-disc{background:#fff}.talk-caption{max-width:52ch;color:var(--night-ink-2);font-size:12.5px;line-height:1.45}.talk-error,.talk-notice{max-width:52ch;margin:0;font-size:13px;line-height:1.45}.talk-error{color:#fff;font-weight:600}.talk-notice{color:var(--night-ink-2)}.talk-side{grid-area:side;align-content:start;gap:18px;min-width:0;display:grid}.mode-list{gap:2px;display:grid}.mode-btn{text-align:left;color:var(--ink);transition:background-color var(--dur-1) ease;border-radius:10px;grid-template-columns:30px minmax(0,1fr) 9px;align-items:center;gap:11px;margin:0 -10px;padding:8px 10px;display:grid}.mode-btn:hover:not(:disabled),.mode-btn[aria-checked=true]{background:var(--ground)}.mode-btn:disabled{opacity:.45}.mode-ico{background:color-mix(in srgb, var(--c) 14%, var(--raised));border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.mode-tan{background:var(--c);width:14px;height:14px;transition:transform var(--dur-3) var(--ease-spring)}.mode-btn:hover:not(:disabled) .mode-tan{transform:rotate(-20deg)scale(1.1)}.mode-tan--tri{clip-path:polygon(50% 0,100% 100%,0 100%)}.mode-tan--square{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.mode-tan--para{clip-path:polygon(0 100%,34% 0,100% 0,66% 100%)}.mode-tan--small{clip-path:polygon(0 0,100% 100%,0 100%)}.mode-tan--medium{clip-path:polygon(0 50%,100% 0,100% 100%)}.mode-tan--large{clip-path:polygon(0 15%,100% 15%,50% 85%)}.mode-btn-col{gap:1px;min-width:0;display:grid}.mode-btn-label{font-size:13.5px;font-weight:600;line-height:1.3}.mode-btn-desc{color:var(--ink-3);font-size:12px;line-height:1.35}.mode-pick{background:var(--set);width:8px;height:8px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1.5px;transform:rotate(45deg)scale(0)}.mode-btn[aria-checked=true] .mode-pick{transform:rotate(45deg)}.talk-topic{margin-top:12px}.talk-picked{background:var(--ground);color:var(--ink-2);border-radius:10px;margin-top:12px;padding:8px 10px;font-size:12.5px;line-height:1.45}.talk-picked .link-accent{font-size:12.5px}.talk-count{border-radius:var(--r-pill);background:var(--ground);min-width:24px;font-family:var(--font-display);text-align:center;color:var(--ink-2);padding:1px 8px;font-size:13px;font-weight:650}.talk-saved-empty{color:var(--ink-3);font-size:13px;line-height:1.45}.talk-saved-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.talk-saved-list li{background:var(--ground);font-family:var(--font-display);border-radius:10px;align-items:center;gap:7px;padding:5px 10px;font-size:14.5px;font-weight:600;line-height:1.3;display:inline-flex}.talk-saved-tan{background:var(--c);border-radius:1.5px;flex:none;width:8px;height:8px;transform:rotate(45deg)}.practice-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.practice-list li{background:var(--ground);border-radius:10px;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 10px;display:grid}.practice-word{min-width:0;display:grid}.practice-lemma{font-family:var(--font-display);overflow-wrap:anywhere;font-size:14.5px;font-weight:600;line-height:1.3}.practice-gloss{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.practice-ticks{gap:4px;display:flex}.practice-tick{border-radius:var(--r-pill);background:var(--raised);color:var(--ink-3);white-space:nowrap;transition:background-color var(--dur-2) ease, color var(--dur-2) ease;align-items:center;gap:3px;padding:1px 8px;font-size:11.5px;font-weight:600;line-height:1.5;display:inline-flex}.practice-tick[data-state=ok]{background:var(--good-bg);color:var(--good)}.practice-tick[data-state=retry]{background:var(--hard-bg);color:var(--hard)}.talk-fix{background:var(--again-bg);box-shadow:none}.talk-fix .card-head{padding-bottom:6px}.talk-fix h2{color:var(--again)}.talk-fix-body{gap:2px;display:grid}.talk-fix-body s{color:var(--ink-3);font-size:13px}.talk-fix-body strong{font-family:var(--font-display);color:var(--again);font-size:20px;font-weight:650;line-height:1.25}.talk-report-minis{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.talk-report-minis span{background:var(--ground);color:var(--ink-3);border-radius:10px;padding:7px 10px;font-size:12px;display:grid}.talk-report-minis b{font-family:var(--font-display);color:var(--ink);font-size:18px;font-weight:650;line-height:1.25}.talk-report-minis--practice{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:6px}.talk-report-summary{white-space:pre-line;margin:12px 0 0;font-size:13.5px;line-height:1.5}.talk-report-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.talk-report-list li{flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-size:13.5px;display:flex}.talk-said{color:var(--ink-3);text-decoration:line-through}.talk-correction{font-weight:600}.talk-report-note{color:var(--ink-2);flex-basis:100%;font-size:12.5px}.talk-report-words{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.talk-rate{box-shadow:0 -1px 0 var(--ground-2);gap:10px;margin-top:14px;padding-top:12px;display:grid}.talk-rate-h{font-size:14px;font-weight:650}.talk-transcript{flex-direction:column;grid-area:feed;min-width:0;display:flex}.talk-head-note{color:var(--ink-3);font-size:12px}.talk-feed{overflow-anchor:none;scroll-behavior:smooth;flex-direction:column;gap:8px;max-height:340px;padding:2px 2px 4px;display:flex;overflow-y:auto}.talk[data-in-call=true] .talk-feed{height:min(440px,max(240px,100vh - 520px));max-height:none}.talk-feed-empty{max-width:62ch;color:var(--ink-2);font-size:13px;line-height:1.5}.talk-feed-empty strong{color:var(--ink);font-weight:600}.talk-line{border-radius:14px;max-width:82%;margin:0;padding:8px 12px;font-size:13.5px;line-height:1.45}.talk-line--assistant{background:var(--ground);color:var(--ink);border-bottom-left-radius:4px;align-self:flex-start}.talk-line--user{background:var(--night);color:var(--night-ink);border-bottom-right-radius:4px;align-self:flex-end}.talk-line--interim{opacity:.55;min-height:1.45em}.talk-line--held{background:var(--hard-bg);color:var(--ink)}.talk-line--hidden{visibility:hidden}.talk:not([data-in-call]) .talk-line--hidden{display:none}.talk-metrics-toggle{color:var(--ink-3);transition:color var(--dur-1) ease;align-self:flex-start;margin-top:8px;padding:2px 0;font-size:12px;font-weight:500}.talk-metrics-toggle:hover{color:var(--ink)}.talk-metrics-grid{font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr;gap:3px 14px;margin:6px 0 0;font-size:12.5px;display:grid}.talk-metrics-grid dt{color:var(--ink-3)}.talk-metrics-grid dd{margin:0}.recap-summary{white-space:pre-line}@media (prefers-reduced-motion:no-preference){.talk-side>*{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:80ms}.talk-side>:nth-child(2){animation-delay:.14s}.talk-side>:nth-child(3){animation-delay:.2s}.talk-transcript{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:.12s}.call-figure[data-state=speaking] .call-voice polygon,.call-figure[data-state=speaking] .call-set polygon{animation:1.4s ease-in-out infinite alternate call-breathe}.call-figure[data-state=thinking] svg{animation:2.4s ease-in-out infinite breathe}.call-figure[data-state=connecting] polygon{animation:3.2s ease-in-out infinite alternate call-drift}.call-set polygon{animation:piece-dock .56s var(--ease-spring) backwards}.talk-stage[data-state=thinking] .talk-status-mark,.talk-stage[data-state=connecting] .talk-status-mark{animation:1.2s ease-in-out infinite slot-blink}.talk-line-now,.talk-fix-body{animation:rise var(--dur-3) var(--ease-out) backwards}.talk-feed .talk-line:not(.talk-line--interim){animation:rise var(--dur-2) var(--ease-out) backwards}.talk-line--held{animation:2s ease-in-out infinite held-pulse}.call-key--send{animation:rise var(--dur-2) var(--ease-spring) backwards}.talk-saved-list li{animation:rise var(--dur-2) var(--ease-out) backwards}.talk-saved-list .talk-saved-tan{animation:tan-turn .62s var(--ease-spring) backwards}.practice-list li{animation:rise var(--dur-2) var(--ease-out) backwards}.practice-tick[data-state=ok] svg{animation:tan-turn .52s var(--ease-spring) backwards}@keyframes tan-turn{0%{transform:rotate(-135deg)scale(.3)}}@keyframes call-breathe{0%{transform:translate(calc(var(--hx) * (.8 + var(--loud,0) * 2)), calc(var(--hy) * (.8 + var(--loud,0) * 2)))}to{transform:translate(calc(var(--hx) * (2 + var(--loud,0) * 2)), calc(var(--hy) * (2 + var(--loud,0) * 2)))}}@keyframes call-drift{0%{transform:translate(calc(var(--hx) * .5), calc(var(--hy) * .5)) rotate(-2deg)}to{transform:translate(calc(var(--hx) * 1.1), calc(var(--hy) * 1.1)) rotate(2deg)}}@keyframes held-pulse{0%,to{opacity:1}50%{opacity:.7}}}@media (width<=1100px){.talk{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"stage""side""feed"}.talk-side{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}}@media (width<=720px){.talk-stage{grid-template-columns:104px minmax(0,1fr);grid-template-areas:"head head""fig say""actions actions";gap:14px 16px;min-height:0;padding:16px}.talk-line-now{font-size:17px}.talk-actions{justify-items:stretch}.call-keys{justify-content:space-between;gap:8px}.talk-side{grid-template-columns:minmax(0,1fr)}.talk-line{max-width:90%}.talk-feed{max-height:50vh}.talk[data-in-call=true] .talk-feed{height:auto;min-height:200px;max-height:50vh}}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;max-width:1120px;display:grid}.settings-col{gap:18px;min-width:0;display:grid}.settings-card{align-content:start;display:grid}.settings-head{justify-content:flex-start;align-items:flex-start;gap:10px;padding-bottom:8px}.settings-tan{background:var(--c,var(--set));width:9px;height:9px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1.5px;flex:none;margin-top:6px;transform:rotate(45deg)}.settings-card:hover .settings-tan{transform:rotate(225deg)}.settings-head-col{gap:2px;min-width:0;display:grid}.settings-head-col p{color:var(--ink-3);max-width:56ch;font-size:12.5px;line-height:1.45}.settings-row{justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:13.5px;display:flex}.settings-who{align-items:center;gap:10px;min-width:0;display:flex}.settings-row-col{min-width:0;display:grid}.settings-row-col>span:first-child,.settings-row-name{overflow-wrap:anywhere;font-weight:550}.settings-row-sub{color:var(--ink-3);font-size:12px;font-weight:400}.settings-active{border-radius:var(--r-pill);background:var(--good-bg);color:var(--good);vertical-align:1px;margin-left:6px;padding:0 8px;font-size:11.5px;font-weight:600;line-height:18px;display:inline-block}.settings-ico{background:var(--hard-bg);width:28px;height:28px;color:var(--hard);border-radius:8px;flex:none;place-items:center;display:grid}.settings-row-controls{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.settings-remove:hover{color:var(--again);background:var(--again-bg)}.settings-foot{padding-top:10px}.settings-card .pair-picker{border-radius:var(--r-card-sm);background:var(--ground);padding:12px}.settings-card .pair-picker .input{background:var(--raised);box-shadow:inset 0 0 0 1px var(--rule)}.settings-card .pair-picker .input:focus-within{box-shadow:inset 0 0 0 1.5px var(--ink)}.settings-message{grid-column:1/-1;font-size:13px}@media (prefers-reduced-motion:no-preference){.settings-card{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:60ms}.settings-col:nth-child(2) .settings-card{animation-delay:.11s}.settings-col .settings-card+.settings-card{animation-delay:.16s}.settings-card .pair-picker{animation:rise var(--dur-2) var(--ease-out) backwards}}@media (width<=1080px){.settings-grid{grid-template-columns:minmax(0,1fr);max-width:720px}}@media (width<=720px){.settings-grid,.settings-col{gap:12px}.settings-pair{flex-wrap:wrap}.settings-row-controls{justify-content:flex-start}}.welcome-page{max-width:760px}.welcome-step{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;display:grid}.welcome-step+.welcome-step{margin-top:14px}.welcome-tan{background:var(--tan-1);border-radius:2px;width:12px;height:12px;margin-top:7px;transform:rotate(45deg)}.welcome-tan[data-step="2"]{background:var(--tan-3)}.welcome-step-body{gap:12px;min-width:0;display:grid}.welcome-step-body h2{font-size:17px}.welcome-step-body .segmented{justify-self:start}.welcome-hint{color:var(--ink-3);max-width:60ch;font-size:13px;line-height:1.5}@media (prefers-reduced-motion:no-preference){.welcome-step{animation:rise var(--dur-3) var(--ease-out) backwards}.welcome-step+.welcome-step{animation-delay:80ms}}@media (width<=720px){.welcome-step{grid-template-columns:minmax(0,1fr)}.welcome-tan{display:none}}.admin-page{gap:18px;max-width:1180px;display:grid}.admin-invite{gap:10px;display:grid}.admin-invite-form{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr) auto;align-items:end;gap:10px;display:grid}.admin-message{color:var(--good)}.admin-message--error{color:var(--again)}.admin-row{grid-template-columns:minmax(200px,1.6fr) minmax(110px,.8fr) minmax(140px,1.2fr) minmax(110px,.8fr) minmax(150px,1fr) auto;align-items:center;gap:14px;padding:10px 0;font-size:13.5px;display:grid}.admin-row+.admin-row{box-shadow:0 -1px 0 var(--rule)}.admin-row--head{color:var(--ink-3);padding-top:2px;font-size:12px;font-weight:550}.admin-row>*{min-width:0}.admin-who{align-items:center;gap:10px;display:flex}.admin-who-col,.admin-status-cell,.admin-when,.admin-usage{gap:1px;min-width:0;display:grid}.admin-name{overflow-wrap:anywhere;font-weight:550}.admin-sub{color:var(--ink-3);overflow-wrap:anywhere;font-size:12px}.admin-tag{color:var(--ink-3);margin-left:6px;font-size:11.5px;font-weight:500}.admin-status{border-radius:var(--r-pill);background:var(--ground);color:var(--ink-2);justify-self:start;padding:0 8px;font-size:12px;font-weight:600;line-height:20px}.admin-status[data-status=accepted]{background:var(--good-bg);color:var(--good)}.admin-status[data-status=pending]{background:var(--hard-bg);color:var(--hard)}.admin-status[data-status=revoked]{background:var(--again-bg);color:var(--again)}.admin-pairs{flex-wrap:wrap;gap:4px;display:flex}.admin-actions{justify-content:flex-end;gap:4px;display:flex}@media (prefers-reduced-motion:no-preference){.admin-invite,.admin-list{animation:rise var(--dur-3) var(--ease-out) backwards}.admin-list{animation-delay:80ms}}@media (width<=1080px){.admin-invite-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.admin-row--head{display:none}.admin-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px}.admin-who{grid-column:1/-1}}@media (width<=720px){.admin-invite-form{grid-template-columns:minmax(0,1fr)}}.auth-page{place-items:center;min-height:100dvh;padding:40px 16px;display:grid}.auth-pair{background:var(--raised);width:min(740px,100%);box-shadow:var(--ring);border-radius:20px;grid-template-columns:340px minmax(0,400px);display:grid;overflow:hidden}.auth-brand{background:var(--night);color:var(--night-ink);grid-template-rows:1fr auto;gap:24px;padding:28px;display:grid}.auth-brand-figure{place-items:center;min-height:0;display:grid}.auth-brand-figure .tangram{width:min(70%,200px)}.auth-brand-figure .tangram--loose{width:100%}.auth-brand .tangram--loose .tangram-slots polygon:first-child{fill:var(--tan-1)}.auth-brand .tangram--loose .tangram-slots polygon:nth-child(2){fill:var(--tan-2)}.auth-brand .tangram--loose .tangram-slots polygon:nth-child(3),.auth-brand .tangram--loose .tangram-set polygon{fill:var(--tan-3)}.auth-brand .tangram--loose .tangram-slots polygon:nth-child(4){fill:var(--tan-4)}.auth-brand .tangram--loose .tangram-slots polygon:nth-child(5){fill:var(--tan-5)}.auth-brand .tangram--loose .tangram-slots polygon:nth-child(6){fill:var(--tan-6)}.auth-brand .tangram--loose .tangram-slots polygon:nth-child(7){fill:var(--tan-7)}.auth-brand-quote{font-family:var(--font-display);letter-spacing:-.01em;color:var(--night-ink);font-size:16px;font-weight:600;line-height:1.35}.auth-card{align-content:start;gap:22px;padding:26px 30px 28px;display:grid}.auth-form{display:grid}.auth-form h1{font-size:var(--t-title);font-weight:650;line-height:1.15}.auth-form .auth-sub{font-size:var(--t-body);color:var(--ink-2);margin-top:6px;line-height:1.5}.auth-form form{gap:12px;display:grid}.auth-form .input{gap:10px;min-height:46px;padding-inline:14px;font-size:16px}.auth-form .btn--block{border-radius:var(--r-btn);min-height:46px;font-size:var(--t-body)}.auth-form .btn--block svg{color:inherit}.auth-block{gap:14px;margin-top:20px;display:grid}.divider{font-size:var(--t-meta);color:var(--ink-3);text-align:center}.note--moss{border-radius:var(--r-input);background:var(--good-bg);color:var(--good);font-size:var(--t-meta);align-items:flex-start;gap:10px;padding:10px 12px;line-height:1.5;display:flex}.note--moss svg{flex:none;margin-top:1px}.auth-foot-row{font-size:var(--t-small);color:var(--ink-2);flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.auth-foot-row a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.25em;transition:text-decoration-color var(--dur-1) ease;font-weight:600;text-decoration-thickness:1.5px}.auth-foot-row a:hover{-webkit-text-decoration-color:var(--set);text-decoration-color:var(--set)}.code{margin-top:2px;display:block;position:relative}.code-cells{justify-content:center;gap:14px;display:flex}.code-group{flex:1 1 0;gap:6px;display:flex}.code-cell{background:var(--raised);min-width:0;height:58px;box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink);font-family:var(--font-display);font-size:var(--t-title);font-variant-numeric:tabular-nums;transition:box-shadow var(--dur-1) ease, background-color var(--dur-1) ease, opacity var(--dur-2) ease;border-radius:12px;flex:1 1 0;place-items:center;padding-bottom:6px;font-weight:600;line-height:1;display:grid;position:relative}.code-cell.is-set{background:var(--ground)}.code-cell.is-active{box-shadow:inset 0 0 0 1.5px var(--ink)}.code-cell.is-selected{background:var(--marker);box-shadow:inset 0 0 0 1px var(--marker-tip)}.code-caret{background:var(--ink);border-radius:1px;width:2px;height:24px;margin-top:6px}.code-piece{background:var(--tan-1);clip-path:polygon(0 100%,50% 0,100% 100%);width:12px;height:6px;margin-left:-6px;position:absolute;bottom:8px;left:50%}.code-cell[data-k="2"] .code-piece{background:var(--tan-2)}.code-cell[data-k="3"] .code-piece{background:var(--tan-3);clip-path:polygon(0 0,0 100%,100% 100%);width:8px;height:8px;margin-left:-4px}.code-cell[data-k="4"] .code-piece,.code-cell[data-k="5"] .code-piece{background:var(--tan-4);width:8px;height:4px;margin-left:-4px}.code-cell[data-k="5"] .code-piece{background:var(--tan-5)}.code-cell[data-k="6"] .code-piece{background:var(--tan-6);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:7px;height:7px;margin-left:-3.5px}.code--invalid .code-cell.is-set{background:var(--set-soft);box-shadow:inset 0 0 0 1px var(--accent-stroke);color:var(--set-ink)}.code--invalid .code-piece{opacity:0}.code--busy .code-cell{opacity:.55}.code input{color:#0000;caret-color:#0000;letter-spacing:1em;cursor:text;-webkit-text-fill-color:transparent;background:0 0;border:0;outline:none;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.code input::selection{color:#0000;-webkit-text-fill-color:transparent;background:0 0}.code input:-webkit-autofill{transition:background-color 0s 600000s}.consent-page{align-content:center;place-items:center;gap:14px;min-height:100dvh;padding:40px 16px;display:grid}.consent-card{background:var(--raised);width:min(420px,100%);box-shadow:var(--ring);border-radius:20px;justify-items:center;padding:26px 26px 24px;display:grid}.consent-marks{align-items:center;display:flex}.consent-logo{background:var(--ink);width:44px;height:44px;color:var(--ground);border-radius:12px;place-items:center;display:grid;overflow:hidden}.consent-logo--claude{background:var(--claude);color:#fff}.consent-logo img{object-fit:cover;width:100%;height:100%}.consent-marks .mark polygon{stroke:var(--raised)}.consent-dots{gap:5px;padding:0 12px;display:flex}.consent-dots span{background:var(--tan-2);border-radius:1.5px;width:7px;height:7px;transform:rotate(45deg)}.consent-dots span:nth-child(2){background:var(--tan-3)}.consent-dots span:last-child{background:var(--set)}.consent-title{text-align:center;max-width:16em;margin-top:18px;font-size:20px;line-height:1.2}.user-chip{border-radius:var(--r-pill);background:var(--ground);font-size:var(--t-meta);color:var(--ink-2);align-items:center;gap:8px;margin-top:10px;padding:4px 12px 4px 4px;display:inline-flex}.scope-box{width:100%;margin-top:14px;display:grid}.scope-row{align-items:center;gap:12px;padding:8px 0;display:flex}.scope-ico{background:var(--good-bg);width:28px;height:28px;color:var(--good);border-radius:8px;flex:none;place-items:center;display:grid}.scope-row:nth-child(2) .scope-ico{background:var(--easy-bg);color:var(--easy)}.scope-row:nth-child(3) .scope-ico{background:var(--again-bg);color:var(--again)}.scope-row:nth-child(4) .scope-ico{background:var(--hard-bg);color:var(--hard)}.scope-col{gap:1px;min-width:0;display:grid}.scope-title{font-size:var(--t-body);font-weight:600}.scope-desc{font-size:var(--t-meta);color:var(--ink-3);line-height:1.4}.consent-cant{font-size:var(--t-meta);color:var(--ink-2);text-align:center;max-width:36ch;margin-top:14px;line-height:1.5}.consent-actions{grid-template-columns:1fr 1.6fr;gap:8px;width:100%;margin-top:16px;display:grid}.consent-actions .btn{min-height:40px}.consent-note{font-size:var(--t-meta);color:var(--ink-3);text-align:center}@media (prefers-reduced-motion:no-preference){.auth-pair{animation:dialog-in .52s var(--ease-spring) backwards}.auth-form>*{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:80ms}.auth-form>:nth-child(2){animation-delay:.12s}.auth-form>:nth-child(n+3){animation-delay:.16s}.auth-brand-quote{animation:fade-in .64s var(--ease-out) backwards;animation-delay:.36s}.code-caret{animation:1s linear infinite caret-blink}.code-piece{--fx:0;--fy:8px;--fr:40deg;animation:piece-dock var(--dur-2) var(--ease-spring) backwards}.code--invalid .code-cells{animation:nudge .36s var(--ease-out)}.consent-card{animation:dialog-in .52s var(--ease-spring) backwards}.consent-dots span{animation:consent-travel 1.8s var(--ease-out) infinite}.consent-dots span:nth-child(2){animation-delay:.16s}.consent-dots span:nth-child(3){animation-delay:.32s}@keyframes consent-travel{0%,to{opacity:.5;transform:translate(0)rotate(45deg)}50%{opacity:1;transform:translate(5px)rotate(225deg)scale(1.2)}}.scope-row{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(.12s + var(--i,0) * var(--stagger))}}@media (width<=760px){.auth-page{align-items:start;padding:20px 16px 40px}.auth-pair{grid-template-columns:minmax(0,1fr);width:min(420px,100%)}.auth-brand{grid-template-rows:none;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:14px;padding:14px 16px}.auth-brand-figure .tangram{width:52px}.auth-brand-figure .tangram--loose{width:56px}.auth-brand-quote{font-size:var(--t-small);font-weight:550}.auth-card{gap:18px;padding:20px 20px 22px}.code-cells{gap:10px}.code-group{gap:5px}.code-cell{height:54px}.consent-card{padding:22px 18px 20px}}.mk{--mk-w:1160px;--mk-x:clamp(16px, 4vw, 40px);--mk-pad:max(var(--mk-x), calc((100% - var(--mk-w)) / 2));overflow-x:clip}.mk-nav,.mk-hero,.mk-method,.mk-errors,.mk-name,.mk-band,.mk-under,.mk-final,.mk-footer{padding-inline:var(--mk-pad)}.mk-nav{justify-content:space-between;align-items:center;gap:24px;padding-block:16px;display:flex}.mk-nav-links{font-size:var(--t-body);color:var(--ink-2);gap:26px;font-weight:550;display:flex}.mk-nav-links a{transition:color var(--dur-1) ease;position:relative}.mk-nav-links a:hover{color:var(--ink);text-decoration:none}.mk-nav-links a:after{content:"";background:var(--set);transform-origin:0;height:2px;transition:transform var(--dur-2) var(--ease-out);border-radius:1px;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)}.mk-nav-links a:hover:after{transform:none}.mk-nav-actions{gap:6px;display:flex}.mk-hero{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center;gap:32px clamp(32px,4.5vw,64px);padding-block:40px 88px;display:grid}.mk-hero-copy{justify-items:start;gap:20px;display:grid}.mk-headline{letter-spacing:-.035em;font-size:clamp(34px,4.4vw,56px);font-weight:680;line-height:1.02}.mk-headline span{white-space:nowrap;display:block}.mk-subhead{color:var(--ink-2);max-width:44ch;font-size:17px;line-height:1.55}.mk-cta-row{flex-wrap:wrap;gap:10px;display:flex}.mk-cta-row .btn svg{transition:transform var(--dur-2) var(--ease-out)}.mk-cta-row .btn:hover svg{transform:translate(2px)}.mk-hero-note{font-size:var(--t-small);color:var(--ink-3)}.bring{border-radius:var(--r-card-lg);background:var(--raised);box-shadow:var(--ring);grid-template-columns:minmax(0,1fr);gap:14px;padding:18px 20px 20px;display:grid}.bring-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.bring-title{font-family:var(--font-display);font-size:var(--t-heading);letter-spacing:-.01em;font-weight:650}.bring-title span{color:var(--ink)}.bring-pips{gap:6px;display:flex}.bring-pips span{background:var(--wait);width:8px;height:8px;transition:background-color var(--dur-2) ease, transform var(--dur-3) var(--ease-spring);border-radius:1.5px;transform:rotate(45deg)}.bring-pips span[data-on=true]{background:var(--c);transform:rotate(225deg)}.bring-figure{aspect-ratio:8.4/5.4;justify-self:center;align-items:end;width:min(100%,440px);padding-block:4px 8px;display:grid}.bring-line{font-size:var(--t-small);color:var(--ink-2);min-height:1.5em}.bring-line strong{color:var(--ink);font-weight:650}.bring-again{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--set);text-decoration-color:var(--set);text-underline-offset:.2em;font-weight:600;text-decoration-thickness:1.5px}.bring-words{flex-wrap:wrap;gap:6px;display:flex}.bring-word{border-radius:var(--r-pill);background:var(--ground);min-height:34px;font-family:var(--font-display);letter-spacing:-.005em;transition:background-color var(--dur-2) ease, color var(--dur-2) ease, transform var(--dur-1) var(--ease-out);align-items:center;gap:7px;padding:0 12px 0 11px;font-size:14px;font-weight:650;display:inline-flex}.bring-tan{background:var(--ground-3);width:7px;height:7px;transition:background-color var(--dur-2) ease, transform var(--dur-3) var(--ease-spring);border-radius:1.5px;flex:none;transform:rotate(45deg)}.bring-gloss{font-family:var(--font-body);font-size:var(--t-small);color:var(--ink-3);transition:color var(--dur-2) ease;font-weight:450}.bring-word:hover{background:var(--ground-2);transform:translateY(-1px)}.bring-word:hover .bring-tan{transform:rotate(225deg)}.bring-word:active{transform:scale(.96)}.bring-word[aria-pressed=true]{background:var(--ink);color:var(--night-ink);cursor:default;transform:none}.bring-word[aria-pressed=true] .bring-tan{background:var(--c,var(--set));transform:rotate(225deg)}.bring-word[aria-pressed=true] .bring-gloss{color:var(--night-ink-2)}.mk-title{letter-spacing:-.025em;max-width:18em;font-size:clamp(26px,2.6vw,34px);font-weight:680;line-height:1.1}.mk-lede,.mk-body{color:var(--ink-2);max-width:52ch;font-size:16px;line-height:1.55}.mk-head{gap:10px;display:grid}.mk-method{gap:28px;padding-block:24px 88px;display:grid}.mk-loop{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:18px;display:grid}.chat{border-radius:var(--r-card-lg);background:var(--raised);box-shadow:var(--ring);overflow:hidden}.chat-head{font-size:var(--t-small);color:var(--ink-3);justify-content:space-between;gap:12px;padding:14px 20px 0;display:flex}.chat-title{font-family:var(--font-display);font-size:var(--t-heading);color:var(--ink);letter-spacing:-.01em;font-weight:650}.chat-body{gap:10px;padding:16px 20px 20px;display:grid}.bubble{background:var(--ground);max-width:82%;font-size:var(--t-body);border-radius:16px 16px 16px 5px;padding:10px 14px;line-height:1.5}.bubble strong{color:var(--set-ink);font-weight:650}.bubble--me{background:var(--ink);color:var(--night-ink);border-radius:16px 16px 5px;justify-self:end}.chat-end{background:var(--good-bg);color:var(--good);font-size:var(--t-small);border-radius:10px;justify-self:start;align-items:center;gap:8px;margin-top:4px;padding:5px 12px 5px 10px;font-weight:600;display:inline-flex}.chat-end-tans{gap:3px;display:inline-flex}.chat-end-tans span{background:var(--tan-1);border-radius:1px;width:6px;height:6px;transform:rotate(45deg)}.chat-end-tans span:nth-child(2){background:var(--tan-2)}.chat-end-tans span:nth-child(3){background:var(--tan-3)}.word{border-radius:var(--r-card-lg);background:var(--raised);box-shadow:var(--ring);transition:transform var(--dur-3) var(--ease-spring);gap:6px;margin-top:40px;padding:20px 22px 22px;display:grid;transform:rotate(1.2deg)}.word:hover{transform:rotate(0)translateY(-2px)}.word-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.word-lemma{font-family:var(--font-display);font-size:var(--t-display);letter-spacing:-.025em;font-weight:650;line-height:1.05}.word-level{border-radius:var(--r-pill);background:var(--easy-bg);color:var(--easy);font-size:var(--t-meta);padding:2px 9px;font-weight:650}.word-gloss{color:var(--ink);font-size:15px}.word-meta{font-size:var(--t-small);color:var(--ink-3);align-items:center;gap:8px;display:flex}.word-ex{border-radius:var(--r-card-sm);background:var(--ground);font-family:var(--font-display);letter-spacing:-.005em;margin-top:8px;padding:10px 12px;font-size:15px;font-weight:600;line-height:1.35}.word-note{font-size:var(--t-small);color:var(--ink-2)}.word-saved{font-size:var(--t-small);color:var(--set-ink);align-items:center;gap:8px;margin-top:6px;font-weight:600;display:flex}.word-saved-tan{background:var(--set);clip-path:polygon(0 100%,100% 100%,100% 0);width:12px;height:12px}.mk-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.mk-steps li{border-radius:var(--r-card);background:var(--raised);box-shadow:var(--ring);transition:transform var(--dur-2) var(--ease-out);align-content:start;gap:8px;padding:16px 18px 18px;display:grid}.mk-steps li:hover{transform:translateY(-2px)}.mk-steps h3{font-size:var(--t-heading);font-weight:650}.mk-steps p{font-size:var(--t-body);color:var(--ink-2);line-height:1.55}.mk-step-ico{background:var(--set-soft);border-radius:9px;place-items:center;width:32px;height:32px;margin-bottom:4px;display:grid}.mk-steps li:nth-child(2) .mk-step-ico{background:var(--good-bg)}.mk-steps li:nth-child(3) .mk-step-ico{background:var(--easy-bg)}.mk-tan{background:var(--tan-1);width:16px;height:16px;transition:transform var(--dur-3) var(--ease-spring)}.mk-steps li:hover .mk-tan{transform:rotate(-90deg)}.mk-tan--tri{clip-path:polygon(0 100%,100% 100%,0 0)}.mk-tan--square{background:var(--tan-3);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.mk-tan--para{background:var(--tan-4);clip-path:polygon(0 100%,34% 0,100% 0,66% 100%)}.mk-errors{padding-block:0 88px}.mk-errors-panel{background:var(--night);color:var(--night-ink);border-radius:20px;grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center;gap:clamp(28px,4vw,56px);padding:clamp(28px,4vw,48px);display:grid}.mk-errors .mk-title{color:var(--night-ink)}.mk-errors-copy{gap:16px;display:grid}.mk-errors .mk-body{color:var(--night-ink-2);font-size:15px}.mk-points{gap:8px;margin-top:4px;display:grid}.mk-points li{font-size:var(--t-body);color:var(--night-ink);padding-left:22px;line-height:1.5;position:relative}.mk-points li:before{content:"";background:var(--tan-2);border-radius:1.5px;width:8px;height:8px;position:absolute;top:.48em;left:2px;transform:rotate(45deg)}.mk-points li:nth-child(2):before{background:var(--tan-5)}.mk-points li:nth-child(3):before{background:var(--tan-6)}.patterns{border-radius:var(--r-card);background:var(--night-2);gap:14px;padding:18px 20px 20px;display:grid}.patterns-head{font-family:var(--font-display);font-size:var(--t-heading);letter-spacing:-.01em;justify-content:space-between;gap:12px;font-weight:650;display:flex}.patterns-head span+span{font-family:var(--font-body);font-size:var(--t-meta);color:var(--night-ink-2);font-weight:500}.patterns-row{gap:6px;display:grid}.patterns-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.patterns-label{font-family:var(--font-display);letter-spacing:-.005em;font-size:15px;font-weight:600}.patterns-trend{font-size:var(--t-small);color:var(--night-ink-2);white-space:nowrap}.patterns-bar{border-radius:var(--r-pill);background:var(--night-3);height:6px;display:block;overflow:hidden}.patterns-bar>span{border-radius:inherit;background:var(--tan-1);height:100%;transform:scaleX(var(--w,1));transform-origin:0;display:block}.patterns-row:nth-of-type(3) .patterns-bar>span{background:var(--tan-2)}.patterns-row:nth-of-type(4) .patterns-bar>span{background:var(--tan-3)}.patterns-row:nth-of-type(5) .patterns-bar>span{background:var(--tan-6)}.patterns-row:nth-of-type(6) .patterns-bar>span{background:var(--tan-5)}.patterns-foot{font-size:var(--t-small);color:var(--night-ink-2)}.mk-name{grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,4fr);align-items:center;gap:clamp(18px,3vw,40px);padding-block:0 56px;display:grid}.mk-name figure,.mk-band,.mk-final-picture{margin:0}.mk-name img,.mk-band img,.mk-final-picture img{width:100%;height:auto;display:block}.mk-print{border-radius:var(--r-card);background:var(--raised);box-shadow:var(--ring);padding:10px 10px 12px}.mk-print img{border-radius:8px}.mk-name figcaption,.mk-band figcaption,.mk-final-picture figcaption{font-size:var(--t-small);color:var(--ink-3);margin-top:8px;line-height:1.45}.mk-print figcaption{padding-inline:2px}.mk-portrait{transform:rotate(-1.5deg)}.mk-portrait img{aspect-ratio:809/1040;object-fit:cover;object-position:center 62%}.mk-name-copy{gap:16px;display:grid}.mk-glyph{font-family:var(--font-jp);letter-spacing:0;font-size:56px;font-weight:700;line-height:1}.mk-story{color:var(--ink);font-size:18px;line-height:1.5}.mk-story-note{color:var(--ink-2);font-size:15px;line-height:1.55}.mk-hand{align-self:end;transform:rotate(1.5deg)}.mk-band{padding-block:0 88px}.mk-band-frame{border-radius:var(--r-card-lg);overflow:hidden}.mk-band img{aspect-ratio:1400/520;object-fit:cover}.mk-under{gap:24px;padding-block:0 88px;display:grid}.mk-features{border-radius:var(--r-card-lg);background:var(--raised);box-shadow:var(--ring);grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 32px;margin:0;padding:22px 24px 24px;display:grid}.mk-feature{align-content:start;gap:6px;display:grid}.mk-feature dt{font-family:var(--font-display);font-size:var(--t-heading);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:650;line-height:1.25;display:flex}.mk-feature-tan{background:var(--c,var(--set));width:9px;height:9px;transition:transform var(--dur-3) var(--ease-spring);border-radius:1.5px;flex:none;transform:rotate(45deg)}.mk-feature:hover .mk-feature-tan{transform:rotate(225deg)}.mk-feature dd{font-size:var(--t-body);color:var(--ink-2);margin:0;line-height:1.55}.mk-final{padding-block:0 72px}.mk-final-panel{background:var(--night);color:var(--night-ink);border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(28px,4vw,56px);padding:clamp(28px,4vw,48px);display:grid}.mk-final-copy{justify-items:start;gap:16px;display:grid}.mk-final h2{letter-spacing:-.025em;color:var(--night-ink);max-width:14em;font-size:clamp(26px,2.6vw,34px);font-weight:680;line-height:1.1}.mk-final p{color:var(--night-ink-2);max-width:42ch;font-size:16px;line-height:1.55}.mk-final .btn--primary{background:var(--night-ink);color:var(--ink)}.mk-final .btn--primary:hover{background:#fff}.mk-final-picture{border-radius:var(--r-card);background:var(--night-2);width:240px;padding:8px 8px 10px;transform:rotate(2deg)}.mk-final-picture img{aspect-ratio:921/1180;object-fit:cover;object-position:center top;border-radius:8px}.mk-final-picture figcaption{color:var(--night-ink-2);padding-inline:2px}.mk-footer{color:var(--ink-3);gap:14px;padding-block:0 40px;display:grid}.mk-footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 28px;padding-top:8px;display:flex}.mk-footer-name{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.mk-footer-name [lang=ja]{font-family:var(--font-jp);font-size:var(--t-small);color:var(--ink-3)}.mk-footer-tag{font-size:var(--t-small)}.mk-footer-links{font-size:var(--t-small);flex-wrap:wrap;gap:20px;display:flex}.mk-footer-links a{color:var(--ink);font-weight:550}.mk-credits{font-size:var(--t-small);max-width:90ch;line-height:1.5}@media (prefers-reduced-motion:no-preference){.mk-hero-copy>*{animation:rise .56s var(--ease-out) backwards}.mk-hero-copy>:nth-child(2){animation-delay:80ms}.mk-hero-copy>:nth-child(3){animation-delay:.16s}.mk-hero-copy>:nth-child(4){animation-delay:.24s}.bring{animation:dialog-in .62s var(--ease-spring) backwards;animation-delay:.12s}.bring-words>li{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(.42s + var(--i,0) * var(--stagger))}.bring-line{animation:fade-in var(--dur-3) ease backwards;animation-delay:.8s}[data-reveal=armed]{opacity:0;transform:translateY(10px)}[data-reveal=in]{animation:rise .62s var(--ease-out) backwards}[data-reveal=in].mk-steps>li,[data-reveal=in].mk-features>.mk-feature{animation:rise .52s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * var(--stagger) * 1.5)}[data-reveal=in].mk-steps,[data-reveal=in].mk-features{animation:none}[data-reveal=in] .patterns-row{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(.16s + var(--i,0) * 60ms)}[data-reveal=in] .patterns-bar>span{animation:bar-grow .82s var(--ease-out) backwards;animation-delay:calc(.3s + var(--i,0) * 60ms)}@keyframes bar-grow{0%{transform:scaleX(0)}}[data-reveal=in] .bubble{animation:rise var(--dur-3) var(--ease-out) backwards}[data-reveal=in] .bubble:nth-child(2){animation-delay:.14s}[data-reveal=in] .bubble:nth-child(3){animation-delay:.28s}[data-reveal=in] .bubble:nth-child(4){animation-delay:.42s}[data-reveal=in] .chat-end{animation:rise var(--dur-3) var(--ease-out) backwards;animation-delay:.56s}[data-reveal=in] .word{animation:fade-in .52s var(--ease-out) backwards;animation-delay:.52s}.mk-band img{transform-origin:30% 60%;animation:26s ease-in-out infinite alternate band-drift}@keyframes band-drift{0%{transform:scale(1.02)translate(0)}to{transform:scale(1.08)translate(-2%)}}.mk-print,.mk-final-picture{transition:transform var(--dur-3) var(--ease-spring)}.mk-print:hover,.mk-final-picture:hover{transform:rotate(0)translateY(-2px)}}@media (width<=960px){.mk-nav-links{display:none}.mk-hero,.mk-loop,.mk-errors-panel{grid-template-columns:minmax(0,1fr)}.mk-hero{padding-top:16px}.bring{max-width:560px}.word{max-width:480px;margin-top:0}.mk-name{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mk-name-copy{order:-1;grid-column:1/-1}.mk-features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.mk-nav{padding-block:12px}.mk-nav-actions .btn--quiet{display:none}.mk-hero{gap:24px;padding-bottom:56px}.mk-subhead{font-size:16px}.bring{padding:14px 14px 16px}.bring-gloss{display:none}.mk-method,.mk-errors,.mk-band,.mk-under,.mk-final{padding-bottom:56px}.chat-head{padding:12px 16px 0}.chat-body{padding:12px 16px 16px}.word{padding:16px 18px 18px;transform:none}.bubble{max-width:92%}.mk-steps{grid-template-columns:minmax(0,1fr);gap:10px}.mk-features{grid-template-columns:minmax(0,1fr);gap:18px;padding:18px}.mk-errors-panel,.mk-final-panel{border-radius:var(--r-card-lg);padding:22px 18px}.patterns{padding:16px}.patterns-top{flex-direction:column;gap:0}.mk-name{gap:14px;padding-bottom:40px}.mk-glyph{font-size:44px}.mk-story{font-size:16px}.mk-band img{aspect-ratio:4/3}.mk-final-panel{grid-template-columns:minmax(0,1fr)}.mk-final-picture{width:min(200px,60%)}}
