@font-face{font-family:Syne;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/syne-latin-ext-wght-normal.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:Syne;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/syne-latin-wght-normal.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:Rethink Sans;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/rethink-sans-latin-ext-wght-normal.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:Rethink Sans;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/rethink-sans-latin-wght-normal.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{--bg:#f9f9f8;--surface:#fff;--card:#fff;--card-border:#e7e6e3;--card-shadow:0 2px 8px #0000000a;--bar-line:#74716d;--good-bg:#d9f9e5;--good-border:#8fe0ad;--good-text:#0d8a45;--line:#a8a5a0;--text:#000;--border:#00000026;--overlay:#00000059;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--sans:"Rethink Sans", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Rethink Sans", system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--stage-untouched:#f2f2f2;--stage-learning:#bae6fd;--stage-reviewing:#ffc9e1;--stage-retaining:#881337;--bar-radius:4px;--t:.16s;font-family:var(--sans);color:var(--text);background:var(--bg);font-size:clamp(6px,min(1.3889vw,2.0833dvh),30px);line-height:1.5}:root[data-theme=dark]{--bg:#0f0f10;--surface:#1b1b1d;--card:#1b1b1d;--card-border:#ffffff1f;--card-shadow:none;--line:#ffffff3d;--good-bg:#4ade8024;--good-border:#4ade8066;--good-text:#5eea92;--bar-line:#ffffff8c;--text:#f3f3f1;--border:#ffffff29;--overlay:#000000a8;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23f3f3f1' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--stage-untouched:#2a2a2d;--stage-learning:#6cb8e0;--stage-reviewing:#f0a3c6;--stage-retaining:#d6336c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-snack]{--t:.32s}*{box-sizing:border-box}body{min-height:100svh;margin:0}#root{min-height:100dvh}h1,h2,h3{font-family:var(--heading);margin:0;font-weight:700;line-height:1.1}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.btn{border:1px solid var(--text);background:var(--text);color:var(--bg);transition:transform var(--t) ease, background-color var(--t) ease, color var(--t) ease, box-shadow var(--t) ease;border-radius:999px;padding:.6rem 1.2rem;font-weight:600}.btn:hover:not(:disabled):not(.link){border-color:var(--bar-line);transform:translateY(-1px)scale(1.03);box-shadow:0 4px 12px #0000001f}.btn:active:not(:disabled):not(.link){box-shadow:none;transform:translateY(1px)scale(.98)}.btn.link:hover:not(:disabled){background:var(--card);border-radius:6px;transform:translateY(-1px)scale(1.03);box-shadow:0 4px 12px #0000001f}.btn:disabled{opacity:.4;cursor:default}.btn.ghost{background:var(--card);border-color:var(--line);color:var(--text)}.field{border:1px solid var(--line);background:0 0;border-radius:12px;width:100%;padding:.7rem .9rem}.btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.field:focus-visible{box-shadow:inset 0 0 0 1px var(--text);outline:none}.boot{place-items:center;height:100dvh;animation:.4s ease-out backwards fade-in;display:grid}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.96)}}@keyframes view-from-right{0%{opacity:0;transform:translate(28px)}}@keyframes view-from-left{0%{opacity:0;transform:translate(-28px)}}@keyframes tile-in{0%{opacity:0;transform:scale(.85)}}:root.theme-fading *,:root.theme-fading :before,:root.theme-fading :after{transition:background-color .32s,color .32s,border-color .32s,fill .32s,stroke .32s!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-delay:0s!important}}.stagebar{border:1px solid var(--bar-line);border-radius:var(--bar-radius);width:100%;height:.65rem;display:flex;overflow:hidden}.stagebar.sm{border-width:1px;height:.65rem}.stagebar.lg{border-width:1px;height:1.2rem}.stagebar .seg{min-width:0;transition:flex-grow .7s cubic-bezier(.22, 1, .36, 1), background-color var(--t) ease;flex-basis:0}.seg.untouched{background:var(--stage-untouched)}.seg.learning{background:var(--stage-learning)}.seg.reviewing{background:var(--stage-reviewing)}.seg.retaining{background:var(--stage-retaining)}.swatch{border:1px solid var(--bar-line);vertical-align:-.1em;border-radius:50%;width:.9rem;height:.9rem;display:inline-block}.hy-sub{opacity:.7;font-size:.9rem}.hy-grid{flex:1;grid-template-columns:repeat(auto-fit,minmax(16.5rem,1fr));align-content:start;gap:clamp(.75rem,2.5vh,1.25rem);min-height:0;padding:.2rem .2rem .5rem;display:grid;overflow-y:auto}.hy-card{animation:.48s ease-out backwards rise-in;animation-delay:calc(var(--i,0) * 70ms);background:var(--card);border:1px solid var(--card-border);box-shadow:var(--card-shadow);transition:transform var(--t) ease, box-shadow var(--t) ease;border-radius:12px;flex-direction:column;gap:.45rem;padding:.8rem 1rem .9rem;display:flex}.hy-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0000001a}.hy-card.bagged{border-color:var(--stage-retaining);box-shadow:inset 0 0 0 1px var(--stage-retaining)}.hy-head{align-items:center;gap:.4rem;font-size:.78rem;display:flex}.hy-weight{opacity:.65;margin-left:auto}.hy-card h3{align-items:center;gap:.5rem;font-size:1.2rem;line-height:1.15;display:flex}.hy-card h3 a{color:var(--text);transition:transform var(--t) ease, box-shadow var(--t) ease;border-radius:6px;text-decoration:none}.hy-card h3 a:hover,.hy-card h3 a:focus-visible{transform:translateY(-1px)scale(1.03);box-shadow:0 4px 12px #0000001f}.hy-peak{color:var(--stage-retaining);flex:none}.hy-foot{font-size:.82rem}.hy-dots{flex-wrap:wrap;gap:.3rem;display:flex}.hy-dot{border:1px solid var(--line);cursor:pointer;width:.95rem;height:.95rem;transition:transform .12s ease, opacity var(--t) ease;border-radius:50%;padding:0}.hy-dot:hover,.hy-dot:focus-visible{transform:scale(1.25)}.hy-dot.dim{opacity:.35}.hy-dot.untouched{background:var(--stage-untouched)}.hy-dot.learning{background:var(--stage-learning)}.hy-dot.reviewing{background:var(--stage-reviewing)}.hy-dot.retaining{background:var(--stage-retaining)}.overlay{background:var(--overlay);z-index:20;place-items:center;padding:1rem;animation:.18s ease-out both fade-in;display:grid;position:fixed;inset:0}.panel{background:var(--surface);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;gap:1rem;width:min(100%,34rem);max-height:calc(100dvh - 2rem);padding:1.3rem 1.5rem 1.5rem;animation:.26s cubic-bezier(.2,.9,.3,1.1) both pop-in;display:flex;overflow-y:auto;box-shadow:0 18px 48px #0000002e}.panel .btn{border-radius:6px}.panel-head{align-items:center;gap:.6rem;display:flex}.panel-head h2{align-items:center;gap:.6rem;font-size:1.4rem;display:flex}.panel-head .close{border:1px solid var(--line);width:1.7rem;height:1.7rem;color:var(--text);transition:background-color var(--t) ease, color var(--t) ease;background:0 0;border-radius:6px;place-items:center;margin-left:auto;display:grid}.panel-head .close:hover{background:var(--stage-untouched)}.panel label{flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:500;display:flex}.panel .field{border-radius:6px;padding:.4rem .65rem;font-size:.9rem}.panel .btn{border-radius:6px;padding:.2rem .6rem;font-size:.8rem}.panel .btn.link{padding:.2rem 0}.panel .grid2{grid-template-columns:1fr 1fr;gap:.8rem 1rem;display:grid}.panel .grid2 .wide{grid-column:1/-1}.panel .yourcode{border:1px solid var(--card-border);border-radius:6px;justify-content:space-between;align-items:center;gap:.8rem;padding:.5rem .7rem;font-size:.78rem;display:flex}.panel .yourcode .codetext{word-break:break-word;flex-direction:column;gap:.1rem;min-width:0;display:flex}.panel .yourcode strong{font-size:.95rem}.panel .yourcode .copy{flex:none;justify-content:center;align-items:center;gap:.35rem;min-width:4.6rem;display:inline-flex}.panel .row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.panel .row .link{margin-left:auto}.panel .error{margin:0;font-size:.85rem;font-weight:600}.panel .switchrow{border:1px solid var(--card-border);border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem .7rem;display:flex}.panel .switchrow strong{font-size:.85rem}.panel .switchrow .btn{min-width:3rem}.panel .btn.logout{align-items:center;gap:.35rem;display:inline-flex}.panel.celebrate{text-align:center;align-items:center;gap:.5rem;width:min(100%,24rem)}.mc-hiker{width:auto;height:9rem;color:var(--text);overflow:visible}.mc-kicker{letter-spacing:.06em;text-transform:uppercase;opacity:.6;margin:.4rem 0 0;font-size:.85rem}.panel.celebrate h2{font-size:1.9rem}.mc-more{opacity:.6;margin:0;font-size:.8rem}.panel.celebrate .btn{margin-top:.6rem}.panel.milestones{width:min(100%,40rem)}.mcount{opacity:.6;font-size:.85rem}.mgrid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.mcard{background:var(--card);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:12px;flex-direction:column;gap:.4rem;padding:.8rem .9rem;display:flex}.mcard.done{border-color:var(--stage-retaining);box-shadow:inset 0 0 0 1px var(--stage-retaining)}.mtop{font-family:var(--heading);align-items:center;gap:.55rem;font-size:1rem;line-height:1.15;display:flex}.mcheck{border:1px solid var(--line);border-radius:5px;flex:none;place-items:center;width:1.2rem;height:1.2rem;display:grid}.mcard.done .mcheck{background:var(--stage-retaining);border-color:var(--stage-retaining);color:#fff}.mwhen{font-size:.8rem;font-weight:600}.mtrack{border:1px solid var(--bar-line);border-radius:var(--bar-radius);background:var(--stage-untouched);height:.9rem;overflow:hidden}.mfill{background:var(--text);height:100%;transition:width .7s cubic-bezier(.22,1,.36,1)}.mtext{opacity:.75;font-size:.78rem}.mtabs{flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;display:flex}.mtab{border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.45rem;padding:.35rem .75rem;font-size:.85rem;display:inline-flex}.mtab.on{border-color:var(--text);background:var(--text);color:var(--bg,#fff)}.mtabcount{opacity:.65;font-size:.75rem}.panel.nudge-panel{width:min(100%,36rem)}.nudge-figure{width:auto;height:7.5rem;color:var(--text);flex:none;align-self:center;overflow:visible}.nudge-figure path{stroke:currentColor;stroke-width:6px;stroke-linejoin:round}.nudge-intro{opacity:.75;margin:0;font-size:.9rem}.nudge-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.nudge-row{text-align:left;background:var(--card);border:1px solid var(--card-border);width:100%;color:var(--text);transition:border-color var(--t) ease, transform var(--t) ease;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem .75rem;display:flex}.nudge-row:hover,.nudge-row:focus-visible{border-color:var(--line);transform:translateY(-1px)}.nudge-name{flex-direction:column;min-width:0;display:flex}.nudge-name strong{font-size:.9rem}.nudge-name small{opacity:.65;font-size:.74rem}.nudge-when{white-space:nowrap;opacity:.8;flex:none;align-items:center;gap:.5rem;font-size:.76rem;display:flex}.nudge-step{border:1px solid var(--line);border-radius:6px;padding:0 .45rem;font-size:.7rem;line-height:1.5}.nudge-more{opacity:.65;margin:0;font-size:.8rem}.meta button.status{color:var(--text);font:inherit;font-size:.8rem;line-height:inherit;cursor:pointer;transition:border-color var(--t) ease;background:0 0}.meta button.status:hover,.meta button.status:focus-visible{border-color:var(--text)}.panel.status-modal{width:min(100%,26rem)}.sp-summary{font-family:var(--heading);margin:0;font-size:1rem;font-weight:700;line-height:1.25}.sp-bars{flex-direction:column;gap:.4rem;display:flex}.sp-row{grid-template-columns:2.6rem 1fr 4.2rem;align-items:center;gap:.5rem;font-size:.76rem;display:grid}.sp-name{opacity:.7}.sp-val{text-align:right;white-space:nowrap}.sp-track{border:1px solid var(--bar-line);border-radius:var(--bar-radius);background:var(--stage-untouched);height:.65rem;overflow:hidden}.sp-fill{transform-origin:0;height:100%;animation:.5s cubic-bezier(.22,1,.36,1) both sp-grow;display:block}@keyframes sp-grow{0%{transform:scaleX(0)}}.sp-fill.exam{background:var(--text)}.sp-fill.early{background:var(--good-text)}.sp-fill.late{background:var(--stage-retaining)}.sp-grid{grid-template-columns:1fr 1fr;gap:.7rem 1rem;margin:0;display:grid}.sp-grid dt{opacity:.65;font-size:.72rem}.sp-grid dd{flex-direction:column;margin:0;font-weight:600;display:flex}.sp-grid dd small{opacity:.7;font-size:.74rem;font-weight:400}@media (prefers-reduced-motion:reduce){.sp-fill{animation:none}}.meta button.status{margin-top:.2rem}.panel.subtopic{width:min(100%,34rem);max-height:calc(100svh - 2rem);overflow-y:auto}.panel.subtopic h2{font-size:1.5rem}.stages{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.stage-btn{border:1px solid var(--line);color:var(--text);text-transform:capitalize;background:0 0;border-radius:6px;padding:.5rem .4rem;font-weight:600}.stage-btn.current{outline:2px solid var(--text);outline-offset:2px}.stage-btn.untouched{background:var(--stage-untouched)}.stage-btn.learning{background:var(--stage-learning)}.stage-btn.reviewing{background:var(--stage-reviewing)}.stage-btn.retaining{background:var(--stage-retaining);color:#fff}.stage-btn.untouched{color:var(--text)}.stage-btn.learning,.stage-btn.reviewing{color:#111}.reviewed{opacity:.7;margin:-.4rem 0 0;font-size:.85rem}.outcomes{flex-direction:column;gap:.4rem;margin:.4rem 0 0;padding-left:0;font-size:.9rem;list-style:none;display:flex}.outcomes .loa{border:1px solid var(--line);border-radius:999px;margin-right:.4rem;padding:0 .45rem;font-size:.7rem;font-weight:600;display:inline-block}.tally{opacity:.65;font-size:.8rem;font-weight:400}.panel .check{cursor:pointer;flex-direction:row;align-items:flex-start;gap:.55rem;font-size:.9rem;font-weight:400;display:flex}.panel .check input{accent-color:var(--stage-retaining);flex:none;margin-top:.2rem}.panel .check .loa{text-align:center;flex:none;min-width:3.1rem;margin-top:.1rem;margin-right:0}.panel .check input:checked~.otext{opacity:.55;text-decoration:line-through}.reviewed .btn.link{padding:0;text-decoration:underline;display:inline}.treemap{flex:1;width:100%;min-height:0;animation:.38s cubic-bezier(.2,.8,.3,1) backwards view-from-left;position:relative}.tm-topic{background:var(--card);border:1px solid var(--card-border);box-shadow:var(--card-shadow);pointer-events:none;border-radius:12px;animation:.32s ease-out backwards fade-in;position:absolute}.tm-topic-label{font-family:var(--heading);white-space:nowrap;text-overflow:ellipsis;pointer-events:auto;padding:.1rem .5rem;font-size:.8rem;font-weight:700;line-height:1.4;display:block;overflow:hidden}.tm-topic-label .w{font-family:var(--sans);opacity:.6;margin-left:.3rem;font-weight:400}.tile{border:1px solid var(--bar-line);text-align:left;color:var(--text);background:0 0;border-radius:12px;align-items:flex-end;padding:.4rem;display:flex}.tile:focus-visible{outline:2px solid var(--text);outline-offset:2px}.tile .label{background:var(--card);color:var(--text);border-radius:8px;flex-direction:column;width:100%;padding:.3rem .45rem;display:flex}.tile.untouched{background:var(--stage-untouched)}.tile.learning{background:var(--stage-learning)}.tile.reviewing{background:var(--stage-reviewing)}.tile.retaining{background:var(--stage-retaining)}.tm-tile{transition:background-color var(--t) ease, transform var(--t) ease, box-shadow var(--t) ease;border-width:1px;border-radius:2px;padding:2px;animation:.38s cubic-bezier(.2,.9,.3,1.1) backwards tile-in;position:absolute;overflow:hidden}.tm-tile .label{border-radius:1px;padding:.15rem .3rem}.tm-tile .name{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.72rem;font-weight:600;line-height:1.15;display:-webkit-box;overflow:hidden}.tm-tile:hover,.tm-tile:focus-visible{z-index:2;transform:scale(1.04);box-shadow:0 8px 20px #0000001a}.tm-tile:active{transform:scale(.98)}.tm-tile.dim{opacity:.3}.tm-tile.dim:hover,.tm-tile.dim:focus-visible{opacity:1}.mountain{--ink:#231f20;--dot:#000;--soft:.26;--dots:1;--ground:var(--stage-untouched);width:100%;margin-top:.25rem;position:relative}:root[data-theme=dark] .mountain{--ink:#dcdfdf;--dot:#ececec;--soft:.12;--dots:.6;--ground:var(--stage-untouched)}.mtn-art{height:100%;position:absolute;top:0;overflow:visible}.mtn-art .fade-top{stop-color:#fff;stop-opacity:1}.mtn-art .fade-bottom{stop-color:#fff;stop-opacity:.6}.mtn-art .dot{fill:var(--dot);fill-opacity:var(--dots)}.mtn-art .snow{fill:var(--ground)}.mtn-art .ink{fill:var(--ink)}.mtn-art .line{fill:none;stroke:var(--ink);stroke-width:.12rem;stroke-linejoin:round;stroke-linecap:round}.mtn-art .line.thin{stroke-width:.08rem}.mtn-art .line.pole{stroke-width:.11rem}.mtn-art .planted{transform-box:fill-box;transform-origin:50% 100%;animation:.52s cubic-bezier(.34,1.56,.64,1) backwards plant;animation-delay:var(--d,0s)}@keyframes plant{0%{opacity:0;transform:scaleY(.05)rotate(-12deg)}}.mtn-art .climbed{fill:none;stroke:var(--stage-retaining);stroke-width:2.4px;stroke-dasharray:8 4;stroke-linejoin:round;stroke-linecap:butt}.mtn-art .accent{fill:var(--stage-retaining)}.mtn-art .you-pulse{fill:var(--stage-retaining);opacity:0;transform-box:fill-box;transform-origin:50%;animation:2.2s ease-out infinite you-pulse}@keyframes you-pulse{0%{opacity:.45;transform:scale(1)}70%,to{opacity:0;transform:scale(3)}}@media (prefers-reduced-motion:reduce){.mtn-art .you-pulse{animation:none}}.mtn-art .you{fill:var(--bg);stroke:var(--stage-retaining);stroke-width:2px}.mtn-art .today{fill:var(--ink);stroke:var(--bg);stroke-width:1.5px}.mtn-art path,.mtn-art circle{vector-effect:non-scaling-stroke}.pace{padding-top:5.8rem;position:relative}.pacebar{border:1px solid var(--bar-line);border-radius:var(--bar-radius);height:.95rem;position:relative}.pacebar .track{border-radius:calc(var(--bar-radius) - 1px);background:var(--stage-untouched);position:absolute;inset:0;overflow:hidden}.pacebar .fill{height:100%;transition:width .8s cubic-bezier(.22,1,.36,1);display:flex}.pacebar .part{flex-basis:0;min-width:0;transition:flex-grow .8s cubic-bezier(.22,1,.36,1)}.part.retaining{background:var(--stage-retaining)}.part.reviewing{background:var(--stage-reviewing)}.part.learning{background:var(--stage-learning)}.pacebar .gap{background:repeating-linear-gradient(135deg, var(--text) 0 1px, transparent 1px 5px);opacity:.35;transition:left .8s cubic-bezier(.22,1,.36,1),width .8s cubic-bezier(.22,1,.36,1);position:absolute;top:0;bottom:0}.pacebar .here{background:var(--text);width:3px;box-shadow:0 0 0 1.5px var(--bg);margin-left:-1.5px;transition:left .8s cubic-bezier(.22,1,.36,1);position:absolute;top:-.3rem;bottom:-.3rem}.pacebar .hiker{width:auto;height:5.6rem;color:var(--text);transition:left .8s cubic-bezier(.22,1,.36,1);position:absolute;bottom:calc(100% + .2rem);overflow:visible;transform:translate(-50%)}.pacebar .hiker.rest{height:2.1rem}.pacebar .zone{background-image:radial-gradient(var(--text) .75px, transparent 1px);background-size:3px 3px;position:absolute;top:0;bottom:0;right:0}:root[data-theme=dark] .pacebar .zone{opacity:.6}.pacebar .mark{background:linear-gradient(var(--text), var(--text)) center / 1px 100% no-repeat;width:.7rem;margin-left:-.35rem;position:absolute;top:0;bottom:0}.pacebar .forecast{border-left:1px dashed var(--text);margin-left:-1px;transition:left .8s cubic-bezier(.22,1,.36,1);position:absolute;top:-.2rem;bottom:-.2rem}.plan{flex:1 1 0;min-width:0;font-size:.8rem}.plan p{margin:0}.plan .strategy a{color:var(--text);font-weight:600}.nudge{background:var(--stage-reviewing);color:#000;border-radius:6px;align-items:center;gap:.6rem;padding:.15rem .55rem;display:inline-flex}.nudge .btn.link{color:inherit;flex:none;padding:0;text-decoration:underline}.searchbox{width:100%}.sb-field{background:var(--card);border:1px solid var(--line);border-radius:6px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.8rem;line-height:1.5;display:flex}.sb-field:focus-within{box-shadow:inset 0 0 0 1px var(--text);outline:none}.sb-field input{min-width:0;font-size:inherit;line-height:inherit;background:0 0;border:0;outline:0;flex:1;padding:0}.sb-clear{width:1.1rem;height:1.1rem;color:var(--text);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.sb-clear:focus{outline:none}.sb-clear:focus-visible{outline:2px solid var(--text);outline-offset:1px}.sresults{background:var(--card);border:1px solid var(--card-border);min-height:0;box-shadow:var(--card-shadow);border-radius:12px;flex:1;padding:0 .8rem .6rem;overflow-y:auto}.sr-head{z-index:1;background:var(--bg);align-items:center;gap:1rem;padding:.6rem 0 .4rem;font-size:.9rem;font-weight:600;display:flex;position:sticky;top:0}.sr-head .btn{margin-left:auto}.sr-group{font-family:var(--heading);padding:.7rem .4rem .2rem;font-size:.85rem;font-weight:700}.sr-group span{font-family:var(--sans);opacity:.55;margin-left:.25rem;font-weight:400}.sr-row{text-align:left;width:100%;color:var(--text);background:0 0;border:0;border-radius:6px;grid-template-columns:1fr auto;gap:0 .8rem;padding:.4rem;font-size:.88rem;display:grid}.sr-row.active{background:var(--stage-untouched)}.sr-text{min-width:0;font-weight:600}.sr-meta{white-space:nowrap;align-items:center;gap:.6rem;font-size:.75rem;display:flex}.sr-where{opacity:.6;grid-column:1/-1;font-size:.76rem}.sr-stage{align-items:center;gap:.3rem;display:inline-flex}.sdot{border:1px solid var(--line);border-radius:3px;width:.65rem;height:.65rem}.sdot.untouched{background:var(--stage-untouched)}.sdot.learning{background:var(--stage-learning)}.sdot.reviewing{background:var(--stage-reviewing)}.sdot.retaining{background:var(--stage-retaining)}.sr-loa{border:1px solid var(--line);border-radius:999px;padding:0 .4rem;font-weight:600}.sr-row mark{background:var(--stage-reviewing);color:#000;border-radius:2px}.sr-none{opacity:.65;max-width:28rem;margin:0 .4rem;font-size:.85rem}.sr-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.8rem;padding:1.2rem .4rem;display:flex}.sr-hiker{width:auto;height:8rem;color:var(--text);flex:none}.dropdown{display:inline-block;position:relative}.dd-trigger{appearance:none;font:inherit;color:var(--text);text-align:left;background:transparent var(--chevron) no-repeat right .55rem center / .65rem;border:1px solid var(--line);cursor:pointer}.dropdown.small .dd-trigger{border-radius:5px;padding:.05rem 1.6rem .05rem .45rem;font-size:.74rem;line-height:1.4}.dropdown.field{display:block}.dropdown.field .dd-trigger{background-position:right .65rem center;background-size:.7rem;border-radius:6px;width:100%;padding:.4rem 1.9rem .4rem .65rem;font-size:.9rem}.dd-menu{background:var(--surface);border:1px solid var(--line);z-index:30;border-radius:8px;width:max-content;min-width:100%;max-width:20rem;margin:0;padding:.25rem;list-style:none;animation:.12s ease-out both fade-in;position:absolute;top:calc(100% + .3rem);box-shadow:0 8px 20px #0000001f}.dd-menu.left{left:0}.dd-menu.right{right:0}.dd-menu li{cursor:pointer;border-radius:5px;justify-content:space-between;align-items:center;gap:1rem;padding:.25rem .5rem;font-size:.8rem;display:flex}.dd-menu li.active{background:var(--stage-untouched)}.dlist{flex-direction:column;flex:1;gap:.6rem;min-height:0;animation:.38s cubic-bezier(.2,.8,.3,1) backwards view-from-right;display:flex}.dl-controls{flex-wrap:wrap;flex:none;align-items:center;gap:.3rem;display:flex}.dl-controls .btn.small{border-radius:6px;align-items:center;gap:.3rem;padding:.05rem .45rem;font-size:.74rem;font-weight:400;line-height:1.4;display:inline-flex}.dl-count{opacity:.65}.dl-dot{border:1px solid var(--bar-line);border-radius:2px;width:.65rem;height:.65rem}.dl-dot.untouched,.dl-strip i.untouched{background:var(--stage-untouched)}.dl-dot.learning,.dl-strip i.learning{background:var(--stage-learning)}.dl-dot.reviewing,.dl-strip i.reviewing{background:var(--stage-reviewing)}.dl-dot.retaining,.dl-strip i.retaining{background:var(--stage-retaining)}.dl-sort{align-items:center;gap:.4rem;margin-left:auto;font-size:.74rem;display:inline-flex}.dl-scroll{border-top:1px solid var(--card-border);flex:1;min-height:0;padding-bottom:.5rem;overflow-y:auto}.dl-empty{text-align:center;opacity:.65;margin:1.5rem 0}.dl-topic{z-index:1;background:var(--bg);border-bottom:1px solid var(--card-border);align-items:center;gap:.9rem;margin-bottom:.3rem;padding:.7rem .2rem .35rem;display:flex;position:sticky;top:0}.dl-topic h3{font-size:1.05rem}.dl-locked{opacity:.65;font-size:.8rem}.dl-strip{gap:2px;margin-left:auto;display:flex}.dl-strip i{border:1px solid var(--line);border-radius:2px;width:.6rem;height:.6rem}.dl-row{--stripe:var(--stage-untouched);--tint:transparent;background:var(--tint);width:100%;box-shadow:inset 4px 0 0 var(--stripe);color:var(--text);text-align:left;border:0;border-radius:4px;grid-template-columns:minmax(0,1fr) 9.6rem 13rem 7.4rem;align-items:center;gap:0 .9rem;margin-bottom:2px;padding:.32rem .7rem .32rem .85rem;font-size:.88rem;display:grid}.dl-row:hover{outline:1px solid var(--text);outline-offset:-1px}.dl-row.untouched{--stripe:var(--line);--tint:var(--stage-untouched)}.dl-row.learning{--stripe:var(--stage-learning);--tint:color-mix(in srgb, var(--stage-learning) 32%, transparent)}.dl-row.reviewing{--stripe:var(--stage-reviewing);--tint:color-mix(in srgb, var(--stage-reviewing) 36%, transparent)}.dl-row.retaining{--stripe:var(--stage-retaining);--tint:#d6336c26}.dl-name{align-items:center;gap:.5rem;min-width:0;font-weight:600;display:flex}.dl-note{opacity:.6;flex:none}.dl-topic-tag{opacity:.6;white-space:nowrap;font-size:.74rem;font-weight:400}.dl-tagcell{justify-self:end;gap:.3rem;display:flex}.dl-tag{white-space:nowrap;border-radius:6px;padding:0 .5rem;font-size:.72rem;line-height:1.5;display:inline-block}.dl-tag.fading{background:var(--stage-retaining);color:#fff}.dl-tag.stale{border:1px solid var(--stage-retaining);color:var(--stage-retaining)}.dl-tag.highyield{border:1px solid var(--line)}.dl-when{text-align:center;opacity:.75;white-space:nowrap;font-size:.78rem}.dl-stage{text-align:center;border:1px solid var(--line);border-radius:6px;justify-self:stretch;padding:0 .5rem;font-size:.76rem;line-height:1.5}.dl-stage.untouched{background:var(--stage-untouched);color:var(--text)}.dl-stage.learning{background:var(--stage-learning);color:#111}.dl-stage.reviewing{background:var(--stage-reviewing);color:#111}.dl-stage.retaining{background:var(--stage-retaining);color:#fff}.et-body{flex-direction:column;flex:1;gap:.7rem;min-height:0;display:flex}.et-discs{flex:none;grid-template-columns:repeat(4,1fr);gap:.6rem;display:grid}.et-disc{background:var(--card);border:1px solid var(--card-border);box-shadow:var(--card-shadow);color:var(--text);text-align:left;transition:transform var(--t) ease, box-shadow var(--t) ease;border-radius:12px;align-items:center;gap:.45rem;padding:.5rem .7rem;display:flex}.et-disc:hover,.et-disc:focus-visible{transform:translateY(-2px);box-shadow:0 8px 20px #0000001a}.et-disc-name{font-family:var(--heading);min-width:0;font-size:.95rem;font-weight:700}.et-fading,.et-clear{white-space:nowrap;margin-left:auto;font-size:.72rem}.et-fading{color:var(--stage-retaining);font-weight:600}.et-clear{color:var(--good-text);align-items:center;gap:.2rem;font-weight:600;display:inline-flex}.et-list{flex-direction:column;flex:1;gap:.4rem;min-height:0;margin:0;padding:.1rem .2rem .3rem;list-style:none;display:flex;overflow-y:auto}.et-row{background:var(--card);border:1px solid var(--card-border);width:100%;color:var(--text);text-align:left;transition:border-color var(--t) ease;border-radius:8px;align-items:center;gap:.7rem;padding:.5rem .8rem;display:flex}.et-row:hover,.et-row:focus-visible{border-color:var(--line)}.et-dot{border:1px solid var(--line);border-radius:50%;flex:none;width:.8rem;height:.8rem}.et-dot.reviewing{background:var(--stage-reviewing)}.et-dot.retaining{background:var(--stage-retaining)}.et-name{flex-direction:column;flex:1;min-width:0;display:flex}.et-name strong{font-size:.9rem}.et-name small{opacity:.65;font-size:.74rem}.et-tag{background:var(--stage-retaining);color:#fff;border-radius:6px;flex:none;padding:0 .5rem;font-size:.72rem;line-height:1.5}.et-when{opacity:.7;white-space:nowrap;flex:none;font-size:.78rem}.et-rest{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.35rem;min-height:0;display:flex}.et-fire{width:min(15rem,60%);height:auto;max-height:55%;margin-bottom:.4rem}:root[data-theme=dark] .et-fire{filter:invert()}.et-rest-title{font-family:var(--heading);margin:0;font-size:1.15rem;font-weight:700}.et-rest-note{opacity:.7;margin:0;font-size:.85rem}.dash{--gap:clamp(.9rem, 3vh, 1.75rem);gap:var(--gap);flex-direction:column;max-width:64rem;height:100dvh;min-height:46rem;margin:0 auto;padding:clamp(1.25rem,5vh,3rem) clamp(1.25rem,6vw,4rem);display:flex}.dash .bar{--ctl-h:calc(1.6rem + 2px);flex:none;grid-template-columns:1fr 1fr;align-items:center;gap:.6rem 1.2rem;display:grid}.dash .bar-right{align-items:flex-end;gap:.35rem;min-width:0;display:flex}.dash .bar-search-slot{min-width:0;height:var(--ctl-h);flex:1;position:relative}.dash .bar-search{width:200%;position:absolute;top:0;right:0}.dash .hello{letter-spacing:-.02em;font-size:1.8rem}.dash .tools{align-items:flex-end;gap:.35rem;display:flex}.dash .tools .btn,.modes button{font-size:.8rem;font-weight:500}.dash .tools .btn{white-space:nowrap;height:var(--ctl-h);flex:none;align-items:center;padding-block:0;display:inline-flex}.dash .tools .icon-btn{justify-content:center;padding-inline:.45rem}.dash .bar .sb-field,.modes{height:var(--ctl-h)}.modes-wrap{flex-direction:column;gap:.15rem;display:flex}.eyebrow{letter-spacing:.09em;text-transform:uppercase;opacity:.6;text-align:center;font-size:.6rem;font-weight:600;line-height:1}.modes{align-items:stretch;gap:.25rem;display:inline-flex}.modes button{border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;white-space:nowrap;transition:transform var(--t) ease, background-color var(--t) ease, border-color var(--t) ease, box-shadow var(--t) ease, color var(--t) ease;border-radius:6px;padding:0 .7rem;font-size:.8rem;font-weight:500}.modes button:hover{border-color:var(--bar-line);transform:translateY(-1px)scale(1.03);box-shadow:0 4px 12px #0000001f}.modes button.on{border-color:var(--text);background:var(--text);color:var(--bg)}.modes button:focus-visible{outline:2px solid var(--text);outline-offset:-3px}.btn.small{border-radius:6px;padding:.2rem .6rem;font-size:.8rem}.btn.toggle.on{border-color:var(--text);background:var(--text);color:var(--bg)}.dash main{min-height:0;margin-bottom:calc(.5rem - var(--gap));flex-direction:column;flex:1;gap:.6rem;display:flex}.cards{flex:1;grid-template-rows:repeat(2,minmax(6.8rem,auto));grid-template-columns:repeat(2,1fr);align-content:end;gap:clamp(.75rem,2.5vh,1.5rem);width:100%;min-height:0;display:grid}.card{animation:.48s ease-out backwards rise-in;animation-delay:calc(var(--i,0) * 70ms);background:var(--card);border:1px solid var(--card-border);box-shadow:var(--card-shadow);min-height:0;transition:transform var(--t) ease, box-shadow var(--t) ease, border-color var(--t) ease;cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;gap:clamp(.3rem,.7vh,.4rem);padding:clamp(.6rem,1.5vh,1rem) clamp(.8rem,1.6vw,1.3rem);display:flex}.card:hover{border-color:var(--bar-line);transform:translateY(-3px);box-shadow:0 8px 20px #0000001a}.card h3{font-size:clamp(1rem,1vw + .55rem,1.3rem);line-height:1.15}.card .count,.subhead .count{line-height:1.1;font-family:var(--heading);flex-direction:column;align-items:flex-end;font-size:clamp(.95rem,1.2vw + .4rem,1.2rem);display:flex}.count strong{font-size:1.5em}.count small{font-family:var(--sans);opacity:.65;font-size:.65rem}.card h3 a{color:var(--text);text-decoration:none}.card h3,.dash main h2.with-icon{align-items:center;gap:.6rem;display:flex}.subhead{flex-wrap:wrap;flex:none;align-items:center;gap:.3rem 1rem;min-height:2.8rem;display:flex}.subhead h2{font-size:1.3rem}.back{color:var(--text);transition:transform var(--t) ease, box-shadow var(--t) ease;border-radius:6px;font-weight:500;text-decoration:none;display:inline-block}.back:hover,.back:focus-visible{transform:translateY(-1px)scale(1.03);box-shadow:0 4px 12px #0000001f}.overall{flex:none;padding-top:0}.overall .inner{flex-direction:column;gap:.4rem;display:flex}.overall .meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;font-size:.85rem;display:flex}.legend{flex-wrap:wrap;gap:.2rem .9rem;margin:0;padding:0;font-size:.75rem;list-style:none;display:flex}.legend li{align-items:center;gap:.35rem;display:flex}.seg-swatch{display:inline-flex;overflow:hidden}.seg-swatch .seg{width:100%;height:100%}.foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem 1rem;min-height:1.5rem;display:flex}.meta .when{flex-wrap:wrap;align-items:baseline;gap:.3rem .9rem;display:flex}.meta .when>span{border:1px solid #0000;margin-top:.2rem;font-size:.8rem}.meta .status{border:1px solid var(--line);border-radius:6px;padding:0 .5rem;font-size:.8rem}.meta .status.good{background:var(--good-bg);border-color:var(--good-border);color:var(--good-text);font-weight:600}.overall .outlook{flex-wrap:wrap;gap:0 .9rem;min-height:1.25rem;font-size:.8rem;display:flex}.view-toggle{gap:.4rem;margin-left:auto;display:inline-flex}.view-toggle .btn.on{border-color:var(--text);background:var(--text);color:var(--bg)}.subhead .count{margin-left:.5rem}.overall .meta{justify-content:space-between}.overall .meta .when{margin-left:auto}.progress-line{font-size:.95rem}.card-foot{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;font-size:.85rem;display:flex}.card-foot .mood{opacity:.65;font-size:.7rem}.card .stagebar{border-width:1px;height:.65rem}.overall .legend{margin-left:auto}.subhead{animation:.32s ease-out backwards fade-in}.subhead .count{font-family:var(--sans);text-align:left;font-size:.85rem;line-height:1.5;display:block}.subhead .count strong{font-family:inherit;font-size:inherit}.card-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.card .attn{color:var(--text);background:0 0;border:0;border-radius:0;flex:none;padding:.05rem 0;font-size:.72rem;line-height:1.3}.card .attn.btn:hover:not(:disabled){background:var(--card);color:var(--text);border-radius:6px;transform:translateY(-1px)scale(1.03);box-shadow:0 4px 12px #0000001f}.card .allclear{opacity:.6;flex:none;font-size:.78rem}.subhead.syllabus{height:1.3rem;min-height:0;margin-top:auto}.subhead.syllabus h2{font-size:1.05rem}.subhead.syllabus+.cards{flex:1 1 0;grid-template-rows:repeat(2,minmax(6.8rem,1fr));min-height:14.4rem;max-height:20.5rem}.login{flex-direction:column;gap:1rem;max-width:28rem;margin:0 auto;padding:4rem 1.5rem;display:flex}.wordmark{letter-spacing:-.03em;white-space:nowrap;font-size:min(6.5rem,17vw)}.wordmark.small{font-size:2.2rem}.login.landing{text-align:center;justify-content:center;align-items:center;max-width:40rem;min-height:100svh;padding-block:2rem}.landing .btn{border-radius:6px;align-self:center;min-width:7rem;padding:.2rem .9rem;font-size:.8rem}.btn.link{color:var(--text);background:0 0;border:0;align-self:flex-start;padding:.3rem 0;font-weight:500}.login form{flex-direction:column;gap:.6rem;display:flex}.login label{font-weight:600}.login hr{border:0;border-top:1px solid var(--border);width:100%;margin:1rem 0 0}.login .exams{flex-direction:column;gap:.6rem;display:flex}.login .code{font-family:var(--heading);word-break:break-word;border:1px solid var(--line);border-radius:12px;padding:1rem;font-size:1.6rem;font-weight:700}.login .error{margin:0;font-weight:600}.login>*{animation:.56s cubic-bezier(.2,.8,.3,1) backwards rise-in}.login>:nth-child(2){animation-delay:90ms}.login>:nth-child(3){animation-delay:.18s}.login>:nth-child(4){animation-delay:.27s}.login>:nth-child(5){animation-delay:.36s}.codeform{flex-direction:column;gap:.7rem;width:min(100%,20rem);margin-top:1rem;display:flex}.codeinput{border:1px solid var(--line);text-align:center;background:0 0;border-radius:8px;width:100%;padding:.35rem .6rem;font-size:.9rem}.codeinput:focus-visible{box-shadow:inset 0 0 0 1px var(--text);outline:none}.codeform .error{text-align:center;font-size:.85rem}.login .btn{border-radius:6px}.tooltip{z-index:9999;background:var(--text);max-width:min(20rem,100vw - 1rem);color:var(--bg);text-align:center;pointer-events:none;opacity:0;border-radius:8px;padding:.5rem .7rem;font-size:.78rem;font-weight:500;line-height:1.35;position:fixed;box-shadow:0 6px 18px #00000038}.tooltip.on{opacity:1;animation:.14s both tip-in}.tooltip:after{content:"";left:var(--arrow);border:6px solid #0000;border-top-color:var(--text);margin-left:-6px;position:absolute;top:100%}.tooltip.below:after{border-top-color:#0000;border-bottom-color:var(--text);top:auto;bottom:100%}@keyframes tip-in{0%{opacity:0;transform:translateY(3px)}}@media (prefers-reduced-motion:reduce){.tooltip.on{animation:none}}
