/* Scheme A is the default. Set COLOR_SCHEME = 'B' at the top of main.js for Scheme B. */
:root{--paper:#FAF8F3;--paper-warm:#F3EEE4;--ink:#110A11;--muted:#6B655C;--muted:color-mix(in srgb,var(--ink) 52%,var(--paper) 48%);--accent:#B81703;--glow:#EF9781;--deep:#1E4D7A;--bg:var(--paper);--fg:var(--ink);--gutter:clamp(24px,5.5vw,112px);--display:'Baskervville';--body:'EB Garamond';--title-size:clamp(2.35rem,5.6vw,5.5rem);--subtitle-size:clamp(1.05rem,1.55vw,1.45rem);--body-size:clamp(1rem,1.05vw,1.14rem)}
:root[data-color-scheme="B"]{--accent:#7A2304;--glow:#BAD7AD;--deep:#110A11}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:6px}button,input{}button,a,input{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{text-decoration-color:var(--accent)}p,h1,h2,h3{margin:0}h1,h2,h3{font-optical-sizing:auto;font-feature-settings:'liga' 1,'onum' 1}img{max-width:100%;display:block}section{position:relative}button,a{touch-action:manipulation}a{display:inline-flex;align-items:center;min-height:44px}em{} .skip-link{position:absolute;top:12px;left:24px;z-index:20;transform:translateY(-200%);padding:12px 20px;background:var(--paper);color:var(--ink);}.skip-link:focus{transform:none}
.header{position:absolute;z-index:5;top:0;width:100%;padding:35px var(--gutter);display:flex;align-items:flex-start;justify-content:space-between;gap:30px}.wordmark{display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;min-width:180px}.wordmark-name{}.wordmark-sub{margin-top:3px}.header nav{display:flex;gap:clamp(20px,3vw,58px);align-items:center}.header nav a{text-decoration:none}.nav-signup{border-bottom:1px solid currentColor}.hero{min-height:850px;height:100svh;max-height:1400px;display:flex;align-items:center;isolation:isolate;overflow:hidden}.hero-copy{padding:80px var(--gutter) 0;position:relative;z-index:2;width:100%;pointer-events:none}.eyebrow{}.hero .eyebrow{margin-bottom:34px}.hero h1{max-width:850px}.hero h1 em{color:var(--accent)}.scroll-cue{position:absolute;bottom:50px;left:var(--gutter);height:66px;width:1px;background:var(--accent);transform-origin:top;animation:draw 1.6s .2s both}@keyframes draw{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.section-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;padding-left:var(--gutter);padding-right:var(--gutter)}.question{padding-top:25vh;padding-bottom:28vh;row-gap:25vh}.question-part{grid-column:2/12}.q-0{grid-column:3/12}.q-1{grid-column:1/10;max-width:16ch}.q-2{grid-column:5/13;}.q-3{grid-column:3/13;color:var(--accent);}
.craft{padding-top:18vh;padding-bottom:25vh;row-gap:50px;background:var(--deep);color:var(--paper)}.craft h2{grid-column:2/12;margin-bottom:6vh}.craft-part{grid-column:6/13;max-width:52ch;}.c-0{grid-column:2/11;max-width:30ch;}.c-1{grid-column:3/12;margin:12vh 0;}.c-1 .line:nth-child(2){padding-left:1.2em}.c-1 .line:nth-child(3){padding-left:2em}.c-1 .line:nth-child(4){padding-left:.5em}.c-5{margin-top:6vh;font-style:italic;}.c-6{grid-column:3/12;margin:14vh 0 10vh}.c-7{grid-column:6/13}.c-8{grid-column:6/13;}
.founders{padding:20vh 0 18vh}.founders>h2{margin-left:calc(var(--gutter) + 7.6%);margin-bottom:10vh}.founder{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center;padding:0 var(--gutter);position:relative}.founder-copy{padding:35px 0}.founder-ruth .founder-copy{grid-column:7/13;grid-row:1}.founder h3{margin-bottom:23px}.role{max-width:40ch;margin-bottom:30px}.bio{max-width:48ch}.text-link{gap:16px;margin-top:22px;color:var(--accent);text-decoration:none;border-bottom:1px solid currentColor}.text-link span{}.founder-edward{margin-top:16vh}.founder-edward .founder-copy{grid-column:2/7;grid-row:1}
.signup{padding-top:18vh;padding-bottom:15vh;row-gap:70px}.signup-title{grid-column:2/13}.signup-title .wordmark-name{}.signup-title .wordmark-sub{margin-top:8px}.closing-statement{margin-top:65px}.signup-content{grid-column:6/12;max-width:650px}.coming{margin-bottom:52px}form{}.email-field label{display:block;margin-bottom:16px;}input[type=email]{width:100%;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;border-radius:0;padding:10px 0 18px;}input::placeholder{color:inherit;opacity:.62}.consent{display:flex;align-items:flex-start;gap:14px;margin-top:28px;cursor:pointer;min-height:44px}.consent input{flex-shrink:0;width:20px;height:20px;accent-color:var(--accent);margin:2px 0 0}.privacy-link{margin-left:34px}button{display:block;border:0;border-radius:1px;background:var(--accent);color:var(--paper);padding:19px 28px;min-height:58px;cursor:pointer;margin-top:30px;transition:background .2s}button:hover{background:transparent}button:disabled{cursor:wait;opacity:.7}.error{color:var(--accent);}.error:not(:empty){margin-top:12px}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#form-status{margin-top:24px}#form-status:empty{display:none}footer{padding:50px var(--gutter);display:flex;justify-content:space-between;gap:30px;align-items:flex-start}footer p{padding-top:12px}footer div{display:flex;gap:30px}footer a{text-decoration:none}footer>a{text-decoration:underline}.privacy-page .header{position:relative}.privacy-page main{padding:12vh var(--gutter);max-width:1100px}.privacy-page h1{margin-bottom:45px}.privacy-page main p{overflow-wrap:anywhere}
.js .craft{background:transparent;color:inherit}.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}.js .reveal.visible,.js.reveal-fallback .reveal{opacity:1;transform:none}.line{display:block}.line:nth-child(2){transition-delay:.08s}.line:nth-child(3){transition-delay:.16s}.line:nth-child(4){transition-delay:.24s}
@media(min-width:1800px){.hero-copy{padding-left:8vw}.hero h1{}.section-grid{column-gap:35px}.founder .bio{}}
@media(max-width:1050px){.header nav{gap:22px}.header .desktop-nav:first-child{max-width:150px;}.hero{min-height:780px}.hero h1{}.craft-part{grid-column:5/13}.c-0{grid-column:2/12}.c-1,.c-6{grid-column:2/13}.signup-content{grid-column:5/13}.founder{column-gap:18px}.founder-edward .founder-copy{grid-column:1/7}.founder h3{}footer div{flex-direction:column;gap:0}}
@media(max-width:700px){:root{--gutter:24px}.header{padding-top:25px;gap:14px;align-items:center}.wordmark{min-width:0}.header .wordmark-name{}.header .wordmark-sub{}.header nav{max-width:145px;}.header .desktop-nav{display:none}.nav-signup{padding:5px 0}.hero{min-height:780px;max-height:none;align-items:flex-start;height:100svh}.hero-copy{padding-top:185px}.hero .eyebrow{margin-bottom:26px;}.hero h1{}.scroll-cue{bottom:42px;height:48px}.section-grid{column-gap:12px}.question{padding-top:18vh;padding-bottom:20vh;row-gap:20vh}.question-part,.q-0,.q-1,.q-2,.q-3{grid-column:1/13}.q-0{}.q-1{}.q-2{}.q-3{}.craft{padding-top:13vh;padding-bottom:18vh;row-gap:32px}.craft h2{grid-column:1/13;margin-bottom:3vh}.craft-part{grid-column:2/13;}.c-0{grid-column:1/13;}.c-1{grid-column:1/13;margin:8vh 0;}.c-1 .line:nth-child(3){padding-left:1.1em}.c-5{}.c-6{grid-column:1/13;margin:8vh 0 6vh}.c-7,.c-8{grid-column:2/13}.c-8{}.founders{padding-top:14vh;padding-bottom:12vh;overflow:hidden}.founders>h2{margin-left:var(--gutter);margin-bottom:5vh}.founder{display:flex;flex-direction:column;gap:0;padding:0 var(--gutter)}.founder-copy{width:100%;padding:5px 0 0}.founder h3{margin-bottom:20px}.role{margin-bottom:24px}.bio{}.founder-edward{margin-top:9vh}.signup{padding-top:10vh;padding-bottom:8vh;row-gap:45px}.signup-title,.signup-content{grid-column:1/13}.signup-title .wordmark-name{}.signup-title .wordmark-sub{}.closing-statement{margin-top:45px;}.coming{margin-bottom:35px}button{width:100%;padding:18px 15px}footer{display:flex;flex-wrap:wrap;gap:18px 30px;padding-top:30px;padding-bottom:35px}footer p{width:100%}footer div{gap:0}footer>a{align-self:flex-end}.privacy-page main{padding-top:7vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.scroll-cue{transform:none}}

/* Supplied primary logo: show only the original central logo on the brand board. */
/* Give the logo a local backdrop that follows the page's changing color. */
.header .wordmark{min-width:0;background:var(--bg);isolation:isolate}
.brand-logo{display:block;position:relative;width:150px;aspect-ratio:520/495;overflow:hidden;mix-blend-mode:darken}
.brand-logo img{position:absolute;left:-57.6923077%;top:-28.2828283%;width:215.7692308%;max-width:none;height:auto}
@media(max-width:700px){.brand-logo{width:120px}.header{align-items:flex-start}.header nav{padding-top:22px}}

/* Text-led layout without photography. */
.hero{min-height:680px;height:85svh;max-height:1050px}
.founder-ruth .founder-copy,.founder-edward .founder-copy{grid-column:2/11;grid-row:auto}
.founder .bio{max-width:60ch}
.founder-edward{margin-top:8vh}
@media(max-width:700px){.hero{min-height:660px;height:85svh}.hero-copy{padding-top:210px}}

/* Exactly three type roles; responsive layout rules above do not alter typography. */
body{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;font-weight:400}
button,input{font:inherit}
h1,h2,h3,em{font-weight:400}
.hero h1,.q-1,.q-3,.craft h2,.c-1,.c-5,.c-6,.c-8,.founder h3,.wordmark-name,.privacy-page h1{font-family:var(--display);font-size:var(--title-size);line-height:1.06}
.eyebrow,.header nav,.wordmark-sub,.q-0,.q-2,.c-0,.c-2,.c-7,.role,.text-link,.closing-statement,.coming,form,.email-field label,input[type=email],#form-status,button{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34}
.c-3,.c-4,.bio,.consent,.privacy-link,.error,#form-status.error,footer,.privacy-page main p{font-family:var(--body);font-size:var(--body-size);line-height:1.62}
.header nav,.eyebrow,.wordmark-sub,.email-field label,button{text-transform:uppercase;letter-spacing:.15em}
.craft h2{text-transform:none;letter-spacing:normal}
.role{text-transform:none;letter-spacing:normal;color:var(--muted)}
.closing-statement,.c-8{font-style:italic}
.hero .eyebrow,.header nav a:hover,.nav-signup{color:var(--accent)}
.c-1 .line:last-child{color:var(--glow)}
.signup{background:var(--deep);color:var(--paper)}
.craft,.signup{--focus-color:var(--paper)}
a:focus-visible,button:focus-visible,input:focus-visible{outline-color:var(--focus-color,var(--accent))}
.craft a:hover,.signup a:hover{color:var(--paper);text-decoration-color:var(--paper)}
.signup .error{color:var(--paper)}
.consent input{accent-color:var(--paper)}
button{background:transparent;color:var(--paper);border:0;border-bottom:1px solid var(--paper);border-radius:0;padding:19px 0;transition:border-width .2s}
button::after{content:' →'}
button:hover{background:transparent;border-bottom-width:2px}
::selection{background:var(--ink);color:var(--paper)}

/* Photography frames. Each .photo is a quiet tonal plane until an <img> is placed inside it (see comments in index.html). The plane takes its tint from the surrounding text colour, so it works on paper and on the deep scroll colour alike. */
.photo{position:relative;margin:0;overflow:hidden;aspect-ratio:var(--ratio,4/5);color:inherit;background-color:rgba(17,10,17,.06);background-color:color-mix(in srgb,currentColor 7%,transparent);background-image:linear-gradient(158deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,0) 46%),linear-gradient(0deg,color-mix(in srgb,currentColor 5%,transparent),transparent 60%)}
.photo::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--focus,50% 50%)}
.photo:has(img){background:none}.photo:has(img)::after{display:none}
.photo figcaption{position:absolute;left:0;bottom:0;padding:14px 18px;font-family:var(--body);font-size:var(--body-size);font-style:italic;color:var(--paper)}

