:root{--bg:#080d16;--bg-soft:#0c1420;--surface:#111b29;--surface-2:#1a2738;--surface-3:#223247;--border:#2a3a4e;--border-strong:#43566e;--glass:#0c1420d1;--glass-strong:#090f18f0;--overlay:#05090fc2;--surface-wash:#ffffff0a;--surface-wash-strong:#ffffff14;--shadow-soft:0 18px 60px #00000047;--shadow-deep:0 28px 90px #00000075;--text:#f3efe7;--text-dim:#a5afbc;--accent:#e2ba70;--accent-strong:#f2cf8a;--accent-ink:#241a0c;--accent-wash:#e2ba701f;--accent-wash-strong:#e2ba7033;--correct:#69ce91;--wrong:#ff766f;--wrong-wash:#ff766f1f;--warn:#efbd60;--heat-0:#111b29;--heat-1:#173e34;--heat-2:#23684e;--heat-3:#3c966b;--heat-4:#69ce91;--heat-grid:#435064;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Iowan Old Style", Baskerville, "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-16:4rem;--radius:10px;--radius-lg:18px;--radius-xl:28px;--measure:76rem;--chart-accuracy:#aaa5ff}
*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p,figure,ul,ol{margin:0;padding:0}ul,ol{list-style:none}html{scroll-behavior:smooth;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-padding-top:6rem}body{background:radial-gradient(circle at 8% -10%, var(--accent-wash), transparent 28rem), var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}::selection{background:var(--accent-wash-strong);color:var(--text)}input,button,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.nav{z-index:40;padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--border);background:var(--glass);position:sticky;top:0}.nav-inner{width:100%;max-width:var(--measure);justify-content:space-between;align-items:center;gap:var(--sp-6);margin:0 auto;display:flex}.nav-brand{align-items:center;gap:var(--sp-3);font-family:var(--font-display);color:var(--text);letter-spacing:.02em;font-size:1.12rem;font-weight:700;display:inline-flex}.nav-brand:hover{text-decoration:none}.nav-mark{border:1px solid var(--border-strong);background:var(--accent-wash);width:2rem;height:2rem;color:var(--accent-strong);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1rem;font-style:italic;display:grid}.nav-links{align-items:center;gap:var(--sp-1);padding:var(--sp-1);border:1px solid var(--border);background:var(--surface-wash);border-radius:999px;display:flex}.nav-link{min-height:2.25rem;padding:var(--sp-1) var(--sp-3);color:var(--text-dim);letter-spacing:.01em;border-radius:999px;align-items:center;font-size:.82rem;font-weight:600;display:inline-flex}.nav-link:hover{color:var(--text);background:var(--surface-wash-strong);text-decoration:none}.nav-link[aria-current=page]{color:var(--accent-ink);background:var(--accent)}.page{max-width:var(--measure);padding:var(--sp-10) var(--sp-6) var(--sp-16);margin:0 auto}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:2.75rem;padding:var(--sp-2) var(--sp-5);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:999px;font-size:.9rem;font-weight:650;transition:transform .14s,border-color .14s,background-color .14s;display:inline-flex}.btn:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 8px 24px var(--accent-wash)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}@media (max-width:42rem){.nav{padding:var(--sp-2) var(--sp-3)}.nav-inner{gap:var(--sp-2)}.nav-brand>span:last-child{display:none}.nav-mark{width:1.8rem;height:1.8rem}.nav-link{min-height:2rem;padding-inline:.4rem;font-size:.7rem}.page{padding:var(--sp-6) var(--sp-4) var(--sp-12)}}:root{--sk-chart:240px}.sk-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);animation:1.6s ease-in-out infinite sk-pulse}.sk-text{border-radius:var(--radius);background:var(--surface);height:.9rem;animation:1.6s ease-in-out infinite sk-pulse}.sk-text-lg{height:1.6rem}.sk-w-30{width:30%}.sk-w-50{width:50%}.sk-w-70{width:70%}.sk-chart{height:var(--sk-chart)}.sk-tile{height:5.5rem}@keyframes sk-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.sk-block,.sk-text{animation:none}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
.ul-wrap{min-height:100vh;padding:var(--sp-6);isolation:isolate;background:linear-gradient(90deg, var(--glass-strong), var(--overlay)), url(/backgrounds/0005-midnight-library.webp) center / cover;place-items:center;display:grid;position:relative}.ul-wrap:before{content:"";z-index:-1;background:radial-gradient(circle at center, transparent, var(--overlay));position:fixed;inset:0}.ul-card{width:100%;max-width:28rem;padding:clamp(var(--sp-8), 6vw, var(--sp-12));background:var(--glass-strong);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-deep);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.ul-mark{width:3.5rem;height:3.5rem;margin-bottom:var(--sp-8);border:1px solid var(--border-strong);background:var(--accent-wash);color:var(--accent-strong);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1.25rem;font-style:italic;display:grid}.ul-eyebrow{color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;font-size:.7rem;font-weight:700}.ul-title{margin-top:var(--sp-2);font-family:var(--font-display);letter-spacing:-.05em;font-size:clamp(2.6rem,8vw,4rem);font-weight:500;line-height:1}.ul-hint{margin-top:var(--sp-3);color:var(--text-dim);font-size:.92rem}.ul-form{align-items:stretch;gap:var(--sp-2);margin-top:var(--sp-8);flex-direction:column;display:flex}.ul-label{color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;font-weight:650}.ul-input{width:100%;min-height:3.4rem;padding:var(--sp-3) var(--sp-4);background:var(--bg-soft);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);font-family:var(--font-mono);text-align:left;letter-spacing:.15em}.ul-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}.ul-input[aria-invalid=true]{border-color:var(--wrong)}.ul-input:disabled,.ul-submit:disabled{opacity:.6;cursor:not-allowed}.ul-submit{width:100%;margin-top:var(--sp-3)}.ul-error{margin-top:var(--sp-3);color:var(--wrong);font-size:.85rem;font-family:var(--font-mono)}@media (max-width:34rem){.ul-wrap{padding:var(--sp-4);background-position:66%;place-items:end center}.ul-card{padding:var(--sp-8) var(--sp-6);border-radius:var(--radius-lg)}}@keyframes ul-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.ul-card-failed{animation:.3s ease-in-out ul-shake}@media (prefers-reduced-motion:reduce){.ul-card-failed{animation:none}}
.hm-page,.hm-page>[aria-busy=true]{flex-direction:column;display:flex}.hm-library{gap:var(--sp-6);flex-direction:column;display:flex}.hm-library-head{justify-content:space-between;align-items:end;gap:var(--sp-6);padding-bottom:var(--sp-6);border-bottom:1px solid var(--border);display:flex}.hm-kicker{color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;font-size:.72rem;font-weight:700}.hm-library-title{margin-top:var(--sp-2);font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(2rem,4vw,3.25rem);font-weight:500;line-height:1.05}.hm-library-count{padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);border-radius:999px;flex:none;font-size:.75rem}.hm-grid{gap:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.hm-card{background:radial-gradient(circle at 100% 0, var(--accent-wash), transparent 20rem), var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:18.5rem;box-shadow:var(--shadow-soft);grid-template-columns:5.5rem minmax(0,1fr);transition:transform .18s,border-color .18s;display:grid;overflow:hidden}.hm-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.hm-card-spine{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-3);background:linear-gradient(180deg, var(--accent-wash-strong), transparent), var(--bg-soft);border-right:1px solid var(--border);flex-direction:column;display:flex}.hm-card-monogram{border:1px solid var(--border-strong);width:2.75rem;height:2.75rem;color:var(--accent-strong);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:.95rem;font-style:italic;display:grid}.hm-card-spine-rule{background:var(--border);flex:1;width:1px}.hm-card-spine-copy{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;writing-mode:vertical-rl;font-size:.58rem;transform:rotate(180deg)}.hm-card-body{gap:var(--sp-4);min-width:0;padding:var(--sp-5);flex-direction:column;display:flex}.hm-card-status{width:fit-content;padding:var(--sp-1) var(--sp-2);background:var(--accent-wash);color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;font-size:.65rem;font-weight:700;display:inline-flex}.hm-card-title{max-width:24ch;margin-top:var(--sp-2);font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(1.4rem,2.25vw,1.9rem);font-weight:500;line-height:1.08}.hm-card-author{margin-top:var(--sp-1);color:var(--text-dim);font-size:.85rem}.hm-card-progress{margin-top:auto}.hm-card-progress-labels{justify-content:space-between;align-items:baseline;gap:var(--sp-4);margin-bottom:var(--sp-2);color:var(--text-dim);font-size:.75rem;display:flex}.hm-card-progress-labels strong{color:var(--text);font-family:var(--font-mono);font-size:.86rem}.hm-card-stats{margin-top:var(--sp-2);color:var(--text-dim);font-family:var(--font-mono);font-size:.72rem}.hm-card-foot{justify-content:space-between;align-items:center;gap:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border);display:flex}.hm-card-words,.hm-card-done{color:var(--text-dim);font-family:var(--font-mono);font-size:.72rem}.hm-card-done{color:var(--correct)}.hm-card-action{min-height:2.5rem;padding-inline:var(--sp-4);flex:none}.pb-track{background:var(--surface-3);border-radius:999px;width:100%;height:7px;overflow:hidden}.pb-fill{background:var(--accent);border-radius:inherit;height:100%;box-shadow:0 0 14px var(--accent-wash-strong);transition:width .3s ease-out}.hm-empty{padding:var(--sp-12) var(--sp-6);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-wash)}.hm-empty-title{margin-bottom:var(--sp-2);font-family:var(--font-display);font-size:1.6rem}.hm-empty-hint{max-width:34rem;color:var(--text-dim);margin:0 auto;font-size:.9rem}.hm-empty-hint code{padding:0 var(--sp-1);border-radius:var(--radius);background:var(--surface-2);font-family:var(--font-mono)}@media (max-width:60rem){.hm-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:38rem){.hm-library-head,.hm-card-foot{align-items:flex-start}.hm-library-head{gap:var(--sp-4)}.hm-card{grid-template-columns:3.75rem minmax(0,1fr);min-height:0}.hm-card-spine{padding:var(--sp-4) var(--sp-2)}.hm-card-monogram{width:2.25rem;height:2.25rem;font-size:.78rem}.hm-card-body{gap:var(--sp-4);padding:var(--sp-4)}.hm-card-foot{flex-direction:column}.hm-card-action{width:100%}}@media (prefers-reduced-motion:reduce){.hm-card,.pb-fill{transition:none}}
.cf-page{gap:var(--sp-8);flex-direction:column;display:flex}.cf-header{max-width:42rem;padding-bottom:var(--sp-6);border-bottom:1px solid var(--border)}.cf-eyebrow{color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;font-weight:700}.cf-title{margin-top:var(--sp-2);font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(2.25rem,5vw,3.5rem);font-weight:500;line-height:1}.cf-intro{margin-top:var(--sp-3);color:var(--text-dim);font-size:.95rem}.cf-settings{align-items:start;gap:var(--sp-5);grid-template-columns:minmax(0,2fr) minmax(17rem,.8fr);display:grid}.cf-panel{padding:var(--sp-6);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-soft)}.cf-panel-head{justify-content:space-between;align-items:start;gap:var(--sp-4);margin-bottom:var(--sp-5);display:flex}.cf-panel-title{margin-top:var(--sp-1);font-family:var(--font-display);font-size:1.55rem;font-weight:500;line-height:1.15}.cf-current{color:var(--text-dim);font-family:var(--font-mono);flex:none;font-size:.68rem}.cf-scene-carousel{gap:var(--sp-4);display:grid}.cf-scene-stage{aspect-ratio:16/9;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background-color:var(--bg);background-position:50%;background-size:cover;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a,0 1.4rem 3rem #00000047}.cf-scene-stage:after{content:"";pointer-events:none;background:linear-gradient(#0000,#03070da3);height:28%;position:absolute;inset:auto 0 0}.cf-scene-arrow{z-index:1;color:#fff8e8;cursor:pointer;width:2.8rem;height:3.8rem;font-family:var(--font-display);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#03070dad;border:1px solid #ffffff40;border-radius:999px;place-items:center;font-size:2rem;line-height:1;transition:border-color .14s,background-color .14s,transform .14s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.cf-scene-arrow:hover:not(:disabled){border-color:var(--accent-strong);background:#03070de0;transform:translateY(-50%)scale(1.04)}.cf-scene-arrow-left{left:var(--sp-4)}.cf-scene-arrow-right{right:var(--sp-4)}.cf-scene-count{z-index:1;right:var(--sp-3);bottom:var(--sp-3);color:#fff8e8;font-family:var(--font-mono);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#03070dad;border:1px solid #ffffff2e;border-radius:999px;padding:.3rem .55rem;font-size:.62rem;position:absolute}.cf-scene-selection{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.cf-scene-selection p,.cf-scene-selection span,.cf-scene-selection strong,.cf-scene-selection small{display:block}.cf-scene-selection span{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.62rem}.cf-scene-selection strong{font-family:var(--font-display);margin-top:.2rem;font-size:1.35rem;font-weight:500}.cf-scene-selection small{color:var(--text-dim);margin-top:.2rem;font-size:.7rem}.cf-select-scene{border:1px solid var(--accent);background:var(--accent);min-width:8.5rem;color:var(--bg);cursor:pointer;border-radius:999px;flex:none;padding:.72rem 1rem;font-size:.78rem;font-weight:750;transition:background-color .14s,border-color .14s,transform .14s}.cf-select-scene:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);transform:translateY(-1px)}.cf-select-scene:disabled{border-color:var(--border-strong);background:var(--surface-3);color:var(--text-dim);cursor:default}.cf-thumbnails{gap:var(--sp-2);padding:.2rem 0 var(--sp-2);scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin;scroll-behavior:smooth;display:flex;overflow-x:auto}.cf-thumbnail-item{flex:none}.cf-thumbnail{border:1px solid var(--border);background:var(--bg-soft);cursor:pointer;border-radius:.6rem;width:5.5rem;padding:.2rem;transition:border-color .14s,transform .14s;display:block;position:relative}.cf-thumbnail:hover:not(:disabled){border-color:var(--border-strong);transform:translateY(-2px)}.cf-thumbnail-preview{border-color:var(--accent-strong);box-shadow:0 0 0 1px var(--accent-strong)}.cf-thumbnail-selected:after{border:2px solid var(--surface);background:var(--accent-strong);width:1.1rem;height:1.1rem;color:var(--bg);content:"";border-radius:50%;place-items:center;display:grid;position:absolute;top:-.35rem;right:-.35rem}.cf-thumbnail-selected:before{z-index:1;border:solid var(--bg);content:"";border-width:0 2px 2px 0;width:.25rem;height:.48rem;position:absolute;top:-.15rem;right:0;transform:rotate(45deg)}.cf-thumbnail-image{aspect-ratio:16/9;background-position:50%;background-size:cover;border-radius:.38rem;width:100%;display:block}.cf-scene-arrow:disabled,.cf-thumbnail:disabled,.cf-sound-control:disabled{cursor:wait;opacity:.72}.cf-empty{margin-top:var(--sp-4);color:var(--text-dim);font-size:.82rem}.cf-empty code{font-family:var(--font-mono)}.cf-sound{gap:var(--sp-6);flex-direction:column;display:flex}.cf-panel-copy{margin-top:var(--sp-3);color:var(--text-dim);font-size:.86rem;line-height:1.6}.cf-sound-control{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-wash);color:var(--text);text-align:left;cursor:pointer;display:flex}.cf-sound-control:hover:not(:disabled){border-color:var(--accent)}.cf-sound-control strong,.cf-sound-control small{display:block}.cf-sound-control strong{text-transform:capitalize;font-size:.86rem}.cf-sound-control small{margin-top:var(--sp-1);color:var(--text-dim);font-size:.7rem}.cf-switch-track{border:1px solid var(--border-strong);background:var(--surface-3);border-radius:999px;flex:none;align-items:center;width:3rem;height:1.7rem;padding:.2rem;display:flex}.cf-switch-knob{background:var(--text-dim);border-radius:50%;width:1.15rem;height:1.15rem;transition:transform .14s,background-color .14s}.cf-sound-control[aria-checked=true] .cf-switch-track{background:var(--accent-wash-strong);border-color:var(--accent)}.cf-sound-control[aria-checked=true] .cf-switch-knob{background:var(--accent-strong);transform:translate(1.25rem)}.cf-status{min-height:1.25rem;color:var(--text-dim);font-family:var(--font-mono);grid-column:1/-1;font-size:.72rem}.cf-status-error{color:var(--wrong)}.cf-scenes-skeleton{height:38rem}.cf-sound-skeleton{height:16rem}@media (max-width:66rem){.cf-settings{grid-template-columns:minmax(0,1fr)}}@media (max-width:38rem){.cf-panel{padding:var(--sp-4);border-radius:var(--radius-lg)}.cf-panel-head{flex-direction:column}.cf-scene-selection{flex-direction:column;align-items:stretch}.cf-select-scene{width:100%}.cf-scene-arrow{width:2.4rem;height:3.2rem}.cf-scene-arrow-left{left:var(--sp-2)}.cf-scene-arrow-right{right:var(--sp-2)}}@media (prefers-reduced-motion:reduce){.cf-thumbnails{scroll-behavior:auto}.cf-scene-arrow,.cf-select-scene,.cf-thumbnail,.cf-switch-knob{transition:none}}
.tt-stage{min-height:100vh;padding:var(--sp-12) var(--sp-6) var(--sp-6);isolation:isolate;background-color:#0000;background-image:radial-gradient(110% 100% at 95% 0,#1d2941 0%,#0000 58%),radial-gradient(80% 70% at 0 100%,#27182d 0%,#0000 65%),linear-gradient(155deg,#070b12 0%,#0c1420 52%,#111a28 100%);background-position:50%;background-repeat:repeat,repeat,repeat;background-size:cover;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-items:center;display:grid}.tt-theme-default{background:radial-gradient(110% 100% at 95% 0,#1d2941 0%,#0000 58%),radial-gradient(80% 70% at 0 100%,#27182d 0%,#0000 65%),linear-gradient(155deg,#070b12 0%,#0c1420 52%,#111a28 100%)}.tt-theme-deep-space{background:radial-gradient(120% 90% at 20% 10%,#1a1038 0%,#0000 60%),linear-gradient(160deg,#05060a 0%,#0b1026 60%,#0a0d1c 100%)}.tt-theme-dawn{background:linear-gradient(160deg,#1a0f1f 0%,#3b1d3d 55%,#5c2a3a 100%)}.tt-theme-forest{background:linear-gradient(160deg,#071410 0%,#0d2a1f 55%,#123528 100%)}.tt-theme-ember{background:linear-gradient(160deg,#170a06 0%,#2b1008 55%,#3d1a0c 100%)}.tt-stage-image:before{content:"";background:var(--overlay);pointer-events:none;position:fixed;inset:0}.tt-stage-image .tt-panel{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}.tt-panel{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(120%);backdrop-filter:blur(14px)saturate(120%);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:100%;max-width:72rem;padding:clamp(var(--sp-6), 3vw, var(--sp-8));box-shadow:var(--shadow-deep);position:relative}.tt-head{align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-4);display:flex}.tt-heading{min-width:0}.tt-kicker{margin-bottom:var(--sp-1);color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.13em;text-transform:uppercase;font-size:.68rem;font-weight:700}.tt-title{color:var(--text);font-family:var(--font-display);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:500;line-height:1.1;overflow:hidden}.tt-text{font-family:var(--font-mono);color:var(--text-dim);white-space:pre-wrap;word-break:break-word;font-size:clamp(1rem,1.35vw,1.16rem);line-height:1.78}.tt-surface{cursor:text;outline:none}.tt-surface-blurred .tt-text{opacity:.35}.tt-char{white-space:pre-wrap}.tt-char-correct{color:var(--text)}.tt-char-wrong{color:var(--wrong);text-underline-offset:3px;background:var(--wrong-wash);text-decoration:underline;text-decoration-thickness:2px}.tt-caret{border-left:2px solid var(--accent);margin-left:-2px;animation:1s step-end infinite tt-blink}.tt-caret-end{border-left:2px solid var(--accent)}@keyframes tt-blink{0%,to{border-left-color:var(--accent)}50%{border-left-color:#0000}}@media (prefers-reduced-motion:reduce){.tt-caret{animation:none}}.tt-stats{margin-bottom:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-wash);font-family:var(--font-mono);font-variant-numeric:tabular-nums;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.tt-tile{gap:var(--sp-1);padding:var(--sp-2) var(--sp-4);border-right:1px solid var(--border);flex-direction:column;min-width:0;display:flex}.tt-tile:last-child{border-right:0}.tt-tile-value{color:var(--text);font-size:clamp(1.02rem,1.8vw,1.22rem);line-height:1.1}.tt-tile-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.tt-tile-warn .tt-tile-value{color:var(--warn)}.tt-blocked{margin-top:var(--sp-3);color:var(--warn);font-family:var(--font-mono);font-size:.9rem}.tt-done,.tt-finished{margin-top:var(--sp-3);color:var(--correct);font-family:var(--font-mono)}.tt-finished{margin-bottom:var(--sp-6);font-size:1.05rem}.tt-panel-done{text-align:center}.tt-hint{margin-top:var(--sp-3);color:var(--text-dim);font-family:var(--font-mono);font-size:.75rem}.tt-veil{background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--text);font-family:var(--font-mono);cursor:pointer;border:0;place-items:center;font-size:1rem;display:grid;position:fixed;inset:0}.tt-summary{padding:var(--sp-6);background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;display:grid;position:fixed;inset:0}.tt-summary-card{width:100%;max-width:34rem;padding:clamp(var(--sp-6), 5vw, var(--sp-10));background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-deep);text-align:center}.tt-summary-title{font-family:var(--font-display);color:var(--correct);margin-bottom:var(--sp-6);font-size:1.8rem}.tt-summary-stats{justify-content:center;gap:var(--sp-6);font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.tt-summary-progress{margin-top:var(--sp-8)}.tt-summary-progress-text{margin-top:var(--sp-2);color:var(--text-dim);font-family:var(--font-mono);font-size:.8rem}.tt-summary-actions{justify-content:center;align-items:center;gap:var(--sp-3);margin-top:var(--sp-8);display:flex}.tt-summary-done{color:var(--correct);font-family:var(--font-mono);font-size:.9rem}.tt-save-error{margin-top:var(--sp-4);padding:var(--sp-3);border:1px solid var(--wrong);border-radius:var(--radius);background:var(--wrong-wash);color:var(--wrong);font-family:var(--font-mono);font-size:.85rem}.tt-home{top:var(--sp-4);left:var(--sp-4);z-index:20;align-items:center;gap:var(--sp-2);min-height:2.5rem;padding:var(--sp-1) var(--sp-3);font-family:var(--font-ui);color:var(--text);white-space:nowrap;border:1px solid var(--border);background:var(--glass);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;font-size:.84rem;font-weight:600;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex;position:fixed}.tt-home:hover,.tt-home:focus-visible{background:var(--glass-strong);border-color:var(--accent)}.tt-home:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tt-home-arrow{font-size:1.05rem;line-height:1}.tt-lead{font-family:var(--font-mono);color:var(--text-dim);max-width:72ch;margin-bottom:var(--sp-4);padding-left:var(--sp-4);border-left:2px solid var(--border-strong);opacity:.62;-webkit-user-select:none;user-select:none;font-size:.95rem;font-style:italic;line-height:1.7}@media (max-width:48rem){.tt-stage{padding:4.5rem var(--sp-3) var(--sp-3);align-items:start}.tt-panel{border-radius:var(--radius-lg)}.tt-head{flex-direction:column;align-items:flex-start}.tt-title{white-space:normal}.tt-stats{grid-template-columns:repeat(3,1fr)}.tt-tile{border-bottom:1px solid var(--border)}.tt-tile:nth-child(3){border-right:0}.tt-tile:nth-child(n+4){border-bottom:0}.tt-tile:last-child{border-right:0}.tt-summary-actions{flex-direction:column}.tt-summary-actions .btn{width:100%}}@media (max-width:22rem){.tt-text{line-height:1.78}}
.db-header{margin-bottom:var(--sp-6)}.db-title{font-family:var(--font-mono);letter-spacing:.02em;font-size:1.6rem}.db-section{margin-top:var(--sp-8)}.db-section-title{color:var(--text-dim);margin-bottom:var(--sp-3);font-size:1rem}.db-greeting{font-family:var(--font-mono);letter-spacing:.02em;font-size:1.6rem}.db-subtitle{color:var(--text-dim);margin-top:var(--sp-2)}.db-streak{gap:var(--sp-4);flex-direction:column;display:flex}.db-streak-figures{gap:var(--sp-8);display:flex}.db-figure{align-items:baseline;gap:var(--sp-2);display:flex}.db-figure-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent);font-size:2rem}.db-figure-label{color:var(--text-dim);font-size:.9rem}.db-heatmap-scroll{overscroll-behavior-inline:contain;min-width:0;max-width:100%;padding-bottom:var(--sp-2);overflow-x:auto}.db-heatmap{width:100%;max-width:100%;height:auto;display:block}.db-heatmap-label{fill:var(--text-dim);color:var(--text-dim);font-size:.62rem;font-family:var(--font-mono)}.db-cell{shape-rendering:crispedges}.db-cell-0{fill:var(--heat-0);stroke:var(--heat-grid);stroke-width:1px;background:var(--heat-0);border:1px solid var(--heat-grid)}.db-cell-1{fill:var(--heat-1);background:var(--heat-1)}.db-cell-2{fill:var(--heat-2);background:var(--heat-2)}.db-cell-3{fill:var(--heat-3);background:var(--heat-3)}.db-cell-4{fill:var(--heat-4);background:var(--heat-4)}.db-heatmap-legend{align-items:center;gap:var(--sp-2);color:var(--text-dim);font-size:.75rem;display:flex}.db-swatch{border-radius:2px;width:11px;height:11px;display:inline-block}.db-totals{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid}.db-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4)}.db-tile-label{color:var(--text-dim);font-size:.8rem}.db-tile-value{font-family:var(--font-mono);margin-top:var(--sp-2);font-variant-numeric:tabular-nums;font-size:1.5rem}.db-tile-detail{color:var(--text-dim);margin-top:var(--sp-1);font-size:.8rem}.db-charts{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));display:grid}.db-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4)}.db-chart-title{color:var(--text-dim);margin-bottom:var(--sp-2);justify-content:space-between;align-items:baseline;font-size:.85rem;display:flex}.db-chart-latest{font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;font-size:1.1rem}.db-chart-svg{width:100%;height:auto;display:block}.db-chart-empty{color:var(--text-dim);padding:var(--sp-6) 0;font-size:.9rem}.db-axis{fill:var(--text-dim);font-size:.66rem;font-family:var(--font-mono)}.db-chart-rule{stroke:var(--border);stroke-width:1px}.db-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.db-dot{fill:var(--accent)}.db-table-scroll{overscroll-behavior-inline:contain;max-width:100%;overflow-x:auto}.db-table{border-collapse:collapse;width:100%;font-size:.9rem}.db-table th,.db-table td{text-align:left;padding:var(--sp-3);border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.db-table thead th{color:var(--text-dim);font-size:.8rem;font-weight:500}.db-table tbody th{font-weight:500}.db-table-progress{min-width:10rem}.db-table-percent{color:var(--text-dim);margin-left:var(--sp-2);font-size:.8rem}.db-export{margin-top:var(--sp-4);align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.db-export-link{color:var(--accent)}.db-export-note{color:var(--text-dim);font-size:.8rem}.db-reset-open{font:inherit;color:var(--text-dim);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.db-reset-open:hover{color:var(--wrong)}.db-reset-none{color:var(--text-dim)}.db-reset{gap:var(--sp-2);min-width:18rem;padding:var(--sp-3);border:1px solid var(--wrong);border-radius:var(--radius);background:var(--wrong-wash);flex-direction:column;display:flex}.db-reset-warning{font-size:.8rem;line-height:1.5}.db-reset-export{color:var(--accent)}.db-reset-label{color:var(--text-dim);font-size:.75rem}.db-reset-input{font-family:var(--font-mono);padding:var(--sp-2);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem}.db-reset-actions{gap:var(--sp-2);display:flex}.db-reset-confirm,.db-reset-cancel{font:inherit;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);cursor:pointer;font-size:.8rem}.db-reset-confirm{color:var(--bg);background:var(--wrong);border:1px solid var(--wrong)}.db-reset-confirm:disabled{color:var(--text-dim);border-color:var(--border);cursor:not-allowed;background:0 0}.db-reset-cancel{color:var(--text);border:1px solid var(--border);background:0 0}.db-reset-error{color:var(--wrong);font-size:.8rem}.ch-wrap{width:100%;min-width:0}.ch-svg{width:100%;max-width:80rem;height:auto;margin-inline:auto;display:block;overflow:hidden}.ch-grid{stroke:var(--border);stroke-width:1px;opacity:.72;shape-rendering:crispedges}.ch-axis-label{fill:var(--text-dim);font-family:var(--font-mono);letter-spacing:.02em;font-size:12px}.ch-line{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.ch-line-smooth{stroke-width:1.5px;stroke-dasharray:5 4;opacity:.75}.ch-area{opacity:.08;stroke:none}.ch-dot{stroke:var(--bg);stroke-width:2px;transition:r 80ms}.ch-dot-on{stroke:var(--text)}.ch-bar{rx:5;opacity:.82;transition:opacity .1s,filter .1s}.ch-bar-on{opacity:1;filter:brightness(1.16)drop-shadow(0 5px 8px #0003)}.ch-crosshair{stroke:var(--text-dim);stroke-width:1px;stroke-dasharray:3 3;pointer-events:none}.ch-overlay{fill:#0000;pointer-events:all;cursor:crosshair}.ch-tip{padding:var(--sp-2);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-soft);font-family:var(--font-mono);pointer-events:none;flex-direction:column;gap:2px;font-size:11px;line-height:1.4;display:flex}.ch-tip-label{color:var(--text-dim)}.ch-tip-value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.ch-tip-extra{color:var(--text-dim);font-variant-numeric:tabular-nums}.ch-legend{gap:var(--sp-4);margin-bottom:var(--sp-2);font-family:var(--font-mono);color:var(--text-dim);flex-wrap:wrap;font-size:.8rem;display:flex}.ch-legend-item{align-items:center;gap:var(--sp-1);border:1px solid var(--border);background:var(--surface-wash);border-radius:999px;padding:.3rem .55rem;display:inline-flex}.ch-swatch-dot{border-radius:50%;width:8px;height:8px}.ch-swatch-line{width:14px;height:2px}.ch-empty{padding:var(--sp-6) 0;color:var(--text-dim);font-family:var(--font-mono);text-align:center;font-size:.9rem}.db-chart-title{margin-top:var(--sp-5);margin-bottom:var(--sp-2);font-family:var(--font-mono);color:var(--text-dim);font-size:.85rem;font-weight:600}.db-table-link{align-items:center;gap:var(--sp-1);margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);font-family:var(--font-mono);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.dt{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.85rem}.dt caption,.dt-caption{caption-side:top;text-align:left;padding-bottom:var(--sp-2);color:var(--text-dim);font-size:.8rem;line-height:1.5}.dt th,.dt td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:baseline}.dt thead th{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;background:var(--bg);z-index:1;font-size:.78rem;font-weight:600;position:sticky;top:0}.dt tbody th{color:var(--text);font-weight:400}.dt-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.dt-note{color:var(--text-dim);font-size:.78rem;line-height:1.5}.dt tbody tr:hover{background:var(--surface-wash)}.dt-empty{padding:var(--sp-8) 0;color:var(--text-dim);font-family:var(--font-mono);text-align:center}.db-section:has(.dt){overflow-x:auto}.db-chart-note{margin-top:var(--sp-2);color:var(--text-dim);font-size:.8rem;line-height:1.5}.db-page,.db-page>[aria-busy=true]{gap:var(--sp-5);flex-direction:column;display:flex}.db-header{margin-bottom:var(--sp-3);padding:clamp(var(--sp-6), 5vw, var(--sp-10));background:radial-gradient(circle at 90% 10%, var(--accent-wash-strong), transparent 24rem), var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.db-header:after{content:"";border:1px solid var(--border-strong);width:12rem;height:12rem;box-shadow:0 0 0 2rem var(--surface-wash), 0 0 0 4rem var(--surface-wash);pointer-events:none;border-radius:50%;position:absolute;bottom:-7rem;right:-4rem}.db-header>.sk-text{margin-top:var(--sp-3)}.db-eyebrow{z-index:1;color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;font-size:.7rem;font-weight:700;position:relative}.db-greeting{max-width:20ch;margin-top:var(--sp-2);z-index:1;font-family:var(--font-display);letter-spacing:-.045em;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:500;line-height:1;position:relative}.db-subtitle{max-width:42rem;margin-top:var(--sp-4);z-index:1;font-size:.96rem;line-height:1.7;position:relative}.db-table-link{min-height:2.6rem;margin-top:var(--sp-5);padding:var(--sp-2) var(--sp-4);z-index:1;border-color:var(--border-strong);background:var(--surface-wash);font-family:var(--font-ui);border-radius:999px;font-size:.82rem;font-weight:650;position:relative}.db-table-link:hover,.db-table-link:focus-visible{background:var(--accent-wash);border-color:var(--accent)}.db-section{padding:clamp(var(--sp-5), 3vw, var(--sp-8));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);margin-top:0}.db-section-title{margin-bottom:var(--sp-5);color:var(--text);font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.35rem,3vw,1.8rem);font-weight:500}.db-streak{gap:var(--sp-6)}.db-calendar-layout{align-items:start;gap:var(--sp-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.db-calendar-main{gap:var(--sp-3);min-width:0;display:grid}.db-year-options{align-self:start;gap:var(--sp-1);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-soft);padding:.25rem;display:grid}.db-year-option{border-radius:var(--radius);min-width:5.5rem;color:var(--text-dim);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:center;border:0;padding:.7rem .8rem;font-size:.75rem;text-decoration:none;transition:background-color .14s,border-color .14s,color .14s}.db-year-option:hover{background:var(--surface-wash);color:var(--text)}.db-year-option[aria-current=page]{background:var(--accent-wash);color:var(--accent-strong);box-shadow:inset 2px 0 0 var(--accent-strong)}.db-streak-figures{gap:clamp(var(--sp-6), 6vw, var(--sp-16))}.db-figure-value{color:var(--accent-strong);font-size:clamp(2rem,5vw,3rem);line-height:1}.db-heatmap-scroll{padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft)}.db-totals{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr))}.db-tile{min-height:7rem;padding:var(--sp-4);background:var(--surface-wash);border-color:var(--border);border-radius:var(--radius-lg)}.db-tile-value{color:var(--text);font-size:clamp(1.35rem,3vw,1.8rem)}.db-chart{min-width:0;padding:var(--sp-5);background:linear-gradient(145deg, var(--bg-soft), var(--surface-wash));border-color:var(--border-strong);border-radius:var(--radius-lg);overflow:hidden}.ch-wrap{padding:0}.db-primary-chart,.db-plot-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(145deg, var(--bg-soft), var(--surface-wash));min-width:0;overflow:hidden}.db-primary-chart{margin-bottom:var(--sp-5);padding:clamp(var(--sp-3), 2vw, var(--sp-5))}.db-plot-grid{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.db-plot-card{padding:var(--sp-4);margin:0}.db-plot-card-full{margin-top:var(--sp-3)}.db-plot-card-full .ch-svg{max-width:72rem}.db-plot-heading{justify-content:space-between;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-2);color:var(--text);font-size:.86rem;font-weight:650;display:flex}.db-plot-kicker{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.66rem;font-weight:500}.ch-empty,.db-chart-empty,.dt-empty{padding:var(--sp-10) var(--sp-4);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-wash)}.db-chart-title{margin-top:0;margin-bottom:var(--sp-3);color:var(--text);font-family:var(--font-ui);letter-spacing:.01em;font-size:.86rem}.db-table,.dt{border-collapse:separate;border-spacing:0}.db-table thead th,.dt thead th{background:var(--bg-soft);border-top:1px solid var(--border)}.db-table th:first-child,.db-table td:first-child,.dt th:first-child,.dt td:first-child{border-left:1px solid var(--border)}.db-table th:last-child,.db-table td:last-child,.dt th:last-child,.dt td:last-child{border-right:1px solid var(--border)}.db-table tbody tr:last-child>*,.dt tbody tr:last-child>*{border-bottom:1px solid var(--border)}.db-table th,.db-table td,.dt th,.dt td{padding:var(--sp-3) var(--sp-4)}.dt thead th{z-index:2;top:4.1rem}.db-export{margin-top:var(--sp-6);padding:var(--sp-4);border-radius:var(--radius);background:var(--surface-wash)}.db-export-link{font-weight:650}@media (max-width:64rem){.db-plot-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:44rem){.db-page{gap:var(--sp-4)}.db-header,.db-section{border-radius:var(--radius-lg)}.db-header:after{opacity:.5}.db-streak-figures{align-items:flex-start;gap:var(--sp-3);flex-direction:column}.db-calendar-layout{grid-template-columns:minmax(0,1fr)}.db-year-options{grid-row:1;grid-template-columns:repeat(2,minmax(0,1fr));align-self:stretch}.db-year-option{border-radius:var(--radius);min-width:0}.db-year-option[aria-current=page]{box-shadow:inset 0 -2px 0 var(--accent-strong)}.db-heatmap{width:48rem;max-width:none}.db-primary-chart,.db-plot-card,.db-chart{padding:var(--sp-3)}.db-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.db-tile{min-height:6rem}.db-charts{grid-template-columns:1fr}:is(.db-section:has(.db-table),.db-section:has(.dt)){padding-inline:var(--sp-3)}}@media (max-width:28rem){.db-totals{grid-template-columns:1fr}}

