@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-display:optional;src:url(/fonts/bricolage-latin.woff2) format("woff2-variations"),url(/fonts/bricolage-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0b0e17;--ink: #f5f6fa;--ink2: #9aa2b4;--ink3: #6e7689;--line: rgba(255, 255, 255, .08);--line2: rgba(255, 255, 255, .14);--glass: rgba(255, 255, 255, .07);--glass2: rgba(255, 255, 255, .1);--accent: #8fa3ff;--accent-strong: #b3c0ff;--accent-soft: rgba(143, 163, 255, .16);--blue: #2448d8;--blue2: #2c6fe0;--teal: #22a873;--mint: #4cc884;--good: #7fe0a8;--good-soft: rgba(76, 200, 132, .16);--mid: #f2cf7a;--mid-soft: rgba(242, 181, 68, .16);--low: #ff9c94;--low-soft: rgba(255, 107, 97, .16);--violet: #6c4df6;--r: 20px;--r-s: 14px;--display: "Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ease: cubic-bezier(.2, .8, .2, 1)}:root{--btn: #fff;--btn-ink: #0b0e17;--soft: rgba(255, 255, 255, .06);--soft2: rgba(255, 255, 255, .08);--hair: rgba(255, 255, 255, .08);--hair2: rgba(255, 255, 255, .14);--aurora-o: 1}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #f4f5f9;--ink: #12141c;--ink2: #5b6274;--ink3: #8a90a6;--line: rgba(18, 20, 28, .08);--line2: rgba(18, 20, 28, .14);--glass: rgba(255, 255, 255, .72);--glass2: rgba(255, 255, 255, .9);--accent: #2f4fd6;--accent-strong: #2440b8;--accent-soft: rgba(47, 79, 214, .12);--good: #1a8a50;--good-soft: rgba(31, 157, 92, .14);--mid: #8a5b00;--mid-soft: rgba(224, 166, 42, .18);--low: #b8322a;--low-soft: rgba(229, 84, 74, .14);--btn: #12141c;--btn-ink: #fff;--soft: rgba(18, 20, 28, .04);--soft2: rgba(18, 20, 28, .06);--hair: rgba(18, 20, 28, .08);--hair2: rgba(18, 20, 28, .14);--aurora-o: .3}}:root[data-theme=light]{--bg: #f4f5f9;--ink: #12141c;--ink2: #5b6274;--ink3: #8a90a6;--line: rgba(18, 20, 28, .08);--line2: rgba(18, 20, 28, .14);--glass: rgba(255, 255, 255, .72);--glass2: rgba(255, 255, 255, .9);--accent: #2f4fd6;--accent-strong: #2440b8;--accent-soft: rgba(47, 79, 214, .12);--good: #1a8a50;--good-soft: rgba(31, 157, 92, .14);--mid: #8a5b00;--mid-soft: rgba(224, 166, 42, .18);--low: #b8322a;--low-soft: rgba(229, 84, 74, .14);--btn: #12141c;--btn-ink: #fff;--soft: rgba(18, 20, 28, .04);--soft2: rgba(18, 20, 28, .06);--hair: rgba(18, 20, 28, .08);--hair2: rgba(18, 20, 28, .14);--aurora-o: .3}.theme{width:38px;height:38px;border-radius:11px;border:1px solid var(--line2);background:var(--glass);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}.theme svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}*{box-sizing:border-box}html{background:var(--bg)}html,body{margin:0;padding:0;color:var(--ink)}body.portal{background:transparent}body.portal{font-family:var(--display);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;min-height:100dvh;overflow-x:hidden}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit}::selection{background:#8fa3ff59}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:var(--aurora-o);background:radial-gradient(70vmax 60vmax at 8% -10%,rgba(36,72,216,.55),transparent 60%),radial-gradient(55vmax 50vmax at 105% 28%,rgba(34,168,115,.34),transparent 60%),radial-gradient(75vmax 60vmax at 45% 110%,rgba(108,77,246,.42),transparent 60%),var(--bg)}.aurora .v{display:none}.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);box-shadow:inset 0 1px #ffffff14,0 10px 40px #00000040;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2)}.card{padding:18px}.card.tight{padding:14px 16px}.night{background:linear-gradient(135deg,var(--blue),var(--blue2) 55%,var(--teal));border:1px solid rgba(255,255,255,.18);border-radius:var(--r);color:#fff;box-shadow:0 20px 60px #2448d859}h1,h2,h3{margin:0;letter-spacing:-.02em;font-weight:800}h1{font-size:clamp(32px,5vw,56px);line-height:1.02;letter-spacing:-.035em}h2{font-size:24px;line-height:1.1}h3{font-size:16px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}.muted{color:var(--ink2)}.faint{color:var(--ink3)}.mono{font-family:var(--mono);font-size:13px;font-weight:500}.num{font-variant-numeric:tabular-nums}.small{font-size:13px}p{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border-radius:999px;border:1px solid transparent;font-weight:700;font-size:15px;cursor:pointer;transition:transform .15s var(--ease),background .15s;white-space:nowrap}.btn:active{transform:scale(.98)}.btn.primary{background:var(--btn);color:var(--btn-ink)}.btn.primary:hover{background:#e9ecf7}.btn.accent{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 10px 30px #2448d859}.btn.ghost{background:var(--glass);border-color:var(--line2);color:var(--ink)}.btn.ghost:hover{background:var(--glass2)}.btn.sm{height:36px;padding:0 14px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}.input{width:100%;height:48px;padding:0 16px;border-radius:14px;border:1px solid var(--line2);background:var(--soft);color:var(--ink);font:inherit;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder{color:var(--ink3)}label.field{display:grid;gap:6px}label.field>span{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good)}.pill.lvl{height:20px;padding:0 8px;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase}.pill.lvl.undergraduate{background:var(--good-soft);color:var(--good)}.pill.lvl.graduate{background:var(--accent-soft);color:var(--accent-strong)}.pill.lvl.professional,.pill.mid{background:var(--mid-soft);color:var(--mid)}.pill.low{background:var(--low-soft);color:var(--low)}.pill.neutral{background:var(--glass2);color:var(--ink2)}.pill.accent{background:var(--accent-soft);color:var(--accent-strong)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.good{background:var(--mint);box-shadow:0 0 10px var(--mint)}.dot.low{background:#ff6b61;box-shadow:0 0 10px #ff6b61}.wrap{width:min(1120px,100% - 32px);margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:18px 0}@media (max-width: 520px){.brand .for{display:none}.topbar .row{gap:6px}}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em;font-size:17px}.brand .mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--blue),var(--teal));display:grid;place-items:center;font-size:15px;color:#fff}.brand .for{color:var(--ink2);font-weight:600}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:center;padding:48px 0 32px}.hero p.lede{font-size:18px;color:var(--ink2);max-width:54ch;margin-top:18px;line-height:1.5}.hero .cta{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:26px 0 40px}.feature{padding:18px}.feature .ic{width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;margin-bottom:12px;font-size:18px}.feature h3{margin-bottom:6px}.feature p{color:var(--ink2);font-size:14px}.promise{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:48px}.promise ul{margin:10px 0 0;padding-left:18px;color:var(--ink2);line-height:1.6}footer.foot{padding:24px 0 40px;color:var(--ink3);font-size:13px;display:flex;gap:18px;flex-wrap:wrap}.mock{padding:16px;display:grid;gap:12px;transform:rotate(-1.5deg)}.mock .row{display:flex;align-items:center;gap:10px}.mock .bar{flex:1;height:8px;border-radius:999px;background:var(--glass2);overflow:hidden}.mock .bar>i{display:block;height:100%;border-radius:999px;background:var(--accent)}.mock .tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mock .tile{padding:12px;border-radius:14px;background:var(--soft);border:1px solid var(--line)}.mock .tile b{display:block;font-size:22px;letter-spacing:-.03em}.request{padding:22px;display:grid;gap:14px}.request .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.picker{position:relative}.picker .menu{position:absolute;left:0;right:0;top:52px;z-index:5;max-height:260px;overflow:auto;border-radius:14px;padding:6px;background:#141a2b;border:1px solid var(--line2);box-shadow:0 20px 50px #00000080}.picker .menu button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;background:transparent;border-radius:10px;cursor:pointer}.picker .menu button:hover,.picker .menu button.on{background:var(--glass2)}.picker .menu small{color:var(--ink3);margin-left:6px}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100dvh}.side{padding:22px 16px;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:18px;border-right:1px solid var(--line);background:#0b0e178c;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.side .school{padding:14px}.side .school b{display:block;font-size:15px;line-height:1.2}.side .school span{color:var(--ink2);font-size:12px}.nav{display:grid;gap:4px}.nav button{display:flex;align-items:center;gap:10px;height:42px;padding:0 12px;border-radius:12px;border:0;background:transparent;color:var(--ink2);font-weight:600;cursor:pointer;text-align:left}.nav button:hover{background:var(--glass);color:var(--ink)}.nav button.on{background:var(--glass2);color:var(--ink);box-shadow:inset 0 1px #ffffff14}.nav button svg{width:18px;height:18px}.side .grow{flex:1}.main{padding:26px 32px 60px;min-width:0}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.pagehead h1{font-size:clamp(28px,3vw,38px)}.pagehead .actions{display:flex;gap:8px;flex-wrap:wrap}.mobilebar{display:none}.grid{display:grid;gap:14px}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-5{grid-template-columns:repeat(5,1fr)}.span-2{grid-column:span 2}.stack{display:grid;gap:14px}.stat{padding:16px 18px;display:grid;gap:4px;min-width:0}.stat .l{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}.stat .v{font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1}.stat .v small{font-size:16px;color:var(--ink2);font-weight:700;letter-spacing:0;margin-left:2px}.stat .d{font-size:13px;color:var(--ink2)}.stat.lead{background:linear-gradient(135deg,#2448d88c,#22a87359);border-color:#ffffff2e}.stat.lead .l,.stat.lead .d{color:#ffffffd9}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);font-weight:700;padding:10px 10px 8px;border-bottom:1px solid var(--line)}.tbl td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:var(--soft)}.tbl td.r,.tbl th.r{text-align:right}.tbl .code{font-family:var(--mono);font-size:13px}.tbl .t{color:var(--ink2);font-size:13px}.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.fillbar{display:flex;align-items:center;gap:10px;min-width:120px}.fillbar .track{flex:1;height:6px;border-radius:999px;background:var(--soft2);overflow:hidden}.fillbar .track>i{display:block;height:100%;border-radius:999px;background:var(--accent)}.fillbar .track>i.good{background:var(--mint)}.fillbar .track>i.mid{background:#f2b544}.fillbar .track>i.low{background:#ff6b61}.fillbar b{width:40px;text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.chart{width:100%;height:auto;display:block;overflow:visible}.chart text{font-family:var(--display);fill:var(--ink2);font-size:11px}.chart .grid line{stroke:var(--hair)}.chart .axis{stroke:var(--hair2)}.chart .line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:url(#areaFill)}.chart .pt{fill:var(--bg);stroke:var(--accent);stroke-width:2}.chart .bar{fill:var(--accent)}.chart .bar.neutral{fill:#9aa2b4}.chart .label{fill:var(--ink);font-weight:700;font-size:12px}.tip{position:absolute;pointer-events:none;padding:8px 10px;border-radius:10px;background:#141a2b;border:1px solid var(--line2);font-size:12px;box-shadow:0 10px 30px #0006;white-space:nowrap;z-index:3}.tip b{display:block;font-size:13px}.chartbox{position:relative}.legend{display:flex;gap:14px;font-size:12px;color:var(--ink2);flex-wrap:wrap}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:-1px}.sectionhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.sectionhead h2{font-size:18px}.sectionhead .muted{font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:var(--glass2);border:1px solid var(--line);font-family:var(--mono);font-size:12px}button.chip{cursor:pointer;color:inherit;font-family:inherit;font-weight:600;height:30px;padding:0 12px}button.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.chip.low{background:var(--low-soft);color:var(--low);border-color:transparent}.chip.mid{background:var(--mid-soft);color:var(--mid);border-color:transparent}.empty{padding:26px;text-align:center;color:var(--ink2)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:#ffffffeb;color:var(--bg);padding:11px 16px;border-radius:999px;font-weight:700;font-size:14px;z-index:50}.skeleton{height:14px;border-radius:7px;background:linear-gradient(90deg,#ffffff0f,#ffffff1f,#ffffff0f);background-size:200% 100%;animation:sh 1.4s infinite}@keyframes sh{0%{background-position:200% 0}to{background-position:-200% 0}}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.spacer{flex:1}.proglist{display:grid;gap:10px}.prog{padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--glass);border-radius:var(--r-s);color:var(--ink)}.prog:hover{background:var(--glass2)}.prog .name{font-weight:700}.prog .meta{color:var(--ink2);font-size:13px;margin-top:2px}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:flex-end;background:#05070e99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.drawer .panel{width:min(680px,100%);height:100%;overflow:auto;padding:26px;background:#0e1322;border-left:1px solid var(--line2)}.tree{display:grid;gap:8px}.tree .node{padding:10px 12px;border-radius:12px;background:var(--soft);border:1px solid var(--line)}.tree .node .nm{font-weight:700;font-size:14px}.tree .node .kids{margin-top:8px;display:grid;gap:6px;padding-left:10px;border-left:2px solid var(--line2)}.tree .course{display:inline-flex;justify-self:start;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;padding:3px 8px;border-radius:8px;background:var(--glass2);margin:2px 4px 2px 0}.tree .course.open{background:var(--good-soft);color:var(--good)}.tree .course.full{background:var(--low-soft);color:var(--low)}.tree .course.none{background:var(--soft);color:var(--ink3);text-decoration:line-through}.center{min-height:100dvh;display:grid;place-items:center;padding:24px}.center .glass{max-width:460px;width:100%;padding:28px;display:grid;gap:14px}@media (max-width: 960px){.hero{grid-template-columns:1fr;padding-top:28px}.features{grid-template-columns:1fr 1fr}.promise,.shell{grid-template-columns:1fr}.side{display:none}.mobilebar{display:block;position:sticky;top:0;z-index:20;padding:10px 16px 0;background:#0b0e17b3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}.mobilebar .tabs{display:flex;gap:6px;overflow-x:auto;padding:10px 0;scrollbar-width:none}.mobilebar .tabs::-webkit-scrollbar{display:none}.mobilebar .tabs button{flex:0 0 auto;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--glass);color:var(--ink2);font-weight:700;font-size:13px}.mobilebar .tabs button.on{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}.main{padding:18px 16px 60px}.cols-2,.cols-3,.cols-4,.cols-5{grid-template-columns:1fr 1fr}.span-2{grid-column:span 2}.stat .v{font-size:28px}.request .two{grid-template-columns:1fr}}@media (max-width: 560px){.features{grid-template-columns:1fr}.cols-3,.cols-4,.cols-5{grid-template-columns:1fr 1fr}.mock{transform:none}}.linklike{background:none;border:0;padding:0;color:var(--accent-strong);font:inherit;cursor:pointer}.linklike:hover{text-decoration:underline}
