:root{color-scheme:light;--ink:#17182a;--muted:#5d667a;--brand:#5669ff;--paper:#f7f8fc;--line:#dfe3ef}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}body{margin:0;line-height:1.5}a{color:#3548d9}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #273cdb;outline-offset:3px}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.7rem;z-index:9}
.site-header{max-width:1080px;margin:auto;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.2rem;color:var(--ink);text-decoration:none;white-space:nowrap}.brand img{display:block;width:34px;height:34px}.site-header nav{display:flex;flex-wrap:wrap;gap:.35rem}.site-header nav a{padding:.45rem .7rem;border-radius:999px;color:#343a50;text-decoration:none;font-weight:650}.site-header nav a:hover{background:#e9ecff}
main{max-width:1080px;margin:0 auto;padding:0 1.25rem 2.5rem}.hero{background:#fff;border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:16px;padding:1.7rem 2rem 1.85rem;box-shadow:0 6px 24px rgba(42,52,92,.04)}.eyebrow{color:#3548d9;font-weight:750;font-size:.86rem;letter-spacing:.035em;margin:0 0 .5rem}.hero h1{font-size:clamp(1.8rem,3vw,2.55rem);max-width:760px;line-height:1.14;margin:0 0 .7rem;letter-spacing:-.025em}.lede{font-size:1rem;max-width:710px;color:var(--muted);margin:0 0 1.15rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;background:var(--brand);color:#fff;text-decoration:none;font-weight:750;padding:.76rem 1.1rem;border-radius:12px;min-height:48px}.button:hover{background:#4054ef}.button.secondary{background:#27324d}
.home-hero{background:radial-gradient(circle at 88% 22%,rgba(86,105,255,.15),transparent 40%),linear-gradient(135deg,#fff,#f7f8ff);padding:2.15rem 2.3rem 2.25rem;border-top-width:5px;box-shadow:0 12px 32px rgba(42,52,92,.07)}.home-hero h1{font-size:clamp(2rem,3.7vw,3.15rem);max-width:680px}.home-hero .lede{max-width:650px;line-height:1.65}
main>section:not(.hero){margin-top:1rem}.cards,.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.cards article,.feature-grid>div,.utility,.source-note{border:1px solid var(--line);border-radius:12px;padding:1.3rem;background:#fff}.cards article{min-width:0}.cards h2,.feature-grid h2{font-size:1.12rem;margin:.1rem 0 .65rem}.cards p,.feature-grid p{color:var(--muted);margin:.5rem 0}.cards h2 a{color:var(--ink);text-decoration:none}.cards h2 a:hover{text-decoration:underline}.text-link{font-weight:700}.more-tools{padding:1.15rem 1.3rem;border:1px solid var(--line);border-radius:12px;background:#fff}.more-tools h2,.source-note h2{margin:.1rem 0 .5rem;font-size:1.2rem}.more-tools p{color:var(--muted);margin:.4rem 0}.more-tools ul{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;list-style:none;padding:0;margin:.9rem 0 0}.more-tools a{font-weight:700}
.cards article{box-shadow:0 5px 18px rgba(42,52,92,.045)}.how-it-works{border:1px solid var(--line);border-radius:12px;background:#eef1ff;padding:1.3rem}.how-it-works h2{font-size:1.2rem;margin:0 0 .7rem}.info-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.info-pair p{margin:0;background:#fff;border-radius:10px;padding:1rem;color:var(--muted)}.social-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;margin:.65rem 0}.social-links a{font-weight:700}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem}.menu-card{border:1px solid var(--line);border-radius:12px;padding:1.1rem}.meta{color:var(--muted);font-size:.93rem}.error{border-left:5px solid #c5483f}main>section.date-picker{padding:.9rem 1.3rem;background:#fff;border:1px solid var(--line);border-radius:12px}main>section#menu-root,main>section#scheduler-summary{padding:1.2rem 1.3rem}.date-picker p{margin:.4rem 0 0}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}footer{border-top:1px solid var(--line);padding:2rem 1.25rem;text-align:center;color:var(--muted)}
@media(max-width:760px){.site-header{align-items:flex-start;flex-direction:column;gap:.45rem;padding:.8rem 1rem}.site-header nav{font-size:.9rem;gap:.1rem}.site-header nav a{padding:.35rem .5rem}main{padding:0 1rem 2rem}.hero{padding:1.3rem 1.2rem 1.4rem}.hero h1{font-size:clamp(1.65rem,7vw,2.05rem)}.home-hero{padding:1.55rem 1.25rem}.home-hero h1{font-size:clamp(1.95rem,7.5vw,2.5rem)}.cards,.feature-grid,.info-pair{grid-template-columns:1fr}.button.primary-action{width:100%}}.date-picker label,.course-search label,.offerings-search label{display:block;font-weight:700;margin-bottom:.4rem}.date-picker input,.course-search input,.offerings-search input{font:inherit;padding:.65rem;border:1px solid var(--line);border-radius:8px;max-width:100%}.course-search input,.offerings-search input{width:min(100%,440px)}.offerings-search form{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem}.offerings-search button{font:inherit;font-weight:700;color:#fff;background:#4054ef;border:0;border-radius:8px;padding:.65rem 1rem;min-height:44px;cursor:pointer}.offerings-list{list-style:none;padding:0;display:grid;gap:.7rem}.offerings-list>li{border:1px solid var(--line);border-radius:10px;padding:1rem;overflow-wrap:anywhere}.offerings-list h3{font-size:1.08rem;margin:0 0 .3rem}.offerings-list p{margin:.3rem 0}.offerings-list ul{margin:.35rem 0}.offerings-pagination{display:flex;flex-wrap:wrap;gap:1rem}.offerings-subjects,.offerings-course-index,.offerings-course{margin:1.2rem 0}.offerings-subjects ul,.offerings-course-index ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:.5rem;padding:0;list-style:none}.offerings-subjects li a,.offerings-course-index li a{display:block;border:1px solid var(--line);border-radius:8px;padding:.6rem;text-decoration:none}.offerings-course{border-top:1px solid var(--line);padding-top:.7rem}.course-search h2{margin:.1rem 0 .4rem}.course-search p{color:var(--muted)}.course-results-list{display:grid;gap:.55rem;padding:0;list-style:none}.course-results-list button,.course-results-list a{font:inherit;font-weight:700;color:#273cdb;background:#f7f8fc;border:1px solid var(--line);border-radius:9px;padding:.7rem .9rem;min-height:44px;cursor:pointer;text-align:left;width:100%;display:block;text-decoration:none}.course-results-list button:hover,.course-results-list a:hover{background:#e9ecff}.course-section-list{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));padding:0;list-style:none}.course-section-list>li{border:1px solid var(--line);border-radius:10px;padding:.8rem;overflow-wrap:anywhere}.course-section-list>li>ul{list-style:none;padding:0;margin:.55rem 0 0}.course-section-list strong{display:block}.course-section-list p{margin:.3rem 0}.course-search #course-back,.course-search #course-retry{font:inherit;color:#273cdb;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;min-height:44px;cursor:pointer}.menu-card h2{font-size:1.16rem;line-height:1.25;margin:.1rem 0 .7rem}.upcoming-menus{margin-top:1rem}.upcoming-menus>section{border-top:1px solid var(--line);padding-top:.7rem;margin-top:1rem}.upcoming-menus h3{font-size:1.13rem}.upcoming-menus .menu-card h4{font-size:1.16rem;line-height:1.25;margin:.1rem 0 .7rem}.ring-group{border-top:1px solid var(--line);padding-top:1rem;margin-top:1.2rem}.ring-group h3{font-size:1.13rem;margin:.1rem 0}.ring-group>p{color:var(--muted);margin:.35rem 0 .8rem}.ring-group details{border:1px solid var(--line);border-radius:10px;margin:.45rem 0;background:#f7f8fc}.ring-group summary{cursor:pointer;font-weight:700;padding:.7rem .85rem}.ring-group details[open] summary{border-bottom:1px solid var(--line)}.ring-group ol{margin:.5rem 1rem .8rem;padding-left:1.4rem}.ring-group li{padding:.12rem 0}.ring-group time{font-variant-numeric:tabular-nums;font-weight:700;margin-right:.4rem}.ring-notes{border-top:1px solid var(--line);margin-top:1.2rem;padding-top:.8rem}.ring-notes h3{font-size:1.08rem}.ring-notes li{margin:.4rem 0}