@font-face{font-family:P2Sans;src:url('fonts/InclusiveSans-Variable.woff2') format('woff2');font-style:normal;font-weight:300 900;font-display:swap}
@font-face{font-family:P2Sans;src:url('fonts/InclusiveSans-Italic-Variable.woff2') format('woff2');font-style:italic;font-weight:300 900;font-display:swap}
@font-face{font-family:P2Display;src:url('fonts/NimbusSans-Bold.otf') format('opentype');font-style:normal;font-weight:800 900;font-display:swap}
@font-face{font-family:P2Display;src:url('fonts/NimbusSans-BoldItalic.otf') format('opentype');font-style:italic;font-weight:800 900;font-display:swap}
@font-face{font-family:P2Mono;src:url('fonts/InclusiveSans-Variable.woff2') format('woff2');font-style:normal;font-weight:500 800;font-display:swap}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#111;--deep:#090909;--deep2:#111;--cream:#f2e4cc;--red:#c96451;--redp:#f86c69;--gold:#edbe24;--coral:var(--red);--hot:var(--red);--muted:rgba(242,228,204,.52);--line:rgba(242,228,204,.12);--pad:clamp(24px,2.25vw,40px);--display:'Bricolage Grotesque',P2Display,sans-serif;--body:'Space Grotesk',P2Sans,sans-serif;--mono:'JetBrains Mono',P2Mono,monospace;--fm:var(--mono);--hand:'Caveat',cursive;--col:0px;--dark-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' seed='17' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.23'/%3E%3C/svg%3E");--dark-weave:repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px)}
html{background:var(--deep);scrollbar-width:none;scroll-behavior:auto}
html::-webkit-scrollbar{display:none}
body{background:var(--deep);color:var(--cream);font-family:var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0}
img{display:block;width:100%;height:100%;object-fit:cover}
::selection{background:var(--hot);color:var(--deep)}
:focus-visible{outline:2px solid var(--hot);outline-offset:5px}

#curtain{position:fixed;inset:0;z-index:999999;pointer-events:none;display:flex}
.cur-panel{position:relative;flex:1 1 0;height:100%;background:#0d0b09;will-change:transform;transform:translateY(0);box-shadow:inset -1px 0 0 rgba(242,228,204,.06)}
.cur-panel+.cur-panel{margin-left:-1px}
.cur-panel::after{content:"";position:absolute;top:0;bottom:0;right:-1px;width:2px;background:#0d0b09}
#curtain.out .cur-panel{animation:curOut 1.1s cubic-bezier(.76,0,.24,1) forwards}
@keyframes curOut{from{transform:translateY(0)}to{transform:translateY(-101%)}}
.cur-bar{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--red);z-index:3;opacity:0;animation:curBarShow .5s ease .3s forwards;transition:width .4s cubic-bezier(.4,0,.2,1)}
@keyframes curBarShow{to{opacity:1}}
#curtain.out .cur-bar{opacity:0;transition:opacity .25s ease}
@media(prefers-reduced-motion:reduce){#curtain{display:none!important}}

.nav{position:fixed;top:0;left:var(--col);right:var(--col);height:62px;z-index:100;display:flex;align-items:center;justify-content:center;padding:0 24px;overflow:visible}
.npill{pointer-events:all;display:flex;align-items:center;gap:2px;padding:5px 6px;border-radius:100px;background:rgba(12,12,12,.96);border:1px solid rgba(255,255,255,.07);position:relative;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 8px 32px rgba(0,0,0,.5);overflow:hidden}
.nav-hl{position:absolute;border-radius:100px;background:rgba(242,228,204,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),0 2px 12px rgba(0,0,0,.25);transition:left .3s cubic-bezier(.65,0,.35,1),width .3s cubic-bezier(.65,0,.35,1),top .3s cubic-bezier(.65,0,.35,1),height .3s cubic-bezier(.65,0,.35,1),background .25s ease,box-shadow .25s ease,opacity .2s;pointer-events:none;z-index:0;will-change:left,width}
.nav-hl.red{background:var(--red)}
.na,.na-contact{font-family:var(--fm);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream);opacity:.45;padding:8px 16px;border-radius:100px;position:relative;z-index:1;white-space:nowrap;text-decoration:none;transition:opacity .2s,color .2s;background:none}
.na:hover,.na-contact:hover{opacity:1}.na.on{opacity:1;color:#fff}.na.hot,.na-contact.hot{opacity:1}

.p2-progress{position:fixed;z-index:90;left:50%;bottom:16px;width:42px;height:7px;border:1px solid currentColor;border-radius:20px;transform:translateX(-50%);color:var(--cream);overflow:hidden;mix-blend-mode:difference;pointer-events:none}
.p2-progress i{display:block;width:0;height:100%;background:currentColor}
.p2-cursor{position:fixed;z-index:150;left:0;top:0;width:42px;height:42px;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .12s}
.p2-cursor.is-visible{opacity:1}.p2-cursor i{position:absolute;inset:3px;border:1px solid var(--hot);border-radius:50%}.p2-cursor i::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:var(--hot);transform:translate(-50%,-50%)}
.p2-cursor.is-active i{transform:scale(.65);background:rgba(243,58,61,.16)}

.p2-hero{position:relative;height:100svh;min-height:680px;overflow:hidden;background:#190b09}
.p2-hero__image{position:absolute;inset:-5%;width:110%;height:110%;filter:grayscale(.3) contrast(1.22) brightness(.54);will-change:transform}
.p2-hero__wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(84,28,22,.9),rgba(var(--red-rgb,201,100,81),.46) 48%,rgba(12,5,4,.6)),radial-gradient(circle at 72% 40%,transparent 0 25%,rgba(0,0,0,.55) 78%);mix-blend-mode:multiply}
.p2-hero__wash::after{content:"";position:absolute;inset:0;background:var(--coral);mix-blend-mode:color;opacity:.76}
.p2-hero__type{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:90px var(--pad) 64px}
.p2-hero h1{width:min(1030px,88vw);font:800 clamp(62px,7.6vw,116px)/.91 var(--display);letter-spacing:-.035em;text-align:center;text-transform:uppercase;color:#f6f1e7;text-wrap:balance}
.p2-hero h1 span{display:block;clip-path:inset(0 0 100% 0);transform:translateY(30px);animation:p2HeroLine .85s cubic-bezier(.16,1,.3,1) forwards}
.p2-hero h1 span:nth-child(2){animation-delay:.12s}.p2-hero h1 span:nth-child(3){animation-delay:.24s}
@keyframes p2HeroLine{to{clip-path:inset(0);transform:none}}
.p2-hero__micro{position:absolute;font:700 11px/1 var(--mono);text-transform:uppercase}.p2-hero__micro.m1{left:calc(50% - min(515px,44vw) - 24px);top:41%;transform:translateX(-100%)}.p2-hero__micro.m2{right:calc(50% - min(515px,44vw) - 24px);top:55%;transform:translateX(100%)}
.p2-hero__dek{position:absolute;bottom:8vh;left:50%;width:min(720px,80vw);font:700 clamp(15px,.95vw,18px)/1.4 var(--mono);letter-spacing:.01em;text-transform:uppercase;text-align:center;text-wrap:balance;transform:translateX(-50%)}
.p2-scroll-cue{position:absolute;z-index:3;right:var(--pad);bottom:28px;display:flex;align-items:center;gap:12px;font:700 11px/1 var(--mono);text-transform:uppercase}.p2-scroll-cue__mobile{display:none}.p2-scroll-cue i{display:block;width:48px;height:1px;background:currentColor;transform-origin:left;animation:cue 1.8s ease-in-out infinite}@keyframes cue{50%{transform:scaleX(.35)}}

.p2-meaning{min-height:115svh;background-color:var(--deep);background-image:var(--dark-grain),var(--dark-weave);background-size:180px 180px,3px 100%;background-blend-mode:soft-light,normal;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:1px;padding:12vh var(--pad);position:relative}
.p2-meaning__label{position:absolute;left:var(--pad);top:11vh;font:700 11px/1 var(--mono);color:var(--coral);text-transform:uppercase}
.p2-definition{padding:8vh 4vw;min-height:64vh;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);transition:background .3s,color .3s}
.p2-definition:hover{background:var(--cream);color:var(--deep)}
.p2-definition h2{font:800 clamp(70px,10vw,150px)/.9 var(--display);letter-spacing:-.04em}.p2-definition:first-of-type h2{color:var(--hot)}
.p2-definition p{max-width:46ch;font:700 14px/1.45 var(--mono);text-transform:uppercase}

