@font-face {
  font-family: Founders;
  src: url('/site-fonts/founders-grotesk-bold.woff2') format('woff2');
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: Cabinet;
  src: url('/site-fonts/cabinet-grotesk-variable.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: Space;
  src: url('/site-fonts/space-grotesk.ttf') format('truetype');
  font-weight: 300 700;
  font-display: swap;
}

@font-face {
  font-family: Departure;
  src: url('/site-fonts/DepartureMono-Regular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: JetBrains;
  src: url('/site-fonts/jetbrains-mono.ttf') format('truetype');
  font-weight: 100 800;
  font-display: swap;
}

/* Pinned study chrome, scoped to keep the existing main bodies intact. */
:root{--wasc-news:#552239;--wasc-verdict:#d6d96a;--wasc-list:#bbdee3;--wasc-frost:#f4f8fa;--wasc-overload:#8b66ad}
.wasc-shell{--oxblood:var(--wasc-news);--sulphur:var(--wasc-verdict);--blue:var(--wasc-list);--frost:var(--wasc-frost);--line:#55223955;--display:Cabinet,sans-serif;--body:Space,sans-serif;font:400 18px/1.55 var(--body);letter-spacing:normal;color:var(--oxblood)}
.wasc-shell,.wasc-shell *,.wasc-shell *:before,.wasc-shell *:after{box-sizing:border-box}
.wasc-shell :is(h1,h2,h3,p,figure){margin:0}
.wasc-shell :is(button,input){font:inherit;color:inherit}
.wasc-shell button{cursor:pointer}
.wasc-shell a{color:inherit}
.wasc-shell [hidden]{display:none!important}
.wasc-header.navigation{padding:0;min-height:44px;border:0;background:transparent;width:100%;max-width:none;left:0;right:0;letter-spacing:normal}
.wasc-header.navigation :is(a,button){border-radius:0;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:normal}
.wasc-header.navigation img{display:block;max-width:100%}
.wasc-header.navigation .navigation-actions{position:static}
#join.footer-home{margin:0;border:0;text-align:left}
#join a{text-decoration:none}
#join .footer-invitation{margin:0}
.wasc-bare-footer{display:flex;justify-content:space-between;gap:24px;padding:32px}

/* Footer extends the established palette. The target has its own stage. */
#join.footer-home{background:var(--wasc-news);color:var(--wasc-frost);padding:0;isolation:isolate}
#join.footer-home{position:relative}
#join.footer-home>.character-sky{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.25}
#join.footer-home>.container,#join.footer-home>.parcel-landing{position:relative;z-index:1}
#join .footer-invitation{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:80px 0 64px;border-top:1px solid #f4f8fa66;border-bottom:1px solid #f4f8fa66}
#join .footer-invitation h2{font:500 clamp(56px,6.8vw,96px)/.96 var(--display);letter-spacing:-.03em;margin:0 0 26px}
#join .footer-invitation>div>p{font:20px/1.45 var(--body);max-width:36ch;margin:0}
#join .footer-signup{width:100%;max-width:none;margin:0}
#join .footer-signup label{display:block;font:24px/1.2 var(--body);margin-bottom:16px}
#join .footer-email-row{display:flex;align-items:stretch;border:1px solid var(--wasc-frost)}
#join .footer-email-row input{min-width:0;width:100%;border:0;border-radius:0;background:transparent;color:var(--wasc-frost);font:18px/1.4 var(--body);padding:18px 16px;caret-color:var(--wasc-verdict)}
#join .footer-email-row input::placeholder{color:var(--wasc-frost);opacity:.8}
#join .footer-email-row button{display:flex;align-items:center;justify-content:center;gap:12px;flex:none;border:0;border-radius:0;padding:16px 20px;background:var(--wasc-verdict);color:var(--wasc-news);font:500 18px/1.2 var(--body);cursor:pointer}
#join .footer-email-row button:hover{background:var(--wasc-frost)}
#join .footer-email-row svg{width:24px;height:24px}
#join #join-status{font:12px/1.5 var(--body);margin:12px 0 0;color:var(--wasc-frost)}
#join .footer-main{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:56px;padding:68px 0 64px}
#join .footer-logotype{display:block;width:max-content;max-width:100%;color:var(--wasc-frost);font:700 clamp(48px,5.8vw,82px)/.9 Founders,sans-serif;letter-spacing:-.035em;text-decoration:none}
#join .footer-logotype span{display:block;text-align:right;color:var(--wasc-verdict);font-size:.43em;letter-spacing:-.02em;margin-top:10px}
#join .footer-links{display:grid;grid-template-columns:1.15fr 1fr .7fr;gap:28px;margin-top:60px}
#join .footer-links h3{font:500 16px/1.2 var(--body);color:var(--wasc-verdict);margin:0 0 18px}
#join .footer-links a{display:block;width:fit-content;max-width:100%;font:16px/1.4 var(--body);padding:8px 0;text-decoration:none}
#join .footer-links a:hover{text-decoration:underline;text-underline-offset:5px}
#join .footer-object{min-width:0;color:var(--wasc-verdict)}
#join .footer-object-stage{height:350px;position:relative}
#footer-target{width:100%;height:100%;display:block;cursor:grab;touch-action:none;position:relative;z-index:1}
#footer-target.dragging{cursor:grabbing;touch-action:none}
#footer-target-fallback{position:absolute;inset:15%;width:70%;height:70%}
#footer-target-fallback[hidden]{display:none}
#join .footer-object-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #d6d96a66;padding-top:12px;font:14px/1.4 var(--body)}
#join .footer-object-controls button{background:none;color:inherit;border:0;text-decoration:underline;text-underline-offset:5px;font:inherit;min-height:44px;padding:8px 0 8px 20px;cursor:pointer}
#join .footer-utility{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0 30px;border-top:1px solid #f4f8fa66;font:13px/1.4 var(--body);background:none}
#join .footer-utility>span{width:auto}
#join .footer-utility nav{display:flex;flex-wrap:wrap;gap:24px}
#join .footer-utility a{padding-block:10px;text-decoration:none}
#join .footer-utility a:hover{text-decoration:underline;text-underline-offset:5px}
#join .footer-back-top{display:flex;align-items:center;gap:10px}
#join .footer-back-top svg{width:18px;height:18px}
#join :is(a,button,input,canvas):focus-visible{outline:2px solid var(--wasc-verdict);outline-offset:5px}
#join ::selection{background:var(--wasc-verdict);color:var(--wasc-news)}
#join .parcel-landing{border-top:1px solid #f4f8fa66;margin-bottom:36px}
#join .parcel-landing[hidden]{display:none}
@media(max-width:1000px){#join .footer-invitation{gap:36px}#join .footer-main{grid-template-columns:1.5fr 1fr;gap:25px}#join .footer-links{gap:16px}#join .footer-links a{font-size:14px}#join .footer-object-stage{height:290px}#join .footer-email-row button{padding:14px}}
@media(max-width:700px){#join .footer-invitation{grid-template-columns:1fr;gap:32px;padding:48px 0}#join .footer-invitation h2{font-size:64px}#join .footer-invitation>div>p{font-size:18px}#join .footer-signup label{font-size:20px}#join .footer-email-row input{font-size:16px;padding:16px 12px}#join .footer-email-row button{font-size:16px;padding:14px 12px;gap:8px}#join .footer-email-row button svg{width:18px}#join .footer-main{display:flex;flex-direction:column;gap:32px;padding:48px 0 32px}#join .footer-brand-and-links{width:100%}#join .footer-logotype{font-size:clamp(44px,12vw,72px)}#join .footer-links{grid-template-columns:1fr 1fr;gap:30px 20px;margin-top:38px}#join .footer-links nav:last-child{grid-column:1/-1}#join .footer-links nav:last-child a{display:inline-block;margin-right:20px}#join .footer-links h3{margin-bottom:10px}#join .footer-links a{font-size:15px;min-height:40px}#join .footer-object{width:100%;max-width:380px}#join .footer-object-stage{height:280px}#join .footer-utility{flex-wrap:wrap;gap:10px 20px;font-size:12px}#join .footer-utility>span{width:100%}#join .footer-utility nav{gap:20px}#join .footer-back-top{margin-left:auto}}

/* Consistent touch rows for legal links, cookie disclosure and mode control. */
@media(max-width:700px){
 #join .footer-utility{display:flex;flex-direction:column;align-items:stretch;gap:16px}
 #join .footer-utility nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;width:100%;align-items:start}
 #join .footer-utility nav>a,#join .footer-utility nav>button,#join .footer-utility nav .cookie-study>summary{display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;min-height:44px;margin:0;padding:10px 0;text-align:left;font:inherit;line-height:1.4}
 #join .footer-utility .footer-back-top{margin-left:0;align-self:flex-start;min-height:44px;box-sizing:border-box}
}

/* Homepage chrome: same footer stylesheet and Three.js mark, local page routing. */
.navigation{position:relative;z-index:20;display:flex;align-items:start;justify-content:space-between;gap:16px;margin:0;font:400 18px/1.1 var(--body)}
.navigation nav{display:flex;gap:5px}
.navigation a,.navigation button{background:var(--frost);color:var(--oxblood);border:1px solid var(--oxblood);text-decoration:none;padding:6px 6px;line-height:1.1;min-height:36px;white-space:nowrap}
.navigation .brand-chip{display:flex;align-items:center;gap:6px;font-family:Founders,sans-serif;font-weight:700;letter-spacing:0}
.brand-chip small{font-size:12px;font-weight:500}.brand-chip img{width:21px;height:21px}
.navigation .dark-chip{background:var(--oxblood);color:var(--frost)}
.navigation a:hover,.navigation button:hover{background:var(--sulphur);color:var(--oxblood)}
.navigation [aria-current=page]{background:var(--sulphur);text-decoration:none}
#menu{display:none}#mobile-menu{position:absolute;right:0;top:42px;flex-direction:column;background:var(--frost);border:1px solid var(--oxblood);padding:8px;min-width:180px}
#join{overflow:hidden}#join .container{width:min(1240px,100% - 60px);margin-inline:auto}
#join .editorial-heading{display:none}#join .word-roll{display:inline-grid;position:relative;vertical-align:baseline;line-height:inherit;overflow:hidden}
#join .roll-word{grid-area:1/1;visibility:hidden;transform:translateY(110%);transition:transform 600ms cubic-bezier(.16,1,.3,1);white-space:nowrap}
#join .roll-word.is-current{visibility:visible;transform:translateY(0)}
#join .footer-utility nav button{border:0;padding:0;min-height:44px;font:inherit;background:none;color:inherit;text-decoration:underline;text-underline-offset:4px}
body.focus-mode #join.footer-home{background:var(--frost);color:var(--oxblood)}
body.focus-mode #join :is(.character-sky,.footer-object,.interactive-heading){display:none}
body.focus-mode #join .editorial-heading{display:inline}
body.focus-mode #join :is(.footer-logotype,.footer-logotype span,.footer-links h3,#join-status,.footer-email-row input){color:var(--oxblood)}
body.focus-mode #join .footer-email-row input::placeholder{color:var(--oxblood)}
body.focus-mode #join :is(.footer-invitation,.footer-email-row,.footer-utility){border-color:var(--line)}
body.focus-mode #join .footer-main{grid-template-columns:1fr}
body.focus-mode #join .footer-brand-and-links{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}
body.focus-mode #join .footer-links{margin-top:0}
body.focus-mode #join :is(a,button,input):focus-visible{outline-color:var(--oxblood)}
@media(max-width:900px){.navigation .middle-nav{display:none}#menu{display:block}}
@media(max-width:700px){.navigation{margin-top:0;font-size:14px;gap:8px}.navigation a,.navigation button{padding:10px 6px;min-height:44px}.brand-chip img{width:18px;height:18px}.navigation .brand-chip{gap:4px;font-size:16px}.brand-chip small{display:block;font-size:12px}.navigation nav{gap:3px}#mobile-menu{top:50px}#join .container{width:calc(100% - 40px)}body.focus-mode #join .footer-brand-and-links{grid-template-columns:1fr;gap:28px}}
@media(prefers-reduced-motion:reduce){#join .roll-word{transition:none}}

/* Compact chrome keeps the same hierarchy on small screens. */
.navigation a,.navigation button{display:flex;align-items:center;justify-content:center;min-height:44px}
#mobile-menu{top:50px}
#mobile-menu a{justify-content:flex-start;padding:12px;border:0}
.skip{z-index:30}
@media(max-width:360px){.navigation .brand-chip>span{display:none}.navigation .brand-chip{min-width:44px}.navigation{gap:6px}.navigation a,.navigation button{padding-inline:8px}}
#join .footer-utility nav{position:relative}
#join .cookie-study{position:static}
#join .cookie-study summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
#join .cookie-study summary:focus-visible{outline:2px solid var(--sulphur);outline-offset:4px}
#join .cookie-study p{position:absolute;bottom:100%;left:0;width:min(290px,75vw);padding:18px;background:var(--frost);color:var(--oxblood);border:1px solid var(--oxblood);font:14px/1.5 var(--body);z-index:3}

/* Same type metrics for the static prefix and the changing word. */
#join #footer-title .interactive-heading{display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:.22em;line-height:1.12}
#join .closing-prefix{display:block;line-height:inherit}
body.focus-mode #join #footer-title .interactive-heading{display:none}

/* The page starts directly below the navigation; spacing belongs inside its hero. */
.footer-link-invitation>p{font-size:15px;line-height:1.5;margin:0 0 18px}
#join .footer-newsletter-link{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid currentColor;padding:12px 0;font:500 clamp(25px,2.6vw,36px)/1.15 var(--display);text-decoration:none;color:inherit}
#join .footer-newsletter-link:hover{color:var(--sulphur)}
body.focus-mode #join .footer-newsletter-link:hover{color:var(--oxblood)}
/* Same browse control throughout the connected study, including wide screens. */
body:not([data-production-view]) .navigation{position:relative;z-index:30}
body .navigation #menu{display:block;min-height:36px;border:1px solid var(--wasc-news);background:var(--wasc-frost);color:var(--wasc-news);padding:6px;font:400 18px/1.1 var(--body)}
body .navigation #menu[aria-expanded=true]{background:var(--wasc-verdict)}
body .navigation #mobile-menu{position:absolute;left:auto;right:0;top:calc(100% + 8px);display:grid;grid-template-columns:1fr 1fr;gap:0;min-width:0;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 90px);overflow:auto;background:var(--wasc-frost);color:var(--wasc-news);border:1px solid var(--wasc-news);padding:10px}
body .navigation #mobile-menu[hidden]{display:none!important}
body .navigation #mobile-menu a{white-space:normal;border:0;border-bottom:1px solid #55223933;padding:14px 12px;min-height:48px;background:transparent;color:inherit;font:400 16px/1.3 var(--body);text-decoration:none}
body .navigation #mobile-menu a:hover{background:var(--wasc-list)}
body .navigation #mobile-menu a:focus-visible{outline:2px solid var(--wasc-news);outline-offset:-3px}
@media(max-width:760px){body .navigation #mobile-menu{grid-template-columns:1fr 1fr}body .navigation #mobile-menu a{font-size:14px;padding:12px 8px}}
body:not([data-production-view]) .navigation{top:0}
@media(max-width:600px){body:not([data-production-view]) .navigation .shot-link{display:none}body .navigation #menu{font-size:16px}}
/* Home retains floating chips; only Browse participates in the shared menu. */
@media(max-width:600px){body[data-production-view] .navigation .shot-link{display:none}}
/* Browse uses the same format colours as the brain and Shelf service. */
body .navigation #menu[aria-expanded=true]{background:var(--wasc-frost);text-decoration:underline;text-underline-offset:4px}
body .navigation #mobile-menu a[data-browse-category]{--browse-bg:var(--wasc-frost);--browse-ink:var(--wasc-news);background:var(--browse-bg);color:var(--browse-ink);border-bottom:1px solid #55223933;position:relative}
body .navigation #mobile-menu a[data-browse-category=news]{--browse-bg:var(--wasc-news);--browse-ink:var(--wasc-frost)}
body .navigation #mobile-menu a[data-browse-category=verdict]{--browse-bg:var(--wasc-verdict)}
body .navigation #mobile-menu a[data-browse-category=resource]{--browse-bg:var(--wasc-list)}
body .navigation #mobile-menu a[data-browse-category]:is(:hover,[aria-current=page]){text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
body .navigation #mobile-menu a[data-browse-category]:focus-visible{outline:2px solid var(--browse-ink);outline-offset:-4px}
body.focus-mode .navigation #mobile-menu a[data-browse-category]{background:var(--wasc-frost);color:var(--wasc-news);border-left:4px solid var(--browse-bg)}
body.focus-mode .navigation #mobile-menu a[data-browse-category]:focus-visible{outline-color:var(--wasc-news)}
/* Collections and Club destinations form two readable menu groups. */
body .navigation #mobile-menu{column-gap:12px;padding:14px;width:min(560px,calc(100vw - 24px));align-items:start}
.browse-group{display:flex;flex-direction:column;min-width:0}
body .navigation #mobile-menu .browse-group h2{font:12px/1.4 Departure,monospace;letter-spacing:0;text-transform:none;margin:0;padding:4px 12px 14px;color:var(--wasc-news)}
body .navigation #mobile-menu a[aria-current=location]{text-decoration:underline;text-underline-offset:5px}
@media(max-width:380px){body .navigation #mobile-menu{column-gap:6px;padding:8px}body .navigation #mobile-menu .browse-group h2{padding-left:8px}}

/* Home carries the same header as every inner page (chips, sizes, colours, Browse panel). The only Home rule is
   placement: the header lies over the top of the hero on a frost band, as the inner pages' header sits on their
   frost page, so the hero keeps its approved composition. Nothing else is styled per page. */
body .navigation[data-shell-page=home]{position:absolute;top:0;left:0;right:0;z-index:30;background:var(--frost)}
.wasc-header.navigation .shot-link{background:var(--frost)}
.wasc-header.navigation .brand-chip{font-family:Founders,sans-serif;font-weight:700}
.wasc-header.navigation .brand-chip small{font-family:inherit}
.wasc-header.navigation .dark-chip{background:var(--oxblood);color:var(--frost)}
.wasc-header.navigation [aria-current=page]{background:var(--sulphur);color:var(--oxblood)}
.wasc-header.navigation :is(a,button):focus-visible{outline:2px solid currentColor;outline-offset:3px}
html:not([data-mode]) [data-shell-mode]{display:none}
@media(max-width:700px){.wasc-header.navigation .brand-chip{font-size:16px}}
/* The Home brand chip is the current page; it keeps the plain chip look every other page shows. */
body .navigation[data-shell-page=home] .brand-chip[aria-current=page]{background:var(--frost)}
html:has(.navigation[data-shell-page=home])::-webkit-scrollbar{width:8px}
html:has(.navigation[data-shell-page=home])::-webkit-scrollbar-thumb{background:#24252d;border:2px solid var(--wasc-frost)}
/* Home's pinned Kinetic letter roll, with the same timing as the study. */
#join [data-footer-letter-roll] .roll-word{transform:none;transition:none}
#join [data-footer-letter-roll] .roll-word:is(.is-current,.is-shown){visibility:visible}
#join [data-footer-letter-roll] .roll-source{display:block}
#join [data-footer-letter-roll].letters-ready .roll-source{visibility:hidden}
#join [data-footer-letter-roll] .letter-layer{position:absolute;inset:.035em 0;pointer-events:none}

/* Home retains the pinned inline Still + letter-roll baseline. */
body:not(.focus-mode) #join[data-home-footer] #footer-title .interactive-heading{display:inline;line-height:inherit}
#join[data-home-footer] .word-roll{line-height:1.12}
.ui-icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0}
.large-link>.ui-icon{width:1.1em;height:1.1em}
.quiet-action .ui-icon,.slip-action .ui-icon,.piece-read .ui-icon{width:.8em;height:.8em}
#join .footer-newsletter-link .ui-icon{flex:none;width:1em;height:1em}
nav[data-social-footer] .ui-icon{width:.85em;height:.85em}
/* Phones: the brand chip runs to two lines, so Join and Browse stretch to its height and the header reads as one band. */
@media(max-width:700px){.wasc-header.navigation{align-items:stretch}}

/* Header reveal on scroll up, every page. /site-shell.js sets html[data-wasc-reveal] and header[data-reveal]
   (hidden | shown) once the page has scrolled past the header; at the top of the page nothing here applies, and
   without JavaScript the header simply scrolls away. Inner pages pin it with sticky (it stays in the flow, so no
   layout jump); Home's header is already out of the flow and is pinned with fixed. Transform only. */
:root{--wasc-header-height:0px;--wasc-header-offset:0px;--wasc-scroll-pad-base:0px}
html[data-wasc-reveal]{scroll-padding-top:calc(var(--wasc-header-height) + var(--wasc-scroll-pad-base))}
html[data-wasc-reveal] .wasc-header.navigation[data-reveal]{position:sticky;top:0;background:var(--frost);transition:transform 200ms ease}
html[data-wasc-reveal] body .wasc-header.navigation[data-shell-page=home][data-reveal]{position:fixed;top:0;left:0;right:0}
html[data-wasc-reveal] .wasc-header.navigation[data-reveal=hidden]{transform:translate3d(0,-100%,0)}
html[data-wasc-reveal] .wasc-header.navigation[data-reveal=shown]{transform:translate3d(0,0,0)}
html[data-wasc-reveal] .wasc-header.navigation[data-reveal][data-reveal-snap]{transition:none}
/* Sticky elements of the pages sit below the header while it is shown and keep their own top while it is hidden. */
html[data-wasc-reveal] .reading-rail,html[data-wasc-reveal] .resource-rail{top:calc(var(--wasc-header-offset) + 35px);transition:top 200ms ease}
html[data-wasc-reveal] .legal-rail,html[data-wasc-reveal] .manifesto-rail{top:calc(var(--wasc-header-offset) + 32px);transition:top 200ms ease}
html[data-wasc-reveal] .newsletter-pitch,html[data-wasc-reveal] .watch-sticky{top:calc(var(--wasc-header-offset) + 30px);transition:top 200ms ease}
html[data-wasc-reveal] .faq-desk{top:calc(var(--wasc-header-offset) + 24px);transition:top 200ms ease}
@media(prefers-reduced-motion:reduce){
 html[data-wasc-reveal] .wasc-header.navigation[data-reveal]{transition:none}
 html[data-wasc-reveal] :is(.reading-rail,.resource-rail,.legal-rail,.manifesto-rail,.newsletter-pitch,.watch-sticky,.faq-desk){transition:none}
}

/* Approved 23 Oct: keep club beside the wordmark, including pages loading pinned footer CSS later. */
#join.wasc-footer .footer-logotype{white-space:nowrap}
#join.wasc-footer .footer-logotype span{display:inline-block;vertical-align:-.5em;margin-left:.25em;margin-top:0}

/* Stepped Club wordmark, shared with the email masthead and footer. */
.wasc-header.navigation .brand-chip>span{white-space:nowrap}
.wasc-header.navigation .brand-chip small{display:inline-block;vertical-align:-.5em}

/* One arrow scale for the large page CTA and the adjacent footer CTA. */
:root{--wasc-large-cta-arrow-size:clamp(38px,4.05vw,58px)}
.large-action>span:last-child,#join .footer-newsletter-link>span:last-child{display:flex;align-items:center;font-size:var(--wasc-large-cta-arrow-size);flex:none}
