@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./cormorant-garamond-cyrillic-ext-wght-normal-Bg62sWL9.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./cormorant-garamond-cyrillic-wght-normal-BWCqVJN0.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./cormorant-garamond-vietnamese-wght-normal-CDLFB6hb.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./cormorant-garamond-latin-ext-wght-normal-ltf1AbuM.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./cormorant-garamond-latin-wght-normal-CUoBjw-S.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0f14;--surface:#11151c;--surface-2:#171c25;--text:#eeece7;--muted:#8e8b83;--border:#1f2631;--border-strong:#2f3846;--gold:#cdb07a;--gold-hair:#cdb07a38;--teal:#5fa89e;--rose:#c8584f;--accent:var(--gold);--on-accent:#17120a;--danger-bg:#2a1a1c;--danger-text:#e0a29c;--series-1:#b88a28;--series-2:#1e9c96;--series-3:#c8584f;--series-blank:#7d7b77;--series-dim:#333b49;--chart-grid:#1b222c;--chart-axis:#2f3846;--accent-fill:#cdb07a;--gold-text:#cdb07a;--accent-2:var(--teal);--nav-bg:#0a0d12;--paper-line:#cdb07a0a;--card-shadow:inset 0 1px 0 var(--gold-hair);--btn-hover:brightness(1.08);--mark-hover:brightness(1.25);--grain-opacity:.085;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1.2 0 0 0 -0.46'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--radius:3px;--font-ui:"Figtree Variable", "Segoe UI", sans-serif;--font-display:"Cormorant Garamond Variable", Georgia, serif;--nav-width:232px}*{box-sizing:border-box}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1, "tnum" 1;margin:0;font-size:.97rem;line-height:1.55}:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.nav{z-index:10;width:var(--nav-width);border-right:1px solid var(--border);background:var(--bg);flex-direction:column;gap:2px;padding:28px 14px;display:flex;position:fixed;inset:0 auto 0 0}.brand{font-family:var(--font-display);letter-spacing:.01em;margin:0 0 28px 12px;font-size:1.35rem;font-weight:300}.nav a{border-radius:var(--radius);color:var(--muted);white-space:nowrap;align-items:center;gap:12px;padding:9px 12px;text-decoration:none;transition:color .15s;display:flex}.nav a:hover{color:var(--text)}.nav a.active{color:var(--text);background:var(--surface);box-shadow:inset 2px 0 0 var(--gold)}.nav a.active .icon{color:var(--gold-text)}.nav-short{display:none}.nav .nav-timer{color:var(--gold-text);border:1px solid var(--border-strong);font-variant-numeric:tabular-nums;justify-content:center;margin-top:auto;font-size:.9rem}.page{max-width:880px;margin:0 auto;margin-left:var(--nav-width);margin-right:auto;padding:56px 32px 80px}@media (width>=1240px){.page{margin-left:calc(var(--nav-width) + (100vw - var(--nav-width) - 880px) / 2 - 32px)}}@media (width<=820px){.nav{width:auto;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--border);flex-direction:row;justify-content:space-around;inset:auto 0 0;overflow-x:auto}.brand,.nav-label{display:none}.nav-short{font-size:.68rem;display:block}.nav a{flex-direction:column;gap:2px;padding:6px 8px}.nav a.active{box-shadow:inset 0 2px 0 var(--gold)}.nav .nav-timer{background:var(--bg);margin:0;padding:4px 10px;position:fixed;top:10px;right:12px}.page{margin-left:auto;padding:44px 18px 100px}}h1,h2,h3{font-family:var(--font-display);font-weight:350}h1{letter-spacing:-.01em;margin:0 0 12px;font-size:2.6rem;line-height:1.1}h2{margin:44px 0 10px;font-size:1.5rem;line-height:1.2}.muted{color:var(--muted)}.error-banner{border-left:2px solid var(--danger-text);background:var(--danger-bg);color:var(--danger-text);margin:12px 0;padding:10px 14px}.notice{border-left:2px solid var(--teal);background:var(--surface);padding:10px 14px}.error-banner.pending{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.actions{gap:8px;display:flex}.card{flex-direction:column;gap:18px;max-width:460px;margin:28px 0;padding:0;display:flex}label{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}select,input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:9px 10px;transition:border-color .15s}select:focus-visible,input:focus-visible{border-color:var(--teal);outline:none}.row{gap:14px;display:flex}.row label{flex:1;min-width:0}.row input{width:100%;min-width:0}button{font:inherit;color:var(--on-accent);background:var(--accent-fill);border:1px solid var(--accent-fill);border-radius:var(--radius);cursor:pointer;padding:10px 18px;font-weight:600;transition:filter .15s}button:hover:not(:disabled){filter:var(--btn-hover)}button:disabled{opacity:.4;cursor:not-allowed}button.secondary{color:var(--text);border-color:var(--border-strong);background:0 0}button.small{padding:4px 10px;font-size:.8rem}.timer-card{flex-direction:column;align-items:center;gap:24px;margin:28px 0;display:flex}.dial{aspect-ratio:1;--dial-color:var(--gold-text);width:min(100%,340px);margin:0 auto;position:relative}.dial-break{--dial-color:var(--teal)}.dial svg{width:100%;height:100%}.tick{stroke:var(--border-strong);stroke-linecap:round;transition:stroke .4s}.tick.lit{stroke:var(--dial-color)}.tick.leading{stroke:var(--text)}.dial-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.timer{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:clamp(3.2rem,14vw,4.6rem);font-weight:200;line-height:1}.timer.idle{color:var(--muted)}.dial-label{max-width:60%;color:var(--muted);margin:10px 0 0;font-size:.85rem}form.card .dial{margin-bottom:8px}.nav-timer{font-variant-numeric:tabular-nums}.list{border-top:1px solid var(--border);max-width:640px;margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 2px;display:flex}.card-title{margin:0}.net{color:var(--teal)}.resources{max-width:640px}.list li.resource{flex-direction:column;align-items:stretch}.resource-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.badge{color:var(--muted);border:1px solid var(--border-strong);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.75rem}.resume{align-items:flex-end;gap:12px;display:flex}.resume label{flex:1}.subject-section{max-width:640px}.list.topics li{padding:9px 2px}.inline-form{flex:1;gap:8px;margin:8px 0 0;display:flex}.list .inline-form{margin:0}.inline-form input{flex:1;min-width:0}.filters{flex-wrap:wrap;align-items:flex-end;gap:16px;margin:20px 0 4px;display:flex}.range-buttons{flex-wrap:wrap;gap:8px;display:flex}.range-buttons button{padding:8px 14px}.subject-filter{min-width:220px}.filter-note{margin:4px 0 16px;font-size:.85rem}.is-loading{opacity:.55;transition:opacity .15s}.kpis{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin-bottom:28px;display:grid}.tile{flex-direction:column;gap:2px;padding:18px 16px;display:flex}.tile+.tile{border-left:1px solid var(--border)}.tile strong{font-family:var(--font-display);white-space:nowrap;font-size:clamp(1.5rem,2.3vw,2.1rem);font-weight:300;line-height:1.2}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:40px 32px;display:grid}.chart-card{min-width:0}.chart-card header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.chart-card h3{margin:0;font-size:1.2rem}.chart-card header p{margin:2px 0 0;font-size:.82rem}.chart-box{position:relative}.empty{text-align:center;margin:24px 0}.table-wrap{max-height:280px;overflow:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:.9rem}.table-wrap th,.table-wrap td{text-align:left;border-bottom:1px solid var(--chart-grid);padding:6px 8px}.table-wrap th{background:var(--bg);color:var(--muted);font-weight:500;position:sticky;top:0}.table-wrap td{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.week-bars{width:min(100%,460px);margin:16px 0 32px;display:block;overflow:visible}.bar-label{fill:var(--muted);font-family:var(--font-ui);font-size:10px}.home-actions{align-items:center;gap:24px;display:flex}.button-link{color:var(--on-accent);background:var(--accent-fill);border-radius:var(--radius);padding:10px 18px;font-weight:600;text-decoration:none}.button-link:hover{filter:var(--btn-hover)}.text-link{color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:4px}.text-link:hover{color:var(--text)}.list li button,.resume button{padding:6px 12px;font-size:.85rem}.badge{font-family:var(--font-ui)}.svg-chart{width:100%;position:relative}.svg-chart svg{display:block;overflow:visible}.grid-line{stroke:var(--chart-grid);stroke-width:1px}.axis-line{stroke:var(--chart-axis);stroke-width:1px}.axis-text{fill:var(--muted);font-family:var(--font-ui);font-size:11px}.axis-text.dim{opacity:.5}.row-text{fill:var(--text);font-family:var(--font-ui);font-size:12px}.value-text{fill:var(--text);font-family:var(--font-ui);font-variant-numeric:tabular-nums;font-size:11px}.crosshair{stroke:var(--chart-axis);stroke-width:1px}.mark{transition:filter .12s}.mark-hover{filter:var(--mark-hover)}.chart-tip{z-index:2;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;flex-direction:column;gap:2px;min-width:120px;padding:8px 12px;font-size:.82rem;display:flex;position:absolute;transform:translateY(-100%)}.chart-tip-title{color:var(--muted)}.chart-tip-line{align-items:center;gap:6px;display:flex}.chart-tip i,.chart-legend i{border-radius:2px;width:8px;height:8px;display:inline-block}.chart-legend{color:var(--muted);gap:18px;margin:0 0 8px;padding:0;font-size:.82rem;list-style:none;display:flex}.chart-legend li{align-items:center;gap:6px;display:flex}@media (width<=820px){.kpis{grid-template-columns:repeat(2,1fr)}.tile:nth-child(odd){border-left:0}.tile:nth-child(n+3){border-top:1px solid var(--border)}.tile{padding:14px 10px}.tile strong{font-size:1.45rem}}.resource-title{min-width:0}.resource-title .muted{overflow-wrap:anywhere}.list li.resource.is-done{opacity:.7}.list li.resource.is-done progress::-webkit-progress-value{background:var(--series-blank)}.breadcrumb ol{flex-wrap:wrap;gap:4px 0;margin:0 0 20px;padding:0;font-size:.88rem;list-style:none;display:flex}.breadcrumb li+li:before{content:"›";color:var(--border-strong);margin:0 10px}.breadcrumb a{color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:4px}.breadcrumb a:hover,.breadcrumb [aria-current=page]{color:var(--text)}.stat-list{--name-col:minmax(0, 1.7fr);margin-bottom:8px}.stat-head,.stat-row{grid-template-columns:var(--name-col) repeat(var(--cols), minmax(0, 1fr));align-items:center;gap:12px;display:grid}.stat-head{color:var(--muted);padding:0 8px 8px;font-size:.8rem}.stat-list ul{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.stat-list li{border-bottom:1px solid var(--border)}.stat-row{color:inherit;font-variant-numeric:tabular-nums;padding:13px 8px;text-decoration:none}a.stat-row{transition:background-color .15s}a.stat-row:hover{background:var(--surface)}.stat-list li.is-muted{opacity:.5}.stat-list li.is-muted .stat-row{padding-block:8px}.stat-list li.is-muted:hover{opacity:.9}.stat-name{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.stat-name small{font-size:.78rem}.stat-cell{align-items:center;gap:10px;display:flex}.stat-bar{background:var(--border-strong);border-radius:2px;flex:1;min-width:24px;max-width:90px;height:3px;position:relative;overflow:hidden}.stat-bar i{background:var(--series-2);position:absolute;inset:0 auto 0 0}.last-studied{margin:4px 0 24px}.distribution-bar{gap:2px;height:10px;margin:12px 0;display:flex}.distribution-bar i{border-radius:2px;min-width:2px}.distribution .chart-legend{flex-wrap:wrap;font-size:.9rem}.chart-grid.spaced{margin-top:28px}@media (width<=820px){.stat-head{display:none}.stat-row{grid-template-columns:1fr 1fr;gap:6px 14px}.stat-name{grid-column:1/-1}.stat-cell:before{content:attr(data-label);color:var(--muted);margin-right:auto;font-size:.78rem}.stat-cell{justify-content:space-between}.stat-bar{display:none}}:root{--doodle:#cdb07a4d;--doodle-strong:#cdb07a80}.doodle{color:var(--doodle);display:block}.doodle *{vector-effect:non-scaling-stroke}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:36px 16px;display:flex}.empty-state .doodle{color:var(--doodle-strong);margin-bottom:14px}.empty-state.compact{padding:18px 8px}.empty-title{font-family:var(--font-display);margin:0;font-size:1.45rem;font-weight:500}.empty-hint{max-width:34ch;margin:0}.empty-state.compact .empty-title{font-size:1.2rem}body{background-color:var(--bg);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, var(--paper-line) 35px, var(--paper-line) 36px);background-attachment:fixed}body:after{content:"";z-index:100;pointer-events:none;opacity:var(--grain-opacity);background-image:var(--grain);position:fixed;inset:0}h1,h2,h3{font-weight:500}h1{letter-spacing:.005em;text-wrap:balance;font-size:clamp(2.3rem,1.5rem + 2.2vw,3.3rem);line-height:1.05}h2{background:linear-gradient(var(--gold-text), var(--gold-text)) left bottom / 32px 1px no-repeat;box-shadow:inset 0 -1px 0 var(--border);margin:48px 0 18px;padding-bottom:12px;font-size:1.75rem}.label,label,.tile .muted,.stat-head span,.table-wrap th{font-family:var(--font-ui);color:var(--muted);font-size:.85rem;font-weight:500}.panel-label{font-family:var(--font-display);color:var(--text);font-size:1.22rem;font-weight:500;line-height:1.2}label input,label select{font-family:var(--font-ui);text-transform:none;letter-spacing:normal;font-size:.97rem;font-weight:400}.badge{font-family:var(--font-ui);border-radius:2px}.card,.chart-card,.panel,.kpis,.list li.resource{border:1px solid var(--border);background:var(--surface);box-shadow:var(--card-shadow);border-radius:3px}.card{gap:20px;padding:28px}.card .row label,.card label{min-width:0}select,input{background:var(--bg);border-color:var(--border-strong);border-radius:3px;padding:10px 12px;transition:border-color .16s,background-color .16s}select:hover,input:hover{border-color:var(--gold-text)}select:focus-visible,input:focus-visible{border-color:var(--gold-text);box-shadow:0 0 0 1px var(--gold-hair)}.chart-card{padding:22px 24px}.chart-grid{gap:24px}.kpis{margin-bottom:36px}.tile{padding:20px 22px}.tile+.tile{border-left-color:var(--border)}.list.resources{border-top:0;max-width:680px}.list li.resource{margin-bottom:16px;padding:22px 24px}button,.button-link{letter-spacing:.02em;border-radius:3px;transition:filter .16s,border-color .16s,color .16s,background-color .16s}button.secondary{border-color:var(--border-strong)}button.secondary:hover:not(:disabled){border-color:var(--gold-text);color:var(--gold-text)}.button-link{display:inline-block}.nav{background:var(--nav-bg)}.brand{letter-spacing:.02em;margin:0 0 24px 12px;padding-bottom:14px;font-size:1.8rem;font-weight:500;position:relative}.brand:after{content:"";background:var(--gold-text);width:32px;height:1px;position:absolute;bottom:0;left:0}.nav a{transition:color .16s,background-color .16s}.timer{font-size:clamp(3.4rem,14vw,4.9rem);font-weight:400}.dial-label{font-family:var(--font-display);font-size:1.05rem;font-style:italic;font-weight:500}.panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0 8px;display:grid}.panel{padding:22px 26px;transition:border-color .16s}.panel:hover{border-color:var(--border-strong)}.panel-wide{grid-column:1/-1}.panel-label{box-shadow:none;background:0 0;margin:0 0 12px;padding:0}.value{font-family:var(--font-display);font-size:2.5rem;font-weight:500;line-height:1.1;display:block}.value small{color:var(--muted);font-size:1.15rem;font-weight:500}.today-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 28px;display:grid}.today-grid .label{margin-top:6px;display:block}.panel-note{color:var(--muted);margin:10px 0 0;font-size:.9rem}.change-up{color:var(--teal)}.change-down{color:var(--rose)}.change-new,.change-flat{color:var(--text)}.solved-counter{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:18px 0 4px;display:flex}.solved-number{font-family:var(--font-display);font-size:2.8rem;font-weight:500;line-height:1}.solved-label{color:var(--muted)}.solved-last{text-align:right;flex-direction:column;align-items:flex-end;margin-left:auto;font-size:.92rem;display:flex}.resume{border-top:1px solid var(--border);align-items:flex-end;margin-top:14px;padding-top:16px}.week-bars .bar{fill:var(--series-dim)}.week-bars .bar.today{fill:var(--gold)}@media (width<=820px){.panels{grid-template-columns:1fr}.today-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:22px}.solved-last{text-align:left;align-items:flex-start;margin-left:0}}.daily-quote{border-left:1px solid var(--gold-text);margin:24px 0 8px;padding:4px 0 4px 22px}.daily-quote .panel-label{margin-bottom:8px;display:block}.daily-quote blockquote{font-family:var(--font-display);color:var(--text);text-wrap:balance;margin:0;font-size:1.55rem;font-style:italic;font-weight:500;line-height:1.3}.daily-quote figcaption{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:10px;font-size:.9rem;display:flex}.daily-quote cite{font-style:normal}.focus-sound{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px 16px;width:100%;max-width:520px;display:grid}.focus-sound .panel-note{grid-column:1/-1;margin:0}.focus-sound input[type=range]{width:100%;accent-color:var(--accent-fill);background:0 0;border:none;margin-top:14px;padding:0}.focus-sound label.is-off{opacity:.5}@media (width<=820px){.daily-quote blockquote{font-size:1.3rem}.focus-sound{grid-template-columns:1fr}}.brand-track{font-family:var(--font-ui);letter-spacing:.02em;color:var(--gold-text);margin-top:2px;font-size:.72rem;font-weight:500;display:block}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);max-width:100%;display:inline-flex;overflow:hidden}.segmented button{min-width:0;color:var(--text);text-align:center;background:0 0;border:0;border-radius:0;flex:1 1 0;margin:0;padding:8px 16px}.segmented button+button{border-left:1px solid var(--border-strong)}.segmented button.active{color:var(--on-accent);background:var(--accent-fill)}.segmented button:hover:not(:disabled):not(.active){filter:none;background:var(--surface-2)}.segmented button:disabled:not(.active){opacity:.55;cursor:not-allowed}.segmented-title{font-weight:600;display:block}.track-switcher.detailed .segmented{width:100%;display:flex}.track-switcher.detailed .segmented button{text-align:left;padding:12px 14px}.segmented-hint{opacity:.8;margin-top:3px;font-size:.8rem;line-height:1.35;display:block}.track-switcher .small{margin:6px 0 0;font-size:.82rem}.track-intro{margin-bottom:18px}@media (width<=560px){.track-switcher.detailed .segmented{flex-direction:column}.track-switcher.detailed .segmented button{flex:none}.track-switcher.detailed .segmented button+button{border-left:0;border-top:1px solid var(--border-strong)}}.subject-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.subject-head h2{margin-bottom:4px}.subject-head .actions{gap:6px;display:inline-flex}.new-subject{max-width:640px;margin:4px 0 20px}.inline-form .group-input{flex:0 200px}@media (width<=560px){.inline-form.new-subject,.inline-form.subject-edit{flex-wrap:wrap}.inline-form.new-subject input,.inline-form.subject-edit input{flex:100%}}:where(a:link,a:visited){color:var(--accent-2)}@media (width<=820px){.nav a{flex:1 1 0;min-width:0;padding:6px 2px}.nav-short{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}}@media (width<=400px){.nav-short{font-size:.62rem}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{-moz-osx-font-smoothing:grayscale}@media (width<=820px){.panels{grid-template-columns:minmax(0,1fr)}}.panel{min-width:0}input[type=file]{max-width:100%}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lede{max-width:62ch}.optional{font-family:var(--font-ui);text-transform:none;letter-spacing:normal;color:var(--muted);font-size:.78rem;font-weight:400}.field{flex-direction:column;gap:8px;display:flex}.form-actions{flex-wrap:wrap;gap:10px;display:flex}.small-note{font-size:.86rem}.strip-class,.block-class{background-color:var(--surface-2);background-image:repeating-linear-gradient(135deg, var(--gold-hair) 0 1px, transparent 1px 6px)}.day-picker{flex-wrap:wrap;gap:6px;display:flex}.day-chip{min-width:46px;color:var(--muted);border:1px solid var(--border-strong);background:0 0;padding:7px 0;font-size:.88rem;font-weight:500}.day-chip:hover:not(:disabled){filter:none;color:var(--text);border-color:var(--gold-text)}.day-chip.on{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill)}.strip-panel{margin:28px 0 8px;padding:24px 26px 18px}.week-strip{flex-direction:column;gap:7px;display:flex}.strip-row,.strip-axis{grid-template-columns:44px minmax(0,1fr) 92px;align-items:center;gap:14px;display:grid}.strip-day{font-family:var(--font-display);font-size:1.15rem;font-weight:500}.strip-track{border-top:1px solid var(--border);border-bottom:1px solid var(--border);height:34px;position:relative}.strip-class,.strip-gap{align-items:center;min-width:2px;display:flex;position:absolute;top:3px;bottom:3px;overflow:hidden}.strip-class{border:1px solid var(--border-strong);border-radius:2px}.strip-group{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.strip-label{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 6px);color:var(--text);background:var(--surface);border-radius:2px;padding:1px 6px;font-size:.72rem;font-weight:500;overflow:hidden}.strip-text{white-space:nowrap;text-overflow:ellipsis;padding:0 6px;font-size:.74rem;overflow:hidden}.strip-gap{color:var(--gold-text);background:linear-gradient(var(--gold-hair), var(--gold-hair)) center bottom / calc(100% - 8px) 1px no-repeat;justify-content:center}.strip-group.narrow,.strip-gap.narrow .strip-text{display:none}.strip-total{color:var(--muted);text-align:right;font-size:.78rem;line-height:1.3}.strip-total b{color:var(--text);font-weight:600}.strip-axis{margin-top:2px}.strip-ticks{height:16px;position:relative}.strip-ticks span{color:var(--muted);font-size:.7rem;position:absolute;transform:translate(-50%)}.strip-summary{border-top:1px solid var(--border);max-width:70ch;margin:18px 0 0;padding-top:14px}.strip-summary b{font-weight:600}.day-window{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:.9rem;display:flex}.day-window input{width:8.6em;padding:6px 8px}.class-form{max-width:640px}.class-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;display:grid}.class-form-grid .span-2{grid-column:span 2}.class-form-grid input{width:100%}.used-spans{flex-wrap:wrap;align-items:center;gap:6px;margin:16px 0 0;font-size:.86rem;display:flex}.span-chip{color:var(--text);border:1px dashed var(--border-strong);background:0 0;padding:4px 10px;font-size:.82rem;font-weight:500}.span-chip:hover:not(:disabled){filter:none;border-color:var(--gold-text)}.class-form .form-actions{margin-top:22px}.class-day h2{margin-top:36px}.class-list li{justify-content:flex-start}.class-list li.is-editing{box-shadow:inset 2px 0 0 var(--gold-text);padding-left:12px}.class-time{width:7.5em;font-family:var(--font-display);flex:none;font-size:1.1rem;font-weight:500}.class-name{overflow-wrap:anywhere;flex:1;min-width:0}.class-list .actions{flex:none}@media (width<=820px){.strip-panel{padding:18px 14px 14px}.strip-row,.strip-axis{grid-template-columns:34px minmax(0,1fr);gap:8px}.strip-group.mid,.strip-total,.strip-axis>span:last-child{display:none}.class-list li{flex-wrap:wrap}.class-time{width:auto}}@media (width>=821px){.page:has(.week-planner){max-width:none}}@media (width>=1240px){.page:has(.week-planner){max-width:1180px;margin-left:max(var(--nav-width), calc(var(--nav-width) + (100vw - var(--nav-width) - 1180px) / 2 - 32px))}}.week-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin:26px 0 18px;display:flex}.week-summary{margin:0}.week-summary b{font-weight:600}.day-tabs{width:100%;margin-bottom:14px;display:flex}.day-tabs button{padding:8px 0}.day-tabs button.is-today:not(.active){color:var(--gold-text)}.week-grid{--gutter:44px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--card-shadow);border-radius:3px}.week-head,.week-body{grid-template-columns:var(--gutter) repeat(var(--cols), minmax(0, 1fr));display:grid}.week-head{z-index:3;background:var(--surface);border-bottom:1px solid var(--border-strong);position:sticky;top:0}.day-head{border-left:1px solid var(--border);flex-direction:column;gap:6px;padding:12px 10px 10px;display:flex}.day-name{font-family:var(--font-display);align-items:baseline;gap:8px;font-size:1.3rem;font-weight:500;line-height:1;display:flex}.day-date{font-family:var(--font-ui);color:var(--muted);font-size:.74rem}.day-head.is-today .day-name{color:var(--gold-text)}.day-meter{height:5px;display:block;position:relative}.day-meter.empty i{display:none}.day-meter i{max-width:100%;position:absolute;inset:0 auto 0 0}.day-meter .planned{border:1px solid var(--gold-text);opacity:.55}.day-meter .done{background:var(--gold-text)}.day-figures{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.week-body,.gutter.hours{position:relative}.gutter.hours span{font-family:var(--font-display);color:var(--muted);font-size:1rem;font-weight:500;position:absolute;right:8px;transform:translateY(-.55em)}.gutter.hours span:first-child{transform:translateY(2px)}.day-col{border-left:1px solid var(--border);background-image:linear-gradient(var(--border) 1px, transparent 1px);background-size:100% var(--hour);cursor:copy;position:relative}.day-col:before{content:"";background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour) / 2 - 1px), var(--chart-grid) calc(var(--hour) / 2 - 1px), var(--chart-grid) calc(var(--hour) / 2), transparent calc(var(--hour) / 2), transparent var(--hour));pointer-events:none;position:absolute;inset:0}.day-col.is-today{background-color:var(--surface-2)}.block{z-index:1;min-height:14px;font:inherit;text-align:left;color:var(--text);cursor:pointer;border-radius:2px;flex-direction:column;gap:1px;margin:0;padding:4px 7px;font-size:.78rem;font-weight:400;line-height:1.25;text-decoration:none;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}.block:hover:not(:disabled){filter:none;border-color:var(--gold-text)}.block-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.block-time{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.block.short{flex-direction:row;align-items:center;padding-top:0;padding-bottom:0}.block.short .block-time{display:none}.block-class{border:1px solid var(--border-strong);cursor:default}.block-class .block-title{font-weight:500}.block-study{background:var(--surface);border:1px solid var(--border-strong);box-shadow:inset 3px 0 0 var(--gold-text);padding-left:10px}.block-break{border:1px dashed var(--teal);color:var(--teal);background:0 0}.block-break .block-time{color:var(--teal);opacity:.85}.block-other{background:var(--surface-2);border:1px solid var(--border-strong)}.block.clash{z-index:2;border:1px dashed var(--rose);left:50%}.now-line{z-index:2;border-top:1px solid var(--gold-text);pointer-events:none;height:0;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--gold-text);border-radius:50%;width:7px;height:7px;position:absolute;top:-4px;left:-4px}.week-legend{color:var(--muted);flex-wrap:wrap;gap:8px 22px;margin:16px 0 0;padding:0;font-size:.84rem;list-style:none;display:flex}.week-legend li{align-items:center;gap:8px;display:flex}.week-legend i{border-radius:2px;width:22px;height:12px;display:inline-block}.week-legend .block-study{padding:0}.plan-editor{width:min(440px,100vw - 32px);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:3px;padding:0;box-shadow:0 24px 60px #00000059}.plan-editor::backdrop{background:#06080c8c}.plan-editor form{flex-direction:column;gap:18px;padding:24px 26px 26px;display:flex}.plan-editor h2{margin:0}.plan-editor .segmented{width:100%;display:flex}.plan-editor select,.plan-editor input,.plan-editor .row input{width:100%}button.secondary.danger{color:var(--rose);margin-left:auto}button.secondary.danger:hover:not(:disabled){color:var(--rose);border-color:var(--rose)}@media (width<=820px){.week-grid{--gutter:38px}.day-head{flex-flow:wrap;align-items:center;gap:6px 14px}.day-meter{flex:1;min-width:80px}.week-toolbar .actions{width:100%}.week-toolbar .actions button{flex:1}.block{font-size:.85rem}}@media (prefers-reduced-motion:reduce){.class-form{scroll-behavior:auto}}:root{--ease-out:cubic-bezier(.22, .8, .24, 1);--ease-spring:cubic-bezier(.34, 1.4, .5, 1)}.route{animation:route-in .38s var(--ease-out) both}@keyframes route-in{0%{opacity:0;transform:translateY(10px)}}button,.button-link{transition:filter .16s ease, border-color .16s ease, color .16s ease, background-color .2s ease, transform .18s var(--ease-spring)}button:active:not(:disabled),.button-link:active{transition-duration:60ms;transform:scale(.97)}.panel,.chart-card,.list li.resource{transition:border-color .24s ease, box-shadow .3s ease, transform .3s var(--ease-out)}.text-link{background:linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) left bottom / 100% 1px no-repeat;transition:background-size .3s var(--ease-out), color .2s ease;text-decoration:none}.text-link:hover{background-size:100% 1px,100% 1px}.brand-track{font-size:.82rem}input[type=file]{color:var(--muted);padding:6px;font-size:.9rem}input[type=file]::file-selector-button{font:inherit;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;background:0 0;margin-right:12px;padding:7px 14px;font-weight:600;transition:border-color .16s}input[type=file]::file-selector-button:hover{border-color:var(--gold-text)}.nav-more,.nav-scrim,.nav-sheet{display:none}@media (width<=820px){.nav{justify-content:space-between;overflow:visible}.nav .nav-item.secondary{display:none}.nav a,.nav-more{flex:1 1 0;min-width:0}.nav-short{font-size:.72rem}.nav-more{color:var(--muted);border-radius:var(--radius);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;font-weight:400;display:flex}.nav-more:hover:not(:disabled){filter:none;color:var(--text)}.nav-more[aria-expanded=true],.nav-more.active{color:var(--text)}.nav-more.active{box-shadow:inset 0 2px 0 var(--gold)}.nav-more.active .icon{color:var(--gold-text)}.nav-scrim{z-index:-1;background:#05070a73;border:0;border-radius:0;padding:0;animation:.2s both fade-in;display:block;position:fixed;inset:0}.nav-scrim:active{transform:none}.nav-sheet{background:var(--surface);border:1px solid var(--border-strong);transform-origin:100% 100%;animation:sheet-in .32s var(--ease-spring) both;border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:10px;display:grid;position:absolute;bottom:calc(100% + 10px);left:10px;right:10px;box-shadow:0 18px 40px #0000004d}.nav .nav-sheet a{color:var(--text);flex-direction:row;gap:10px;padding:12px;font-size:.92rem}.nav .nav-sheet a.active{box-shadow:inset 2px 0 0 var(--gold)}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}@media (prefers-reduced-motion:reduce){.route,.nav-sheet,.nav-scrim{animation:none}button:active:not(:disabled),.button-link:active{transform:none}}.countdown{align-items:baseline;gap:14px;margin:4px 0 18px;display:flex}.countdown-days{font-family:var(--font-display);color:var(--gold-text);font-variant-numeric:lining-nums tabular-nums;font-size:clamp(2.6rem,2rem + 2vw,3.4rem);font-weight:600;line-height:1}.countdown-text{flex-direction:column;font-size:.95rem;display:flex}.countdown-weeks{font-size:.82rem}.countdown-invite{margin:0 0 14px;font-size:.9rem}.goal-bar{align-items:center;gap:12px;margin-top:18px;display:flex}.goal-track{background:var(--series-dim);border-radius:999px;flex:1;height:6px;overflow:hidden}.goal-track span{background:var(--accent-fill);border-radius:inherit;height:100%;transition:width .6s var(--ease-out);display:block}.goal-bar.reached .goal-track span{background:var(--teal)}.goal-text{color:var(--muted);flex:none;font-size:.85rem}.review-list{margin:0;padding:0;list-style:none}.review-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.review-list li:first-child{border-top:0}.review-topic{overflow-wrap:anywhere;min-width:0}.list li .topic-check{min-width:0;font-family:var(--font-ui);color:var(--text);cursor:pointer;flex-flow:wrap;align-items:center;gap:4px 12px;font-size:.97rem;font-weight:400;display:flex}.topic-check input{width:18px;height:18px;accent-color:var(--accent-fill);cursor:pointer;flex:none;margin:0;padding:0}.topic-done .topic-name{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong)}.topic-review{color:var(--gold-text);font-size:.78rem}.topic-progress{color:var(--muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.topic-bar{background:var(--series-dim);border-radius:999px;width:110px;height:5px;display:block;overflow:hidden}.topic-bar span{background:var(--accent-fill);height:100%;transition:width .4s var(--ease-out);display:block}.exam-form{max-width:640px}.exam-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.exam-table th,.exam-table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 4px}.exam-table thead th{color:var(--muted);font-size:.82rem;font-weight:500}.exam-table tbody th{font-weight:500}.exam-table tbody th .muted{font-size:.78rem;font-weight:400;display:block}.exam-table input{width:100%;min-width:0;max-width:72px;padding:7px 8px}.exam-table tr.over input{border-color:var(--rose)}.exam-table tfoot th,.exam-table tfoot td{border-bottom:0;font-weight:600}.exam-net{color:var(--gold-text);font-weight:600}.exam-switch{margin:30px 0 4px}.exam-list{max-width:none}.exam-list li{flex-wrap:wrap;justify-content:flex-start}.exam-when{flex:none;width:9.5em}.exam-name{flex:1;min-width:10em}.exam-total{font-family:var(--font-display);flex:none;font-size:1.2rem;font-weight:600}.exam-list li.is-editing{box-shadow:inset 2px 0 0 var(--gold-text);padding-left:12px}@media (width<=820px){.exam-table th:first-child{max-width:7em}.exam-table input{padding:6px 4px}.exam-when{width:auto}}.exam-tabs{width:100%;max-width:640px;margin:22px 0 6px;display:flex}.exam-tabs button{padding:11px 12px}.tab-count{background:var(--surface-2);min-width:1.6em;color:var(--muted);border-radius:999px;margin-left:6px;padding:0 6px;font-size:.78rem;font-weight:600;line-height:1.5;display:inline-block}.exam-tabs .active .tab-count{color:inherit;background:#0000002e}.exam-types{flex-wrap:wrap;width:100%;display:flex}.exam-types button{white-space:nowrap;flex:auto}.narrow-field{flex:0 0 9em!important}.link-button{color:var(--text);text-align:left;text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:500}.link-button:hover:not(:disabled){filter:none;color:var(--gold-text)}.branch-table{max-width:640px;margin:28px 0 8px}.branch-table tr.is-selected td{background:var(--surface-2)}.branch-table tr.is-selected .link-button{color:var(--gold-text)}.exam-total small{font-family:var(--font-ui);color:var(--muted);margin-left:6px;font-size:.8rem;font-weight:500}@media (width<=820px){.exam-tabs button{font-size:.88rem}.narrow-field{flex-basis:6.5em!important}}.today-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.today-list{margin:4px 0 0;padding:0;list-style:none}.today-item{border-top:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px;display:flex}.today-item:first-child{border-top:0}.today-time{width:7.4em;font-family:var(--font-display);font-variant-numeric:tabular-nums;flex:none;font-size:1.05rem;font-weight:500}.today-title{flex:1;min-width:10em}.today-item.t-class{opacity:.75}.today-item.is-done .today-title{color:var(--muted);text-decoration:line-through}.today-item.is-now{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--gold-text)}.today-item.is-next{box-shadow:inset 3px 0 0 var(--border-strong)}.small-link{padding:4px 12px;font-size:.82rem}.done-toggle.on{color:var(--teal);border-color:var(--teal)}.heatmap-card{margin:8px 0 24px}.heatmap-scroll{direction:rtl;padding-bottom:4px;overflow-x:auto}.heatmap{direction:ltr;margin-right:auto;display:block}.hm-label{fill:var(--muted);font-size:10px}.hm-cell{fill:var(--series-dim);background:var(--series-dim)}.hm-cell.l1{fill:color-mix(in srgb, var(--series-2) 35%, var(--series-dim));background:color-mix(in srgb, var(--series-2) 35%, var(--series-dim))}.hm-cell.l2{fill:color-mix(in srgb, var(--series-2) 60%, var(--series-dim));background:color-mix(in srgb, var(--series-2) 60%, var(--series-dim))}.hm-cell.l3{fill:color-mix(in srgb, var(--series-2) 82%, var(--series-dim));background:color-mix(in srgb, var(--series-2) 82%, var(--series-dim))}.hm-cell.l4{fill:var(--series-2);background:var(--series-2)}rect.hm-cell.today{stroke:var(--gold-text);stroke-width:1.5px}rect.hm-cell{transform-box:fill-box;transform-origin:50%;animation:hm-in .4s var(--ease-out) both}@keyframes hm-in{0%{opacity:0;transform:scale(.4)}}.hm-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:4px;margin-top:8px;font-size:.75rem;display:flex}.hm-legend i{border-radius:2.5px;width:11px;height:11px;display:inline-block}@media (prefers-reduced-motion:reduce){rect.hm-cell{animation:none}}.outlook{margin-top:18px}.outlook .value small{font-size:.45em;font-family:var(--font-ui)}.outlook-meter{background:var(--series-dim);border-radius:999px;height:6px;margin:10px 0 4px;overflow:hidden}.outlook-meter i{border-radius:inherit;background:var(--series-2);transform-origin:0;height:100%;animation:bar-grow .9s var(--ease-out) both .2s;display:block}@media (prefers-reduced-motion:reduce){.outlook-meter i{animation:none}}.check-row{cursor:pointer;flex-direction:row;align-items:flex-start;gap:12px;font-size:.95rem;line-height:1.5;display:flex}.check-row b{color:var(--text)}.check-row input{width:18px;height:18px;accent-color:var(--accent-fill);flex:none;margin-top:4px}kbd{min-width:1.7em;font:600 .82rem var(--font-ui);text-align:center;color:var(--text);background:var(--surface-2,var(--surface));border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:1px 6px;display:inline-block}.shortcut-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 18px;margin:0;padding:0;list-style:none;display:grid}.shortcut-list li{align-items:center;gap:10px;display:flex}.topic-note{flex-direction:column;gap:12px;margin:18px 0 8px;display:flex}.topic-note textarea{resize:vertical;width:100%;min-height:120px;font:.97rem/1.6 var(--font-ui);color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:4px;padding:12px 14px}.topic-note-footer{justify-content:flex-end;align-items:center;gap:14px;font-size:.85rem;display:flex}.topic-note-footer>.muted:first-child{margin-right:auto}.note-mark{color:var(--gold-text,var(--accent));vertical-align:-2px;margin-left:6px;display:inline-flex}.wrong-topics{width:min(620px,100vw - 24px)}.wrong-rows{flex-direction:column;gap:8px;max-height:46vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.wrong-rows li{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 72px auto;align-items:center;gap:8px;display:grid}.wrong-rows select,.wrong-rows input{width:100%;min-width:0}.wrong-footer{justify-content:space-between;align-items:center;font-size:.88rem;display:flex}@media (width<=560px){.wrong-rows li{grid-template-columns:minmax(0,1fr) 64px auto}.wrong-rows li select:first-child{grid-column:1/-1}}.wrong-summary{margin:22px 0 8px}.wrong-summary ol{counter-reset:wrong;margin:6px 0 0;padding:0;list-style:none}.wrong-summary li{border-bottom:1px solid var(--border);counter-increment:wrong;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) auto;align-items:center;gap:14px;padding:9px 0;display:grid}.wrong-summary li:last-child{border-bottom:0}.wrong-name{color:var(--text);font-weight:600;text-decoration:none}.wrong-name:before{content:counter(wrong) ".";width:1.8em;color:var(--muted);font-weight:500;display:inline-block}.wrong-name:hover{text-decoration:underline}.wrong-name .muted{font-size:.85em;font-weight:400}.wrong-bar{background:var(--series-dim);border-radius:999px;height:6px;overflow:hidden}.wrong-bar i{border-radius:inherit;background:var(--series-3);transform-origin:0;height:100%;animation:bar-grow .9s var(--ease-out) both .2s;display:block}.wrong-count{white-space:nowrap;font-size:.88rem}@media (width<=640px){.wrong-summary li{grid-template-columns:minmax(0,1fr);gap:6px}.wrong-count{white-space:normal}.wrong-bar{order:3;grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.wrong-bar i{animation:none}}.note-link{align-self:center;margin-right:4px;font-size:.85rem}.timer-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.round-info{text-align:center;margin:0;font-size:.88rem}.break-tip{text-align:center;border-left:3px solid var(--series-2);background:color-mix(in srgb, var(--series-2) 10%, transparent);max-width:420px;margin:0 auto;padding:10px 14px}.break-settings{flex-direction:column;gap:12px;display:flex}.break-settings summary{cursor:pointer;color:var(--muted);font-weight:600}.break-settings[open] summary{margin-bottom:10px}.break-settings .check-row{margin:10px 0 4px}.focus-mode{z-index:200;color:var(--text);background:var(--bg);outline:none;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.focus-mode.is-break{background:color-mix(in srgb, var(--series-2) 12%, var(--bg))}.focus-center{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(720px,100%);display:flex}.focus-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:1.1rem}.focus-time{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:0;font-size:clamp(5rem,22vw,13rem);line-height:1}.focus-bar{background:var(--series-dim);border-radius:999px;width:100%;height:4px;overflow:hidden}.focus-bar i{background:var(--accent-fill);transform-origin:0;height:100%;transition:transform .25s linear;display:block}.focus-meta,.focus-tip{color:var(--muted);margin:0}.focus-tip{color:var(--text);font-size:1.15rem}.focus-exit{bottom:max(24px, env(safe-area-inset-bottom));position:absolute}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.report-dialog{width:min(480px,100vw - 24px)}.report-body{flex-direction:column;align-items:stretch;gap:14px;padding:24px 26px 26px;display:flex}.report-body h2{margin:0}.report-canvas{aspect-ratio:9/16;border:1px solid var(--border-strong);border-radius:10px;width:min(300px,100%);height:auto;margin:0 auto;transition:opacity .2s;display:block;box-shadow:0 16px 40px #00000040}.report-canvas.is-loading{opacity:.4}.suggest-dialog{width:min(640px,100vw - 24px)}.suggest-body{flex-direction:column;gap:14px;padding:24px 26px 26px;display:flex}.suggest-body h2,.suggest-body p{margin:0}.suggest-options{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.suggest-list{border-top:1px solid var(--border);max-height:46vh;margin:0;padding:0;list-style:none;overflow-y:auto}.suggest-list li{border-bottom:1px solid var(--border);padding:9px 0}.suggest-when{font-variant-numeric:tabular-nums;min-width:108px;color:var(--muted);display:inline-block}.suggest-reason{margin-top:2px;display:block}.score-calc{flex-direction:column;gap:16px;display:flex}.score-inputs{flex-direction:column;gap:12px;display:flex}.score-head,.score-sub-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.score-sub{font-size:1rem;font-family:var(--font-ui);color:var(--muted);margin:6px 0 0;font-weight:700}.net-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.placed-check{align-self:flex-end;padding-bottom:8px}.score-results{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;display:grid}.score-card{flex-direction:column;gap:6px;display:flex}.score-card .panel-note{margin:0}.score-rank{margin:4px 0 0;font-size:.95rem}.score-rank b{color:var(--gold-text,var(--accent));font-size:1.2rem}.score-disclaimer{margin:0;font-size:.85rem;line-height:1.6}.page-head button.secondary{background:var(--surface)}@media (width<=560px){.goals-form .row{flex-wrap:wrap}.goals-form .row label:first-child{flex:1 0 100%}}.mistake-form{flex-direction:column;gap:16px;margin-bottom:22px;display:flex}.mistake-form-grid{grid-template-columns:minmax(220px,.9fr) minmax(0,1.1fr);gap:22px;display:grid}.mistake-fields{flex-direction:column;gap:12px;display:flex}.mistake-fields textarea{resize:vertical;width:100%;font:.95rem/1.5 var(--font-ui);color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:4px;padding:10px 12px}.photo-drop{text-align:center;border:1.5px dashed var(--border-strong);background:color-mix(in srgb, var(--surface-2) 60%, transparent);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:220px;padding:14px;display:flex}.photo-drop img{object-fit:contain;border-radius:4px;max-width:100%;max-height:320px}.photo-actions{gap:8px;display:flex}.mistake-filter{margin:4px 0 18px}.mistake-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.mistake-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius,6px);box-shadow:var(--card-shadow);animation:card-in .45s var(--ease-out) both;flex-direction:column;display:flex;overflow:hidden}.mistake-card.is-due{border-color:color-mix(in srgb, var(--series-3) 55%, var(--border))}.mistake-card.is-learned{opacity:.8}.image-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.mistake-photo{object-fit:cover;object-position:top;background:#fff;width:100%;height:190px;display:block}.image-loading,.image-missing{color:var(--muted);background:var(--surface-2);place-items:center;font-size:.85rem;display:grid}.mistake-text{color:var(--text);white-space:pre-wrap;background:var(--surface-2);padding:16px;font-size:.95rem;line-height:1.5;overflow:hidden}.mistake-body{flex-direction:column;gap:8px;padding:14px 16px 16px;display:flex}.mistake-body p{margin:0}.mistake-meta{font-size:.95rem}.mistake-dates{font-size:.82rem}.review-steps{gap:4px;display:flex}.review-steps i{background:var(--series-dim);border-radius:999px;flex:1;height:4px}.review-steps i.done{background:var(--series-2)}.mistake-answer{border-left:3px solid var(--series-2);background:color-mix(in srgb, var(--series-2) 10%, transparent);padding:8px 10px;font-size:.92rem}.mistake-body .link-button{align-self:flex-start}.mistake-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.mistake-actions .danger{margin-left:auto}.photo-zoom{cursor:zoom-out;background:0 0;border:0;max-width:min(96vw,1100px);max-height:94vh;padding:0}.photo-zoom::backdrop{background:#06080cd1}.photo-zoom img{border-radius:4px;max-width:100%;max-height:94vh;display:block}@media (width<=700px){.mistake-form-grid{grid-template-columns:1fr}.photo-drop{min-height:150px}}:root[data-theme=pastel] .mistake-card{border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}@media (prefers-reduced-motion:reduce){.mistake-card{animation:none}}.mistakes-due{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.mistakes-due .panel-note{margin:4px 0 0}.due-links{align-items:center;gap:18px;display:flex}.cards-tabs{margin:4px 0 20px}.study{flex-direction:column;align-items:center;gap:14px;display:flex}.study-progress{margin:0}.flashcard{perspective:1200px;cursor:pointer;background:0 0;border:0;width:min(560px,100%);height:300px;padding:0}.flashcard-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s var(--ease-out);display:block;position:relative}.flashcard.is-flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{text-align:center;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--card-shadow), 0 18px 40px #00000024;backface-visibility:hidden;border-radius:10px;flex-direction:column;justify-content:space-between;align-items:center;gap:12px;padding:22px 26px;display:flex;position:absolute;inset:0}.flashcard-face.back{background:color-mix(in srgb, var(--series-2) 9%, var(--surface));transform:rotateY(180deg)}.flashcard-meta,.flashcard-hint{color:var(--muted);font-size:.8rem}.flashcard-text{font-family:var(--font-display);white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;font-size:clamp(1.35rem,3.4vw,1.9rem);line-height:1.3;overflow:auto}.study-actions{gap:12px;display:flex}.study-actions button{min-width:150px}.card-form{flex-direction:column;gap:14px;margin-bottom:18px;display:flex}.card-form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.card-form textarea{resize:vertical;width:100%;font:.97rem/1.5 var(--font-ui);color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:4px;padding:10px 12px}.card-list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.card-list-text{flex-direction:column;gap:2px;min-width:0;display:flex}.card-list-text small{font-size:.78rem}.quiz-setup,.quiz,.quiz-result{flex-direction:column;gap:14px;display:flex}.quiz-options-row{flex-wrap:wrap;gap:16px;display:flex}.quiz-count{margin:0}.quiz-question{white-space:pre-wrap;margin:0;font-size:1.5rem}.quiz-choices{gap:10px;margin:0;padding:0;list-style:none;display:grid}.quiz-choice{text-align:left;width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px;align-items:center;gap:12px;padding:12px 14px;font-weight:500;display:flex}.quiz-choice:hover:not(:disabled){border-color:var(--accent)}.quiz-letter{border:1px solid var(--border-strong);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:700;display:grid}.quiz-choice.is-right{border-color:var(--series-2);background:color-mix(in srgb, var(--series-2) 18%, var(--surface-2))}.quiz-choice.is-wrong{border-color:var(--series-3);background:color-mix(in srgb, var(--series-3) 18%, var(--surface-2))}.quiz-choice:disabled{cursor:default;opacity:1;color:var(--text);filter:none}.quiz-choice.is-dim:disabled{opacity:.5}.quiz-score{font-family:var(--font-display);margin:0;font-size:2.4rem}.quiz-wrong{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}@media (width<=640px){.card-form-grid{grid-template-columns:1fr}.flashcard{height:260px}.study-actions button{flex:1;min-width:0}.study-actions{width:100%}}:root[data-theme=pastel] .flashcard-face,:root[data-theme=pastel] .quiz-choice{border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}:root[data-theme=neon] .flashcard-face{box-shadow:0 0 28px #34e7ff2e}@media (prefers-reduced-motion:reduce){.flashcard-inner{transition:none}}:root[data-theme] button.flashcard.flashcard,:root[data-theme] button.flashcard.flashcard:hover,:root[data-theme] button.flashcard.flashcard:active{box-shadow:none;filter:none;background:0 0;border:0;border-radius:0;padding:0;transform:none}:root[data-theme] button.flashcard.flashcard:after{display:none}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:22px 0 0;padding:0;list-style:none;display:grid}.badge-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius,6px);animation:card-in .45s var(--ease-out) both;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.badge-glyph{width:52px;height:52px;color:var(--muted);border:1px dashed var(--border-strong);border-radius:50%;flex:none;place-items:center;display:grid}.badge-card.earned .badge-glyph{color:var(--on-accent);background:var(--accent-fill);box-shadow:0 6px 18px color-mix(in srgb, var(--accent-fill) 35%, transparent);border:0}.badge-text{flex-direction:column;gap:3px;min-width:0;font-size:.9rem;display:flex}.badge-card:not(.earned) .badge-text b{color:var(--muted)}.badge-progress{flex-direction:column;gap:3px;margin-top:4px;display:flex}.badge-track{background:var(--series-dim);border-radius:999px;height:5px;overflow:hidden}.badge-track i{border-radius:inherit;background:var(--series-2);height:100%;display:block}.collection-canvas{border-radius:6px;width:100%;height:auto;margin-top:8px;display:block}.col-item{transform-box:fill-box;animation:col-in .6s var(--ease-out) both}@keyframes col-in{0%{opacity:0}}.collection-empty{fill:var(--muted);font-size:15px}.collection-dark .collection-canvas{background:radial-gradient(at 30% 20%,#1a2233,#0a0d13 70%)}.col-star path{fill:#e8d3a0}.collection-dark .col-item:nth-child(5n){animation:col-in .6s var(--ease-out) both, twinkle 3.2s ease-in-out infinite 1s}@keyframes twinkle{50%{opacity:.08}}.collection-light .collection-canvas{background-color:#fbfbf8;background-image:linear-gradient(#e6e9ef 1px,#0000 1px),linear-gradient(90deg,#e6e9ef 1px,#0000 1px);background-size:20px 20px}.col-leaf path{fill:none;stroke:#26385a;stroke-width:1.1px}.col-leaf path:first-child{fill:#1b6b6424}.collection-neon .collection-canvas{background:linear-gradient(#120e2b,#1d1240)}.col-light rect{fill:#ff3fa4;filter:drop-shadow(0 0 3px #ff3fa4)}.col-light.v1 rect{fill:#34e7ff;filter:drop-shadow(0 0 3px #34e7ff)}.col-light.v2 rect{fill:#ffe066;filter:drop-shadow(0 0 3px #ffe066)}.collection-pastel .collection-canvas{border:2px solid var(--ink);background:#fdf9f1}.col-sticker path{stroke:var(--ink,#2a2f45);stroke-width:1.4px;stroke-linejoin:round;fill:#ffd6e0}.col-sticker.v1 path{fill:#cfe9ff}.col-sticker.v2 path{fill:#d8f3e8}:root[data-theme=pastel] .badge-card{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}@media (prefers-reduced-motion:reduce){.col-item,.collection-dark .col-item:nth-child(5n),.badge-card{animation:none}}.term-summary .small-value{font-size:1.9rem}.term-tabs{margin:20px 0 18px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.course-card{flex-direction:column;gap:12px;display:flex}.course-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.course-letter{min-width:64px;font-family:var(--font-display);color:var(--on-accent);background:var(--accent-fill);border-radius:8px;flex-direction:column;align-items:center;padding:6px 10px;font-size:1.8rem;line-height:1;display:flex}.course-letter small{font-family:var(--font-ui);margin-top:3px;font-size:.72rem}.course-letter.partial{color:var(--text);border:1px dashed var(--border-strong);background:0 0}.course-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grade-table{border-collapse:collapse;width:100%}.grade-table th{text-align:left;color:var(--muted);padding:0 6px 6px 0;font-size:.78rem;font-weight:500}.grade-table td{padding:3px 6px 3px 0}.grade-table input{width:100%;min-width:0}.grade-table td:nth-child(2),.grade-table td:nth-child(3){width:84px}.grade-table td:last-child{width:36px}.course-row{justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.need-line{border-left:3px solid var(--series-2);background:color-mix(in srgb, var(--series-2) 9%, transparent);margin:0;padding:10px 12px;font-size:.92rem;line-height:1.6}.need-line select{padding:2px 6px}.absence-list{margin:0 0 18px;padding:0;list-style:none}.absence-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1.2fr) minmax(80px,1fr) minmax(110px,max-content);align-items:center;gap:14px;padding:12px 0;display:grid}.absence-name{flex-direction:column;gap:2px;display:flex}.absence-bar{background:var(--series-dim);border-radius:999px;height:8px;overflow:hidden}.absence-bar i{border-radius:inherit;background:var(--series-2);height:100%;display:block}.absence-row.warn .absence-bar i{background:#d99a2b}.absence-row.over .absence-bar i{background:var(--series-3)}.absence-row.over .absence-count b{color:var(--series-3)}.absence-count{white-space:nowrap;text-align:right;font-size:.9rem}.absence-count small{display:block}.absence-today,.absence-form,.assignment-form{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.absence-today ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.absence-today li{justify-content:space-between;align-items:center;gap:12px;display:flex}.assignment{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;display:grid}.assignment-note{display:block}.assignment-due{white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:.9rem;font-weight:600;display:flex}.assignment.soon .assignment-due{color:#c98a1c}.assignment.late .assignment-due{color:var(--series-3)}.assignment.done{opacity:.65}.assignment.done b{text-decoration:line-through}.assignment-done summary{cursor:pointer;color:var(--muted);margin:14px 0 6px}@media (width<=640px){.course-grid{grid-template-columns:1fr}.absence-row{grid-template-columns:1fr auto}.absence-bar{order:3;grid-column:1/-1}.assignment{grid-template-columns:1fr auto}.assignment>button{grid-column:2}}.term-tabs button{white-space:nowrap;flex:auto;min-width:max-content;padding-inline:18px}.panels>*,.chart-grid>*,.route .chart-card,.route .card,.route .week-grid,.route .strip-panel{animation:card-in .55s var(--ease-out) both}.panels>:nth-child(2){animation-delay:60ms}.panels>:nth-child(3){animation-delay:.12s}.panels>:nth-child(4){animation-delay:.18s}.panels>:nth-child(5){animation-delay:.24s}.panels>:nth-child(n+6){animation-delay:.3s}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.985)}}.route h1{animation:title-in .7s var(--ease-out) both}@keyframes title-in{0%{opacity:0;letter-spacing:.06em;transform:translate(-6px)}}:root:not([data-theme=pastel]) .panel:hover,:root:not([data-theme=pastel]) .chart-card:hover{box-shadow:var(--card-shadow), 0 14px 30px #0000001f;transform:translateY(-2px)}button:not(.secondary):not(.small):not(.theme-toggle):not(.theme-option):not(.day-chip):not(.block):not(.nav-more):not(.span-chip):not(.link-button):not(.nav-scrim),.button-link{position:relative;overflow:hidden}button:not(.secondary):not(.small):not(.theme-toggle):not(.theme-option):not(.day-chip):not(.block):not(.nav-more):not(.span-chip):not(.link-button):not(.nav-scrim):after,.button-link:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 35%,#ffffff59 50%,#0000 65%);position:absolute;inset:0;transform:translate(-120%)}button:not(.secondary):not(.small):not(.theme-toggle):not(.theme-option):not(.day-chip):not(.block):not(.nav-more):not(.span-chip):not(.link-button):not(.nav-scrim):hover:not(:disabled):after,.button-link:hover:after{transition:transform .7s var(--ease-out);transform:translate(120%)}.nav a .icon{transition:transform .3s var(--ease-spring)}.nav a:hover .icon{transform:translateY(-2px)rotate(-6deg)}.nav a.active .icon{animation:icon-pop .45s var(--ease-spring)}@keyframes icon-pop{40%{transform:scale(1.22)}}.goal-track span,.topic-bar span,.day-meter i{transform-origin:0;animation:bar-grow .9s var(--ease-out) both .2s}@keyframes bar-grow{0%{transform:scaleX(0)}}.goal-bar.reached .goal-track span{animation:bar-grow .9s var(--ease-out) both .2s, glint 1.6s ease 1.1s}@keyframes glint{50%{filter:brightness(1.5)}}.trend-path{stroke-dasharray:1;stroke-dashoffset:1px;animation:trend-draw 1.2s var(--ease-out) forwards .15s}@keyframes trend-draw{to{stroke-dashoffset:0}}.svg-chart .grow-up,.svg-chart .grow-right{transform-box:fill-box;animation:grow .8s var(--ease-out) both}.svg-chart .grow-up{transform-origin:bottom;--grow-from:scaleY(0)}.svg-chart .grow-right{transform-origin:0;--grow-from:scaleX(0)}@keyframes grow{0%{transform:var(--grow-from)}}.week-bars .bar{transform-box:fill-box;transform-origin:bottom;animation:grow-col .8s var(--ease-out) both}.week-bars g:nth-child(2) .bar{animation-delay:50ms}.week-bars g:nth-child(3) .bar{animation-delay:.1s}.week-bars g:nth-child(4) .bar{animation-delay:.15s}.week-bars g:nth-child(5) .bar{animation-delay:.2s}.week-bars g:nth-child(6) .bar{animation-delay:.25s}.week-bars g:nth-child(7) .bar{animation-delay:.3s}@keyframes grow-col{0%{transform:scaleY(0)}}.dial.running .tick.leading{animation:1s ease-in-out infinite tick-pulse}@keyframes tick-pulse{50%{opacity:.35}}.dial.running svg{animation:4s ease-in-out infinite breathe}@keyframes breathe{50%{transform:scale(1.015)}}.topic-check input:checked{animation:check-pop .35s var(--ease-spring)}@keyframes check-pop{50%{transform:scale(1.3)}}.daily-quote blockquote{animation:quote-in .55s var(--ease-out) both}@keyframes quote-in{0%{opacity:0;filter:blur(3px);transform:translateY(6px)}}.countdown{animation:card-in .6s var(--ease-out) both}.exam-list li:first-child,.review-list li{animation:card-in .45s var(--ease-out) both}.confetti-layer{z-index:120;pointer-events:none;position:fixed;inset:0}.burst{width:0;height:0;position:absolute}.piece{border-radius:50%;width:8px;height:8px;animation:1.3s cubic-bezier(.15,.7,.3,1) both piece-fly;position:absolute;top:-4px;left:-4px}.piece.bar{border-radius:1px;width:4px;height:11px}.piece.tri{border-bottom:9px solid;border-left:5px solid #0000;border-right:5px solid #0000;border-radius:0;width:0;height:0}@keyframes piece-fly{0%{opacity:1;transform:translate(0)rotate(0)scale(.4)}60%{opacity:1;transform:translate(var(--dx), var(--dy)) rotate(var(--rot)) scale(1)}to{opacity:0;transform:translate(var(--dx), calc(var(--dy) + 90px)) rotate(calc(var(--rot) * 1.4)) scale(.9)}}.toast-region{z-index:121;pointer-events:none;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast{color:var(--on-accent);background:var(--accent-fill);white-space:nowrap;animation:toast-life 2.6s var(--ease-spring) both;border-radius:999px;margin:0;padding:11px 20px;font-weight:600;box-shadow:0 12px 30px #00000040}@keyframes toast-life{0%{opacity:0;transform:translateY(20px)scale(.9)}12%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(8px)}}@media (width<=820px){.toast-region{bottom:calc(86px + env(safe-area-inset-bottom))}.toast{white-space:normal;text-align:center}}:root[data-theme=pastel] .toast{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}:root[data-theme=neon] .toast{box-shadow:0 0 24px #ff3fa499}@media (prefers-reduced-motion:reduce){.panels>*,.chart-grid>*,.route .chart-card,.route .card,.route .week-grid,.route .strip-panel,.route h1,.goal-track span,.topic-bar span,.day-meter i,.svg-chart .grow-up,.svg-chart .grow-right,.week-bars .bar,.dial.running svg,.dial.running .tick.leading,.topic-check input:checked,.countdown,.daily-quote blockquote,.exam-list li:first-child,.review-list li,.nav a.active .icon,.toast{animation:none}.trend-path{stroke-dashoffset:0;animation:none}.nav a:hover .icon{transform:none}button:after,.button-link:after{display:none}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;--bg:#f4f5f7;--surface:#fff;--surface-2:#f7f8fa;--text:#16191f;--muted:#5a6170;--border:#e3e6eb;--border-strong:#c9ced6;--gold:#26385a;--gold-hair:#26385a29;--teal:#1b6b64;--rose:#a33a33;--accent-fill:#26385a;--gold-text:#26385a;--accent-2:#2f5fb3;--on-accent:#fff;--danger-bg:#fbe9e7;--danger-text:#8f2c26;--series-1:#3b5b92;--series-2:#1b8079;--series-3:#b4483f;--series-blank:#8b919c;--series-dim:#dde1e7;--chart-grid:#eceef2;--chart-axis:#c9ced6;--nav-bg:#fff;--paper-line:#26385a0b;--card-shadow:0 1px 2px #1018280d, 0 4px 12px #1018280d, 0 14px 32px #1018280a;--btn-hover:brightness(1.15);--mark-hover:brightness(.85);--grain-opacity:.06;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.3 0 0 0 0 0.32 0 0 0 0 0.36 1.2 0 0 0 -0.46'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--doodle:#26385a47;--doodle-strong:#26385a6b}.brand-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.nav .theme-toggle{width:36px;height:36px;color:var(--gold-text);border:1px solid var(--border-strong);background:0 0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.nav .theme-toggle:hover:not(:disabled){filter:none;border-color:var(--gold-text)}.theme-toggle .icon{width:20px;height:20px}@media (width<=820px){.brand-row{display:contents}.nav .theme-toggle{background:var(--bg);position:fixed;top:8px;left:12px}}.theme-switching,.theme-switching *,.theme-switching :before,.theme-switching :after{transition:background-color .35s,color .35s,border-color .35s,fill .35s,stroke .35s,box-shadow .35s!important}@media (prefers-reduced-motion:reduce){.theme-switching,.theme-switching *,.theme-switching :before,.theme-switching :after{transition:none!important}}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=neon]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0b1e;--surface:#151231;--surface-2:#1c1840;--text:#efeaff;--muted:#a7a1d8;--border:#2b2560;--border-strong:#463d8c;--gold:#ff3fa4;--gold-hair:#ff3fa44d;--teal:#2fe6ff;--rose:#ff6b7f;--accent:var(--gold);--accent-fill:#ff3fa4;--gold-text:#ff72c0;--accent-2:#2fe6ff;--on-accent:#1a0412;--danger-bg:#3a0f2a;--danger-text:#ffa3c8;--series-1:#ff4fb0;--series-2:#2fd8f0;--series-3:#ffb03f;--series-blank:#8a84b8;--series-dim:#2b2560;--chart-grid:#1f1a46;--chart-axis:#3d3578;--nav-bg:#0a0819;--paper-line:transparent;--card-shadow:inset 0 1px 0 #ff3fa459, 0 0 0 1px #2fe6ff0a, 0 10px 40px #7b2bff38;--btn-hover:brightness(1.12);--mark-hover:brightness(1.3);--grain-opacity:0;--doodle:#2fe6ff6b;--doodle-strong:#2fe6ffb3;--bd-sky-top:#0d0b1e;--bd-sky-mid:#2c0c4a;--radius:2px;--font-display:"Figtree Variable", "Segoe UI", sans-serif}:root[data-theme=neon] body{background-image:none}:root[data-theme=neon] h1,:root[data-theme=neon] h2,:root[data-theme=neon] h3{letter-spacing:-.025em;font-weight:750}:root[data-theme=neon] h1{text-shadow:-1.5px 0 #2fe6ffbf,1.5px 0 #ff3fa4bf,0 0 28px #ff3fa466}:root[data-theme=neon] h2{font-size:1.45rem}:root[data-theme=neon] .panel-label,:root[data-theme=neon] .value,:root[data-theme=neon] .day-name,:root[data-theme=neon] .strip-day,:root[data-theme=neon] .class-time,:root[data-theme=neon] .gutter.hours span{letter-spacing:-.01em;font-weight:650}:root[data-theme=neon] .brand{letter-spacing:-.03em;text-shadow:0 0 18px #ff3fa48c;font-weight:800}:root[data-theme=neon] .card,:root[data-theme=neon] .panel,:root[data-theme=neon] .chart-card,:root[data-theme=neon] .kpis,:root[data-theme=neon] .list li.resource{background:#151231e6}:root[data-theme=neon] .week-grid{background:#151231}:root[data-theme=neon] .panel:hover,:root[data-theme=neon] .chart-card:hover{border-color:#2fe6ff73}:root[data-theme=neon] button:not(.secondary):not(.theme-option):not(.day-chip):not(.block):not(.nav-more):not(.span-chip):not(.theme-toggle),:root[data-theme=neon] .button-link{box-shadow:0 0 18px #ff3fa473}:root[data-theme=neon] .nav a.active{box-shadow:inset 2px 0 0 var(--gold), -6px 0 18px -6px #ff3fa4cc}:root[data-theme=neon] .nav a.active .icon,:root[data-theme=neon] .nav-more.active .icon{filter:drop-shadow(0 0 4px #ff3fa4e6)}:root[data-theme=neon] select:focus-visible,:root[data-theme=neon] input:focus-visible{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal), 0 0 14px #2fe6ff59}:root[data-theme=neon] .dial .tick.lit{filter:drop-shadow(0 0 3px var(--gold))}:root[data-theme=neon] .timer{text-shadow:0 0 22px #2fe6ff73;font-weight:300}:root[data-theme=neon] .daily-quote blockquote{font-style:normal;font-weight:600}:root[data-theme=neon] .block-class{background-image:repeating-linear-gradient(135deg,#2fe6ff33 0 1px,#0000 1px 6px)}:root[data-theme=pastel]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;--bg:#eef2f9;--surface:#fff;--surface-2:#f6f8fc;--text:#262c3a;--muted:#5a6274;--border:#dde3ee;--border-strong:#262c3a;--ink:#262c3a;--gold:#cc3d58;--gold-hair:#cc3d5833;--teal:#267a67;--rose:#b4372f;--accent:var(--gold);--accent-fill:#cc3d58;--gold-text:#b0304b;--accent-2:#3b6fd0;--on-accent:#fff;--danger-bg:#ffe1d6;--danger-text:#9a2b26;--series-1:#e0637a;--series-2:#3d9c86;--series-3:#5b8bd6;--series-blank:#9aa1b0;--series-dim:#dde3ee;--chart-grid:#edf0f6;--chart-axis:#c4cad6;--mint:#d8f3e8;--peach:#ffe1d6;--lilac:#e6defa;--sky:#d9e8fb;--butter:#fff0bd;--nav-bg:#fff;--paper-line:transparent;--card-shadow:4px 4px 0 var(--ink);--btn-hover:brightness(1.06);--mark-hover:brightness(.9);--grain-opacity:0;--doodle:#262c3a80;--doodle-strong:#262c3ab3;--radius:14px;--font-display:"Figtree Variable", "Segoe UI", sans-serif}:root[data-theme=pastel] body{background-image:linear-gradient(#5b8bd61a 1px,#0000 1px),linear-gradient(90deg,#5b8bd61a 1px,#0000 1px);background-size:28px 28px}:root[data-theme=pastel] h1,:root[data-theme=pastel] h2,:root[data-theme=pastel] h3,:root[data-theme=pastel] .panel-label,:root[data-theme=pastel] .brand{letter-spacing:-.03em;font-weight:800}:root[data-theme=pastel] h1{background:linear-gradient(100deg, transparent 2%, var(--butter) 3%, var(--butter) 96%, transparent 97%) 0 72% / 100% 46% no-repeat;width:fit-content;margin-left:-6px;padding:0 6px}:root[data-theme=pastel] h2:not(.panel-label){box-shadow:none;border-bottom:2px solid var(--ink);background:0 0}:root[data-theme=pastel] .panel-label{font-size:1.05rem}:root[data-theme=pastel] .value,:root[data-theme=pastel] .solved-number,:root[data-theme=pastel] .timer,:root[data-theme=pastel] .day-name,:root[data-theme=pastel] .strip-day,:root[data-theme=pastel] .class-time,:root[data-theme=pastel] .gutter.hours span{letter-spacing:-.02em;font-weight:750}:root[data-theme=pastel] .daily-quote blockquote{font-style:normal;font-weight:700}:root[data-theme=pastel] .card,:root[data-theme=pastel] .panel,:root[data-theme=pastel] .chart-card,:root[data-theme=pastel] .kpis,:root[data-theme=pastel] .week-grid,:root[data-theme=pastel] .strip-panel,:root[data-theme=pastel] .list li.resource,:root[data-theme=pastel] .plan-editor,:root[data-theme=pastel] .theme-menu,:root[data-theme=pastel] .nav-sheet{border:2px solid var(--ink);box-shadow:var(--card-shadow);border-radius:18px}:root[data-theme=pastel] .panels .panel:nth-child(4n+1){background:var(--mint)}:root[data-theme=pastel] .panels .panel:nth-child(4n+2){background:var(--peach)}:root[data-theme=pastel] .panels .panel:nth-child(4n+3){background:var(--lilac)}:root[data-theme=pastel] .panels .panel:nth-child(4n+4){background:var(--sky)}:root[data-theme=pastel] .chart-card:nth-of-type(odd){background:#fbfcff}:root[data-theme=pastel] .panel:hover,:root[data-theme=pastel] .chart-card:hover{border-color:var(--ink);box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}:root[data-theme=pastel] .kpis,:root[data-theme=pastel] .week-grid{overflow:hidden}:root[data-theme=pastel] .week-head{border-bottom:2px solid var(--ink);border-radius:16px 16px 0 0}:root[data-theme=pastel] .tile+.tile{border-left:2px dashed var(--border)}:root[data-theme=pastel] select,:root[data-theme=pastel] input{border:2px solid var(--ink);background:var(--surface);border-radius:12px}:root[data-theme=pastel] select:focus-visible,:root[data-theme=pastel] input:focus-visible{border-color:var(--ink);box-shadow:3px 3px 0 var(--accent-2)}:root[data-theme=pastel] input[type=range]{box-shadow:none;border:none}:root[data-theme=pastel] button,:root[data-theme=pastel] .button-link{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:999px}:root[data-theme=pastel] button.secondary{background:var(--surface)}:root[data-theme=pastel] button.secondary:hover:not(:disabled){color:var(--text);border-color:var(--ink);background:var(--butter)}:root[data-theme=pastel] button:active:not(:disabled),:root[data-theme=pastel] .button-link:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}:root[data-theme=pastel] button.small,:root[data-theme=pastel] .segmented button,:root[data-theme=pastel] .theme-option,:root[data-theme=pastel] .nav-more,:root[data-theme=pastel] .nav-scrim,:root[data-theme=pastel] .block,:root[data-theme=pastel] .day-chip,:root[data-theme=pastel] .span-chip,:root[data-theme=pastel] .theme-toggle{box-shadow:none}:root[data-theme=pastel] .block,:root[data-theme=pastel] .theme-option,:root[data-theme=pastel] .nav-more,:root[data-theme=pastel] .nav-scrim{border-width:1px}:root[data-theme=pastel] .theme-option{border-color:#0000}:root[data-theme=pastel] .theme-option[aria-checked=true]{border:2px solid var(--ink);background:var(--butter)}:root[data-theme=pastel] .nav-more,:root[data-theme=pastel] .nav-scrim{border:0}:root[data-theme=pastel] .segmented{border:2px solid var(--ink);border-radius:999px}:root[data-theme=pastel] .segmented button{border:0;border-radius:0}:root[data-theme=pastel] .segmented button+button{border-left:2px solid var(--ink)}:root[data-theme=pastel] .day-chip.on,:root[data-theme=pastel] .segmented button.active{color:var(--text);background:var(--butter);border-color:var(--ink)}:root[data-theme=pastel] .badge{border:1.5px solid var(--ink);background:var(--lilac);color:var(--text);border-radius:999px}:root[data-theme=pastel] input[type=file]::file-selector-button{border:2px solid var(--ink);border-radius:999px}:root[data-theme=pastel] .nav{border-right:2px solid var(--ink)}:root[data-theme=pastel] .nav a{border-radius:12px}:root[data-theme=pastel] .nav a.active{color:var(--text);background:var(--butter);box-shadow:inset 0 0 0 2px var(--ink)}:root[data-theme=pastel] .nav a.active .icon{color:var(--text)}:root[data-theme=pastel] .brand:after{background:var(--gold);height:3px}:root[data-theme=pastel] .daily-quote{border-left:6px solid var(--lilac);padding-left:18px}:root[data-theme=pastel] .block{border-radius:10px}:root[data-theme=pastel] .block-class{background-color:var(--sky);border-color:var(--ink);background-image:repeating-linear-gradient(135deg,#262c3a1f 0 1.5px,#0000 1.5px 7px)}:root[data-theme=pastel] .block-study{background:var(--mint);border-color:var(--ink);box-shadow:none;padding-left:7px}:root[data-theme=pastel] .block-other{background:var(--lilac);border-color:var(--ink)}:root[data-theme=pastel] .strip-class{border-radius:6px}@media (width<=820px){:root[data-theme=pastel] .nav{border-right:0;border-top:2px solid var(--ink)}:root[data-theme=pastel] .nav a.active{box-shadow:inset 0 0 0 2px var(--ink)}}:root[data-theme=pastel] button.link-button,:root[data-theme=pastel] button.link-button:hover:not(:disabled),:root[data-theme=pastel] button.link-button:active:not(:disabled){box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;transform:none}@media (width<=560px){:root[data-theme=pastel] .track-switcher.detailed .segmented{border-radius:18px}}.backdrop{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.page{z-index:1;position:relative}.bd-svg{fill:none;width:100%;height:100%;position:absolute;inset:0}.bd-svg *{vector-effect:non-scaling-stroke}.backdrop-dark .stars circle,.backdrop-dark .milky circle{fill:#e9dfc4}.backdrop-dark .twinkle{animation:5.5s ease-in-out infinite twinkle}.backdrop-dark .constellations polyline{stroke:var(--gold);stroke-width:1px;opacity:.28}.backdrop-dark .constellations circle{fill:var(--gold);opacity:.6}.backdrop-dark .pleiades .ring{fill:none;stroke:var(--gold);stroke-dasharray:2 5;opacity:.35}.backdrop-dark .polaris path{fill:#f4ead0;opacity:.8;filter:drop-shadow(0 0 4px #f4ead0cc)}.backdrop-dark .star-label{fill:var(--gold);font-family:var(--font-display);opacity:.5;font-size:19px;font-style:italic}.backdrop-dark .meridians ellipse{stroke:var(--gold);stroke-width:1px;stroke-dasharray:2 9;opacity:.16}.backdrop-dark .chart-scale{stroke:var(--gold);stroke-width:1px;opacity:.3}.backdrop-dark .chart-scale text{fill:var(--gold);stroke:none;font-family:var(--font-ui);font-size:12px}.backdrop-dark .astrolabe{stroke:var(--gold);stroke-width:1px;opacity:.32}.backdrop-dark .astrolabe .faint{opacity:.55}.backdrop-dark .astrolabe-hand circle{fill:var(--gold)}.backdrop-dark .astrolabe-ring{animation:240s linear infinite spin}.backdrop-dark .astrolabe-hand{animation:160s linear infinite reverse spin}@keyframes spin{to{transform:rotate(360deg)}}.backdrop-dark .orrery .orbit{stroke:var(--gold);stroke-width:1px;stroke-dasharray:1 4;opacity:.4}.backdrop-dark .orrery .sun{fill:var(--gold);opacity:.8;filter:drop-shadow(0 0 6px var(--gold))}.backdrop-dark .orrery .planet{fill:#e9dfc4;opacity:.8}.backdrop-dark .planet-arm{animation:linear infinite spin}.shooting{opacity:0;background:linear-gradient(90deg,#f4ead000,#f4ead0e6);border-radius:999px;width:140px;height:1.5px;animation:11s ease-out infinite shoot;position:absolute;transform:rotate(-24deg)}.shooting.s1{top:12%;left:62%}.shooting.s2{animation-duration:15s;animation-delay:4.5s;top:30%;left:86%}.shooting.s3{animation-duration:19s;animation-delay:8s;top:6%;left:30%}@keyframes shoot{0%,88%{opacity:0;transform:rotate(-24deg)translate(0)}90%{opacity:1}96%,to{opacity:0;transform:rotate(-24deg)translate(-320px)}}.backdrop-light .mm-line{stroke:#26385a0f;stroke-width:1px}.backdrop-light .mm-major{stroke:#26385a1c;stroke-width:1px}.backdrop-light .frame{fill:none;stroke:#26385a2e;stroke-width:1px}.backdrop-light .drafting{stroke:#26385a57;stroke-width:1px;fill:none}.backdrop-light .drafting .faint{stroke:#26385a29}.backdrop-light .drafting .pencil{stroke:#5a61706b;stroke-dasharray:5 3}.backdrop-light .drafting .curve{stroke:#2f5fb380;stroke-width:1.5px}.backdrop-light .reg-mark{stroke:#26385a4d}.backdrop-light .note{fill:#26385a6b;stroke:none;font-family:var(--font-display);font-size:28px;font-style:italic}.backdrop-light .note.small{font-size:20px}.backdrop-light .title-block text{fill:#26385a80;stroke:none;font-family:var(--font-ui)}.backdrop-light .tb-big{letter-spacing:.08em;font-size:20px;font-weight:700}.backdrop-light .tb{letter-spacing:.06em;font-size:12px}.backdrop-light .draw-in>*{stroke-dasharray:1400;stroke-dashoffset:1400px;animation:draw 2.4s var(--ease-out) forwards}.backdrop-light .draw-in>.pencil{stroke-dasharray:1400}.backdrop-light .draw-in.d1>*{animation-delay:.1s}.backdrop-light .draw-in.d2>*{animation-delay:.5s}.backdrop-light .draw-in.d3>*{animation-delay:.9s}.backdrop-light .draw-in.d4>*{animation-delay:1.3s}.backdrop-light .draw-in text{stroke-dasharray:none;stroke-dashoffset:0;opacity:0;animation-name:ink-in}.backdrop-light .notes text{opacity:0;animation:1.2s 1.6s forwards ink-in}@keyframes draw{to{stroke-dashoffset:0}}@keyframes ink-in{to{opacity:1}}.neon-sky{background:radial-gradient(80% 50% at 50% 110%,#ff3fa438,#0000 70%),radial-gradient(60% 40% at 90% 0,#2fe6ff1f,#0000 70%),linear-gradient(#0d0b1e,#15102e 60%,#1a0d2a);position:absolute;inset:0}.neon-bokeh span{background:radial-gradient(circle, var(--c) 0%, transparent 68%);opacity:var(--a);border-radius:50%;animation:ease-in-out infinite alternate bokeh;position:absolute;transform:translate(-50%,-50%)}@keyframes bokeh{to{opacity:calc(var(--a) * .4);transform:translate(-50%,calc(-50% - 18px))scale(1.12)}}.neon-signs .halo{fill:none;stroke-width:12px;opacity:.18;stroke-linecap:round;stroke-linejoin:round}.neon-signs .tube{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.neon-signs .thin{stroke-width:1.4px}.neon-signs text{font-family:var(--font-ui);text-anchor:middle;dominant-baseline:middle;font-size:74px;font-weight:800}.neon-signs .frame{fill:#0d0b1e99;stroke:#2fe6ff59;stroke-width:1.4px}.sign-odak .tube,.sign-odak .halo{stroke:#ff3fa4}.sign-odak .tube{filter:drop-shadow(0 0 6px #ff3fa4)}.sign-ring .tube,.sign-ring .halo{stroke:#2fe6ff}.sign-ring .tube{filter:drop-shadow(0 0 6px #2fe6ff)}.sign-arrows .tube,.sign-arrows .halo{stroke:#ffb03f}.sign-bars .tube,.sign-bars .halo{stroke:#9b5cff}.neon-signs .flicker{animation:7s step-end infinite tube-flicker}.neon-signs .flicker-slow{animation:11s step-end 2s infinite tube-flicker}@keyframes tube-flicker{0%,to{opacity:1}61%{opacity:.15}62%{opacity:1}64%{opacity:.2}66%{opacity:1}}.sign-arrows .chevron{animation:2.4s ease-in-out infinite chevron}@keyframes chevron{0%,to{opacity:.25}30%{opacity:1}}.sign-bars .eq{transform-box:fill-box;transform-origin:bottom;animation:1.8s ease-in-out infinite alternate eq}@keyframes eq{to{transform:scaleY(.45)}}.neon-rain{position:absolute;inset:0;overflow:hidden}.rain{background-image:repeating-linear-gradient(100deg,#0000 0 18px,#a0dcff29 18px 19px,#0000 19px 47px);background-size:100% 200px;height:calc(100% + 400px);animation:.9s linear infinite rain-fall;position:absolute;top:-200px;left:-10%;right:-10%;-webkit-mask-image:repeating-linear-gradient(#000 0 26px,#0000 26px 70px);mask-image:repeating-linear-gradient(#000 0 26px,#0000 26px 70px)}.rain.r2{opacity:.6;background-image:repeating-linear-gradient(100deg,#0000 0 31px,#ff8cd224 31px 32px,#0000 32px 77px);animation-duration:1.5s}@keyframes rain-fall{to{transform:translate(-24px,140px)}}.neon-floor-glow{background:repeating-linear-gradient(90deg,#0000 0 60px,#ff3fa414 60px 64px,#0000 64px 140px,#2fe6ff12 140px 143px,#0000 143px 210px),linear-gradient(#0000,#ff3fa41a);height:32%;animation:4s ease-in-out infinite alternate shimmer;position:absolute;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}@keyframes shimmer{to{opacity:.55;transform:scaleY(1.06)}}.neon-scan{background:repeating-linear-gradient(#0000 0 2px,#00000024 2px 3px);position:absolute;inset:0}.stickers{position:absolute;inset:0}.sticker{transform:translate(-50%, -50%) rotate(var(--rot));position:absolute;overflow:visible}.sticker path,.sticker circle,.sticker rect{stroke:var(--ink);stroke-width:3px;vector-effect:non-scaling-stroke}.sticker .nostroke circle{stroke:none}.sticker .line{fill:none;stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;vector-effect:none}.sticker-shadow *{stroke:none}.sticker-shadow .line{stroke:var(--ink)!important}body:has(.week-planner) .sticker.left{display:none}.sticker.kind-dots{opacity:.3}.sticker.kind-dots .sticker-shadow{display:none}.sticker.move-bob{animation:6s ease-in-out infinite alternate sticker-bob}.sticker.move-spin{animation:60s linear infinite sticker-spin}@keyframes sticker-bob{to{transform:translate(-50%, calc(-50% - 10px)) rotate(calc(var(--rot) + 8deg))}}@keyframes sticker-spin{to{transform:translate(-50%, -50%) rotate(calc(var(--rot) + 360deg))}}@media (width<=820px){.stickers{opacity:.4}.neon-signs .sign-arrows,.neon-signs .sign-ring,.backdrop-dark .orrery,.backdrop-light .title-block{display:none}}@media (prefers-reduced-motion:reduce){.backdrop *,.backdrop :before{animation:none!important}.backdrop-light .draw-in>*{stroke-dashoffset:0}.backdrop-light .draw-in text,.backdrop-light .notes text{opacity:1}}.theme-picker{position:relative}.nav .theme-toggle{overflow:hidden}.swatch{display:block}.swatch-dot{width:18px;height:18px;box-shadow:0 0 0 1px var(--border-strong);transition:transform .4s var(--ease-spring);border-radius:50%;display:block}.theme-toggle:hover .swatch-dot,.theme-toggle[aria-expanded=true] .swatch-dot{transform:rotate(90deg)}.swatch{width:52px;height:36px;box-shadow:0 0 0 1px var(--border-strong);border-radius:4px;flex:none}.theme-menu{z-index:30;background:var(--surface);border:1px solid var(--border-strong);border-radius:calc(var(--radius) + 3px);transform-origin:0 0;width:290px;animation:sheet-in .28s var(--ease-spring) both;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 20px 44px #0000004d}.theme-option{letter-spacing:normal;text-align:left;color:var(--text);border-radius:var(--radius);background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:8px;font-weight:400;display:flex}.theme-option:hover:not(:disabled){filter:none;background:var(--surface-2)}.theme-option[aria-checked=true]{border-color:var(--gold-text)}.theme-text{flex-direction:column;min-width:0;display:flex}.theme-name{font-weight:600}.theme-hint{color:var(--muted);font-size:.8rem;line-height:1.3}@media (width<=820px){.theme-picker{position:static}.theme-menu{width:min(290px,100vw - 24px);position:fixed;top:52px;left:12px}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){animation:reveal .7s var(--ease-out)}@keyframes reveal{0%{clip-path:circle(0 at var(--reveal-x,0) var(--reveal-y,0))}to{clip-path:circle(150vmax at var(--reveal-x,0) var(--reveal-y,0))}}:root[data-lite] .backdrop{display:none}:root[data-lite] *,:root[data-lite] :before,:root[data-lite] :after{-webkit-backdrop-filter:none!important;transition:none!important;animation:none!important}:root[data-lite] .trend-path{stroke-dashoffset:0}:root[data-lite] button:after,:root[data-lite] .button-link:after{display:none}
