@font-face { font-family: Marcellus; src: url(/static/fonts/Marcellus-Regular.ttf) format("truetype"); font-display: swap; }
@font-face { font-family: "Inter Tight"; src: url(/static/fonts/InterTight.ttf) format("truetype"); font-weight: 100 900; font-display: swap; }

:root { --ink: #F4EFE6; --muted: #AEB6C2; --night: #0B1524; --line: rgba(244, 239, 230, .18); --sun: #F6C98A; --max: 1080px; --gutter: max(24px, calc((100% - var(--max)) / 2)); --ease: cubic-bezier(.2, .7, .2, 1); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--night); }
body { min-height: 100svh; display: flex; flex-direction: column; margin: 0; background: var(--night); color: var(--ink); font: 18px/1.55 "Inter Tight", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--sun); }
:focus-visible { outline: 2px solid var(--sun); outline-offset: 3px; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 3; padding: 10px 14px; background: var(--ink); color: var(--night); }
.skip:focus { left: 8px; }

.hero { position: relative; overflow: hidden; height: clamp(680px, 100svh, 1040px); display: flex; flex-direction: column; background: linear-gradient(#0B1626 0, #1B2A44 38%, #6A4F5B 54%, #E09A62 62%, #243A4E 62.2%, #0B1524 100%); }
.dawn { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.hero-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 22%; background: linear-gradient(transparent, var(--night)); pointer-events: none; }
.nav { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 12px 28px; justify-content: space-between; align-items: center; padding: 24px var(--gutter); }
.brand { display: block; text-decoration: none; }
.wordmark { font-size: 19px; }
.logo { display: block; height: 42px; width: auto; max-width: 100%; object-fit: contain; }
.nav-links { display: flex; flex-wrap: wrap; gap: 6px 26px; font-size: 16px; }
.nav-links a { text-decoration: none; padding: 4px 0; }
.hero-copy { position: relative; z-index: 2; width: 100%; max-width: 860px; margin: clamp(28px, 7vh, 80px) auto 0; padding: 0 24px; text-align: center; text-shadow: 0 1px 2px rgba(5, 12, 24, .35), 0 2px 32px rgba(5, 12, 24, .6); overflow-wrap: anywhere; }
.hero::after { content: ""; position: absolute; inset: 0 0 auto; height: 58%; background: linear-gradient(rgba(8, 15, 28, .5), rgba(8, 15, 28, .34) 62%, transparent); pointer-events: none; }
.hero h1 { margin: 0; font: 400 clamp(36px, calc(4vw + 16px), 76px)/1.08 Marcellus, Georgia, serif; text-wrap: balance; }
.hero-copy p { margin: 20px auto 0; max-width: 580px; font-size: clamp(18px, 1.6vw, 20px); line-height: 1.45; text-wrap: balance; }

main { text-align: center; }
.thesis { padding: clamp(64px, 8vw, 104px) var(--gutter) clamp(32px, 4vw, 48px); overflow-wrap: anywhere; }
.thesis p { margin: 0; font: 400 clamp(28px, 3.4vw, 42px)/1.25 Marcellus, Georgia, serif; }
.thesis-line { display: block; }
.band { padding: clamp(56px, 7vw, 88px) var(--gutter); scroll-margin-top: 16px; }
.band > * { position: relative; }
.label { display: flex; align-items: center; gap: 20px; margin: 0 0 36px; font-weight: 500; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.label::before, .label::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.big-list { max-width: 860px; margin: 0 auto; overflow-wrap: anywhere; font-weight: 300; font-size: clamp(21px, 2.3vw, 28px); line-height: 1.6; text-wrap: balance; color: rgba(244, 239, 230, .94); }
.co { white-space: nowrap; }
.co i { font-style: normal; color: var(--muted); opacity: .6; padding-inline: .4em; }
.big-list a { text-decoration: underline; }
.button { margin-top: 28px; min-height: 44px; padding: 0 22px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--ink); font: inherit; font-size: 16px; cursor: pointer; transition: border-color .25s, color .25s; }
.button:hover { border-color: var(--sun); color: var(--sun); }
.news { list-style: none; max-width: 780px; margin: 0 auto; padding: 0; display: grid; gap: 28px; overflow-wrap: anywhere; }
.news li { font: 400 clamp(23px, 2.4vw, 30px)/1.25 Marcellus, Georgia, serif; }
.news a { text-decoration: none; }
.news span { display: block; margin-top: 6px; font: 15px "Inter Tight", sans-serif; color: var(--muted); }

.team { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 36px; row-gap: 48px; overflow-wrap: anywhere; }
.team article { display: grid; grid-row: span 4; grid-template-rows: subgrid; justify-items: center; align-content: start; row-gap: 0; }
.team article > img, .monogram { display: block; width: min(100%, 156px); aspect-ratio: 1; object-fit: cover; margin-bottom: 20px; border-radius: 50%; }
.team article > img { clip-path: circle(48.5%); filter: grayscale(1) brightness(.86) contrast(.96); }
.monogram { background: #1A2536; }
.monogram { display: flex; align-items: center; justify-content: center; color: var(--sun); font: 48px Marcellus, Georgia, serif; }
.team h3 { margin: 0 0 8px; font: 400 23px/1.2 Marcellus, Georgia, serif; }
.team p { margin: 0 0 8px; font-size: 15px; line-height: 1.5; letter-spacing: .012em; color: var(--muted); }
.team article > a { font-size: 15px; }
@media (max-width: 899px) { .team { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; } }

.cta { padding: clamp(64px, 8vw, 104px) var(--gutter); text-align: center; background: var(--night); }
.cta p { margin: 0 0 24px; font: clamp(30px, 3.4vw, 44px)/1.15 Marcellus, Georgia, serif; }
.cta div { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; font-size: 17px; }
.cta a { display: inline-flex; align-items: center; min-height: 46px; padding: 0 24px; border: 1px solid rgba(244, 239, 230, .45); border-radius: 999px; text-decoration: none; transition: background .25s, color .25s; }
.cta a:hover { background: var(--ink); color: var(--night); }
.cta a.primary { background: var(--ink); border-color: var(--ink); color: var(--night); }
.cta a.primary:hover { background: var(--sun); border-color: var(--sun); }
.cta a:not(.primary) { border: 0; padding: 0 8px; text-decoration: underline; }
.cta a:not(.primary):hover { background: none; color: var(--sun); }
.footer { padding: 24px var(--gutter); text-align: center; }
.footer p { max-width: 760px; margin: 0 auto; font-size: 13px; color: var(--muted); }

.release { flex: 1; background: #F7F4EE; color: #16202E; }
.release .mini { padding: 22px var(--gutter); background: var(--night); }
.release .mini .brand { width: max-content; margin: 0 auto; }
.release a { color: inherit; }
.release a:hover { color: #8A4B1F; }
.release :focus-visible { outline-color: #16202E; }
.pr { max-width: 720px; margin: 0 auto; text-align: left; padding: clamp(40px, 6vw, 72px) 24px clamp(48px, 7vw, 88px); overflow-wrap: anywhere; }
.pr-kicker { margin: 0 0 6px; font-weight: 600; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }
.pr-meta { margin: 0 0 34px; padding-bottom: 14px; border-bottom: 1px solid #16202E; font-size: 14px; color: #4A5462; }
.pr h1 { margin: 0 0 18px; font: 400 clamp(34px, 4.8vw, 50px)/1.12 Marcellus, Georgia, serif; }
.pr-sub { margin: 0 0 32px; font-size: clamp(19px, 2vw, 22px); line-height: 1.4; color: #38424F; }
.pr-image { display: block; width: 100%; height: auto; margin: 0 0 32px; }
.pr-body p { margin: 0 0 1.15em; font-size: 18px; line-height: 1.65; text-wrap: pretty; }
.pr-body h2, .pr-about h2, .pr-contact h2 { margin: 2em 0 .5em; font-weight: 600; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.pr-about { margin-top: 48px; padding-top: 8px; border-top: 1px solid #CFC9BD; }
.pr-contact a { display: inline-block; padding: 6px 0; }
.pr-about p, .pr-contact p { margin: 0 0 .7em; font-size: 16px; line-height: 1.6; color: #38424F; }
.pr-end { margin: 40px 0 0; padding-left: .4em; text-align: center; letter-spacing: .4em; font-size: 15px; }
.pr-verify { margin: 28px 0 0; padding-top: 14px; border-top: 1px solid #CFC9BD; font-size: 13px; color: #4A5462; }
.release .footer p { color: #4A5462; }
.message { flex: 1; width: 100%; max-width: 720px; margin: 0 auto; padding: clamp(48px, 7vw, 88px) 24px; text-align: center; }
.message h1 { margin: 0 0 16px; font: 400 clamp(34px, 5vw, 50px)/1.1 Marcellus, Georgia, serif; }
.mini { padding: 24px var(--gutter); border-bottom: 1px solid var(--line); }
.mini .brand { width: max-content; margin: 0 auto; }
@media print { @page { margin: 16mm; } html, body, .release { background: #FFF; color: #000; min-height: 0; display: block; } .release .mini { background: #FFF; padding: 0 0 8px; } .logo { filter: invert(1); } .pr { padding: 12px 0; } .pr-about, .pr-contact, .pr-end, .pr-verify { break-inside: avoid; } .pr h1 { font-size: 26pt; margin-bottom: 8pt; } .pr-sub { font-size: 13pt; margin-bottom: 14pt; } .pr-meta { margin-bottom: 14pt; } .pr-body p { font-size: 10.5pt; line-height: 1.45; margin-bottom: .8em; } .pr-about { margin-top: 14pt; } .pr-about p, .pr-contact p { font-size: 10pt; } .pr-end { margin-top: 14pt; } .pr-verify { margin-top: 10pt; padding-top: 8pt; font-size: 8.5pt; } .footer { padding: 6px 0 0; } .footer p { font-size: 8.5pt; max-width: none; color: #333; } .hero { height: auto; min-height: 0; background: #FFF; color: #000; display: block; } .dawn, .hero-fade, .hero::after, .skip, .button { display: none; } .logo { filter: invert(1); } .reveal, .word, .hero-sub, .nav { opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important; } main, .band, .cta { background: #FFF; color: #000; } .team p, .label, .big-list { color: #000; } }

@media (max-width: 640px) {
  .nav { justify-content: center; }
  .nav-links { justify-content: center; gap: 4px 18px; font-size: 15px; }
  .label::before, .label::after { display: none; }
  .label { justify-content: center; text-align: center; }
  .team h3 { font-size: 20px; }
  .team p { font-size: 14px; }
}

@media (prefers-reduced-motion: no-preference) {
  .word { display: inline-block; opacity: 0; transform: translateY(.4em); filter: blur(6px); animation: word-in 1.1s var(--ease) forwards; animation-delay: calc(.5s + var(--i) * 110ms); }
  .hero-sub { opacity: 0; animation: sub-in 1.2s 1.7s var(--ease) forwards; }
  .nav { animation: sub-in 1.2s .2s ease-out both; }
  .reveal { opacity: 0; transform: translateY(20px); transition: opacity 1s var(--ease), transform 1s var(--ease); transition-delay: calc(var(--i, 0) * 80ms); }
  .reveal.in, .reveal:focus-within { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@keyframes word-in { to { opacity: 1; transform: none; filter: none; } }
@keyframes sub-in { from { opacity: 0; } to { opacity: 1; } }
