/* Next Act. A black stage, a white page. Montserrat only; the script is the logo's and stays in images. */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/montserrat-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/montserrat-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/montserrat-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/montserrat-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/montserrat-latin-700-normal.woff2) format('woff2')}

:root{
  --black:#000;--white:#f2f0e9;--ink:#141414;--body:#3b3b3b;--muted:#5a5a5a;--rule:#d6d3cb;
  --on-black:#e6e6e6;--on-black-muted:#a8a8a8;--rule-dark:#2b2b2b;
  --llamas:#1B8F72;--imaginators:#3D77B8;--storymakers:#B98A1E;--players:#7B2440;--company:#6E7378;--collaborators:#6E51B2;
  --font:'Montserrat','Century Gothic',sans-serif;
  --gutter:clamp(20px,5vw,80px);
  --col:minmax(0,1fr);
  --ease:cubic-bezier(.22,.8,.2,1);
  --ease-exit:cubic-bezier(.4,0,1,1);
  --head-h:76px;
}
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .25s var(--ease-exit) forwards}
::view-transition-new(root){animation:vt-in .55s var(--ease) forwards}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.5;font-weight:400;color:var(--body);background:#f2f0e9 url(paper.webp) repeat;background-size:900px 900px}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0 0 1em;max-width:62ch}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:1px}
::selection{background:#000;color:#fff}
.dark ::selection{background:#fff;color:#000}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type scale, 1.25 ratio from 17px */
h1,h2,h3{font-weight:700;color:var(--ink);line-height:1.08;letter-spacing:-.022em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(35px,6.4vw,84px)}
h2{font-size:clamp(28px,4.2vw,52px)}
h3{font-size:clamp(20px,1.8vw,24px);letter-spacing:-.01em;line-height:1.2}
.display{font-weight:300}
.display strong{font-weight:700}
.lede{font-size:clamp(18px,1.45vw,21px);font-weight:300;line-height:1.4;color:var(--ink);max-width:36ch}
.small{font-size:14.5px;color:var(--muted)}
.dark{background:var(--black);color:var(--on-black)}
.dark h1,.dark h2,.dark h3,.dark .lede{color:#fff}
.dark .small{color:var(--on-black-muted)}
.dark p{color:var(--on-black)}

/* section label: a hairline, then the words. sentence case, never caps */
.label{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:500;color:var(--muted);margin:0 0 28px;letter-spacing:.01em}
.label::before{content:"";width:40px;height:1px;background:currentColor;flex:none}
.dark .label{color:var(--on-black-muted)}

/* layout */
.shell{padding-inline:var(--gutter);max-width:1440px;margin-inline:auto}
.sec{padding-block:clamp(72px,10vw,150px)}
.sec.tight{padding-block:clamp(56px,7vw,100px)}
.two{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.two.even{grid-template-columns:1fr 1fr}
.two.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
@media(max-width:860px){.two,.two.even,.two.flip{grid-template-columns:1fr;gap:40px}}
.sticky{position:sticky;top:calc(var(--head-h) + 24px)}
@media(max-width:860px){.sticky{position:static}}
.rule{border:0;border-top:1px solid var(--rule);margin:0}
.dark .rule{border-top-color:var(--rule-dark)}

/* buttons: a bar of ink that fills on hover */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:13px 28px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:#fff;text-decoration:none;text-align:center;font:500 15px/1.25 var(--font);letter-spacing:.005em;cursor:pointer;transition:color .2s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:#fff;transform:translateY(101%);transition:transform .25s var(--ease);z-index:-1}
.btn:hover::before{transition-duration:.2s}
.btn:hover,.btn:focus-visible{color:var(--ink)}
.btn:focus-visible{outline-color:var(--ink)}
:is(.dark,.hero) .btn:focus-visible{outline-color:#fff}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn.outline{background:transparent;color:var(--ink)}
.btn.outline::before{background:var(--ink)}
.btn.outline:hover,.btn.outline:focus-visible{color:#fff}
:is(.dark,.hero) .btn{background:#fff;color:#000;border-color:#fff}
:is(.dark,.hero) .btn::before{background:#000}
:is(.dark,.hero) .btn:hover,:is(.dark,.hero) .btn:focus-visible{color:#fff}
:is(.dark,.hero) .btn.outline{background:transparent;color:#fff}
:is(.dark,.hero) .btn.outline::before{background:#fff}
:is(.dark,.hero) .btn.outline:hover,:is(.dark,.hero) .btn.outline:focus-visible{color:#000}
.btn .arrow{width:18px;height:18px;transition:transform .2s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}
.btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.textlink{font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;transition:text-decoration-thickness .15s}
.textlink:hover{text-decoration-thickness:2px}
.dark .textlink{color:#fff}

/* header */
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:#fff;color:#000;border:1px solid #000;padding:14px 20px;font-weight:500;text-decoration:none}
.skip:focus{top:14px}
.site-head{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--head-h);display:flex;align-items:center;color:#fff;transition:background .25s var(--ease),color .25s var(--ease),box-shadow .25s}
.site-head .shell{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-head.scrolled{background:rgba(0,0,0,.72);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);box-shadow:inset 0 -1px 0 rgba(255,255,255,.14)}
.site-head.on-white{color:var(--ink)}
.site-head.on-white.scrolled{background:rgba(242,240,233,.94);box-shadow:0 1px 0 var(--rule)}
.wordmark{display:inline-flex;align-items:center;gap:14px;text-decoration:none;font-weight:700;font-size:15px;letter-spacing:.02em}
.wordmark img{width:40px;height:40px;transition:opacity .3s}
.wordmark .logo-dark{display:none}
.on-white .wordmark .logo-light{display:none}
.on-white .wordmark .logo-dark{display:block}
.nav{display:flex;gap:34px;align-items:center}
.nav a{position:relative;text-decoration:none;font-size:15px;font-weight:500;padding:10px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}
.nav a:hover::after,.nav a[aria-current=page]::after{transform:scaleX(1)}
.nav a.cta{border:1px solid currentColor;padding:12px 20px;margin-left:8px}
.nav a.cta::after{display:none}
.nav a.cta:hover{background:#fff;color:#000}
.on-white .nav a.cta:hover{background:#000;color:#fff}
.nav a.cta[aria-current=page]{background:#fff;color:#000}
.on-white .nav a.cta[aria-current=page]{background:#000;color:#fff}
.menu-btn{display:none;background:none;border:1px solid currentColor;color:inherit;width:52px;height:52px;cursor:pointer;align-items:center;justify-content:center;font:inherit;padding:0}
.menu-btn svg{width:22px;height:22px}
@media(max-width:860px){.nav{display:none}.menu-btn{display:inline-flex}}

/* curtain menu */
.curtain{position:fixed;inset:0;z-index:150;background:#000;color:#fff;display:flex;flex-direction:column;padding:var(--gutter);transform:translateY(-100%);transition:transform .3s var(--ease-exit),visibility 0s .3s;visibility:hidden}
.curtain.open{transform:translateY(0);visibility:visible;transition:transform .45s var(--ease),visibility 0s}
.curtain .top{display:flex;justify-content:space-between;align-items:center;height:var(--head-h);margin-top:calc(-1 * var(--gutter))}
.curtain .close{background:none;border:1px solid #fff;color:#fff;width:52px;height:52px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.curtain .close svg{width:22px;height:22px}
.curtain nav{margin:auto 0;display:flex;flex-direction:column;gap:6px}
.curtain nav a{font-size:clamp(34px,9vw,56px);font-weight:300;letter-spacing:-.02em;line-height:1.1;text-decoration:none;padding:10px 0;display:flex;align-items:center;gap:18px;opacity:0;transform:translateY(12px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.curtain:not(.open) nav a{transition-duration:.15s}
.curtain.open nav a{opacity:1;transform:none}
.curtain.open nav a:nth-child(1){transition-delay:.1s}.curtain.open nav a:nth-child(2){transition-delay:.15s}.curtain.open nav a:nth-child(3){transition-delay:.2s}.curtain.open nav a:nth-child(4){transition-delay:.25s}
.curtain nav a[aria-current=page]{font-weight:700}
.curtain nav a[aria-current=page]::before{content:"";width:28px;height:1px;background:#fff}
.curtain .foot{font-size:14.5px;color:var(--on-black-muted);display:flex;flex-direction:column;gap:6px}
.curtain .foot a{color:#fff}

/* velvet: a faint grain on every black surface */
.dark,.hero,.site-foot{position:relative}
.dark::after,.hero::after,.site-foot::after,.curtain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.045;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%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;mix-blend-mode:screen}
.dark>*,.hero>*,.site-foot>*,.curtain>*{position:relative;z-index:1}
.hero .spot{z-index:0}

/* hero: the stage */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:calc(var(--head-h) + 40px);padding-bottom:clamp(48px,7vh,88px);overflow:hidden;background:#000;color:#fff}
.hero.short{min-height:72svh}
.spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle 540px at var(--sx,62%) var(--sy,42%),rgba(255,255,255,.17),rgba(255,255,255,.05) 38%,transparent 70%)}
.dark>.spot{z-index:0;background:radial-gradient(circle 480px at var(--sx,70%) var(--sy,40%),rgba(255,255,255,.11),rgba(255,255,255,.03) 40%,transparent 70%)}
.hero .mark{position:absolute;right:var(--gutter);top:calc(var(--head-h) + 6vh);width:clamp(120px,16vw,220px);opacity:.1;pointer-events:none}
.hero .mark img{border:1px solid #fff}
.hero .shell{position:relative;width:100%}
.hero::before{content:"";position:absolute;inset:0;background:#000;z-index:3;pointer-events:none;opacity:.75;animation:lights-up .7s var(--ease) .1s forwards}
@keyframes lights-up{to{opacity:0}}
.hero .title{position:relative}
.hero h1,.hero .lit{max-width:14ch;margin:0 0 .45em;color:rgba(255,255,255,.5)}
.hero .lit{position:absolute;inset:0;color:#fff;font-weight:700;line-height:1.08;letter-spacing:-.022em;font-size:clamp(35px,6.4vw,84px);text-wrap:balance;-webkit-mask-image:radial-gradient(circle 400px at var(--sx,60%) var(--sy,50%),#000 0%,#000 25%,transparent 100%);mask-image:radial-gradient(circle 400px at var(--sx,60%) var(--sy,50%),#000 0%,#000 25%,transparent 100%)}
.hero .lit{opacity:0;animation:fade .5s var(--ease) .85s forwards}
.hero .lit .line>span{animation:none;transform:none}
.hero .lede{color:var(--on-black);max-width:42ch;font-weight:300}
.hero .label{color:var(--on-black-muted)}
.line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.line>span{display:block;transform:translateY(110%);animation:rise .7s var(--ease) forwards}
.line:nth-child(2)>span{animation-delay:.08s}.line:nth-child(3)>span{animation-delay:.16s}.line:nth-child(4)>span{animation-delay:.24s}
.hero .in{opacity:0;transform:translateY(14px);animation:fade-up .55s var(--ease) .35s forwards}
.hero .label.in{animation-delay:.15s}
.hero .title~.in{animation-delay:.55s}.hero .title~.in~.in{animation-delay:.62s}.hero .title~.in~.in~.in{animation-delay:.69s}
@keyframes rise{to{transform:translateY(0)}}
@keyframes fade{to{opacity:1}}
@keyframes fade-up{to{opacity:1;transform:none}}
.hero .cue{position:absolute;right:var(--gutter);bottom:clamp(48px,7vh,88px);width:1px;height:64px;background:linear-gradient(#fff,transparent);opacity:0;animation:fade .6s var(--ease) 1s forwards}
@media(max-width:860px){.hero{min-height:0;padding-top:calc(var(--head-h) + 56px);padding-bottom:56px}.hero .cue{display:none}.hero .mark{top:calc(var(--head-h) + 12px);opacity:.12}}

/* trust strip */
.trust{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.trust li{padding:22px 24px 22px 0;font-size:15px;font-weight:500;color:var(--ink);display:flex;gap:14px;align-items:flex-start}
.trust li+li{border-left:1px solid var(--rule);padding-left:24px}
.trust li::before{content:"";width:9px;height:9px;border:1px solid var(--ink);margin-top:8px;flex:none}
@media(max-width:700px){.trust{grid-template-columns:1fr}.trust li+li{border-left:0;border-top:1px solid var(--rule);padding-left:0}}

/* running order (timetable) */
.order{border-top:1px solid var(--ink)}
.order li{display:grid;grid-template-columns:150px 1fr auto;gap:18px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--rule)}
.order time{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;font-size:17px}
.order .who{font-weight:500;color:var(--ink);display:flex;align-items:center;gap:12px}
.order .who .tier i{width:7px;height:7px}
.order .ages{color:var(--muted);font-size:15px;white-space:nowrap}
.order .note{grid-column:2/-1;font-size:14.5px;color:var(--muted);margin:-6px 0 0}
@media(max-width:560px){.order li{grid-template-columns:1fr;gap:4px}.order .note{grid-column:1}}

/* cohort list: six rows, the accent is the only colour on the page */
#cohorts{border-top:1px solid var(--rule)}
.cohorts{border-top:1px solid var(--ink)}
.cohort{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,2fr);gap:clamp(16px,3vw,48px);align-items:start;padding:30px 0;border-bottom:1px solid var(--rule);position:relative;text-decoration:none;color:inherit}
.cohort::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.lit .cohort::before,.cohort:hover::before,.cohort:focus-within::before{transform:scaleX(1)}
.cohort:nth-child(2)::before{transition-delay:.05s}.cohort:nth-child(3)::before{transition-delay:.1s}.cohort:nth-child(4)::before{transition-delay:.15s}.cohort:nth-child(5)::before{transition-delay:.2s}.cohort:nth-child(6)::before{transition-delay:.25s}
.cohort:hover::before,.cohort:focus-within::before{transition-delay:0s;transform:scaleX(1) scaleY(2)}
.cohort h3{margin:0 0 4px;display:flex;align-items:center;gap:12px}
.tier{display:inline-flex;gap:3px;flex:none;align-items:center}
.tier i{width:8px;height:8px;background:var(--ink);display:block}
.tier i.o{background:transparent;border:1px solid var(--ink)}
.dark .tier i{background:#fff}
.dark .tier i.o{background:transparent;border-color:#fff}
.cohort .meta{font-size:15px;color:var(--muted);margin:0}
.cohort .meta b{font-weight:500;color:var(--ink)}
.cohort p{font-size:16px;margin:0}
.cohort .price{text-align:right;font-weight:700;color:var(--ink);font-size:20px;letter-spacing:-.01em;line-height:1.2}
.cohort .price small{display:block;font-weight:400;font-size:14px;color:var(--muted);letter-spacing:0}
.cohort .soon{display:inline-block;margin-top:10px;font-size:14px;font-weight:500;color:var(--ink);border:1px solid var(--ink);padding:5px 10px}
@media(max-width:900px){.cohort{grid-template-columns:1fr;gap:10px}.cohort .price{text-align:left}}

/* values: five plates, each named in text */
.two .lede.aligned{padding-top:.22em}
.plates{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,2vw,28px);margin-top:48px}
.plates figure{margin:0}
.plates img{width:100%;border:1px solid #fff;outline:1px solid #444;outline-offset:4px;transition:outline-color .2s}
.plates figure:hover img,.plates:focus-visible img{outline-color:#fff}
.plates figcaption{margin-top:18px;font-size:14.5px;font-weight:500;color:#fff}

@media(max-width:520px){.plates{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 6px 12px;margin-inline:-6px;scrollbar-width:thin}.plates figure{flex:0 0 46%;scroll-snap-align:start}}

/* founder */
.portrait{position:relative;width:min(100%,420px)}
.portrait img{border:1px solid var(--ink);outline:1px solid var(--ink);outline-offset:6px;filter:grayscale(1) contrast(1.05);transition:filter .3s var(--ease)}
.portrait:hover img{filter:grayscale(0)}
.dark .portrait img{border-color:#fff;outline-color:#fff}
.creds{border-top:1px solid var(--rule);margin-top:28px}
.creds li{padding:14px 0;border-bottom:1px solid var(--rule);display:flex;gap:16px;align-items:flex-start;font-size:16px;color:var(--ink)}
.creds li::before{content:"";width:9px;height:9px;border:1px solid currentColor;margin-top:9px;flex:none}
.dark .creds,.dark .creds li{border-color:var(--rule-dark);color:var(--on-black)}
.quote{font-size:clamp(20px,2vw,26px);font-weight:300;line-height:1.4;color:var(--ink);max-width:30ch;margin:0 0 24px}
.dark .quote{color:#fff}

/* steps: a real sequence, so numbered */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);counter-reset:s;margin-top:48px}
.step{border-top:1px solid var(--ink);padding-top:20px}
.step::before{counter-increment:s;content:counter(s);display:block;font-size:clamp(40px,4vw,56px);font-weight:300;line-height:1;color:var(--ink);margin-bottom:18px}
.step h3{font-size:19px;margin-bottom:8px}
.step p{font-size:15.5px;margin:0}
.dark .step{border-top-color:#fff}
.dark .step::before,.dark .step h3{color:#fff}
.dark .step p{color:var(--on-black)}
@media(max-width:760px){.steps{grid-template-columns:1fr}}

/* closing curtain */
.close-act h2{font-size:clamp(34px,6vw,80px);font-weight:300;max-width:12ch;margin-bottom:.4em}
.close-act .sign{font-size:clamp(17px,1.4vw,20px);color:var(--on-black-muted);max-width:40ch}

/* page intro (inner pages): short black stage */
.intro{background:#000;color:#fff;padding-top:calc(var(--head-h) + clamp(56px,9vw,120px));padding-bottom:clamp(48px,7vw,96px);position:relative;overflow:hidden}
.intro h1,.intro .lit{max-width:16ch}
.intro h1{color:#fff}
.intro .lede{color:var(--on-black)}

/* jump links */
.jumps{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:28px;font-size:15px}
.jumps a{color:#fff;font-weight:500;text-underline-offset:5px;text-decoration-thickness:1px}
.jumps a:hover{text-decoration-thickness:2px}

/* pillars (programmes) */
.pillar{padding-block:clamp(56px,8vw,110px);border-top:1px solid var(--rule)}
.pillar:first-of-type{border-top:0}
.pillar .meta{font-size:15px;color:var(--muted)}
.pricelist{border-top:1px solid var(--ink);margin-top:28px}
.pricelist li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;padding:14px 0;border-bottom:1px solid var(--rule);align-items:baseline;font-size:16px}
.pricelist .k{font-weight:500;color:var(--ink);display:flex;align-items:center;gap:10px}
.pricelist .d{color:var(--muted);font-size:15px}
.pricelist .v{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;min-width:62px;text-align:right}
@media(max-width:560px){.pricelist li{grid-template-columns:1fr auto;row-gap:2px}.pricelist .k{grid-row:1}.pricelist .v{grid-row:1;grid-column:2}.pricelist .d{grid-row:2;grid-column:1/-1;margin:0}}
.capnote{margin-top:16px}

/* booking form */
.form{display:grid;gap:22px;max-width:640px}
.field label{display:block;font-size:14.5px;font-weight:500;color:var(--ink);margin-bottom:8px}
.field label .opt{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-height:54px;padding:14px 16px;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #767676;border-radius:0;transition:border-color .15s}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:2px solid var(--ink);outline-offset:0}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23141414' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}
.form .btn{width:100%}
.hp{position:absolute;left:-9999px}
.after{margin-top:24px;font-size:15px;color:var(--muted);max-width:60ch}
.after b{color:var(--ink);font-weight:500}
.err-summary{border:2px solid var(--ink);padding:18px 20px;margin-bottom:24px;color:var(--ink);scroll-margin-top:calc(var(--head-h) + 16px)}
.err-summary h3{font-size:17px;margin-bottom:8px}
.err-summary ul{display:grid;gap:4px}
.err-summary a{font-weight:500}
.field.invalid{border-left:3px solid var(--ink);padding-left:14px}
.field .err{display:block;font-size:14.5px;font-weight:500;color:var(--ink);margin:0 0 8px}
.field [aria-invalid=true]{border-color:var(--ink);border-width:2px}
.sent{border:1px solid var(--ink);padding:28px;color:var(--ink);scroll-margin-top:calc(var(--head-h) + 16px)}
.sent h3{margin-bottom:8px}
.routes{display:grid;gap:0;border-top:1px solid var(--rule-dark)}
.routes li{padding:22px 0;border-bottom:1px solid var(--rule-dark)}
.routes h3{font-size:17px;margin-bottom:4px;color:#fff}
.routes p{font-size:15px;margin:0 0 6px;color:var(--on-black-muted)}
.routes a{color:#fff;font-weight:500;text-underline-offset:5px}

/* dates */
.dates{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px)}
.dates li{border-top:1px solid var(--ink);padding-top:18px}
.dates b{display:block;font-size:19px;color:var(--ink);margin-bottom:6px;letter-spacing:-.01em}
.dates p{font-size:15.5px;margin:0}
@media(max-width:760px){.dates{grid-template-columns:1fr}}

/* footer */
.site-foot{background:#000;color:var(--on-black);padding-block:clamp(56px,7vw,96px) 32px;font-size:15px}
.site-foot .cols{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,64px)}
.site-foot h2{color:#fff;font-size:14.5px;font-weight:500;margin:0 0 16px;letter-spacing:0}
.site-foot li{padding:5px 0}
a[href^="tel:"]{white-space:nowrap}
.site-foot a{color:#fff;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.site-foot .mark{width:120px;margin-bottom:22px}
.site-foot .mark img{border:1px solid #fff}
.site-foot p{color:var(--on-black-muted);max-width:30ch}
.socials{display:flex;gap:14px;margin-top:18px}
.socials a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--rule-dark);color:#fff;transition:border-color .2s}
.socials a:hover{border-color:#fff}
.socials svg{width:18px;height:18px}
.bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;border-top:1px solid var(--rule-dark);margin-top:56px;padding-top:24px;font-size:14px;color:var(--on-black-muted)}
@media(max-width:860px){.site-foot .cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.site-foot .cols{grid-template-columns:1fr}}

/* lights toggle */
.lights{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:10px;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.lights::before{content:"";width:9px;height:9px;border:1px solid currentColor;background:currentColor}
.lights[aria-pressed=true]::before{background:transparent}
html.still *,html.still *::before,html.still *::after{animation-duration:.001s!important;animation-delay:0s!important;transition-duration:.001s!important}
html.still .line>span{transform:none}
html.still .hero .in,html.still .hero .cue{opacity:1;transform:none}
html.still .spot{display:none}
html.still .hero h1{color:#fff}
html.still .hero .lit{display:none}
html.still .cohort::before{transform:scaleX(1)}
html.still .hero::before{display:none}

/* motion discipline */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s!important;animation-delay:0s!important;transition-duration:.001s!important}
  .line>span{transform:none}
  .hero .in,.hero .cue{opacity:1;transform:none}
  .spot{display:none}
  .cohort::before{transform:scaleX(1)}
  .hero::before{display:none}
  .hero h1{color:#fff}
  .hero .lit{display:none}
}

/* booking panel: drops from the top like the curtain, on paper */
.book-panel{position:fixed;inset:0;z-index:140;background:#f2f0e9 url(paper.webp) repeat;background-size:900px 900px;color:var(--body);overflow-y:auto;transform:translateY(-100%);transition:transform .3s var(--ease-exit),visibility 0s .3s;visibility:hidden}
.book-panel.open{transform:translateY(0);visibility:visible;transition:transform .45s var(--ease),visibility 0s}
.book-inner{padding:0 var(--gutter) clamp(56px,7vw,96px);max-width:1440px;margin-inline:auto}
.book-panel .top{display:flex;justify-content:space-between;align-items:center;height:var(--head-h)}
.book-panel .wordmark{color:var(--ink)}
.book-panel .close{background:none;border:1px solid var(--ink);color:var(--ink);width:52px;height:52px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.book-panel .close svg{width:22px;height:22px}
.book-title{margin:clamp(28px,5vw,64px) 0 clamp(32px,4vw,56px);max-width:16ch}
.h2ish{font-size:clamp(24px,2.4vw,32px);margin-bottom:.4em}
.routes.paper{border-top-color:var(--rule)}
.routes.paper li{border-bottom-color:var(--rule)}
.routes.paper h4{font-size:17px;margin:0 0 4px;color:var(--ink);font-weight:700}
.routes.paper p{color:var(--muted)}
.routes.paper a{color:var(--ink)}
.book-panel .sticky{top:24px}

/* current sessions box and partner schools disclosure */
.avail{border:1px solid var(--ink);padding:clamp(20px,3vw,32px);margin-top:36px}
.avail h3{margin-bottom:18px}
.avail .order{border-top-color:var(--ink)}
.avail .small{margin-top:18px}
.avail .btns{margin-top:22px}
.disclose{border:1px solid var(--ink);padding:clamp(20px,3vw,32px);margin-top:24px}
.disclose[hidden]{display:none}
.disclose h3{margin-bottom:10px}
.disclose .btns{margin-top:20px}
