/* Editorial composition; hero imagery and brand mark are unchanged. */
.editorial .deep{position:sticky;top:0;height:100svh;margin-bottom:-100svh;opacity:1}
.botanical{position:absolute;inset:0;background-size:cover;background-position:center}
.botanical--evolution{background-image:url('../../public/media/botanical/graded/immersion-02-start.jpg')}
.botanical--immersion{background-image:url('../../public/media/botanical/graded/immersion-02-hold.jpg');opacity:0}
.botanical--passage{background-image:url('../../public/media/botanical/graded/evolution-01-hold.jpg');opacity:0}
.botanical-passage{display:block;height:265svh;pointer-events:none}
.botanical--immersion,.botanical--passage{display:none}
/* Native sticky holding, never wheel interception. Short/zoomed viewports and
   reduced-motion users retain ordinary document flow (WCAG 2.1.1 / 2.3.3). */
@media(min-width:900px) and (min-height:700px) and (prefers-reduced-motion:no-preference) and (pointer:fine){
  html[data-story-pacing='on'] .editorial .cap__stage{height:320svh;padding-block:0 60px}
  html[data-story-pacing='on'] .cap__stage>.cap__grid{position:sticky;top:var(--expertise-top,140px);padding-block:24px}
  html[data-story-pacing='on'] .botanical-passage{height:265svh}
}
.botanical video{width:100%;height:100%;object-fit:cover;object-position:center;opacity:0}
.botanical.is-ready video{opacity:1}
/* Intrinsic canvas presentation avoids iOS native video UI/compositor tiles.
   It is the decoded image itself, not a cover hiding an undersized surface. */
[data-canvas-source]{opacity:.001!important;pointer-events:none!important}
.botanical video[data-canvas-source]{opacity:1!important}
[data-inline-surface]{pointer-events:none;object-fit:cover;object-position:center}
[data-inline-surface][hidden]{display:none}
.botanical [data-inline-surface]{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.botanical.is-ready [data-inline-surface]{opacity:1}
@media(pointer:coarse){
  /* Safari's retracted toolbar exposes the large viewport. A stable large
     media surface covers both states without changing story scroll geometry. */
  .editorial .deep{height:100lvh;margin-bottom:-100lvh}
  .env__motion{transform:none;will-change:auto}
  .env__poster{z-index:1}
}
/* Keep the video eligible for Safari autoplay/frame presentation. The matching
   poster covers it until a decoded frame arrives, never the other way round. */
[data-hero-poster][data-retired]{visibility:hidden}
.studio .eyebrow{text-shadow:0 1px 2px rgba(0,0,0,.5)}
[data-clip]::-webkit-media-controls,[data-clip]::-webkit-media-controls-start-playback-button,
.botanical video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}
@media(pointer:coarse){.env__signal{display:none}}
/* WCAG 2.4.7: suppress only pointer-origin programmatic heading focus.
   Keyboard destinations and controls retain deliberate focus indication. */
