:root,:root[data-theme=dark]{--bg:#0a0a0b;--bg-1:#111113;--bg-2:#18181b;--bg-3:#1f1f23;--line:#232327;--line-2:#2f2f34;--fg:#ededec;--fg-2:#a3a3a9;--fg-3:#8b8b93;--mint:#7be0c3;--mint-soft:#7be0c31f;--on-mint:#0a0a0b;--coral:#f08a6c;--red:#ef5a5a;--red-soft:#ef5a5a1f;--green:#4cc38a;--green-soft:#4cc38a1f;--amber:#e6b450;--amber-soft:#e6b4501f;--blue:#6aa8ff;--g1:var(--red);--g2:var(--amber);--g3:var(--green);--g4:var(--blue);--easy:#3cc4b4;--medium:var(--amber);--hard:var(--red);--shadow:0 30px 80px -40px #000000e6;--sans:"Instrument Sans", "Helvetica Neue", "Segoe UI", Arial, sans-serif;--serif:"Instrument Serif", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ease:cubic-bezier(.2, .7, .1, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#fafaf9;--bg-1:#fff;--bg-2:#f4f4f3;--bg-3:#ececea;--line:#e6e6e3;--line-2:#d9d9d5;--fg:#111112;--fg-2:#55555b;--fg-3:#68686f;--mint:#096b55;--mint-soft:#096b551a;--on-mint:#fff;--red:#ad3232;--red-soft:#ad323214;--green:#186f46;--green-soft:#186f4617;--amber:#845700;--amber-soft:#84570017;--blue:#1a5cb2;--easy:#0d6c61;--shadow:0 30px 60px -40px #00000040;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#fafaf9;--bg-1:#fff;--bg-2:#f4f4f3;--bg-3:#ececea;--line:#e6e6e3;--line-2:#d9d9d5;--fg:#111112;--fg-2:#55555b;--fg-3:#68686f;--mint:#096b55;--mint-soft:#096b551a;--on-mint:#fff;--red:#ad3232;--red-soft:#ad323214;--green:#186f46;--green-soft:#186f4617;--amber:#845700;--amber-soft:#84570017;--blue:#1a5cb2;--easy:#0d6c61;--shadow:0 30px 60px -40px #00000040;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--fg);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--mint);outline-offset:2px;border-radius:6px}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:500}p{margin:0}.label{font:500 11.5px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--fg-2)}.faint{color:var(--fg-3)}.serif{font-family:var(--serif);font-style:italic;font-weight:400}.tnum{font-variant-numeric:tabular-nums}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.stack{gap:12px;display:grid}.stack-lg{gap:24px;display:grid}.shell{min-height:100vh;transition:grid-template-columns .28s var(--ease);grid-template-columns:236px minmax(0,1fr);display:grid}.side{border-right:1px solid var(--line);background:var(--bg);flex-direction:column;gap:4px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:9px;padding:4px 10px 18px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.nav-item{color:var(--fg-2);border-radius:9px;align-items:center;gap:11px;padding:8px 10px;font-size:14px;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-item:hover,.nav-item.active{background:var(--bg-2);color:var(--fg)}.nav-item svg{opacity:.9;flex:none}.nav-item .count{margin-left:auto}.side .bottom{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:auto;display:grid}.plan-chip{border:1px solid var(--line);border-radius:12px;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;margin:10px 10px 4px;padding:12px;font-size:13px;display:grid}.plan-chip .row{flex-wrap:nowrap;min-width:0}.plan-chip .row>*{min-width:0}.plan-chip .pill{flex:none}.side .nav-item{min-width:0}.main{min-width:0;padding:40px max(20px, env(safe-area-inset-right,0px)) 80px max(20px, env(safe-area-inset-left,0px))}.page{max-width:760px;margin:0 auto}.page.wide{max-width:1040px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.page-head h1{letter-spacing:-.03em;font-size:clamp(28px,4vw,36px);line-height:1.08}.tabbar{display:none}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.side{display:none}.main{padding-top:24px;padding-bottom:110px}.tabbar{z-index:40;padding:6px max(6px, env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px, env(safe-area-inset-left,0px));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--fg-3);justify-items:center;gap:3px;padding:6px 0;font-size:11px;text-decoration:none;display:grid}.tabbar a.active{color:var(--fg)}.mobile-top{display:flex!important}}.mobile-top{justify-content:space-between;align-items:center;margin-bottom:20px;display:none}.btn{cursor:pointer;white-space:nowrap;height:38px;transition:background .15s, border-color .15s, transform .15s var(--ease), opacity .15s;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--fg);color:var(--bg)}.btn-primary:hover:not(:disabled){opacity:.9}.btn-mint{background:var(--mint);color:var(--on-mint)}.btn-line{border-color:var(--line-2);background:0 0}.btn-line:hover:not(:disabled){border-color:var(--fg-3)}.btn-ghost{color:var(--fg-2);background:0 0}.btn-ghost:hover{color:var(--fg);background:var(--bg-2)}.btn-danger{color:var(--red);border-color:color-mix(in srgb, var(--red) 40%, transparent);background:0 0}.btn-sm{border-radius:8px;height:30px;padding:0 11px;font-size:13px}.btn-lg{border-radius:12px;height:46px;padding:0 22px;font-size:15px}.kbd{font:500 10.5px var(--mono);border:1px solid var(--line-2);color:var(--fg-3);border-radius:4px;padding:1px 5px}.link{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0}.link:hover{-webkit-text-decoration-color:var(--fg-3);text-decoration-color:var(--fg-3)}.card{background:var(--bg-1);border:1px solid var(--line);border-radius:16px;padding:22px}.card.flat{box-shadow:none}.card.raised{box-shadow:var(--shadow)}.divider{background:var(--line);border:0;height:1px;margin:0}.pill{height:22px;font:500 11.5px var(--mono);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.pill i{background:currentColor;border-radius:50%;width:6px;height:6px;display:block}.pill.due{color:var(--red);background:var(--red-soft)}.pill.done{color:var(--green);background:var(--green-soft)}.pill.warn{color:var(--amber);background:var(--amber-soft)}.pill.mint{color:var(--mint);background:var(--mint-soft)}.pill.neutral{color:var(--fg-2);background:var(--bg-2)}.diff{font:500 11.5px var(--mono)}.diff.easy{color:var(--easy)}.diff.medium{color:var(--medium)}.diff.hard{color:var(--hard)}.input,.select,.textarea{background:var(--bg);border:1px solid var(--line-2);width:100%;color:var(--fg);font:inherit;border-radius:10px;padding:10px 12px;transition:border-color .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--mint);outline:none}.textarea{resize:vertical;min-height:96px;line-height:1.5}.textarea.code{font:13px/1.6 var(--mono);min-height:130px}.field{gap:6px;display:grid}.field>span{color:var(--fg-2);font-size:13px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line-2);cursor:pointer;color:var(--fg-2);background:0 0;border-radius:9px;padding:7px 12px;font-size:13.5px;transition:all .15s}.chip:hover:not(:disabled){color:var(--fg);border-color:var(--fg-3)}.chip[aria-pressed=true]{border-color:var(--mint);background:var(--mint-soft);color:var(--fg)}.chip.ok{border-color:var(--green);background:var(--green-soft);color:var(--fg)}.chip.bad{border-color:var(--red);background:var(--red-soft);color:var(--fg)}.chip:disabled{cursor:default}.seg{border:1px solid var(--line-2);border-radius:10px;flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.seg button{color:var(--fg-2);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 12px;font-size:13.5px}.seg button[aria-pressed=true]{background:var(--bg-3);color:var(--fg)}.queue{display:grid}.qrow{border-top:1px solid var(--line);border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 4px;text-decoration:none;transition:background .15s;display:grid}a.qrow:hover{background:var(--bg-1)}.qrow:last-child{border-bottom:1px solid var(--line)}.qrow .t{flex-wrap:wrap;align-items:center;gap:10px;font-size:15px;display:flex}.qrow .s{color:var(--fg-3);margin-top:2px;font-size:13px}@media (width<=560px){.qrow:has(>.row.wrap){grid-template-columns:minmax(0,1fr);gap:8px}.qrow>.row.wrap{justify-content:flex-start!important}}.mode{font:500 11px var(--mono);border:1px solid var(--line-2);color:var(--fg-2);border-radius:6px;padding:3px 8px}.mode.full{color:var(--amber);border-color:color-mix(in srgb, var(--amber) 35%, transparent)}.mode.drill{color:var(--mint);border-color:color-mix(in srgb, var(--mint) 35%, transparent)}.group-title{margin:34px 0 6px}.ring{place-items:center;display:inline-grid;position:relative}.ring>svg{transform:rotate(-90deg)}.ring .c svg{transform:none}.ring>svg circle{fill:none;stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease), stroke .4s}.ring .c{font:500 15px var(--mono);place-items:center;display:grid;position:absolute}.rates{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.rate{border:1px solid var(--line-2);border-top:2px solid var(--c);background:var(--bg-2);cursor:pointer;text-align:center;transition:opacity .3s, transform .25s var(--ease), box-shadow .2s, background .2s;border-radius:11px;padding:10px 6px 9px}.rate b{font-size:14px;font-weight:600;display:block}.rate small{font:11px var(--mono);color:var(--fg-3);margin-top:3px;display:block}.rate:hover:not(:disabled){transform:translateY(-1px)}.rate:disabled{opacity:.3;cursor:not-allowed;filter:saturate(0)}.rate.top{box-shadow:0 0 0 1.5px var(--mint)}.rate.picked{background:var(--c);color:#111}.rate.picked small{color:#0009}@media (width<=520px){.rates{grid-template-columns:repeat(2,minmax(0,1fr))}}.reveal{animation:reveal .5s var(--ease) both}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fade-in{animation:reveal .45s var(--ease) both}.ok{color:var(--green)}.bad{color:var(--red)}.compare{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.compare>div{border:1px solid var(--line);border-radius:12px;min-width:0;padding:14px}.compare pre{white-space:pre-wrap;word-break:break-word;font:13px/1.6 var(--mono);margin:6px 0 0}@media (width<=640px){.compare{grid-template-columns:minmax(0,1fr)}}pre.code{background:var(--bg);border:1px solid var(--line);font:13px/1.65 var(--mono);border-radius:12px;margin:0;padding:14px;overflow-x:auto}.backdrop{z-index:60;background:#0000008c;place-items:center;padding:20px;animation:.2s both fade;display:grid;position:fixed;inset:0}.sheet{background:var(--bg-1);border:1px solid var(--line-2);width:min(480px,100%);box-shadow:var(--shadow);animation:reveal .3s var(--ease) both;overscroll-behavior:contain;border-radius:18px;max-height:calc(100dvh - 40px);padding:24px;overflow:auto}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:70;background:var(--bg-2);border:1px solid var(--line-2);box-shadow:var(--shadow);animation:reveal .3s var(--ease) both;border-radius:12px;max-width:calc(100% - 32px);padding:11px 16px;font-size:14px;position:fixed;transform:translate(-50%)}@media (width<=900px){.toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}.bars{grid-auto-columns:1fr;grid-auto-flow:column;align-items:end;gap:4px;height:64px;display:grid}.bars div{background:color-mix(in srgb, var(--fg) 14%, transparent);min-height:3px;transition:height .6s var(--ease);border-radius:4px;position:relative}.bars div.today{background:var(--mint)}.bars div.next{background:color-mix(in srgb, var(--mint) 45%, transparent)}.meter{background:var(--bg-3);border-radius:6px;height:6px;overflow:hidden}.meter i{background:var(--c,var(--mint));height:100%;transition:width .9s var(--ease);transform-origin:0;border-radius:6px;animation:1s cubic-bezier(.2,.8,.2,1) both meter-fill;display:block}@keyframes meter-fill{0%{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.meter i{animation:none}}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (width<=820px){.grid3,.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.grid2,.grid3{grid-template-columns:minmax(0,1fr)}}.stat .v{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:6px;font-size:30px;font-weight:500}.skeleton{background:linear-gradient(90deg, var(--bg-2), var(--bg-3), var(--bg-2));background-size:200% 100%;border-radius:10px;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.empty{text-align:center;justify-items:center;gap:12px;padding:56px 20px;display:grid}.empty h2{font-size:22px}.empty p{max-width:44ch;color:var(--fg-2)}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);border-bottom:1px solid var(--line);padding:10px 8px}.table td{border-bottom:1px solid var(--line);padding:12px 8px}.table-wrap{overflow-x:auto}.blurred{filter:blur(6px);pointer-events:none;-webkit-user-select:none;user-select:none}.locked-wrap{position:relative}.locked-wrap .lock{z-index:2;place-items:center;display:grid;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.notice-bar{background:color-mix(in srgb, var(--amber) 10%, transparent);border:1px solid color-mix(in srgb, var(--amber) 35%, transparent);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;padding:10px 14px;font-size:14px;display:flex}.notice-bar .grow{min-width:200px}.code-ed{border:1px solid var(--line-2);background:var(--bg-2);font:13.5px/1.6 var(--mono);tab-size:4;border-radius:12px;grid-template-columns:auto minmax(0,1fr);display:grid;overflow:hidden}.code-ed:focus-within{border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-soft)}.code-ed.readonly{background:var(--bg-2)}.code-gutter{text-align:right;color:var(--fg-3);-webkit-user-select:none;user-select:none;border-right:1px solid var(--line);min-width:2.6em;padding:12px 10px 12px 12px;overflow:hidden}.code-area{min-width:0;position:relative}.code-hl,.code-input{font:inherit;white-space:pre;tab-size:4;letter-spacing:0;word-spacing:0;margin:0;padding:12px 14px}.code-hl{color:var(--fg);pointer-events:none;position:absolute;inset:0;overflow:hidden}.code-ed.readonly>.code-hl{position:static;overflow-x:auto}.code-input{resize:vertical;color:#0000;width:100%;caret-color:var(--fg);background:0 0;border:0;outline:none;min-height:100%;display:block;position:relative;overflow:auto}.code-input::selection{background:color-mix(in srgb, var(--mint) 30%, transparent);color:#0000}.code-input:disabled{cursor:default}.code-ph{color:var(--fg-3)}.tk-k{color:var(--blue)}.tk-s{color:var(--green)}.tk-n{color:var(--amber)}.tk-c{color:var(--fg-3);font-style:italic}.tk-t{color:var(--mint)}.tk-p{color:var(--fg-2)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html{scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--fg-3) 40%, transparent) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--fg-3) 35%, transparent);background-clip:padding-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb, var(--fg-3) 60%, transparent)}::selection{background:color-mix(in srgb, var(--mint) 28%, transparent);color:var(--fg)}input,textarea,select{caret-color:var(--mint)}:root{accent-color:var(--mint)}input:-webkit-autofill{-webkit-text-fill-color:var(--fg);caret-color:var(--fg);box-shadow:0 0 0 1000px var(--bg-2) inset;transition:background-color 9999s}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--fg);caret-color:var(--fg);box-shadow:0 0 0 1000px var(--bg-2) inset;transition:background-color 9999s}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--fg);caret-color:var(--fg);box-shadow:0 0 0 1000px var(--bg-2) inset;transition:background-color 9999s}input[type=number]::-webkit-inner-spin-button{opacity:.5}input[type=number]::-webkit-outer-spin-button{opacity:.5}input[type=date]::-webkit-calendar-picker-indicator{opacity:.6;cursor:pointer}:root:not([data-theme=light]) input[type=date]::-webkit-calendar-picker-indicator{filter:invert()}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) input[type=date]::-webkit-calendar-picker-indicator{filter:none}}textarea::-webkit-resizer{background:0 0}::placeholder{color:var(--fg-3);opacity:1}a,button,summary,[role=button]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}[hidden]{display:none!important}.seg.weeks{scrollbar-width:none;scroll-snap-type:x proximity;flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.seg.weeks::-webkit-scrollbar{display:none}.seg.weeks button{scroll-snap-align:start;flex:none}.viz{border:1px solid var(--line);background:radial-gradient(110% 70% at 78% -10%, color-mix(in srgb, var(--mint) 8%, transparent), transparent 62%), radial-gradient(70% 50% at 0% 100%, color-mix(in srgb, var(--blue) 4%, transparent), transparent 70%), var(--bg-1);box-shadow:var(--shadow);border-radius:20px;outline:none;gap:16px;padding:24px 26px;display:grid;position:relative}.viz:focus-visible{box-shadow:0 0 0 2px var(--mint), var(--shadow)}.viz.is-full{z-index:80;border:0;border-radius:0;align-content:start;padding:clamp(18px,3vw,40px) clamp(18px,4vw,64px);position:fixed;inset:0;overflow-y:auto}.viz-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.viz-head h3{letter-spacing:-.02em;margin:4px 0 3px;font-size:21px;font-weight:500}.viz-input{color:var(--fg-3);overflow-wrap:anywhere;font-size:12.5px}.viz-title{min-width:0}.viz-head-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.viz-inv{color:var(--fg-2);background:color-mix(in srgb, var(--mint) 7%, var(--bg-2));border:1px solid color-mix(in srgb, var(--mint) 22%, var(--line));border-radius:12px;align-items:baseline;gap:10px;margin:-2px 0 0;padding:10px 14px;font-size:13.5px;line-height:1.5;display:flex}.viz-inv b{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mint);flex:none}.viz-body{grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);align-items:start;gap:20px;display:grid}.viz{container-type:inline-size}@container (width<=780px){.viz-body{grid-template-columns:minmax(0,1fr)}}.viz-stage{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 55%, var(--bg-1));border-radius:16px;align-content:start;gap:16px;min-width:0;min-height:220px;padding:16px;display:grid}.viz-views{scrollbar-width:thin;flex-wrap:wrap;align-items:flex-start;gap:18px 28px;padding:4px 2px 2px;display:flex;overflow-x:auto}:is(.viz-views>.viz-block:has(.viz-array),.viz-views>.viz-block:has(.viz-grid.sudoku)){flex-basis:100%}.viz-block{justify-items:start;gap:8px;min-width:0;display:grid}.viz-label{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3)}.viz-trace-block{border-top:1px dashed var(--line);padding-top:12px}.viz-array{position:relative}.viz-cell{width:var(--cell);height:var(--cell);border:1px solid var(--line-2);background:var(--bg-2);font:500 clamp(13px, calc(var(--cell) * .32), 19px) var(--mono);transition:background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease), opacity .35s;border-radius:12px;place-items:center;display:grid;position:absolute;top:0}.viz-cell.is-long{letter-spacing:-.02em;font-size:12px}.viz-idx{width:var(--cell);text-align:center;font:11px var(--mono);color:var(--fg-3);position:absolute}.viz-cell.is-active{border-color:var(--mint);background:color-mix(in srgb, var(--mint) 18%, var(--bg-2));box-shadow:0 0 0 4px color-mix(in srgb, var(--mint) 12%, transparent), 0 10px 26px -12px color-mix(in srgb, var(--mint) 70%, transparent)}.viz-cell.is-compare{border-color:var(--amber);background:color-mix(in srgb, var(--amber) 14%, var(--bg-2));box-shadow:0 0 0 3px color-mix(in srgb, var(--amber) 10%, transparent)}.viz-cell.is-found{border-color:var(--green);background:color-mix(in srgb, var(--green) 24%, var(--bg-2));box-shadow:0 0 0 4px color-mix(in srgb, var(--green) 14%, transparent)}.viz-cell.is-done{color:var(--fg-2)}.viz-cell.is-dim{opacity:.32}.viz-window{height:calc(var(--cell) + 10px);border:1px dashed color-mix(in srgb, var(--mint) 55%, transparent);background:color-mix(in srgb, var(--mint) 6%, transparent);transition:left .45s var(--ease), width .45s var(--ease);border-radius:15px;position:absolute;top:-5px}.viz-ptr{width:var(--cell);font:600 11.5px var(--mono);white-space:nowrap;transition:transform .45s var(--ease), top .3s;justify-content:center;align-items:baseline;gap:2px;display:flex;position:absolute;left:0}.viz-ptr i{font-size:9px;font-style:normal}.viz-trace{max-width:100%;height:auto;display:block}.viz-lattice{fill:var(--line-2)}.viz-band{fill:color-mix(in srgb, var(--mint) 20%, transparent);stroke:color-mix(in srgb, var(--mint) 35%, transparent);stroke-width:1px}.viz-band.is-now{fill:color-mix(in srgb, var(--mint) 38%, transparent);stroke:var(--mint)}.viz-stack{flex-direction:column-reverse;gap:5px;min-height:30px;display:flex}.viz-stack.flat{flex-flow:wrap}.viz-chip,.viz-kv{font:500 13px var(--mono);border:1px solid var(--line-2);background:var(--bg-2);animation:viz-in .3s var(--ease) both;border-radius:9px;padding:6px 10px}.viz-chip.is-active,.viz-kv.is-active{border-color:var(--mint);background:color-mix(in srgb, var(--mint) 16%, var(--bg-2))}.viz-map{flex-wrap:wrap;gap:6px;max-width:560px;display:flex}.viz-kv b{font-weight:600}.viz-kv i{color:var(--fg-3);margin:0 5px;font-style:normal}.viz-empty{font:12px var(--mono);color:var(--fg-3)}.viz-grid{border-collapse:separate;border-spacing:4px;font:500 13.5px var(--mono)}.viz-grid th{color:var(--fg-3);padding:0 4px;font-size:11.5px;font-weight:500}.viz-grid td{text-align:center;background:var(--bg-2);border:1px solid var(--line);width:38px;height:36px;transition:background .3s var(--ease), border-color .3s;border-radius:9px}.viz-grid.dense{border-spacing:3px;font-size:12px}.viz-grid.dense td{border-radius:7px;width:30px;height:30px}.viz-grid.sudoku tr:nth-child(3n) td{margin-bottom:4px}.viz-grid.sudoku tr:nth-child(3n):not(:last-child) td{box-shadow:0 3px 0 -1px var(--line-2)}.viz-grid.sudoku td:nth-child(3n):not(:last-child){box-shadow:3px 0 0 -1px var(--line-2)}.viz-grid td.is-active{border-color:var(--mint);background:color-mix(in srgb, var(--mint) 20%, var(--bg-2))}.viz-grid td.is-compare{border-color:var(--amber);background:color-mix(in srgb, var(--amber) 14%, var(--bg-2))}.viz-grid td.is-found{border-color:var(--green);background:color-mix(in srgb, var(--green) 26%, var(--bg-2))}.viz-grid td.is-done{background:color-mix(in srgb, var(--mint) 7%, var(--bg-2))}.viz-grid td.is-dim{background:var(--bg-3);color:var(--fg-3)}.viz-svg{max-width:100%;height:auto;overflow:visible}.viz-edge{stroke:var(--line-2);stroke-width:1.6px;transition:stroke .3s}.viz-edge.back{stroke:var(--amber);stroke-dasharray:4 4}.viz-arrowhead{fill:var(--fg-3)}.viz-arrowhead.back{fill:var(--amber)}.viz-node circle{fill:var(--bg-2);stroke:var(--line-2);stroke-width:1.5px;transition:fill .35s var(--ease), stroke .35s}.viz-node text{fill:var(--fg);font:500 13px var(--mono);text-anchor:middle}.viz-node .viz-note{fill:var(--fg-3);font-size:10px}.viz-node.is-active circle{stroke:var(--mint);fill:color-mix(in srgb, var(--mint) 22%, var(--bg-2))}.viz-node.is-compare circle{stroke:var(--amber);fill:color-mix(in srgb, var(--amber) 16%, var(--bg-2))}.viz-node.is-found circle{stroke:var(--green);fill:color-mix(in srgb, var(--green) 28%, var(--bg-2))}.viz-node.is-done circle{fill:color-mix(in srgb, var(--mint) 8%, var(--bg-2))}.viz-ptrtext{font:600 11px var(--mono);text-anchor:middle}.viz-intervals{position:relative}.viz-iv{border:1px solid var(--line-2);background:var(--bg-2);height:26px;font:500 11.5px var(--mono);transition:all .4s var(--ease);white-space:nowrap;border-radius:8px;place-items:center;display:grid;position:absolute}.viz-iv.is-active,.viz-iv.is-found{border-color:var(--mint);background:color-mix(in srgb, var(--mint) 18%, var(--bg-2))}.viz-iv.is-found{border-color:var(--green);background:color-mix(in srgb, var(--green) 22%, var(--bg-2))}.viz-iv.is-compare{border-color:var(--amber);background:color-mix(in srgb, var(--amber) 12%, var(--bg-2))}.viz-iv.is-done{opacity:.6}.viz-iv.is-dim{opacity:.3}.viz-axis{border-top:1px solid var(--line);height:14px;position:absolute;bottom:0;left:0;right:0}.viz-axis span{font:9.5px var(--mono);color:var(--fg-3);position:absolute;top:2px;transform:translate(-50%)}.viz-bits{gap:6px;display:grid}.viz-bitrow{align-items:center;gap:5px;display:flex}.viz-bitrow .viz-label{width:86px}.viz-bit{width:26px;height:26px;font:500 13px var(--mono);border:1px solid var(--line-2);color:var(--fg-3);border-radius:6px;place-items:center;display:grid}.viz-bit.on{border-color:var(--mint);color:var(--fg);background:color-mix(in srgb, var(--mint) 18%, transparent)}.viz-side{gap:10px;min-width:0;display:grid;position:sticky;top:16px}.viz-codecard{border:1px solid var(--line);background:var(--bg-2);border-radius:16px;overflow:hidden}.viz-codebar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:8px 8px 8px 14px;display:flex}.viz-lang-one{color:var(--fg-3);padding:5px 10px;font-size:11.5px}.viz-code{font:13px/1.75 var(--mono);max-height:min(60vh,520px);margin:0;padding:10px 0;list-style:none;overflow-y:auto}.viz-code li{border-left:2px solid #0000;grid-template-columns:2em minmax(0,1fr);gap:10px;padding:0 14px 0 8px;transition:background .25s,border-color .25s;display:grid}.viz-code li code{white-space:pre-wrap;overflow-wrap:anywhere;text-indent:-4ch;padding-left:4ch}.viz-code li.is-on{background:color-mix(in srgb, var(--mint) 13%, transparent);border-left-color:var(--mint)}.viz-code .ln{color:var(--fg-3);text-align:right;-webkit-user-select:none;user-select:none}.viz-vars{flex-wrap:wrap;gap:6px;display:flex}.viz-vars span{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12.5px}.viz-vars i{color:var(--fg-3);margin-right:2px;font-style:normal}.viz-langs{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;gap:2px;width:max-content;max-width:100%;padding:3px;display:flex;overflow-x:auto}.viz-langs button{font:500 12px var(--sans,inherit);min-height:30px;color:var(--fg-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:5px 11px}.viz-langs button:hover{color:var(--fg)}.viz-langs button.on{background:var(--bg-3);color:var(--fg);box-shadow:0 1px 0 var(--line-2)}.viz-say-row{border:1px solid var(--line);background:var(--bg-2);border-radius:14px;align-items:center;gap:14px;min-height:64px;padding:14px 16px;display:flex}.viz-step{color:var(--fg-2);background:var(--bg-1);border:1px solid var(--line);border-radius:999px;flex:none;padding:4px 10px;font-size:12px}.viz-step i{color:var(--fg-3);margin:0 1px;font-style:normal}.viz-say{color:var(--fg);margin:0;font-size:16px;line-height:1.55}.viz-say .ok-t,.viz-say .bad-t{font-weight:600}.viz-cell.is-changed span,.viz-vars .is-changed{animation:viz-pop .7s var(--ease)}.viz-vars .is-changed{border-color:color-mix(in srgb, var(--amber) 60%, var(--line))}@keyframes viz-pop{0%{color:var(--amber);transform:scale(1.25)}to{transform:none}}.viz-legend{color:var(--fg-3);flex-wrap:wrap;gap:6px 14px;font-size:12px;display:flex}.viz-legend span{align-items:center;gap:6px;display:inline-flex}.viz-legend i{border:1px solid var(--line-2);background:var(--bg-2);border-radius:4px;width:12px;height:12px}.viz-legend i.is-active{border-color:var(--mint);background:color-mix(in srgb, var(--mint) 30%, var(--bg-2))}.viz-legend i.is-compare{border-color:var(--amber);background:color-mix(in srgb, var(--amber) 24%, var(--bg-2))}.viz-legend i.is-found{border-color:var(--green);background:color-mix(in srgb, var(--green) 34%, var(--bg-2))}.viz-legend i.is-dim{opacity:.4}.viz-guess{animation:viz-in .3s var(--ease) both;gap:8px;display:grid}.viz-guess-q{font:600 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}.viz-guess-opt{text-align:left;font:inherit;color:var(--fg);border:1px solid var(--line-2);background:var(--bg-2);cursor:pointer;border-radius:12px;min-height:44px;padding:11px 14px;font-size:14.5px;line-height:1.45;transition:border-color .2s,background .2s}.viz-guess-opt:hover,.viz-guess-opt:focus-visible{border-color:var(--mint);background:color-mix(in srgb, var(--mint) 8%, var(--bg-2))}.viz-end{border:1px solid color-mix(in srgb, var(--green) 30%, var(--line));background:color-mix(in srgb, var(--green) 5%, var(--bg-2));animation:viz-in .4s var(--ease) both;border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 18px;padding:14px 16px;display:grid}.viz-end p{color:var(--fg-2);margin:4px 0 0;font-size:14px;line-height:1.5}.viz-controls{border:1px solid var(--line);background:var(--bg-2);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 12px;display:flex}.viz-transport{align-items:center;gap:6px;display:flex}.viz-icon-btn{border:1px solid var(--line-2);background:var(--bg-1);width:38px;height:38px;color:var(--fg-2);cursor:pointer;border-radius:11px;place-items:center;transition:border-color .2s,color .2s,background .2s,transform .15s;display:grid}.viz-icon-btn svg,.viz-play svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.viz-icon-btn svg .fill,.viz-play svg .fill{fill:currentColor;stroke:none}.viz-icon-btn:hover:not(:disabled){color:var(--fg);border-color:var(--fg-3)}.viz-icon-btn:active:not(:disabled){transform:scale(.94)}.viz-icon-btn:disabled{opacity:.35;cursor:default}.viz-icon-btn.is-primary{background:var(--mint);border-color:var(--mint);color:var(--on-mint)}.viz-play{background:var(--mint);width:46px;height:46px;color:var(--on-mint);cursor:pointer;box-shadow:0 0 0 4px color-mix(in srgb, var(--mint) 16%, transparent), 0 10px 24px -12px color-mix(in srgb, var(--mint) 90%, transparent);border:0;border-radius:999px;place-items:center;transition:transform .15s,box-shadow .2s;display:grid}.viz-play svg{width:20px;height:20px}.viz-play:hover{box-shadow:0 0 0 6px color-mix(in srgb, var(--mint) 22%, transparent), 0 10px 24px -12px color-mix(in srgb, var(--mint) 90%, transparent)}.viz-play:active{transform:scale(.94)}.viz-tl{cursor:pointer;touch-action:none;border-radius:10px;outline:none;flex:220px;height:38px;position:relative}.viz-tl:focus-visible{box-shadow:0 0 0 2px var(--mint)}.viz-tl.is-off{cursor:default;opacity:.5}.viz-tl-track{background:var(--bg-3);height:6px;box-shadow:inset 0 0 0 1px var(--line);border-radius:99px;margin-top:-3px;position:absolute;top:50%;left:0;right:0;overflow:hidden}.viz-tl-fill{background:linear-gradient(90deg, color-mix(in srgb, var(--mint) 55%, transparent), var(--mint));height:100%;transition:width .25s var(--ease);border-radius:99px}.viz-tl-tick{background:var(--fg-3);opacity:.55;pointer-events:none;border-radius:99px;width:2px;height:2px;margin:-1px 0 0 -1px;position:absolute;top:50%}.viz-tl-tick.on{background:var(--on-mint);opacity:.6}.viz-tl-tick.dec{background:var(--amber);opacity:.9;width:4px;height:4px;margin:-2px 0 0 -2px}.viz-tl-thumb{background:var(--fg);min-width:26px;height:22px;color:var(--bg);font:600 10.5px var(--mono);transition:left .25s var(--ease);pointer-events:none;border-radius:99px;place-items:center;padding:0 6px;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 2px 10px #00000059}.viz-speeds{background:var(--bg-1);border:1px solid var(--line);border-radius:11px;gap:2px;padding:3px;display:flex}.viz-speeds button{font:500 12px var(--mono);min-width:40px;height:30px;color:var(--fg-3);cursor:pointer;background:0 0;border:0;border-radius:8px}.viz-speeds button:hover{color:var(--fg)}.viz-speeds button.on{background:var(--bg-3);color:var(--fg);box-shadow:0 1px 0 var(--line-2)}.viz-guess-toggle{border:1px solid var(--line-2);background:var(--bg-1);height:38px;color:var(--fg-2);font:500 13px var(--sans);cursor:pointer;white-space:nowrap;border-radius:11px;padding:0 14px;transition:border-color .2s,color .2s}.viz-guess-toggle:hover{color:var(--fg);border-color:var(--fg-3)}.viz-guess-toggle.on{border-color:var(--amber);color:var(--amber);background:color-mix(in srgb, var(--amber) 10%, var(--bg-1))}.viz.compact{gap:12px;padding:16px}.viz.compact .viz-body{grid-template-columns:minmax(0,1fr)}.viz.compact .viz-side{position:static}@media (width<=640px){.viz{padding:16px}.viz-head{flex-direction:column}.viz-head-tools{justify-content:flex-start}.viz-say-row{flex-direction:column;align-items:flex-start;gap:8px}.viz-tl{flex-basis:100%;order:9}.viz-controls{justify-content:space-between}.viz-side{position:static}}@keyframes viz-in{0%{opacity:0;transform:translateY(4px)}}.viz-shape{opacity:.9;place-items:center;height:64px;margin:2px 0 6px;display:grid}.viz-shape .viz-trace{width:auto;max-width:100%;height:64px}.viz-shape.mini{place-items:center;display:grid;position:relative;overflow:hidden}.viz-shape.mini .viz-mini-inner{transform-origin:50%;pointer-events:none;width:max-content;position:absolute;top:50%;left:50%;translate:-50% -50%}.viz-shape.mini .viz-label{display:none}@media (prefers-reduced-motion:reduce){.viz *,.viz-shape *{transition:none!important;animation:none!important}}.page.viz-page{max-width:1320px}.pattern-card{transition:transform .25s var(--ease), border-color .25s, box-shadow .25s}.pattern-card:hover{border-color:var(--line-2);box-shadow:0 18px 40px -28px color-mix(in srgb, var(--mint) 45%, transparent);transform:translateY(-2px)}.pay-chip{color:#d4d4d8;min-width:54px;height:34px;font:500 12.5px var(--sans);background:linear-gradient(#1d1d21,#141417);border:1px solid #2f2f34;border-radius:9px;justify-content:center;align-items:center;padding:0 11px;display:inline-flex}.pay-chip img{width:auto;display:block}.momentum{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px;margin:4px 0 18px;display:grid}@media (width<=720px){.momentum{grid-template-columns:minmax(0,1fr)}}.mo-streak,.mo-level{border:1px solid var(--line);background:radial-gradient(120% 100% at 0% 0%, color-mix(in srgb, var(--mint) 8%, transparent), transparent 60%), var(--bg-1);border-radius:16px;padding:16px 18px}.mo-level{background:radial-gradient(120% 100% at 100% 0%, color-mix(in srgb, var(--mint) 9%, transparent), transparent 60%), var(--bg-1);align-content:start;gap:9px;display:grid}.mo-streak{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 14px;display:grid}.mo-flame{width:48px;height:48px;color:var(--fg-3);background:var(--bg-2);border:1px solid var(--line);border-radius:14px;place-items:center;display:grid}.mo-flame.lit{color:var(--mint);background:color-mix(in srgb, var(--mint) 13%, var(--bg-2));border-color:color-mix(in srgb, var(--mint) 40%, transparent);box-shadow:0 0 24px -6px color-mix(in srgb, var(--mint) 60%, transparent)}.mo-flame.lit svg{transform-origin:50% 90%;animation:2.4s ease-in-out infinite flicker}@keyframes flicker{0%,to{transform:scale(1)rotate(0)}30%{transform:scale(1.06,.97)rotate(-2deg)}60%{transform:scale(.97,1.04)rotate(2deg)}}.mo-big{letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:1.1}.mo-big span{color:var(--fg-2);letter-spacing:0;margin-left:1px;font-size:14px;font-weight:500}.mo-week{grid-column:1/-1;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.mo-day{justify-items:center;gap:4px;display:grid}.mo-day i{aspect-ratio:1;width:100%;max-width:34px;font:600 13px var(--sans);background:var(--bg-2);border:1px solid var(--line);color:var(--bg);border-radius:10px;place-items:center;font-style:normal;transition:background .3s,transform .3s;display:grid}.mo-day.done i{background:color-mix(in srgb, var(--mint) 18%, var(--bg-2));border-color:color-mix(in srgb, var(--mint) 55%, transparent);color:var(--mint)}.mo-day.today:not(.done) i{border-color:color-mix(in srgb, var(--mint) 60%, transparent);border-style:dashed}.mo-day.future i{opacity:.45}.mo-day small{font:500 10.5px var(--mono);color:var(--fg-3)}.mo-day.today small{color:var(--fg)}.mo-lv{font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mint)}.mo-bar{background:var(--bg-3,var(--bg-2));border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.mo-bar i{border-radius:inherit;background:linear-gradient(90deg, color-mix(in srgb, var(--mint) 55%, var(--bg-2)), var(--mint));height:100%;box-shadow:0 0 12px color-mix(in srgb, var(--mint) 60%, transparent);transition:width .9s cubic-bezier(.2,.8,.2,1);display:block}.badges{flex-wrap:wrap;gap:6px;display:flex}.badge{min-width:30px;height:30px;font:600 11.5px var(--mono);color:var(--fg-3);background:var(--bg-2);border:1px dashed var(--line-2);border-radius:9px;place-items:center;padding:0 6px;display:grid}.badge.on{color:var(--mint);background:color-mix(in srgb, var(--mint) 14%, var(--bg-2));border:1px solid color-mix(in srgb, var(--mint) 50%, transparent);box-shadow:0 0 14px -6px var(--mint)}.badges.small .badge{border-radius:7px;min-width:24px;height:24px;font-size:10px}.xp-pop{font:600 12.5px var(--mono);color:var(--mint);background:color-mix(in srgb, var(--mint) 14%, transparent);border:1px solid color-mix(in srgb, var(--mint) 40%, transparent);border-radius:999px;margin-left:6px;padding:2px 9px;animation:.9s cubic-bezier(.34,1.56,.64,1) both xp-pop;display:inline-block}.xp-pop.good{color:var(--bg);background:var(--mint)}@keyframes xp-pop{0%{opacity:0;transform:translateY(8px)scale(.6)}60%{opacity:1;transform:translateY(-3px)scale(1.12)}to{transform:none}}.session-bar{flex:1;align-items:center;gap:10px;max-width:360px;margin:0 16px;display:flex}.session-bar .mo-bar{flex:1;height:8px}.session-bar .mono{font-size:12px}.dc-backdrop{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050507b8;place-items:center;padding:20px;animation:.25s both fade;display:grid;position:fixed;inset:0;overflow-y:auto}.dc-card{text-align:center;background:radial-gradient(100% 70% at 50% 0%, color-mix(in srgb, var(--mint) 13%, transparent), transparent 65%), var(--bg-1);border:1px solid var(--line-2);border-radius:22px;justify-items:center;gap:14px;width:min(100%,400px);padding:30px 26px 24px;animation:.6s cubic-bezier(.34,1.56,.64,1) both dc-in;display:grid;position:relative;box-shadow:0 40px 90px -30px #000000e6}.dc-card h2{letter-spacing:-.02em;font-size:26px}.dc-flame{width:76px;height:76px;color:var(--mint);background:color-mix(in srgb, var(--mint) 14%, var(--bg-2));border:1px solid color-mix(in srgb, var(--mint) 40%, transparent);box-shadow:0 0 40px -8px color-mix(in srgb, var(--mint) 60%, transparent);border-radius:24px;place-items:center;display:grid}.dc-flame svg{transform-origin:50% 90%;animation:2s ease-in-out infinite flicker}.dc-week{width:100%;margin:0}.dc-week .mo-day.today i{animation:.7s cubic-bezier(.34,1.56,.64,1) .35s both day-stamp}@keyframes day-stamp{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}@keyframes dc-in{0%{opacity:0;transform:translateY(24px)scale(.94)}}.dc-confetti{pointer-events:none;position:fixed;inset:0;overflow:hidden}.dc-confetti i{border-radius:2px;animation:linear both confetti;position:absolute;top:-12px}@keyframes confetti{to{transform:translateY(105vh)rotate(720deg)}}@media (prefers-reduced-motion:reduce){.mo-flame.lit svg,.dc-flame svg,.xp-pop,.dc-card,.dc-week .mo-day.today i{animation:none}.mo-bar i{transition:none}}.trophies{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:16px;display:grid}.trophy .badge{border-radius:12px;width:40px;height:40px}.trophy{border:1px solid var(--line);background:var(--bg-2);opacity:.7;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.trophy.on{opacity:1;border-color:color-mix(in srgb, var(--mint) 35%, var(--line))}.trophy b{font-size:14px;font-weight:500}.viz-edge{stroke-linecap:round}.viz-edge.is-active{stroke:var(--mint);stroke-width:2.2px}.viz-edge.is-found{stroke:var(--green);stroke-width:2.4px}.viz-ah{fill:var(--fg-3)}.viz-ah-back{fill:var(--amber)}.viz-ah-active{fill:var(--mint)}.viz-ah-found{fill:var(--green)}.viz-ah-compare{fill:var(--amber)}.viz-badge rect{fill:color-mix(in srgb, currentColor 14%, var(--bg-1));stroke:color-mix(in srgb, currentColor 55%, transparent);stroke-width:1px}.viz-badge text{fill:currentColor;font:600 10.5px var(--mono);text-anchor:middle}.viz-node circle{fill:color-mix(in srgb, var(--fg) 4%, var(--bg-2));stroke-width:1.6px}.viz-node.is-active circle{filter:drop-shadow(0 0 7px color-mix(in srgb, var(--mint) 55%, transparent))}.viz-node.is-found circle{filter:drop-shadow(0 0 7px color-mix(in srgb, var(--green) 50%, transparent))}.viz-cell{background:linear-gradient(180deg, color-mix(in srgb, var(--fg) 4%, var(--bg-2)), var(--bg-2))}.viz-stage{align-content:center}.viz-views{justify-content:center;align-items:center}.viz-views>.viz-block,.viz-trace-block{justify-items:center}.viz-legend{justify-content:center}.viz-slow{background:color-mix(in srgb, var(--amber) 7%, var(--bg-2));border-color:color-mix(in srgb, var(--amber) 26%, var(--line));animation:viz-in .3s var(--ease) both}.viz-slow b{color:var(--amber)}.viz-loading{border:1px solid var(--line);background:linear-gradient(100deg, var(--bg-1) 30%, var(--bg-2) 50%, var(--bg-1) 70%);background-size:200% 100%;border-radius:18px;min-height:420px;animation:1.4s linear infinite shimmer}@media (prefers-reduced-motion:reduce){.viz-loading{animation:none}}.moment{z-index:1100;left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));cursor:pointer;background:radial-gradient(120% 120% at 0% 50%, color-mix(in srgb, var(--mint) 16%, transparent), transparent 60%), var(--bg-1);border:1px solid color-mix(in srgb, var(--mint) 40%, var(--line));box-shadow:0 24px 60px -20px #000c, 0 0 30px -10px color-mix(in srgb, var(--mint) 50%, transparent);border-radius:16px;align-items:center;gap:14px;padding:12px 20px 12px 12px;animation:.6s cubic-bezier(.34,1.56,.64,1) both moment-in;display:flex;position:fixed;transform:translate(-50%)}.moment b{margin-top:2px;font-size:15px;font-weight:600;display:block}.moment .label{color:var(--mint)}.moment-big{width:46px;height:46px;color:var(--bg);background:var(--mint);box-shadow:0 0 24px -4px var(--mint);border-radius:14px;place-items:center;font-size:20px;font-weight:700;display:grid;position:relative}.moment-burst{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:35px}.moment-burst i{background:var(--mint);transform-origin:1px 1px;border-radius:2px;width:2px;height:14px;animation:.8s ease-out both burst;position:absolute;top:-1px;left:-1px}@keyframes burst{0%{opacity:0;translate:0}30%{opacity:1}to{opacity:0;translate:0 -34px}}.moment-burst i{translate:0 -34px}.moment-badge{border-radius:14px;width:46px;height:46px;animation:.7s cubic-bezier(.34,1.56,.64,1) .1s both badge-pop}@keyframes badge-pop{0%{opacity:0;transform:scale(.3)rotate(-20deg)}to{opacity:1;transform:none}}@keyframes moment-in{0%{opacity:0;transform:translate(-50%,24px)scale(.92)}}@media (width<=860px){.moment{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}.combo{height:24px;font:600 12px var(--mono);color:var(--bg);background:var(--mint);box-shadow:0 0 16px -4px var(--mint);border-radius:999px;align-items:center;gap:5px;padding:0 10px;animation:.7s cubic-bezier(.34,1.56,.64,1) both xp-pop;display:inline-flex}.reveal-anim .chip.ok{box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent), 0 0 18px -6px var(--green);animation:.6s cubic-bezier(.34,1.56,.64,1) both chip-ok}.reveal-anim .chip.bad{animation:.45s ease-in-out both chip-bad}@keyframes chip-ok{0%{transform:scale(.9)}55%{transform:scale(1.08)}to{transform:none}}@keyframes chip-bad{0%,to{transform:none}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.marks>div>.ok,.marks>div>.bad{animation:.45s cubic-bezier(.34,1.56,.64,1) both mark-in;display:inline-block}.marks>div:nth-child(2)>.ok,.marks>div:nth-child(2)>.bad{animation-delay:.12s}.marks>div:nth-child(3)>.ok,.marks>div:nth-child(3)>.bad{animation-delay:.24s}@keyframes mark-in{0%{opacity:0;transform:scale(0)rotate(-30deg)}}@media (prefers-reduced-motion:reduce){.moment,.moment-badge,.moment-burst i,.combo,.reveal-anim .chip.ok,.reveal-anim .chip.bad,.marks>div>.ok,.marks>div>.bad{animation:none}}.drill-verdict{animation:.45s cubic-bezier(.34,1.56,.64,1) both mark-in;display:inline-block}@media (prefers-reduced-motion:reduce){.drill-verdict{animation:none}}.mo-flame.lit.tier-1{box-shadow:0 0 30px -6px color-mix(in srgb, var(--mint) 75%, transparent)}.mo-flame.lit.tier-2,.mo-flame.lit.tier-3{box-shadow:0 0 34px -4px color-mix(in srgb, var(--mint) 80%, transparent);position:relative}.mo-flame.lit.tier-2:after,.mo-flame.lit.tier-3:after{content:"";border:1.5px solid color-mix(in srgb, var(--mint) 60%, transparent);border-radius:17px;animation:2.4s ease-out infinite ring;position:absolute;inset:-5px}.mo-flame.lit.tier-3{background:color-mix(in srgb, var(--mint) 22%, var(--bg-2));width:54px;height:54px}.mo-flame.lit.tier-3 svg{width:30px;height:30px}@keyframes ring{0%{opacity:.9;transform:scale(.92)}to{opacity:0;transform:scale(1.25)}}.mo-day.stamp i{animation:.7s cubic-bezier(.34,1.56,.64,1) .3s both day-stamp}@media (prefers-reduced-motion:reduce){.mo-flame.lit:after,.mo-day.stamp i{animation:none!important}}.chart-read{color:var(--fg-3);min-height:18px;font-size:12.5px}.chart-read b{color:var(--mint);font-weight:600}.bars.touch{cursor:crosshair;touch-action:pan-y}.bars.touch div{transform-origin:bottom;transition:background .15s,box-shadow .15s;animation:.7s cubic-bezier(.2,.8,.2,1) both bar-rise}.bars.touch div.on{background:var(--mint);box-shadow:0 0 14px -2px var(--mint)}@keyframes bar-rise{0%{transform:scaleY(0)}}.heat{touch-action:pan-y;grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(20,1fr);grid-auto-flow:column;gap:3px;display:grid}.heat span{aspect-ratio:1;border-radius:3px;transition:box-shadow .15s,transform .15s;animation:.5s both fade}.heat span.on{box-shadow:0 0 0 1.5px var(--mint), 0 0 10px -2px var(--mint);z-index:1;position:relative;transform:scale(1.15)}@media (prefers-reduced-motion:reduce){.bars.touch div,.heat span{animation:none}}.ob-steps{gap:6px;display:flex}.ob-steps span{background:var(--line-2);width:18px;height:4px;transition:width .4s var(--ease), background .3s;border-radius:4px}.ob-steps span.done{background:color-mix(in srgb, var(--mint) 55%, var(--line-2))}.ob-steps span.now{background:var(--mint);width:34px}.serif-accent{font-family:var(--serif,Georgia, serif);color:var(--mint);font-style:italic;font-weight:400}.ob-curve{width:100%;height:auto;overflow:visible}.ob-axis{stroke:var(--line-2)}.ob-once{fill:none;stroke:#f08a6c;stroke-width:2.4px;stroke-dasharray:6 6;opacity:.85}.ob-with{fill:none;stroke:var(--mint);stroke-width:3px;stroke-linejoin:round;stroke-dasharray:600;stroke-dashoffset:600px;filter:drop-shadow(0 4px 10px color-mix(in srgb, var(--mint) 45%, transparent));animation:2s cubic-bezier(.4,0,.2,1) .3s forwards ob-draw}.ob-dot{fill:var(--bg-1);stroke:var(--mint);stroke-width:2.5px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.5s cubic-bezier(.34,1.56,.64,1) forwards ob-dot}@keyframes ob-draw{to{stroke-dashoffset:0}}@keyframes ob-dot{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}.ob-points{gap:10px;margin:0;padding:0;list-style:none;display:grid}.ob-points li{color:var(--fg-2);padding-left:18px;font-size:14.5px;line-height:1.5;position:relative}.ob-points li:before{content:"";background:var(--mint);width:7px;height:7px;box-shadow:0 0 10px var(--mint);border-radius:2px;position:absolute;top:8px;left:0}.ob-points b{color:var(--fg);font-weight:600}.ob-count{font-size:17px}@media (prefers-reduced-motion:reduce){.ob-with{stroke-dashoffset:0;animation:none}.ob-dot{opacity:1;animation:none}}.side-top{justify-content:space-between;align-items:flex-start;gap:4px;display:flex}.side-top .brand{white-space:nowrap;min-width:0;overflow:hidden}.side-toggle{width:32px;height:32px;color:var(--fg-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex:none;place-items:center;margin-top:1px;transition:background .15s,color .15s,border-color .15s;display:grid}.side-toggle:hover{color:var(--fg);background:var(--bg-2);border-color:var(--line)}.nav-label{white-space:nowrap;transition:opacity .2s}@media (width>=861px){.shell.collapsed{grid-template-columns:68px minmax(0,1fr)}.shell.collapsed .side{align-items:stretch;padding:18px 10px}.shell.collapsed .side-top{flex-direction:column;align-items:center;gap:6px;margin-bottom:10px}.shell.collapsed .side-top .brand{padding:4px 0 2px}.shell.collapsed .nav-label,.shell.collapsed .plan-chip{display:none}.shell.collapsed .nav-item{justify-content:center;padding:10px 0;position:relative}.shell.collapsed .nav-item .count{height:17px;margin:0;padding:0 5px;font-size:10px;position:absolute;top:2px;right:2px}.shell.collapsed .nav-item .count i{display:none}}@media (width<=860px){.side-toggle{display:none}}.session-bar{flex:1;align-items:center;gap:10px;min-width:0;max-width:520px;margin:0 14px;display:flex}.seg-bar{flex:1;gap:3px;min-width:60px;display:flex}.seg-bar i{background:var(--bg-3);height:8px;transition:background .4s var(--ease), box-shadow .4s;border-radius:4px;flex:1}.seg-bar i.on{background:var(--mint);box-shadow:0 0 8px -2px var(--mint)}.seg-bar i.now{background:color-mix(in srgb, var(--mint) 30%, var(--bg-3));animation:1.6s ease-in-out infinite seg-pulse}@keyframes seg-pulse{50%{background:color-mix(in srgb, var(--mint) 55%, var(--bg-3))}}.sb-count{flex:none;font-size:12px}.sb-xp,.sb-streak{height:24px;color:var(--mint);background:color-mix(in srgb, var(--mint) 12%, transparent);border:1px solid color-mix(in srgb, var(--mint) 35%, transparent);border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.sb-xp .ticking{color:var(--fg)}.sb-sound{border:1px solid var(--line);width:30px;height:30px;color:var(--fg-3);cursor:pointer;background:0 0;border-radius:8px;flex:none;place-items:center;display:grid}.sb-sound:hover{color:var(--fg)}@media (width<=560px){.session-bar{gap:6px;margin:0 8px}.sb-streak,.sb-count{display:none}}@media (prefers-reduced-motion:reduce){.seg-bar i.now{animation:none}}.mo-day.frozen i{background:color-mix(in srgb, var(--blue) 18%, var(--bg-2));border-color:color-mix(in srgb, var(--blue) 50%, transparent);color:var(--blue)}.mo-meta{color:var(--fg-3);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px 14px;margin-top:10px;font-size:12.5px;display:flex}.mo-meta b{color:var(--fg-2);font-weight:600}.mo-shield{align-items:center;gap:5px;display:inline-flex}.mo-shield svg{color:var(--blue)}.mo-mile{flex:140px;align-items:center;gap:8px;min-width:0;display:flex}.mo-mile .mo-bar{flex:1;height:6px}.next-teaser{color:var(--fg-3);font-size:13px}.next-teaser b{color:var(--fg-2);font-weight:500}.btn-soon{border:1px dashed var(--line-2);color:var(--fg-3);cursor:default;background:0 0;justify-content:center}.coffee-line{color:var(--fg-2);font-size:15.5px}.soon-card{border-color:color-mix(in srgb, var(--mint) 35%, var(--line));align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.soon-card .pill{flex:none;margin-top:2px}
