@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:#fff;--surface:#fff;--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:"Syne", 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:18px/1.5 var(--sans);color:var(--text);background:var(--bg)}:root[data-theme=dark]{--bg:#0f0f10;--surface:#1b1b1d;--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{height:100dvh;overflow:hidden}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){background:var(--text);border-color:var(--text);color:var(--bg);transform:translateY(-1px)}.btn:active:not(:disabled):not(.link){transform:translateY(1px)}.btn.link:hover:not(:disabled){text-decoration:underline}.btn:disabled{opacity:.4;cursor:default}.btn.ghost{color:var(--text);background:0 0}.field{border:1px solid var(--text);background:0 0;border-radius:12px;width:100%;padding:.7rem .9rem}.btn:focus-visible{outline:3px 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}}.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(--text);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-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(--text);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(--text);color:var(--bg)}.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(--text);border-radius:8px;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(--text);border-radius:8px;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.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{border:1px solid var(--text);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(--text);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:1.5px solid var(--text);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}@media (width<=34rem){.mgrid{grid-template-columns:1fr}}.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(--text);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(--text);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(--text);color:var(--bg)}.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(--text);color:var(--text);text-transform:capitalize;background:0 0;border-radius:6px;padding:.5rem .4rem;font-weight:600}.stage-btn.current{outline:3px 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(--text);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{border:1px solid var(--text);pointer-events:none;border-radius:5px;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:1.5px solid var(--text);text-align:left;color:var(--text);background:0 0;border-radius:12px;align-items:flex-end;padding:.4rem;display:flex}.tile:focus-visible{outline:3px solid var(--text);outline-offset:2px}.tile .label{background:var(--bg);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 4px 14px #0000002e}.tm-tile:active{transform:scale(.98)}.tm-tile.dim{opacity:.3}.tm-tile.dim:hover,.tm-tile.dim:focus-visible{opacity:1}.mountain{--ink:#1c1c1c;--soft:.26;width:100%;margin-top:.25rem;position:relative}:root[data-theme=dark] .mountain{--ink:#ececec;--soft:.12}.mtn-art{height:100%;position:absolute;top:0;overflow:visible}.mtn-art .soft-top{stop-color:var(--ink);stop-opacity:var(--soft)}.mtn-art .soft-bottom{stop-color:var(--ink);stop-opacity:0}.mtn-art .ink{fill:var(--ink)}.mtn-art .line{fill:none;stroke:var(--ink);stroke-width:2.4px;stroke-linejoin:round;stroke-linecap:round}.mtn-art .line.thin{stroke-width:1.1px;stroke-opacity:.7}.mtn-art .line.pole{stroke-width:2px}.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:4px;stroke-linejoin:round;stroke-linecap:round}.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:3px}.mtn-art .today{fill:var(--ink);stroke:var(--bg);stroke-width:2px}.mtn-art path,.mtn-art circle{vector-effect:non-scaling-stroke}@media (height<=760px){.mountain{height:6rem;aspect-ratio:auto!important}}@media (height<=660px){.mountain{height:4.5rem}}@media (height<=560px){.mountain{display:none}}.pace{padding-top:3.2rem;position:relative}.pacebar{border:1.5px solid var(--text);border-radius:var(--bar-radius);height:.95rem;position:relative}.pacebar .track{border-radius:calc(var(--bar-radius) - 1.5px);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:2.7rem;color:var(--text);transition:left .8s cubic-bezier(.22,1,.36,1);position:absolute;bottom:calc(100% + .45rem);overflow:visible;transform:translate(-50%)}.pacebar .hiker.rest{height:2.1rem}.pacebar .forecast{border-left:2px 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{flex:0 12rem;min-width:8rem}.sb-field{border:1px solid var(--text);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-field kbd{font:inherit;border:1px solid var(--border);opacity:.55;border-radius:4px;padding:0 .3rem;font-size:.68rem;line-height:1.2}.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:hover{background:var(--text);color:var(--bg)}.sresults{border:1px solid var(--text);border-radius:12px;flex:1;min-height:0;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-tips{opacity:.55;margin-left:auto;font-size:.75rem;font-weight:400}.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(--text);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(--text);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;margin:.6rem .4rem;font-size:.85rem}.sr-empty{align-items:center;gap:1.2rem;padding:.6rem .4rem;display:flex}.sr-hiker{width:auto;height:6.5rem;color:var(--text);flex:none}.stagebar{border:1.5px solid var(--text);border-radius:var(--bar-radius);width:100%;height:.65rem;display:flex;overflow:hidden}.stagebar.sm{border-width:1px;height:.65rem}.stagebar.lg{border-width:1.5px;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:1.5px solid var(--text);vertical-align:-.1em;border-radius:50%;width:.9rem;height:.9rem;display:inline-block}.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:5px;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;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(--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(--text);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(--text);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) 5.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:#c6c6c6;--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:color-mix(in srgb, var(--stage-retaining) 14%, transparent)}:root[data-theme=dark] .dl-row.untouched{--stripe:#5a5a5e}.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}.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(--text)}.dl-when{text-align:center;opacity:.75;white-space:nowrap;font-size:.78rem}.dl-stage{text-align:center;border:1px solid var(--text);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}@media (width<=52rem){.dl-row{grid-template-columns:minmax(0,1fr) 7.4rem}.dl-tagcell,.dl-when{display:none}}.dash{--gap:clamp(.9rem, 3vh, 1.75rem);gap:var(--gap);flex-direction:column;max-width:64rem;height:100dvh;margin:0 auto;padding:clamp(1.25rem,5vh,3rem) clamp(1.25rem,6vw,4rem);display:flex;overflow:hidden}.dash .bar{flex-wrap:wrap;flex:none;align-items:center;gap:.6rem 1.2rem;display:flex}.dash .hello{letter-spacing:-.02em;font-size:1.8rem}.dash .tools{gap:.35rem;margin-left:auto;display:flex}.btn.small{border-radius:6px;padding:.2rem .6rem;font-size:.8rem}.btn.toggle.on{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);border:1px solid var(--text);min-height:0;transition:transform var(--t) ease, box-shadow var(--t) ease;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{transform:translateY(-3px);box-shadow:0 8px 20px #0000001a}.card h3{font-size:clamp(1.1rem,1.2vw + .6rem,1.5rem);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 a:hover,.card h3 a:focus-visible{text-decoration:underline}.card h3,.dash main h2.with-icon{align-items:center;gap:.6rem;display:flex}.subhead{flex:none;align-items:center;gap:1rem;height:2.8rem;display:flex}.subhead h2{font-size:1.3rem}.back{color:var(--text);font-weight:500;text-decoration:none}.back:hover,.back:focus-visible{text-decoration:underline}.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:center;gap:.3rem .9rem;display:flex}.meta .status{border:1px solid var(--text);border-radius:6px;padding:0 .5rem;font-size:.8rem}.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{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:.7}.card .stagebar{border-width:1.5px;height:.85rem}.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){color:var(--text);background:0 0;text-decoration:underline;transform:none}.card .allclear{opacity:.6;flex:none;font-size:.78rem}.subhead.syllabus{height:1.3rem;margin-top:auto}.subhead.syllabus h2{font-size:1.05rem}.subhead.syllabus+.cards{flex:none}.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:1.5px 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(--text);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(--text);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}