[data-pointer-focus]:focus{outline:none}
html[data-input='keyboard'] [tabindex='-1']:focus{outline:1px solid var(--bone);outline-offset:8px}
.nav__i,.nav__mark{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
/* Leave the approved first frame intact; soften only its scroll-out dimming. */
.env__veil{opacity:calc(var(--sp) * .44)}
.botanical__shade{position:absolute;inset:0;opacity:.28;
  background:linear-gradient(90deg,rgba(10,9,13,.22),#0a090d 76%),linear-gradient(#0a090d,transparent 35%,rgba(10,9,13,.6))}
.editorial .turn::before{background:linear-gradient(var(--ink),transparent 200px)}
.editorial .turn__say{font-size:clamp(3rem,6.6vw,7.4rem);max-width:16ch}
.editorial .turn__grid{padding-block:32px}
.editorial .cap__stage{padding-top:56px;padding-bottom:40px}
.editorial .cap__btn{padding-block:24px}
.editorial .cap__t{font-size:clamp(1.35rem,2.2vw,2.4rem)}
.editorial .cap__artist{min-height:105svh;margin-top:40px;padding-block:92px 100px;justify-content:center}
.editorial .artist__stage>.cap__h{margin-left:42%;border:0;width:auto}
.editorial .artist__spread{margin-left:42%;gap:44px}
.editorial .artist__title{font-size:clamp(3rem,5.6vw,6.3rem);max-width:14ch}
.editorial .artist__title .ln:last-child{padding-left:0}
.editorial .artist__body{width:100%;margin:0;padding-left:0}
.editorial .artist__rule{display:none}
.editorial .artist__body>p{max-width:38ch}
.editorial .wk{padding-block:100px 110px;background:none}
.editorial .wk__title{font-size:clamp(2.8rem,5.8vw,6.5rem);max-width:18ch!important;margin-left:18%}
.editorial .wk__title .ln:last-child{padding-left:0}
.editorial .wk__body{margin-top:64px;grid-template-columns:1.15fr .65fr;gap:7vw}
.editorial .wk__meta{padding:0;background:none}
.studio{position:relative;padding:120px var(--gut) 160px;background:none}
.studio__in{max-width:var(--maxw);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:34px 7vw}
.studio .eyebrow{grid-column:1/-1}
.studio h2{font-size:clamp(3.4rem,5.9vw,6.6rem);font-weight:300;letter-spacing:-.055em;line-height:1.04;color:var(--ivory)}
.studio h2 em{font-style:normal;font-weight:400;color:var(--bone)}
.studio__body{align-self:end;max-width:40ch;color:var(--speak);font-size:var(--t-body);line-height:1.8}
.studio__body p+p{margin-top:22px}.studio__body .text-link{margin-top:26px}
.editorial .contact{--ivory:#f5f1ea;--bone:#dedbd1;--speak:#c4c3bb;--mute:#aaa9a1;--edge:#aaa9a1;
  --ink:#0a090d;--graphite:#171a16;--seam:rgba(222,219,209,.18);--seam-lit:rgba(222,219,209,.45);
  color:var(--bone);background:linear-gradient(transparent,rgba(10,9,13,.94) 60%);box-shadow:none;padding-top:44px}
.editorial .contact__grid{column-gap:8vw;padding-top:54px;grid-template-columns:1fr 1fr}
.editorial .contact__intro h2{font-size:clamp(3.2rem,5.2vw,5.8rem);line-height:1.06}
.editorial .contact__aside{max-width:35ch}
.editorial .contact .field input,.editorial .contact .field select,.editorial .contact .field textarea{
  background:rgba(10,9,13,.36);border-bottom-color:#777b70;color-scheme:dark;padding:14px 10px}
.editorial .contact .field input:focus,.editorial .contact .field select:focus,.editorial .contact .field textarea:focus{
  outline:1px solid #d2d5c5;outline-offset:4px;background:#20241d}
.editorial .contact .field option,.editorial .contact .field optgroup{background:#171a16;color:#f5f1ea}
.editorial .contact .project-button{background:var(--bone);color:var(--ink)}
.editorial .contact .project-button:hover{background:var(--ivory)}
.editorial .contact .project-button:active{background:#c3c7b6}
.editorial .contact [data-enquiry-edit]{width:auto;min-height:44px;padding:10px 0;background:transparent;color:var(--bone);font-size:12px;border:0;border-bottom:1px solid var(--seam)}
.editorial .contact [data-enquiry-edit]:hover{background:transparent;color:var(--ivory)}
.enquiry__optional{border-block:1px solid var(--seam);margin-top:30px;padding-block:4px}
.enquiry__optional summary{min-height:48px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;color:var(--bone);font-size:13px;list-style:none}
.enquiry__optional summary::-webkit-details-marker{display:none}
.enquiry__optional summary::after{content:'+';font-size:22px;font-weight:300}
.enquiry__optional[open] summary::after{content:'−'}
.enquiry__optional .enquiry__fields{padding:18px 0 24px}
.enquiry__optional summary:focus-visible{outline:2px solid var(--bone);outline-offset:4px}
.enquiry__optional summary:hover{color:var(--ivory)}
.field__route{font-size:12px;line-height:1.65;color:var(--speak);margin-top:12px;max-width:50ch}
@media(max-width:899.98px){
  .botanical{background-position:center}.botanical video{object-position:center}
  .botanical__shade{background:linear-gradient(90deg,rgba(10,9,13,.3),rgba(10,9,13,.75)),linear-gradient(#0a090d,transparent 25%)}
  .editorial .turn__say{font-size:clamp(2.4rem,8.6vw,4.8rem)}
  .editorial .cap__artist{min-height:78svh;margin-top:38px;padding-block:72px}
  .editorial .artist__stage>.cap__h,.editorial .artist__spread{margin-left:12%}
  .editorial .artist__title{font-size:clamp(2.7rem,8.6vw,4.5rem)}
  .editorial .wk{padding-block:68px 76px}.editorial .wk__title{margin-left:0;font-size:clamp(2.3rem,7.8vw,4.2rem)}
  .editorial .wk__body{grid-template-columns:1fr;gap:34px;margin-top:40px}
  .studio{padding-block:70px 90px}.studio__in{grid-template-columns:1fr;gap:28px}
  .studio h2{font-size:clamp(3rem,9vw,5rem)}.studio__body{margin-left:12%}
  .editorial .contact__grid{grid-template-columns:1fr;gap:44px}
  .editorial .contact__intro h2{font-size:clamp(3rem,9vw,4.8rem)}
  .editorial .contact{background:linear-gradient(transparent,#0a090d 40%)}
}
/* Save-data fallback remains photographic; reduced motion uses authored cuts. */
html[data-botanical-mode='still'][data-botanical='immersion'] .botanical--immersion{opacity:1!important}

/* Arrival / reading stop / release share the same centered frame. */
.artist__stage{width:100%}
.chapter-arrival{position:fixed;inset:0;background:#0c0d0d;z-index:18;opacity:0;pointer-events:none}
/* Preserve descenders while line masks remain within the original type frame. */
.editorial-line-mask{padding-bottom:.1em;margin-bottom:-.1em;overflow:clip}
.artist__stage,.wk__in,.studio__in{opacity:var(--chapter-release,1)}
.editorial [data-chapter-hold]{display:block;height:var(--chapter-height);min-height:0;padding-block:0;margin-top:0;overflow:visible}
[data-chapter-hold]>.artist__stage,[data-chapter-hold]>.wk__in,[data-chapter-hold]>.studio__in{position:sticky;top:var(--chapter-top);padding-block:24px}
.editorial .wk__title{font-size:clamp(2.8rem,5.2vw,6rem)}
.editorial .wk__body{margin-top:42px}
.editorial .wk__item{padding-top:32px}
.editorial .wk__scope li{padding-block:10px}
@media(min-width:900px) and (min-height:700px){
  .editorial .contact__intro{position:sticky;top:130px;align-self:start}
}
/* Restore the approved point/divider geometry. A hairline shadow supplies
   contrast on the lit wall; no hardware cap, badges or extra tick marks. */
.cur{mix-blend-mode:normal}
.cur__d{width:3.5px;height:3.5px;margin:8.75px 0 0 -1.75px;border-radius:50%;background:var(--ivory);opacity:.38;box-shadow:0 0 0 .55px rgb(16 21 16 / var(--cursor-edge,0))}
.cur__s{width:1px;height:18px;margin:1.5px 0 0 -.5px;background:var(--ivory);opacity:.24;transform-origin:50% 0;box-shadow:0 0 0 .5px rgb(16 21 16 / var(--cursor-edge,0))}
.interface-arrow{display:inline-block;width:1em;height:1em;background:currentColor;mask:url('../../public/identity/interface-arrow.svg') center/contain no-repeat;-webkit-mask:url('../../public/identity/interface-arrow.svg') center/contain no-repeat;vertical-align:-.1em}
.interface-arrow--back{rotate:180deg}
/* Progressive native select enhancement preserves platform keyboard,
   screen-reader, form-value and validation behaviour (WCAG 2.1.1 / 4.1.2).
   Touch devices retain their familiar picker; no imitation ARIA widget. */
@supports(appearance:base-select){
 @media(pointer:fine){
  .enquiry select,.enquiry select::picker(select){appearance:base-select}
  .enquiry select{display:flex;align-items:center;justify-content:space-between;gap:16px}
  .enquiry select::picker(select){background:#1b1c1b;color:#e5e1d5;border:1px solid #65695b;border-radius:2px;padding:12px;max-height:min(440px,65svh);box-shadow:0 16px 45px #0005;font:400 14px/1.5 var(--sans);scrollbar-width:thin}
  .enquiry select option{padding:11px 16px;min-height:42px;border-radius:1px;gap:14px;font:400 14px/1.5 var(--sans);letter-spacing:0;text-transform:none;color:#e5e1d5}
  .enquiry select option:hover,.enquiry select option:focus{background:#34382f;color:#f1eee5;outline:none}
  .enquiry select option:checked{background:#292c26;color:#f1eee5}
  .enquiry select option:disabled{display:none}
  .enquiry select optgroup{padding-block:8px 12px;font:400 10px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#a6ad98;background:none}
  .enquiry select optgroup::before{display:block;padding:10px 16px 6px;color:#a6ad98;font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:400}
  .enquiry select::picker-icon{color:#a6ad98;scale:.8}
  .enquiry select option::checkmark{color:#a6ad98}
 }
}
.contact__arrival{display:contents}
/* Touch forms must not inherit a transformed focus coordinate space. GSAP
   leaves even its completed y:0 entrance as a matrix; navigation also moves
   the grid. Keep opacity/heading entrances, but keep the form in normal flow.
   Native keyboard positioning and browser zoom remain fully available. */
@media(pointer:coarse){
  #contact .contact__grid,#contact .contact__project{
    transform:none!important;translate:none!important;scale:none!important;
  }
  #contact input,#contact textarea,#contact select{font-size:16px}
}
@media(max-width:899px) and (min-height:660px) and (prefers-reduced-motion:no-preference){
  .contact__arrival{display:block;min-height:calc(100svh + 64px)}
  .editorial .contact__arrival .contact__intro{position:sticky;top:110px;padding-bottom:40px}
}
@media(min-width:1000px) and (min-height:760px) and (prefers-reduced-motion:no-preference){
  html[data-unfold]:not([data-motion='still']) .turn{height:175svh}
}
.cur__s::before,.cur__s::after{display:none}
/* Supplemental light only: remove the old dark annulus around the pointer. */
.env__lamp{background:radial-gradient(circle var(--lampR) at var(--lx) var(--ly),rgba(238,238,217,.12),rgba(205,210,181,.045) 35%,transparent 72%)}
@media(prefers-reduced-motion:reduce){
  .botanical-passage{display:block!important;height:190svh}
  html[data-motion='still'] .editorial .deep{position:sticky;inset:auto;top:0;height:100lvh;margin-bottom:-100lvh}
  .chapter-arrival{display:none}
}
html[data-botanical-mode='still'] .botanical-passage{display:none!important}
.ambient-utility{margin-top:12px;font:400 12px/1.7 var(--sans)}
.ambient-utility button{font:inherit;color:var(--bone);background:none;border:0;min-height:44px;padding:10px 0;cursor:pointer}
.ambient-utility button:hover{color:var(--ivory)}
.ambient-utility button:focus-visible{outline:2px solid var(--ivory);outline-offset:4px}
html[data-ambient-paused] .cue::after{animation-play-state:paused}
.enquiry__trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.enquiry__status{font-size:13px;line-height:1.7;color:var(--bone);margin-top:24px}
.enquiry__note a{text-decoration:underline;text-underline-offset:3px}
.field[hidden]{display:none!important}
.field input[type=file]{font-size:12px;max-width:100%}
.field input::file-selector-button{background:#d9ddcf;color:#182015;border:0;padding:10px;margin-right:12px;cursor:pointer}
