:root { --teal:#2faea3; --teal-deep:#087a70; --paper:#fffdf7; --sun:#f5a50b; --red:#ef2c29; --ink:#3a1620; --mint:#dff4e8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope,Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.container { width:min(1290px,calc(100% - 80px)); margin:auto; }
.hero { min-height:850px; color:var(--paper); background:var(--teal); overflow:hidden; position:relative; }
.header { height:112px; display:flex; align-items:center; justify-content:space-between; gap:35px; border-bottom:1px solid rgba(255,255,255,.28); position:relative; z-index:2; }
.wordmark { display:flex; gap:8px; align-items:baseline; font-family:Montserrat,sans-serif; font-size:23px; letter-spacing:.18em; font-weight:400; white-space:nowrap; }
.wordmark span { color:var(--red); }.wordmark b { color:var(--sun); font-weight:800; }
.wordmark img { display:block; width:142px; height:auto; }
.header nav { display:flex; gap:34px; font-size:12px; letter-spacing:.08em; font-weight:800; } .header nav a { transition:color .2s; } .header nav a:hover { color:var(--sun); }
.header-actions { display:flex; align-items:center; gap:12px; }.header-button,.cta-button { display:inline-flex; align-items:center; justify-content:center; border-radius:99px; background:var(--sun); color:var(--ink); min-height:52px; padding:0 25px; font-size:12px; font-weight:800; letter-spacing:.06em; transition:transform .2s,background .2s,color .2s; }.header-ticket { background:var(--paper); color:var(--teal-deep); }.header-button:hover,.cta-button:hover { transform:translateY(-3px); }.header-ticket:hover { background:#fff6dc; color:var(--red); }.menu-toggle { width:52px; height:52px; display:grid; place-content:center; gap:7px; padding:0; border:0; border-radius:50%; background:var(--paper); cursor:pointer; transition:transform .2s,background .2s; }.menu-toggle:hover { transform:rotate(8deg) scale(1.05); background:var(--sun); }.menu-toggle i { display:block; width:22px; height:2px; background:var(--red); }
.hero-grid { min-height:680px; display:grid; grid-template-columns:48% 52%; align-items:center; position:relative; z-index:1; }.eyebrow { font-size:11px; letter-spacing:.16em; font-weight:800; margin:0 0 24px; }
h1,h2,h3,p { margin-top:0; } h1,h2 { font-family:Montserrat,Manrope,sans-serif; font-weight:800; line-height:.94; letter-spacing:-.065em; }h1 { font-size:clamp(58px,6.3vw,101px); margin-bottom:28px; } h2 { font-size:clamp(49px,5vw,78px); margin-bottom:0; } h1 i,h2 i { color:var(--red); font-style:normal; }
.hero-text { max-width:450px; font-size:17px; line-height:1.6; margin-bottom:38px; }.hero-meta { display:flex; align-items:center; gap:20px; font-size:10px; line-height:1.4; letter-spacing:.09em; }.hero-meta>div { display:flex; align-items:center; gap:13px; }.hero-meta b { display:block; font-size:24px; letter-spacing:-.07em; }.hero-meta span { font-weight:800; }.hero-meta>i { display:block; width:1px; height:44px; background:rgba(255,255,255,.6); }
.hero-art { position:relative; align-self:end; margin-bottom:0; }.hero-art img { width:100%; max-width:615px; position:relative; z-index:1; display:block; margin:auto; mix-blend-mode:multiply; }.spark { position:absolute; z-index:2; color:var(--sun); font-size:68px; }.spark-one { top:9%; left:10%; }.spark-two { right:3%; bottom:13%; color:var(--red); font-size:45px; }.scroll-note { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); font-size:10px; letter-spacing:.17em; font-weight:800; }.scroll-note span { font-size:20px; vertical-align:middle; margin-left:8px; }
.section { padding:135px 0; }.split-layout,.events-grid { display:grid; grid-template-columns:42% 58%; gap:70px; }.section-heading .eyebrow,.program .eyebrow,.events .eyebrow { color:var(--teal-deep); }.about-copy { padding-top:46px; font-size:17px; line-height:1.7; max-width:650px; }.about-copy .intro { color:var(--red); font-size:24px; font-weight:700; line-height:1.45; }.round-link { margin-top:22px; display:inline-flex; align-items:center; gap:20px; font-size:12px; font-weight:800; letter-spacing:.1em; }.round-link span { display:grid; place-items:center; width:47px; height:47px; color:var(--paper); background:var(--red); border-radius:50%; font-size:22px; }.marquee { overflow:hidden; white-space:nowrap; margin-top:105px; padding:22px 0; border-top:1px solid #e6dbcd; border-bottom:1px solid #e6dbcd; color:var(--sun); font-family:Montserrat,sans-serif; font-size:clamp(30px,4vw,64px); font-weight:800; letter-spacing:-.06em; }.marquee span { margin-right:74px; }.marquee span:nth-child(2) { color:var(--teal); }
.program { background:var(--mint); }.section-topline { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:65px; }.section-topline>p { max-width:350px; font-size:15px; line-height:1.6; margin-bottom:8px; }.days { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; align-items:start; }.day-card { border-radius:20px; padding:26px 24px; background:var(--paper); transition:transform .2s,background .2s; }.day-card:hover { transform:translateY(-8px); }.day-card.current { color:var(--paper); background:var(--teal-deep); }.day-card summary { min-height:318px; display:flex; flex-direction:column; cursor:pointer; list-style:none; }.day-card summary::-webkit-details-marker { display:none; }.day-card span { font-size:10px; letter-spacing:.16em; font-weight:800; }.day-card b { font-family:Montserrat,sans-serif; font-size:85px; letter-spacing:-.08em; line-height:1; margin:23px 0 4px; color:var(--sun); }.day-card strong { font-size:13px; letter-spacing:.1em; }.day-card p { font-size:13px; line-height:1.55; margin:28px 0 20px; }.day-card summary em { margin-top:auto; color:var(--red); font-size:11px; letter-spacing:.1em; font-style:normal; font-weight:800; }.day-card summary em i { font-style:normal; font-size:17px; margin-left:5px; }.day-card.current summary em { color:var(--sun); }.day-card[open] { grid-column:span 2; background:var(--paper); color:var(--ink); box-shadow:0 18px 36px rgba(8,122,112,.16); }.day-card[open].current { background:var(--teal-deep); color:var(--paper); }.day-card[open] summary { min-height:288px; }.day-card[open] summary em i { display:inline-block; transform:rotate(180deg); }.day-schedule { margin-top:20px; padding-top:20px; border-top:1px solid #dfd7cb; }.day-card.current .day-schedule { border-color:rgba(255,255,255,.35); }.venue { font-size:10px!important; letter-spacing:.08em; font-weight:800; text-transform:uppercase; margin:0 0 15px!important; color:var(--teal-deep); }.day-card.current .venue { color:var(--sun); }.day-schedule article { display:grid; grid-template-columns:92px 1fr; gap:12px; padding:13px 0; border-top:1px solid #e3ddd3; }.day-card.current .day-schedule article { border-color:rgba(255,255,255,.2); }.day-schedule time { color:var(--red); font-size:11px; font-weight:800; line-height:1.4; }.day-card.current .day-schedule time { color:var(--sun); }.day-schedule h4 { margin:0 0 5px; font-size:13px; line-height:1.35; }.day-schedule p { margin:0!important; font-size:11px!important; line-height:1.52!important; opacity:.83; }
.headliners { background:#fdf5dc; color:var(--ink); overflow:hidden; }.headliners-title { display:grid; grid-template-columns:1.1fr 1fr; align-items:end; gap:35px; margin-bottom:58px; }.headliners-title .eyebrow { grid-column:1/-1; color:var(--teal-deep); margin-bottom:0; }.headliners-title h2 { color:var(--red); }.headliners-title h2 i { color:var(--ink); }.headliners-title>p:last-child { max-width:360px; font-size:16px; line-height:1.55; margin-bottom:8px; }.headliner-wall { display:grid; grid-template-columns:1.08fr 1.3fr 1.25fr 1.08fr; grid-template-rows:250px 245px; gap:18px; }.speaker-card { min-width:0; position:relative; border-radius:22px; overflow:hidden; padding:22px; display:flex; flex-direction:column; justify-content:flex-end; isolation:isolate; transition:transform .25s ease; }.speaker-card:hover { transform:translateY(-7px) rotate(-.4deg); }.speaker-card span { position:absolute; top:19px; left:21px; font-size:11px; letter-spacing:.12em; font-weight:800; }.speaker-card h3 { margin:0 0 8px; font-family:Montserrat,sans-serif; font-size:clamp(21px,2vw,34px); line-height:.91; letter-spacing:-.075em; position:relative; z-index:2; }.speaker-card p { margin:0; font-size:12px; line-height:1.45; position:relative; z-index:2; }.joanne { grid-row:span 2; color:var(--paper); background:var(--red); }.joanne:before { content:""; position:absolute; width:290px; height:290px; border:22px dotted var(--sun); border-radius:50%; right:-125px; top:-110px; opacity:.9; }.speaker-pattern { position:absolute; top:45px; left:40px; font-size:105px; color:var(--sun); transform:rotate(12deg); }.ransom { grid-column:span 2; background:var(--teal); }.ransom img,.rob img { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; object-position:center 32%; mix-blend-mode:multiply; opacity:.92; transform:scale(1.15); }.speaker-copy { position:relative; z-index:1; color:var(--ink); }.ransom .speaker-copy { background:var(--paper); border-radius:14px; padding:19px 18px 14px; width:230px; }.ransom .speaker-copy span,.rob .speaker-copy span { top:14px; left:auto; right:16px; color:var(--red); }.walter { grid-row:span 2; color:var(--paper); background:var(--ink); }.walter:after { content:""; position:absolute; width:210px; height:210px; right:-70px; top:-85px; border-radius:50%; background:var(--teal); opacity:.9; }.record { position:absolute; top:58px; left:50%; transform:translateX(-50%); width:135px; height:135px; display:grid; place-items:center; border:13px solid var(--sun); border-radius:50%; color:var(--red); background:var(--paper); font-size:56px; box-shadow:0 0 0 10px var(--red); }.walter h3 { color:var(--sun); }.rob { background:var(--sun); }.rob img { object-position:center 64%; opacity:.74; }.rob .speaker-copy { position:relative; z-index:1; background:var(--paper); border-radius:14px; padding:18px 17px 14px; }.note { color:var(--ink); background:var(--mint); justify-content:space-between; }.note:before { content:"✳"; position:absolute; right:-13px; top:-38px; color:var(--teal); font-size:170px; line-height:1; }.note p { font-family:Montserrat,sans-serif; font-size:19px; font-weight:800; line-height:.95; letter-spacing:-.06em; }.note b { position:relative; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; color:var(--paper); background:var(--red); font-size:24px; }
.speaker-card > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:none; opacity:1; mix-blend-mode:normal; }.speaker-card .speaker-copy { position:relative; z-index:2; color:var(--ink); background:rgba(255,253,247,.94); border-radius:14px; padding:17px 18px 14px; box-shadow:0 8px 20px rgba(58,22,32,.12); }.speaker-card .speaker-copy span { position:absolute; top:13px; left:auto; right:16px; color:var(--red); }.speaker-card .speaker-copy h3 { font-size:clamp(21px,1.8vw,31px); }.joanne { background:var(--ink); }.joanne:before { inset:0; right:auto; top:auto; width:auto; height:auto; border:0; border-radius:0; opacity:1; background:linear-gradient(0deg,rgba(58,22,32,.62),rgba(58,22,32,0) 65%); z-index:1; }.joanne .speaker-copy { color:var(--ink); }.ransom img { object-position:center 23%; transform:none; opacity:1; mix-blend-mode:normal; }.ransom .speaker-copy { width:230px; }.walter { background:var(--ink); }.walter:after { display:none; }.walter > img { object-position:center 20%; }.walter .speaker-copy { background:rgba(255,253,247,.95); }.walter h3 { color:var(--ink); }.rob { background:var(--sun); }.rob img { object-position:center 28%; opacity:1; transform:none; mix-blend-mode:normal; }.rob .speaker-copy { background:rgba(255,253,247,.95); }
.ransom { background:#c4242e; }.ransom img { object-fit:contain; object-position:center; }

/* Four-headliner composition */
.headliners { background:radial-gradient(ellipse 52% 64% at 50% 43%,rgba(193,229,246,.93) 0%,rgba(210,242,233,.64) 38%,rgba(253,245,220,0) 72%),#fdf5dc; }
.headliner-wall { grid-template-columns:1fr 1.15fr 1.15fr 1fr; grid-template-rows:260px 260px; }
.headliner-wall .joanne { grid-column:1; grid-row:1 / span 2; }
.headliner-wall .ransom { grid-column:2 / span 2; grid-row:1; }
.headliner-wall .walter { grid-column:4; grid-row:1 / span 2; }
.headliner-wall .rob { grid-column:2 / span 2; grid-row:2; }
.headliner-wall .note { display:none; }
.ransom .speaker-copy,.rob .speaker-copy { width:250px; }
.rob { background:#eadbc5; }.rob img { object-fit:contain; object-position:center; }
@media (max-width:900px) { .headliner-wall .joanne,.headliner-wall .ransom,.headliner-wall .walter,.headliner-wall .rob { grid-column:auto; grid-row:auto; }.headliner-wall .ransom,.headliner-wall .rob { grid-column:span 1; }.ransom .speaker-copy,.rob .speaker-copy { width:230px; } }
@media (max-width:520px) { .headliner-wall .ransom,.headliner-wall .rob { grid-column:auto; }.ransom .speaker-copy,.rob .speaker-copy { width:100%; } }

/* Equal headliner cards */
.headliner-wall { grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:1fr; }
.headliner-wall .joanne,.headliner-wall .ransom,.headliner-wall .walter,.headliner-wall .rob { grid-column:auto; grid-row:auto; min-height:520px; }
.headliner-wall .ransom,.headliner-wall .rob { background:#eadbc5; }
.headliner-wall .ransom img,.headliner-wall .rob img { object-fit:cover; object-position:center 24%; }
.headliner-wall .ransom .speaker-copy,.headliner-wall .rob .speaker-copy { width:auto; }
@media (max-width:900px) { .headliner-wall { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; }.headliner-wall .joanne,.headliner-wall .ransom,.headliner-wall .walter,.headliner-wall .rob { min-height:420px; } }
@media (max-width:520px) { .headliner-wall { grid-template-columns:1fr; }.headliner-wall .joanne,.headliner-wall .ransom,.headliner-wall .walter,.headliner-wall .rob { min-height:430px; } }

/* Footer */
.site-footer { padding:24px 22px 0; background:linear-gradient(122deg,#217d90 0%,#8ac8df 47%,#fde1ae 100%); color:var(--red); }
.footer-shell { max-width:1440px; min-height:570px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border-radius:18px 18px 0 0; background:#fff6dc; }
.footer-promo { padding:52px clamp(34px,5vw,82px); display:flex; flex-direction:column; align-items:flex-start; border-right:1px dashed rgba(239,44,41,.5); }
.footer-promo .wordmark { font-size:20px; margin-bottom:45px; }.footer-promo h2 { max-width:450px; color:var(--red); font-size:clamp(45px,4.7vw,75px); line-height:.94; }.footer-promo h2 i { color:var(--red); }.newsletter { margin-top:50px; display:inline-flex; align-items:center; gap:17px; border:1.5px solid var(--red); border-radius:50px; padding:18px 22px; font-size:12px; font-weight:800; letter-spacing:.06em; transition:background .2s,color .2s; }.newsletter:hover { background:var(--red); color:#fff6dc; }.newsletter span { font-size:19px; }.socials { margin-top:34px; display:flex; gap:12px; }.socials a { width:47px; height:47px; display:grid; place-items:center; border:1.5px solid var(--red); border-radius:50%; font-size:22px; font-weight:800; transition:background .2s,color .2s; }.socials a:hover { background:var(--red); color:#fff6dc; }
.footer-links { padding:57px clamp(34px,5vw,82px); display:flex; flex-direction:column; }.footer-main-nav { display:grid; grid-template-columns:repeat(2,1fr); justify-content:stretch; column-gap:45px; row-gap:24px; padding:10px 10% 50px; border-bottom:1px dashed rgba(239,44,41,.5); color:var(--red); font-family:Montserrat,sans-serif; font-weight:800; font-size:clamp(16px,1.6vw,25px); letter-spacing:-.055em; }.footer-main-nav a:hover,.footer-columns a:hover { color:var(--teal-deep); }.footer-columns { display:grid; grid-template-columns:1fr 1fr; gap:45px; padding:42px 10% 0; }.footer-columns div { display:flex; flex-direction:column; align-items:flex-start; gap:15px; }.footer-columns h3 { margin:0 0 8px; font-family:Montserrat,sans-serif; font-size:17px; letter-spacing:-.04em; }.footer-columns a { font-size:14px; line-height:1.35; transition:color .2s; }.footer-bottom { max-width:1440px; min-height:74px; margin:0 auto; padding:25px 8px; display:flex; justify-content:space-between; align-items:center; color:#fff6dc; font-size:10px; font-weight:800; letter-spacing:.08em; }.footer-bottom a:hover { color:var(--ink); }
@media (max-width:900px) { .site-footer { padding:16px 16px 0; }.footer-shell { grid-template-columns:1fr; }.footer-promo { min-height:420px; border-right:0; border-bottom:1px dashed rgba(239,44,41,.5); }.footer-links { min-height:420px; }.footer-main-nav { justify-content:start; }.footer-columns { padding-left:0; padding-right:0; } }
@media (max-width:520px) { .footer-promo,.footer-links { padding:38px 25px; }.footer-promo { min-height:390px; align-items:stretch; }.footer-promo .wordmark { align-self:flex-start; margin-left:-10px; }.footer-promo h2 { margin-bottom:0; font-size:48px; line-height:.96; }.newsletter { width:100%; justify-content:space-between; margin-top:35px; padding:15px 17px; font-size:10px; }.socials { width:100%; justify-content:space-between; }.footer-main-nav { grid-template-columns:1fr; gap:16px; padding-bottom:30px; }.footer-columns { grid-template-columns:1fr; gap:34px; padding-top:32px; }.footer-bottom { align-items:flex-start; flex-direction:column; gap:11px; padding:21px 8px; } }

/* Full-screen navigation */
body.menu-open { overflow:hidden; }
.site-menu { position:fixed; z-index:20; inset:0; color:#d4eeff; background:#205a94; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .28s ease,visibility .28s ease; }
.site-menu.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.menu-feature { position:relative; display:flex; flex-direction:column; min-height:100dvh; padding:52px 9% 36px; overflow:hidden; background:radial-gradient(ellipse 52% 73% at 80% 6%,rgba(102,179,226,.65),transparent 70%),#205a94; }
.menu-feature:after { content:""; position:absolute; width:420px; height:420px; border:44px solid rgba(212,238,255,.12); border-radius:50%; bottom:-235px; right:-90px; }
.menu-close { position:absolute; z-index:2; top:32px; right:32px; width:58px; height:58px; border:0; border-radius:50%; background:var(--paper); color:#205a94; font-size:48px; font-weight:200; line-height:1; cursor:pointer; transition:transform .2s; }
.menu-close:hover { transform:rotate(90deg); }
.menu-feature>p { position:relative; z-index:1; margin:0; color:#d4eeff; font-size:11px; font-weight:800; letter-spacing:.13em; line-height:1.55; }
.language-switcher { position:absolute; z-index:2; top:47px; right:115px; display:flex; align-items:center; padding:4px; border:1px solid rgba(212,238,255,.38); border-radius:99px; }
.language-switcher button { min-width:38px; padding:8px 9px; border:0; border-radius:99px; background:transparent; color:#c9eaff; font:800 11px/1 Montserrat,sans-serif; letter-spacing:.08em; cursor:pointer; transition:background .2s,color .2s; }
.language-switcher button:hover,.language-switcher button:focus-visible { color:#fff6dc; }.language-switcher button:focus-visible { outline:2px solid var(--sun); outline-offset:2px; }.language-switcher button.is-active { background:var(--sun); color:var(--ink); }
.menu-words { position:relative; z-index:1; flex:1; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; padding:35px 0 25px; }
.menu-words a { display:block; color:#c9eaff; font-family:Arial,sans-serif; font-size:clamp(48px,5.4vw,96px); font-weight:300; letter-spacing:-.075em; line-height:1.08; text-align:center; transition:color .2s,transform .2s,letter-spacing .2s; }
.menu-words a:nth-child(2) { margin-left:8%; }.menu-words a:nth-child(3) { margin-left:-5%; }
.menu-words a:hover { color:#fff6dc; transform:translateX(16px); letter-spacing:-.06em; }
.menu-words a:focus-visible { outline:2px solid var(--sun); outline-offset:9px; color:#fff6dc; }
.menu-bottom { position:relative; z-index:1; display:flex; justify-content:space-between; gap:20px; padding-top:22px; border-top:1px dashed rgba(212,238,255,.45); font-size:11px; letter-spacing:.08em; font-weight:700; }
@media (max-width:900px) { .menu-feature { padding:35px 7% 28px; }.menu-close { top:20px; right:20px; width:48px; height:48px; font-size:39px; }.language-switcher { top:24px; right:82px; }.menu-words a { font-size:clamp(40px,8vw,75px); }.header-button { display:inline-flex; } }
@media (max-width:620px) { .header-button { display:none; }.site-menu { overflow-y:auto; }.menu-feature { min-height:100dvh; padding:88px 25px 30px; }.menu-close { top:20px; right:20px; }.language-switcher { top:24px; right:78px; }.menu-words { align-items:flex-start; }.menu-words a { font-size:clamp(46px,13vw,72px); text-align:left; }.menu-words a:nth-child(2),.menu-words a:nth-child(3) { margin-left:0; }.menu-bottom { flex-direction:column; gap:8px; }.header { z-index:2; } }

.events-grid { align-items:start; }.events-list { border-top:2px solid var(--ink); }.events-list article { display:grid; grid-template-columns:70px 1fr 25px; gap:18px; padding:25px 0; border-bottom:1px solid #d6cfc4; }.events-list b { color:var(--red); font-size:13px; }.events-list h3 { font-size:18px; margin:0 0 6px; letter-spacing:-.03em; }.events-list p { margin:0; font-size:14px; line-height:1.5; }.events-list span { font-size:24px; color:var(--sun); }.cta { background:var(--teal); color:var(--paper); overflow:hidden; }.cta-inner { min-height:440px; display:grid; grid-template-columns:1fr auto; gap:45px; align-items:center; position:relative; }.cta .eyebrow { color:var(--sun); }.cta h2 { font-size:clamp(48px,4.8vw,75px); }.cta-button { justify-self:end; background:var(--paper); min-height:62px; padding:0 27px; }.cta-button span { margin-left:18px; font-size:22px; }.footer { min-height:108px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:10px; letter-spacing:.12em; font-weight:800; }.footer .wordmark { font-size:17px; }.footer div { display:flex; gap:20px; }.footer a:hover { color:var(--red); }
@media (max-width:900px) { .container { width:min(100% - 40px,620px); }.header { height:78px; }.header nav,.header-button { display:none; }.hero { min-height:900px; }.hero-grid { display:block; padding-top:70px; }.hero-art { max-width:510px; margin:35px auto 0; }.split-layout,.events-grid { grid-template-columns:1fr; gap:35px; }.about-copy { padding-top:0; }.section { padding:88px 0; }.section-topline { display:block; }.section-topline>p { margin-top:26px; }.days { grid-template-columns:repeat(2,1fr); }.day-card[open] { grid-column:span 2; }.headliners-title { display:block; }.headliners-title>p:last-child { margin-top:25px; }.headliner-wall { grid-template-columns:repeat(2,1fr); grid-template-rows:230px 230px 230px; }.joanne,.walter { grid-row:span 1; }.ransom { grid-column:span 1; }.speaker-grid { grid-template-columns:repeat(2,1fr); }.cta-inner { min-height:630px; grid-template-columns:1fr; padding:70px 0; }.cta img { position:absolute; width:280px; right:-35px; bottom:25px; opacity:.85; }.cta-button { justify-self:start; }.footer { flex-wrap:wrap; padding:28px 0; }.footer>span { order:3; width:100%; }.events-list article { grid-template-columns:45px 1fr 22px; } }
@media (max-width:520px) { .hero { min-height:805px; }.hero-grid { padding-top:50px; }.hero-text { font-size:15px; }.hero-meta { gap:12px; }.hero-meta b { font-size:18px; }.hero-meta span { font-size:8px; }.hero-art { margin-top:20px; }.spark { font-size:42px; }.days,.speaker-grid { grid-template-columns:1fr; }.day-card[open] { grid-column:span 1; }.day-card summary,.day-card[open] summary { min-height:260px; }.day-card b { font-size:65px; margin:16px 0 0; }.day-schedule article { grid-template-columns:1fr; gap:5px; }.headliner-wall { grid-template-columns:1fr; grid-template-rows:220px; }.speaker-card,.joanne,.walter,.ransom { grid-column:auto; grid-row:auto; min-height:220px; }.speaker-card h3 { font-size:30px; }.about-copy .intro { font-size:20px; }.footer div { gap:12px; } }

/* Program dates: long horizontal accordion rows */
.program .days { grid-template-columns:1fr; gap:14px; }
.program .day-card { padding:0 30px; border-radius:22px; background:var(--paper); }
.program .day-card.current { background:var(--teal-deep); color:var(--paper); }
.program .day-card summary { min-height:145px; display:grid; grid-template-columns:125px 190px minmax(240px,1fr) 160px; align-items:center; gap:24px; }
.program .day-card summary > span { color:var(--ink); }
.program .day-card.current summary > span { color:var(--paper); }
.program .day-card .date-stack { display:flex; align-items:center; gap:15px; }
.program .day-card b { display:block; margin:0; font-size:76px; line-height:.86; }
.program .day-card strong { display:block; padding-top:5px; font-size:13px; letter-spacing:.09em; }
.program .day-card summary p { max-width:540px; margin:0; align-self:center; font-size:15px; line-height:1.35; }
.program .day-card summary em { margin:0; align-self:center; justify-self:end; white-space:nowrap; }
.program .day-card summary > span,.program .day-card summary strong,.program .day-card summary p,.program .day-card summary em { transition:color .2s ease,transform .2s ease; }
.program .day-card summary { cursor:pointer; }
.program .day-card:not(.current):hover { background:#fff5d5; }
.program .day-card:not(.current):hover summary > span,.program .day-card:not(.current):hover summary strong,.program .day-card:not(.current):hover summary p { color:var(--red); transform:scale(1.025); transform-origin:left center; }
.program .day-card:not(.current):hover summary em { color:var(--teal-deep); transform:scale(1.045); transform-origin:right center; }
.program .day-card.current:hover { background:#096f67; }
.program .day-card.current:hover summary p { color:#fff6dc; transform:scale(1.02); transform-origin:left center; }
.program .day-card.current:hover summary em { color:#ffe35b; transform:scale(1.045); transform-origin:right center; }
.program .day-card[open] { grid-column:auto; padding-bottom:20px; }
.program .day-card[open] summary { min-height:145px; }
.program .day-schedule { margin-top:0; padding:23px 0 0; }
.program .day-schedule article { grid-template-columns:145px 1fr; padding:17px 0; }
.program .venue { font-size:12px!important; }
.program .day-schedule time { font-size:13px; }
.program .day-schedule h4 { font-size:15px; }
.program .day-schedule p { font-size:13px!important; }
@media (max-width:760px) {
  .program .day-card { padding:0 22px; }
  .program .day-card summary,.program .day-card[open] summary { min-height:190px; grid-template-columns:95px 1fr auto; gap:14px; }
  .program .day-card .date-stack { gap:10px; }
  .program .day-card b { font-size:62px; }
  .program .day-card summary p { grid-column:2 / -1; margin-top:-42px; padding-right:20px; }
  .program .day-card summary em { grid-column:3; grid-row:1; }
  .program .day-schedule article { grid-template-columns:110px 1fr; }
}
@media (max-width:520px) {
  .program .day-card summary,.program .day-card[open] summary { min-height:225px; grid-template-columns:1fr auto; gap:10px; }
  .program .day-card summary > span { align-self:end; }
  .program .day-card .date-stack { grid-column:1; grid-row:2; }
  .program .day-card summary p { grid-column:1 / -1; grid-row:3; margin:0; padding:0; }
  .program .day-card summary em { grid-column:2; grid-row:1; align-self:end; }
  .program .day-schedule article { grid-template-columns:1fr; }
}

/* Festival moments gallery */
.festival-life { position:relative; overflow:hidden; padding:118px 0 124px; color:var(--ink); background:radial-gradient(circle at -3% 24%,rgba(239,44,41,.75) 0 66px,transparent 67px),radial-gradient(circle at 103% 72%,rgba(47,174,163,.82) 0 105px,transparent 106px),linear-gradient(135deg,#f7cf31 0%,#ffea6a 100%); }
.festival-life:before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(rgba(58,22,32,.12),rgba(58,22,32,.12)) 0 35px/100% 2px no-repeat; }
.festival-life-heading { position:relative; z-index:1; display:grid; grid-template-columns:1fr auto; gap:18px 60px; align-items:end; margin:0 auto 54px; text-align:left; }
.festival-life-heading .eyebrow { grid-column:1 / -1; margin:0; color:var(--teal-deep); }
.festival-life-heading h2 { max-width:580px; color:var(--teal-deep); font-size:clamp(52px,5.6vw,90px); }
.festival-life-heading > p:last-child { max-width:305px; margin:0 0 7px; font-size:15px; line-height:1.55; }
.festival-life-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.festival-tile { min-width:0; min-height:325px; border-radius:25px; overflow:hidden; background:var(--paper); box-shadow:0 8px 0 rgba(58,22,32,.08); }
.festival-tile.photo { position:relative; display:flex; align-items:flex-end; aspect-ratio:1; min-height:0; background-image:url("assets/bolafest/gallery/festival-moments.png"); background-repeat:no-repeat; background-size:300% 200%; transition:transform .25s ease,box-shadow .25s ease; }
.festival-tile.photo:hover { transform:translateY(-8px) rotate(-.5deg); box-shadow:0 15px 0 rgba(58,22,32,.13); }
.festival-tile.photo:after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(58,22,32,.7)); }
.festival-tile.photo > div { position:relative; z-index:1; width:100%; padding:24px 25px; color:var(--paper); }
.festival-tile.photo span { display:block; margin-bottom:10px; color:var(--sun); font-size:11px; font-weight:800; letter-spacing:.13em; }
.festival-tile.photo h3 { margin:0; font-family:Montserrat,sans-serif; font-size:clamp(18px,1.7vw,26px); line-height:.98; letter-spacing:-.065em; }
.tile-performance { background-position:0 0; }.tile-workshop { background-position:50% 0; }.tile-contests { background-position:100% 0; }.tile-photozone { background-position:0 100%; }.tile-sound { background-position:50% 100%; }.tile-atmosphere { background-position:100% 100%; }
.festival-tile.guests { display:flex; flex-direction:column; justify-content:center; align-items:center; padding:25px; text-align:center; color:var(--ink); background:var(--teal); }
.festival-tile.guests span { font-family:Montserrat,sans-serif; font-size:clamp(58px,6.8vw,105px); font-weight:800; letter-spacing:-.1em; line-height:.8; }.festival-tile.guests b { margin-top:19px; font-family:Montserrat,sans-serif; font-size:22px; letter-spacing:-.06em; }.festival-tile.guests p { margin:13px 0 0; font-size:12px; font-weight:700; }
@media (max-width:900px) { .festival-life { padding:88px 0; }.festival-life-heading { grid-template-columns:1fr; gap:24px; }.festival-life-heading > p:last-child { margin:0; }.festival-life-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.festival-tile { min-height:280px; }.festival-tile.photo { aspect-ratio:1; min-height:0; } }
@media (max-width:520px) { .festival-life { padding:74px 0; }.festival-life-heading { margin-bottom:36px; }.festival-life-heading h2 { font-size:52px; }.festival-life-grid { grid-template-columns:1fr; gap:15px; }.festival-tile { min-height:275px; }.festival-tile.photo { aspect-ratio:1; }.festival-tile.guests { min-height:250px; }.festival-tile.guests span { font-size:85px; } }

/* Closing section: child festival portrait */
.cta-inner { overflow:visible; }
.cta-child-card { position:absolute; z-index:1; right:28%; bottom:8px; width:280px; height:395px; margin:0; overflow:hidden; border-radius:26px 26px 0 0; border:4px solid rgba(255,253,247,.86); box-shadow:14px 14px 0 rgba(8,122,112,.3); transform:rotate(1.5deg); }
.cta-child-card:before { content:""; position:absolute; z-index:2; width:72px; height:72px; right:-36px; top:48px; border:16px solid var(--sun); border-radius:50%; }
.cta-child-card:after { content:"✦"; position:absolute; z-index:2; left:-22px; top:43%; color:var(--red); font-size:58px; text-shadow:0 2px 0 rgba(255,253,247,.3); }
.cta-child-card img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.cta-child-card figcaption { position:absolute; z-index:3; right:14px; bottom:14px; display:flex; flex-direction:column; min-width:155px; padding:14px 17px; border-radius:19px; color:#6d6045; background:#ffe35b; }
.cta-child-card figcaption strong { font-family:Montserrat,sans-serif; font-size:31px; line-height:.88; letter-spacing:-.09em; }.cta-child-card figcaption span { margin-top:7px; font-size:9px; font-weight:800; letter-spacing:.07em; white-space:nowrap; }
.cta-button { position:relative; z-index:2; }
@media (max-width:900px) { .cta-inner { min-height:720px; }.cta-child-card { right:4%; bottom:8px; width:260px; height:360px; }.cta-child-card img { position:static; width:100%; height:100%; opacity:1; } }
@media (max-width:520px) { .cta-inner { min-height:760px; }.cta-child-card { right:0; width:225px; height:315px; }.cta-child-card figcaption { right:10px; bottom:10px; min-width:135px; padding:11px 13px; }.cta-child-card figcaption strong { font-size:27px; }.cta-child-card figcaption span { font-size:7px; }.cta-child-card:after { font-size:44px; }.cta-child-card:before { width:58px; height:58px; border-width:13px; } }

/* Desktop header — proportions matched to the BolaFest reference layout. */
@media (min-width:901px) {
  .header.container { width:calc(100% - 64px); max-width:none; height:170px; }
  .wordmark img { width:170px; }
  .header-actions { gap:17px; }
  .header .header-button { min-height:76px; padding:0 36px; font-size:16px; }
  .header .menu-toggle { display:none; }
}

/* Unified design system: three type levels, consistent controls and spacing. */
:root {
  --type-h1:clamp(48px,5.6vw,88px);
  --type-h2:clamp(30px,3.1vw,48px);
  --type-text:16px;
  --control-height:56px;
  --space-1:16px;
  --space-2:24px;
  --space-3:40px;
  --space-4:64px;
  --space-5:96px;
}

body,button,input,textarea,select { font-size:var(--type-text); }
h1 { font-size:var(--type-h1)!important; line-height:.96; }
h2 { font-size:var(--type-h2)!important; line-height:.98; }
.container { width:min(1290px,calc(100% - 64px)); }
.section { padding:var(--space-5) 0; }
.eyebrow { margin-bottom:var(--space-2); font-size:var(--type-text); line-height:1.2; }
p { font-size:var(--type-text); line-height:1.55; }

.header-actions { gap:var(--space-1); }
.header .header-button,.cta-button,.newsletter {
  min-height:var(--control-height);
  padding:0 var(--space-2);
  border-radius:999px;
  font-size:var(--type-text);
  letter-spacing:.03em;
}
.header .header-button { min-height:var(--control-height); padding:0 var(--space-2); }
.round-link { min-height:var(--control-height); gap:var(--space-1); margin-top:var(--space-2); font-size:var(--type-text); }
.round-link span { width:var(--control-height); height:var(--control-height); font-size:var(--type-text); }
.socials a { width:var(--control-height); height:var(--control-height); font-size:var(--type-text); }
.header nav { gap:var(--space-2); font-size:var(--type-text); }

/* Events: photo cards in a horizontal scroll-snap carousel. */
.events-grid { display:block; }
.events .section-heading { max-width:700px; margin-bottom:var(--space-3); }
.events-list {
  display:flex;
  gap:var(--space-2);
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  padding:0 0 var(--space-2);
  border:0;
  scrollbar-color:var(--red) rgba(58,22,32,.12);
  scrollbar-width:thin;
}
.events-list article {
  position:relative;
  isolation:isolate;
  display:flex;
  flex:0 0 min(350px,78vw);
  min-height:420px;
  flex-direction:column;
  justify-content:flex-end;
  gap:var(--space-1);
  overflow:hidden;
  scroll-snap-align:start;
  padding:var(--space-2);
  border:0;
  border-radius:24px;
  color:var(--paper);
  background-image:linear-gradient(180deg,rgba(58,22,32,.06) 20%,rgba(58,22,32,.88) 100%),url("assets/bolafest/gallery/festival-moments.png");
  background-repeat:no-repeat;
  background-size:cover,300% 200%;
  box-shadow:0 10px 28px rgba(58,22,32,.14);
  transition:transform .22s ease,box-shadow .22s ease;
}
.events-list article:hover { transform:translateY(-6px); box-shadow:0 18px 36px rgba(58,22,32,.2); }
.events-list article:nth-child(6n+1) { background-position:center,0 0; }
.events-list article:nth-child(6n+2) { background-position:center,50% 0; }
.events-list article:nth-child(6n+3) { background-position:center,100% 0; }
.events-list article:nth-child(6n+4) { background-position:center,0 100%; }
.events-list article:nth-child(6n+5) { background-position:center,50% 100%; }
.events-list article:nth-child(6n) { background-position:center,100% 100%; }
.events-list article b { position:absolute; top:var(--space-2); left:var(--space-2); color:var(--sun); font-size:var(--type-text); }
.events-list article div { position:relative; z-index:1; }
.events-list h3 { margin:0 0 8px; color:var(--paper); font-size:var(--type-text)!important; line-height:1.15; letter-spacing:.01em; }
.events-list p { margin:0; color:var(--paper); font-size:var(--type-text)!important; line-height:1.45; }
.events-list article > span { position:absolute; right:var(--space-2); top:var(--space-2); color:var(--paper); font-size:var(--type-h2); line-height:1; }

@media (max-width:900px) {
  .container { width:calc(100% - 40px); }
  .section { padding:var(--space-4) 0; }
  .events-list { margin-right:calc(var(--space-2) * -1); }
  .events-list article { flex-basis:min(310px,82vw); min-height:390px; }
}

@media (max-width:520px) {
  :root { --type-h1:48px; --type-h2:30px; --type-text:16px; --space-5:64px; }
  .container { width:calc(100% - 32px); }
  .events-list { gap:var(--space-1); margin-right:calc(var(--space-1) * -1); }
  .events-list article { flex-basis:84vw; min-height:370px; padding:var(--space-2); }
}

/* No ad-hoc type sizes: every label uses the body scale unless it is H1 or H2. */
body * { font-size:var(--type-text)!important; }
h1 { font-size:var(--type-h1)!important; }
h2 { font-size:var(--type-h2)!important; }

/* Structural cleanup after the typography reset. */
h1 *,h2 * { font-size:inherit!important; line-height:inherit!important; letter-spacing:inherit!important; }
.header.container { height:128px; }
.wordmark img { width:128px; }
.header .header-button { min-height:48px; padding:0 20px; }
.header-actions { gap:12px; }
.header-socials { display:flex; align-items:center; gap:8px; }
.header-socials a { width:36px; height:36px; display:grid; place-items:center; border:1px solid rgba(255,253,247,.72); border-radius:50%; color:var(--paper); text-decoration:none; transition:background .2s,color .2s; }
.header-socials img { display:block; width:18px; height:18px; object-fit:contain; }
.header-socials a:hover { background:var(--paper); color:var(--teal-deep); }
.hero-grid { min-height:640px; }
.hero-title { max-width:640px; font-size:clamp(38px,3.7vw,58px)!important; line-height:.96; letter-spacing:-.055em; }
.hero-title-kicker { color:var(--paper); font-size:52%!important; font-weight:500!important; letter-spacing:.04em!important; }
.hero-title-red { color:var(--red); }
.hero-title-sun { color:var(--sun); }
.hero-art { overflow:hidden; }
.hero-art img { clip-path:inset(0 0 10px 0); margin-bottom:-10px; }
.scroll-note { display:none; }

.about-stats { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-3); }
.about-stats > div { display:flex; flex-direction:column; gap:8px; min-width:140px; }
.about-stats strong { color:var(--red); font-size:var(--type-h1)!important; line-height:1!important; }
.about-stats span { font-size:var(--type-text)!important; }
.cta-child-card figcaption strong { font-size:var(--type-h2)!important; }

.marquee { width:100%; overflow:hidden; margin-top:var(--space-4); padding:18px 0; white-space:nowrap; }
.marquee-track { display:flex; width:max-content; gap:74px; will-change:transform; animation:marquee-slide 20s linear infinite!important; }
.marquee span { display:inline-block; font-size:var(--type-h2)!important; letter-spacing:-.04em; }
@keyframes marquee-slide { from { transform:translateX(0); } to { transform:translateX(-50%); } }

@media (min-width:901px) {
  .header.container { height:128px; }
  .wordmark img { width:128px; }
  .header .header-button { min-height:48px; padding:0 20px; }
}
@media (max-width:900px) { .header .header-socials { display:none!important; } }
@media (max-width:520px) { .about-stats { gap:var(--space-1); }.about-stats > div { min-width:110px; } }

/* Final visual refinements. */
.header-socials a { border:0; }
.hero-meta > div:last-child { flex-direction:column; align-items:flex-start; gap:8px; }
.hero-meta > div:first-child b { color:var(--sun); font-size:var(--type-h2)!important; line-height:1; }
.hero-meta > div:first-child span { font-weight:800; }
.hero-meta > div:last-child b { font-size:var(--type-h2)!important; line-height:1; }
.hero-meta > div:last-child span { display:block; }

.events-list article { flex-basis:350px; min-height:0; aspect-ratio:1; background-size:cover,cover; background-position:center,center; }
.events-list article:nth-child(6n+1) { background-image:linear-gradient(180deg,rgba(58,22,32,.04) 20%,rgba(58,22,32,.88) 100%),url("assets/bolafest/events/event-01.png"); }
.events-list article:nth-child(6n+2) { background-image:linear-gradient(180deg,rgba(58,22,32,.04) 20%,rgba(58,22,32,.88) 100%),url("assets/bolafest/events/event-02.png"); }
.events-list article:nth-child(6n+3) { background-image:linear-gradient(180deg,rgba(58,22,32,.04) 20%,rgba(58,22,32,.88) 100%),url("assets/bolafest/events/event-03.png"); }
.events-list article:nth-child(6n+4) { background-image:linear-gradient(180deg,rgba(58,22,32,.04) 20%,rgba(58,22,32,.88) 100%),url("assets/bolafest/events/event-04.png"); }
.events-list article:nth-child(6n+5) { background-image:linear-gradient(180deg,rgba(58,22,32,.04) 20%,rgba(58,22,32,.88) 100%),url("assets/bolafest/events/event-05.png"); }
.events-list article:nth-child(6n) { background-image:linear-gradient(180deg,rgba(58,22,32,.04) 20%,rgba(58,22,32,.88) 100%),url("assets/bolafest/events/event-06.png"); }

.footer-shell { grid-template-columns:1fr 1fr; min-height:420px; }
.footer-promo { justify-content:center; }
.footer-promo .wordmark { margin-bottom:var(--space-2); }
.footer-promo h1 { max-width:420px; margin:0; color:var(--red); }
.footer-contacts { display:flex; flex-direction:column; justify-content:center; gap:var(--space-2); padding:52px clamp(34px,5vw,82px); }
.footer-contacts h2 { margin:0; color:var(--red); }
.footer-contacts p,.footer-contacts a { display:flex; flex-direction:column; gap:8px; margin:0; color:var(--red); text-decoration:none; }
.footer-contacts span { font-weight:800; letter-spacing:.06em; }
.footer-contacts .socials { margin-top:var(--space-1); }
.footer-contacts .socials a { width:var(--control-height); height:var(--control-height); display:grid; place-items:center; border:1.5px solid var(--red); border-radius:50%; }
.footer-contacts .socials img { width:22px; height:22px; object-fit:contain; }
@media (max-width:900px) { .footer-contacts { min-height:360px; padding:38px 25px; border-top:1px dashed rgba(239,44,41,.5); }.events-list article { flex-basis:min(310px,82vw); } }

/* Header metadata and programme date hierarchy. */
.hero-meta { flex-direction:column; align-items:flex-start; gap:12px; }
.hero-meta > i { display:none; }
.hero-meta > div:last-child { flex-direction:row; align-items:center; gap:14px; }
.hero-meta > div:last-child b { font-size:var(--type-text)!important; }
.hero-meta > div:last-child span { max-width:360px; }
.program .day-card summary > span { font-size:14px!important; letter-spacing:.1em; }
.program .day-card b { font-size:var(--type-h1)!important; line-height:.9; }
.program .day-card strong { font-size:var(--type-text)!important; }

/* Footer navigation and unframed social icons. */
.footer-contacts .footer-main-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 28px; width:100%; padding:0 0 var(--space-2); border-bottom:1px dashed rgba(239,44,41,.5); color:var(--red); font-family:Montserrat,sans-serif; }
.footer-contacts .footer-main-nav a { display:block; color:inherit; }
.footer-contacts .socials a { border:0; }

/* Full-width festival introduction, aligned as one clear reading column. */
.about .split-layout { display:block; }
.about .section-heading h1 { width:100%; }
.about-copy { max-width:none; padding-top:var(--space-3); }

/* Hero date and venue alignment. */
.hero-meta > div:first-child { width:100%; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; }
.hero-meta > div:first-child b { align-self:flex-start; }
.hero-meta > div:first-child span { display:block; width:auto; padding-top:3px; line-height:1.35; letter-spacing:.08em; }
.hero-meta .hero-venue { width:100%; display:block; }
.hero-meta .hero-venue span { display:block; width:100%; max-width:none; }

/* Contact controls remain legible without outlines. */
.header-socials { gap:12px; }
.header-socials a { width:44px; height:44px; }
.header-socials img { width:28px; height:28px; }
.footer-contacts .socials { gap:16px; }
.footer-contacts .socials a { width:52px; height:52px; }
.footer-contacts .socials img { width:30px; height:30px; }

/* Round every corner of the footer panel. */
.footer-shell { border-radius:18px; }
.site-footer { padding-bottom:24px; }

/* Updated information architecture: participants and the BoLaBu award. */
.header nav { gap:22px; font-size:11px; }
.participants-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 26px; margin:44px 0 0; padding:0; list-style:none; border-top:1px solid rgba(58,22,32,.22); }
.participants-list li { display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid rgba(58,22,32,.18); font-size:var(--type-text)!important; }
.participants-list b { font-weight:800; }
.participants-list span { color:var(--red); white-space:nowrap; }
.award { background:var(--sun); color:var(--ink); }
.award-grid { display:grid; grid-template-columns:42% 58%; gap:70px; align-items:start; }
.award .section-heading h1 { color:var(--red); }
.award-copy { max-width:720px; padding-top:44px; font-size:var(--type-text)!important; line-height:1.65; }
.award-intro { margin-bottom:28px; color:var(--ink); font-size:24px!important; font-weight:700; line-height:1.35; }
.award-facts { display:flex; gap:48px; margin:32px 0; }
.award-facts div { display:flex; flex-direction:column; gap:8px; }
.award-facts strong { color:var(--red); font-size:var(--type-h1)!important; line-height:.85; }
.award-facts span { font-weight:700; line-height:1.25; }
.award-link { display:inline-flex; align-items:center; gap:14px; margin-top:22px; padding:15px 20px; border-radius:99px; background:var(--red); color:var(--paper); font-size:var(--type-text)!important; font-weight:800; letter-spacing:.05em; }
.award-link span { font-size:22px!important; }
@media (max-width:900px) { .header nav { gap:18px; }.participants-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.award-grid { grid-template-columns:1fr; gap:0; }.award-copy { padding-top:0; } }
@media (max-width:520px) { .participants-list { grid-template-columns:1fr; margin-top:30px; }.participants-list li { font-size:14px!important; }.award-intro { font-size:20px!important; }.award-facts { gap:26px; }.award-facts strong { font-size:54px!important; } }

/* Quiet, editorial visual direction: one background and concentrated brand accents. */
:root { --site-background:#f5f5f1; --site-surface:#ffffff; }
body { background:var(--site-background); color:var(--ink); }
.hero,.about,.program,.headliners,.award,.cta { background:var(--site-background)!important; color:var(--ink); }
.section,.cta { border-top:1px solid rgba(58,22,32,.15); }
.hero { min-height:780px; }
.hero .header { width:min(1360px,calc(100% - 48px)); height:104px; padding:0 22px; border:1px solid rgba(58,22,32,.15); border-top:0; background:rgba(255,255,255,.88); box-shadow:0 8px 28px rgba(58,22,32,.05); }
.header nav { gap:20px; color:var(--ink); font-size:11px; }
.header nav a:hover { color:var(--red); }
.header .wordmark { margin-left:-8px; padding:9px 13px; background:var(--site-surface); border-right:1px solid rgba(58,22,32,.12); }
.header .wordmark img { width:148px; }
.header-socials a { background:var(--site-surface); }
.hero-grid { min-height:650px; }
.hero-title-kicker { color:var(--ink); }
.hero-meta { color:var(--ink); }
.hero-meta > i { background:rgba(58,22,32,.25); }
.hero-art { filter:drop-shadow(0 16px 30px rgba(58,22,32,.11)); }
.hero-art img { mix-blend-mode:normal; border-radius:10px; }
.about-copy .intro,.award-intro { color:var(--red); }
.about-stats strong,.award-facts strong { color:var(--red); }
.program .day-card { border:1px solid rgba(58,22,32,.14); border-radius:4px; box-shadow:none; }
.program .day-card.current { background:var(--ink); }
.program .day-card:not(.current):hover { background:var(--site-surface); }
.headliners { background:var(--site-background)!important; }
.headliners-title,.section-topline { margin-bottom:48px; }
.speaker-card,.speaker-card .speaker-copy { border-radius:4px; }
.participants-list { border-color:rgba(58,22,32,.22); }
.participants-list li { border-color:rgba(58,22,32,.16); }
.award-link { border-radius:3px; box-shadow:none; }
.cta { min-height:420px; }
.cta h1 { color:var(--ink); }
.cta-button { border-radius:3px; background:var(--red); color:var(--paper); }
.cta-child-card { border-color:var(--site-surface); box-shadow:10px 10px 0 rgba(58,22,32,.12); border-radius:4px 4px 0 0; }
.site-footer { padding:0 22px 24px; background:var(--site-background); color:var(--ink); }
.footer-shell { min-height:460px; border:1px solid rgba(58,22,32,.15); border-radius:0 0 4px 4px; background:var(--site-surface); }
.footer-promo { border-color:rgba(58,22,32,.15); }
.footer-promo h1,.footer-contacts h2,.footer-contacts p,.footer-contacts a,.footer-main-nav { color:var(--ink); }
.footer-main-nav { border-color:rgba(58,22,32,.16); }
.footer-contacts span { color:var(--red); }
.footer-bottom { color:var(--ink); }
@media (max-width:900px) { .hero .header { width:calc(100% - 32px); height:82px; padding:0 14px; }.header .wordmark img { width:118px; }.header .wordmark { padding:7px 9px; }.hero { min-height:900px; } }
@media (max-width:520px) { .site-footer { padding:0 16px 16px; }.hero .header { width:calc(100% - 24px); }.hero-title-kicker { font-size:46%!important; } }

/* Typography uses the dark green from the hero artwork instead of red. */
.hero-title-red,
.about-copy .intro,
.about-stats strong,
.award .section-heading h1,
.award-intro,
.award-facts strong,
.participants-list span,
.speaker-card .speaker-copy span,
.program .day-card summary em,
.program .day-schedule time,
.footer-contacts span,
.header nav a:hover { color:var(--teal-deep)!important; }
.program .day-card:not(.current):hover summary > span,
.program .day-card:not(.current):hover summary strong,
.program .day-card:not(.current):hover summary p { color:var(--teal-deep); }

/* Readability pass: body copy is increased, while programme dates regain hierarchy. */
:root { --type-text:19px; }
.header nav { font-size:16px!important; }
.program .day-card b { font-size:clamp(42px,3.6vw,56px)!important; }
@media (max-width:520px) { :root { --type-text:18px; }.header nav { font-size:16px!important; }.program .day-card b { font-size:44px!important; } }

/* Layout refinements requested after the readability pass. */
.header nav { font-size:14px!important; }
.hero-title { line-height:1.1; }
.about-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.about-stats > div { min-height:190px; justify-content:space-between; padding:22px; border:1px solid rgba(8,122,112,.35); border-radius:4px; background:var(--site-surface); }
.about-stats strong { line-height:.85!important; }
.about-stats span { max-width:150px; color:var(--ink); font-weight:700; line-height:1.25; }
.program .day-card.current summary em { color:var(--paper)!important; }
.award-jury { margin-top:var(--space-5); padding-top:var(--space-3); border-top:1px solid rgba(58,22,32,.16); }
.award-jury h2 { margin-bottom:var(--space-3); color:var(--teal-deep); }
.participants-list li:nth-child(1) span::before { content:"🇪🇬"; }.participants-list li:nth-child(2) span::before,.participants-list li:nth-child(11) span::before { content:"🇬🇪"; }.participants-list li:nth-child(3) span::before { content:"🇭🇺"; }.participants-list li:nth-child(4) span::before,.participants-list li:nth-child(23) span::before { content:"🇺🇸"; }.participants-list li:nth-child(5) span::before,.participants-list li:nth-child(14) span::before { content:"🇩🇪"; }.participants-list li:nth-child(6) span::before,.participants-list li:nth-child(19) span::before { content:"🇰🇿"; }.participants-list li:nth-child(7) span::before { content:"🇦🇿"; }.participants-list li:nth-child(8) span::before { content:"🇦🇲"; }.participants-list li:nth-child(9) span::before { content:"🇫🇷"; }.participants-list li:nth-child(10) span::before,.participants-list li:nth-child(26) span::before { content:"🇬🇷"; }.participants-list li:nth-child(12) span::before { content:"🇱🇻"; }.participants-list li:nth-child(13) span::before { content:"🇭🇷"; }.participants-list li:nth-child(15) span::before { content:"🇵🇱 🇳🇱"; }.participants-list li:nth-child(16) span::before { content:"🇱🇧"; }.participants-list li:nth-child(17) span::before,.participants-list li:nth-child(18) span::before { content:"🇧🇪"; }.participants-list li:nth-child(20) span::before { content:"🇰🇬"; }.participants-list li:nth-child(21) span::before { content:"🇺🇳"; }.participants-list li:nth-child(22) span::before { content:"🇨🇭"; }.participants-list li:nth-child(24) span::before { content:"🇬🇧"; }.participants-list li:nth-child(25) span::before { content:"🇹🇯"; }.participants-list li:nth-child(27) span::before { content:"🇪🇸"; }
.participants-list span::before { margin-right:8px; font-style:normal; }
@media (max-width:760px) { .about-stats { grid-template-columns:1fr; }.about-stats > div { min-height:140px; }.award-jury { margin-top:var(--space-4); } }

.participants-bios { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 24px; margin-top:28px; }
.participants-bios details { border-top:1px solid rgba(58,22,32,.18); padding:14px 0; }
.participants-bios summary { display:flex; justify-content:space-between; gap:16px; cursor:pointer; font-weight:800; }
.participants-bios summary span { color:var(--teal-deep); font-weight:600; white-space:nowrap; }
.participants-bios details:nth-child(1) summary span::before { content:"🇪🇬"; }.participants-bios details:nth-child(2) summary span::before,.participants-bios details:nth-child(11) summary span::before { content:"🇬🇪"; }.participants-bios details:nth-child(3) summary span::before { content:"🇭🇺"; }.participants-bios details:nth-child(4) summary span::before,.participants-bios details:nth-child(23) summary span::before { content:"🇺🇸"; }.participants-bios details:nth-child(5) summary span::before,.participants-bios details:nth-child(14) summary span::before { content:"🇩🇪"; }.participants-bios details:nth-child(6) summary span::before,.participants-bios details:nth-child(19) summary span::before { content:"🇰🇿"; }.participants-bios details:nth-child(7) summary span::before { content:"🇦🇿"; }.participants-bios details:nth-child(8) summary span::before { content:"🇦🇲"; }.participants-bios details:nth-child(9) summary span::before { content:"🇫🇷"; }.participants-bios details:nth-child(10) summary span::before,.participants-bios details:nth-child(26) summary span::before { content:"🇬🇷"; }.participants-bios details:nth-child(12) summary span::before { content:"🇱🇻"; }.participants-bios details:nth-child(13) summary span::before { content:"🇭🇷"; }.participants-bios details:nth-child(15) summary span::before { content:"🇵🇱 🇳🇱"; }.participants-bios details:nth-child(16) summary span::before { content:"🇱🇧"; }.participants-bios details:nth-child(17) summary span::before,.participants-bios details:nth-child(18) summary span::before { content:"🇧🇪"; }.participants-bios details:nth-child(20) summary span::before { content:"🇰🇬"; }.participants-bios details:nth-child(21) summary span::before { content:"🇺🇳"; }.participants-bios details:nth-child(22) summary span::before { content:"🇨🇭"; }.participants-bios details:nth-child(24) summary span::before { content:"🇬🇧"; }.participants-bios details:nth-child(25) summary span::before { content:"🇹🇯"; }.participants-bios details:nth-child(27) summary span::before { content:"🇪🇸"; }
.participants-bios summary span::before { margin-right:8px; }
.participants-bios p { margin:13px 0 4px; line-height:1.55; }
.award-jury-list { display:grid; gap:0; border-top:1px solid rgba(58,22,32,.18); }
.award-jury-list article { display:grid; grid-template-columns:180px minmax(0,1fr); gap:28px; align-items:start; padding:26px 0; border-bottom:1px solid rgba(58,22,32,.18); }
.award-jury-list img { display:block; width:180px; aspect-ratio:1; object-fit:cover; object-position:center 20%; border-radius:3px; }
.award-jury-list article > div { position:relative; }
.award-jury-list h3 { margin:0 0 8px; font-family:Montserrat,sans-serif; font-size:28px!important; letter-spacing:-.05em; }
.award-jury-list b { display:block; margin-bottom:14px; color:var(--teal-deep); }
.award-jury-list p { max-width:820px; margin:0; line-height:1.55; }
@media (max-width:760px) { .participants-bios { grid-template-columns:1fr; }.award-jury-list article { grid-template-columns:110px minmax(0,1fr); gap:16px; }.award-jury-list img { width:110px; }.award-jury-list h3 { font-size:20px!important; } }

/* Programme and participants: readable light surfaces and clear disclosure affordances. */
.program .day-card.current,
.program .day-card.current:hover { background:var(--site-surface)!important; color:var(--ink)!important; }
.program .day-card.current summary > span,
.program .day-card.current summary strong,
.program .day-card.current summary p { color:var(--ink)!important; }
.program .day-card.current summary em,
.program .day-card.current:hover summary em,
.program .day-card.current .venue,
.program .day-card.current .day-schedule time { color:var(--teal-deep)!important; }
.program .day-card.current .day-schedule,
.program .day-card.current .day-schedule article { border-color:rgba(58,22,32,.16)!important; }
.participants-bios { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.participants-bios details { padding:0; border:1px solid rgba(8,122,112,.28); border-radius:4px; background:var(--site-surface); transition:border-color .2s,box-shadow .2s; }
.participants-bios details:hover,.participants-bios details[open] { border-color:var(--teal-deep); box-shadow:0 8px 18px rgba(8,122,112,.08); }
.participants-bios summary { position:relative; min-height:66px; align-items:center; padding:16px 54px 16px 18px; }
.participants-bios summary::after { content:"↓"; position:absolute; right:18px; top:50%; transform:translateY(-50%); color:var(--teal-deep); font-size:22px; font-weight:800; line-height:1; transition:transform .2s; }
.participants-bios details[open] summary::after { transform:translateY(-50%) rotate(180deg); }
.participants-bios p { padding:0 18px 18px; margin:0; border-top:1px solid rgba(8,122,112,.16); padding-top:15px; }
@media (max-width:760px) { .participants-bios { grid-template-columns:1fr; }.participants-bios summary { min-height:60px; } }

@media (min-width:761px) { .program .day-card summary > span { font-size:22px!important; } }
