/* Shared visual language for the archive, mentorship, Playbook and privacy pages. */
:root { --paper:#fbf7fe; --purple:#654487; --purple-dark:#4b3067; --orange:#654487; --line:#e4e0e6; --soft:#f1e8f8; --gutter:clamp(22px,5vw,88px); color:#19171b; background:var(--paper); }
html { scroll-padding-top:110px; }
body { min-width:320px; background:var(--paper); }
::selection { background:#e6d9f4; }
:focus-visible { outline:2px solid var(--purple); outline-offset:5px; }
header { height:100px; padding:0 var(--gutter); position:sticky; top:0; z-index:20; background:white; border-color:var(--line); gap:1rem; }
header img { width:210px; height:84px; object-fit:cover; }
header > a:last-child { color:var(--purple); font-size:.78rem; }
.page-nav { display:flex; gap:1.6rem; font-size:.76rem; }
.page-nav a { text-decoration:none; }
.page-nav a:hover { color:var(--purple); }
.hero { padding:5rem var(--gutter); min-height:0; background:var(--paper) url('/lavender-brush.svg') center / 115% 110% no-repeat; border-bottom:1px solid var(--line); }
.hero .label,.eyebrow,.label { color:var(--purple); font-size:.65rem; letter-spacing:.13em; }
.hero h1 { font-size:clamp(3.2rem,6vw,6.7rem); line-height:1.08; letter-spacing:-.04em; margin:1.5rem 0 2rem; }
.hero h1 em { color:var(--purple); }
.hero-copy { margin:0; max-width:650px; font-family:"DM Sans",sans-serif; font-size:.98rem; line-height:1.85; }
.hero .eyebrow::before { width:7px; height:7px; background:#e99a22; border:0; border-radius:50%; margin:0 10px 1px 0; }
.application,.about { padding:5rem var(--gutter); grid-template-columns:.8fr 1.2fr; gap:7vw; }
.aside h2,.about h2 { font-size:clamp(2rem,3.4vw,3.7rem); line-height:1.18; letter-spacing:-.03em; }
.about h2 { margin-bottom:2rem; }
.columns { gap:2rem; }
.columns p,.aside p,.aside li { font-size:.9rem; line-height:1.85; color:#625e66; }
.application form { border:1px solid var(--line); padding:2rem; background:white; }
label span,legend { text-transform:none; letter-spacing:0; font-size:.74rem; }
input,select,textarea { border:1px solid var(--line); padding:.85rem; font-size:.9rem; }
.consent input { flex-shrink:0; accent-color:var(--purple); }
button { background:var(--purple); color:white; }
button:hover { background:var(--purple-dark); }
.notice { background:#f3eff8; padding:1.2rem; }
.coming { background:#f3eff8; padding:4rem var(--gutter); }
.coming h2 { font-size:clamp(2.2rem,3.5vw,4rem); line-height:1.15; }
.archive { padding:4rem var(--gutter) 5rem; }
.slideshow { gap:2.5rem; grid-template-columns:minmax(0,1fr) 290px; }
.stage { min-height:0; height:650px; background:var(--soft); }
.controls { border-top:2px solid var(--purple); padding-top:1.5rem; }
.controls h2 { font-size:2.3rem; line-height:1.2; }
.buttons button { border-color:var(--line); color:var(--purple); }
.buttons button:hover { color:white; background:var(--purple); }
.dots { gap:.6rem; }
.dots button { width:22px; height:22px; border:7px solid white; background:#c8bfd1; }
.dots button.active { background:var(--purple); transform:none; }
footer { background:white; color:#19171b; padding:2rem var(--gutter); border-top:1px solid var(--line); gap:1.5rem; flex-wrap:wrap; }
footer a { text-underline-offset:4px; }
body:has(.updated) main { padding:5rem var(--gutter); max-width:1300px; grid-template-columns:.3fr 1fr; gap:5vw; }
body:has(.updated) h1 { font-size:clamp(3rem,5.5vw,6rem); line-height:1.1; }
body:has(.updated) h2 { font-size:1.8rem; }
body:has(.updated) .label { color:var(--purple); }
@media (max-width:850px) {
  header { height:82px; } header img { width:145px; height:75px; } .page-nav { gap:1rem; font-size:.68rem; }
  .application,.about { grid-template-columns:1fr; gap:2.5rem; }
  .slideshow { grid-template-columns:1fr; } .stage { height:65vh; } .controls { min-height:220px; }
}
@media (max-width:600px) {
  header { padding:0 var(--gutter); } header > a:last-child { font-size:.66rem; } .page-nav { display:none; }
  .hero { padding:3rem var(--gutter); grid-template-columns:1fr; gap:1rem; } .hero h1 { font-size:clamp(2.8rem,10.8vw,4.2rem); } .hero-copy { margin:0; font-size:.9rem; }
  .application,.about { padding:3.5rem var(--gutter); } .application form { padding:1.2rem; } .row,.columns,.coming { grid-template-columns:1fr; } .row { gap:0; }
  .coming { gap:1.5rem; padding:3rem var(--gutter); } .archive { padding:2rem var(--gutter) 3.5rem; } .stage { height:55vh; } footer { flex-direction:column; font-size:.7rem; }
  body:has(.updated) main { grid-template-columns:1fr; padding:3rem var(--gutter); gap:1rem; } body:has(.updated) h1 { font-size:3rem; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
