:root { --ink:#17263a; --paper:#f5f2ea; --surface:#fffdf8; --brass:#a77628; --brass-dark:#73501a; --green:#33483b; --muted:#4b5969; --line:#c9c1b1; --board:#14221d; --board-line:#425149; --board-text:#f0dfb1; --radius:3px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.55 "IBM Plex Sans",sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
:focus-visible { outline:3px solid var(--brass); outline-offset:4px; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:"Source Serif 4",serif; font-weight:600; letter-spacing:-.015em; }
.wrap { width:min(1080px,calc(100% - 48px)); margin:auto; }
.skip-link { position:absolute; z-index:10; left:1rem; top:-5rem; padding:.75rem 1rem; background:var(--ink); color:var(--surface); }
.skip-link:focus { top:1rem; }
.site-header { border-bottom:1px solid var(--line); background:var(--paper); }
.header-content { display:flex; min-height:72px; align-items:center; justify-content:space-between; gap:1.25rem; }
.logo { font:700 1.35rem "Source Serif 4",serif; text-decoration:none; white-space:nowrap; }
.logo span { color:var(--brass-dark); }
nav { display:flex; flex-wrap:wrap; gap:1.4rem; }
nav a { color:var(--muted); font:.78rem "IBM Plex Mono",monospace; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; }
nav a:hover { color:var(--brass-dark); text-decoration:underline; text-underline-offset:.3em; }
.menu-toggle { display:none; border:1px solid var(--ink); background:transparent; color:var(--ink); padding:.5rem .65rem; font:.75rem "IBM Plex Mono",monospace; text-transform:uppercase; }
.hero { padding:5rem 0; }
.hero-grid { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:3.6rem; }
.eyebrow { margin-bottom:.8rem; color:var(--brass-dark); font:500 1rem/1.25 "IBM Plex Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.light { color:#f0dfb1; }
h1 { max-width:11ch; font-size:clamp(2.7rem,5.4vw,4.4rem); line-height:1.01; }
.intro { max-width:49ch; margin:1.5rem 0 0; font-size:1.13rem; }
.meta { display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; margin:1.7rem 0 0; padding:0; color:var(--muted); font:.77rem "IBM Plex Mono",monospace; list-style:none; }
.meta li::before { margin-right:.5rem; color:var(--brass-dark); content:"•"; }
.meta li:first-child::before { content:""; margin:0; }
.button { display:inline-block; margin-top:2rem; padding:.9rem 1.3rem; border:1px solid var(--ink); border-radius:var(--radius); background:var(--ink); color:var(--surface); font:500 .8rem "IBM Plex Mono",monospace; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; }
.button:hover { border-color:var(--brass-dark); background:var(--brass-dark); }
.film-card { overflow:hidden; border:1px solid var(--line); background:var(--surface); box-shadow:0 18px 38px -32px rgba(18,34,52,.7); }
.film-frame { min-height:276px; padding:2rem; background:linear-gradient(135deg,#1d3442,#29493c); color:#fffdf8; text-align:center; display:grid; place-content:center; }
.film-frame h2 { max-width:23ch; margin:1rem auto 0; font-size:clamp(1.3rem,2.6vw,1.8rem); line-height:1.15; }
.play-mark { display:grid; width:3.8rem; height:3.8rem; margin:auto; place-items:center; border:1px solid rgba(255,255,255,.8); border-radius:50%; font-size:1.2rem; }
.film-card > p { margin:0; padding:1rem 1.1rem; color:var(--muted); font-size:.9rem; }
.section { padding:4.75rem 0; }
.section-alt { border-block:1px solid var(--line); background:var(--surface); }
.section-heading { max-width:59ch; }
.section-heading h2 { max-width:21ch; font-size:clamp(1.95rem,3.5vw,2.7rem); line-height:1.1; }
.section-heading > p:not(.eyebrow) { margin-top:1.1rem; }
.journey { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin:2.3rem 0 0; padding:0; counter-reset:journey; list-style:none; }
.journey li { position:relative; padding:1.25rem 1.2rem 1.25rem 3.7rem; border:1px solid var(--line); background:var(--paper); }
.journey li::before { position:absolute; top:1.25rem; left:1.2rem; display:grid; width:1.75rem; height:1.75rem; place-items:center; border:1px solid var(--brass); border-radius:50%; color:var(--brass-dark); content:counter(journey); counter-increment:journey; font:.75rem "IBM Plex Mono",monospace; }
.journey strong,.journey span { display:block; }
.journey span { margin-top:.35rem; color:var(--muted); font-size:.9rem; }
.fit-grid,.facilitator-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; margin-top:2.2rem; }
.fit-card { padding:1.65rem; border-top:3px solid var(--brass); background:var(--paper); }
.fit-card h3 { font:600 1rem "IBM Plex Mono",monospace; letter-spacing:.03em; text-transform:uppercase; }
.fit-card ul { margin:1rem 0 0; padding:0; list-style:none; }
.fit-card li { padding:.55rem 0; border-top:1px solid var(--line); }
.programme { background:var(--board); color:var(--board-text); }
.programme .eyebrow { color:#e6c87e; }
.programme .section-heading h2 { color:var(--surface); }
.programme .section-heading > p:not(.eyebrow) { color:#d4dcd5; }
.agenda { margin-top:2.25rem; border:1px solid var(--board-line); }
.agenda-row { display:grid; grid-template-columns:5.5rem minmax(0,1fr) 14rem; gap:1.25rem; align-items:start; padding:1rem 1.2rem; border-top:1px solid var(--board-line); }
.agenda-row:first-child { border-top:0; }
.time { margin:0; color:#e6c87e; font:500 .8rem "IBM Plex Mono",monospace; }
.agenda-row h3 { margin:0; color:var(--surface); font-family:"IBM Plex Sans",sans-serif; font-size:1rem; letter-spacing:0; }
.agenda-row div p,.outcome { margin:.2rem 0 0; color:#c5d0c8; font-size:.9rem; }
.outcome { font-style:italic; }
.outcomes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; margin-top:2.2rem; }
.outcomes-grid article { border-top:2px solid var(--brass); padding-top:1rem; }
.outcomes-grid h3 { margin-bottom:.5rem; font-family:"IBM Plex Sans",sans-serif; font-size:1.05rem; letter-spacing:0; }
.outcomes-grid p { color:var(--muted); }
.boundary { margin-top:2rem; padding:1.25rem 1.45rem; border-left:4px solid var(--green); background:#e1ebe2; }
.boundary h3 { margin-bottom:.4rem; font-size:1.1rem; }
.boundary p { margin:0; }
.facilitator-grid article { padding-top:1rem; border-top:2px solid var(--brass); }
.facilitator-grid h3 { margin-bottom:.25rem; font-size:1.4rem; }
.role { color:var(--brass-dark); font:500 .77rem "IBM Plex Mono",monospace; letter-spacing:.07em; text-transform:uppercase; }
.sessions-section { border-top:1px solid var(--line); }
.sessions-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-top:2.2rem; }
.session-card { padding:1.45rem; border:1px solid var(--line); background:var(--surface); }
.session-card h3 { margin-bottom:1rem; font-size:1.4rem; }
.session-card dl { margin:0; }
.session-card dl div { display:grid; grid-template-columns:4.8rem 1fr; gap:.8rem; padding:.55rem 0; border-top:1px solid var(--line); }
dt { color:var(--muted); font:.72rem "IBM Plex Mono",monospace; letter-spacing:.05em; text-transform:uppercase; }
dd { margin:0; }
.site-footer { padding:2rem 0; border-top:1px solid var(--line); color:var(--muted); font:.77rem "IBM Plex Mono",monospace; text-align:center; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; } }
@media (prefers-color-scheme:dark) { :root { --ink:#e9e5db; --paper:#15231d; --surface:#1d2d25; --brass:#e0b05a; --brass-dark:#efc875; --green:#b6d1b9; --muted:#c5d0c8; --line:#526259; } .site-header { background:#15231d; } .fit-card,.journey li { background:#1d2d25; } .section-alt { background:#1a2922; } .film-card { background:#1d2d25; } .film-frame,.film-frame h2 { color:#fffdf8; } .boundary { background:#284235; } .session-card { background:#1d2d25; } .button { color:#15231d; background:#e9e5db; border-color:#e9e5db; } .button:hover { background:var(--brass); border-color:var(--brass); } .menu-toggle { border-color:var(--ink); color:var(--ink); } }
@media (max-width:760px) { .hero { padding:3.5rem 0; } .hero-grid,.journey,.fit-grid,.facilitator-grid,.outcomes-grid,.sessions-grid { grid-template-columns:1fr; } .agenda-row { grid-template-columns:4.3rem 1fr; } .outcome { grid-column:2; } .menu-toggle { display:block; } nav { display:none; position:absolute; top:72px; right:24px; left:24px; z-index:2; flex-direction:column; gap:0; padding:.75rem 1rem; border:1px solid var(--line); background:var(--paper); box-shadow:0 14px 28px -24px rgba(0,0,0,.7); } nav.is-open { display:flex; } nav a { padding:.65rem 0; } }
@media (max-width:480px) { .wrap { width:min(100% - 34px,1080px); } .section { padding:3.5rem 0; } .agenda-row { padding:1rem; } }
