:root{--bg: #0d1017;--bg-elevated: #161a23;--bg-input: #1c2230;--surface-border: #232a3a;--surface-border-hover: #2f384c;--text: #e8e6e1;--text-muted: #a39f97;--text-faint: #6f6c66;--accent: #e2b97f;--accent-soft: #c89a5b;--accent-deep: #6b4d2a;--good: #84cc8a;--warn: #e0a060;--bad: #d97a7a;--font-display: "Fraunces", "Iowan Old Style", "Apple Garamond", Georgia, serif;--font-body: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", "SF Mono", ui-monospace, monospace;--radius: 6px;--radius-lg: 12px;--max-width: 980px;--ease: cubic-bezier(.2, .8, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);font-feature-settings:"ss01","cv11";font-size:16.5px;line-height:1.65;color:var(--text);background:var(--bg);background-image:radial-gradient(ellipse 90% 70% at 50% -10%,rgba(226,185,127,.06),transparent 60%),radial-gradient(ellipse 60% 40% at 100% 0%,rgba(94,130,200,.04),transparent 50%);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}img,svg{display:block;max-width:100%}a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(226,185,127,.25);transition:border-color .2s var(--ease),color .2s var(--ease)}a:hover{color:var(--accent-soft);border-bottom-color:var(--accent-soft)}button{font:inherit;color:inherit}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}main{padding-bottom:6rem}.site-header{border-bottom:1px solid var(--surface-border);padding:1.25rem 0;background:#0d1017b3;backdrop-filter:saturate(140%) blur(8px);position:sticky;top:0;z-index:10}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:inline-flex;align-items:baseline;gap:.45rem;font-family:var(--font-display);font-weight:500;font-size:1.55rem;color:var(--text);border-bottom:none;letter-spacing:-.01em}.brand:hover{color:var(--text)}.brand__mark{font-style:italic;color:var(--accent)}.brand__sub{font-family:var(--font-body);font-size:.7rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint)}.nav{display:flex;gap:1.75rem;font-size:.92rem}.nav a{color:var(--text-muted);border-bottom:none}.nav a:hover{color:var(--text)}.hero{padding:4rem 0 2.5rem;text-align:left}.hero__eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 1.25rem}.hero__title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.4rem,5.5vw,4rem);line-height:1.05;letter-spacing:-.02em;margin:0 0 1.25rem;color:var(--text)}.hero__title em{font-style:italic;color:var(--accent)}.hero__lede{font-size:1.18rem;line-height:1.55;color:var(--text-muted);max-width:36rem;margin:0 0 2rem}.hero__meta{display:flex;flex-wrap:wrap;gap:1.5rem 2rem;font-size:.88rem;color:var(--text-faint);font-family:var(--font-mono)}.hero__meta strong{color:var(--text-muted);font-weight:500}.section{padding:3.5rem 0 1rem}.section__eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 .85rem}.section__title{font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.15;letter-spacing:-.01em;margin:0 0 1.5rem;color:var(--text)}.prose p,.prose ul,.prose ol{margin:0 0 1.1rem;color:var(--text-muted)}.prose strong{color:var(--text);font-weight:500}.prose h3{font-family:var(--font-display);font-weight:500;font-size:1.35rem;letter-spacing:-.01em;color:var(--text);margin:2rem 0 .75rem}.prose h4{font-family:var(--font-body);font-weight:500;font-size:1rem;color:var(--text);margin:1.5rem 0 .5rem}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin-bottom:.5rem}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-input);padding:.1em .35em;border-radius:3px;color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent);margin:1.5rem 0;padding:.4rem 0 .4rem 1.25rem;color:var(--text-muted);font-style:italic}.calc-shell{margin:2rem 0 0;padding:1.75rem;background:var(--bg-elevated);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:0 30px 60px -30px #00000080,0 1px #ffffff05 inset}.calc{display:flex;flex-direction:column;gap:1.5rem}.calc__tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;background:var(--bg-input);border-radius:var(--radius);border:1px solid var(--surface-border)}.calc__tab{flex:1;min-width:max-content;padding:.55rem .9rem;background:transparent;border:none;border-radius:4px;color:var(--text-muted);font-size:.92rem;font-weight:500;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}.calc__tab:hover{color:var(--text)}.calc__tab--active{background:var(--bg-elevated);color:var(--accent);box-shadow:0 1px #ffffff0a inset}.calc__options{display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:end}.calc__field{display:flex;flex-direction:column;gap:.4rem;min-width:0}.calc__field--check{align-self:end}.calc__label{font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint)}.calc__select,.calc__input{width:100%;padding:.55rem .75rem;background:var(--bg-input);border:1px solid var(--surface-border);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.95rem;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.calc__select:focus-visible,.calc__input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e2b97f26}.calc__hint{font-size:.82rem;color:var(--text-faint);margin:0;line-height:1.5}.calc__checkbox{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-muted);cursor:pointer;user-select:none}.calc__checkbox input{accent-color:var(--accent);width:1rem;height:1rem}.panel{display:flex;flex-direction:column;gap:1.25rem}.panel__title-input{font-family:var(--font-display);font-weight:500;font-size:1.25rem;background:transparent;border:none;border-bottom:1px dashed var(--surface-border);color:var(--text);padding:.25rem 0;width:100%}.panel__title-input:focus-visible{outline:none;border-bottom-color:var(--accent)}.panel__intro{margin:0;color:var(--text-muted);font-size:.95rem;line-height:1.6}.panel__actions{display:flex;gap:.65rem;flex-wrap:wrap}.course-list{display:flex;flex-direction:column;gap:.5rem}.course-list__header{display:grid;grid-template-columns:1fr 8rem 5rem 2rem;gap:.6rem;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);padding:0 .25rem}.course-list:has(.course .course__weight) .course-list__header{grid-template-columns:1fr 8rem 5rem 8rem 2rem}.course{display:grid;grid-template-columns:1fr 8rem 5rem 2rem;gap:.6rem;align-items:center}.course:has(.course__weight){grid-template-columns:1fr 8rem 5rem 8rem 2rem}.course__name,.course__grade,.course__credits,.course__weight{padding:.5rem .65rem;background:var(--bg-input);border:1px solid var(--surface-border);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.95rem;min-width:0}.course__credits{font-family:var(--font-mono);text-align:center}.course__name:focus-visible,.course__grade:focus-visible,.course__credits:focus-visible,.course__weight:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e2b97f26}.course__remove{width:2rem;height:2rem;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-faint);font-size:1.4rem;line-height:1;cursor:pointer;transition:color .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease)}.course__remove:hover{color:var(--bad);border-color:var(--surface-border);background:var(--bg-input)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border:1px solid transparent;border-radius:var(--radius);font-size:.92rem;font-weight:500;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.btn--primary{background:var(--accent);color:var(--bg)}.btn--primary:hover{background:var(--accent-soft)}.btn--secondary{background:var(--bg-input);border-color:var(--surface-border);color:var(--text)}.btn--secondary:hover{border-color:var(--accent);color:var(--accent)}.btn--ghost{background:transparent;color:var(--text-faint)}.btn--ghost:hover{color:var(--text-muted)}.btn--small{padding:.35rem .7rem;font-size:.85rem}.prior{border:1px solid var(--surface-border);border-radius:var(--radius);padding:0;background:var(--bg-input)}.prior>summary{cursor:pointer;padding:.7rem 1rem;font-size:.92rem;color:var(--text-muted);user-select:none}.prior>summary:hover{color:var(--text)}.prior__grid{padding:0 1rem 1rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.semester-block{border:1px solid var(--surface-border);border-radius:var(--radius);padding:1.1rem;background:#1c223066}.semester-block__head{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem}.semester-block__foot{display:flex;align-items:center;justify-content:space-between;margin-top:.85rem;flex-wrap:wrap;gap:.5rem}.semester-block__gpa{font-family:var(--font-mono);font-size:.95rem;color:var(--text-muted)}.semester-block__gpa strong{color:var(--accent);font-weight:500}.target-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.result-card{margin-top:.5rem;padding:1.5rem 1.75rem;background:linear-gradient(180deg,#e2b97f14,#e2b97f05);border:1px solid rgba(226,185,127,.18);border-radius:var(--radius-lg);position:relative;overflow:hidden}.result-card:before{content:"";position:absolute;inset:0;background-image:linear-gradient(135deg,transparent 30%,rgba(226,185,127,.04) 50%,transparent 70%);pointer-events:none}.result-card__label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.result-card__value{font-family:var(--font-display);font-weight:400;font-size:clamp(3rem,8vw,4.5rem);line-height:1;letter-spacing:-.02em;color:var(--text);font-feature-settings:"tnum"}.result-card__detail{margin-top:.6rem;font-size:.88rem;color:var(--text-muted);line-height:1.55}.result-card__warn{color:var(--warn)}.callout{padding:1rem 1.1rem;background:#5e82c80f;border:1px solid rgba(94,130,200,.2);border-radius:var(--radius);font-size:.92rem;line-height:1.55;color:var(--text-muted)}.callout strong{color:var(--text)}.callout em{color:var(--warn);font-style:normal;font-weight:500}.explainer{border:1px solid var(--surface-border);border-radius:var(--radius);padding:0;background:var(--bg-input)}.explainer>summary{cursor:pointer;padding:.7rem 1rem;font-size:.92rem;color:var(--text-muted);user-select:none}.explainer>summary:hover{color:var(--text)}.explainer p{padding:0 1rem;margin:0 0 .85rem;font-size:.9rem;color:var(--text-muted);line-height:1.6}.explainer p:first-of-type{padding-top:.5rem}.explainer p:last-of-type{padding-bottom:1rem}.faq{display:flex;flex-direction:column;gap:.5rem}.faq details{border:1px solid var(--surface-border);border-radius:var(--radius);padding:0;background:var(--bg-elevated);transition:border-color .15s var(--ease)}.faq details:hover{border-color:var(--surface-border-hover)}.faq details[open]{border-color:#e2b97f40}.faq summary{cursor:pointer;padding:1rem 1.15rem;font-weight:500;font-size:1rem;color:var(--text);user-select:none;display:flex;align-items:center;justify-content:space-between;gap:1rem}.faq summary:after{content:"+";font-family:var(--font-mono);color:var(--accent);font-size:1.25rem;transition:transform .2s var(--ease)}.faq details[open] summary:after{transform:rotate(45deg)}.faq__answer{padding:0 1.15rem 1.1rem;color:var(--text-muted);font-size:.95rem;line-height:1.65}.faq__answer p{margin:0 0 .65rem}.faq__answer p:last-child{margin-bottom:0}.scale-guide{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.scale-card{padding:1.1rem 1.15rem;background:var(--bg-elevated);border:1px solid var(--surface-border);border-radius:var(--radius)}.scale-card__title{font-family:var(--font-display);font-weight:500;font-size:1.1rem;color:var(--text);margin:0 0 .25rem}.scale-card__region{font-size:.78rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.12em;margin:0 0 .65rem}.scale-card__desc{font-size:.88rem;color:var(--text-muted);line-height:1.55;margin:0 0 .85rem}.scale-card__max{display:inline-block;font-family:var(--font-mono);font-size:.78rem;padding:.15rem .5rem;background:var(--bg-input);border-radius:3px;color:var(--accent)}.site-footer{padding:3rem 0 2rem;border-top:1px solid var(--surface-border);margin-top:5rem;font-size:.88rem;color:var(--text-faint)}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem}.site-footer__brand{font-family:var(--font-display);color:var(--text-muted)}.site-footer__brand em{color:var(--accent);font-style:italic}.site-footer__links{display:flex;gap:1.5rem}.site-footer__links a{color:var(--text-muted);border-bottom:none}.site-footer__links a:hover{color:var(--accent)}@media(max-width:720px){.calc__options{grid-template-columns:1fr}.course-list__header{display:none}.course{grid-template-columns:1fr 1fr;gap:.4rem}.course:has(.course__weight){grid-template-columns:1fr 1fr}.course__name{grid-column:1 / -1}.course__grade,.course__credits,.course__weight{grid-column:span 1}.course__remove{grid-column:2 / 3;justify-self:end;width:1.75rem;height:1.75rem}.prior__grid{grid-template-columns:1fr}.nav{gap:1.1rem;font-size:.88rem}.calc-shell{padding:1.1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
