@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@600;700&family=Source+Sans+3:wght@400;500;600&display=swap";:root{color-scheme:light;font-family:"Source Sans 3",Segoe UI,sans-serif;line-height:1.5;font-weight:400;--red: #c8102e;--red-dark: #a40d26;--blue: #003f6e;--blue-dark: #002a4a;--cream: #f6f2ee;--ink: #0f172a;--muted: #5b6770;--white: #ffffff;background-color:var(--cream);color:var(--ink);scroll-behavior:smooth}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:radial-gradient(circle at top,rgba(200,16,46,.08),transparent 45%),linear-gradient(180deg,var(--cream) 0%,#fdfbf8 50%,#f4efea 100%)}a{color:inherit;text-decoration:none}.page{min-height:100vh;display:flex;flex-direction:column;gap:0}.hero{position:relative;min-height:100vh;display:grid;place-items:center;padding:90px 0;background:linear-gradient(120deg,#003f6e14,#c8102e14);overflow:hidden}.band{position:absolute;left:0;right:0;height:90px;background:var(--red)}.band--top{top:0;background:linear-gradient(90deg,var(--red),var(--blue))}.band--bottom{bottom:0;background:linear-gradient(90deg,var(--red),var(--blue))}.hero__inner{width:100%;max-width:none;margin:0;text-align:center;padding:6rem 2.5rem;background:var(--white);box-shadow:0 30px 80px #0f172a26;min-height:calc(100vh - 180px);display:grid;place-content:center}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:700;color:var(--ink)}h1{font-size:clamp(2.5rem,4vw,3.75rem);letter-spacing:-.02em;margin-bottom:1rem}.lead{font-size:1.1rem;color:var(--muted);max-width:560px;margin:0 auto 2rem}.hero__actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.6rem;border-radius:999px;font-weight:600;border:2px solid transparent;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn--primary{background:var(--blue);color:var(--white);box-shadow:0 15px 30px #003f6e33}.btn--primary:hover{transform:translateY(-1px);background:var(--blue-dark)}.btn--ghost{background:transparent;color:var(--blue);border-color:#003f6e66}.btn--ghost:hover{transform:translateY(-1px);background:#003f6e14}.section{padding:4rem 1.5rem}.section__inner{max-width:1040px;margin:0 auto;display:grid;gap:2.5rem}.section__header{display:grid;gap:.75rem}.section__lead{color:var(--muted);max-width:620px}.section--flow{background:var(--white);min-height:100vh;display:grid;align-items:center}.flow-card{background:var(--cream);border-radius:20px;padding:2rem;box-shadow:0 20px 50px #0f172a14;display:grid;gap:1rem}.field__label{font-weight:600;color:var(--ink)}.field__row{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto}.search{position:relative}input,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(15,23,42,.2);font-size:1rem;background:var(--white);width:100%}.search__results{position:absolute;left:0;right:0;top:calc(100% + .5rem);background:var(--white);border-radius:14px;box-shadow:0 18px 40px #0f172a26;border:1px solid rgba(15,23,46,.08);padding:.4rem;display:grid;gap:.25rem;z-index:5}.search__item{text-align:left;background:transparent;border:none;padding:.65rem .75rem;border-radius:10px;font-size:.95rem;cursor:pointer}.search__item:hover,.search__item.is-active{background:#003f6e14}.search__item mark{background:#c8102e2e;color:inherit;padding:0 .15rem;border-radius:4px}.search__empty{padding:.7rem .75rem;color:var(--muted);font-size:.9rem}.hint{color:var(--muted);font-size:.95rem}.section--learn{background:linear-gradient(180deg,#fff,#f7f4f0);min-height:100vh;display:grid;align-items:center}.section--graph{background:#fff}.graph-card{background:#f8f5f2;border-radius:24px;padding:1.5rem;box-shadow:0 20px 50px #0f172a14;min-height:1400px;display:grid;align-items:start}.graph-controls{display:flex;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.btn.is-active{background:#003f6e1f;border-color:#003f6e80}.graph-canvas{width:100%;height:1400px;overflow:auto}.graph-canvas svg{display:block}.graph-status{text-align:center;color:var(--muted);font-size:1rem}.graph-status--error{color:#b42318}.steps{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.step{padding:1.5rem;border-radius:18px;background:var(--white);box-shadow:0 15px 35px #0f172a14}.step h3{margin-bottom:.6rem}.step p{color:var(--muted)}@media(max-width:720px){.hero__inner{padding:2rem 1.25rem}.field__row{grid-template-columns:1fr}}.path-view{position:relative;padding:8px 0}.path-section{margin-bottom:40px}.path-section__title{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#c8102e;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid rgba(200,16,46,.2)}.path-section__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.course-box{background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;position:relative;-webkit-user-select:none;user-select:none}.course-box:hover{border-color:#c8102e;box-shadow:0 2px 12px #c8102e1f}.course-box--done{background:#f0fdf4;border-color:#16a34a}.course-box--done:hover{border-color:#15803d;box-shadow:0 2px 12px #16a34a1f}.course-box--loading{opacity:.7;pointer-events:none}.course-box__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.course-box__id{font-family:DM Mono,Fira Code,monospace;font-size:12px;font-weight:600;color:#c8102e;letter-spacing:.03em}.course-box--done .course-box__id{color:#16a34a}.course-box__check{width:16px;height:16px;accent-color:#16a34a;cursor:pointer;flex-shrink:0}.course-box__name{font-size:13px;font-weight:500;color:#111827;line-height:1.35;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-box__hours{font-size:11px;color:#9ca3af;margin-bottom:4px}.course-box__prereqs{font-size:11px;color:#6b7280;font-style:italic;margin-top:4px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.course-box__spinner{position:absolute;top:10px;right:10px;width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#c8102e;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.course-panel{position:sticky;top:16px;float:right;width:280px;margin-left:20px;margin-bottom:20px;background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 4px 24px #00000014;z-index:10;animation:slideIn .18s ease}@keyframes slideIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.course-panel__close{position:absolute;top:12px;right:12px;background:none;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:4px 6px;border-radius:4px;line-height:1}.course-panel__close:hover{background:#f3f4f6;color:#374151}.course-panel__id{font-family:DM Mono,monospace;font-size:11px;font-weight:600;color:#c8102e;letter-spacing:.05em;margin-bottom:4px}.course-panel__name{font-size:15px;font-weight:700;color:#111827;line-height:1.3;margin-bottom:14px;padding-right:20px}.course-panel__row{display:flex;justify-content:space-between;font-size:12px;padding:6px 0;border-bottom:1px solid #f3f4f6;color:#6b7280}.course-panel__row span:last-child{color:#111827;font-weight:500;text-align:right;max-width:60%}.course-panel__desc{margin-top:12px;font-size:12px;line-height:1.6;color:#6b7280}.controls-divider{width:1px;height:20px;background:#e5e7eb;margin:0 4px;display:inline-block;vertical-align:middle}.completion-badge{margin-left:auto;background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}.radial-container{position:relative;width:100%;height:1400px;background:#f8f5f2;border-radius:16px;overflow:hidden;-webkit-user-select:none;user-select:none}.radial-zoom-controls{position:absolute;bottom:16px;right:16px;display:flex;flex-direction:column;gap:4px;z-index:10}.radial-zoom-controls button{width:32px;height:32px;border-radius:8px;border:1px solid rgba(15,23,42,.15);background:#fff;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#0f172a;transition:background .15s}.radial-zoom-controls button:hover{background:#f1f5f9}.radial-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);font-size:11px;color:#94a3b8;pointer-events:none;white-space:nowrap}
