:root { --ink:#06131c; --paper:#fffdf5; --yellow:#ffda47; --green:#087f60; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter,Arial,sans-serif; }
img,video { display:block; max-width:100%; }
a { color:inherit; }
button { font:inherit; }
.section-shell { width:min(100% - 48px,1200px); margin-inline:auto; }
.eyebrow { margin:0 0 24px; color:var(--green); font:500 11px/1.5 "DM Mono",monospace; text-transform:uppercase; }
h1,h2,h3,p,figure { margin-top:0; }
h1,h2 { font-family:Anton,Impact,sans-serif; font-weight:400; text-transform:uppercase; }
h2 { font-size:clamp(40px,6vw,78px); line-height:1.02; }
p { line-height:1.65; }
.site-header { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:18px max(24px,calc((100vw - 1200px)/2)); background:var(--ink); color:white; }
.site-brand { font-family:Anton,Impact,sans-serif; font-size:24px; text-decoration:none; white-space:nowrap; }
.site-brand span { color:#20bd89; }
.site-brand small { font:500 10px "DM Mono",monospace; vertical-align:top; }
.site-header nav { display:flex; align-items:center; gap:28px; font-size:13px; font-weight:700; }
.site-header nav > a { text-decoration:none; }
.site-header nav > a:hover { color:var(--yellow); }
.language-switch { display:flex; padding:3px; border:1px solid #53606a; }
.language-switch button { min-width:34px; min-height:30px; border:0; background:transparent; color:white; cursor:pointer; font-size:11px; font-weight:800; }
.language-switch button[aria-pressed="true"] { background:white; color:var(--ink); }
.hero { position:relative; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); min-height:660px; overflow:hidden; background:var(--ink); color:white; }
.hero-content { position:relative; z-index:1; align-self:center; width:min(100%,760px); margin-left:max(24px,calc((100vw - 1200px)/2)); padding:58px 48px 72px 0; }
.hero .eyebrow { color:var(--yellow); }
.hero-logo { width:84px; height:84px; margin-bottom:24px; background:var(--yellow); }
.hero-logo img { width:100%; height:100%; object-fit:contain; }
.location { display:flex; align-items:center; gap:10px; margin-bottom:20px; font:500 12px "DM Mono",monospace; text-transform:uppercase; }
.location img { width:30px; height:20px; border:1px solid #ffffff55; }
h1 { margin-bottom:18px; font-size:clamp(84px,10vw,164px); line-height:.94; }
h1 span { color:var(--yellow); }
.hero-lede { max-width:680px; margin-bottom:12px; font-size:clamp(23px,2.4vw,34px); font-weight:700; line-height:1.2; }
.hero-copy { max-width:610px; margin-bottom:28px; color:#d3dde1; font-size:16px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:52px; padding:14px 18px; font-size:12px; font-weight:800; text-decoration:none; text-transform:uppercase; }
.button-primary { background:var(--yellow); color:var(--ink); }
.button-primary:hover { background:#ffe375; }
.button-outline { border:1px solid #829099; color:white; }
.button-outline:hover { border-color:white; background:#ffffff12; }
.hero-media { min-width:0; min-height:100%; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:55% center; }
.overview { display:grid; grid-template-columns:1fr 1fr; gap:80px; padding-block:110px; }
.overview-copy { max-width:620px; font-size:18px; }
.overview-copy p + p { margin-top:24px; }
.programmes { padding-block:100px; background:#e9eee9; }
.programmes .section-heading { max-width:850px; }
.programme-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:54px; border-top:1px solid #bdcbc3; }
.programme-list > div { display:grid; grid-template-columns:70px minmax(0,1fr); gap:8px 18px; padding:28px 20px 28px 0; border-bottom:1px solid #bdcbc3; }
.programme-list > div:nth-child(odd) { border-right:1px solid #bdcbc3; }
.programme-list > div:nth-child(even) { padding-left:24px; }
.programme-list span { grid-row:span 2; color:var(--green); font:500 12px "DM Mono",monospace; }
.programme-list h3 { margin:0; font-size:20px; }
.programme-list p { margin:0; color:#53615a; font-size:14px; }
.people { padding-block:110px; }
.people-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:50px; }
.people figure { margin:0; }
.people figure img { width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center 24%; filter:grayscale(1); }
.people figcaption { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-top:16px; border-top:4px solid var(--ink); margin-top:8px; }
.people figcaption strong { font-size:20px; }
.people figcaption span { color:#6b777c; font:500 12px "DM Mono",monospace; }
.invitation { padding-block:100px; background:var(--ink); color:white; }
.invitation-layout { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.invitation .eyebrow { color:var(--yellow); }
.invitation-copy { max-width:580px; color:#d1dce0; font-size:18px; }
.invitation-copy p + p { margin-top:22px; }
.invitation-copy strong { display:block; margin-top:30px; color:white; font-size:15px; }
.invitation-copy strong span { color:var(--yellow); }
.videos { padding-block:110px; }
.video-grid { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); align-items:end; gap:24px; margin-top:50px; }
.video-grid figure { margin:0; }
.video-frame { overflow:hidden; background:#182c39; }
.video-frame.vertical { width:min(100%,350px); }
.video-frame.vertical video { width:100%; aspect-ratio:9/16; }
.video-frame.horizontal video { width:100%; aspect-ratio:16/9; }
.video-frame video { object-fit:cover; }
.video-grid figcaption { margin-top:13px; font-size:14px; font-weight:800; }
.final-cta { padding-block:96px; background:#e5eddf; }
.final-cta h2 { max-width:880px; margin-bottom:28px; }
.site-footer { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:30px max(24px,calc((100vw - 1200px)/2)); background:var(--ink); color:white; font-size:12px; font-weight:700; }
.site-footer a:hover { color:var(--yellow); }
@media(max-width:900px) {
  .hero { grid-template-columns:1fr; }
  .hero-content { width:calc(100% - 48px); margin-inline:24px; padding:60px 0 48px; }
  .hero-media { height:320px; }
  .hero-media img { object-position:center 42%; }
  .overview,.invitation-layout { grid-template-columns:1fr; gap:20px; }
  .overview,.people,.videos { padding-block:76px; }
}
@media(max-width:600px) {
  .section-shell { width:min(100% - 36px,1200px); }
  .site-header { flex-wrap:wrap; padding:14px 18px; }
  .site-brand { font-size:18px; }
  .site-brand small { font-size:8px; }
  .site-header nav { width:100%; justify-content:space-between; gap:10px; }
  .site-header nav > a { font-size:11px; line-height:1.2; }
  .hero-content { width:calc(100% - 36px); margin-inline:18px; padding-top:48px; }
  .hero-logo { width:70px; height:70px; }
  h1 { font-size:clamp(72px,18vw,108px); overflow-wrap:anywhere; }
  .hero-copy { font-size:15px; }
  .hero-media { height:260px; }
  .hero-actions { display:grid; }
  .programme-list,.people-grid,.video-grid { grid-template-columns:1fr; }
  .programme-list > div,.programme-list > div:nth-child(even) { padding:24px 0; border-right:0; }
  .programme-list > div { grid-template-columns:44px 1fr; }
  .people-grid { gap:38px; }
  .invitation { padding-block:76px; }
  .invitation-copy { font-size:16px; }
  .video-frame.vertical { width:min(100%,340px); }
  .site-footer { padding-inline:18px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
