:root {
  --ink: #081b33;
  --ink-2: #102b4b;
  --blue: #1565c0;
  --blue-dark: #0d47a1;
  --cyan: #42d7e8;
  --cyan-soft: #dff8fb;
  --gold: #f3b942;
  --paper: #f7f9fc;
  --white: #ffffff;
  --muted: #66758a;
  --line: #dce5ef;
  --shadow: 0 20px 60px rgba(8, 27, 51, .12);
  --shadow-soft: 0 8px 28px rgba(8, 27, 51, .08);
  --radius: 20px;
  --radius-sm: 12px;
  --serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Sarabun", "Noto Sans Thai", Tahoma, sans-serif; font-size: 16px; line-height: 1.65; }
body, button, input, select { -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.site-noise { position: fixed; inset: 0; pointer-events: none; opacity: .025; z-index: 10; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E"); }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.section-pad { padding: 112px 0; }
.section-light { background: #eef3f8; }
.section-paper { background: var(--paper); }
.section-dark { color: var(--white); background: var(--ink); }
.section-blueprint { color: var(--ink); background: #eaf6f8; background-image: linear-gradient(120deg, rgba(66,215,232,.1), transparent 38%), linear-gradient(300deg, rgba(21,101,192,.08), transparent 55%); }

.topline { color: #c8d7e8; background: #051326; font-size: 12px; letter-spacing: .03em; }
.topline-inner { display: flex; align-items: center; justify-content: space-between; min-height: 32px; }
.topline-status { display: inline-flex; align-items: center; gap: 7px; }
.topline-status i, .card-live i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 4px rgba(66,215,232,.14); }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(220,229,239,.9); backdrop-filter: blur(16px); }
.header-inner { min-height: 78px; display: flex; align-items: center; gap: 28px; }
.brand { display: flex; align-items: center; gap: 12px; min-width: 282px; }
.brand-logo { width: 72px; height: 36px; object-fit: contain; object-position: center; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.05; }
.brand-copy strong { color: var(--blue-dark); font: 700 14px/1.05 "Prompt", sans-serif; letter-spacing: .08em; }
.brand-copy small { margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.2; }
.primary-nav { flex: 1; display: flex; justify-content: center; gap: 2px; }
.primary-nav a { position: relative; padding: 26px 10px 23px; color: #516176; font-size: 14px; font-weight: 600; white-space: nowrap; transition: color .2s ease; }
.primary-nav a::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 14px; height: 2px; background: var(--cyan); transform: scaleX(0); transform-origin: center; transition: transform .2s ease; }
.primary-nav a:hover, .primary-nav a.active { color: var(--blue-dark); }
.primary-nav a.active::after { transform: scaleX(1); }
.header-cta { display: inline-flex; align-items: center; gap: 10px; padding: 11px 15px; color: var(--white); background: var(--blue-dark); border-radius: 999px; font-size: 13px; font-weight: 600; transition: transform .2s ease, background .2s ease; }
.header-cta:hover { background: var(--blue); transform: translateY(-2px); }
.header-cta span { color: var(--cyan); font-size: 17px; }
.menu-toggle { display: none; margin-left: auto; padding: 8px; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 24px; height: 2px; margin: 5px; background: var(--ink); }

.hero { position: relative; overflow: hidden; padding-top: 96px; padding-bottom: 0; color: var(--white); background: var(--ink); background-image: radial-gradient(circle at 82% 16%, rgba(21,101,192,.6), transparent 30%), linear-gradient(135deg, #081b33 0%, #0a2442 60%, #0b365c 100%); }
.hero::before { content: ""; position: absolute; right: -10vw; top: 90px; width: 45vw; height: 45vw; max-width: 690px; max-height: 690px; border: 1px solid rgba(66,215,232,.18); border-radius: 50%; box-shadow: 0 0 0 30px rgba(66,215,232,.025), 0 0 0 80px rgba(66,215,232,.02); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr .95fr; gap: 70px; align-items: center; min-height: 525px; }
.hero-copy { max-width: 620px; padding-bottom: 58px; }
.eyebrow, .section-kicker { margin: 0 0 18px; color: var(--cyan); font: 600 12px/1.2 "Prompt", sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: 12px; color: #b8d3e9; letter-spacing: .07em; }
.eyebrow-line { display: inline-block; width: 42px; height: 2px; background: var(--gold); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 24px; font: 700 clamp(3.2rem, 6vw, 6.2rem)/.96 "Prompt", sans-serif; letter-spacing: -.055em; }
h1 em { color: var(--cyan); font-style: normal; }
.hero-lead { max-width: 530px; color: #d3e0ed; font-size: 18px; line-height: 1.8; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 22px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 46px; padding: 11px 20px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 700; cursor: pointer; transition: transform .2s ease, background .2s ease, color .2s ease, border .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: var(--ink); background: var(--cyan); box-shadow: 0 10px 26px rgba(66,215,232,.2); }
.button-primary:hover { background: #82e8f1; }
.button-ghost { color: var(--white); border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.04); }
.button-ghost:hover { border-color: var(--cyan); color: var(--cyan); }
.hero-note { color: #91abc3; font-size: 13px; }
.note-mark { margin-right: 8px; color: var(--gold); }
.hero-visual { position: relative; min-height: 475px; }
.visual-orbit { position: absolute; border: 1px solid rgba(66,215,232,.25); border-radius: 50%; transform: rotate(-24deg); }
.orbit-one { width: 470px; height: 188px; top: 105px; left: 5px; }
.orbit-two { width: 430px; height: 170px; top: 126px; left: 24px; border-color: rgba(243,185,66,.32); transform: rotate(26deg); }
.visual-card { position: absolute; }
.visual-main-card { top: 67px; left: 78px; width: 350px; height: 325px; padding: 27px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 24px; background: linear-gradient(145deg, rgba(30,83,137,.96), rgba(8,27,51,.98)); box-shadow: 0 28px 70px rgba(0,0,0,.32); transform: rotate(-4deg); }
.visual-main-card::after { content: ""; position: absolute; right: -65px; bottom: -80px; width: 220px; height: 220px; border: 1px solid rgba(66,215,232,.5); border-radius: 50%; }
.card-topline, .visual-foot { display: flex; justify-content: space-between; color: #b4cbe0; font: 600 10px/1.2 "Prompt", sans-serif; letter-spacing: .12em; }
.card-live { display: flex; align-items: center; gap: 7px; color: var(--cyan); }
.signal-mark { display: flex; align-items: end; gap: 7px; height: 120px; margin-top: 30px; }
.signal-mark span { width: 16px; border-radius: 4px 4px 1px 1px; background: var(--cyan); box-shadow: 0 0 22px rgba(66,215,232,.35); }
.signal-mark span:nth-child(1) { height: 38px; opacity: .42; }.signal-mark span:nth-child(2) { height: 74px; opacity: .62; }.signal-mark span:nth-child(3) { height: 111px; }.signal-mark span:nth-child(4) { height: 58px; opacity: .76; }
.visual-label { position: relative; z-index: 1; margin: -48px 0 45px 100px; color: #e9f5ff; font: 500 16px/1.05 "Prompt", sans-serif; letter-spacing: .2em; }
.visual-label strong { color: var(--gold); font-size: 22px; letter-spacing: .08em; }
.visual-foot { position: absolute; left: 27px; right: 27px; bottom: 26px; }
.visual-stat { display: flex; align-items: baseline; gap: 9px; padding: 13px 17px; border: 1px solid rgba(8,27,51,.08); border-radius: 15px; color: var(--ink); background: var(--white); box-shadow: var(--shadow); }
.visual-stat strong { color: var(--blue-dark); font: 700 30px/1 "Prompt", sans-serif; }.visual-stat span { color: var(--muted); font-size: 12px; line-height: 1.2; }
.stat-top { top: 14px; right: -8px; transform: rotate(5deg); }.stat-bottom { bottom: 20px; left: 3px; transform: rotate(-5deg); }
.visual-caption { position: absolute; right: 5px; bottom: -7px; color: #8fa9c2; font-size: 12px; transform: rotate(-3deg); }
.metric-strip { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 15px; border-top: 1px solid rgba(255,255,255,.15); }
.metric { display: flex; align-items: baseline; gap: 12px; padding: 24px 20px 26px 0; border-right: 1px solid rgba(255,255,255,.13); }.metric:not(:first-child) { padding-left: 25px; }.metric:last-child { border-right: 0; }
.metric strong { color: var(--cyan); font: 700 30px/1 "Prompt", sans-serif; letter-spacing: -.04em; }.metric span { color: #b9cada; font-size: 13px; }

.section-heading { margin-bottom: 44px; }.compact-heading { margin-bottom: 30px; }.section-heading h2 { margin-bottom: 0; font: 700 clamp(2.35rem, 4vw, 4rem)/1.05 "Prompt", sans-serif; letter-spacing: -.06em; }.section-heading h2 span { color: var(--blue); }.heading-light h2 span { color: var(--cyan); }.split-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; }.heading-aside { max-width: 415px; margin-bottom: 2px; color: var(--muted); font-size: 16px; line-height: 1.8; }.heading-light .heading-aside { color: #b5c9dc; }
.quick-nav { border-bottom: 1px solid var(--line); }.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }.quick-card { position: relative; min-height: 188px; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; overflow: hidden; color: var(--white); border-radius: var(--radius); transition: transform .22s ease, box-shadow .22s ease; }.quick-card::after { content: ""; position: absolute; right: -28px; bottom: -28px; width: 110px; height: 110px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }.quick-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }.quick-blue { background: linear-gradient(145deg, #1b73ce, #0e3f87); }.quick-cyan { color: var(--ink); background: linear-gradient(145deg, #5be0e9, #a3eef2); }.quick-gold { color: var(--ink); background: linear-gradient(145deg, #f3b942, #f8d987); }.quick-navy { background: linear-gradient(145deg, #163b63, #081b33); }.quick-number { font: 600 11px/1 "Prompt", sans-serif; opacity: .72; letter-spacing: .1em; }.quick-icon { font-size: 33px; line-height: .9; }.quick-card strong { font: 600 20px/1.1 "Prompt", sans-serif; }.quick-card small { max-width: 150px; opacity: .75; font-size: 12px; }.quick-card b { position: absolute; right: 20px; bottom: 17px; font: 700 22px/1 "Prompt", sans-serif; }

.plo-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }.plo-card { min-height: 270px; padding: 20px; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius-sm); background: rgba(255,255,255,.06); transition: background .2s ease, transform .2s ease; }.plo-card:hover { background: rgba(66,215,232,.11); transform: translateY(-4px); }.plo-index { display: flex; align-items: center; justify-content: space-between; color: var(--cyan); font: 600 11px/1 "Prompt", sans-serif; letter-spacing: .1em; }.plo-index span { color: var(--gold); font-size: 24px; }.plo-card h3 { margin: 37px 0 12px; font: 600 19px/1.25 "Prompt", sans-serif; }.plo-card p { margin: 0; color: #b8c8d8; font-size: 13px; line-height: 1.7; }.plo-pdf-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 22px; color: var(--cyan); font-size: 13px; line-height: 1.45; text-decoration: underline; text-decoration-color: rgba(66,215,232,.45); text-underline-offset: 3px; }.plo-pdf-link:hover, .plo-pdf-link:focus-visible { color: var(--white); text-decoration-color: var(--white); }.loading-state { min-height: 80px; display: grid; place-items: center; padding: 20px; color: var(--muted); border: 1px dashed var(--line); border-radius: var(--radius-sm); background: transparent; }.section-dark .loading-state { color: #b4c9dc; border-color: rgba(255,255,255,.2); }

.curriculum-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }.curriculum-card { position: relative; min-height: 210px; padding: 26px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-soft); }.curriculum-card::after { content: attr(data-index); position: absolute; right: 17px; bottom: -25px; color: rgba(21,101,192,.06); font: 700 130px/1 "Prompt", sans-serif; }.curriculum-card:nth-child(2) { background: var(--ink); color: var(--white); }.curriculum-card:nth-child(2) .curriculum-detail { color: #b9cede; }.curriculum-card:nth-child(3) { background: var(--cyan-soft); }.curriculum-label, .card-label { color: var(--blue); font: 600 11px/1.2 "Prompt", sans-serif; letter-spacing: .12em; text-transform: uppercase; }.curriculum-card:nth-child(2) .curriculum-label { color: var(--cyan); }.curriculum-credits { margin: 24px 0 7px; font: 700 37px/1 "Prompt", sans-serif; letter-spacing: -.05em; }.curriculum-title { margin-bottom: 8px; font: 600 19px/1.2 "Prompt", sans-serif; }.curriculum-detail { position: relative; z-index: 1; max-width: 270px; color: var(--muted); font-size: 13px; line-height: 1.6; }.learning-methods { display: grid; grid-template-columns: 150px 1fr; gap: 28px; align-items: center; margin-top: 24px; padding: 23px 26px; border-radius: var(--radius-sm); background: var(--white); }.method-label { color: var(--blue-dark); font: 600 11px/1.35 "Prompt", sans-serif; letter-spacing: .13em; }.method-list { display: flex; flex-wrap: wrap; gap: 9px; }.method-list span { padding: 7px 11px; color: var(--blue-dark); border: 1px solid #c5def0; border-radius: 999px; font-size: 12px; background: #f4fbfd; }

.year-tabs { display: flex; gap: 8px; margin-bottom: 18px; padding: 6px; overflow-x: auto; border: 1px solid #cde6ea; border-radius: 999px; background: rgba(255,255,255,.65); }.year-tab { min-width: 100px; padding: 11px 16px; border: 0; border-radius: 999px; color: var(--muted); background: transparent; font: 600 14px "Prompt", sans-serif; cursor: pointer; transition: background .2s ease, color .2s ease; }.year-tab:hover, .year-tab.active { color: var(--white); background: var(--blue-dark); }.plan-panel { min-height: 270px; padding: 29px; border: 1px solid #cfe4e8; border-radius: var(--radius); background: rgba(255,255,255,.85); box-shadow: var(--shadow-soft); }.plan-header { display: flex; align-items: start; justify-content: space-between; gap: 24px; margin-bottom: 24px; }.plan-title { margin: 0 0 5px; font: 600 23px/1.25 "Prompt", sans-serif; }.plan-summary { margin: 0; color: var(--muted); font-size: 13px; }.plan-year-badge { padding: 8px 13px; color: var(--blue-dark); border: 1px solid #b8e6eb; border-radius: 999px; background: var(--cyan-soft); font: 600 12px "Prompt", sans-serif; white-space: nowrap; }.plan-content { display: grid; grid-template-columns: repeat(2, 1fr); gap: 13px; }.plan-semester { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fbfdff; }.semester-title { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 12px; color: var(--blue-dark); font: 600 15px "Prompt", sans-serif; }.semester-title span { color: var(--muted); font-size: 12px; }.plan-lines { margin: 0; color: #4c5d72; font-size: 13px; line-height: 1.8; white-space: pre-line; }

.course-tools { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }.search-box, .filter-box { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); }.search-box { flex: 1; max-width: 470px; }.search-box span { color: var(--blue); font-size: 25px; line-height: 1; }.search-box input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 14px; }.filter-box span { color: var(--muted); font-size: 12px; }.filter-box select { min-width: 180px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 14px; }.result-count { margin-left: auto; color: var(--muted); font-size: 13px; }.course-groups { display: grid; gap: 12px; }.course-group { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }.course-group summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; cursor: pointer; list-style: none; }.course-group summary::-webkit-details-marker { display: none; }.course-group summary:hover { background: #f7fbfe; }.course-group-title { display: flex; align-items: center; gap: 11px; font: 600 16px "Prompt", sans-serif; }.group-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--cyan); }.course-group:nth-child(2n) .group-dot { background: var(--gold); }.course-group-meta { color: var(--muted); font-size: 12px; }.course-count { color: var(--blue-dark); font: 600 12px "Prompt", sans-serif; }.course-list { border-top: 1px solid var(--line); }.course-row { display: grid; grid-template-columns: 120px 1fr 100px; gap: 14px; padding: 12px 20px; border-bottom: 1px solid #edf1f5; }.course-row:last-child { border-bottom: 0; }.course-code { color: var(--blue-dark); font: 600 13px "Prompt", sans-serif; }.course-name { color: #32465e; font-size: 14px; }.course-credit { color: var(--muted); font-size: 12px; text-align: right; }.course-subgroup { grid-column: 1 / -1; margin-top: 8px; color: var(--blue); font-size: 12px; font-weight: 600; }

.faculty-section { background-image: radial-gradient(circle at 90% 30%, rgba(21,101,192,.3), transparent 30%); }.faculty-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 13px; }.faculty-card { position: relative; overflow: hidden; min-height: 330px; padding: 15px; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius); background: rgba(255,255,255,.06); }.faculty-photo-wrap { height: 170px; overflow: hidden; border-radius: 14px; background: #1d5a92; }.faculty-photo { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center top; filter: saturate(.82); }.faculty-card:first-child .faculty-photo-wrap { border: 2px solid var(--gold); }.faculty-role { margin: 14px 0 7px; color: var(--cyan); font: 600 11px "Prompt", sans-serif; }.faculty-card h3 { margin-bottom: 6px; color: var(--white); font: 600 16px/1.3 "Prompt", sans-serif; }.faculty-degrees { color: #abc1d6; font-size: 11px; line-height: 1.65; }.faculty-degrees span { display: block; }.faculty-badge { position: absolute; top: 23px; left: 23px; padding: 5px 8px; color: var(--ink); border-radius: 999px; background: var(--gold); font: 600 10px "Prompt", sans-serif; }

.career-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; }.career-card { min-height: 245px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-soft); }.career-icon { display: grid; place-items: center; width: 43px; height: 43px; margin-bottom: 30px; color: var(--blue-dark); border-radius: 13px; background: var(--cyan-soft); font: 700 20px "Prompt", sans-serif; }.career-card:nth-child(2) .career-icon { color: #925c00; background: #fff1c9; }.career-card:nth-child(3) .career-icon { color: #006a72; background: #d8f6f4; }.career-card:nth-child(4) .career-icon { color: #7f2f4f; background: #ffe3ee; }.career-card h3 { margin-bottom: 13px; font: 600 18px/1.25 "Prompt", sans-serif; }.career-list { margin: 0; padding: 0; color: var(--muted); list-style: none; font-size: 13px; line-height: 1.85; }.career-list li::before { content: "↗"; margin-right: 7px; color: var(--blue); }

.grading-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.grade-card, .completion-card { padding: 26px; border: 1px solid #cfe4e8; border-radius: var(--radius); background: rgba(255,255,255,.82); }.grade-table-wrap { margin-top: 21px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }table { width: 100%; border-collapse: collapse; }th, td { padding: 11px 14px; border-bottom: 1px solid var(--line); font-size: 14px; text-align: left; }th { color: var(--blue-dark); background: #f2fbfc; font: 600 12px "Prompt", sans-serif; }tr:last-child td { border-bottom: 0; }td:last-child { color: var(--muted); text-align: right; }.completion-list { display: grid; gap: 12px; margin-top: 20px; }.completion-item { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: 12px; background: #f7fbfd; }.check-mark { display: grid; place-items: center; flex: 0 0 25px; width: 25px; height: 25px; color: var(--blue-dark); border-radius: 50%; background: var(--cyan-soft); font-weight: 700; }.completion-item strong { display: block; font: 600 14px/1.35 "Prompt", sans-serif; }.completion-item span { display: block; color: var(--muted); font-size: 12px; }.contact-band { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 26px; padding: 25px 28px; color: var(--white); border-radius: var(--radius); background: var(--ink); }.contact-band .section-kicker { margin-bottom: 8px; }.contact-band h3 { margin: 0; font: 600 23px "Prompt", sans-serif; }

.site-footer { color: #bed0e2; background: #051326; }.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr .7fr; gap: 45px; padding: 60px 0 45px; }.footer-brand { display: flex; align-items: start; gap: 15px; }.footer-mark { display: grid; place-items: center; flex: 0 0 55px; height: 55px; color: var(--cyan); border: 1px solid rgba(66,215,232,.5); border-radius: 15px; font: 700 17px/.9 "Prompt", sans-serif; text-align: center; }.footer-mark span { color: var(--gold); font-size: 11px; letter-spacing: .15em; }.footer-brand strong { color: var(--white); font: 600 16px "Prompt", sans-serif; }.footer-brand p, .footer-contact p { margin: 8px 0 0; color: #8fa7be; font-size: 13px; line-height: 1.8; }.footer-contact a { display: block; margin-top: 6px; color: var(--cyan); font-size: 13px; }.footer-links { display: grid; align-content: start; gap: 13px; }.footer-links a { color: #d5e3f0; font-size: 13px; }.footer-links a:hover { color: var(--cyan); }.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.12); color: #718aa3; font: 11px "Prompt", sans-serif; letter-spacing: .05em; }
.error-page { display: grid; min-height: 100vh; place-items: center; padding: 30px; background: var(--ink); color: var(--white); }.error-page main { max-width: 540px; text-align: center; }.error-page h1 { font-size: clamp(3rem, 7vw, 5.4rem); }.error-page p:not(.section-kicker) { color: #b7cada; }.error-page .button { margin-top: 20px; }.noscript-warning { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 30; padding: 13px 17px; color: var(--ink); border-radius: 12px; background: var(--gold); box-shadow: var(--shadow); text-align: center; }

@media (max-width: 1080px) {
  .brand { min-width: 235px; }.primary-nav a { padding-left: 7px; padding-right: 7px; font-size: 13px; }.header-cta { display: none; }
  .hero-grid { gap: 28px; }.hero-visual { transform: scale(.9); transform-origin: center right; }.plo-grid { grid-template-columns: repeat(3, 1fr); }.faculty-grid { grid-template-columns: repeat(3, 1fr); }.faculty-card { min-height: 310px; }.faculty-card:nth-child(4), .faculty-card:nth-child(5) { margin-top: 0; }.career-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .container { width: min(100% - 32px, 620px); }.section-pad { padding: 76px 0; }.topline-inner { min-height: 30px; font-size: 10px; }.topline-status { display: none; }
  .header-inner { min-height: 68px; gap: 10px; }.brand { min-width: 0; flex: 1; gap: 8px; }.brand-logo { width: 49px; height: 29px; }.brand-copy strong { font-size: 11px; }.brand-copy small { font-size: 9px; }.menu-toggle { display: block; }.primary-nav { position: absolute; left: 16px; right: 16px; top: calc(100% + 7px); display: none; flex-direction: column; gap: 0; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); box-shadow: var(--shadow); }.primary-nav.open { display: flex; }.primary-nav a { padding: 10px 12px; border-radius: 9px; }.primary-nav a::after { display: none; }.primary-nav a:hover, .primary-nav a.active { background: #edf8fb; }.header-cta { display: none; }
  .hero { padding-top: 72px; }.hero-grid { display: block; min-height: 0; }.hero-copy { padding-bottom: 10px; }.hero-lead { font-size: 16px; }.hero-visual { min-height: 385px; margin: 15px -15px -4px; transform: scale(.77); transform-origin: top center; }.metric-strip { grid-template-columns: repeat(2, 1fr); margin-top: -7px; }.metric { padding: 18px 10px 18px 0; }.metric:not(:first-child) { padding-left: 15px; }.metric:nth-child(2) { border-right: 0; }.metric strong { font-size: 24px; }.metric span { font-size: 11px; }
  .split-heading { display: block; }.heading-aside { margin-top: 18px; font-size: 15px; }.section-heading { margin-bottom: 30px; }.quick-grid { grid-template-columns: repeat(2, 1fr); }.quick-card { min-height: 160px; }.plo-grid { grid-template-columns: 1fr 1fr; }.plo-card { min-height: 235px; }.curriculum-grid { grid-template-columns: 1fr; }.curriculum-card { min-height: 175px; }.learning-methods { grid-template-columns: 1fr; gap: 14px; }.plan-content { grid-template-columns: 1fr; }.course-tools { flex-wrap: wrap; }.search-box { max-width: none; flex-basis: 100%; }.result-count { margin-left: 0; }.course-row { grid-template-columns: 100px 1fr; }.course-credit { grid-column: 2; text-align: left; margin-top: -8px; }.faculty-grid { grid-template-columns: repeat(2, 1fr); }.faculty-card { min-height: 306px; }.faculty-photo-wrap { height: 145px; }.career-grid, .grading-grid { grid-template-columns: 1fr; }.contact-band { align-items: start; flex-direction: column; }.footer-grid { grid-template-columns: 1fr; gap: 26px; padding: 45px 0 30px; }.footer-bottom { display: block; line-height: 1.8; }.footer-bottom span { display: block; }.footer-bottom span + span { margin-top: 5px; }
}
@media (max-width: 420px) {
  h1 { font-size: 3.1rem; }.quick-grid, .plo-grid, .faculty-grid { grid-template-columns: 1fr; }.plo-card { min-height: auto; }.faculty-card { min-height: 0; }.faculty-photo-wrap { height: 215px; }.course-group summary { align-items: flex-start; flex-direction: column; }.course-group-meta { max-width: 250px; }.plan-header { display: block; }.plan-year-badge { display: inline-block; margin-top: 13px; }
}