/* Photo 1: the meeting — wide, bleeding off the right edge after "Daar begint VASALIS." */
.photo--meeting{--ratio:3/2;grid-column:4/13;margin-right:calc(-1 * var(--gutter));margin-top:-8vh}
/* Photo 2: the room — a tall frame beside the explanatory craft text. */
.photo--room{--ratio:3/4;grid-column:2/5;grid-row:4/span 3;align-self:start;margin-top:.4em}
/* Photos 3–4: founder portraits, alternating sides. */
.photo--portrait{--ratio:4/5}
.founder{align-items:end}
.founder-ruth .photo{grid-column:2/6;grid-row:1}.founder-ruth .founder-copy{grid-column:7/12;grid-row:1}
.founder-edward .photo{grid-column:8/12;grid-row:1}.founder-edward .founder-copy{grid-column:2/7;grid-row:1}
.founder-edward{margin-top:14vh}
.founder .founder-copy{padding-bottom:0}

/* Frames open like a slow curtain as they enter; the existing reveal observer adds .visible. */
.js .photo.reveal{opacity:1;transform:none;clip-path:inset(0 0 14% 0);transition:clip-path 1.3s cubic-bezier(.2,.7,.2,1)}
.js .photo.reveal img{transform:scale(1.05);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.js .photo.reveal.visible,.js.reveal-fallback .photo.reveal{clip-path:inset(0)}
.js .photo.reveal.visible img,.js.reveal-fallback .photo.reveal img{transform:none}

@media(max-width:1050px){.photo--room{grid-column:1/5}.founder-ruth .photo{grid-column:1/6}.founder-edward .photo{grid-column:8/13}.founder-edward .founder-copy{grid-column:1/7}}
@media(max-width:700px){
.photo--meeting{--ratio:4/5;grid-column:1/13;margin:-4vh calc(-1 * var(--gutter)) 0}
.photo--room{grid-column:3/13;grid-row:auto;margin:2vh 0}
.founder .photo{width:78%;margin-bottom:28px}
.founder-edward .photo{align-self:flex-end}
.founder .founder-copy{padding-top:0}
}
@media(prefers-reduced-motion:reduce){.js .photo.reveal{clip-path:none}.js .photo.reveal img{transform:none}}
/* Photo refinements after review: warmer planes on paper, larger room frame, founder names on one line. */
.photo{background-color:rgba(107,101,92,.14);background-color:color-mix(in srgb,var(--muted) 15%,transparent)}
.craft .photo{background-color:rgba(250,248,243,.08);background-color:color-mix(in srgb,currentColor 8%,transparent)}
.photo--room{grid-column:2/6}
.founder-ruth .founder-copy{grid-column:7/13}
.founder-edward .founder-copy{grid-column:2/8}.founder-edward .photo{grid-column:9/13}
@media(max-width:1050px){.photo--room{grid-column:1/5}.founder-ruth .photo{grid-column:1/6}.founder-edward .photo{grid-column:8/13}.founder-edward .founder-copy{grid-column:1/8}}
@media(max-width:700px){.photo--room{grid-column:3/13}.founder{align-items:stretch}.founder .photo{align-self:flex-start}.founder-edward .photo{align-self:flex-end}}
@media(max-width:700px){.photo--meeting{--ratio:1/1}}

/* VASALIS encounter: two gestures, one shared space. */
.encounter-art{position:fixed;left:0;bottom:2vh;width:100%;height:58vh;z-index:0;pointer-events:none;overflow:visible;color:var(--accent);opacity:0}
.encounter-art path{fill:none;stroke:currentColor;stroke-width:1.25;vector-effect:non-scaling-stroke;stroke-linecap:round}
.encounter-art .encounter-other{color:var(--deep);stroke:currentColor}
main,footer{position:relative;z-index:1}
.hero-heading-line{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.hero-heading-line>span{display:block}
@keyframes encounter-title{from{opacity:0;transform:translateY(108%)}to{opacity:1;transform:translateY(0)}}
@keyframes encounter-label{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.motion-intro .hero-heading-line>span{animation:encounter-title 1.5s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.12s + var(--line-index)*.25s)}
.motion-intro .hero .eyebrow{animation:encounter-label 1s .1s both}
.js .reveal{transition-duration:1.05s;transition-timing-function:cubic-bezier(.16,1,.3,1)}
.js .photo.reveal{clip-path:inset(0 0 18% 0);transition:clip-path 1.5s cubic-bezier(.16,1,.3,1)}
.js .photo.reveal.visible,.js.reveal-fallback .photo.reveal{clip-path:inset(0)}
.js .photo.reveal img{transition-duration:1.8s}
@media(max-width:700px){.encounter-art{height:240px;bottom:0}.encounter-art path{stroke-width:1}}
@media(prefers-reduced-motion:reduce){.encounter-art{display:none}.motion-intro .hero-heading-line>span,.motion-intro .hero .eyebrow{animation:none}.js .photo.reveal{clip-path:none}.js .photo.reveal img{transform:none}}

/* Keep the encounter in the whitespace around the measured text. */
.encounter-art{top:0;bottom:auto;height:100%;overflow:hidden}
@media(max-width:700px){.encounter-art{height:100%;bottom:auto}}

/* Opening-only artwork: its position is owned by the page, not the viewport. */
.hero .encounter-art{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;z-index:0}

/* Workshops share the existing three type roles and twelve-column rhythm. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.workshop-link{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;text-transform:uppercase;letter-spacing:.15em;text-decoration:none;border-bottom:1px solid currentColor;padding:12px 0;min-height:44px;align-self:flex-start}
.hero-workshops{pointer-events:auto;margin-top:30px;color:var(--accent)}
.workshops{padding:12vh var(--gutter) 15vh}
.workshops>h2,.workshop-opening h1{font-family:var(--display);font-size:var(--title-size);line-height:1.06;font-weight:400}
.workshops-intro{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;max-width:52ch;margin-top:32px}
.workshop-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:64px}
.workshop-card{display:flex;flex-direction:column;border-top:1px solid currentColor;padding-top:28px;min-width:0}
.workshop-card h3{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;font-weight:400;margin-bottom:12px}
.workshop-subtitle,.workshop-date{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34}
.workshop-card .workshop-subtitle{min-height:2.68em;margin-bottom:24px}
.workshop-date{margin-top:24px}
.workshop-meta,.workshop-summary{font-family:var(--body);font-size:var(--body-size);line-height:1.62}
.workshop-meta{margin-top:12px}
.workshop-summary{margin:28px 0 32px;max-width:42ch}
.workshop-card .workshop-link{margin-top:auto}
.interest-options{margin:32px 0 8px;padding:0;border:0;min-width:0}
.interest-options legend{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;margin-bottom:18px}
.interest-options label{display:flex;gap:14px;align-items:center;min-height:44px;font-family:var(--body);font-size:var(--body-size);line-height:1.62;cursor:pointer}
.interest-options input{width:20px;height:20px;margin:0;accent-color:var(--paper);flex-shrink:0}
.workshop-page .header{position:relative}
.workshop-opening{padding:9vh var(--gutter) 8vh;max-width:1200px}
.workshop-opening .eyebrow{color:var(--accent);margin-bottom:28px}
.workshop-opening h1{overflow-wrap:anywhere}
.workshop-opening .workshop-subtitle{margin-top:24px;max-width:40ch}
.workshop-opening .workshop-link{margin-top:32px;color:var(--accent)}
.workshop-opening-quote{margin:4vh var(--gutter) 10vh;padding-left:8.33%;max-width:1000px}
.workshop-opening-quote blockquote{margin:0;font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;font-style:italic}
.workshop-opening-quote blockquote p+p{margin-top:8px}
.workshop-opening-quote figcaption{font-family:var(--body);font-size:var(--body-size);line-height:1.62;margin-top:20px}
.workshop-copy{padding:0 var(--gutter);max-width:1100px;margin-left:8.33%}
.workshop-copy section{margin-bottom:9vh;max-width:65ch}
.workshop-copy h2,.workshop-registration h2,.other-workshops h2{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;font-weight:400;margin-bottom:30px}
.workshop-copy p,.workshop-copy li,.workshop-copy dl{font-family:var(--body);font-size:var(--body-size);line-height:1.62}
.workshop-copy p{margin-bottom:22px}
.workshop-copy blockquote{margin:36px 0;padding-left:24px;border-left:1px solid currentColor;font-style:italic}
.workshop-copy blockquote p{margin:0}
.workshop-copy .workshop-pause{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;font-style:italic;margin:40px 0}
.workshop-copy ul{padding-left:1.15em;margin:24px 0}
.workshop-copy li{padding-left:8px;margin-bottom:14px}
.workshop-practical dl{margin:0}
.workshop-practical dl div{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:14px 0;border-top:1px solid color-mix(in srgb,currentColor 25%,transparent)}
.workshop-practical dd{margin:0}
.workshop-registration{background:var(--deep);color:var(--paper);padding:9vh var(--gutter);--focus-color:var(--paper)}
.workshop-registration>h2,.workshop-registration>form{max-width:650px;margin-left:8.33%}
.registration-field{margin-bottom:28px}
.registration-field label{display:block;margin-bottom:14px;font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;text-transform:uppercase;letter-spacing:.15em}
.registration-field input{font-family:var(--display);font-size:var(--subtitle-size);line-height:1.34;width:100%;min-width:0;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;border-radius:0;padding:10px 0 18px}
.workshop-registration .error{color:var(--paper)}
#registration-status{font-family:var(--body);font-size:var(--body-size);line-height:1.62;margin-top:24px}
#registration-status:empty{display:none}
.other-workshops{padding:9vh var(--gutter);display:flex;flex-wrap:wrap;gap:24px 48px}
.other-workshops h2,.other-workshops>.text-link{width:100%;margin-bottom:0}
@media(min-width:701px) and (max-width:1150px){.header nav{flex-wrap:wrap;justify-content:flex-end;gap:10px 20px;max-width:calc(100% - 180px)}}
@media(max-width:700px){
.header nav{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:180px;width:calc(100% - 134px)}
.header .workshop-nav{padding:0;min-height:44px}
.hero-workshops{max-width:100%;font-size:var(--subtitle-size)}
.workshops{padding-top:9vh;padding-bottom:9vh}
.workshop-cards{grid-template-columns:1fr;gap:48px;margin-top:40px}
.workshop-card .workshop-subtitle{min-height:0;margin-bottom:12px}
.workshop-summary{max-width:none}
.workshop-opening{padding-top:7vh;padding-bottom:5vh}
.workshop-opening-quote{padding-left:0;margin-top:4vh;margin-bottom:8vh}
.workshop-copy{margin-left:0;max-width:none}
.workshop-copy section{margin-bottom:8vh}
.workshop-copy blockquote{padding-left:18px}
.workshop-practical dl div{grid-template-columns:1fr;gap:4px}
.workshop-registration>h2,.workshop-registration>form{margin-left:0}
.other-workshops{flex-direction:column;align-items:flex-start;gap:24px}
}

/* Quiet layout: shared left edge, clearer scale and compact reading groups. */
:root{--section-size:clamp(1.5rem,2.4vw,2.2rem);--grid-gap:24px;--content-left:calc(var(--gutter) + (100vw - var(--gutter)*2 + var(--grid-gap))/12)}
.hero-copy{padding-left:var(--content-left)}
.question,.craft{column-gap:var(--grid-gap);row-gap:24px;padding-top:4vh;padding-bottom:4vh;grid-auto-rows:auto}
.question-group,.craft-group,.question .question-part,.craft .craft-part,.craft h2{grid-column:2/12;min-width:0;width:100%;max-width:60ch}
.question-group,.craft-group{display:flex;flex-direction:column;gap:22px}
.question-group .question-part,.craft-group .craft-part{margin:0;max-width:60ch}
.question .q-1{max-width:22ch}
.question .q-3{margin-top:4px}
.craft h2{margin:0 0 8px}
.craft .c-0{max-width:60ch}
.craft .c-1,.craft .c-6{margin:1.5vh 0}
.craft .c-1 .line:nth-child(n){padding-left:0}
.craft .c-5{margin-top:10px;max-width:24ch}
.craft .c-7,.craft .c-8{margin:0;max-width:60ch}
.photo:not(:has(img)){display:none}
.photo--meeting,.photo--room{grid-row:auto}
.workshops{padding:5vh var(--gutter) 9vh var(--content-left)}
.workshops-intro{max-width:60ch;margin-top:24px}
.founders>h2{margin-left:var(--content-left)}
.question-part,.craft-part,.bio,.workshop-summary,.interest-options label,.privacy-page main p{font-size:var(--subtitle-size)}
.question .q-1,.craft .c-5,.hero h1{font-size:var(--title-size);line-height:1.06}
main h2,.question .q-3,.craft .c-1,.craft .c-6,.craft .c-8,.founder h3,.workshop-card h3,.wordmark-name,.workshop-copy h2,.workshop-registration h2,.other-workshops h2,.workshop-copy .workshop-pause{font-size:var(--section-size);line-height:1.24}
.question .q-0,.question .q-2,.craft .c-0,.craft .c-2,.craft .c-3,.craft .c-4,.craft .c-7{font-size:var(--subtitle-size);line-height:1.5}
.workshop-opening h1,.privacy-page h1{font-size:var(--section-size);line-height:1.24}
.workshop-meta,.consent,.privacy-link,.error,footer,#registration-status{font-size:var(--body-size);line-height:1.62}
.workshop-summary{line-height:1.5}
.workshop-cards{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px;row-gap:16px;margin-top:40px}
.workshop-card{position:relative;display:grid;grid-template-rows:subgrid;grid-row:span 6;padding-top:24px;row-gap:16px;border-top:1px solid currentColor;transition:border-color .2s}
.workshop-card h3{margin:0}
.workshop-card .workshop-subtitle{min-height:2.68em;margin:0;align-self:start}
.workshop-card .workshop-date{margin:0;align-self:start}
.workshop-card .workshop-meta{margin:0;align-self:start}
.workshop-card .workshop-summary{margin:4px 0 8px;max-width:60ch;align-self:start}
.workshop-card .workshop-link{margin:0;justify-self:start;color:var(--accent)}
.workshop-card .workshop-link::after{content:'';position:absolute;inset:0;z-index:1}
.workshop-card:hover{border-top-color:var(--accent)}
.workshop-card:has(a:focus-visible){outline:2px solid var(--accent);outline-offset:6px}
.workshop-card .workshop-link:hover{text-decoration:none}
.workshop-opening{max-width:none;padding:6vh var(--gutter) 5vh var(--content-left)}
.workshop-opening .workshop-subtitle{max-width:60ch}
.workshop-top-practical{display:flex;align-items:flex-end;gap:24px 48px;flex-wrap:wrap;margin-top:28px}
.workshop-top-practical .workshop-date{margin:0}
.workshop-top-practical .workshop-meta{margin-top:8px}
.workshop-top-practical .workshop-link{margin:0}
.workshop-opening-quote{padding:0;margin:2vh var(--gutter) 7vh var(--content-left);max-width:62ch}
.workshop-copy{padding:0 var(--gutter) 0 var(--content-left);margin:0;max-width:none}
.workshop-copy section{max-width:62ch;margin-bottom:56px}
.workshop-copy p,.workshop-copy li,.workshop-copy dl{font-size:var(--subtitle-size);line-height:1.62}
.workshop-copy h2{margin-top:48px;margin-bottom:22px}
.workshop-copy .workshop-pause{font-style:italic;margin:38px 0}
.workshop-registration{padding-left:var(--content-left)}
.workshop-registration>form,.workshop-registration .registration-heading{margin-left:0;max-width:62ch}
.registration-heading{margin-bottom:36px}
.registration-heading h2{margin:0 0 28px}
.registration-title{font-size:var(--section-size);line-height:1.24}
.registration-heading .workshop-date{margin-top:18px}
.registration-heading .workshop-meta{margin-top:8px}
.other-workshops{padding-left:var(--content-left)}
@media(min-width:1800px){:root{--grid-gap:35px}}
@media(max-width:700px){
:root{--content-left:var(--gutter);--grid-gap:12px}
.question,.craft{padding-top:4vh;padding-bottom:4vh;row-gap:26px}
.question-group,.craft-group,.question .question-part,.craft .craft-part,.craft h2{grid-column:1/13;max-width:100%}
.question-group,.craft-group{gap:20px}
.craft .c-1,.craft .c-6{margin:2vh 0}
.craft .c-1 .line:nth-child(n){padding-left:0}
.hero-copy{padding-top:230px;padding-left:var(--content-left)}
.workshops{padding-top:5vh;padding-bottom:8vh}
.workshop-cards{display:grid;grid-template-columns:1fr;gap:40px}
.workshop-card{grid-row:auto;grid-template-rows:auto;gap:16px}
.workshop-card .workshop-subtitle{min-height:0;margin:0}
.workshop-card .workshop-subtitle:empty{display:none}
.workshop-card .workshop-date,.workshop-card .workshop-meta,.workshop-card .workshop-summary{margin:0}
.workshop-opening{padding-top:5vh;padding-bottom:4vh}
.workshop-opening-quote{margin-top:2vh;margin-bottom:6vh}
.workshop-top-practical{align-items:flex-start;gap:20px}
.workshop-copy h2{margin-top:38px;margin-bottom:20px}
.workshop-registration{padding-left:var(--gutter)}
.workshop-practical dl div{gap:4px}
}
/* Explicit section selectors keep the earlier cascade from enlarging headings. */
.craft h2,.workshops>h2,.founders>h2,.signup h2{font-size:var(--section-size);line-height:1.24}
.workshop-opening-quote figcaption,.email-field label,.registration-field label{font-size:var(--subtitle-size)}
@media(min-width:701px) and (max-width:1050px){.founder-ruth .photo{grid-column:2/6}.founder-edward .founder-copy{grid-column:2/8}.founder-edward .photo{grid-column:9/13}}

/* Header logo: transparent high-resolution Variant 2. Keep the existing header footprint. */
.brand-logo{width:200px;aspect-ratio:268/82;mix-blend-mode:normal}
.brand-logo img{left:-6.3218391%;top:-20.442442%;width:113.4796238%;max-width:none;height:auto}
@media(max-width:700px){.brand-logo{width:140px}}

/* Reuse the same transparent logo in white on the blue signup block. */
.signup-logo .brand-logo{width:280px;max-width:100%}
.signup-logo .brand-logo--white img{filter:brightness(0) invert(1)}
@media(max-width:700px){.signup-logo .brand-logo{width:240px}}

/* Mobile refinements: aligned portraits and navigation below the logo. */
@media(max-width:700px){
.header{flex-direction:column;align-items:flex-start;gap:12px}
.header .wordmark{min-width:0}
.header nav{width:100%;max-width:none;padding-top:0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px 18px}
.header nav a{font-size:.875rem;line-height:1.4;letter-spacing:.02em;text-transform:none;white-space:nowrap;min-height:44px}
.founder-edward .photo{align-self:flex-start}
}

/* Keep workshop cards in chronological source order on small screens. */
@media(max-width:700px){
  .workshop-cards{grid-template-columns:minmax(0,1fr);grid-auto-flow:row}
  .workshop-card{order:0;grid-column:auto;grid-row:auto}
}

/* Spambescherming (Cloudflare Turnstile), alleen zichtbaar als een sitekey is ingesteld. */
.cf-turnstile{margin:1rem 0}
