:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--dsp:"Chakra Petch",ui-sans-serif,system-ui,sans-serif;--ui:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--comic:"Bangers",var(--dsp);--void:#050a18;--hull:#071023;--panel:#0e2a2c;--sunk:#08161f;--raise:#16393c;--ink:#eef5f6;--mut:#9ec3c2;--dim:#7ba0a2;--pale:#eef5f6;--paleink:#08181c;--palemut:#3d6a6c;--palerule:#bcd6d6;--line:#2b5c5c;--rule:#1c4042;--edge:#3f8688;--ac:#3fe0e8;--ac2:#a8f2f6;--acd:#062b30;--acl:#125b62;--dn:#4fdcb4;--dn2:#93ecd2;--dnd:#0a3b31;--dnl:#1f7c62;--wip:#f6dbc0;--wipd:#3a2f1e;--wipl:#6b5840;--vi:#6f66ee;--vi2:#c8c3ff;--vid:#181545;--vil:#463ea8;--block:#4b44d6;--blockink:#f3f2ff;--idle:#1f4547;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--gap:18px;font-family:var(--ui);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;color:#cde0e2;background:var(--void)}*{box-sizing:border-box}body{background:var(--void);margin:0;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0}a{color:inherit}input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ac);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.sky{z-index:0;pointer-events:none;background:radial-gradient(120% 90% at 22% 18%,#0d1a38 0%,#070f22 46%,var(--void) 80%);position:fixed;inset:0;overflow:hidden}.garg{opacity:.8;width:clamp(280px,34vw,500px);height:clamp(280px,34vw,500px);position:absolute;top:clamp(14px,8vh,96px);left:clamp(-150px,2vw,80px)}.garg:before{content:"";filter:blur(2.5px);background:linear-gradient(90deg,#0000 1%,#f6dbc057 16%,#3fe0e89e 38%,#eef5f6d1 50%,#3fe0e894 62%,#f6dbc052 84%,#0000 99%);border-radius:50%;height:4.6%;position:absolute;top:47.4%;left:-15%;right:-15%;transform:rotate(-13deg)}.garg:after{content:"";background:radial-gradient(circle,#02040e 0 58%,#02040ee6 76%,#0000 100%);border-radius:50%;position:absolute;inset:26%}.halo{border-radius:50%;position:absolute;inset:25%;box-shadow:0 0 0 1px #d6fafcad,0 0 26px 1px #3fe0e842,inset 0 0 30px 2px #3fe0e812}.sky.far{background:0 0}.sky.far .garg{opacity:.42;width:clamp(340px,32vw,560px);height:clamp(340px,32vw,560px);top:-270px;left:auto;right:-260px}.gate{z-index:1;place-items:center;min-height:100vh;padding:40px 22px;display:grid;position:relative}.hud{pointer-events:none;position:absolute;inset:26px}.corner{border:1px solid #3fe0e84d;width:26px;height:26px;position:absolute}.tl{border-bottom:0;border-right:0;top:0;left:0}.tr{border-bottom:0;border-left:0;top:0;right:0}.bl{border-top:0;border-right:0;bottom:0;left:0}.br{border-top:0;border-left:0;bottom:0;right:0}.hudbar{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#6d9295;flex-wrap:wrap;justify-content:center;gap:24px;font-size:11px;display:flex;position:absolute;bottom:-6px;left:0;right:0}.hudbar>span>b{color:var(--ac);font-weight:500}.pod{background:var(--panel);border:1px solid var(--line);width:100%;max-width:428px;animation:rise .32s var(--ease-out) both;border-radius:14px;padding:34px 32px 30px;position:relative;box-shadow:0 40px 90px -40px #000}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.pod.shake{animation:shake .4s var(--ease-in-out)}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.pod.deny{border-color:var(--vil)}.tag{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ac);align-items:center;gap:9px;font-size:11.5px;font-weight:500;display:flex}.pulse{background:var(--dn);border-radius:50%;flex:none;width:7px;height:7px}.gtitle{font-family:var(--dsp);letter-spacing:-.015em;color:var(--ink);margin:16px 0 8px;font-size:33px;font-weight:700;line-height:1.06}.gsub{color:var(--mut);margin:0 0 26px;font-size:14.5px;line-height:1.6}.field{margin-bottom:15px;display:block}.flabel{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:7px;font-size:11.5px;font-weight:500;display:block}.finput{width:100%;font-family:var(--mono);letter-spacing:.06em;color:var(--ink);background:var(--sunk);border:1px solid var(--line);transition:border-color .15s var(--ease-out),background .15s var(--ease-out);border-radius:9px;padding:12px 14px;font-size:15.5px}.finput::placeholder{color:#5c8285;letter-spacing:.02em}.finput:hover{border-color:var(--edge)}.finput:focus{border-color:var(--ac);background:#0a2028;outline:0}.deny .finput{border-color:var(--vil)}.err{color:var(--vi2);align-items:center;gap:9px;margin:0 0 15px;font-size:13.5px;display:flex}.errmark{font-family:var(--comic);letter-spacing:.04em;color:var(--vi2);background:var(--vid);border:1px solid var(--vil);border-radius:5px;padding:3px 8px 1px;font-size:15px;line-height:1.2}.dock{width:100%;font-family:var(--dsp);letter-spacing:.1em;text-transform:uppercase;color:#052026;background:var(--ac);transition:background .14s var(--ease-out),transform .14s var(--ease-out);border-radius:10px;justify-content:center;align-items:center;gap:10px;margin-top:8px;padding:13px 18px;font-size:16px;font-weight:700;display:flex}.dock:hover{background:var(--ac2)}.dock:active{transform:scale(.98)}.gfoot{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.05em;color:var(--dim);margin:22px 0 0;padding-top:17px;font-size:11.5px;line-height:1.75}.gfoot>b{color:var(--mut);font-weight:500}.hello{z-index:1;text-align:center;cursor:pointer;place-items:center;min-height:100vh;padding:40px 22px;display:grid;position:relative}.hbox{max-width:660px;position:relative}.ring{color:var(--ac);animation:fade .5s var(--ease-out) both;margin:0 auto 28px;display:block}.hkey{font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--ac);animation:fade .5s .12s var(--ease-out) both;margin:0;font-size:12px;font-weight:500}@keyframes fade{0%{opacity:0;transform:translateY(8px)}}.hword{font-family:var(--dsp);letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:var(--ac2);text-shadow:none;animation:fade .5s .24s var(--ease-out) both;margin-bottom:10px;font-size:clamp(19px,3vw,25px);font-weight:600;line-height:1;display:block}.hname{font-family:var(--comic);letter-spacing:.025em;color:var(--ink);white-space:nowrap;text-shadow:6px 6px #a85c8c6b;animation:pop .45s .34s var(--ease-out) both;margin:18px 0 0;padding-top:.14em;font-size:clamp(62px,13vw,128px);font-weight:400;line-height:.9}@keyframes pop{0%{opacity:0;transform:scale(.94)}}.hline{max-width:44ch;color:var(--mut);animation:fade .5s .5s var(--ease-out) both;margin:22px auto 0;font-size:17px;line-height:1.65}.hline>b{color:var(--ac2);font-weight:500}.hbar{background:var(--idle);width:min(300px,72vw);height:2px;animation:fade .5s .62s var(--ease-out) both;margin:32px auto 0;overflow:hidden}.hbar>.fill{background:var(--ac);transform-origin:0;width:100%;height:100%;animation:2.5s linear .7s forwards spool;display:block}@keyframes spool{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hgo{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);animation:fade .5s .8s var(--ease-out) both;margin-top:24px;font-size:12px}.hgo>b{color:var(--ac2);font-weight:500}.app{z-index:1;grid-template-columns:278px minmax(0,1fr);min-height:100vh;display:grid;position:relative}.app.collapsed{grid-template-columns:78px minmax(0,1fr)}.bar{background:var(--idle);border-radius:99px;height:5px;margin:0;display:block;overflow:hidden}.bar>.fill{background:var(--dn);transform-origin:0;width:100%;height:100%;transition:transform .24s var(--ease-out);display:block;transform:scaleX(0)}.bar.wip>.fill{background:var(--wip)}.bar.idle>.fill{background:0 0}.side{z-index:3;overscroll-behavior:contain;background:var(--hull);border-right:1px solid var(--line);flex-direction:column;width:278px;height:100vh;padding:22px 15px 20px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.app.collapsed .side{width:78px;padding:22px 12px 20px}.brand{flex:none;align-items:center;gap:11px;padding:0 2px 18px;display:flex}.mark{background:var(--pale);border:1px solid var(--pale);width:36px;height:36px;color:var(--paleink);font-family:var(--dsp);border-radius:10px;flex:none;place-items:center;font-size:17px;font-weight:700;display:grid}.bcard{min-width:0;line-height:1.25;overflow:hidden}.bname{font-family:var(--dsp);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:16.5px;font-weight:600;display:block;overflow:hidden}.brole{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--dim);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:11px;display:block;overflow:hidden}.app.collapsed .bcard{display:none}.app.collapsed .brand{justify-content:center;padding:0 0 16px}.collapse{border:1px solid var(--line);width:100%;color:var(--mut);transition:color .14s var(--ease-out),border-color .14s var(--ease-out);border-radius:9px;flex:none;align-items:center;gap:10px;margin:0 0 16px;padding:9px 10px;font-size:14px;display:flex}.collapse:hover{color:var(--ink);border-color:var(--edge)}.cico{background:var(--sunk);border:1px solid var(--line);width:26px;height:26px;color:var(--ac);border-radius:7px;flex:none;place-items:center;display:grid}.app.collapsed .cico{transform:scaleX(-1)}.clabel{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.app.collapsed .collapse{justify-content:center;padding:9px 0}.app.collapsed .clabel{display:none}nav{flex:none;align-content:start;gap:2px;padding-bottom:20px;display:grid}.route{gap:2px;display:grid;position:relative}.route:before{content:"";background:var(--rule);width:1px;position:absolute;top:23px;bottom:23px;left:24px}.route:after{content:"";background:var(--ac);width:1px;height:calc(100% - 46px);box-shadow:0 0 9px 0 color-mix(in srgb,var(--ac) 55%,transparent);transform:scaleY(var(--litn,0));transform-origin:top;transition:transform .28s var(--ease-out);position:absolute;top:23px;left:24px}.app.collapsed .route:before,.app.collapsed .route:after{display:none}.tab.active>.n{box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 16%,transparent)}.tab{color:#b2cfd0;transition:background .12s var(--ease-out),color .12s var(--ease-out);border-radius:9px;align-items:center;gap:11px;padding:10px 11px;font-size:15.5px;display:flex;position:relative}.tab:hover{background:var(--raise);color:var(--ink)}.tab.active{background:var(--raise);color:var(--ink);box-shadow:inset 2px 0 0 var(--tint)}.tab>.label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tab>.tpct{font-family:var(--mono);color:var(--dim);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.tab.active>.tpct{color:var(--ac2)}.app.collapsed .tab{justify-content:center;padding:11px 0}.app.collapsed .tab>.label,.app.collapsed .tab>.tpct{display:none}.n{z-index:1;background:var(--hull);border:1px solid var(--line);min-width:27px;height:27px;color:var(--dim);font-family:var(--mono);border-radius:8px;flex:none;place-items:center;font-size:12.5px;font-weight:600;display:grid;position:relative}.tab:hover>.n,.tab.active>.n{background:var(--raise)}.n.done{background:var(--dnd);border-color:var(--dnl);color:var(--dn2)}.n.wip{background:var(--wipd);border-color:var(--wipl);color:var(--wip)}.tab.top>.n{background:var(--vid);border-color:var(--vil);color:var(--vi2)}.sfoot{border-top:1px solid var(--rule);flex:none;grid-template-columns:1fr auto;align-items:baseline;gap:9px 10px;margin-top:auto;padding-top:16px;display:grid}.slabel{min-width:0;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.sval{font-family:var(--mono);color:var(--dn2);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.sfoot>.bar{grid-column:1/-1}.out{border:1px solid var(--rule);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-align:center;transition:color .14s var(--ease-out),border-color .14s var(--ease-out);border-radius:8px;grid-column:1/-1;margin-top:5px;padding:9px 10px;font-size:11.5px}.out:hover{color:var(--vi2);border-color:var(--vil)}.app.collapsed .sfoot{display:none}.page{grid-column:2;width:100%;min-width:0;max-width:1100px;margin:0 auto;padding:48px 40px 96px}.head{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,326px);align-items:start;gap:18px 32px;margin-bottom:26px;padding-bottom:26px;display:grid}.htext{min-width:0}.eyebrow{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ac);flex-wrap:wrap;align-items:center;gap:10px;margin:0;font-size:11.5px;font-weight:500;display:flex}.eyebrow.warn{color:var(--vi2)}.head h1{font-family:var(--dsp);color:var(--ink);letter-spacing:-.02em;margin:16px 0 13px;font-size:clamp(32px,3.6vw,46px);font-weight:700;line-height:1.08}.sub{color:var(--mut);max-width:62ch;margin:0;font-size:16px;line-height:1.62}.name{border:0;border-bottom:1px dashed var(--edge);color:var(--ac2);font:inherit;field-sizing:content;min-width:3ch;transition:border-color .14s var(--ease-out),color .14s var(--ease-out);background:0 0;padding:0 2px}.name:hover,.name:focus{border-bottom-color:var(--ac);color:var(--ac)}.note{color:var(--mut);font-size:14.5px;line-height:1.62;display:block}.note>b{color:var(--ink);font-weight:600}.mnum{font-family:var(--mono);font-variant-numeric:tabular-nums}.line{background:var(--panel);border:1px solid var(--line);border-radius:11px;min-width:0;padding:16px 18px}.lhead{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:center;gap:10px;font-size:11px;font-weight:500;display:flex}.lnew{border:1px solid var(--line);width:27px;height:27px;color:var(--dim);transition:color .14s var(--ease-out),border-color .14s var(--ease-out),transform .14s var(--ease-out);border-radius:7px;flex:none;place-items:center;padding:0;display:grid}.lnew:hover{color:var(--ac);border-color:var(--acl)}.lnew:active{transform:scale(.94)}.ltxt{color:var(--ink);margin:12px 0 10px;font-size:15.5px;line-height:1.55}.lby{font-family:var(--mono);letter-spacing:.08em;color:var(--ac);font-size:11.5px}.exam,.overall,.cards,.next,.strip,.module{margin:0 0 var(--gap)}.exam{cursor:pointer;background:var(--block);transition:border-color .14s var(--ease-out),transform .14s var(--ease-out);border:1px solid #6f68e6;border-radius:13px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px 30px;padding:24px 26px;display:grid}.exam:hover{border-color:#aaa5f5}.exam:active{transform:scale(.996)}.exam h2{font-family:var(--dsp);color:#fff;margin:12px 0 9px;font-size:23px;font-weight:600;line-height:1.28}.exam .eyebrow.warn{color:#cfccff}.exam .note{color:#deddff}.exam .note>b{color:#fff}.exam .bar{background:#ffffff26}.days{text-align:right;padding-top:2px}.days>strong{font-family:var(--mono);color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.045em;font-size:64px;font-weight:600;line-height:.92;display:block}.days>span{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#c6c2fb;margin-top:8px;font-size:11.5px;display:block}.ereadiness{border-top:1px solid #ffffff2e;grid-column:1/-1;gap:10px;padding-top:16px;display:grid}.dilate{font-family:var(--mono);letter-spacing:.1em;color:#b2adf1;font-size:11px}.overall{background:var(--pale);border:1px solid var(--pale);border-radius:13px;padding:22px 24px}.overall>.slug{color:var(--palemut)}.overall .orow>strong{color:var(--paleink)}.overall .oword{color:var(--palemut)}.overall>.note{color:#22484c}.overall .bar{background:var(--palerule)}.overall .bar>.fill{background:#177a68}.overall .bar.wip>.fill{background:#8a6a3a}.orow{align-items:baseline;gap:12px;margin:11px 0 14px;display:flex}.orow>strong{font-family:var(--mono);color:var(--dn2);font-variant-numeric:tabular-nums;letter-spacing:-.035em;font-size:40px;font-weight:600;line-height:1}.oword{font-family:var(--dsp);color:var(--mut);font-size:15.5px;font-weight:600}.overall>.note{margin-top:14px}.cards{grid-template-columns:repeat(auto-fit,minmax(252px,1fr));gap:12px;display:grid}.card{background:var(--panel);border:1px solid var(--line);transition:border-color .14s var(--ease-out);border-radius:13px;flex-direction:column;gap:12px;padding:19px 20px;display:flex}.card:hover{border-color:var(--edge)}.crow{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.crow>b{font-family:var(--dsp);color:var(--ink);font-size:16.5px;font-weight:600}.pctnum{font-family:var(--mono);color:var(--ac2);font-variant-numeric:tabular-nums;flex:none;font-size:13.5px}.scope{color:var(--dim);margin-top:auto;font-size:13px;line-height:1.55;display:block}.next{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:22px}.nhead{font-family:var(--dsp);color:var(--ink);flex-wrap:wrap;align-items:center;gap:11px;margin:0 0 6px;font-size:20px;font-weight:600;display:flex}.flag{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--vi2);background:var(--vid);border:1px solid var(--vil);border-radius:5px;padding:4px 9px;font-size:11px;font-weight:600}.nrow{border-top:1px solid var(--rule);color:#c4dadb;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 14px;padding:14px 0;font-size:15.5px;display:grid}.nrow:last-child{padding-bottom:2px}.ntxt{min-width:0;line-height:1.5}a.ntxt{color:var(--ac);transition:color .12s var(--ease-out);font-weight:500;text-decoration:none}a.ntxt:hover{color:var(--ac2);text-underline-offset:3px;text-decoration:underline}.meta{font-family:var(--mono);letter-spacing:.03em;color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;font-size:11.5px}.strip{grid-template-columns:repeat(auto-fit,minmax(208px,1fr));gap:12px;display:grid}.stat,.jump{border:1px solid var(--line);background:var(--panel);border-radius:13px;padding:18px 20px}.slug{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-size:11px;display:block}.stat>strong{font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin:7px 0 3px;font-size:32px;font-weight:600;line-height:1.15;display:block}.unit{color:var(--mut);font-size:13px}.jump{color:var(--ink);font-family:var(--dsp);transition:border-color .14s var(--ease-out),background .14s var(--ease-out),transform .14s var(--ease-out);justify-content:space-between;align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.jump:hover{border-color:var(--edge);background:var(--raise)}.jump:active{transform:scale(.99)}.stick{z-index:2;margin:0 0 var(--gap);background:var(--panel);border:1px solid var(--line);border-radius:11px;grid-template-columns:auto minmax(80px,1fr) auto;align-items:center;gap:16px;padding:13px 18px;display:grid;position:sticky;top:10px}.stick>b{font-family:var(--dsp);color:var(--ink);font-size:15px;font-weight:600}.stick>.spct{font-family:var(--mono);color:var(--mut);font-variant-numeric:tabular-nums;text-align:right;min-width:4ch;font-size:13px}.module{border:1px solid var(--line);background:var(--panel);transition:border-color .14s var(--ease-out);border-radius:13px;padding:22px}.module:hover{border-color:var(--edge)}.mhead{align-items:center;gap:10px;display:flex}.lvl{font-family:var(--mono);text-transform:uppercase;letter-spacing:.13em;border:1px solid #0000;border-radius:6px;padding:4px 9px;font-size:11px;font-weight:600}.lvl.must{background:var(--dnd);border-color:var(--dnl);color:var(--dn2)}.lvl.useful{background:var(--sunk);border-color:var(--line);color:#b2cfd0}.lvl.optional{border-color:var(--rule);color:var(--dim);background:0 0}.count{font-family:var(--mono);color:var(--mut);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:13px}.mtitle{font-family:var(--dsp);color:var(--ink);letter-spacing:-.01em;margin:14px 0 15px;font-size:20.5px;font-weight:600;line-height:1.32}.src{background:var(--sunk);border:1px solid var(--rule);border-radius:9px;align-items:center;gap:12px;margin:15px 0 4px;padding:12px 14px;display:flex}.srcname{min-width:0;color:var(--ink);flex:1;font-size:14.5px;line-height:1.45}.srcname>b{font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--dim);margin-bottom:4px;font-size:11px;font-weight:500;display:block}.award{background:var(--acd);color:var(--ac2);border:1px solid var(--acl);font-family:var(--mono);letter-spacing:.05em;white-space:nowrap;transition:background .14s var(--ease-out),color .14s var(--ease-out);border-radius:7px;flex:none;padding:6px 11px;font-size:11.5px;font-weight:500;text-decoration:none}a.award:hover{color:#e6f9fb;background:#0f4a51}.award.self{background:var(--sunk);border-color:var(--line);color:var(--mut)}.row{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 14px;padding:13px 0;font-size:15.5px;display:grid}.row:last-child{padding-bottom:2px}.row>label{cursor:pointer;color:#c4dadb;align-items:flex-start;gap:12px;min-width:0;display:flex}.txt{min-width:0;transition:color .12s var(--ease-out);flex:1;line-height:1.5}.row>label:hover .txt{color:var(--ink)}.row.on .txt{color:var(--dim);text-decoration:line-through;-webkit-text-decoration-color:var(--dnl);text-decoration-color:var(--dnl)}.box{appearance:none;border:1px solid var(--line);background:var(--sunk);cursor:pointer;width:21px;height:21px;transition:background .12s var(--ease-out),border-color .12s var(--ease-out), transform .12s var(--ease-out);border-radius:7px;flex:none;place-items:center;margin:1px 0 0;display:grid}.box:hover{border-color:var(--dn)}.box:active{transform:scale(.92)}.box:checked{background:var(--dn);border-color:var(--dn)}.box:checked:after{content:"✓";color:#03130f;font-size:14px;font-weight:700;line-height:1}.go{border:1px solid var(--line);color:var(--mut);font-family:var(--mono);letter-spacing:.04em;white-space:nowrap;transition:background .14s var(--ease-out),color .14s var(--ease-out), border-color .14s var(--ease-out);border-radius:7px;flex:none;padding:5px 11px;font-size:11.5px;font-weight:500;text-decoration:none}.go:hover{background:var(--acd);border-color:var(--acl);color:var(--ac2)}.tmark{background:var(--tint);color:#061420;font-family:var(--dsp);letter-spacing:.09em;text-transform:uppercase;border-radius:7px;padding:5px 11px;font-size:12.5px;font-weight:700;line-height:1.25;display:inline-block}.ehint{color:var(--dim)}.tdot{background:var(--tint);border-radius:2px;flex:none;width:7px;height:7px}.mdot{background:var(--tint);vertical-align:baseline;border-radius:2px;width:9px;height:9px;margin-right:11px;display:inline-block}.track .stick>b{color:var(--tint)}.chip{border:1px solid var(--rule);background:var(--sunk);color:var(--mut);font-family:var(--mono);letter-spacing:.04em;white-space:nowrap;border-radius:6px;align-items:center;padding:3px 8px;font-size:11px;font-weight:500;line-height:1.55;display:inline-flex}.chip.src{color:var(--ac);border-color:var(--acl)}.chip.must{background:var(--dnd);border-color:var(--dnl);color:var(--dn2)}.chip.useful{border-color:var(--line);color:var(--mut)}.chip.optional{border-color:var(--rule);color:var(--dim);background:0 0}.chip.tint{color:var(--tint);border-color:color-mix(in srgb,var(--tint) 44%,transparent);background:color-mix(in srgb,var(--tint) 11%,transparent)}button.chip{cursor:pointer;transition:background .14s var(--ease-out)}button.chip:hover{background:color-mix(in srgb,var(--tint) 22%,transparent)}.tags{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;max-width:100%;display:flex}.tagrow{flex-wrap:wrap;gap:7px;margin-top:15px;display:flex}.explore{margin:0 0 var(--gap);background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:22px}.ecount{font-family:var(--mono);color:var(--dim);margin-left:auto;font-size:12.5px;font-weight:400}.fclear{border:1px solid var(--rule);color:var(--dim);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;transition:color .14s var(--ease-out),border-color .14s var(--ease-out);border-radius:6px;padding:4px 10px;font-size:11px}.fclear:hover{color:var(--ink);border-color:var(--edge)}.stats{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;margin:16px 0 18px;display:grid}.tile{background:var(--sunk);border:1px solid var(--rule);text-align:center;border-radius:10px;padding:14px 12px}.tile>strong{color:var(--ink);letter-spacing:-.025em;font-size:26px;font-weight:600;line-height:1.1;display:block}.tile>.slug{margin-top:6px}.tile.dn>strong{color:var(--dn2)}.tile.wp>strong{color:var(--wip)}.search{background:var(--sunk);border:1px solid var(--line);width:100%;color:var(--ink);transition:border-color .15s var(--ease-out);border-radius:9px;padding:11px 14px;font-size:15px}.search::placeholder{color:var(--dim)}.search:hover{border-color:var(--edge)}.search:focus{border-color:var(--ac);outline:0}.filters{gap:9px;margin:15px 0 2px;display:grid}.frow{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.flab{width:56px;font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--dim);flex:none;font-size:11px}.fchip{border:1px solid var(--rule);background:var(--sunk);color:var(--mut);font-family:var(--mono);letter-spacing:.02em;transition:color .14s var(--ease-out),border-color .14s var(--ease-out),background .14s var(--ease-out);border-radius:7px;padding:5px 10px;font-size:11.5px}.fchip.tinted{border-color:color-mix(in srgb,var(--tint) 32%,var(--rule))}.fchip:hover{color:var(--ink);border-color:var(--edge)}.fchip.tinted:hover{border-color:var(--tint)}.fchip.on{background:var(--pale);border-color:var(--pale);color:var(--paleink);font-weight:600}.fchip.tinted.on{background:var(--tint);border-color:var(--tint);color:#061420}.erow{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 14px;padding:13px 0;font-size:15px;display:grid}.erow>label{cursor:pointer;color:#c4dadb;align-items:flex-start;gap:12px;min-width:0;display:flex}.erow>label:hover .txt{color:var(--ink)}.erow.on .txt{color:var(--dim);text-decoration:line-through;-webkit-text-decoration-color:var(--dnl);text-decoration-color:var(--dnl)}.more{border-top:1px solid var(--rule);color:var(--dim);margin:15px 0 0;padding-top:15px}@media (width<=1180px){.page{padding:40px 30px 84px}.head{grid-template-columns:minmax(0,1fr) minmax(0,272px);gap:16px 24px}}@media (width<=960px){.head{grid-template-columns:minmax(0,1fr)}.line{max-width:520px}}@media (width<=820px){.app,.app.collapsed{display:block}.side,.app.collapsed .side{border-right:0;border-bottom:1px solid var(--line);width:100%;height:auto;padding:12px;display:block;position:static;overflow:visible}.collapse,.sfoot{display:none}.app.collapsed .bcard{display:block}.brand,.app.collapsed .brand{justify-content:flex-start;padding:0}nav{gap:6px;margin-top:10px;padding-bottom:2px;display:flex;overflow-x:auto}.route{display:contents}.tab,.app.collapsed .tab{white-space:nowrap;justify-content:flex-start;padding:9px 11px}.app.collapsed .tab>.label{display:block}.tab>.tpct,.app.collapsed .tab>.tpct{display:none}.page{grid-column:auto;padding:28px 18px 64px}.exam{grid-template-columns:minmax(0,1fr);padding:20px}.days{text-align:left}.days>strong{font-size:50px}.module,.next{padding:18px}.row,.nrow,.erow{grid-template-columns:minmax(0,1fr) auto}.row>label,.erow>label,.ntxt{grid-column:1/-1}.tags{justify-content:flex-start}.explore{padding:18px}.flab{width:100%}.src{flex-wrap:wrap}.pod{padding:28px 22px 24px}.gtitle{font-size:29px}}
