/* ============================================================
   PACIFIC CHILL — WELLNESS flagship
   Loads on top of style.css (tokens) + collection.css (nav/foot).
   ============================================================ */

body[data-theme="wellness"]{
  --accent:#6c7a58; --accent-2:#8a9a76; --accent-soft:#aab89a;
  --accent-tint:rgba(108,122,88,.12);
  --eucalyptus:#7d9082; --warm-deep:#12180f;
}
body.well{ background:var(--warm-deep); color:var(--ink-soft); cursor:none; }
@media (pointer:coarse){ body.well{ cursor:auto; } }
.well ::selection{ background:var(--accent); color:#fff; }
.well a, .well button{ cursor:none; }
@media (pointer:coarse){ .well a, .well button{ cursor:pointer; } }

/* float-up base reveal */
.well .reveal{ opacity:0; transform:translateY(30px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
.well .reveal.in{ opacity:1; transform:none; }
.well .reveal-2{ transition-delay:.12s } .well .reveal-3{ transition-delay:.24s } .well .reveal-4{ transition-delay:.36s }

/* ---------- fixed overlays ---------- */
.fx-motes{ position:fixed; inset:0; z-index:2; pointer-events:none; mix-blend-mode:screen; opacity:.7; }
.scrollbar{ position:fixed; top:0; left:0; right:0; height:2px; z-index:80; background:rgba(0,0,0,.06); }
.scrollbar i{ display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left; background:linear-gradient(90deg,var(--accent),var(--accent-soft)); }

/* ---------- custom cursor ---------- */
.cur{ position:fixed; top:0; left:0; z-index:90; pointer-events:none; border-radius:50%; will-change:transform; }
.cur-dot{ width:6px; height:6px; margin:-3px 0 0 -3px; background:var(--accent); }
.cur-ring{ width:38px; height:38px; margin:-19px 0 0 -19px; border:1px solid rgba(108,122,88,.6); transition:width .3s var(--ease), height .3s var(--ease), background .3s, margin .3s; }
body.cur-active .cur-ring{ width:64px; height:64px; margin:-32px 0 0 -32px; background:rgba(108,122,88,.10); }
@media (pointer:coarse){ .cur{ display:none } }

/* sound toggle styles now live in collection.css (shared across all pages) */

/* ============================================================
   ENTER GATE
   ============================================================ */
.enter{ position:fixed; inset:0; z-index:120; background:var(--warm-deep);
  display:grid; place-items:center; text-align:center; color:var(--paper);
  transition:opacity 1.1s var(--ease), visibility 1.1s; }
.enter.gone{ opacity:0; visibility:hidden; }
.enter__bg{ position:absolute; inset:0; background:radial-gradient(120% 90% at 50% 30%, rgba(108,122,88,.22), transparent 60%); }
.enter__in{ position:relative; }
.enter__mark{ font-family:var(--sans); font-weight:500; text-transform:uppercase; letter-spacing:.4em; text-indent:.4em; font-size:.66rem; color:var(--accent-soft); }
.enter__word{ font-family:var(--serif); font-weight:300; font-size:clamp(3.4rem,12vw,8rem); line-height:1; margin:1.2rem 0 .4rem; letter-spacing:.01em;
  background:linear-gradient(180deg,#fff,var(--accent-soft)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.enter__sub{ font-family:var(--serif); font-style:italic; font-size:clamp(1rem,2.2vw,1.4rem); color:rgba(244,241,234,.72); margin-bottom:2.6rem; }
.enter__btns{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.enter__btn{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; padding:1rem 2rem; border-radius:999px;
  border:1px solid rgba(244,241,234,.4); color:var(--paper); background:transparent; transition:transform .4s var(--ease), background .4s, color .4s, border-color .4s; }
.enter__btn--primary{ background:var(--accent); border-color:var(--accent); color:#fff; }
.enter__btn:hover{ transform:translateY(-2px); }
.enter__btn--primary:hover{ background:var(--accent-2); border-color:var(--accent-2); }
.enter__btn--ghost:hover{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.enter__note{ margin-top:1.6rem; font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(244,241,234,.4); }

/* ============================================================
   HERO  (WebGL silk + kinetic type)
   ============================================================ */
.whero{ position:relative; min-height:100svh; overflow:hidden; display:flex; align-items:center; }
.whero__gl{ position:absolute; inset:0; width:100%; height:100%; display:block; z-index:0; }
.whero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:68% center; z-index:0; transform:scale(1.06); animation:wheroZoom 26s ease-out forwards; }
@keyframes wheroZoom{ to{ transform:scale(1); } }
@media(max-width:720px){
  .whero__video{ object-position:56% center; }
  .whero__veil{ background:
    linear-gradient(90deg, rgba(10,15,12,.74), rgba(10,15,12,.32) 58%, rgba(10,15,12,.04) 84%),
    linear-gradient(180deg, rgba(10,15,12,.22), rgba(10,15,12,0) 26%, rgba(9,13,10,.52)); }
}
.whero__grain{ position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.5;
  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='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); mix-blend-mode:overlay; }
.whero__veil{ position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg, rgba(11,17,14,.66), rgba(11,17,14,.10) 50%, rgba(11,17,14,0) 66%),
    linear-gradient(180deg, rgba(11,17,14,.22), rgba(11,17,14,0) 30%, rgba(9,14,11,.46)); }
.whero__in{ position:relative; z-index:3; width:min(1280px,92vw); margin:0 auto; color:var(--paper); }
.whero__brand{ display:inline-flex; align-items:center; gap:1.05rem; margin-bottom:.2rem;
  font-family:var(--sans); font-weight:500; text-transform:uppercase; letter-spacing:.46em; text-indent:.46em; font-size:.84rem; color:var(--paper);
  opacity:0; transform:translateY(14px); transition:opacity 1s var(--ease) .12s, transform 1s var(--ease) .12s; }
.hero-in .whero__brand{ opacity:.97; transform:none; }
.whero__brand::before{ content:""; width:clamp(36px,6vw,68px); height:1px; background:linear-gradient(90deg,var(--sand),rgba(200,180,138,.05)); }
.whero__eyebrow{ font-family:var(--sans); font-weight:500; text-transform:uppercase; letter-spacing:.34em; font-size:.64rem; color:var(--sand); margin-top:1.3rem;
  opacity:0; transform:translateY(14px); transition:opacity 1s var(--ease) .5s, transform 1s var(--ease) .5s; }
.hero-in .whero__eyebrow{ opacity:.9; transform:none; }
.whero__title{ font-family:var(--serif); font-weight:300; line-height:.92; letter-spacing:-.01em;
  font-size:clamp(3.4rem,10.5vw,9rem); margin:.5rem 0 0; }
.whero__title .ch{ display:inline-block; opacity:0; transform:translateY(40%) rotate(6deg); filter:blur(6px);
  transition:opacity .9s var(--ease), transform .9s var(--ease), filter .9s var(--ease); }
.hero-in .whero__title .ch{ opacity:1; transform:none; filter:none; }
.whero__lede{ max-width:40ch; margin-top:1.6rem; font-family:var(--serif); font-style:italic; font-weight:300;
  font-size:clamp(1.15rem,2.4vw,1.8rem); line-height:1.5; color:rgba(244,241,234,.92);
  opacity:0; transform:translateY(16px); transition:opacity 1.1s var(--ease) .6s, transform 1.1s var(--ease) .6s; }
.hero-in .whero__lede{ opacity:1; transform:none; }
.whero__scroll{ position:absolute; left:50%; bottom:2.4rem; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:.7rem;
  font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; color:var(--paper); opacity:0; transition:opacity 1s 1.2s; }
.hero-in .whero__scroll{ opacity:.8; }
.whero__scroll i{ width:1px; height:46px; background:linear-gradient(var(--paper),transparent); animation:scrolldn 2.2s var(--ease-io) infinite; }
@keyframes scrolldn{ 0%{ transform:scaleY(.2); transform-origin:top } 50%{ transform:scaleY(1); transform-origin:top } 51%{ transform-origin:bottom } 100%{ transform:scaleY(.2); transform-origin:bottom } }

/* ============================================================
   MANIFESTO  (word-by-word illumination)
   ============================================================ */
.wmanifesto{ background:var(--paper-2); padding:clamp(7rem,18vh,14rem) 0; }
.wmanifesto__in{ width:min(1080px,90vw); margin:0 auto; }
.wmanifesto .kicker{ display:block; text-align:center; margin-bottom:2.6rem; }
.wmanifesto__line{ font-family:var(--serif); font-weight:300; line-height:1.32; letter-spacing:-.005em;
  font-size:clamp(1.7rem,4.4vw,3.4rem); text-align:center; }
.wmanifesto .word{ color:rgba(20,22,24,.16); transition:color .5s var(--ease); }
.wmanifesto .word.lit{ color:var(--ink-soft); }
.wmanifesto .word.accent.lit{ color:var(--accent); font-style:italic; }

/* ============================================================
   BREATHING RITUAL
   ============================================================ */
.breathe{ position:relative; min-height:100svh; display:grid; place-items:center; text-align:center; overflow:hidden;
  background:
    radial-gradient(120% 13% at 50% 73%, rgba(255,206,150,.30), transparent 72%),
    radial-gradient(58% 44% at 50% 49%, rgba(255,184,120,.52), rgba(255,150,110,.14) 48%, transparent 72%),
    linear-gradient(180deg, #0d1630 0%, #1c2748 30%, #41395f 54%, #8c5560 76%, #2a1a2c 100%);
  color:var(--paper); }
.breathe__palms{ position:absolute; left:0; right:0; bottom:0; width:100%; height:48%; z-index:1; pointer-events:none; opacity:.72; }
.breathe__halo{ position:absolute; inset:0; pointer-events:none; z-index:1;
  background:radial-gradient(closest-side, rgba(255,186,122,.26), transparent 70%); transform:scale(var(--s,.78)); transition:transform .2s linear; }
.breathe__in{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:.4rem; }
.breathe__kicker{ font-size:.62rem; letter-spacing:.34em; text-transform:uppercase; color:rgba(255,214,182,.9); margin-bottom:1.5rem; }
.breathe__logo{ width:min(262px,46vw); height:auto; display:block; margin:0 auto 2rem; filter:drop-shadow(0 8px 30px rgba(0,0,0,.4)); opacity:.97; transition:opacity .8s var(--ease); }
.breathing-on .breathe__logo{ opacity:.4; }
.breathe__stage{ position:relative; width:min(56vw,400px); aspect-ratio:1; display:grid; place-items:center; margin-bottom:2.2rem; }
.breathe__orb{ --s:.78; position:absolute; inset:0; margin:auto; width:100%; height:100%; border-radius:50%;
  background:radial-gradient(circle at 44% 38%, #fff5e0 0%, #ffd49c 38%, #f7a36b 64%, #e07a52 84%, rgba(207,99,71,.32) 100%);
  box-shadow:0 0 70px rgba(255,176,116,.55), 0 0 180px rgba(255,150,96,.42), 0 0 320px rgba(255,138,90,.24), inset 0 0 84px rgba(255,255,255,.30);
  transform:scale(var(--s)); transition:transform .12s linear; }
.breathe__orbit{ position:absolute; inset:0; margin:auto; width:88%; height:88%; border-radius:50%; pointer-events:none; animation:orbitSpin 26s linear infinite; transition:opacity .7s var(--ease); }
.breathe__orbit i{ position:absolute; top:-3px; left:50%; width:7px; height:7px; margin-left:-3.5px; border-radius:50%; background:#ffe6c2; box-shadow:0 0 12px 3px rgba(255,214,160,.85); }
@keyframes orbitSpin{ to{ transform:rotate(360deg) } }
.breathing-on .breathe__orbit{ opacity:0; }
@keyframes idleBreath{ 0%,100%{ transform:scale(.99) } 50%{ transform:scale(1.028) } }
.breathe:not(.breathing-on) .breathe__stage{ animation:idleBreath 8s var(--ease) infinite; }
.breathe__ring{ position:absolute; inset:0; margin:auto; border-radius:50%; border:1px solid rgba(255,224,194,.42); transform:scale(calc(var(--s,.78) * 1.18)); }
.breathe__ring--2{ transform:scale(calc(var(--s,.78) * 1.4)); border-color:rgba(255,224,194,.2); }
.breathe__label{ font-family:var(--serif); font-weight:300; font-size:clamp(1.6rem,4vw,2.8rem); min-height:1.3em; }
.breathe__label.flip{ animation:flipin .6s var(--ease); }
@keyframes flipin{ from{ opacity:0; transform:translateY(10px) } to{ opacity:1; transform:none } }
.breathe__count{ font-family:var(--serif); font-size:1.1rem; color:rgba(255,214,182,.9); min-height:1.4em; letter-spacing:.1em; }
.well .breathe__btn{ margin-top:1.9rem; color:var(--paper);
  background:rgba(255,246,235,.10);
  -webkit-backdrop-filter:blur(16px) saturate(1.25); backdrop-filter:blur(16px) saturate(1.25);
  border:1px solid rgba(255,224,194,.55);
  box-shadow:0 12px 46px -14px rgba(255,150,96,.6), inset 0 1px 0 rgba(255,255,255,.28);
  letter-spacing:.28em; }
.well .breathe__btn::before{ content:""; width:7px; height:7px; border-radius:50%; background:#ffb277;
  box-shadow:0 0 12px 2px rgba(255,162,102,.9); animation:pulseDot 2.6s ease-in-out infinite; }
.well .breathe__btn:hover{ background:rgba(255,206,160,.20); border-color:rgba(255,234,208,.85); color:var(--paper); transform:translateY(-2px); }
@keyframes pulseDot{ 0%,100%{ opacity:.45; transform:scale(.8) } 50%{ opacity:1; transform:scale(1.15) } }
.breathe__hint{ margin-top:1.5rem; font-size:.58rem; letter-spacing:.26em; text-transform:uppercase; color:rgba(255,224,196,.55); }

/* ============================================================
   STORY (parallax editorial)
   ============================================================ */
.wstory{ position:relative; display:grid; grid-template-columns:1.05fr .95fr; min-height:100svh; background:var(--paper); overflow:hidden; }
.wstory__media{ position:relative; overflow:hidden; }
.wstory__media img{ position:absolute; inset:-12% 0; width:100%; height:124%; object-fit:cover; will-change:transform; }
.wstory__tag{ position:absolute; left:1.4rem; bottom:1.4rem; z-index:2; color:var(--paper); font-size:.6rem; letter-spacing:.28em; text-transform:uppercase; }
.wstory__copy{ display:flex; flex-direction:column; justify-content:center; padding:clamp(2.6rem,8vw,8rem); }
.wstory__h{ font-family:var(--serif); font-weight:300; font-size:clamp(2.1rem,4.6vw,3.8rem); line-height:1.06; margin:1.3rem 0; }
.wstory__h em{ font-style:italic; color:var(--accent); }
.wstory__p{ font-size:1.02rem; line-height:1.9; color:var(--ink-mute); max-width:46ch; margin:0 0 1.8rem; }
@media(max-width:860px){ .wstory{ grid-template-columns:1fr; } .wstory__media{ min-height:62vh; } .wstory__media img{ inset:0; height:100%; } }

/* ============================================================
   THE CALM EDIT (3D tilt cards)
   ============================================================ */
.wedit{ background:var(--paper-2); padding:clamp(5rem,12vw,9rem) 0; }
.wedit__head{ width:min(1280px,92vw); margin:0 auto clamp(2.6rem,5vw,4rem); display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; }
.wedit__head h2{ font-family:var(--serif); font-weight:300; font-size:clamp(2.2rem,5vw,4rem); margin:.5rem 0 0; }
.wedit__head p{ max-width:30ch; color:var(--ink-mute); font-size:.96rem; line-height:1.7; }
.wedit__grid{ width:min(1280px,92vw); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,2vw,1.7rem); perspective:1200px; }
@media(max-width:1000px){ .wedit__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .wedit__grid{ grid-template-columns:1fr; } }
.tilt{ text-decoration:none; color:inherit; transform-style:preserve-3d; }
.tilt__inner{ transition:transform .4s var(--ease); transform-style:preserve-3d; will-change:transform; }
.tilt__frame{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:4px; background:var(--paper-3); border:1px solid var(--hair); }
.tilt__frame img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.tilt:hover .tilt__frame img{ transform:scale(1.05); }
.tilt__tag{ position:absolute; top:.85rem; left:.85rem; transform:translateZ(40px); font-size:.54rem; letter-spacing:.22em; text-transform:uppercase;
  background:rgba(250,248,243,.92); color:var(--accent); padding:.4rem .7rem; border-radius:999px; }
.tilt__body{ padding:1.1rem .2rem 0; transform:translateZ(20px); }
.tilt__name{ font-family:var(--serif); font-size:1.34rem; line-height:1.1; }
.tilt__desc{ color:var(--ink-mute); font-size:.84rem; margin-top:.35rem; }
.tilt__meta{ display:flex; justify-content:space-between; align-items:center; margin-top:.7rem; }
.tilt__price{ font-size:.9rem; }
.tilt__cta{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); display:inline-flex; gap:.4rem; align-items:center; }
.tilt__cta i{ width:14px; height:1px; background:currentColor; transition:width .35s var(--ease); }
.tilt:hover .tilt__cta i{ width:24px; }

/* ============================================================
   THE CAMPAIGN (generative editorial plates)
   ============================================================ */
.campaign{ background:var(--paper-2); padding:clamp(5rem,12vw,9rem) 0; }
.campaign__head{ width:min(1280px,92vw); margin:0 auto clamp(2.4rem,5vw,3.8rem); text-align:center; }
.campaign__head .kicker{ color:var(--accent); }
.campaign__head h2{ font-family:var(--serif); font-weight:300; font-size:clamp(2.2rem,5vw,4rem); margin:.6rem 0 0; }
.campaign__head p{ max-width:48ch; margin:1.1rem auto 0; color:var(--ink-mute); line-height:1.75; font-size:.98rem; }
.campaign__grid{ width:min(1280px,92vw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.9rem,1.8vw,1.5rem); }
.plate{ position:relative; overflow:hidden; border-radius:5px; aspect-ratio:3/4; box-shadow:0 18px 50px -28px rgba(20,24,15,.5); }
.plate svg{ position:absolute; inset:0; width:100%; height:100%; display:block; transition:transform 1.6s var(--ease); }
.plate:hover svg{ transform:scale(1.045); }
.plate__cap{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:1.3rem 1.4rem; color:var(--paper); }
.plate__name{ font-family:var(--serif); font-weight:400; font-size:clamp(1.3rem,2.2vw,1.7rem); line-height:1.05; }
.plate__desc{ font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; opacity:.78; margin-top:.5rem; }
.campaign__note{ width:min(1280px,92vw); margin:clamp(1.8rem,4vw,3rem) auto 0; text-align:center; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-mute); }
.campaign__feature{ position:relative; width:min(1280px,92vw); margin:0 auto clamp(1.6rem,3.4vw,2.6rem); overflow:hidden; border-radius:6px; aspect-ratio:16/9; box-shadow:0 34px 80px -38px rgba(20,24,15,.6); }
.campaign__feature img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 2.2s var(--ease); }
.campaign__feature:hover img{ transform:scale(1.045); }
.campaign__feature::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,7,.62),rgba(8,11,7,0) 42%); }
.campaign__feature figcaption{ position:absolute; left:0; bottom:0; z-index:2; padding:clamp(1.4rem,3.2vw,2.6rem); color:var(--paper); }
.campaign__feature .kicker{ color:var(--accent-soft); }
.campaign__feat-name{ font-family:var(--serif); font-weight:300; font-size:clamp(1.8rem,3.6vw,3rem); line-height:1.02; margin:.4rem 0 .3rem; }
.campaign__feat-desc{ font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; opacity:.82; }
.campaign__grid--2{ grid-template-columns:repeat(2,1fr); max-width:840px; }
@media(max-width:820px){ .campaign__grid{ grid-template-columns:1fr; max-width:440px; } .campaign__feature{ aspect-ratio:4/3; } }

/* ============================================================
   RITUALS (stepped timeline)
   ============================================================ */
.rituals{ background:var(--warm-deep); color:var(--paper); padding:clamp(5rem,12vw,9rem) 0; position:relative; overflow:hidden; }
.rituals__head{ width:min(1280px,92vw); margin:0 auto clamp(2.6rem,6vw,4.5rem); text-align:center; }
.rituals__head .kicker{ color:var(--accent-soft); }
.rituals__head h2{ font-family:var(--serif); font-weight:300; font-size:clamp(2.2rem,5.4vw,4.2rem); margin:.7rem 0 0; }
.rituals__list{ width:min(1080px,92vw); margin:0 auto; }
.ritual{ display:grid; grid-template-columns:auto 1fr auto; gap:clamp(1.4rem,4vw,3.4rem); align-items:center;
  padding:clamp(1.8rem,4vw,3rem) 0; border-top:1px solid var(--line); text-decoration:none; color:inherit;
  transition:border-color .45s var(--ease); }
.ritual:last-child{ border-bottom:1px solid var(--line); }
.ritual:hover{ border-top-color:rgba(170,184,154,.45); }
.ritual:hover + .ritual{ border-top-color:rgba(170,184,154,.45); }
.ritual__time{ font-family:var(--serif); font-size:clamp(2.4rem,6vw,4.6rem); font-weight:300; color:var(--accent-soft); line-height:1; transition:color .4s var(--ease); }
.ritual:hover .ritual__time{ color:var(--paper); }
.ritual__name{ font-family:var(--serif); font-size:clamp(1.5rem,3vw,2.2rem); margin:0 0 .5rem; transition:color .4s var(--ease); }
.ritual:hover .ritual__name{ color:var(--accent-soft); }
.ritual__text{ color:rgba(244,241,234,.62); line-height:1.7; max-width:48ch; margin:0; font-size:.98rem; }
.ritual__pieces{ display:inline-flex; align-items:center; gap:.6rem; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent-soft); white-space:nowrap; transition:color .35s var(--ease); }
.ritual__pieces i{ width:16px; height:1px; background:currentColor; display:inline-block; transition:width .35s var(--ease); }
.ritual:hover .ritual__pieces{ color:var(--paper); }
.ritual:hover .ritual__pieces i{ width:30px; }
@media(max-width:720px){ .ritual{ grid-template-columns:1fr; gap:.6rem; } .ritual__pieces{ white-space:normal; } }

/* ============================================================
   BREAK (kinetic quote)
   ============================================================ */
.wbreak{ position:relative; min-height:90svh; display:grid; place-items:center; text-align:center; overflow:hidden; color:var(--paper); }
.wbreak__bg{ position:absolute; inset:-12% 0; }
.wbreak__bg img{ width:100%; height:124%; object-fit:cover; will-change:transform; }
.wbreak__veil{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,24,15,.5),rgba(18,24,15,.62)); }
.wbreak__in{ position:relative; width:min(960px,90vw); padding:2rem; }
.wbreak__q{ font-family:var(--serif); font-weight:300; font-style:italic; font-size:clamp(1.8rem,4.6vw,3.4rem); line-height:1.3; }
.wbreak__by{ margin-top:1.6rem; font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent-soft); }

