/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: --theme(
    --default-font-family,
    ui-sans-serif,
    system-ui,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: --theme(
    --default-mono-font-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}

:root { --green:#164f3b; --deep:#10382b; --cream:#f5f0e5; --paper:#fffdf7; --lime:#d7e9a4; --ink:#17231e; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"Pretendard","Noto Sans KR",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:82px; padding:0 clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(22,79,59,.15); background:rgba(245,240,229,.92); position:relative; z-index:10; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-mark { width:39px; height:39px; border:2px solid var(--green); border-radius:50%; display:flex; align-items:flex-end; justify-content:center; gap:2px; padding:8px; }
.brand-mark i { display:block; width:5px; background:var(--green); border-radius:5px 5px 0 0; transform:rotate(-9deg); }
.brand-mark i:nth-child(1){height:11px}.brand-mark i:nth-child(2){height:18px}.brand-mark i:nth-child(3){height:14px}
.brand b { display:block; font-family:Georgia,"Noto Serif KR",serif; font-size:20px; letter-spacing:-.04em; }
.brand small { display:block; margin-top:2px; font-size:8px; letter-spacing:.22em; color:#6e7d75; }
nav { display:flex; gap:36px; font-size:14px; font-weight:600; }
.header-cta { padding:12px 20px; border:1px solid var(--green); border-radius:99px; font-size:13px; font-weight:700; }
.hero { min-height:calc(100vh - 146px); padding:clamp(64px,9vw,132px) clamp(24px,7vw,112px) 72px; display:grid; grid-template-columns:1.05fr .95fr; gap:7vw; align-items:center; overflow:hidden; }
.eyebrow { font-size:12px; font-weight:800; letter-spacing:.22em; color:#537062; }
h1 { margin:18px 0 24px; font-family:Georgia,"Noto Serif KR",serif; font-size:clamp(42px,5.2vw,76px); line-height:1.18; letter-spacing:-.055em; font-weight:500; }
h1 em { color:var(--green); font-style:normal; position:relative; }
h1 em:after { content:""; position:absolute; left:2px; right:0; bottom:-4px; height:8px; background:var(--lime); z-index:-1; transform:rotate(-1deg); }
.lead { font-size:clamp(16px,1.5vw,20px); line-height:1.85; color:#52625a; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:38px; }
.primary-btn { padding:16px 25px; background:var(--green); color:white; border-radius:4px; font-size:14px; font-weight:800; box-shadow:0 8px 24px rgba(22,79,59,.16); }
.text-link { font-size:14px; font-weight:700; }
.text-link span { color:#83916b; margin-left:6px; }
.hero-art { min-height:520px; position:relative; background:var(--green); border-radius:48% 48% 6px 6px; transform:rotate(1.5deg); box-shadow:20px 24px 0 #d8dfc7; }
.hero-art:before { content:""; position:absolute; inset:22px; border:1px solid rgba(255,255,255,.22); border-radius:48% 48% 3px 3px; }
.paper-card { position:absolute; background:var(--paper); box-shadow:0 18px 50px rgba(7,34,25,.18); }
.paper-main { width:72%; left:14%; top:25%; padding:42px 38px; transform:rotate(-3deg); }
.paper-label { font-size:10px; font-weight:800; letter-spacing:.2em; color:#7b8a82; }
.paper-main p { margin:18px 0 10px; font:26px/1.45 Georgia,serif; }
.paper-main strong { color:var(--green); }
.underline { width:74%; height:9px; background:var(--lime); transform:rotate(-1deg); }
.paper-note { padding:16px 20px; left:-7%; top:15%; transform:rotate(-7deg); display:grid; gap:4px; }
.paper-note b { color:var(--green); font:700 16px Georgia,serif; letter-spacing:.08em; }
.paper-note span { font-size:11px; color:#5d6a63; }
.paper-note.second { left:auto; right:-8%; top:auto; bottom:15%; transform:rotate(5deg); }
.seal { position:absolute; right:8%; top:8%; width:74px; height:74px; display:grid; place-content:center; text-align:center; border-radius:50%; border:1px solid var(--lime); color:var(--lime); font:700 14px Georgia,serif; letter-spacing:.08em; }
.seal small { font-size:7px; }
.intro-strip { min-height:64px; background:var(--deep); color:white; padding:0 clamp(24px,7vw,112px); display:grid; grid-template-columns:repeat(3,1fr); align-items:center; }
.intro-strip p { margin:0; text-align:center; font-size:13px; letter-spacing:.05em; border-right:1px solid rgba(255,255,255,.15); }
.intro-strip p:last-child{border:0}.intro-strip span{color:var(--lime);margin-right:10px;font:12px Georgia,serif}
.section-shell{padding:120px clamp(24px,7vw,112px)}.section-number{font:800 11px/1 Arial,sans-serif;letter-spacing:.2em;color:#668174;margin:0 0 26px}.section-heading h2,.section-title-row h2,.management h2,.contact h2{margin:0;font:500 clamp(34px,4vw,58px)/1.3 Georgia,"Noto Serif KR",serif;letter-spacing:-.05em}.philosophy{display:grid;grid-template-columns:1fr 1fr;gap:10vw;background:var(--paper)}.philosophy-copy{padding-top:45px}.philosophy-copy>p{font-size:18px;line-height:1.9;color:#5c6962}.philosophy blockquote{margin:54px 0 0;padding-left:28px;border-left:3px solid var(--lime);font:400 25px/1.6 Georgia,"Noto Serif KR",serif}.philosophy blockquote b{color:var(--green)}
.program-section{background:#e9eddf}.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:62px}.section-title-row>p{max-width:360px;color:#5f6c64;line-height:1.8}.program-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #9aaa9e;border-bottom:1px solid #9aaa9e}.program-grid article{padding:36px 34px 42px;border-right:1px solid #9aaa9e;position:relative}.program-grid article:last-child{border:0}.program-grid article>span{position:absolute;right:24px;top:22px;color:#7e9085;font:12px Georgia,serif}.program-icon{height:100px;font:italic 54px Georgia,serif;color:var(--green);display:flex;align-items:center}.program-grid h3{font:500 25px Georgia,"Noto Serif KR",serif;margin:10px 0 18px}.program-grid p{min-height:74px;line-height:1.7;color:#55625b}.program-grid small{font-size:9px;letter-spacing:.15em;color:#66786e}
.management{background:var(--paper)}.management-panel{background:var(--deep);color:white;display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:clamp(38px,6vw,88px);align-items:center}.section-number.light{color:var(--lime)}.management-copy>p:not(.section-number){color:#b8c7c0;line-height:1.8;max-width:520px}.record-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}.record-tags span{border:1px solid #587064;border-radius:99px;padding:8px 12px;font-size:11px;color:#d9e1dd}.record-card{background:var(--paper);color:var(--ink);padding:26px;box-shadow:12px 12px 0 var(--lime)}.record-card-top{display:flex;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid #d9ddd8;font-size:11px}.record-card-top b{font:700 11px Georgia,serif;color:var(--green)}.student-row{display:flex;align-items:center;gap:13px;padding:24px 0 14px}.avatar{width:42px;height:42px;border-radius:50%;background:#dfe8da;display:grid;place-items:center;color:var(--green);font-weight:800}.student-row div:nth-child(2){display:grid;gap:5px}.student-row small{color:#879189}.student-row strong{margin-left:auto;font:700 22px Georgia,serif;color:var(--green)}.progress{height:6px;background:#dde2dd}.progress i{display:block;width:82%;height:100%;background:var(--green)}.record-card ul{list-style:none;padding:10px 0 0;margin:0}.record-card li{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #e3e5e1;font-size:12px}.record-card li span{color:#77817b}.record-card .green{color:var(--green)}
.contact{text-align:center;background:var(--cream)}.contact>p:not(.section-number){color:#64716a;margin:25px auto;max-width:620px;line-height:1.8}.contact-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:34px}.muted{display:inline-block;opacity:.88}.portal-btn{padding:15px 22px;border:1px solid var(--green);font-size:13px;font-weight:800}footer{background:#0b2b20;color:white;padding:52px clamp(24px,7vw,112px);display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px}.footer-brand{grid-row:span 2}.footer-brand .brand-mark{border-color:var(--lime)}.footer-brand .brand-mark i{background:var(--lime)}footer>p{margin:0;color:#b9c7c0;font-size:12px}footer>small{color:#7f958a;font-size:9px}
@media(max-width:820px){ nav{display:none}.hero{grid-template-columns:1fr;padding-top:70px}.hero-art{min-height:420px;margin:0 20px}.intro-strip{grid-template-columns:1fr;padding:18px}.intro-strip p{padding:8px;border-right:0}.header-cta{padding:10px 14px} }
@media(max-width:820px){.section-shell{padding:80px 26px}.philosophy,.management-panel{grid-template-columns:1fr}.philosophy-copy{padding-top:0}.section-title-row{align-items:flex-start;flex-direction:column}.program-grid{grid-template-columns:1fr}.program-grid article{border-right:0;border-bottom:1px solid #9aaa9e}.program-grid article:last-child{border-bottom:0}footer{grid-template-columns:1fr}.footer-brand{grid-row:auto;margin-bottom:20px}}
@media(max-width:520px){.site-header{height:72px;padding:0 18px}.hero{padding:54px 20px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.hero-art{min-height:340px;margin:0}.paper-main{padding:28px 22px}.paper-main p{font-size:20px}.paper-note{display:none}.management-panel{padding:32px 20px}.record-card{padding:20px}.contact-actions{flex-direction:column}.contact-actions>*{width:100%}}

/* Academy identity extends the established YUON green and paper palette. */
.academy-hero{min-height:720px;gap:6vw}.academy-overview{background:var(--deep);color:var(--paper);padding:42px 38px;border-top:5px solid var(--lime)}.academy-overview>a{display:block;position:relative;padding:22px 28px 26px 0;border-top:1px solid #4b6659}.subject-index{font-size:10px;letter-spacing:.15em;color:var(--lime)}.academy-overview h2{font-size:32px;letter-spacing:-.05em;margin:16px 0 8px}.academy-overview a p,.overview-note{color:#c3d1c8;font-size:14px;line-height:1.8}.overview-arrow{position:absolute;right:0;top:48px;font-size:24px;color:var(--lime)}.overview-note{margin:24px 0 0}.subject-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.subject-grid article{padding:40px;background:var(--paper);scroll-margin-top:24px}.subject-grid h3{font-size:32px;margin:20px 0}.subject-grid p,.subject-grid li{color:#52625a;line-height:1.9}.subject-grid ul{padding-left:20px;margin:24px 0 32px}.inline-btn{display:inline-block;margin-top:18px}.system-link{display:inline-block;margin-top:20px;color:var(--lime);font-size:14px;text-decoration:underline;text-underline-offset:6px}.system-steps>div{position:relative;padding:16px 0 18px 42px;border-top:1px solid #587064}.system-steps span{position:absolute;left:0;top:22px;color:var(--lime);font-size:12px}.system-steps h3{font-size:22px;margin:0 0 8px}.system-steps p{font-size:14px;line-height:1.8;color:#c3d1c8;margin:0}a:focus-visible{outline:3px solid #b26b24;outline-offset:6px}a:hover{text-decoration:underline;text-underline-offset:5px}.primary-btn:hover,.header-cta:hover{filter:brightness(1.15)}
.schedule{background:#e9eddf;scroll-margin-top:24px}.schedule .section-title-row h2{font-size:clamp(34px,4vw,54px)}.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.schedule-grid article{padding:40px;background:var(--paper);border-top:4px solid var(--green)}.schedule-grid h3{font:500 30px/1.4 Georgia,"Noto Serif KR",serif;letter-spacing:-.04em;margin:16px 0 4px}.schedule-director{color:#607769;margin:0 0 26px}.schedule-grid dl{margin:0}.schedule-grid dl>div{display:grid;grid-template-columns:86px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid #d7dfd4}.schedule-grid dt{font-size:14px;color:#617768}.schedule-grid dd{margin:0;font-size:16px;font-weight:600;line-height:1.7;word-break:keep-all;font-variant-numeric:tabular-nums}.schedule-note{margin:22px 0 0;padding:16px 18px;background:#e9eddf;color:#476050;font-size:13px;line-height:1.8;border-left:3px solid var(--green)}
@media(max-width:820px){.academy-hero{min-height:auto}.subject-grid,.schedule-grid{grid-template-columns:1fr}.academy-overview{padding:30px}.site-header nav{display:flex;gap:16px}.site-header nav a:not([href='/directors']){display:none}}
@media(max-width:520px){.academy-hero h1{font-size:42px}.subject-grid article,.schedule-grid article{padding:28px}.schedule-grid dl>div{grid-template-columns:72px 1fr;gap:12px}.site-header .header-cta{display:none}.academy-overview h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.skip-link{position:fixed;top:-100px;left:16px;padding:12px 20px;background:var(--paper);z-index:100}.skip-link:focus{top:12px}
.profile-page{max-width:1240px;margin:0 auto;padding:32px clamp(22px,6vw,80px) 80px}.profile-breadcrumb{display:flex;flex-wrap:wrap;gap:10px;color:#617369;font-size:12px}.profile-hero{padding:72px 0 60px;max-width:830px}.profile-hero h1{font-size:clamp(40px,5vw,64px)}.profile-hero .lead{max-width:720px}.profile-section{display:grid;grid-template-columns:1fr 1.4fr;gap:50px;padding:48px 0;border-top:1px solid #bcc9be}.profile-section h2{font-size:28px;letter-spacing:-.04em;margin:0}.profile-areas{list-style:none;padding:0;margin:0}.profile-areas li{padding:15px 0;border-bottom:1px solid #d7dfd4;font-size:17px;line-height:1.7}.profile-areas li span{color:#728875;font-size:12px;margin-right:24px}.profile-pending{background:var(--paper);padding:28px}.profile-pending p{color:#586a5f;line-height:1.9;margin-bottom:0}.status-note{display:inline-block;padding:6px 10px;font-size:12px;background:#e9eddf;color:var(--green)}.profile-bottom{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #bcc9be;padding-top:32px}.director-grid article{border-top:3px solid var(--green)}.director-grid h2{font-size:30px;letter-spacing:-.04em}.profile-disclosure{font-size:13px;color:#677b6b;margin:30px 0 48px}.director-grid p{min-height:0}@media(max-width:820px){.profile-section{grid-template-columns:1fr;gap:24px}.profile-hero{padding:50px 0 40px}.profile-bottom{flex-direction:column}.profile-section{padding:32px 0}}
.director-signature{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:30px 0 20px}.director-signature b{font-size:24px}.director-signature span{font-size:14px;color:#607769;border-left:1px solid #a2b4a6;padding-left:16px}.career-list{margin:0}.career-list>div{display:grid;grid-template-columns:88px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid #d7dfd4}.career-list dt{color:#657c6b;font-size:13px}.career-list dd{margin:0;line-height:1.9;font-size:16px}.career-list strong{font-weight:600;color:var(--green)}.teaching-copy p,.teaching-points p{font-size:16px;line-height:1.95;color:#52675a;margin:0 0 22px}.teaching-points h3{margin:0 0 10px;font-size:19px}.teaching-points article{padding:0 0 18px;margin-bottom:20px;border-bottom:1px solid #d7dfd4}.teaching-points article:last-child{border:0;margin:0;padding:0}.director-contact{padding:42px;background:var(--paper);margin-bottom:42px}.director-contact h2{font-size:28px;margin:0 0 16px}.director-contact p:not(.section-number){line-height:1.8;color:#52675a}.address{font-size:14px;margin-top:28px}@media(max-width:520px){.career-list>div{grid-template-columns:1fr;gap:8px}.director-contact{padding:28px}.profile-hero h1{font-size:38px}}

/* Size these two-line titles against their actual columns, not the viewport. */
.philosophy .section-heading,.management-copy{container-type:inline-size;min-width:0}
.philosophy .fitted-heading,.management .fitted-heading{font-size:min(42px,8cqi);line-height:1.45;word-break:keep-all}
.fitted-heading>span{display:block;white-space:nowrap}

/* The director photo is an AI-styled portrait based on the supplied real photo. */
.portrait-hero{max-width:none;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);gap:48px;align-items:center}
.portrait-intro{container-type:inline-size;min-width:0}.portrait-intro h1{font-size:min(50px,9cqi);word-break:keep-all}.portrait-intro .lead{font-size:17px}
.research-summary{margin-top:24px;color:#52675a;font-size:15px;line-height:1.85}.research-summary p{margin:3px 0;word-break:keep-all}
.director-portrait{margin:0;align-self:start;background:var(--paper);padding:12px;box-shadow:14px 14px 0 #dce3d1}
.director-portrait>img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 25%}
.director-portrait figcaption{display:grid;gap:7px;padding:18px 8px 10px}.director-portrait figcaption strong{font-size:20px;color:var(--green)}.director-portrait figcaption span{font-size:12px;color:#5b7161}.director-portrait figcaption small{font-size:10px;line-height:1.6;color:#667969}
.subject-director{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:24px;margin:24px 0 30px}.subject-director img{display:block;width:100%;max-width:220px;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:4px}.subject-director span{display:grid;min-width:0;gap:10px;word-break:keep-all}.subject-director b{font-size:17px;color:var(--green)}.subject-director small{font-size:12px;line-height:1.7;color:#617768}
@media(max-width:820px){.portrait-hero{grid-template-columns:1fr;gap:28px}.director-portrait{width:min(100%,400px)}.portrait-intro h1{font-size:min(46px,9cqi)}}

/* Keep the temporary illustration fully visible until a portrait is supplied. */
.illustration-portrait>img{object-fit:contain;object-position:center;background:#eaeeea;padding:14px}
.subject-director img.subject-illustration{object-fit:contain;object-position:center;background:#eaeeea;padding:4px}

@media(max-width:540px){.subject-director{grid-template-columns:1fr;gap:18px}.subject-director img{width:min(200px,85%);max-width:none}}

/* Display only the photograph inside the supplied 1328x2030 card image.
   Viewport starts at source (88,90), spans 1126px, and preserves source pixels. */
.supplied-portrait-crop,.subject-director .supplied-portrait-crop{display:block;position:relative;overflow:hidden;width:100%;aspect-ratio:4/5;border-radius:4px}
.subject-director .supplied-portrait-crop{max-width:220px}
.supplied-portrait-crop>img,.subject-director .supplied-portrait-crop>img{display:block;position:absolute;width:117.9396%;max-width:none;height:auto;aspect-ratio:auto;left:-7.8153%;top:-6.3943%;border-radius:0}
@media(max-width:540px){.subject-director .supplied-portrait-crop{width:min(200px,85%);max-width:none}}

/* Registration and visit information: shared on every public page. */
.site-header{gap:24px;min-height:82px;height:auto;padding-top:18px;padding-bottom:18px}
.site-header nav{gap:22px;flex-wrap:wrap}
.site-header nav a{white-space:nowrap}
.registration-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 22px;padding:13px 24px;background:#e4eadb;color:#34503f;font-size:12px;line-height:1.65;word-break:keep-all;border-bottom:1px solid #cbd7c7}
.registration-notice a{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.home-info-links,.info-jump-links,.info-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.home-info-links{justify-content:center;margin-top:26px}
.home-info-links a,.info-jump-links a{font-size:14px;font-weight:700;color:var(--green);text-decoration:underline;text-underline-offset:5px}
.info-page{max-width:1240px;margin:auto;padding:32px clamp(22px,6vw,80px) 90px}
.info-hero{padding:64px 0 52px}
.info-hero h1{font-size:clamp(34px,4.5vw,58px);line-height:1.4;word-break:keep-all}
.info-hero .lead{font-size:17px}
.info-jump-links{margin-top:30px}
.info-section{padding:44px 0;border-top:1px solid #bcc9be;scroll-margin-top:24px}
.info-section h2,.map-choice h2{font-size:27px;line-height:1.45;letter-spacing:-.04em;margin:0 0 24px;word-break:keep-all}
.info-intro,.name-change-card p,.expense-card p,.info-basis p,.map-choice>p{line-height:1.85;color:#52675a;font-size:15px}
.name-change-card{padding:24px 28px;background:#e4eadb;border-left:4px solid var(--green);margin:24px 0}
.name-change-card strong{font-size:19px;line-height:1.7;color:var(--green)}
.name-change-card p{margin-bottom:0}
.registration-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin:0}
.registration-grid>div{padding:20px 0;border-bottom:1px solid #d2dacd;min-width:0}
.registration-grid dt{font-size:13px;color:#627364;margin-bottom:8px}
.registration-grid dd{margin:0;font-size:16px;font-weight:600;line-height:1.8;word-break:keep-all}
.tuition-scroll{overflow-x:auto;border:1px solid #c7d2c1;border-radius:4px;margin:24px 0}
.tuition-scroll:focus-visible{outline:3px solid #b26b24;outline-offset:4px}
.tuition-table{width:100%;border-collapse:collapse;text-align:left;background:var(--paper);font-size:15px;font-variant-numeric:tabular-nums}
.tuition-table caption{caption-side:top;text-align:left;padding:18px 20px;background:#e4eadb;color:#365641;font-size:14px;font-weight:700;line-height:1.7}
.tuition-table th,.tuition-table td{padding:14px 18px;border-bottom:1px solid #dce3d6;white-space:nowrap}
.tuition-table thead th{background:var(--deep);color:white;font-size:13px}
.tuition-table tbody th{font-weight:600;color:var(--green)}
.tuition-table tbody tr:nth-child(even){background:#f1f4e9}
.tuition-table th:last-child,.tuition-table td:last-child{text-align:right;font-weight:700}
.source-note{font-size:13px;line-height:1.85;color:#657363}
.expense-card{padding:24px 28px;background:var(--paper);border:1px solid #c8d3c3}
.expense-card strong{font-size:17px;color:var(--green)}
.expense-card p:last-child{margin-bottom:0}
.info-basis h2{font-size:22px}
.info-basis ul{padding-left:20px;font-size:14px;line-height:2;color:#49664d}
.info-basis a{text-decoration:underline;text-underline-offset:4px}
.info-actions{margin-top:20px}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:52px}
.location-card{padding:38px;background:var(--deep);color:var(--paper);border-top:5px solid var(--lime)}
.location-card .eyebrow{color:var(--lime)}
.location-card h2{font-size:clamp(32px,4vw,46px);line-height:1.35;margin:26px 0}
.location-card h2 span{color:var(--lime)}
.location-card address{font-style:normal;font-size:17px;line-height:1.85;word-break:keep-all}
.location-card>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#c8d5cc;margin-top:22px}
.map-choice{padding:36px;background:var(--paper)}
.map-link{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #c5d0c0;padding:23px 0;color:var(--green)}
.map-link>span:first-child{display:grid;gap:8px}
.map-link small{font-size:10px;letter-spacing:.16em;color:#627364}
.map-link b{font-size:16px;line-height:1.6}
.visit-contacts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}
.visit-contacts>a{display:grid;gap:14px;padding:28px;background:var(--paper);border-top:3px solid var(--green)}
.visit-contacts span{font-size:14px;color:#52675a}
.visit-contacts strong{font-size:clamp(19px,2.3vw,27px);color:var(--green)}
.visit-contacts small{font-size:13px}
footer.academy-footer{display:block;padding:52px clamp(24px,7vw,112px);font-size:14px;line-height:1.8}
.footer-top{display:flex;justify-content:space-between;align-items:start;gap:28px}
.footer-name{font-size:22px;font-weight:700;word-break:keep-all}
.footer-top p{margin:8px 0;color:#d1dcd5;font-size:13px}
.footer-top .footer-change{font-size:12px;color:#adc2b3}
.academy-footer nav{display:flex;flex-wrap:wrap;gap:14px 24px;color:#d7e9a4;font-size:14px}
.footer-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;padding:28px 0;border-top:1px solid #355343;border-bottom:1px solid #355343;margin:28px 0 0}
.footer-facts>div{display:flex;flex-wrap:wrap;gap:4px 14px;min-width:0}
.footer-facts dt{color:#aac0b0;font-size:12px}
.footer-facts dd{margin:0;font-size:13px;word-break:keep-all}
.footer-address{grid-column:1/-1}
.footer-tuition{padding-top:30px}
.footer-tuition h2{font-size:18px;margin:0 0 8px}
.footer-tuition>p{font-size:12px;color:#bed1c3}
.footer-fee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:24px 0}
.footer-fee-grid h3{font-size:15px;color:var(--lime);margin:0 0 10px}
.footer-fee-grid ul{list-style:none;padding:0;margin:0}
.footer-fee-grid li{padding:12px 0;border-bottom:1px solid #355343;break-inside:avoid}
.footer-fee-grid li>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:14px}
.footer-fee-grid li b{font-weight:500}
.footer-fee-grid li>span{display:block;color:#b8cfbe;font-size:12px;margin-top:5px;word-break:keep-all}
.footer-tuition .expense-note{padding:16px 0;color:#d5dfd5;font-size:13px;border-bottom:1px solid #355343}
.footer-detail-link{display:inline-block;color:var(--lime);font-size:13px;margin-top:6px;text-decoration:underline;text-underline-offset:4px}
.academy-footer .footer-copyright{display:block;font-size:11px;color:#a8bfaf;margin-top:30px}
@media(max-width:1000px){.site-header{flex-wrap:wrap}.site-header nav{order:3;width:100%;justify-content:center}.footer-top{flex-direction:column}.footer-fee-grid{grid-template-columns:1fr 1fr}.footer-fee-grid>div:last-child{grid-column:1/-1}.footer-fee-grid>div:last-child ul{columns:2;column-gap:32px}}
@media(max-width:820px){.site-header nav{display:flex;gap:10px 22px}.site-header nav a,.site-header nav a:not([href='/directors']){display:inline-flex}.visit-grid{grid-template-columns:1fr}.registration-grid{gap:0 22px}.footer-facts{grid-template-columns:1fr}.footer-address{grid-column:auto}}
@media(max-width:520px){.site-header{padding:16px 20px;gap:18px}.site-header .header-cta{display:inline-flex}.site-header nav{font-size:13px;justify-content:space-between;gap:10px 12px}.registration-notice{justify-content:flex-start;padding:12px 20px;gap:4px 14px}.info-hero{padding:42px 0 36px}.registration-grid{grid-template-columns:1fr}.info-section{padding:32px 0}.info-section h2,.map-choice h2{font-size:24px}.name-change-card,.expense-card,.location-card,.map-choice{padding:24px}.visit-contacts{grid-template-columns:1fr}.footer-fee-grid{grid-template-columns:1fr;gap:24px}.footer-fee-grid>div:last-child{grid-column:auto}.footer-fee-grid>div:last-child ul{columns:auto}.info-actions{align-items:stretch;flex-direction:column}.info-actions>a{text-align:center}.tuition-table th,.tuition-table td{padding:12px 14px}.footer-top nav{display:flex}.home-info-links{flex-direction:column}}
@media print{.site-header,.registration-notice,.academy-footer,.info-actions{display:none}.info-page{max-width:none;padding:0}.tuition-scroll{overflow:visible}.tuition-table{font-size:11px}.tuition-table th,.tuition-table td{padding:7px}.info-hero{padding:12px 0}.info-section{break-inside:avoid}.info-hero h1{font-size:28px}}
