@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5efe4;--paper:#fffaf2;--paper-muted:#f9f1e4;--ink:#213027;--muted:#626961;--accent:#ad5620;--accent-strong:#843d13;--accent-wash:#f5dfcb;--moss:#315443;--moss-deep:#223d31;--line:#26362b21;--line-strong:#26362b3d;--shadow:0 20px 46px #46341e1f;--shadow-soft:0 8px 24px #46341e12}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--ink);background:var(--bg);margin:0;font-family:DM Sans,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}::selection{color:var(--moss-deep);background:#ad562033}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:3px;outline:3px solid #9b4b1b6b}#root{min-height:100vh}.shell{width:min(100%,1480px);margin:0 auto;padding:26px clamp(20px,3vw,48px) 34px}.masthead{background:#fffaf2c2;border:1px solid #ffffffa3;border-radius:18px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:42px;padding:13px 16px 13px 14px;display:flex;box-shadow:0 10px 28px #46341e12}.brand-lockup{align-items:center;gap:13px;display:flex}.brand-lockup strong,.eyebrow,h1,h2{font-family:DM Sans,sans-serif}.brand-lockup strong{letter-spacing:-.02em;font-size:1.3rem;display:block}.brand-lockup small{color:var(--muted);white-space:nowrap;font-size:.76rem;line-height:1.35;display:block}.brand-mark{flex:none;width:52px;height:52px}.top-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;display:flex}.top-nav a,.ghost-button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 0;transition:color .16s,background-color .16s}.top-nav a{position:relative}.top-nav a:after{content:"";opacity:0;background:currentColor;height:1px;transition:opacity .16s,transform .18s;position:absolute;bottom:1px;left:0;right:0;transform:scaleX(.35)}.top-nav .active,.top-nav a:hover,.ghost-button:hover{color:var(--accent-strong)}.top-nav .active:after,.top-nav a:hover:after{opacity:1;transform:scaleX(1)}.top-nav .pill-link{background:var(--accent);color:#fffaf2;border-radius:10px;padding:9px 14px;box-shadow:0 7px 14px #843d132e}.top-nav .pill-link:after{display:none}.top-nav .pill-link:hover{background:var(--accent-strong);color:#fffaf2}.pill-link,.primary-link,.secondary-link,.review-form button{cursor:pointer;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:42px;transition:transform .18s,box-shadow .18s,background-color .16s,border-color .16s,color .16s;display:inline-flex}.pill-link,.primary-link,.review-form button{background:var(--accent);color:#fffaf1;padding:10px 16px;box-shadow:0 8px 16px #843d1329}.pill-link:hover,.primary-link:hover,.review-form button:hover{background:var(--accent-strong);box-shadow:0 12px 20px #843d1333}.pill-link:active,.primary-link:active,.secondary-link:active,.review-form button:active,.search-bar button:active,.ghost-button:active{transform:translateY(1px)}.pill-link:disabled,.primary-link:disabled,.secondary-link:disabled,.review-form button:disabled{cursor:not-allowed;opacity:.6}.secondary-link{border-color:var(--line-strong);color:var(--ink);background:#fffcf79e;padding:10px 16px}.secondary-link:hover{border-color:var(--ink);background:var(--paper-muted)}.page-frame,.stack-xxl,.stack-xl,.stack-lg,.stack-md{display:grid}.stack-xxl{gap:44px}.stack-xl{gap:36px}.stack-lg{gap:24px}.stack-md{gap:16px}.home-page{gap:clamp(64px,7vw,96px);padding:0 0 28px;display:grid}.home-hero{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);column-gap:clamp(52px,7vw,108px);display:grid}.home-hero-copy{min-width:0}.home-hero h1{letter-spacing:-.035em;max-width:14ch;margin:0 0 24px;font-size:clamp(3rem,5vw,4.6rem);font-weight:700;line-height:1}.home-hero-lede{color:var(--muted);margin:0;font-size:clamp(1.08rem,1.6vw,1.3rem);line-height:1.65}.home-hero-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:30px;display:flex}.home-hero-actions>a{white-space:nowrap;width:220px;min-height:46px}.home-hero-link{isolation:isolate;border-color:var(--ink);color:var(--ink);box-shadow:none;background:0 0;font-weight:600;transition:color .16s;position:relative;overflow:hidden}.home-hero-link:before{z-index:-1;background:var(--accent-wash);content:"";pointer-events:none;transform-origin:0;transition:transform .18s;position:absolute;inset:0;transform:scaleX(0)}.home-hero-link:hover,.home-hero-link:focus-visible{border-color:var(--ink);color:var(--accent-strong);background:0 0}.home-hero-link:hover:before,.home-hero-link:focus-visible:before{transform:scaleX(1)}.home-benefits{border-top:2px solid var(--ink);align-self:start;display:grid}.home-benefits article{border-bottom:1px solid var(--line-strong);padding:20px 0 22px}.home-benefits h2{letter-spacing:-.01em;margin:0 0 8px;font-size:1.18rem;font-weight:700}.home-benefits p{color:var(--muted);margin:0;line-height:1.55}.home-facts{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);flex-wrap:wrap;grid-column:1/-1;gap:0;margin:clamp(44px,6vw,70px) 0 0;padding:18px 0;display:flex}.home-facts div{border-right:1px solid var(--line);align-items:baseline;gap:8px;padding:0 28px;display:flex}.home-facts div:first-child{padding-left:0}.home-facts div:last-child{border-right:0}.home-facts dt{font-family:DM Sans,sans-serif;font-size:clamp(1.72rem,2vw,1.95rem);font-weight:700}.home-facts dd{color:var(--muted);margin:0}.home-directory{gap:28px;display:grid}.home-section-heading{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:end;gap:32px;padding-bottom:20px;display:flex}.home-section-heading h2{letter-spacing:-.025em;margin:6px 0 0;font-size:clamp(2rem,3vw,2.8rem);font-weight:600}.home-section-heading>p{color:var(--muted);margin:0;line-height:1.6}.home-directory-grid{grid-template-columns:minmax(280px,.8fr) minmax(420px,1.35fr);gap:clamp(40px,6vw,84px);display:grid}.home-directory-block{min-width:0}.home-directory-heading{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:baseline;gap:18px;padding-bottom:12px;display:flex}.home-directory-heading h3{margin:0;font-family:DM Sans,sans-serif;font-size:1.4rem;font-weight:600}.home-directory-heading a{border:1px solid var(--ink);background-color:#0000;background-image:linear-gradient(var(--accent-wash), var(--accent-wash));width:96px;min-height:36px;color:var(--ink);white-space:nowrap;background-position:0;background-repeat:no-repeat;background-size:0 100%;border-radius:8px;justify-content:center;align-items:center;padding:6px 10px;font-size:.92rem;font-weight:600;transition:background-size .18s,color .16s;display:inline-flex}.home-directory-heading a:hover,.home-directory-heading a:focus-visible{color:var(--accent-strong);background-color:#0000;background-size:100% 100%}.home-directory-list{display:grid}.home-directory-row{border-bottom:1px solid var(--line);border-radius:8px;grid-template-columns:104px minmax(0,1fr) auto;align-items:baseline;gap:18px;margin:0 -12px;padding:16px 12px;transition:background-color .15s,box-shadow .15s;display:grid}.home-directory-row strong{font-family:DM Sans,sans-serif;font-size:1.05rem;font-weight:700}.home-directory-row span{min-width:0;line-height:1.45}.home-directory-row small{color:var(--muted);text-align:right}.home-directory-row:hover,.home-directory-row:focus-visible{background:#ad56201a;box-shadow:inset 3px 0 #ad5620b8}.home-directory-row:hover span,.home-directory-row:hover strong,.home-directory-row:focus-visible span,.home-directory-row:focus-visible strong{color:var(--accent-strong)}.course-hero{gap:24px;display:grid}.course-copy h1,.section-heading h1{letter-spacing:-.035em;margin:8px 0 16px;font-size:clamp(2.3rem,4.5vw,4.05rem);line-height:1.03}.lede{color:var(--muted);margin:0;font-size:1.05rem;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.hero-stats{box-shadow:var(--shadow-soft);background:#fffaf2bd;border:1px solid #ffffffb3;border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid;overflow:hidden}.hero-stats article{border-right:1px solid var(--line);min-width:0;padding:21px 24px}.hero-stats article:last-child{border-right:0}.hero-stats span,.review-meta span,.review-meta em,.course-meta span,.status-message,.notice-banner,.professor-card span,.result-card small,.list-card small,.department-row small{color:var(--muted)}.hero-stats strong{letter-spacing:-.03em;margin-top:6px;font-family:DM Sans,sans-serif;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:500;display:block}.feature-grid,.two-column-grid,.results-grid,.professor-grid,.list-grid{gap:18px;display:grid}.feature-grid{border:0;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.two-column-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.panel,.form-panel{border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:clamp(24px,3.2vw,38px)}.auth-panel{max-width:720px;margin:0 auto}.info-card,.department-summary{border:1px solid var(--line);background:var(--paper-muted);border-radius:10px;min-width:0;padding:23px 24px}.info-card:hover,.department-summary:hover{border-color:var(--line)}.info-card h2{letter-spacing:-.02em;margin:0 0 8px;font-size:1.35rem}.info-card p{color:var(--muted);margin:0;line-height:1.6}.department-summary{gap:5px;display:grid}.department-summary strong{letter-spacing:-.03em;font-family:DM Sans,sans-serif;font-size:2rem;font-weight:500}.department-summary small{color:var(--muted)}.section-heading h2,.section-heading h1,.course-copy h1{margin:0}.section-heading h2{letter-spacing:-.025em;font-size:clamp(1.65rem,2.8vw,2.25rem);line-height:1.12}.compact-title{line-height:1.12;font-size:clamp(1.55rem,3vw,2.15rem)!important}.section-heading{gap:7px;display:grid}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.list-card,.result-card,.department-row,.professor-card,.course-link-card{border:1px solid var(--line);background:var(--paper);border-radius:10px;gap:7px;min-width:0;padding:19px 20px;transition:background-color .16s,border-color .16s;display:grid}a.list-card:hover,a.result-card:hover,a.department-row:hover,a.professor-card:hover,a.course-link-card:hover{border-color:var(--line-strong);background:var(--paper-muted)}.list-card strong,.result-card strong,.course-link-card strong,.department-row strong{letter-spacing:-.01em}.list-card span,.result-card span,.course-link-card span,.department-row span{line-height:1.5}.result-card em{color:var(--accent-strong);font-size:.85rem;font-style:normal;font-weight:700}.search-bar,.auth-form,.review-form{gap:14px;display:grid}.search-bar input,.auth-form input,.review-form input,.review-form select,.review-form textarea,.search-bar select{border:1px solid var(--line-strong);width:100%;min-height:48px;color:var(--ink);background:#fffdf8;border-radius:10px;padding:12px 14px}.search-bar input::placeholder,.auth-form input::placeholder,.review-form textarea::placeholder{color:#777d74}.search-bar input:focus,.auth-form input:focus,.review-form input:focus,.review-form select:focus,.review-form textarea:focus,.search-bar select:focus{border-color:#ad56209e;outline:none;box-shadow:0 0 0 3px #ad56201a}.search-bar button{border:1px solid var(--moss);background:var(--moss);color:#fffaf1;cursor:pointer;border-radius:10px;min-height:48px;padding:0 18px;transition:background-color .16s}.search-bar button:hover{background:#244337}.course-hero{align-items:start}.course-copy{border:1px solid var(--line);background:var(--paper);border-radius:14px;width:100%;padding:clamp(30px,4vw,52px)}.course-description{max-width:none;font-size:1.08rem;line-height:1.75}.course-copy h1{max-width:none;margin-bottom:22px}.course-copy .eyebrow{margin-bottom:16px}.course-meta{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.course-meta span{border:1px solid var(--line);background:var(--paper-muted);border-radius:7px;padding:7px 10px;font-size:.9rem}.course-meta-button{font-weight:700;border-color:var(--accent)!important;background:var(--accent)!important;color:#fffaf1!important}.professor-grid,.results-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.pending-note{color:var(--muted);margin-top:10px;display:block}.review-list{gap:18px;display:grid}.review-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:14px;padding-bottom:16px;display:flex}.compact-field{gap:8px;min-width:min(100%,320px);display:grid}.compact-field span,.toolbar-summary{color:var(--muted)}.toolbar-summary{margin:0}.results-footer{justify-items:center;gap:12px;padding:8px 0;display:grid}.results-sentinel{width:100%;height:1px}.review-card{border:1px solid var(--line);background:#fffdf8;border-left:3px solid #9b4b1b8c;border-radius:10px;width:100%;padding:22px 24px}.review-card p{max-width:none;margin:0;font-size:1rem;line-height:1.75}.pending-review-card{background:var(--paper-muted);border-style:dashed dashed dashed solid}.review-meta{flex-wrap:wrap;gap:12px;margin-bottom:13px;font-size:.95rem;line-height:1.5;display:flex}.review-meta em{font-style:normal}.review-professor-link,.auth-copy a,.search-note a{color:var(--accent-strong);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.review-professor-link:hover,.auth-copy a:hover,.search-note a:hover{color:var(--accent)}.notice-banner,.status-message{border:1px solid #9b4b1b4d;border-left:3px solid var(--accent);background:var(--accent-wash);border-radius:12px;margin:0;padding:13px 15px;line-height:1.55}.admin-actions{margin-top:12px}.department-table,.median-course-table{border-top:1px solid var(--line);display:grid}.department-row{border:1px solid #0000;border-bottom:1px solid var(--line);border-radius:10px;grid-template-columns:120px minmax(0,1fr) 120px;align-items:center}.department-row:hover{background:var(--paper-muted);box-shadow:none;border-color:#ad56203d;transform:none}.turnstile-shell{min-height:66px}.session-pill{border:1px solid var(--line);background:#fffdf894;border-radius:10px;gap:2px;max-width:min(300px,40vw);padding:5px 11px;display:grid}.session-pill strong{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.session-pill small{color:var(--muted);font-size:.73rem}.search-bar{grid-template-columns:minmax(0,1.2fr) minmax(220px,280px) minmax(220px,280px) auto}.course-search-bar{grid-template-columns:minmax(0,1fr) minmax(220px,280px) auto}.auth-copy{color:var(--muted);margin:0;line-height:1.6}.site-footer{color:var(--muted);text-align:center;margin-top:36px;padding:18px 0 4px;font-size:.88rem}.site-footer p{margin:0}.search-note{color:var(--muted);margin:0}.median-facts{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:repeat(3,minmax(0,1fr));margin:4px 0 0;padding:15px 0;display:grid}.median-facts div{border-right:1px solid var(--line);align-items:baseline;gap:9px;min-width:0;padding:0 24px;display:flex}.median-facts div:first-child{padding-left:0}.median-facts div:last-child{border-right:0}.median-facts dt{letter-spacing:-.025em;font-size:clamp(1.72rem,2vw,1.95rem);font-weight:700}.median-facts dd{color:var(--muted);margin:0}.median-course-row{border-bottom:1px solid var(--line);background:0 0;border-radius:11px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 12px;transition:transform .18s,background-color .18s,box-shadow .18s;display:grid}.median-course-row:hover{background:var(--paper-muted)}.median-course-copy{gap:6px;min-width:0;display:grid}.median-course-copy span{font-weight:600}.median-course-copy small{color:var(--muted)}.median-course-side{align-items:center;display:flex}.median-course-badge{border:1px solid var(--accent);background:var(--accent);color:#fffaf1;white-space:nowrap;border-radius:7px;padding:8px 11px;font-size:.9rem;font-weight:700}.median-course-badge[data-empty=true]{border-color:var(--line-strong);color:var(--muted);background:0 0;font-weight:600}.professor-result-card,.course-link-card,.offering-card{gap:6px;display:grid}.offerings-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.course-group-heading{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:18px;display:flex}.course-group-heading>small{color:var(--muted)}.selected-course-panel{border-left:4px solid var(--moss);padding:24px}.expandable-review-block{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .2s,opacity .2s;display:grid}.expandable-review-block[data-expanded=true]{opacity:1;grid-template-rows:1fr}.expandable-review-inner{overflow:hidden}.review-toggle-button{border:1px solid var(--accent);background:var(--accent);color:#fffaf1;border-radius:10px;justify-self:start}.review-toggle-button:hover{border-color:var(--accent-strong);background:var(--accent-strong);color:#fffaf1}.review-preview-wall{border:1px solid var(--line);background:var(--paper-muted);border-radius:18px;width:100%;min-height:330px;position:relative;overflow:hidden}.blurred-review-stack{filter:blur(5px);opacity:.52;pointer-events:none;-webkit-user-select:none;user-select:none;gap:14px;display:grid}.review-preview-overlay{background:#f3eee3db;place-items:center;padding:18px;display:grid;position:absolute;inset:0}.review-preview-overlay .login-wall-card{width:100%;max-width:560px}.login-wall-card{border:1px solid var(--line-strong);border-left:3px solid var(--accent);background:var(--paper);box-shadow:var(--shadow);border-radius:16px;gap:14px;padding:22px;display:grid}.login-wall-card.compact{gap:10px;padding:18px 20px}.login-wall-card.compact .section-heading{gap:6px}.login-wall-card.compact .section-heading h2{font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.12}.login-wall-card.compact .auth-copy{font-size:.96rem;line-height:1.5}.login-wall-card.compact .hero-actions{gap:10px;margin-top:10px}.login-wall-card.compact .primary-link,.login-wall-card.compact .secondary-link{min-height:38px;padding:8px 12px}.review-encouragement-overlay{z-index:50;background:#1d2a237a;place-items:center;padding:24px;animation:.14s ease-out both modal-backdrop-in;display:grid;position:fixed;inset:0}.review-encouragement-modal{border:1px solid var(--line-strong);border-top:4px solid var(--accent);background:var(--paper);width:min(100%,560px);box-shadow:var(--shadow);border-radius:20px;gap:14px;padding:30px;animation:.18s cubic-bezier(.2,.75,.3,1) both modal-panel-in;display:grid;position:relative}.review-encouragement-close{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;place-items:center;display:grid;position:absolute;top:12px;right:12px}.review-encouragement-close:hover{border-color:var(--line-strong);color:var(--ink);background:var(--paper-muted)}.review-encouragement-actions{margin-top:4px}@keyframes modal-backdrop-in{0%{background:#1d2a2300}}@keyframes modal-panel-in{0%{opacity:0;transform:translateY(8px)scale(.99)}}@media (width<=900px){.shell{padding:18px}.masthead{flex-direction:column;align-items:stretch;gap:16px;padding:14px}.top-nav{justify-content:flex-start}.feature-grid,.two-column-grid,.results-grid,.home-hero,.home-directory-grid{grid-template-columns:1fr}.home-hero{row-gap:42px}.home-benefits{margin-top:6px}.home-section-heading{flex-direction:column;align-items:start}.search-bar,.course-search-bar,.department-row{grid-template-columns:1fr}.department-row{gap:6px}}@media (width<=640px){.shell{padding:14px}.masthead{border-radius:15px;gap:12px;margin-bottom:28px;padding:12px}.brand-lockup small{display:none}.brand-mark{width:44px;height:44px}.top-nav{overscroll-behavior-inline:contain;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:18px;margin:0 -4px;padding:2px 4px 5px;overflow-x:auto}.top-nav::-webkit-scrollbar{display:none}.top-nav a,.top-nav .ghost-button{flex:none}.top-nav .pill-link{padding:8px 11px}.home-page{gap:56px;padding-top:18px}.home-hero h1{font-size:clamp(2.75rem,14vw,4rem)}.home-hero-actions{align-items:flex-start;gap:16px 20px}.home-facts{gap:12px 0;padding:15px 0}.home-facts div{padding:0 16px}.home-facts div:nth-child(2){border-right:0}.home-facts div:last-child{width:100%;padding-left:0}.home-section-heading{gap:14px}.home-directory-grid{gap:42px}.home-directory-row{grid-template-columns:82px minmax(0,1fr);gap:6px 14px}.home-directory-row small{text-align:left;grid-column:2}.course-copy,.panel,.form-panel{padding:24px}.course-copy h1,.course-description{max-width:100%}.course-copy,.review-card,.review-preview-wall{width:100%}.course-copy{border-radius:14px}.hero-stats{grid-template-columns:1fr}.hero-stats article,.hero-stats article:last-child{border-right:0;border-bottom:1px solid var(--line)}.hero-stats article:last-child{border-bottom:0}.median-course-row{grid-template-columns:1fr;align-items:start}.median-facts{grid-template-columns:1fr;padding:0}.median-facts div,.median-facts div:first-child{border-right:0;border-bottom:1px solid var(--line);padding:12px 0}.median-facts div:last-child{border-bottom:0}.median-course-side{justify-content:start}.review-encouragement-modal{padding:26px 22px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