/* ============================================================
   GALLERY (parallax columns)
   ============================================================ */
.wgallery{ background:var(--paper-2); padding:clamp(5rem,10vw,8rem) 0; }
.wgallery__head{ text-align:center; margin-bottom:clamp(2.4rem,5vw,3.6rem); }
.wgallery__head h2{ font-family:var(--serif); font-weight:300; font-size:clamp(2rem,4.6vw,3.4rem); margin:.6rem 0 0; }
.wgallery__cols{ width:min(1280px,92vw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.9rem,1.8vw,1.5rem); align-items:start; }
.wgallery__col{ display:flex; flex-direction:column; gap:clamp(.9rem,1.8vw,1.5rem); }
.wgallery__col:nth-child(2){ margin-top:clamp(2rem,6vw,5rem); }
.wgallery figure{ margin:0; overflow:hidden; border-radius:4px; }
.wgallery img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.2s var(--ease); }
.wgallery figure:hover img{ transform:scale(1.05); }
@media(max-width:720px){ .wgallery__cols{ grid-template-columns:1fr 1fr; } .wgallery__col:nth-child(3){ display:none; } }

/* ============================================================
   CTA
   ============================================================ */
.wcta{ position:relative; padding:clamp(6rem,14vw,11rem) 0; text-align:center; background:var(--warm-deep); color:var(--paper); overflow:hidden; }
.wcta__glow{ position:absolute; inset:0; background:radial-gradient(60% 60% at 50% 30%, var(--accent-tint), transparent 60%); }
.wcta__in{ position:relative; width:min(760px,90vw); margin:0 auto; }
.wcta .kicker{ color:var(--accent-soft); }
.wcta h2{ font-family:var(--serif); font-weight:300; font-size:clamp(2.6rem,6.4vw,5rem); line-height:1.04; margin:1.2rem 0 1.6rem; }
.wcta p{ color:rgba(244,241,234,.72); line-height:1.8; max-width:46ch; margin:0 auto 2.6rem; }
.wbtn{ display:inline-flex; align-items:center; gap:.9rem; text-decoration:none; font-size:.72rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--ink); background:var(--paper); padding:1.15rem 2.4rem; border-radius:999px; transition:background .4s var(--ease), color .4s; }
.wbtn:hover{ background:var(--accent); color:#fff; }
.wbtn i{ width:18px; height:1px; background:currentColor; transition:width .35s var(--ease); }
.wbtn:hover i{ width:32px; }

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  body.well{ cursor:auto; }
  .well a,.well button{ cursor:auto; }
  .cur,.fx-motes{ display:none; }
  .whero__title .ch{ opacity:1!important; transform:none!important; filter:none!important; }
  .whero__eyebrow,.whero__lede,.whero__scroll{ opacity:1!important; transform:none!important; }
  *{ animation-duration:.001ms!important; }
}