.p2-evidence{position:relative;height:110svh;display:grid;grid-template-columns:1fr 1fr;background-color:#080807;background-image:var(--dark-grain),var(--dark-weave);background-size:180px 180px,3px 100%;background-blend-mode:soft-light,normal;gap:1px;overflow:hidden;isolation:isolate;contain:layout paint style}
.p2-evidence__canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1)}
.p2-evidence.is-interactive .p2-evidence__canvas{opacity:1}
.p2-evidence__seam{position:absolute;z-index:3;left:50%;top:0;bottom:0;width:1px;background:rgba(242,228,204,.13);pointer-events:none}
.p2-evidence__seam i{position:absolute;left:50%;top:50%;width:9px;height:9px;border:1px solid var(--coral);border-radius:50%;background:#080807;transform:translate(-50%,-50%);box-shadow:0 0 0 6px rgba(var(--red-rgb,201,100,81),.08),0 0 30px rgba(var(--red-rgb,201,100,81),.18)}
.p2-evidence__panel{position:relative;z-index:2;overflow:hidden;color:var(--cream);isolation:isolate;outline-offset:-3px}
.p2-evidence__panel img{position:absolute;inset:0;z-index:-2;filter:saturate(.25) contrast(1.12) brightness(.68);transition:opacity .55s ease,transform .9s cubic-bezier(.16,1,.3,1),filter .3s}
.p2-evidence.is-interactive .p2-evidence__panel img{opacity:0}
.p2-evidence__panel::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at var(--evidence-x,50%) var(--evidence-y,50%),rgba(var(--red-rgb,201,100,81),.12),transparent 24%),linear-gradient(transparent 38%,rgba(5,5,4,.91));transition:background .25s ease}
.p2-evidence__panel::after{content:"";position:absolute;inset:16px;z-index:0;border:1px solid rgba(242,228,204,.06);clip-path:polygon(0 0,35px 0,35px 1px,1px 1px,1px 35px,0 35px,0 100%,35px 100%,35px calc(100% - 1px),1px calc(100% - 1px),1px calc(100% - 35px),0 calc(100% - 35px),100% calc(100% - 35px),calc(100% - 1px) calc(100% - 35px),calc(100% - 1px) calc(100% - 1px),calc(100% - 35px) calc(100% - 1px),calc(100% - 35px) 100%,100% 100%,100% 0,calc(100% - 35px) 0,calc(100% - 35px) 1px,calc(100% - 1px) 1px,calc(100% - 1px) 35px,100% 35px);opacity:.72;pointer-events:none}
.p2-evidence__panel>div{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:var(--pad);transform:translateY(0);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.p2-evidence__panel:hover>div,.p2-evidence__panel:focus-visible>div{transform:translateY(-10px)}
.p2-evidence__panel span{display:flex;align-items:center;gap:9px;font:700 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--redp)}
.p2-evidence__panel span::before{content:"";width:18px;height:1px;background:currentColor;transition:width .35s cubic-bezier(.16,1,.3,1)}
.p2-evidence__panel:hover span::before,.p2-evidence__panel:focus-visible span::before{width:34px}
.p2-evidence__panel h2{font:800 clamp(54px,6vw,92px)/.92 var(--display);letter-spacing:-.025em;text-transform:uppercase;margin-top:10px}.p2-evidence__panel p{font:600 14px/1.5 var(--mono);letter-spacing:.03em;text-transform:uppercase;margin-top:10px;color:rgba(242,228,204,.74)}

