:root{--paper:#faf8f4;--paper-2:#f2eee6;--card:#fff;--ink:#1d1b19;--ink-2:#45403a;--muted:#625b53;--rule:#ddd6cb;--rule-strong:#b9b0a3;--accent:#8c1d2c;--accent-ink:#6f1622;--accent-soft:#f6e9ea;--ok:#24583a;--ok-soft:#e6f0e8;--warn:#7a4d00;--warn-soft:#fbf1dc;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--measure:74rem;--gutter:clamp(1rem, 4vw, 2.5rem);color-scheme:light}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-text-size-adjust:100%;margin:0;font-size:1rem;line-height:1.55}h1,h2,h3{font-family:var(--serif);color:var(--ink);margin:0;font-weight:600;line-height:1.2}h1{letter-spacing:-.01em;font-size:clamp(1.9rem,1.4rem + 2vw,2.75rem)}h2{margin-block-end:.75rem;font-size:1.3rem}h3{font-size:1.08rem}p{margin:0 0 .75rem}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-ink);text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}code{font-family:var(--mono);font-size:.92em}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:10;background:var(--card);color:var(--ink);border:2px solid var(--accent);padding:.5rem .9rem;position:absolute;top:-3rem;left:.5rem}.skip:focus{top:.5rem}.masthead{background:var(--ink);color:#fff;border-block-end:4px solid var(--accent)}.masthead-inner{max-width:var(--measure);padding:.85rem var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 2rem;margin:0 auto;display:flex}.wordmark{color:#fff;align-items:baseline;gap:.6rem;text-decoration:none;display:inline-flex}.wordmark:hover{color:#fff}.wordmark-anu{font-family:var(--serif);letter-spacing:.06em;border-inline-end:1px solid #fff6;padding-inline-end:.6rem;font-size:1.45rem;font-weight:700}.wordmark-name{letter-spacing:.01em;font-size:1.05rem}.masthead nav ul{flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}.masthead nav a{color:#f3efe9;border-block-end:2px solid #0000;padding:.35rem 0;text-decoration:none;display:inline-block}.masthead nav a:hover{color:#fff;border-block-end-color:#ffffff80}.masthead nav a[aria-current=page]{color:#fff;border-block-end-color:#e2a3ac}.masthead :focus-visible{outline-color:#fff}.prototype-notice{padding:.5rem var(--gutter);background:var(--paper-2);color:var(--ink-2);text-align:center;border-block-end:1px solid var(--rule);margin:0;font-size:.875rem}main{max-width:var(--measure);padding:2rem var(--gutter) 3rem;margin:0 auto}.page-intro{border-block-end:1px solid var(--rule);margin-block-end:1.75rem;padding-block-end:1.25rem}.eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.8rem}.lede{max-width:44rem;color:var(--ink-2);margin:.6rem 0 0;font-size:1.08rem}.site-footer{border-block-start:1px solid var(--rule);color:var(--muted);font-size:.875rem}.site-footer p{max-width:var(--measure);padding:1.25rem var(--gutter) 2rem;margin:0 auto}section{margin-block-end:2.25rem}.note{color:var(--muted);font-size:.9rem}.empty{color:var(--ink-2);font-style:italic}.plain-list{margin:0;padding-inline-start:1.1rem}.plain-list li+li{margin-block-start:.35rem}.flash,.stale-notice{border-inline-start:4px solid;margin:0 0 1.5rem;padding:.7rem 1rem}.flash-done{background:var(--ok-soft);border-color:var(--ok)}.flash-error{background:var(--accent-soft);border-color:var(--accent)}.stale-notice{background:var(--warn-soft);border-color:var(--warn)}.stale-notice[hidden]{display:none}.warning-line{color:var(--warn);margin-block-start:.35rem;font-size:.9rem;display:block}.warning-line strong{font-weight:650}button,select,input{font:inherit;color:inherit}button{border:1px solid var(--rule-strong);background:var(--card);min-height:2.5rem;color:var(--ink);cursor:pointer;border-radius:3px;padding:.4rem .9rem;font-size:.9rem}button:hover{border-color:var(--ink)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}button.quiet{color:var(--accent);text-underline-offset:.18em;background:0 0;border-color:#0000;padding-inline:.4rem;text-decoration:underline}button.quiet:hover{color:var(--accent-ink);text-decoration-thickness:2px}select,input[type=search]{border:1px solid var(--rule-strong);background:var(--card);border-radius:3px;min-height:2.5rem;padding:.35rem .6rem;font-size:.95rem}label{color:var(--ink-2);font-size:.875rem}.meter{background:#e8e2d8;border-radius:2px;height:.6rem;margin:.5rem 0 .25rem;display:flex;overflow:hidden}.meter span{height:100%;display:block}.meter-completed{background:var(--accent)}.meter-current{background:repeating-linear-gradient(135deg, var(--accent) 0 3px, #d99aa3 3px 6px)}.meter-planned{background:repeating-linear-gradient(135deg,#b9aea0 0 2px,#ece6dc 2px 6px);box-shadow:inset 0 0 0 1px #a89c8d}.dashboard{gap:2.5rem;display:grid}@media (width>=60rem){.dashboard{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:3.5rem}.dashboard-side{border-inline-start:1px solid var(--rule);padding-inline-start:2rem}}.page-intro-tight{border-block-end:0;margin-block-end:1.25rem;padding-block-end:0}.standing-band{border-block:2px solid var(--ink);margin-block-end:2.75rem;padding-block:1.5rem 1.25rem}.band-label{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 .75rem;font-size:.8rem;font-weight:600}.band-grid{align-items:end;gap:1.25rem 3rem;display:grid}@media (width>=52rem){.band-grid{grid-template-columns:auto minmax(0,1fr)}}.band-units{font-family:var(--serif);font-variant-numeric:tabular-nums;margin:0;line-height:1}.band-units strong{letter-spacing:-.02em;font-size:clamp(3.5rem,2.5rem + 4vw,5rem);font-weight:600}.band-of{color:var(--ink-2);font-size:clamp(1.6rem,1.2rem + 1.5vw,2.1rem)}.band-caption{font-family:var(--sans);color:var(--ink-2);margin-block-start:.4rem;font-size:1rem;display:block}.band-pct{color:var(--ink-2);margin:.6rem 0 0}.band-pct strong{color:var(--accent);font-size:1.2rem}.standing-band .meter{height:1rem;margin-block:1.25rem .9rem}.band-context{margin:0 0 .35rem;font-size:1.05rem}.band-estimate{color:var(--muted);margin:0;font-size:.9rem}.estimate-label{border:1px solid var(--rule-strong);color:var(--ink-2);letter-spacing:.08em;text-transform:uppercase;vertical-align:.1em;border-radius:2px;margin-inline-end:.35rem;padding:0 .4rem;font-size:.72rem;font-weight:600;display:inline-block}.unit-totals{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.75rem 1.5rem;margin:0;display:grid}.unit-totals div{border-inline-start:3px solid var(--rule);padding-inline-start:.75rem}.unit-totals .total-completed{border-color:var(--accent)}.unit-totals .total-current{border-image:repeating-linear-gradient(180deg, var(--accent) 0 3px, #d99aa3 3px 6px) 1}.unit-totals .total-planned{border-color:#a89c8d}.unit-totals dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.unit-totals dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.15rem;font-weight:600}.requirements{border-block-start:1px solid var(--rule);margin:0;padding:0;list-style:none}.requirement{border-block-end:1px solid var(--rule);padding-block:1rem}.requirement-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.requirement-units{color:var(--ink-2);font-variant-numeric:tabular-nums;margin:.2rem 0 0}.requirement-units strong{color:var(--ink)}.requirement-desc{color:var(--muted);margin:.2rem 0 0;font-size:.9rem}.badge{letter-spacing:.03em;white-space:nowrap;border:1px solid;border-radius:999px;padding:.05rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-complete{color:var(--ok);background:var(--ok-soft)}.badge-complete:before{content:"✓ "}.badge-in-progress{color:var(--accent);background:var(--accent-soft)}.badge-not-started{color:var(--ink-2);background:var(--card);border-style:dashed}.course-group+.course-group{margin-block-start:1.5rem}.course-group h3{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-block-end:.5rem;font-size:.82rem}.course-list,.suggestions{border-block-start:1px solid var(--rule);margin:0;padding:0;list-style:none}.course-row{border-block-end:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding-block:.75rem;display:flex}.course-id{flex:16rem;gap:.05rem;min-width:0;display:grid}.course-code{font-family:var(--mono);letter-spacing:.02em;font-size:.92rem;font-weight:650}.course-title{color:var(--ink)}.course-meta{color:var(--muted);font-size:.875rem}.completed-history summary{cursor:pointer;min-height:2.5rem;color:var(--ink-2);border-block:1px solid var(--rule);align-items:center;display:flex}.completed-history[open] summary{border-block-end:0}.course-list.dense .course-row{grid-template-columns:6.5rem minmax(0,1fr) auto;gap:.25rem 1rem;padding-block:.45rem;font-size:.93rem;display:grid}@media (width<=40rem){.course-list.dense .course-row{grid-template-columns:6rem minmax(0,1fr)}.course-list.dense .course-meta{grid-column:2}}.dashboard-side .course-row{display:block}.dashboard-side .course-actions{margin-block-start:.5rem}.remaining{border-block-start:1px solid var(--rule);margin:0 0 .75rem;padding:0;list-style:none}.remaining li{border-block-end:1px solid var(--rule);padding-block:.8rem}.remaining h3{font-size:1rem}.remaining p{margin:.1rem 0 0}.remaining-units strong{font-variant-numeric:tabular-nums}.remaining-eligible{color:var(--ink-2);font-size:.92rem}.remaining-link{margin-block-start:.3rem;padding-block:.2rem;font-size:.92rem;font-weight:600;display:inline-block}.warnings{background:var(--warn-soft);border-inline-start:4px solid var(--warn);padding:1rem 1.1rem}.warnings ul{margin:0 0 .75rem;padding-inline-start:1.1rem}.warnings li+li{margin-block-start:.4rem}.blocked{margin-block-start:1rem}.blocked summary{cursor:pointer;color:var(--ink-2);align-items:center;min-height:2.5rem;font-weight:600;display:flex}.blocked ul{margin:.25rem 0 0;padding-inline-start:1.1rem;font-size:.92rem}.blocked li+li{margin-block-start:.4rem}.missing{color:var(--ink-2)}.demo-reset{border-block-start:1px solid var(--rule);padding-block-start:1.25rem}.demo-reset h2{font-size:1rem}.demo-reset button.quiet{padding-inline:0}.course-actions{flex-wrap:wrap;align-items:center;gap:.4rem .5rem;display:flex}.term-picker{align-items:center;gap:.4rem;display:inline-flex}.course-actions.compact button,.course-actions.compact select{min-height:2.25rem;font-size:.85rem}.status{font-size:.9rem;font-weight:600}.status:before{margin-inline-end:.35em;font-weight:700}.status-completed{color:var(--ok)}.status-completed:before{content:"✓"}.status-current{color:var(--accent)}.status-current:before{content:"●"}.status-planned{color:var(--ink-2)}.status-planned:before{content:"○"}.status-eligible{color:var(--ok)}.status-eligible:before{content:"→"}.status-missing{color:var(--warn)}.status-missing:before{content:"!"}.filters{background:var(--paper-2);border:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));align-items:end;gap:.9rem 1.1rem;margin-block-end:1.25rem;padding:1.1rem;display:grid}.field{gap:.25rem;display:grid}.field input,.field select{width:100%}@media (width>=48rem){.field-wide{grid-column:span 2}}.filter-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.result-count{color:var(--muted);font-size:.9rem}.catalogue{border-block-start:2px solid var(--ink);margin:0;padding:0;list-style:none}.catalogue-head{display:none}.catalogue-item{border-block-end:1px solid var(--rule);border-inline-start:3px solid #0000;gap:.5rem 2rem;padding-block:1rem;padding-inline-start:.9rem;display:grid}@media (width>=56rem){.catalogue-head,.catalogue-item{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr) minmax(0,1.25fr);align-items:start}.catalogue-head{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:0 2rem;padding-block-end:.4rem;padding-inline-start:calc(.9rem + 3px);font-size:.75rem;font-weight:600;display:grid}.catalogue-head+.catalogue{border-block-start-width:1px}.catalogue-standing{padding-block-start:.15rem}}.catalogue-heading{font-family:var(--sans);margin:0 0 .15rem;font-size:1.02rem;font-weight:500}.catalogue-heading a{color:var(--ink);gap:.05rem;text-decoration:none;display:grid}.catalogue-heading a:hover .course-title{text-decoration:underline}.catalogue-heading .course-code{color:var(--accent)}.catalogue-course p{margin:0}.catalogue-standing{align-content:start;gap:.1rem;display:grid}.catalogue-action .course-actions{gap:.4rem}.catalogue-item.is-recorded .course-code{color:var(--muted)}.catalogue-item.is-recorded .course-title{color:var(--ink-2)}.catalogue-item.is-recorded{border-inline-start-color:var(--rule-strong)}h1 .course-code{color:var(--accent);margin-block-end:.3rem;font-size:1rem;display:block}.detail{gap:2rem;display:grid}@media (width>=56rem){.detail{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:3.5rem}}.standing{margin-block-end:.75rem}.facts{border-block-start:1px solid var(--rule);margin:0 0 1rem}.facts div{border-block-end:1px solid var(--rule);padding-block:.7rem}.facts dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.facts dd{margin:.1rem 0 0}.roadmap{margin:0;padding:0;list-style:none}.roadmap-year>section{gap:.75rem 2rem;margin-block-end:2.25rem;display:grid}@media (width>=56rem){.roadmap-year>section{grid-template-columns:5.5rem minmax(0,1fr)}}.year-heading{font-variant-numeric:tabular-nums;color:var(--ink);margin:0;font-size:1.9rem}.year-semesters{gap:1.75rem 2.5rem;display:grid}@media (width>=56rem){.year-semesters{grid-template-columns:repeat(2,minmax(0,1fr))}}.semester{min-width:0;margin:0}.semester-head{border-block-end:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;padding-block-end:.4rem;display:flex}.semester-head h3{margin:0;font-size:1.15rem}.semester-units{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.load-ref{color:var(--muted);font-size:.9rem;font-weight:400}.semester .meter{height:.4rem;margin-block:.5rem .25rem}.semester .course-list{border-block-start:0}.semester .course-actions{flex-basis:100%}.semester>.warning-line{margin-block:.6rem}.semester-empty{border:1px dashed var(--rule-strong);color:var(--ink-2);margin-block-start:.75rem;padding:.9rem 1rem}.semester-empty p{margin:0 0 .25rem;font-style:italic}.semester-empty a{font-size:.92rem;font-weight:600}.semester-tag{border:1px solid var(--accent);color:var(--accent);font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-inline-start:.5rem;padding:.05rem .5rem;font-size:.7rem;font-weight:600}.semester-current .semester-head{border-block-end-color:var(--accent)}.semester-past .semester-head{border-block-end:1px solid var(--rule-strong)}.semester-past .semester-head h3,.semester-past .semester-units{color:var(--ink-2)}.semester-past .course-row{padding-block:.4rem}.semester-past .course-id{grid-template-columns:6.25rem minmax(0,1fr);font-size:.93rem}.semester-past .course-meta{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-intro .band-estimate{margin-block-start:.75rem}.course-row.is-recorded .course-code{color:var(--muted)}.course-row.is-recorded .course-title{color:var(--ink-2)}.readme{max-width:46rem}.readme h1{margin-block-end:1rem}.readme h2{margin-block-start:2rem}.readme img{border:1px solid var(--rule);max-width:100%;height:auto}@media (width<=40rem){main{padding-block-start:1.5rem}button,select,input[type=search],.course-actions.compact button,.course-actions.compact select{min-height:2.75rem}.term-picker{width:100%}.term-picker select{flex:1}.prototype-notice{text-align:start}}
