:root{--sfa-space-0:0;--sfa-space-1:4px;--sfa-space-2:8px;--sfa-space-3:12px;--sfa-space-4:16px;--sfa-space-5:24px;--sfa-space-6:32px;--sfa-space-7:48px;--sfa-space-8:64px;--sfa-space-9:96px;--sfa-space-10:128px;--sfa-space-11:160px;--sfa-radius-sm:8px;--sfa-radius-md:12px;--sfa-radius-lg:18px;--sfa-radius-xl:28px;--sfa-radius-pill:999px;--sfa-shadow-sm:0 1px 2px #0000000f;--sfa-shadow-md:0 4px 16px #00000014;--sfa-shadow-lg:0 18px 48px #0000001f;--sfa-motion-fast:.16s;--sfa-motion-base:.32s;--sfa-motion-slow:.7s;--sfa-motion-reveal:.9s;--sfa-motion-ease-out:cubic-bezier(.22, 1, .36, 1);--sfa-motion-ease-in-out:cubic-bezier(.65, 0, .35, 1);--sfa-width-text:680px;--sfa-width-content:1040px;--sfa-width-wide:1320px;--sfa-on-image:#fff;--sfa-ink:#16161a;--sfa-scrim:linear-gradient(180deg, #00000014 0%, #0003 45%, #000000a8 100%);--sfa-bg:#fff;--sfa-surface:#f6f6f8;--sfa-surface-2:#ebebef;--sfa-border:#d4d4da;--sfa-text:#16161a;--sfa-text-2:#5f5f67;--sfa-inverse:#16161a;--sfa-on-inverse:#fff;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--sfa-bg:#0a0a0c;--sfa-surface:#161619;--sfa-surface-2:#222226;--sfa-border:#38383f;--sfa-text:#f4f4f6;--sfa-text-2:#a6a6ae;--sfa-inverse:#f4f4f6;--sfa-on-inverse:#16161a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--sfa-bg:#0a0a0c;--sfa-surface:#161619;--sfa-surface-2:#222226;--sfa-border:#38383f;--sfa-text:#f4f4f6;--sfa-text-2:#a6a6ae;--sfa-inverse:#f4f4f6;--sfa-on-inverse:#16161a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.sfa-scheme-dark{--sfa-bg:#0a0a0c;--sfa-surface:#161619;--sfa-surface-2:#222226;--sfa-border:#38383f;--sfa-text:#f4f4f6;--sfa-text-2:#a6a6ae;--sfa-inverse:#f4f4f6;--sfa-on-inverse:#16161a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--sfa-font-display:"Inter Variable", system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sfa-font-text:"Inter Variable", system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sfa-font-numeric:var(--sfa-font-display)}html{font-family:var(--sfa-font-text);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{letter-spacing:-.011em;color:var(--sfa-text);background:var(--sfa-bg);font-size:clamp(1rem,.9741rem + .1105vw,1.0625rem);line-height:1.47}.sfa-display{font-family:var(--sfa-font-display);letter-spacing:-.045em;text-wrap:balance;font-size:clamp(3rem,1.7569rem + 5.3039vw,6rem);font-weight:250;line-height:1.02}.sfa-display :is(strong,b){font-weight:600}.sfa-h1{font-family:var(--sfa-font-display);letter-spacing:-.038em;text-wrap:balance;font-size:clamp(2.375rem,1.6499rem + 3.0939vw,4.125rem);font-weight:300;line-height:1.06}.sfa-h1 :is(strong,b){font-weight:600}.sfa-h2{font-family:var(--sfa-font-display);letter-spacing:-.03em;text-wrap:balance;font-size:clamp(1.875rem,1.4088rem + 1.989vw,3rem);font-weight:350;line-height:1.1}.sfa-h2 :is(strong,b){font-weight:600}.sfa-h3{font-family:var(--sfa-font-display);letter-spacing:-.021em;text-wrap:balance;font-size:clamp(1.25rem,1.1464rem + .442vw,1.5rem);font-weight:600;line-height:1.22}.sfa-body-lg{font-family:var(--sfa-font-text);letter-spacing:-.021em;text-wrap:pretty;font-size:clamp(1.1875rem,1.058rem + .5525vw,1.5rem);font-weight:400;line-height:1.4}.sfa-body{font-family:var(--sfa-font-text);letter-spacing:-.011em;text-wrap:pretty;font-size:clamp(1rem,.9741rem + .1105vw,1.0625rem);font-weight:400;line-height:1.47}.sfa-caption{font-family:var(--sfa-font-text);letter-spacing:-.006em;font-size:clamp(.8125rem,.7866rem + .1105vw,.875rem);font-weight:400;line-height:1.4}.sfa-stat{font-family:var(--sfa-font-numeric);letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:clamp(2.75rem,2.0249rem + 3.0939vw,4.5rem);font-weight:200;line-height:1}.sfa-eyebrow{font-family:var(--sfa-font-text);letter-spacing:-.016em;color:var(--sfa-brand-text,currentColor);font-size:clamp(.9375rem,.8857rem + .221vw,1.0625rem);font-weight:600;line-height:1.3}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-opsz-normal-DpK-iCPk.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-opsz-normal-BwkfbSeq.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}body{margin:0}img{max-width:100%;display:block}a{color:inherit}:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--sfa-focus-ring);outline-offset:3px;border-radius:var(--sfa-radius-sm)}html{scroll-behavior:smooth;scroll-padding-top:80px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.sfa-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.sfa-skip{z-index:100;padding:var(--sfa-space-2) var(--sfa-space-4);border-radius:var(--sfa-radius-pill);background:var(--sfa-brand-fill);color:var(--sfa-on-brand);text-decoration:none;position:absolute;top:-64px;left:16px}.sfa-skip:focus{top:12px}.sfa-container{width:100%;margin-inline:auto;padding-inline:max(20px,min(5vw,48px))}.sfa-container--text{max-width:calc(var(--sfa-width-text) + 96px)}.sfa-container--content{max-width:calc(var(--sfa-width-content) + 96px)}.sfa-container--wide{max-width:calc(var(--sfa-width-wide) + 96px)}.sfa-section{padding-block:clamp(72px,10vw,144px)}.sfa-tone-surface{background:var(--sfa-surface)}.sfa-tone-tint{background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint)}.sfa-tone-tint .sfa-body,.sfa-tone-tint .sfa-body-lg,.sfa-tone-tint .sfa-caption{color:var(--sfa-muted-on-brand-tint)}.sfa-scheme-dark{background:var(--sfa-bg);color:var(--sfa-text)}.sfa-tone-inverse{background:var(--sfa-inverse);color:var(--sfa-on-inverse)}.sfa-heading{gap:var(--sfa-space-3);max-width:760px;margin-bottom:clamp(32px,5vw,56px);display:grid}.sfa-heading--center{text-align:center;justify-items:center;margin-inline:auto}.sfa-heading :is(.sfa-eyebrow,.sfa-h2),.sfa-heading__intro{margin:0}.sfa-heading__intro,.sfa-body,.sfa-caption{color:var(--sfa-text-2)}.sfa-caption{margin:0}.sfa-card{background:var(--sfa-bg);border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-lg)}.sfa-img{border-radius:var(--sfa-radius-lg);background:var(--sfa-surface-2);display:block;overflow:hidden}.sfa-img img{object-fit:cover;width:100%;height:100%}.sfa-btn{justify-content:center;align-items:center;gap:var(--sfa-space-2);border-radius:var(--sfa-radius-pill);min-height:48px;font:inherit;letter-spacing:-.01em;cursor:pointer;border:1px solid #0000;padding:12px 24px;font-weight:500;text-decoration:none;display:inline-flex}.sfa-btn--small{min-height:40px;padding:8px 18px;font-size:.9375rem}.sfa-btn--primary{background:var(--sfa-brand-fill);color:var(--sfa-on-brand)}.sfa-btn--secondary{background:var(--sfa-secondary-fill);color:var(--sfa-on-secondary)}.sfa-btn--ghost{color:var(--sfa-text);border-color:var(--sfa-border);background:0 0}.sfa-btn--on-image{background:var(--sfa-on-image);color:var(--sfa-ink)}.sfa-arrow-link{color:var(--sfa-brand-text);align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.sfa-arrow-link:hover{text-underline-offset:3px;text-decoration:underline}.sfa-icon-btn{border-radius:var(--sfa-radius-pill);width:40px;height:40px;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.sfa-icon-btn:hover{background:var(--sfa-surface-2)}.sfa-chips{gap:var(--sfa-space-2);margin:var(--sfa-space-5) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.sfa-chips li{border-radius:var(--sfa-radius-pill);background:var(--sfa-surface);padding:6px 14px;font-size:.875rem}.sfa-announcement{background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint)}.sfa-announcement p{color:inherit;text-align:center;flex-wrap:wrap;justify-content:center;gap:4px 12px;padding:10px 20px;display:flex}.sfa-nav{z-index:40;background:color-mix(in srgb, var(--sfa-bg) 82%, transparent);-webkit-backdrop-filter:saturate(1.8)blur(20px);border-bottom:1px solid color-mix(in srgb, var(--sfa-border) 60%, transparent);position:sticky;top:0}.sfa-nav__inner{align-items:center;gap:var(--sfa-space-4);max-width:calc(var(--sfa-width-wide) + 96px);min-height:64px;margin-inline:auto;padding-inline:max(20px,min(5vw,48px));display:flex}.sfa-nav__brand{align-items:center;gap:var(--sfa-space-3);letter-spacing:-.02em;margin-right:auto;font-weight:600;text-decoration:none;display:flex}.sfa-nav__logo{object-fit:contain;width:36px;height:36px}.sfa-nav__links ul{margin:0;padding:0;list-style:none;display:none}.sfa-nav__links a{border-radius:var(--sfa-radius-pill);color:var(--sfa-text-2);padding:8px 12px;font-size:.9375rem;text-decoration:none;display:block}.sfa-nav__links a:hover{color:var(--sfa-text)}.sfa-nav__actions{align-items:center;gap:var(--sfa-space-1);display:flex}.sfa-nav__cta{display:none}.sfa-nav.is-open .sfa-nav__links ul{padding:var(--sfa-space-3) max(20px, min(5vw, 48px)) var(--sfa-space-5);background:var(--sfa-bg);border-bottom:1px solid var(--sfa-border);gap:2px;display:grid;position:absolute;inset:100% 0 auto}.sfa-nav.is-open .sfa-nav__links a{color:var(--sfa-text);padding:12px 0;font-size:1.125rem}.sfa-nav--overlay{transition:background-color var(--sfa-motion-base) var(--sfa-motion-ease-out);margin-bottom:-65px}.sfa-nav--overlay.is-over-image{-webkit-backdrop-filter:none;color:var(--sfa-on-image);background:0 0;border-color:#0000}.sfa-nav--overlay.is-over-image .sfa-nav__links a{color:var(--sfa-on-image)}.sfa-nav--crest .sfa-nav__brand{font-family:var(--sfa-font-display);font-size:1.25rem;font-weight:400}@media (width>=960px){.sfa-nav__links ul{gap:2px;display:flex}.sfa-nav__menu{display:none}.sfa-nav__cta{margin-right:var(--sfa-space-2);display:inline-flex}.sfa-nav--crest .sfa-nav__inner{padding-block:var(--sfa-space-4) var(--sfa-space-2);flex-wrap:wrap;justify-content:center}.sfa-nav--crest .sfa-nav__brand{flex-direction:column;width:100%;margin-inline:auto;font-size:1.5rem}.sfa-nav--crest .sfa-nav__logo{width:56px;height:56px}.sfa-nav--crest .sfa-nav__actions{right:max(20px,min(5vw,48px));top:var(--sfa-space-4);position:absolute}}.sfa-hero{padding-block:clamp(56px,9vw,120px) clamp(48px,7vw,96px);position:relative;overflow:clip}.sfa-hero__layout{align-items:center;gap:clamp(40px,6vw,72px);display:grid}.sfa-hero__copy{gap:var(--sfa-space-5);justify-items:start;display:grid}.sfa-hero__copy>*{margin:0}.sfa-hero__intro{max-width:34ch;color:var(--sfa-text-2)}.sfa-hero__actions{align-items:center;gap:var(--sfa-space-3) var(--sfa-space-5);flex-wrap:wrap;display:flex}.sfa-hero__title strong{color:var(--sfa-brand-display)}.sfa-hero__media{margin-top:clamp(40px,6vw,80px)}.sfa-hero__media .sfa-img{border-radius:var(--sfa-radius-xl)}.sfa-hero--centred .sfa-hero__copy,.sfa-hero--crest .sfa-hero__copy,.sfa-hero--stats .sfa-hero__copy{text-align:center;justify-items:center}.sfa-hero--centred .sfa-hero__intro,.sfa-hero--crest .sfa-hero__intro,.sfa-hero--stats .sfa-hero__intro{margin-inline:auto}.sfa-hero--centred .sfa-hero__actions,.sfa-hero--crest .sfa-hero__actions,.sfa-hero--stats .sfa-hero__actions{justify-content:center}.sfa-hero--centred .sfa-hero__title strong .sfa-rise{background:linear-gradient(90deg, var(--sfa-brand-display), var(--sfa-secondary-display));color:#0000;-webkit-background-clip:text;background-clip:text}.sfa-hero__crest{width:clamp(72px,9vw,112px);height:auto}.sfa-hero__motto{font-family:var(--sfa-font-display);font-size:1.25rem;font-style:italic;font-weight:400}.sfa-hero--fullbleed.sfa-hero--on-image{min-height:min(92svh,920px);color:var(--sfa-on-image);align-items:end;padding-block:120px clamp(48px,8vw,96px);display:grid}.sfa-hero--fullbleed .sfa-hero__media{z-index:-1;margin:0;position:absolute;inset:0}.sfa-hero--fullbleed .sfa-hero__media:after{content:"";background:var(--sfa-scrim);position:absolute;inset:0}.sfa-hero--fullbleed .sfa-parallax,.sfa-hero--fullbleed .sfa-img{border-radius:0;height:100%}.sfa-hero--on-image :is(.sfa-hero__intro,.sfa-eyebrow,.sfa-hero__title strong){color:var(--sfa-on-image)}.sfa-hero--on-image .sfa-btn--ghost{color:var(--sfa-on-image);border-color:color-mix(in srgb, var(--sfa-on-image) 55%, transparent)}.sfa-hero__news{gap:var(--sfa-space-4);border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-lg);padding:clamp(24px,3vw,36px);display:grid}.sfa-hero__news ul{gap:var(--sfa-space-4);margin:0;padding:0;list-style:none;display:grid}.sfa-hero__news li{padding-bottom:var(--sfa-space-4);border-bottom:1px solid var(--sfa-border);gap:4px;display:grid}.sfa-hero__news a{text-decoration:none}.sfa-hero__news a:hover{text-decoration:underline}.sfa-hero__news p,.sfa-hero--split .sfa-hero__media{margin:0}.sfa-hero--cards{background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint)}.sfa-hero--cards .sfa-hero__intro{color:var(--sfa-muted-on-brand-tint)}.sfa-hero__cards{gap:var(--sfa-space-4);grid-template-columns:1.2fr 1fr;display:grid}.sfa-hero__card{border-radius:var(--sfa-radius-xl)}.sfa-hero__card:first-child{grid-row:span 2}.sfa-hero__stats,.sfa-stats__list{gap:var(--sfa-space-6) var(--sfa-space-5);grid-template-columns:repeat(2,minmax(0,1fr));margin:clamp(40px,6vw,72px) 0 0;display:grid}.sfa-statitem{gap:var(--sfa-space-1);flex-direction:column-reverse;display:flex}.sfa-statitem dd{color:var(--sfa-brand-display);margin:0}.sfa-hero--stats .sfa-statitem{text-align:center;align-items:center}@media (width>=768px){.sfa-hero__stats{grid-template-columns:repeat(3,minmax(0,1fr))}.sfa-stats__list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media (width>=960px){.sfa-hero--split .sfa-hero__layout,.sfa-hero--cards .sfa-hero__layout{grid-template-columns:1.1fr .9fr}}.sfa-hero--no-image.sfa-hero--fullbleed{padding-top:clamp(96px,12vw,160px)}.sfa-about__layout{align-items:center;gap:clamp(40px,6vw,80px);display:grid}.sfa-about__copy>p{margin:0 0 var(--sfa-space-4);max-width:62ch}.sfa-about--centred .sfa-about__copy{text-align:center}.sfa-about--centred .sfa-about__copy>p{margin-inline:auto}.sfa-about--centred .sfa-chips{justify-content:center}.sfa-about--centred .sfa-about__image{width:100%;max-width:var(--sfa-width-content);margin-inline:auto}.sfa-about--centred .sfa-achievements{justify-items:center}.sfa-about--centred .sfa-achievements li{width:fit-content}.sfa-achievements{gap:var(--sfa-space-2);margin:var(--sfa-space-5) 0 0;padding:0;list-style:none;display:grid}.sfa-achievements li{padding-left:var(--sfa-space-5);position:relative}.sfa-achievements li:before{content:"";background:var(--sfa-brand-display);border-radius:50%;width:8px;height:8px;position:absolute;top:.6em;left:0}@media (width>=900px){.sfa-about--split .sfa-about__layout{grid-template-columns:1.1fr .9fr}.sfa-about--split.sfa-about--no-image .sfa-about__layout{grid-template-columns:1fr}}.sfa-principal__figure{margin:var(--sfa-space-5) 0 0}.sfa-principal__quote{font-family:var(--sfa-font-display);letter-spacing:-.022em;margin:0;font-size:clamp(1.375rem,1.1rem + 1.1vw,2rem);font-weight:300;line-height:1.32}.sfa-principal__quote p{margin:0 0 1em}.sfa-principal__by{align-items:center;gap:var(--sfa-space-4);margin-top:var(--sfa-space-5);display:flex}.sfa-principal__by>span{display:grid}.sfa-principal__photo{border-radius:50%;width:64px}.sfa-principal__name{font-weight:600}.sfa-principal--card .sfa-principal__figure{background:var(--sfa-bg);border-radius:var(--sfa-radius-xl);padding:clamp(28px,4vw,48px)}.sfa-news__list{gap:var(--sfa-space-5);margin:0;padding:0;list-style:none;display:grid}.sfa-news__item{display:grid;overflow:hidden}.sfa-news__image{border-radius:0}.sfa-news__body{gap:var(--sfa-space-2);padding:var(--sfa-space-5);align-content:start;display:grid}.sfa-news__body>*{margin:0}.sfa-news--list .sfa-news__item{background:0 0;border-width:0 0 1px;border-radius:0}.sfa-news--list .sfa-news__body{padding-inline:0}@media (width>=768px){.sfa-news--grid .sfa-news__list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.sfa-events__list{gap:var(--sfa-space-3);margin:0;padding:0;list-style:none;display:grid}.sfa-events__item{gap:var(--sfa-space-2) var(--sfa-space-5);padding:var(--sfa-space-4) var(--sfa-space-5);background:var(--sfa-bg);border-radius:var(--sfa-radius-lg);grid-template-columns:auto 1fr;align-items:center;display:grid}.sfa-events__item .sfa-arrow-link{grid-column:2}.sfa-events__date{justify-items:center;min-width:56px;display:grid}.sfa-events__day{letter-spacing:-.04em;color:var(--sfa-brand-text);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:300;line-height:1}.sfa-events__body>*{margin:0}@media (width>=768px){.sfa-events__item{grid-template-columns:auto 1fr auto}.sfa-events__item .sfa-arrow-link{grid-column:auto}.sfa-events--cards .sfa-events__list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.sfa-events--cards .sfa-events__item{grid-template-columns:auto 1fr;align-items:start}.sfa-events--cards .sfa-events__item .sfa-arrow-link{grid-column:2}}.sfa-gallery__grid{gap:var(--sfa-space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));margin:0;padding:0;list-style:none;display:grid}.sfa-gallery__item figure{gap:var(--sfa-space-2);margin:0;display:grid}.sfa-gallery--mosaic .sfa-gallery__item:nth-child(4n+1){grid-row:span 2}.sfa-gallery--mosaic .sfa-gallery__item:nth-child(4n+1) .sfa-img{height:100%}.sfa-staff__grid{gap:var(--sfa-space-6) var(--sfa-space-5);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:0;padding:0;list-style:none;display:grid}.sfa-staff__item{gap:var(--sfa-space-1);justify-items:start;display:grid}.sfa-staff__photo,.sfa-staff__initials{aspect-ratio:1;width:100%;max-width:160px;margin-bottom:var(--sfa-space-3);border-radius:50%}.sfa-staff__initials{background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint);letter-spacing:-.03em;place-items:center;font-size:2rem;font-weight:300;display:grid}.sfa-staff__name{letter-spacing:-.015em;margin:0;font-size:1.0625rem;font-weight:600}.sfa-admissions__panel{gap:var(--sfa-space-4);text-align:center;justify-items:center;max-width:760px;margin-inline:auto;display:grid}.sfa-admissions__panel>*{margin:0}.sfa-admissions__panel .sfa-hero__actions{justify-content:center}.sfa-admissions--card .sfa-admissions__panel{background:var(--sfa-brand-tint);max-width:none;color:var(--sfa-on-brand-tint);border-radius:var(--sfa-radius-xl);padding:clamp(32px,6vw,72px)}.sfa-admissions__docs{justify-content:center;gap:var(--sfa-space-2) var(--sfa-space-5);flex-wrap:wrap;padding:0;list-style:none;display:flex}.sfa-contact__layout{align-items:start;gap:clamp(32px,5vw,64px);display:grid}.sfa-contact__details{gap:var(--sfa-space-5);display:grid}.sfa-contact__list{gap:var(--sfa-space-3);margin:0;padding:0;list-style:none;display:grid}.sfa-contact__list li{align-items:flex-start;gap:var(--sfa-space-3);display:flex}.sfa-contact__list svg{color:var(--sfa-brand-text);flex:none;margin-top:3px}.sfa-map{aspect-ratio:16/10;border-radius:var(--sfa-radius-lg);background:var(--sfa-surface);overflow:hidden}.sfa-map iframe{border:0;width:100%;height:100%}.sfa-map__placeholder{place-content:center;justify-items:center;gap:var(--sfa-space-3);height:100%;color:var(--sfa-brand-text);background:radial-gradient(circle at 50% 42%, var(--sfa-brand-tint), var(--sfa-surface) 70%);display:grid}.sfa-form{gap:var(--sfa-space-4);padding:clamp(24px,4vw,40px);display:grid}.sfa-form>:is(h3,p){margin:0}.sfa-form__row{gap:6px;display:grid}.sfa-form__pair{gap:var(--sfa-space-4);display:grid}.sfa-form label{font-size:.9375rem;font-weight:500}.sfa-form :is(input,select,textarea){border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-md);background:var(--sfa-bg);width:100%;min-height:48px;color:var(--sfa-text);font:inherit;padding:10px 14px}.sfa-form textarea{resize:vertical}@media (width>=640px){.sfa-form__pair{grid-template-columns:1fr 1fr}}@media (width>=960px){.sfa-contact__layout{grid-template-columns:.9fr 1.1fr}}.sfa-footer{padding-block:clamp(48px, 7vw, 80px) var(--sfa-space-6);background:var(--sfa-surface);font-size:.9375rem}.sfa-footer__grid{gap:var(--sfa-space-6);padding-bottom:var(--sfa-space-6);margin-bottom:var(--sfa-space-5);border-bottom:1px solid var(--sfa-border);display:grid}.sfa-footer__name{letter-spacing:-.02em;margin:0;font-weight:600}.sfa-footer__motto{margin-top:4px;font-style:italic}.sfa-footer__contact{gap:var(--sfa-space-2);color:var(--sfa-text-2);font-style:normal;display:grid}.sfa-footer__links{gap:var(--sfa-space-2);margin:0;padding:0;list-style:none;display:grid}.sfa-footer a{color:var(--sfa-text-2);text-decoration:none}.sfa-footer a:hover{color:var(--sfa-text)}.sfa-portal-link{align-items:center;gap:6px;display:inline-flex}@media (width>=768px){.sfa-footer__grid{grid-template-columns:1.4fr 1.2fr 1fr 1fr}}.pt-state{padding:var(--sfa-space-8) var(--sfa-space-5);text-align:center;color:var(--sfa-text-2)}.pt-signin{min-height:100svh;padding:var(--sfa-space-6) max(16px, env(safe-area-inset-left,0px));background:var(--sfa-brand-tint);place-items:center;display:grid}.pt-signin__card{gap:var(--sfa-space-3);background:var(--sfa-bg);border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-xl);width:min(100%,420px);box-shadow:var(--sfa-shadow-md);padding:clamp(24px,6vw,40px);display:grid}.pt-signin__card>:is(h1,p){margin:0}.pt-signin__logo{object-fit:contain;width:56px;height:56px}.pt-form{gap:var(--sfa-space-2);display:grid}.pt-form__row{gap:6px;display:grid}.pt-form label{font-size:.9375rem;font-weight:500}.pt-form :is(input,select,textarea){border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-md);background:var(--sfa-bg);width:100%;min-height:48px;color:var(--sfa-text);font:inherit;padding:10px 14px}.pt-form :is(input,select,textarea)[aria-invalid=true]{border-color:var(--sfa-focus-ring);border-width:2px}.pt-form .sfa-btn{margin-top:var(--sfa-space-2)}.pt-form .sfa-btn:disabled{opacity:.6;cursor:progress}.pt-hint{color:var(--sfa-text-2);margin:0;font-size:.875rem}.pt-error{color:var(--sfa-text);padding-left:var(--sfa-space-2);border-left:3px solid var(--sfa-focus-ring);margin:0;font-size:.875rem;font-weight:500}.pt-success{padding:var(--sfa-space-2) var(--sfa-space-3);border-radius:var(--sfa-radius-sm);background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint);margin:0}.pt-link{color:var(--sfa-brand-text);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;text-decoration:underline}.pt-top{z-index:20;background:color-mix(in srgb, var(--sfa-bg) 88%, transparent);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--sfa-border);position:sticky;top:0}.pt-top__inner{align-items:center;gap:var(--sfa-space-2);max-width:var(--sfa-width-wide);min-height:60px;padding-inline:max(16px, env(safe-area-inset-left,0px));margin-inline:auto;display:flex;position:relative}.pt-top__brand{align-items:center;gap:var(--sfa-space-2);letter-spacing:-.02em;min-width:0;margin-right:auto;font-weight:600;display:flex}.pt-top__brand span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pt-top__brand img{object-fit:contain;width:32px;height:32px}.pt-top__role select{border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-pill);background:var(--sfa-bg);min-height:36px;color:var(--sfa-text);font:inherit;padding:4px 10px;font-size:.875rem}.pt-chip{border-radius:var(--sfa-radius-pill);background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint);white-space:nowrap;padding:4px 12px;font-size:.8125rem;font-weight:500}.pt-main{max-width:var(--sfa-width-wide);padding:var(--sfa-space-5) max(16px, env(safe-area-inset-left,0px)) calc(96px + env(safe-area-inset-bottom,0px));gap:var(--sfa-space-5);margin-inline:auto;display:grid}.pt-grid{gap:var(--sfa-space-5);align-items:start;display:grid}.pt-card{background:var(--sfa-bg);border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-lg);padding:clamp(20px,4vw,32px)}.pt-card>:is(h2,p){margin:0 0 var(--sfa-space-3)}.pt-card .sfa-h3{align-items:center;gap:var(--sfa-space-2);display:flex}.pt-notice{padding:var(--sfa-space-3) var(--sfa-space-4);border-radius:var(--sfa-radius-md);background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint);margin:0}.pt-features{gap:var(--sfa-space-2);margin:0;padding:0;list-style:none;display:grid}.pt-features li{align-items:center;gap:var(--sfa-space-2);padding-left:var(--sfa-space-4);display:flex;position:relative}.pt-features li:before{content:"";background:var(--sfa-brand-display);border-radius:50%;width:7px;height:7px;position:absolute;left:0}.pt-numbers{gap:var(--sfa-space-4);margin:0 0 var(--sfa-space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.pt-numbers div{flex-direction:column-reverse;display:flex}.pt-numbers dt{color:var(--sfa-text-2);font-size:.8125rem}.pt-numbers dd{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-size:2rem;font-weight:300}.pt-people{margin:0;padding:0;list-style:none;display:grid}.pt-people li{gap:4px var(--sfa-space-3);padding:var(--sfa-space-3) 0;border-bottom:1px solid var(--sfa-border);grid-template-columns:1fr auto;align-items:center;display:grid}.pt-people .pt-hint{grid-column:1/-1}.pt-people__name{font-weight:500}.pt-tabs{z-index:20;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));background:var(--sfa-bg);border-top:1px solid var(--sfa-border);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.pt-tabs :is(button,a){border-radius:var(--sfa-radius-md);min-height:52px;color:var(--sfa-text-2);font:inherit;cursor:pointer;background:0 0;border:0;justify-items:center;gap:2px;padding:6px;font-size:.75rem;text-decoration:none;display:grid}.pt-tabs :is(button,a)[aria-current=page]{color:var(--sfa-brand-text);background:var(--sfa-brand-tint)}.pt-form textarea{resize:vertical;min-height:140px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9375rem}.pt-form__pair{gap:var(--sfa-space-3);grid-template-columns:minmax(0,2fr) minmax(0,1fr);display:grid}.pt-actions{align-items:center;gap:var(--sfa-space-2);flex-wrap:wrap;display:flex}.pt-form .pt-actions .sfa-btn{margin-top:var(--sfa-space-2)}.pt-lines{white-space:pre-line}.pt-error ul{margin:var(--sfa-space-1) 0 0;padding-left:var(--sfa-space-4)}.pt-error p{margin:0}.pt-password{position:relative}.pt-password input{padding-right:52px}.pt-password .sfa-icon-btn{color:var(--sfa-text-2);position:absolute;top:4px;right:4px}.pt-signin__switch{align-items:center;gap:var(--sfa-space-2);margin-top:var(--sfa-space-2);display:inline-flex}.pt-narrow{justify-self:center;width:min(100%,520px)}.pt-toolbar{justify-content:space-between;align-items:center;gap:var(--sfa-space-3);margin-bottom:var(--sfa-space-3);flex-wrap:wrap;display:flex}.pt-toolbar>:is(h2,h3,div),.pt-toolbar .sfa-h2,.pt-toolbar .sfa-eyebrow{margin:0}.pt-search{align-items:center;gap:var(--sfa-space-2);min-height:44px;margin-bottom:var(--sfa-space-2);border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-pill);background:var(--sfa-surface);color:var(--sfa-text-2);padding:0 14px;display:flex}.pt-search:focus-within{outline:2px solid var(--sfa-focus-ring);outline-offset:2px}.pt-search input{min-width:0;min-height:42px;color:var(--sfa-text);font:inherit;background:0 0;border:0;outline:none;flex:1}.pt-list__state{padding:var(--sfa-space-4) 0}.pt-list__state .sfa-btn{margin-top:var(--sfa-space-2)}.pt-people .sfa-btn--small{min-height:36px;padding:6px 14px}.pt-row-link{align-items:center;gap:var(--sfa-space-1);min-width:0;color:inherit;text-decoration:none;display:flex}.pt-row-link:hover .pt-people__name{text-underline-offset:3px;text-decoration:underline}.pt-row-link svg{color:var(--sfa-text-2);flex:none}.pt-pager{justify-content:center;align-items:center;gap:var(--sfa-space-2);margin-top:var(--sfa-space-3);display:flex}.pt-pager .sfa-icon-btn:disabled{opacity:.4;cursor:default}.pt-back{align-items:center;gap:var(--sfa-space-1);color:var(--sfa-brand-text);justify-self:start;font-weight:500;text-decoration:none;display:inline-flex}.pt-code{border-radius:var(--sfa-radius-sm);background:var(--sfa-surface-2);padding:2px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9375rem}.pt-new-cards .pt-notice{margin-bottom:var(--sfa-space-3)}.pt-print{gap:var(--sfa-space-3);display:grid}.pt-print>:is(h2,p){margin:0}.pt-cards{gap:var(--sfa-space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0;padding:0;list-style:none;display:grid}.pt-signin-card{gap:var(--sfa-space-2);padding:var(--sfa-space-4);border:1px dashed var(--sfa-border);border-radius:var(--sfa-radius-md);background:var(--sfa-bg);break-inside:avoid;display:grid}.pt-signin-card__school{align-items:center;gap:var(--sfa-space-2);font-weight:600;display:flex}.pt-signin-card__school img{object-fit:contain;width:28px;height:28px}.pt-signin-card__name{margin:0;font-size:1.125rem;font-weight:500}.pt-signin-card dl{gap:var(--sfa-space-1);margin:0;display:grid}.pt-signin-card dt{color:var(--sfa-text-2);font-size:.75rem}.pt-signin-card dd{overflow-wrap:anywhere;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem}.pt-signin-card .pt-hint{font-size:.75rem}@media print{.pt-top,.pt-tabs,.pt-notice,.pt-noprint,.sfa-skip{display:none!important}.pt-main{max-width:none;padding:0}.pt-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:6mm}.pt-signin-card{color:#000;background:#fff;border-color:#000}}@media (width>=768px){.pt-main{padding-bottom:var(--sfa-space-8)}.pt-tabs{gap:var(--sfa-space-2);background:0 0;border:0;padding:0;display:flex;position:static}.pt-tabs :is(button,a){align-items:center;gap:var(--sfa-space-2);border-radius:var(--sfa-radius-pill);min-height:40px;padding:8px 16px;font-size:.9375rem;display:inline-flex}.pt-grid{grid-template-columns:1.2fr 1fr}}.pt-chip--draft{background:var(--sfa-surface-2);color:var(--sfa-text-2)}.pt-chip--scheduled{color:var(--sfa-text);box-shadow:inset 0 0 0 1px var(--sfa-border);background:0 0}.pt-fieldset{gap:var(--sfa-space-3);border:0;min-width:0;margin:0;padding:0;display:grid}.pt-form textarea.pt-prose-input{min-height:240px;font-family:inherit;font-size:1rem;line-height:1.6}.pt-label{font-size:.9375rem;font-weight:500}.pt-form .pt-choice{align-items:center;gap:var(--sfa-space-2);cursor:pointer;font-weight:400;display:flex}.pt-form .pt-choice input{width:20px;height:20px;min-height:20px;accent-color:var(--sfa-brand);margin:0}.pt-file-pick{cursor:pointer;position:relative}.pt-file-pick input{opacity:0;cursor:pointer;position:absolute;inset:0}.pt-file-pick:focus-within{outline:2px solid var(--sfa-focus-ring);outline-offset:2px}.pt-files .pt-people__name{align-items:center;gap:var(--sfa-space-1);overflow-wrap:anywhere;min-width:0;display:flex}.pt-files li{grid-template-columns:minmax(0,1fr) auto}.pt-files .pt-hint{grid-column:1}.pt-files .pt-actions{grid-area:1/2/span 2}.pt-danger.sfa-btn{background:var(--sfa-text);border-color:var(--sfa-text);color:var(--sfa-bg)}.pt-prose{white-space:pre-wrap;overflow-wrap:anywhere;max-width:68ch;font-size:1.0625rem;line-height:1.7}.pt-prose a{color:var(--sfa-brand-text);text-underline-offset:3px}.pt-lesson-meta{gap:var(--sfa-space-2);margin-bottom:var(--sfa-space-4);flex-wrap:wrap;align-items:center;display:flex}.pt-grid>.pt-back{grid-column:1/-1}.pt-grid.pt-stack{grid-template-columns:minmax(0,1fr);max-width:860px}.pt-column{gap:var(--sfa-space-5);align-content:start;min-width:0;display:grid}.pt-chip--work-todo,.pt-chip--work-started{color:var(--sfa-text);box-shadow:inset 0 0 0 1px var(--sfa-border);background:0 0}.pt-chip--work-handed_in{background:var(--sfa-surface-2);color:var(--sfa-text)}.pt-chip--work-overdue,.pt-chip--late{color:var(--sfa-text);box-shadow:inset 0 0 0 1.5px var(--sfa-text);background:0 0}.pt-form .pt-mark-input{font-variant-numeric:tabular-nums;max-width:8rem;font-size:1.25rem}.pt-form textarea.pt-feedback-input{min-height:120px}.pt-mark__value{margin:0 0 var(--sfa-space-3);font-variant-numeric:tabular-nums;color:var(--sfa-brand-text);font-size:2.5rem;font-weight:300;line-height:1.1}.pt-announcements{gap:var(--sfa-space-4);margin:0 0 var(--sfa-space-3);padding:0;list-style:none;display:grid}.pt-announcement{gap:var(--sfa-space-1);min-width:0;padding-bottom:var(--sfa-space-4);border-bottom:1px solid var(--sfa-border);display:grid}.pt-announcement:last-child{border-bottom:0;padding-bottom:0}.pt-announcement__title{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:1.0625rem;font-weight:600}.pt-announcement__title a{color:inherit;text-decoration:none}.pt-announcement__title a:hover{text-underline-offset:3px;text-decoration:underline}.pt-announcement__body--clamp{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pt-announcement-form{margin-bottom:var(--sfa-space-4)}.pt-form textarea.pt-announcement-input{min-height:120px}.pt-bell__btn{position:relative}.pt-bell__badge{border-radius:var(--sfa-radius-pill);background:var(--sfa-brand);min-width:18px;height:18px;color:var(--sfa-on-brand);text-align:center;padding:0 5px;font-size:.6875rem;font-weight:700;line-height:18px;position:absolute;top:2px;right:2px}.pt-bell__panel{top:calc(100% + 8px);right:max(16px, env(safe-area-inset-right,0px));z-index:30;width:min(380px,100% - 32px);max-height:min(70vh,520px);padding:var(--sfa-space-3);background:var(--sfa-bg);border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-lg);box-shadow:var(--sfa-shadow-md);position:absolute;overflow-y:auto}.pt-bell__panel>.pt-hint{margin:var(--sfa-space-2)}.pt-bell__list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pt-bell__list a{padding:var(--sfa-space-2) var(--sfa-space-3);border-radius:var(--sfa-radius-md);color:var(--sfa-text);gap:2px;text-decoration:none;display:grid}.pt-bell__list a:hover,.pt-bell__list a:focus-visible{background:var(--sfa-surface-2)}.pt-bell__title{font-weight:500}.pt-bell__item--unread a{background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint)}.pt-bell__item--unread .pt-hint{color:inherit}.pt-bell__item--unread .pt-bell__title{font-weight:600}.pt-inline-form{align-items:center;gap:var(--sfa-space-2);flex-wrap:wrap;min-width:0;display:flex}.pt-inline-form input{border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-sm);background:var(--sfa-bg);min-width:0;min-height:36px;color:var(--sfa-text);font:inherit;flex:12rem;padding:4px 10px}.pt-register__date input{border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-sm);background:var(--sfa-bg);min-height:36px;color:var(--sfa-text);font:inherit;padding:4px 10px}.pt-register__marks{gap:var(--sfa-space-1);border:0;flex-wrap:wrap;min-width:0;margin:0;padding:0;display:flex}.pt-register__mark{border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-pill);cursor:pointer;align-items:center;gap:6px;min-height:36px;padding:4px 12px;font-size:.875rem;display:inline-flex}.pt-register__mark input{accent-color:var(--sfa-brand)}.pt-register__mark:has(input:checked){border-color:var(--sfa-brand-text);background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint);font-weight:600}.pt-register__mark:has(input:focus-visible){outline:2px solid var(--sfa-focus-ring);outline-offset:2px}.pt-chip--mark-absent{background:var(--sfa-surface-2);color:var(--sfa-text);font-weight:600}.pt-chips{gap:var(--sfa-space-2);margin:var(--sfa-space-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.pt-chips .pt-chip{align-items:center;gap:4px;display:inline-flex}.pt-chip__remove{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:2px;display:inline-flex}.pt-segmented{gap:var(--sfa-space-1);margin-top:var(--sfa-space-3);flex-wrap:wrap;display:flex}.pt-segmented button{border:1px solid var(--sfa-border);border-radius:var(--sfa-radius-pill);background:var(--sfa-bg);min-height:36px;color:var(--sfa-text);font:inherit;cursor:pointer;padding:4px 14px}.pt-segmented button[aria-selected=true]{border-color:var(--sfa-brand-text);background:var(--sfa-brand-tint);color:var(--sfa-on-brand-tint);font-weight:600}.pt-consent{gap:var(--sfa-space-3);max-width:44rem;display:grid}.pt-consent__agree{align-items:center;gap:var(--sfa-space-2);font-weight:500;display:flex}.pt-help__reports{margin-top:var(--sfa-space-3);padding-top:var(--sfa-space-3);border-top:1px solid var(--sfa-border)}.pt-help__reports li{padding:var(--sfa-space-2) var(--sfa-space-3);gap:2px;display:grid}
