/* NFP 2.1.0: readable content, real author, consistent launch states. */
:root { --photo-radius:8px; }
.inverted,.foot { --ink:#f7f6f3; --purple:#a68bff; --muted:rgba(247,246,243,.78); --hair:rgba(247,246,243,.24); }
.foot-sign,.foot-sign strong,.foot-sign span,.inverted .membership-free,.inverted .event-costs { color:inherit; }
.foot a:hover { color:#d2b1ff; }
main figure:not(.sky-break) img { border-radius:var(--photo-radius); }
.cut { clip-path:none; border-radius:var(--photo-radius); }
.hero-explanation { max-width:58ch; font-size:clamp(1.02rem,1.3vw,1.17rem); line-height:1.65; margin:24px 0; }
.hero-reassurance { color:var(--muted); font-size:.95rem; margin:20px 0 0; }
.updated-hero h1 { font-size:clamp(2.6rem,5.7vw,5.6rem); }
.body-text { line-height:1.7; }
.kicker { font-size:.74rem; line-height:1.7; color:var(--muted); }
.language-switch { font-size:.76rem; }
.status-badge { display:inline-flex; gap:8px; align-items:center; width:fit-content; max-width:100%; padding:6px 10px; border:1px solid var(--hair-strong); border-radius:3px; font-size:.8rem; font-weight:500; line-height:1.4; color:var(--ink); margin:10px 0 18px; }
.status-badge::before { content:""; width:6px; height:6px; flex:none; border-radius:50%; background:var(--purple); }
.launch-card { display:flex; gap:40px; align-items:center; justify-content:space-between; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:30px 0; }
.launch-card h2 { font-size:clamp(1.7rem,3vw,2.5rem); margin:0 0 14px; }
.launch-card p { max-width:72ch; font-size:1rem; line-height:1.65; margin:0; }
.launch-card .btn { flex-shrink:0; }
.author-grid { display:grid; grid-template-columns:minmax(260px,380px) minmax(0,1fr); gap:clamp(30px,6vw,90px); align-items:center; }
.author-grid h1,.author-grid h2 { max-width:19ch; font-size:clamp(2.05rem,4.5vw,4.3rem); line-height:1.06; margin:0 0 26px; }
.author-portrait { width:100%; max-width:380px; margin:0; }
.author-portrait img { width:100%; height:auto; display:block; }
.author-portrait figcaption,.closing-photo figcaption { font-size:.82rem; line-height:1.6; margin-top:12px; color:var(--muted); }
.author-grid .body-text p { margin:0 0 20px; }
.author-teaser { border-top:1px solid var(--hair); }
.author-intro { padding-bottom:38px; }
.story-grid { display:grid; grid-template-columns:250px minmax(0,750px); gap:clamp(30px,6vw,90px); justify-content:space-between; align-items:start; }
.story-toc { position:sticky; top:110px; display:flex; flex-direction:column; gap:16px; border-left:2px solid var(--purple); padding-left:20px; }
.story-toc a { font-size:.95rem; line-height:1.5; color:var(--muted); text-decoration:none; }
.story-toc a:hover { color:var(--ink); text-decoration:underline; }
.story-copy { font-size:1.1rem; line-height:1.8; }
.story-copy h2 { font-size:clamp(1.65rem,3vw,2.6rem); line-height:1.15; margin:56px 0 25px; scroll-margin-top:110px; }
.story-copy h2:first-child { margin-top:0; }
.story-copy p { margin:0 0 24px; }
.author-signature { font-size:2.3rem; margin:35px 0!important; }
.text-link { display:inline-block; font-size:1rem; line-height:1.6; text-underline-offset:5px; margin-top:18px; }
.format-action { margin-top:18px; }
.format-panel { min-height:275px; }
.format-panel .status-badge { margin:15px 0; }
.format-panel .format-code { display:inline-block; margin:15px 0 15px 15px; }
.format-meta { font-size:.8rem; }
.format-tab { min-height:96px; }
.format-tab span { font-size:.96rem; }
.format-tab small { font-size:.7rem; }
.onboarding { border-top:1px solid var(--hair); }
.onboarding h2 { max-width:23ch; }
.onboarding-grid { list-style:none; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px; margin:42px 0 15px; }
.onboarding-grid li { border-top:1px solid var(--hair); padding-top:22px; }
.step-number { color:var(--purple); display:block; margin-bottom:20px; }
.onboarding-grid h3 { font-size:1.2rem; line-height:1.3; margin-bottom:12px; }
.onboarding-grid p { font-size:.97rem; line-height:1.65; margin:0; }
.cities-teaser h2 { margin:0 0 25px; }
.cities-teaser .city-link { align-self:center; }
.cities-teaser .body-text { max-width:55ch; }
.faq-list { max-width:900px; margin-top:35px; }
.faq-list details { border-top:1px solid var(--hair); padding:0; }
.faq-list details:last-child { border-bottom:1px solid var(--hair); }
.faq-list summary { cursor:pointer; font-size:1.12rem; line-height:1.5; padding:24px 30px 24px 0; }
.faq-list p { font-size:1rem; line-height:1.7; margin:0 0 25px; max-width:78ch; }
.closing-grid { display:grid; grid-template-columns:1fr minmax(0,1fr); gap:clamp(28px,5vw,70px); align-items:center; }
.closing-grid h2 { font-size:clamp(2.2rem,4.8vw,4.5rem); line-height:1.08; }
.closing-photo { margin:0; width:100%; max-width:560px; justify-self:end; }
.closing-photo img { display:block; width:100%; height:auto; }
.membership-free { font-size:.96rem; line-height:1.65; }
.about-introduction { padding-top:0; }
.about-introduction .body-text { max-width:780px; font-size:1.1rem; }
.legal-doc { overflow-wrap:anywhere; }
.legal-doc p,.legal-doc li { line-height:1.75; }
.application-intro { max-width:72ch; margin-top:24px; line-height:1.65; }
.application-intro p+p { margin-top:12px; }
.application-intro a { text-decoration:underline; text-underline-offset:3px; }
[data-clear-draft] { margin-top:16px; }
[data-draft-status] { margin-top:12px; line-height:1.5; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:2px solid var(--purple); outline-offset:5px; }
.inverted a:focus-visible,.foot a:focus-visible { outline-color:#d2b1ff; }
@media (min-width:1280px) { .nav a { font-size:.73rem; letter-spacing:.015em; } .nav { gap:13px; } .head-in { gap:18px; } }
@media (max-width:1000px) { .onboarding-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .story-grid { grid-template-columns:190px minmax(0,1fr); gap:34px; } .launch-card { align-items:start; flex-direction:column; gap:24px; } }
@media (max-width:760px) {
  .hero-explanation { font-size:1rem; line-height:1.65; margin:20px 0; }
  .updated-hero h1 { font-size:clamp(2.2rem,9vw,4rem); }
  .author-grid,.story-grid,.closing-grid { grid-template-columns:1fr; gap:30px; }
  .author-portrait { max-width:380px; margin:0 auto; }
  .author-teaser .author-grid>div { grid-row:1; }
  .author-intro .author-portrait { max-width:300px; }
  .author-intro h1 { max-width:none; }
  .story-toc { position:static; flex-direction:row; flex-wrap:wrap; gap:10px 18px; padding-left:15px; }
  .story-toc a { font-size:.9rem; }
  .story-copy { font-size:1.02rem; line-height:1.75; }
  .story-copy h2 { margin-top:40px; }
  .closing-photo { max-width:480px; justify-self:center; }
  .onboarding-grid { gap:25px 20px; }
  .format-panel { min-height:0; }
  .format-tab span { font-size:.92rem; }
  .launch-card .btn { width:100%; }
  .foot-links { gap:15px 20px; }
  .foot-sign strong { font-size:1rem; }
}
@media (max-width:380px) { .onboarding-grid { grid-template-columns:1fr; } .onboarding-grid li { padding-top:15px; } }