.p2-section-breath{
  position:relative;
  min-height:clamp(150px,24vh,250px);
  display:grid;
  grid-template-columns:auto minmax(80px,1fr) auto;
  align-items:center;
  gap:22px;
  padding:0 var(--pad);
  background-color:var(--deep);
  background-image:var(--dark-grain),var(--dark-weave);
  background-size:180px 180px,3px 100%;
  background-blend-mode:soft-light,normal;
  color:rgba(242,228,204,.42);
  font:700 9px/1 var(--mono);
  letter-spacing:.14em;
  text-transform:uppercase;
  overflow:hidden;
}
.p2-section-breath::before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:min(460px,58vw);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(var(--red-rgb,201,100,81),.09),transparent 68%);
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.p2-section-breath i{display:block;height:1px;background:linear-gradient(90deg,rgba(242,228,204,.08),var(--coral),rgba(242,228,204,.08))}
.p2-section-breath span{position:relative;z-index:1}

.p2-manifesto{position:relative;height:150svh;min-height:980px;background:#2a100d;overflow:hidden}
.p2-manifesto>img{position:absolute;inset:0;filter:grayscale(.65) contrast(1.25) brightness(.42);will-change:transform}
.p2-manifesto__wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(63,20,15,.78),rgba(var(--red-rgb,201,100,81),.38)),var(--coral);mix-blend-mode:multiply}
.p2-manifesto__copy{position:sticky;top:0;height:100svh;display:grid;place-items:center;padding:8vh var(--pad);z-index:2}
.p2-manifesto h2{font:800 clamp(58px,7vw,108px)/.92 var(--display);letter-spacing:-.035em;text-align:center;text-transform:uppercase;color:#f6f1e7}.p2-manifesto h2 span{display:block}
.p2-manifesto p{position:absolute;left:50%;bottom:8vh;width:min(720px,82vw);font:700 clamp(15px,.95vw,18px)/1.4 var(--mono);letter-spacing:.01em;text-transform:uppercase;text-align:center;text-wrap:balance;transform:translateX(-50%)}

.p2-pillars{position:relative;min-height:110svh;display:grid;align-items:end;overflow:hidden;background:#1c0d0b;padding:8vh var(--pad) 10vh}
.p2-pillars__bg,.p2-pillars__wash{position:absolute;inset:0}.p2-pillars__bg{width:100%;height:100%;object-fit:cover;filter:saturate(.88) brightness(.68);transform:scale(1.02)}.p2-pillars__wash{background:linear-gradient(90deg,rgba(0,0,0,.34),rgba(42,15,12,.18),rgba(0,0,0,.34)),linear-gradient(0deg,rgba(0,0,0,.48),rgba(0,0,0,.1));mix-blend-mode:normal}
.p2-pillars__grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;align-items:start}
.p2-pillar{min-height:56vh;display:flex;flex-direction:column}.p2-pillar>span,.p2-pillar>b{font:700 11px/1 var(--mono);color:var(--hot)}.p2-pillar h2{font:800 clamp(48px,4.6vw,72px)/.92 var(--display);letter-spacing:-.025em;text-transform:uppercase;color:var(--hot);margin-top:auto}.p2-pillar p{font:600 14px/1.5 var(--mono);text-transform:uppercase;margin:32px 0 22px;max-width:36ch}.p2-pillar b{margin-top:auto;color:var(--cream)}
.p2-pillar:nth-child(3) p{max-width:38ch}

.p2-practice-intro{min-height:110svh;background:var(--cream);color:var(--hot);display:flex;flex-direction:column;justify-content:center;padding:12vh 19vw 8vh}
.p2-practice-intro>p{font:700 11px/1 var(--mono);text-transform:uppercase;margin-bottom:26px}.p2-practice-intro h2{font:800 clamp(64px,7.3vw,112px)/.94 var(--display);letter-spacing:-.035em;text-wrap:balance}
.p2-practice-intro__split{display:flex;justify-content:space-between;font:700 11px/1 var(--mono);text-transform:uppercase;margin-top:30px}.p2-practice-intro>a{align-self:center;margin-top:14vh;font:700 12px/1 var(--mono);text-transform:uppercase}.p2-practice-intro>a i{margin-left:15px}

.p2-phase{height:155svh;min-height:1160px;background:var(--cream);color:var(--hot);position:relative}
.p2-phase:nth-child(even){background:#eee9df}.p2-phase__sticky{position:sticky;top:0;height:100svh;min-height:680px;overflow:hidden}
.p2-fragments{position:absolute;left:50%;top:50%;width:min(610px,48vw);height:min(610px,68vh);transform:translate(-50%,-50%);will-change:transform}
.p2-fragment{position:absolute;inset:0;will-change:transform,opacity;overflow:hidden}.p2-fragment img{position:absolute;inset:0;filter:grayscale(.82) contrast(1.15);transform:scale(1.04)}
.p2-fragment.f1{clip-path:polygon(18% 8%,96% 0,69% 43%,29% 51%)}
.p2-fragment.f2{clip-path:polygon(0 43%,61% 26%,45% 62%,28% 92%)}
.p2-fragment.f3{clip-path:polygon(45% 62%,76% 26%,63% 54%,94% 90%)}
.p2-phase--ai .p2-fragment img{filter:saturate(.82) contrast(1.14)}
.p2-phase__name{position:absolute;left:var(--pad);bottom:6vh;z-index:3}.p2-phase__name>span{font:700 11px/1 var(--mono);text-transform:uppercase}.p2-phase__name h2{font:800 clamp(55px,6vw,96px)/.92 var(--display);text-transform:uppercase;letter-spacing:-.03em;margin-top:12px}
.p2-phase__copy{position:absolute;right:var(--pad);bottom:6vh;width:min(350px,27vw);z-index:3;font:700 13px/1.4 var(--mono);text-transform:uppercase;text-align:justify}.p2-phase__copy strong{display:block;margin-top:18px;color:#8d2828;font-weight:700}
.p2-phase__counter{position:absolute;left:50%;bottom:21px;font:700 10px/1 var(--mono);transform:translateX(-50%)}

.p2-principles{min-height:100svh;background:var(--hot);color:var(--on-hot,var(--deep));display:grid;grid-template-columns:1fr 1fr;gap:7vw;padding:12vh var(--pad)}
.p2-principles__title,.p2-principles__list{min-width:0}
.p2-principles__title span{font:700 11px/1 var(--mono);text-transform:uppercase}.p2-principles__title h2{font:800 clamp(70px,8vw,130px)/.9 var(--display);letter-spacing:-.04em;text-transform:uppercase;margin-top:34px}
.p2-principles__list{display:flex;flex-direction:column;justify-content:center}.p2-principles__list p{min-width:0;overflow-wrap:anywhere;display:grid;grid-template-columns:42px minmax(0,1fr);gap:16px;padding:22px 0;border-bottom:1px solid var(--on-hot-line,rgba(0,0,0,.25));font:800 clamp(18px,2vw,30px)/1 var(--display);text-transform:uppercase}.p2-principles__list span{font:700 11px/1 var(--mono)}

.p2-footer{position:relative;min-height:100svh;background-color:var(--deep);background-image:var(--dark-grain),var(--dark-weave);background-size:180px 180px,3px 100%;background-blend-mode:soft-light,normal;overflow:hidden;padding:10vh var(--pad) 5vh;display:flex;flex-direction:column;color:var(--cream)}
/* The photograph is faded with a mask on its own alpha rather than a gradient
   painted on top of it. The previous ::after was a rectangle starting hard at
   left:50%, and two things made that edge visible: the wrapper's opacity
   applied to the overlay as well, so it could only ever darken by 42% and
   never actually matched the ground behind it; and the overlay was flat
   #090909 while the footer carries grain and weave, so the texture visibly
   flattened at the midpoint. Masking removes the rectangle entirely, so the
   footer's own texture runs unbroken and the image simply dissolves into it.
   The start also moves from 50% to 30% with a long ramp, so there is no single
   place where the eye can find an onset. */
.p2-footer__image{position:absolute;inset:0 0 0 30%;opacity:.42;
  -webkit-mask-image:
    linear-gradient(90deg,transparent 0,rgba(0,0,0,.08) 18%,rgba(0,0,0,.34) 38%,rgba(0,0,0,.72) 62%,#000 84%),
    linear-gradient(to top,transparent 0,rgba(0,0,0,.5) 14%,#000 34%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(90deg,transparent 0,rgba(0,0,0,.08) 18%,rgba(0,0,0,.34) 38%,rgba(0,0,0,.72) 62%,#000 84%),
    linear-gradient(to top,transparent 0,rgba(0,0,0,.5) 14%,#000 34%);
  mask-composite:intersect}
.p2-footer__image img{filter:grayscale(.8) contrast(1.2) brightness(.55)}
.p2-footer__image::after{content:none}
.p2-footer__copy{position:relative;z-index:2;margin-top:auto}.p2-footer__copy>span{font:600 clamp(20px,2.1vw,30px)/1 var(--hand);color:var(--redp)}.p2-footer h2{font:800 clamp(72px,10vw,155px)/.9 var(--display);letter-spacing:-.04em;text-transform:uppercase;margin:22px 0 42px}.p2-footer__copy>a{font:700 clamp(16px,2vw,26px)/1.2 var(--body);border-bottom:1px solid currentColor;padding-bottom:6px}
.p2-footer>nav{position:relative;z-index:2;display:flex;gap:30px;margin-top:10vh;font:700 11px/1 var(--mono);text-transform:uppercase}.p2-footer>p{position:absolute;right:var(--pad);bottom:5vh;font:700 11px/1 var(--mono);text-transform:uppercase}

/* ── FOOTER TYPE VORTEX ─────────────────────────────────────────
   Sits in the right half, above the photograph but under the copy
   (which holds z-index 2), so the headline never has to compete
   with moving type. Rings counter-rotate and speed up toward the
   centre; a single shared rotation would just read as a spinning
   graphic, whereas differential speed reads as depth. Only the
   transform is animated, so each ring stays on its own layer and
   nothing relayouts. */
.p2-footer__vortex{position:absolute;z-index:1;pointer-events:none;
  top:50%;right:-6%;transform:translateY(-50%);
  width:min(58vw,720px);aspect-ratio:1;
  -webkit-mask-image:radial-gradient(closest-side,#000 58%,transparent 100%);
  mask-image:radial-gradient(closest-side,#000 58%,transparent 100%)}
.p2-footer__vortex svg{width:100%;height:100%;display:block;overflow:visible}
.p2-footer__vortex text{font-family:var(--mono);font-weight:700;fill:var(--cream);letter-spacing:.14em}
.pfv-r{transform-box:view-box;transform-origin:500px 500px;
  animation:pfvSpin linear infinite;will-change:transform}
@keyframes pfvSpin{to{transform:rotate(360deg)}}
/* Slow enough to read a phrase as it passes. The outer ring takes over three
   minutes for one turn and the innermost about eighty seconds; the ratio is
   roughly 2.4:1 rather than the 4:1 it was, so the rings still separate into
   depth without the inner ones looking hurried. */
.pfv-r1{animation-duration:200s;opacity:.22}
.pfv-r2{animation-duration:172s;animation-direction:reverse;opacity:.28}
.pfv-r3{animation-duration:148s;opacity:.34}
/* the one accent ring, so the vortex reads as part of the palette */
.pfv-r4{animation-duration:128s;animation-direction:reverse;opacity:.80}
.pfv-r4 text{fill:var(--redp)}
.pfv-r5{animation-duration:110s;opacity:.42}
.pfv-r6{animation-duration:95s;animation-direction:reverse;opacity:.50}
.pfv-r7{animation-duration:82s;opacity:.60}

@media(max-height:700px) and (min-width:781px){
  .p2-manifesto h2{font-size:clamp(58px,7vw,92px)}
  .p2-manifesto p{bottom:4vh;width:min(900px,82vw);font-size:16px;line-height:1.35}
}
@media(max-width:1320px){.p2-hero__micro{display:none}}
@media(max-width:780px){
  .p2-cursor{display:none}.p2-progress{bottom:22px}
  .p2-hero{min-height:740px}.p2-hero__type{padding:75px 18px 100px}.p2-hero h1{font-size:clamp(50px,14.6vw,72px);width:100%;line-height:.92}.p2-hero__dek{top:calc(100svh - 255px);bottom:auto;font-size:14px;line-height:1.4;letter-spacing:0;word-spacing:0;text-align:center;text-wrap:balance}.p2-hero__micro{display:none}.p2-scroll-cue{right:18px;top:calc(100svh - 150px);bottom:auto}.p2-scroll-cue__desktop{display:none}.p2-scroll-cue__mobile{display:inline}
  .p2-meaning{grid-template-columns:1fr;min-height:auto;padding:110px 18px 70px}.p2-meaning__label{left:18px;top:75px}.p2-definition{min-height:48vh;padding:48px 18px}.p2-definition h2{font-size:23vw}
  .p2-evidence{height:auto;grid-template-columns:1fr;grid-template-rows:repeat(2,72svh);min-height:1180px}.p2-evidence__canvas{height:100%}.p2-evidence__seam{left:0;right:0;top:50%;bottom:auto;width:auto;height:1px}.p2-evidence__panel{height:72svh;min-height:560px}.p2-evidence__panel>div{left:18px;right:18px;bottom:22px}
  .p2-section-breath{min-height:150px;grid-template-columns:1fr;justify-items:center;gap:14px;padding:36px 18px;text-align:center}.p2-section-breath i{width:min(220px,70vw)}
  .p2-manifesto{height:135svh;min-height:900px}.p2-manifesto__copy{padding:65px 18px 110px}.p2-manifesto h2{font-size:9.3vw;line-height:1.04;letter-spacing:-.022em}.p2-manifesto h2 span{white-space:nowrap}.p2-manifesto p{bottom:9vh;width:min(520px,88vw);font-size:14px;line-height:1.4;letter-spacing:0;word-spacing:0;text-align:center;text-wrap:balance}
  .p2-pillars{padding:82px 18px 90px}.p2-pillars__grid{grid-template-columns:1fr;gap:70px}.p2-pillar{min-height:52vh}.p2-pillar h2{font-size:21vw}.p2-pillar p{font-size:14px;line-height:1.4;letter-spacing:0;word-spacing:0}
  .p2-practice-intro{padding:110px 18px 70px;min-height:100svh}.p2-practice-intro h2{font-size:14vw}.p2-practice-intro__split{gap:20px}.p2-practice-intro>a{display:flex;min-height:44px;align-items:center;margin-top:16vh;touch-action:manipulation}
  .p2-phase{height:145svh;min-height:1050px}.p2-phase__sticky{min-height:700px}.p2-fragments{width:100vw;height:54vh;top:45%}.p2-phase__name{left:18px;bottom:14vh}.p2-phase__name h2{font-size:14vw}.p2-phase__copy{left:18px;right:18px;bottom:4vh;width:auto;font-size:12px;line-height:1.4}.p2-phase__copy p{display:none}.p2-phase__copy strong{margin:0}.p2-phase__counter{bottom:18px;left:auto;right:18px;transform:none}
  .p2-principles{grid-template-columns:1fr;padding:100px 18px}.p2-principles__title h2{max-width:100%;font-size:clamp(58px,17vw,76px);line-height:.92;letter-spacing:-.04em}.p2-principles__list p{font-size:21px;line-height:1.08}
  .p2-footer{padding:90px 18px 120px}
  /* Full-bleed on small screens with the copy centred over it, so the
     horizontal ramp is dropped and only a vertical dissolve remains. */
  .p2-footer__image{inset:0;opacity:.25;
    -webkit-mask-image:linear-gradient(to top,transparent 0,rgba(0,0,0,.5) 16%,#000 44%);
    mask-image:linear-gradient(to top,transparent 0,rgba(0,0,0,.5) 16%,#000 44%)}
  .p2-footer__copy{text-align:center}.p2-footer h2{font-size:22vw}.p2-footer__copy>a{display:flex;min-height:44px;align-items:center;justify-content:center;touch-action:manipulation}.p2-footer>nav{display:none}.p2-footer>p{left:50%;right:auto;bottom:66px;text-align:center;white-space:nowrap;transform:translateX(-50%)}
  /* The copy centres on small screens, so the vortex moves behind it and drops
     back rather than sitting beside it. The outer rings are dropped entirely:
     at this width their glyphs fall below legible size and only add noise. */
  .p2-footer__vortex{top:46%;right:auto;left:50%;width:min(94vw,400px);
    transform:translate(-50%,-50%);opacity:.62}
  .pfv-r1,.pfv-r2{display:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.p2-cursor{display:none}.p2-hero h1 span{clip-path:none;transform:none}.p2-fragment{transform:none!important}.p2-hero__image,.p2-manifesto>img{transform:none!important}}

/* PROCESS REEL · progressive enhancement over the seven phase articles */
.p2-reel-ready .p2-phases{
  --reel-accent:#f33a3d;
  position:relative;
  height:620svh;
  min-height:4700px;
  overflow:clip;
  isolation:isolate;
  contain:layout paint style;
  background:
    var(--dark-grain),
    var(--dark-weave),
    radial-gradient(circle at 72% 38%,rgba(var(--red-rgb,201,100,81),.12),transparent 31%),
    radial-gradient(circle at 28% 66%,rgba(237,190,36,.06),transparent 26%),
    var(--deep);
  background-size:180px 180px,3px 100%,auto,auto,auto;
  background-blend-mode:soft-light,normal,normal,normal,normal;
}
.p2-reel-ready .p2-phases::before{
  content:"";
  position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(242,228,204,.13) .55px,transparent .7px);
  background-size:4px 4px;
  opacity:.18;
  pointer-events:none;
}
.p2-process-art{
  position:sticky;
  top:0;
  z-index:0;
  display:block;
  width:100%;
  height:100svh;
  min-height:680px;
  margin-bottom:-100svh;
  opacity:0;
  pointer-events:none;
  transition:opacity .7s cubic-bezier(.16,1,.3,1);
}
@media(prefers-reduced-motion:no-preference){
  .p2-art-ready .p2-process-art{opacity:1}
  .p2-art-ready .p2-fragments{opacity:0;visibility:hidden}
  .p2-art-ready .p2-phase__sticky::before{
    background:
      linear-gradient(90deg,rgba(9,9,9,.82) 0,rgba(9,9,9,.08) 34%,rgba(9,9,9,.02) 68%,rgba(9,9,9,.7) 100%),
      linear-gradient(0deg,rgba(9,9,9,.82),transparent 35%,transparent 73%,rgba(9,9,9,.2));
  }
}
.p2-reel-ready .p2-phase{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  min-height:0;
  overflow:visible;
  background:transparent!important;
  color:var(--cream);
  opacity:0;
  pointer-events:none;
  will-change:opacity;
}
.p2-reel-ready .p2-phase__sticky{
  position:sticky;
  top:0;
  height:100svh;
  min-height:680px;
  overflow:hidden;
  background:transparent;
}
.p2-reel-ready .p2-phase__sticky::before{
  content:"";
  position:absolute;inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(9,9,9,.9) 0,rgba(9,9,9,.16) 34%,rgba(9,9,9,.05) 64%,rgba(9,9,9,.78) 100%),
    linear-gradient(0deg,rgba(9,9,9,.86),transparent 33%,transparent 72%,rgba(9,9,9,.3));
  pointer-events:none;
}
.p2-reel-ready .p2-fragments{
  position:absolute;
  left:50%;top:46%;
  width:min(930px,65vw);
  height:min(720px,73vh);
  transform:translate(-50%,-50%);
  will-change:transform;
  z-index:0;
}
.p2-reel-ready .p2-fragment{
  position:absolute;inset:0;
  overflow:hidden;
  opacity:1;
  will-change:transform,filter;
  transform-origin:center;
}
.p2-reel-ready .p2-fragment img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  filter:saturate(.58) contrast(1.12) brightness(.72);
  transform:scale(1.035);
}
.p2-reel-ready .p2-phase--ai .p2-fragment img{filter:saturate(.8) contrast(1.12) brightness(.76)}
.p2-reel-ready .p2-fragment.f1{clip-path:polygon(9% 17%,93% 2%,71% 44%,27% 53%)}
.p2-reel-ready .p2-fragment.f2{clip-path:polygon(0 45%,64% 27%,49% 67%,24% 94%)}
.p2-reel-ready .p2-fragment.f3{clip-path:polygon(49% 67%,79% 24%,65% 58%,96% 91%)}
.p2-reel-ready .p2-phase__name{
  position:absolute;
  z-index:4;
  left:var(--pad);bottom:7vh;
  width:min(700px,57vw);
  color:var(--cream);
  will-change:opacity,transform,filter;
}
.p2-reel-ready .p2-phase__name>span{
  display:block;
  margin-bottom:14px;
  font:700 11px/1 var(--mono);
  letter-spacing:.1em;
  color:var(--hot);
  text-transform:uppercase;
}
.p2-reel-ready .p2-phase__name h2{
  margin:0;
  font:800 clamp(64px,8vw,126px)/.91 var(--display);
  letter-spacing:-.038em;
  color:var(--cream);
  text-transform:uppercase;
  text-wrap:balance;
}
.p2-reel-ready .p2-phase__name h2 br{display:block}
.p2-reel-ready .p2-phase__copy{
  position:absolute;
  z-index:4;
  right:var(--pad);bottom:7vh;
  width:min(400px,29vw);
  color:var(--cream);
  font:600 clamp(13px,1vw,15px)/1.5 var(--body);
  letter-spacing:0;
  text-align:left;
  text-transform:none;
  will-change:opacity,transform,filter;
}
.p2-reel-ready .p2-phase__copy p{color:rgba(242,228,204,.88);text-wrap:pretty}
.p2-reel-ready .p2-phase__copy strong{
  display:block;
  margin-top:20px;
  padding-top:14px;
  border-top:1px solid rgba(242,228,204,.24);
  color:var(--redp);
  font:700 clamp(11px,.72vw,12px)/1.5 var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.p2-reel-ready .p2-phase__counter{display:none}
.p2-reel-ui{
  position:sticky;
  top:0;
  z-index:20;
  height:100svh;
  min-height:680px;
  margin-bottom:-100svh;
  color:var(--cream);
  pointer-events:none;
}
.p2-reel-ui__meta{
  position:absolute;
  left:var(--pad);right:var(--pad);top:88px;
  display:flex;justify-content:space-between;gap:20px;
  font:700 11px/1 var(--mono);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(242,228,204,.68);
}
.p2-reel-ui__status{color:var(--hot)}
.p2-reel-ui__rail{
  position:absolute;
  z-index:2;
  left:50%;top:86px;
  display:flex;align-items:flex-start;gap:4px;
  transform:translateX(-50%);
  pointer-events:auto;
}
.p2-reel-ui__rail button{
  position:relative;
  width:54px;
  min-height:42px;
  padding:0 5px;
  color:rgba(242,228,204,.34);
  cursor:pointer;
}
.p2-reel-ui__rail button span{display:block;font:700 10px/1 var(--mono);transition:color .18s ease,transform .18s ease}
.p2-reel-ui__rail button i{position:relative;display:block;width:100%;height:1px;margin-top:8px;background:rgba(242,228,204,.2);overflow:hidden;transform-origin:left;transition:background .18s ease,transform .3s cubic-bezier(.16,1,.3,1)}
.p2-reel-ui__rail button i::after{content:"";position:absolute;inset:0;background:var(--hot);transform:scaleX(var(--phase-fill,0));transform-origin:left;transition:transform .12s linear}
.p2-reel-ui__rail button b{position:absolute;left:50%;top:28px;font:700 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translate(-50%,5px);transition:opacity .18s ease,transform .18s ease}
.p2-reel-ui__rail button:hover,.p2-reel-ui__rail button:focus-visible,.p2-reel-ui__rail button.is-active{color:var(--cream)}
.p2-reel-ui__rail button:hover span,.p2-reel-ui__rail button:focus-visible span{transform:translateY(-2px)}
.p2-reel-ui__rail button:hover i,.p2-reel-ui__rail button:focus-visible i,.p2-reel-ui__rail button.is-active i{transform:scaleX(.72)}
.p2-reel-ui__rail button:hover b,.p2-reel-ui__rail button:focus-visible b,.p2-reel-ui__rail button.is-active b{opacity:1;transform:translate(-50%,0)}
.p2-reel-ui__hint{position:absolute;right:var(--pad);top:50%;display:flex;align-items:center;gap:12px;font:700 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(242,228,204,.68);transform:rotate(90deg) translateX(50%);transform-origin:right center}
.p2-reel-ui__hint i{display:block;width:42px;height:1px;background:var(--hot);animation:cue 1.8s ease-in-out infinite}

@media(max-width:780px){
  .p2-reel-ready .p2-phases{height:560svh;min-height:4100px}
  .p2-reel-ready .p2-phase__sticky,.p2-reel-ui{min-height:700px}
  .p2-process-art{min-height:700px}
  .p2-reel-ready .p2-fragments{top:43%;width:112vw;height:54vh}
  .p2-reel-ready .p2-phase__sticky::before{background:linear-gradient(0deg,rgba(9,9,9,.94) 0,rgba(9,9,9,.18) 38%,rgba(9,9,9,.08) 72%,rgba(9,9,9,.66) 100%)}
  .p2-art-ready .p2-phase__sticky::before{background:linear-gradient(0deg,rgba(9,9,9,.92) 0,rgba(9,9,9,.07) 43%,rgba(9,9,9,.03) 72%,rgba(9,9,9,.5) 100%)}
  .p2-reel-ready .p2-phase__name{left:18px;right:18px;bottom:20vh;width:auto}
  .p2-reel-ready .p2-phase__name>span{margin-bottom:10px;font-size:11px}
  .p2-reel-ready .p2-phase__name h2{font-size:clamp(46px,13.5vw,68px);line-height:.92}
  .p2-reel-ready .p2-phase__copy{left:18px;right:18px;bottom:5vh;width:auto;font-size:14px;line-height:1.5}
  /* Was a literal warm cream at .82, which reads yellow beside the Signal palette. */
  .p2-reel-ready .p2-phase__copy p{display:block;max-width:43ch;color:rgba(var(--cream-rgb),.95)}
  .p2-reel-ready .p2-phase__copy strong{margin-top:11px;padding-top:10px;font-size:11px;line-height:1.45}
  .p2-reel-ui__meta{left:18px;right:18px;top:70px;font-size:11px}
  .p2-reel-ui__rail{top:95px;width:calc(100% - 28px);justify-content:center;gap:0}
  .p2-reel-ui__rail button{width:calc((100vw - 32px)/7);min-height:44px;padding:0 3px;touch-action:manipulation}
  .p2-reel-ui__rail button b{display:none}
  .p2-reel-ui__hint{display:none}
}
@media(prefers-reduced-motion:reduce){
  .p2-reel-ready .p2-phases{height:auto;min-height:0;overflow:visible}
  .p2-reel-ready .p2-phases::before,.p2-reel-ui,.p2-process-art{display:none}
  .p2-reel-ready .p2-phase{position:relative;height:auto;min-height:100svh;opacity:1!important}
  .p2-reel-ready .p2-phase__sticky{position:relative;height:100svh}
  .p2-reel-ready .p2-fragment{opacity:1!important;filter:none!important}
  .p2-reel-ready .p2-phase__name,.p2-reel-ready .p2-phase__copy{opacity:1!important;transform:none!important;filter:none!important}
}
@media(max-width:640px){html{overflow-x:clip}.nav{display:none}.p2-progress{bottom:96px}}
@media(max-width:780px),(max-height:500px) and (pointer:coarse){
  .p2-reel-ready .p2-phases{
    height:100svh;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    scroll-snap-type:y mandatory;
    scroll-behavior:smooth;
    overscroll-behavior-y:auto;
    scrollbar-width:none;
    contain:layout paint style;
  }
  .p2-reel-ready .p2-phases::-webkit-scrollbar{display:none}
  .p2-process-art{display:block;height:100svh;min-height:0}
  .p2-art-ready .p2-process-art{opacity:1}
  .p2-art-ready .p2-fragments{opacity:0!important;visibility:hidden!important}
  .p2-reel-ready .p2-phase{
    position:relative;
    inset:auto;
    width:100%;
    height:100svh;
    min-height:100svh;
    overflow:hidden;
    opacity:1!important;
    pointer-events:auto;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .p2-reel-ready .p2-phase__sticky{position:relative;height:100%;min-height:0}
  .p2-reel-ready .p2-phase__copy{bottom:max(100px,8vh)}
  .p2-reel-ready .p2-phase__name{bottom:max(225px,24vh)}
  .p2-reel-ui{height:100svh;min-height:0;margin-bottom:-100svh}
}
@media(max-width:640px){
  .p2-reel-ready .p2-phases,.p2-reel-ready .p2-phase__sticky{max-width:100vw;contain:layout paint}
  .p2-reel-ready .p2-phase__sticky{overflow:hidden}
  .p2-mobile-phase-pager .p2-phases{overflow-x:hidden;overflow-y:auto}
  .p2-reel-ready .p2-fragments{contain:layout paint}
  .p2-reel-ready .p2-fragments{width:100vw}
  .p2-scroll-cue{min-height:44px}
  /* Stack and centre the cue, with the rule beneath the label so it reads as a
     scroll hint rather than a line tacked onto the side. */
  .p2-scroll-cue{left:0;right:0;flex-direction:column;justify-content:center;gap:10px;text-align:center}
  .p2-scroll-cue i{width:56px;transform-origin:center}
}
@media(max-width:360px){.p2-reel-ui__rail{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.p2-reel-ui__rail::-webkit-scrollbar{display:none}.p2-reel-ui__rail button{flex:0 0 44px;width:44px}}
@media(max-height:500px) and (pointer:coarse){.p2-practice-intro>a,.p2-reel-ui__rail button{min-height:44px;touch-action:manipulation}}
@media(max-height:500px) and (pointer:coarse){.p2-hero__dek{left:50%;top:auto;bottom:144px;width:min(82vw,460px);font-size:14px;line-height:1.4;letter-spacing:0;word-spacing:0;text-align:center;text-wrap:balance;transform:translateX(-50%)}.p2-scroll-cue{left:50%;right:auto;top:auto;bottom:92px;transform:translateX(-50%)}.p2-manifesto p{bottom:92px;width:min(520px,82vw);font-size:14px;line-height:1.4;letter-spacing:0;word-spacing:0;text-align:center;text-wrap:balance}.p2-scroll-cue,.p2-footer__copy>a,.p2-footer>nav a{display:flex;min-width:44px;min-height:44px;align-items:center;touch-action:manipulation}.p2-scroll-cue__desktop{display:none}.p2-scroll-cue__mobile{display:inline}}