@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');

:root {
  color-scheme: light;
  font-family: 'DM Sans', sans-serif;
  color: #182c4e;
  background: #f7f4ed;
  --ink: #182c4e;
  --ink-soft: #52647e;
  --cream: #f7f4ed;
  --paper: #fffdf8;
  --navy: #18325d;
  --blue: #31547e;
  --terracotta: #c76f4f;
  --line: #e6dfd2;
  --serif: 'Instrument Serif', Georgia, serif;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body { min-width: 320px; background: var(--cream); }
a { color: inherit; }
.site-shell { min-height: 100vh; }
.site-header {
  min-height: 76px; display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:0 clamp(20px,5vw,76px); border-bottom:1px solid rgba(24,50,93,.11);
  background:rgba(247,244,237,.96);
}
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-size:12px; line-height:1.05; font-weight:700; letter-spacing:.055em; text-transform:uppercase; }
.brand img { width:40px; height:40px; object-fit:contain; }
.site-header nav { display:flex; align-items:center; gap:8px; }
.site-header nav a { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border-radius:999px; color:var(--ink-soft); font-size:13px; font-weight:600; text-decoration:none; }
.site-header nav a:hover { background:#ece7dc; color:var(--ink); }
.site-header nav .sign-in-link { border:1px solid var(--line); }
.site-header nav .auth-status { padding:0 4px; color:var(--navy); font-size:12px; font-weight:700; white-space:nowrap; }
.site-header nav .nav-dropdown { position:relative; }
.site-header nav .nav-dropdown > summary { display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 14px; border-radius:999px; color:var(--ink-soft); font-size:13px; font-weight:600; list-style:none; cursor:pointer; }
.site-header nav .nav-dropdown > summary::-webkit-details-marker { display:none; }
.site-header nav .nav-dropdown > summary:hover,.site-header nav .nav-dropdown.is-active > summary { background:#ece7dc; color:var(--ink); }
.site-header nav .nav-dropdown .nav-dropdown-chevron { display:inline-block; font-size:19px; line-height:1; transition:transform .18s; }
.site-header nav .nav-dropdown[open] .nav-dropdown-chevron { transform:rotate(90deg); }
.site-header nav .nav-dropdown-menu { position:absolute; z-index:20; top:calc(100% + 8px); right:0; min-width:min(240px,calc(100vw - 24px)); max-width:calc(100vw - 24px); max-height:min(70vh,560px); overflow-y:auto; overscroll-behavior:contain; padding:6px; border:1px solid var(--line); background:var(--paper); box-shadow:0 14px 34px rgba(24,50,93,.15); }
.site-header nav .nav-dropdown:hover > .nav-dropdown-menu { display:block; }
.site-header nav .nav-dropdown-menu a { display:flex; align-items:center; min-height:40px; padding:7px 12px; border-radius:2px; color:var(--navy); font-size:12px; font-weight:600; line-height:1.4; text-decoration:none; white-space:normal; }
.site-header nav .nav-dropdown-menu a:hover,.site-header nav .nav-dropdown-menu a:focus-visible { background:#f1ece2; }
.site-header nav .nav-dropdown-menu a:focus-visible { outline:2px solid var(--terracotta); outline-offset:1px; }
.coming-soon-page { min-height:calc(100vh - 76px); display:grid; place-items:center; padding:32px 24px 66px; }
.coming-soon-content { width:min(100%,720px); display:flex; flex-direction:column; align-items:center; text-align:center; }
.brand-logo-frame { width:min(100%,700px); aspect-ratio:1.25; display:grid; place-items:center; overflow:hidden; }
.brand-logo { width:100%; height:auto; object-fit:contain; }
.coming-soon-content h1 { margin:8px 0 14px; color:var(--terracotta); font-family:var(--serif); font-size:clamp(3rem,7vw,5.6rem); font-weight:400; letter-spacing:-.035em; line-height:.95; }
.coming-soon-content p { max-width:620px; margin:0; color:var(--blue); font-size:clamp(1rem,2.4vw,1.25rem); line-height:1.6; }
.coming-soon-content .mission { max-width:680px; margin-top:25px; color:#57657b; font-size:clamp(.93rem,2vw,1.05rem); }
.mission strong { color:var(--terracotta); }
.page-wrap { width:min(1160px,100%); margin:auto; padding:62px 28px 96px; }
.eyebrow { display:flex; align-items:center; gap:10px; color:var(--terracotta); font-size:11px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.eyebrow:before { content:""; width:27px; height:1px; background:currentColor; }
.page-title { max-width:850px; margin:16px 0 12px; color:var(--navy); font-family:var(--serif); font-size:clamp(3rem,7.3vw,6.25rem); font-weight:400; line-height:.91; letter-spacing:-.04em; }
.page-intro { max-width:575px; color:var(--ink-soft); font-size:15px; line-height:1.65; }
.format-page { background:var(--paper); }
.format-hero { padding:clamp(58px,9vw,104px) clamp(24px,8vw,124px) 58px; color:var(--paper); background:var(--navy); }
.format-hero .eyebrow { color:#e0a386; }
.format-hero .page-title { margin:18px 0; color:var(--paper); font-size:clamp(4rem,10vw,8.5rem); }
.format-hero .page-title em { color:#e0a386; font-weight:400; }
.format-deck { max-width:760px; margin:0; color:var(--paper); font-size:clamp(1.25rem,3vw,1.8rem); font-weight:500; line-height:1.35; }
.format-origin { max-width:660px; margin:20px 0 0; color:#d9ddea; font-size:13px; line-height:1.7; }
.format-section { max-width:1080px; margin:0 auto; padding:clamp(48px,7vw,78px) 28px; }
.format-section-heading { display:grid; gap:12px; }
.format-section-label { color:var(--terracotta); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.format-section h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:clamp(2.4rem,4.5vw,4rem); font-weight:400; letter-spacing:-.04em; line-height:1; }
.format-section p { margin:18px 0 0; color:var(--ink-soft); font-size:14px; line-height:1.85; }
.format-what { display:grid; grid-template-columns:minmax(190px,.6fr) minmax(0,1.4fr); gap:clamp(28px,6vw,88px); align-items:start; border-bottom:1px solid var(--line); }
.format-what > p { margin:0; font-size:15px; }
.format-reasons { display:grid; grid-template-columns:1fr 1fr; background:#f0ece3; }
.format-reasons .format-section { width:100%; max-width:none; padding:clamp(44px,6vw,76px) clamp(28px,5vw,72px); }
.format-reasons .format-section:first-child { border-right:1px solid rgba(24,50,93,.12); }
.format-reasons .format-section p { max-width:620px; }
.format-ground-rules { padding-top:clamp(54px,7vw,82px); }
.format-ground-rules ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; margin:28px 0 0; padding:0; border-top:1px solid var(--line); list-style:none; }
.format-ground-rules li { display:flex; gap:14px; align-items:baseline; padding:17px 0; border-bottom:1px solid var(--line); color:var(--navy); font-size:14px; line-height:1.5; }
.format-ground-rules li span { color:#9aa5b1; font-family:var(--serif); font-size:18px; }
.format-ground-rules .format-closing { color:var(--navy); font-size:15px; font-weight:700; }
.format-detail-hero .page-title { max-width:1050px; font-size:clamp(3.5rem,8vw,7rem); line-height:.97; }
.format-detail-body { width:min(1160px,100%); display:grid; grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr); gap:clamp(36px,7vw,112px); align-items:start; margin:0 auto; padding:clamp(56px,8vw,100px) clamp(24px,7vw,96px); }
.format-detail-intro p { margin:18px 0 0; color:var(--ink-soft); font-size:17px; line-height:1.85; }
.format-detail-steps { padding:clamp(26px,4vw,46px); background:#f0ece3; }
.format-detail-steps h2 { margin:10px 0 24px; color:var(--navy); font-family:var(--serif); font-size:clamp(2rem,3.8vw,3rem); font-weight:400; letter-spacing:-.035em; line-height:1.05; }
.format-detail-steps ol { display:grid; margin:0; padding:0; border-top:1px solid var(--line); list-style:none; }
.format-detail-steps li { display:grid; grid-template-columns:34px minmax(0,1fr); gap:14px; align-items:start; padding:18px 0; border-bottom:1px solid var(--line); }
.format-detail-steps li span { color:#9aa5b1; font-family:var(--serif); font-size:19px; line-height:1.4; }
.format-detail-steps li p { margin:0; color:var(--ink-soft); font-size:14px; line-height:1.7; }
.about-page { min-height:calc(100vh - 76px); background:var(--cream); }
.about-intro { padding:clamp(58px,9vw,120px) clamp(28px,11vw,168px) 82px; color:var(--paper); background:var(--navy); }
.about-intro .eyebrow { color:#e0a386; }
.about-founded { margin:38px 0 12px; color:#e0a386; font-size:10px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.about-intro h1 { margin:0; color:var(--paper); font-family:var(--serif); font-size:clamp(4rem,8vw,7rem); font-weight:400; letter-spacing:-.05em; line-height:.88; }
.about-intro h1 em { color:#e0a386; font-weight:400; }
.about-tagline { max-width:760px; margin:26px 0 0; color:#f4e5d9; font-size:clamp(1.2rem,2vw,1.7rem); font-weight:600; line-height:1.5; }
.about-mission { display:grid; grid-template-columns:minmax(170px,.55fr) minmax(0,1.45fr); gap:clamp(36px,8vw,125px); align-items:start; padding:clamp(60px,8vw,105px) clamp(28px,11vw,168px); }
.about-mission-label { display:flex; align-items:center; gap:12px; color:var(--terracotta); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.about-mission-label::before { content:'01'; color:#aeb9c6; font-family:var(--serif); font-size:18px; letter-spacing:0; }
.about-mission-copy h2 { max-width:620px; margin:0; color:var(--navy); font-family:var(--serif); font-size:clamp(2.6rem,5vw,4.75rem); font-weight:400; letter-spacing:-.04em; line-height:.95; }
.about-mission-copy p { max-width:720px; margin:22px 0 0; color:var(--ink-soft); font-size:15px; line-height:1.85; }
@media (max-width:760px) {
  .about-page { min-height:calc(100vh - 66px); }
  .about-intro { padding:78px 27px 62px; }
  .about-mission { grid-template-columns:1fr; gap:23px; padding:62px 27px; }
}
@media (max-width:480px) {
  .about-intro { padding:64px 21px 54px; }
  .about-founded { margin-top:30px; }
  .about-mission { padding:50px 21px; }
  .about-mission-copy h2 { font-size:clamp(2.6rem,12vw,3.5rem); }
  .about-mission-copy p { font-size:14px; }
}
.calendar-toolbar { display:flex; justify-content:space-between; align-items:center; gap:18px; margin:47px 0 20px; padding:14px 0; border-block:1px solid var(--line); }
.filter-row { display:flex; flex-wrap:wrap; gap:8px; }
.filter-chip { display:inline-flex; align-items:center; min-height:36px; border:1px solid transparent; padding:0 13px; border-radius:999px; color:var(--ink-soft); background:transparent; text-decoration:none; font-size:12px; font-weight:600; }
.filter-chip:hover { border-color:#d7d0c5; }
.filter-chip.selected { color:var(--navy); background:#e8ede6; border-color:#d6e0d4; }
.event-count { color:#768197; font-size:12px; white-space:nowrap; }
.event-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.event-card { display:grid; grid-template-columns:92px minmax(0,1fr); gap:19px; min-height:210px; padding:22px; background:var(--paper); border:1px solid #ebe5da; box-shadow:0 8px 24px rgba(37,48,61,.035); }
.event-date { align-self:start; padding:12px 8px; text-align:center; color:var(--navy); background:#eef0e8; }
.event-date .month { display:block; color:var(--terracotta); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.event-date .day { display:block; margin:2px 0; font-family:var(--serif); font-size:38px; line-height:1; }
.event-date .weekday { color:#64718a; font-size:10px; }
.event-content { min-width:0; }
.event-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 9px; color:#718096; font-size:11px; }
.format-tag { padding:5px 9px; color:#435b50; background:#edf1e9; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.event-title { margin:0 0 8px; color:var(--navy); font-family:var(--serif); font-size:26px; font-weight:400; line-height:1.05; }
.event-description { display:-webkit-box; overflow:hidden; -webkit-line-clamp:3; -webkit-box-orient:vertical; color:#687487; font-size:12px; line-height:1.55; }
.event-footer { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-top:15px; color:#718096; font-size:11px; }
.event-footer a { color:var(--terracotta); font-weight:700; text-decoration:none; }
.event-card-actions { display:flex; flex:1; flex-direction:column; align-items:flex-end; gap:10px; min-width:0; }
.rsvp-details { width:min(100%,360px); }
.rsvp-details summary { color:var(--terracotta); font-weight:700; cursor:pointer; }
.rsvp-privacy { margin:8px 0 12px; color:#718096; font-size:11px; line-height:1.5; }
.rsvp-form { display:grid; gap:10px; }
.rsvp-field { display:grid; gap:5px; color:#445a77; font-size:11px; font-weight:700; }
.rsvp-field input { width:100%; min-height:39px; padding:8px 10px; border:1px solid #ddd6ca; border-radius:0; color:var(--ink); background:#fffefa; font:inherit; font-weight:400; }
.rsvp-field input:focus { outline:3px solid rgba(49,84,126,.18); border-color:#7087a4; }
.rsvp-submit { justify-self:start; min-height:39px; padding:0 14px; border:1px solid transparent; border-radius:3px; color:var(--paper); background:var(--navy); font:inherit; font-size:11px; font-weight:700; cursor:pointer; }
.rsvp-submit:disabled { opacity:.55; cursor:not-allowed; }
.rsvp-feedback { margin:0; color:#526e57; font-size:12px; line-height:1.5; }
.rsvp-feedback[role="alert"] { color:#a34635; }
.rsvp-details summary:focus-visible,.rsvp-submit:focus-visible { outline:3px solid var(--terracotta); outline-offset:3px; }
.calendar-note,.gallery-prompt { color:#8790a0; font-size:12px; text-align:center; }
.calendar-note { margin-top:48px; }
.gallery-prompt { margin-top:12px; }
.text-link { color:var(--terracotta); font-weight:700; }
.state-panel { display:grid; place-items:center; min-height:240px; padding:42px 20px; text-align:center; border:1px dashed #d7d0c5; color:var(--ink-soft); background:rgba(255,253,248,.58); }
.state-panel h2 { margin:0 0 8px; color:var(--navy); font-family:var(--serif); font-size:30px; font-weight:400; }
.state-panel p { margin:0; max-width:420px; font-size:13px; line-height:1.6; }
.gallery-events { display:grid; gap:58px; margin-top:54px; }
.gallery-event-heading { margin-bottom:20px; }
.gallery-event-heading h2 { margin:9px 0 0; color:var(--navy); font-family:var(--serif); font-size:clamp(2rem,4vw,3.2rem); font-weight:400; line-height:1; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.gallery-photo { min-width:0; margin:0; padding:9px; background:var(--paper); border:1px solid #ebe5da; }
.gallery-photo a { display:block; overflow:hidden; background:#e8e4da; }
.gallery-photo img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .25s; }
.gallery-photo a:hover img { transform:scale(1.025); }
.gallery-photo figcaption { padding:10px 3px 2px; color:var(--ink-soft); font-size:12px; line-height:1.5; }
.site-footer { display:flex; justify-content:space-between; gap:18px; padding:22px clamp(20px,5vw,76px); border-top:1px solid var(--line); color:#7b8797; font-size:11px; }
.site-footer a { color:var(--ink-soft); text-decoration:none; }
@media (max-width:760px) {
  .site-header { min-height:66px; padding-inline:18px; }
  .brand img { width:34px; height:34px; }
  .site-header nav { gap:2px; }
  .site-header nav a { min-height:36px; padding:0 10px; font-size:11px; }
  .site-header nav .nav-dropdown > summary { min-height:36px; padding:0 8px; font-size:11px; }
  .page-wrap { padding:44px 18px 70px; }
  .format-hero { padding:68px 24px 48px; }
  .format-what { grid-template-columns:1fr; gap:20px; }
  .format-reasons { grid-template-columns:1fr; }
  .format-reasons .format-section:first-child { border-right:0; border-bottom:1px solid rgba(24,50,93,.12); }
  .format-reasons .format-section { padding:45px 24px; }
  .format-ground-rules { padding-inline:24px; }
  .format-detail-hero .page-title { font-size:clamp(3rem,11vw,5rem); }
  .format-detail-body { grid-template-columns:1fr; gap:32px; padding:52px 24px 70px; }
  .format-detail-intro p { font-size:15px; }
  .format-detail-steps { padding:28px 22px; }
  .event-list { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
  .site-header { gap:8px; padding-inline:12px; }
  .brand { gap:7px; font-size:9px; }
  .site-header nav { gap:0; }
  .site-header nav a { min-height:34px; padding:0 4px; font-size:9px; }
  .site-header nav .nav-dropdown > summary { min-height:34px; gap:2px; padding:0 4px; font-size:9px; }
  .site-header nav .auth-status { display:none; }
  .coming-soon-page { min-height:calc(100vh - 66px); padding:24px 16px 48px; }
  .brand-logo-frame { width:100%; }
  .calendar-toolbar { align-items:flex-start; flex-direction:column; }
  .event-card { grid-template-columns:68px minmax(0,1fr); gap:13px; padding:15px; }
  .event-footer { flex-direction:column; }
  .event-card-actions { align-items:flex-start; width:100%; }
  .rsvp-details { width:100%; }
  .event-title { font-size:23px; }
  .gallery-grid { grid-template-columns:1fr; }
  .site-footer { flex-direction:column; }
}
@media (max-width:420px) {
  .format-ground-rules ul { grid-template-columns:1fr; }
}

.static-home { overflow:hidden; color:var(--ink); background:var(--cream); }
.static-home h1,.static-home h2,.static-home h3 { font-family:var(--serif); font-weight:400; }
.static-home h1 em,.static-home h2 em { color:var(--terracotta); font-weight:400; }
.static-hero { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr); min-height:650px; align-items:center; gap:clamp(32px,6vw,88px); padding:76px clamp(28px,8.1vw,124px) 70px; }
.static-hero-copy { max-width:690px; }
.static-brand-lockup { width:min(310px,100%); margin-bottom:20px; }
.static-brand-lockup img { display:block; width:100%; height:auto; }
.static-kicker,.static-section-label,.static-overline { color:var(--terracotta); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.static-kicker { margin:0; }
.static-hero h1 { margin:28px 0 22px; color:var(--navy); font-size:clamp(4rem,7.8vw,7.4rem); letter-spacing:-.055em; line-height:.82; }
.static-tagline { max-width:470px; margin:30px 0 10px; color:var(--navy); font-size:clamp(14px,1.55vw,17px); font-weight:700; line-height:1.5; }
.static-intro { max-width:460px; margin:0; color:var(--ink-soft); font-size:14px; line-height:1.8; }
.static-actions { display:flex; align-items:center; flex-wrap:wrap; gap:25px; margin-top:29px; }
.static-primary,.static-secondary { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px; font-size:12px; font-weight:700; text-decoration:none; }
.static-primary { padding:0 18px; color:var(--paper); background:var(--navy); }
.static-primary:hover { background:#294978; }
.static-secondary { color:var(--navy); }
.static-secondary span { color:var(--terracotta); font-size:18px; }
.static-note { display:flex; align-items:center; gap:10px; margin:36px 0 0; color:#768197; font-size:10px; letter-spacing:.04em; }
.static-note:before { width:28px; height:1px; background:var(--terracotta); content:""; }
.static-hero-art { justify-self:end; width:min(100%,520px); margin:0; }
.static-hero-art img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.static-mission { padding:88px clamp(28px,11vw,168px) 70px; color:var(--paper); background:var(--navy); }
.static-section-label { margin:0 0 30px; }
.static-mission .static-section-label { color:#e0a386; }
.static-mission-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(35px,8vw,120px); align-items:center; margin-bottom:48px; }
.static-mission h2,.static-pillars h2,.static-audience h2,.static-calendar h2 { margin:0; color:var(--paper); font-size:clamp(3.2rem,6.1vw,6rem); letter-spacing:-.045em; line-height:.9; }
.static-mission h2 em { color:#e0a386; }
.static-mission-grid > div { max-width:480px; color:#d4d9e1; font-size:14px; line-height:1.8; }
.static-overline { margin:0 0 9px; color:#e0a386; }
.static-mission-grid > div p:last-child { margin:0; }
.static-cityline { margin:0; padding-top:18px; border-top:1px solid rgba(255,253,248,.22); color:#e4e2da; font-family:var(--serif); font-size:20px; }
.static-pillars { padding:100px clamp(28px,11vw,168px); }
.static-pillars h2 { margin-bottom:38px; color:var(--navy); font-size:clamp(3rem,5.2vw,5.4rem); }
.static-pillar-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.static-pillar-grid article { padding-top:20px; border-top:1px solid #d9d4c9; }
.static-pillar-grid h3 { margin:0 0 11px; color:var(--navy); font-size:29px; }
.static-pillar-grid p,.static-audience-copy > p:not(.static-section-label),.static-calendar > div > p:last-child { color:var(--ink-soft); font-size:13px; line-height:1.8; }
.static-audience { position:relative; isolation:isolate; overflow:hidden; padding:clamp(76px,9vw,118px) clamp(28px,11vw,168px); background:radial-gradient(ellipse 54% 90% at 98% 0%,rgba(199,111,79,.26),transparent 70%),radial-gradient(ellipse 42% 72% at 0% 100%,rgba(49,84,126,.72),transparent 74%),var(--navy); }
.static-audience::before { position:absolute; z-index:0; top:-20rem; right:-13rem; width:min(56vw,720px); aspect-ratio:1; border:1px solid rgba(255,253,248,.13); border-radius:50%; box-shadow:0 0 0 42px rgba(255,253,248,.035),0 0 0 84px rgba(255,253,248,.025); content:""; pointer-events:none; }
.static-audience::after { position:absolute; z-index:0; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,253,248,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(255,253,248,.15) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(105deg,transparent 15%,#000 100%); content:""; pointer-events:none; }
.static-audience-copy { position:relative; z-index:1; width:min(100%,840px); margin-inline:auto; }
.static-audience .static-section-label { color:#f2b797; }
.static-audience h2 { max-width:820px; color:var(--paper); font-size:clamp(3.5rem,6.7vw,6.4rem); }
.static-audience h2 em { color:#f2b797; }
.static-audience-copy > p:not(.static-section-label) { max-width:760px; margin:20px 0; color:#d6dfeb; }
.static-audience-copy .static-audience-note { padding-left:15px; border-left:2px solid #e0a386; color:var(--paper); font-weight:600; }
.static-audience .static-secondary { color:#ffc09d; }
.static-calendar { display:flex; align-items:flex-end; justify-content:space-between; gap:35px; padding:76px clamp(28px,11vw,168px); background:#f1ece1; }
.static-calendar .static-section-label { margin-bottom:26px; }
.static-calendar h2 { color:var(--navy); font-size:clamp(3rem,5.5vw,5.8rem); }
.static-calendar > div > p:last-child { max-width:400px; margin:17px 0 0; }
.static-calendar .static-primary { min-width:210px; justify-content:space-between; }
.static-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:25px clamp(28px,6vw,88px); color:var(--ink-soft); background:#e7e3d9; font-size:11px; line-height:1.6; }
.static-footer a { color:var(--terracotta); font-weight:700; text-decoration:none; }
.static-home a:focus-visible { outline:3px solid var(--terracotta); outline-offset:4px; }
@media (max-width:760px) {
  .static-hero { grid-template-columns:1fr; min-height:unset; gap:38px; padding:64px 24px 52px; }
  .static-hero h1 { font-size:clamp(4rem,12vw,6rem); }
  .static-brand-lockup { width:min(270px,100%); margin-bottom:16px; }
  .static-hero-art { justify-self:center; }
  .static-mission { padding:70px 27px 55px; }
  .static-mission-grid { grid-template-columns:1fr; gap:25px; margin:31px 0 38px; }
  .static-pillars { padding:70px 27px; }
  .static-audience { padding:76px 27px; }
  .static-pillar-grid { grid-template-columns:1fr; gap:24px; }
  .static-calendar { align-items:flex-start; flex-direction:column; padding:65px 27px; }
  .static-footer { flex-wrap:wrap; padding:24px 22px; }
}
@media (max-width:480px) {
  .static-hero { gap:32px; padding:51px 20px 42px; }
  .static-hero h1 { margin-top:23px; font-size:clamp(3.55rem,15vw,4.6rem); }
  .static-brand-lockup { width:min(235px,100%); margin-bottom:13px; }
  .static-tagline { margin-top:23px; }
  .static-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  .static-mission,.static-pillars,.static-audience { padding-inline:21px; }
  .static-calendar { padding:58px 21px 62px; }
  .static-calendar .static-primary { width:100%; }
  .static-cityline { font-size:16px; }
}
/* Cinematic video hero (shared by React app and server-rendered fallback) */
.pen-hero { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:max(640px,calc(100svh - 76px)); overflow:hidden; color:#fffdf8; background:#18325d center/cover no-repeat url('/puebla-women-swapped-hero.jpg'); }
.pen-hero-media { position:absolute; inset:0; z-index:-3; }
.pen-hero-video { width:100%; height:100%; object-fit:cover; object-position:center 35%; transform:scale(1.04); animation:pen-drift 24s ease-in-out infinite alternate; }
.pen-hero:before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(14,28,56,.9) 0%,rgba(14,28,56,.72) 42%,rgba(14,28,56,.22) 100%),linear-gradient(0deg,rgba(14,28,56,.85) 0%,transparent 45%); }
.pen-hero-inner { width:100%; max-width:1400px; margin:0 auto; padding:clamp(48px,8vh,96px) clamp(22px,8vw,124px) clamp(36px,6vh,64px); }
.pen-hero-copy { max-width:720px; }
.pen-hero-copy > * { animation:pen-rise .9s cubic-bezier(.2,.7,.2,1) both; }
.pen-hero-copy > :nth-child(2) { animation-delay:.1s; } .pen-hero-copy > :nth-child(3) { animation-delay:.2s; } .pen-hero-copy > :nth-child(4) { animation-delay:.3s; } .pen-hero-copy > :nth-child(5) { animation-delay:.4s; } .pen-hero-copy > :nth-child(6) { animation-delay:.5s; }
.pen-hero-logo { display:inline-block; width:clamp(150px,18vw,215px); margin:0 0 28px; padding:12px 16px 10px; background:rgba(255,253,248,.96); border-bottom:3px solid #c76f4f; box-shadow:0 18px 40px rgba(6,14,32,.35); }
.pen-hero-logo img { display:block; width:100%; height:auto; }
.pen-hero-kicker { display:flex; align-items:center; gap:10px; margin:0; color:#f0b698; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.pen-hero-kicker:before { content:""; width:30px; height:1px; background:currentColor; }
.pen-hero h1 { margin:22px 0 0; color:#fffdf8; font-family:var(--serif); font-size:clamp(3.6rem,9vw,8rem); font-weight:400; letter-spacing:-.055em; line-height:.84; text-shadow:0 2px 30px rgba(6,14,32,.4); }
.pen-hero h1 em { color:#f0b698; font-weight:400; }
.pen-hero-tagline { max-width:500px; margin:28px 0 8px; color:#fffdf8; font-size:clamp(15px,1.6vw,18px); font-weight:700; line-height:1.5; }
.pen-hero-intro { max-width:500px; margin:0; color:#e4e8ef; font-size:15px; line-height:1.75; }
.pen-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px 28px; margin-top:32px; }
.pen-hero-primary { display:inline-flex; align-items:center; gap:16px; min-height:52px; padding:0 24px; color:#fffdf8; background:#c76f4f; font-size:13px; font-weight:700; text-decoration:none; transition:background .25s,transform .25s; }
.pen-hero-primary:hover { background:#b35c3d; transform:translateY(-2px); }
.pen-hero-profile { display:inline-flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:0 18px; color:#fffdf8; border:1px solid rgba(255,253,248,.72); background:rgba(14,28,56,.18); font-size:13px; font-weight:700; text-decoration:none; transition:background .25s,color .25s,transform .25s; }
.pen-hero-profile:hover { color:var(--navy); background:#fffdf8; transform:translateY(-2px); }
.pen-hero-secondary { display:inline-flex; align-items:center; gap:10px; min-height:52px; color:#fffdf8; font-size:13px; font-weight:700; text-decoration:none; border-bottom:1px solid rgba(255,253,248,.5); transition:border-color .25s; }
.pen-hero-secondary span { color:#f0b698; transition:transform .25s; }
.pen-hero-secondary:hover { border-color:#f0b698; } .pen-hero-secondary:hover span { transform:translateX(5px); }
.pen-hero-note { display:flex; align-items:center; gap:10px; margin:44px 0 0; color:#c9d0dc; font-size:11px; letter-spacing:.05em; }
.pen-hero-note:before { content:""; width:28px; height:1px; background:#c76f4f; }
.pen-hero a:focus-visible { outline:3px solid #f0b698; outline-offset:4px; }
@keyframes pen-rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes pen-drift { from { transform:scale(1.04); } to { transform:scale(1.12) translateX(-1.5%); } }
@media (max-width:760px) { .pen-hero { min-height:max(620px,calc(100svh - 66px)); background-position:28% center; } .pen-hero-video { object-position:28% center; transform:scale(.96); animation:none; } .pen-hero:before { background:linear-gradient(0deg,rgba(14,28,56,.94) 0%,rgba(14,28,56,.7) 60%,rgba(14,28,56,.45) 100%); } .pen-hero-note { margin-top:30px; } }
@media (max-width:480px) { .pen-hero-logo { position:relative; top:clamp(-198px,calc(842px - 100svh),-32px); } .pen-hero-actions { align-items:flex-start; flex-direction:column; gap:6px; } .pen-hero-primary,.pen-hero-profile { width:100%; justify-content:space-between; } }
@media (prefers-reduced-motion:reduce) { .pen-hero-video { display:none; } .pen-hero-copy > * { animation:none; } }
@media (max-width:360px) { .site-header { gap:8px; padding-inline:10px; } .brand > span { display:none; } .site-header nav { gap:0; } .site-header nav a { padding:0 3px; font-size:9px; } }
