/* ============================================================
   PIREX v3 — Private-bank noir
   Layered over theme.css: same class names, new tokens, new
   components. Remove the 'pirex-v3' enqueue to revert.
   ============================================================ */

:root{
  --px-obsidian:#07080B;
  --px-slate:#0D0F14;
  --px-slate-2:#13161D;
  --px-hairline:rgba(233,224,205,.09);
  --px-hairline-strong:rgba(233,224,205,.2);

  /* the old blue slots now carry champagne gold */
  --px-blue:#C9A45C;
  --px-blue-soft:#E6CB92;
  --px-emerald:#3DDC97;
  --px-amber:#E8B04A;
  --px-muted:#9B9CA4;

  --px-gold:#C9A45C;
  --px-gold-hi:#F0DCAA;
  --px-gold-lo:#8F7234;
  --px-ivory:#F4EFE4;
  --px-gold-rgb:201,164,92;

  --px-r-sm:8px;
  --px-r:12px;
  --px-r-lg:18px;
  --px-r-pill:3px;

  --px-header-h:76px;
  --px-ease:cubic-bezier(.16,.84,.3,1);
}

body{
  --px-serif:'Instrument Serif','Cormorant Garamond',Georgia,'Times New Roman',serif;
  --px-sans:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --px-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --wp--preset--font-family--display:var(--px-serif);
  --wp--preset--font-family--text:var(--px-sans);
  --wp--preset--font-family--mono:var(--px-mono);
  font-family:var(--px-sans);
  color:var(--px-ivory);
  background:var(--px-obsidian);
  font-feature-settings:"ss01","cv11";
}

::selection{ background:rgba(var(--px-gold-rgb),.35); color:#fff }
html{ scrollbar-color:#2a2c33 var(--px-obsidian); scrollbar-width:thin }

/* Ambient light: warm, low, and fixed behind everything */
body::before{
  background:
    radial-gradient(900px 520px at 8% -8%, rgba(var(--px-gold-rgb),.14), transparent 62%),
    radial-gradient(700px 480px at 96% 4%, rgba(61,220,151,.05), transparent 60%),
    radial-gradient(1000px 700px at 50% 112%, rgba(var(--px-gold-rgb),.07), transparent 64%);
}
body::after{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.5;
  background-image:linear-gradient(rgba(233,224,205,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(233,224,205,.028) 1px,transparent 1px);
  background-size:88px 88px;
  -webkit-mask-image:radial-gradient(ellipse 80% 55% at 50% 0%,#000 0%,transparent 75%);
  mask-image:radial-gradient(ellipse 80% 55% at 50% 0%,#000 0%,transparent 75%);
}

/* ---------- Type ---------- */
h1,h2,h3,h4{ font-family:var(--px-serif); font-weight:400; letter-spacing:-.012em; color:#fff }
h1{ line-height:1.02 }
h2{ line-height:1.06 }
h3,h4{ line-height:1.15 }
.px-hero h1{ font-size:clamp(2.9rem,1.5rem + 5.4vw,6.1rem); letter-spacing:-.025em; max-width:15ch; line-height:1 }
.px-section h1{ font-size:clamp(2.8rem,1.6rem + 4.6vw,5.4rem); letter-spacing:-.022em }
.px-section h2{ font-size:clamp(2.1rem,1.35rem + 2.9vw,3.8rem) }
.px-card h3{ font-size:clamp(1.55rem,1.3rem + .8vw,2rem); letter-spacing:-.01em; font-weight:400 }
.px-card h4{ font-family:var(--px-sans); font-weight:700; letter-spacing:-.005em }
.px-lede{ color:#A9AAB1; font-size:clamp(1.02rem,.98rem + .3vw,1.2rem); line-height:1.7; max-width:60ch }
.px-gradient-text{
  font-style:italic; font-weight:400;
  background:linear-gradient(100deg,var(--px-gold-hi) 0%,var(--px-gold) 55%,#E9CF98 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
.is-split .px-gradient-text{ background:none; -webkit-text-fill-color:currentColor; color:var(--px-gold-hi) }

.px-eyebrow{
  font-family:var(--px-mono); font-size:.6875rem; font-weight:500; letter-spacing:.22em;
  color:var(--px-gold); gap:.7rem;
}
.px-eyebrow::before{ width:22px; opacity:.6 }
main,#px-main{ counter-reset:pxs }
.px-section{ counter-increment:pxs; position:relative }
.px-section .px-section__head .px-eyebrow::before{
  content:counter(pxs,decimal-leading-zero); width:auto; height:auto; background:none; opacity:.5;
}
.px-section .px-section__head .px-eyebrow::after{ content:""; width:34px; height:1px; background:currentColor; opacity:.35 }

/* a fine rule between chapters */
.px-section + .px-section::before{
  content:""; position:absolute; top:0; left:50%; width:min(1240px,calc(100% - 2*var(--px-gutter))); height:1px; transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(233,224,205,.14) 20%,rgba(var(--px-gold-rgb),.3) 50%,rgba(233,224,205,.14) 80%,transparent);
}
.px-section{ padding-block:clamp(4.5rem,10vw,8.5rem) }
.px-section--tight{ padding-block:clamp(3rem,7vw,5.5rem) }
.px-section__head{ margin-bottom:clamp(2.25rem,5vw,3.75rem) }

/* ---------- Surfaces ---------- */
.px-card{
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0) 45%),var(--px-slate);
  border:1px solid var(--px-hairline); border-radius:var(--px-r);
  -webkit-backdrop-filter:none; backdrop-filter:none;
  box-shadow:0 1px 0 rgba(255,255,255,.035) inset,0 30px 60px -36px rgba(0,0,0,.9);
  overflow:hidden;
}
.px-card::after{
  background:radial-gradient(460px circle at var(--mx,50%) var(--my,0%),rgba(var(--px-gold-rgb),.13),transparent 62%);
  mix-blend-mode:normal; opacity:0; transition:opacity .5s var(--px-ease);
}
@media (hover:hover){
  .px-card:hover::after{ opacity:1 }
  .px-card--interactive:hover{
    transform:translateY(-4px); border-color:rgba(var(--px-gold-rgb),.38);
    box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 40px 70px -34px rgba(0,0,0,.95),0 0 0 1px rgba(var(--px-gold-rgb),.06);
  }
}
.px-card--lg{ border-radius:var(--px-r-lg) }
.px-card--tight{ border-radius:var(--px-r-sm) }
.px-card--rail::before{ width:56px; height:2px; background:var(--px-gold) }
.px-card--rail-emerald::before{ background:var(--px-emerald) }
.px-card--rail-amber::before{ background:var(--px-amber) }
.px-card--rail-violet::before{ background:var(--px-violet) }
.px-card--rail-coral::before{ background:var(--px-coral) }

.px-badge{
  font-family:var(--px-mono); font-size:.625rem; font-weight:500; letter-spacing:.16em; border-radius:2px;
  border:1px solid rgba(var(--px-gold-rgb),.38); background:rgba(var(--px-gold-rgb),.08); color:var(--px-gold-hi);
}
.px-badge--emerald{ border-color:rgba(61,220,151,.36); background:rgba(61,220,151,.08); color:var(--px-emerald) }
.px-chip{ border-radius:2px; font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.1em; text-transform:uppercase; background:transparent }

.px-checks li::before{ background:rgba(var(--px-gold-rgb),.1); border-color:rgba(var(--px-gold-rgb),.5); border-radius:2px }
.px-checks li::after{ border-color:var(--px-gold-hi) }

.px-stat__value{ font-family:var(--px-serif); font-weight:400; letter-spacing:-.02em; font-size:clamp(2.6rem,1.8rem + 3vw,4.2rem); color:#fff }
.px-stat__value em{ color:var(--px-gold-hi) }
.px-stat__label{ font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.06em; line-height:1.6 }

.px-spec__k{ font-family:var(--px-mono); letter-spacing:.16em; color:var(--px-gold) }
.px-spec{ border-top-color:var(--px-hairline) }

.px-quote{ font-family:var(--px-serif); font-size:clamp(1.6rem,1.2rem + 1.8vw,2.7rem); line-height:1.18; letter-spacing:-.012em; position:relative }
.px-quote::before{
  content:"\201C"; position:absolute; left:-.1em; top:-.55em; font-size:2.6em; line-height:1; color:var(--px-gold); opacity:.28; pointer-events:none;
}
.px-quote__attr strong{ font-family:var(--px-sans); letter-spacing:0 }

.px-disclaimer{ border-radius:var(--px-r-sm); border-color:rgba(var(--px-gold-rgb),.26); background:rgba(var(--px-gold-rgb),.05); color:#BDB097 }
.px-disclaimer strong{ color:var(--px-gold-hi) }

/* ---------- Buttons ---------- */
.px-btn,.wp-element-button,.wp-block-button__link{
  font-family:var(--px-sans); font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  border-radius:var(--px-r-pill); position:relative; overflow:hidden; isolation:isolate;
}
.px-btn{ min-height:44px; padding:.65rem 1.25rem }
.px-btn--primary,.px-form button[type="submit"],.px-pform button[type="submit"]{
  background:linear-gradient(180deg,#E7CF94 0%,#C9A45C 55%,#B58F45 100%); color:#15100A;
  box-shadow:0 14px 34px -14px rgba(var(--px-gold-rgb),.7),inset 0 1px 0 rgba(255,255,255,.4);
}
.px-btn--primary::after,.px-form button[type="submit"]::after,.px-pform button[type="submit"]::after{
  content:""; position:absolute; inset:0; z-index:-1; transform:translateX(-120%);
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);
  transition:transform .8s var(--px-ease);
}
.px-btn--primary:hover,.px-form button[type="submit"]:hover,.px-pform button[type="submit"]:hover{ background:linear-gradient(180deg,#EDD79F,#CFAA62 55%,#BC9549); transform:translateY(-2px) }
.px-btn--primary:hover::after,.px-form button[type="submit"]:hover::after,.px-pform button[type="submit"]:hover::after{ transform:translateX(120%) }
.px-btn--ghost{ background:transparent; border:1px solid var(--px-hairline-strong); color:var(--px-ivory) }
.px-btn--ghost:hover{ background:rgba(var(--px-gold-rgb),.08); border-color:rgba(var(--px-gold-rgb),.6); color:var(--px-gold-hi) }
.px-btn--emerald{ background:var(--px-emerald); color:#04140A }
.px-form button[type="submit"],.px-pform button[type="submit"]{ min-height:52px; border-radius:var(--px-r-pill); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase }
.px-form--emerald button[type="submit"]{ background:var(--px-emerald); color:#04140A; box-shadow:none }
.px-form--emerald button[type="submit"]:hover{ background:#52E8A6 }
.px-hero__actions .px-btn{ min-height:54px; padding:.9rem 1.8rem; font-size:.78rem }
:where(a,button,input,select,textarea):focus-visible{ outline-color:var(--px-gold-hi) }

/* ---------- Progress + section rail ---------- */
.px-progress{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:1100; pointer-events:none;
  transform-origin:0 50%; transform:scaleX(0);
  background:linear-gradient(90deg,var(--px-gold-lo),var(--px-gold-hi));
}
.px-rail{ position:fixed; right:18px; top:50%; transform:translateY(-50%); z-index:800; display:none }
@media (min-width:1360px){ .px-rail{ display:block } }
.px-rail a{
  display:flex; align-items:center; justify-content:flex-end; gap:.75rem; height:24px; padding-right:2px;
  color:#6c6d75; text-decoration:none; font:500 .625rem/1 var(--px-mono); letter-spacing:.18em; text-transform:uppercase;
}
.px-rail a span{
  opacity:0; transform:translateX(8px); white-space:nowrap; padding:.35rem .6rem; border-radius:2px;
  background:rgba(13,15,20,.92); border:1px solid var(--px-hairline); pointer-events:none;
  transition:opacity .25s var(--px-ease),transform .25s var(--px-ease);
}
.px-rail a:hover span,.px-rail a:focus-visible span{ opacity:1; transform:none }
.px-rail a i{ width:7px; height:7px; border:1px solid currentColor; border-radius:50%; transition:background-color .3s,transform .3s var(--px-ease),color .3s }
.px-rail a:hover{ color:var(--px-gold-hi) }
.px-rail a.is-active{ color:var(--px-gold-hi) }
.px-rail a.is-active i{ background:currentColor; transform:scale(1.35) }

/* ---------- Header ---------- */
.px-header{
  background:rgba(7,8,11,.55); border-bottom:1px solid transparent;
  -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%);
  transition:background-color .4s var(--px-ease),border-color .4s var(--px-ease),box-shadow .4s var(--px-ease);
}
.px-header.is-scrolled{
  background:rgba(7,8,11,.88); border-bottom-color:var(--px-hairline);
  -webkit-backdrop-filter:blur(22px) saturate(160%); backdrop-filter:blur(22px) saturate(160%);
  box-shadow:0 18px 40px -28px rgba(0,0,0,.9);
}
.px-header__inner{ min-height:var(--px-header-h); transition:min-height .4s var(--px-ease),padding .4s var(--px-ease) }
.px-header.is-scrolled .px-header__inner{ min-height:60px; padding-block:.4rem }
.px-logo__mark{ filter:drop-shadow(0 6px 18px rgba(109,70,184,.4)); transition:height .4s var(--px-ease) }
.px-header.is-scrolled .px-logo__mark{ height:28px }
.px-logo__name{ font-family:var(--px-serif); font-weight:400; font-size:1.6rem; letter-spacing:.14em; color:#fff }
.px-logo__sub{ font-family:var(--px-mono); letter-spacing:.16em }

.px-nav a{
  position:relative; font-size:.75rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:#C9CAD0;
  border-radius:0; padding:.6rem .7rem;
}
.px-nav > ul > li > a::after{
  content:""; position:absolute; left:.7rem; right:.7rem; bottom:.3rem; height:1px; background:var(--px-gold);
  transform:scaleX(0); transform-origin:0 50%; transition:transform .45s var(--px-ease);
}
.px-nav > ul > li:hover > a::after,.px-nav > ul > li:focus-within > a::after{ transform:scaleX(1) }
.px-nav a:hover,.px-nav a:focus-visible{ background:transparent; color:#fff }
.px-nav__sub{
  border-radius:var(--px-r-sm); background:rgba(11,13,17,.97); border:1px solid var(--px-hairline);
  box-shadow:0 30px 70px -20px rgba(0,0,0,.9),0 0 0 1px rgba(var(--px-gold-rgb),.05);
}
.px-nav__sub a{ text-transform:none; letter-spacing:0; font-size:.8125rem; font-weight:500; border-radius:6px }
.px-nav__sub a::after{ display:none }
.px-nav__sub a:hover{ background:rgba(var(--px-gold-rgb),.08); color:var(--px-gold-hi) }
.px-lang{ border-radius:3px }
.px-lang a{ border-radius:2px }
.px-lang a[aria-current="true"]{ background:rgba(var(--px-gold-rgb),.16); color:var(--px-gold-hi) }
.px-drawer{ background:rgba(7,8,11,.98) }
.px-drawer > ul > li > a,.px-drawer__toggle{ font-family:var(--px-serif); font-weight:400; font-size:1.7rem; letter-spacing:-.005em }
.px-drawer__panel a{ border-left-color:rgba(var(--px-gold-rgb),.35) }
.px-burger span{ background:var(--px-ivory) }

/* ---------- Hero ---------- */
.px-hero{ padding-block:clamp(3.5rem,10vw,7.5rem) 0; overflow:hidden; isolation:isolate }
.px-hero__canvas{
  position:absolute; inset:0; width:100%; height:100%; z-index:-1; pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 98%); mask-image:linear-gradient(180deg,#000 55%,transparent 98%);
}
.px-hero::before{
  content:""; position:absolute; z-index:-1; left:50%; top:-20%; width:1100px; height:900px; transform:translateX(-30%);
  background:radial-gradient(closest-side,rgba(var(--px-gold-rgb),.12),transparent); pointer-events:none;
  translate:calc((var(--hx,.5) - .5)*60px) calc((var(--hy,.5) - .5)*40px);
}
.px-hero .px-split{ align-items:center; padding-bottom:clamp(3rem,7vw,5.5rem) }
.px-hero .px-eyebrow{ margin-bottom:1.4rem }
.px-hero .px-lede{ margin-top:1.6rem }
.px-hero__meta{ margin-top:2.25rem }
.px-hero__visual{
  border-radius:var(--px-r-lg); border:1px solid var(--px-hairline-strong); overflow:hidden; position:relative;
  background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.01)),var(--px-slate);
  box-shadow:0 50px 90px -40px rgba(0,0,0,.95),0 0 0 1px rgba(var(--px-gold-rgb),.05),0 0 80px -30px rgba(var(--px-gold-rgb),.25);
  transform:perspective(1200px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)); transition:transform .5s var(--px-ease);
}
.px-hero__visual::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(420px circle at calc(var(--hx,.5)*100%) calc(var(--hy,.5)*100%),rgba(var(--px-gold-rgb),.09),transparent 60%);
}
@media (prefers-reduced-motion:no-preference){
  .px-draw{ stroke-dasharray:1; stroke-dashoffset:1; animation:pxDraw 2.8s .5s var(--px-ease) forwards }
  .px-fade{ opacity:0; animation:pxFade 1.6s 1.6s ease forwards }
  .px-route{ animation:pxDash 3.2s linear infinite }
  .px-pulse{ transform-box:fill-box; transform-origin:center; animation:pxPulse 3s ease-out infinite }
}
@keyframes pxDraw{ to{ stroke-dashoffset:0 } }
@keyframes pxFade{ to{ opacity:1 } }
@keyframes pxDash{ to{ stroke-dashoffset:-44 } }
@keyframes pxPulse{ 0%{ transform:scale(.7); opacity:1 } 100%{ transform:scale(2.2); opacity:0 } }

/* headline words rise into place */
.px-js [data-split] .w{ display:inline-block; overflow:hidden; vertical-align:top; padding:.06em .02em .16em; margin:-.06em -.02em -.16em }
.px-js [data-split] .wi{ display:inline-block; transform:translateY(112%); transition:transform 1.05s var(--px-ease) calc(var(--i,0)*70ms + 120ms) }
.px-js [data-split].is-in .wi{ transform:none }
.px-js h1[data-split].px-reveal,.px-js h2[data-split].px-reveal{ opacity:1; transform:none }

/* ---------- Capability strip + press marquee ---------- */
.px-strip{ border-top:1px solid var(--px-hairline); border-bottom:1px solid var(--px-hairline); overflow:hidden; background:rgba(255,255,255,.012);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent) }
.px-strip__row,.px-marquee__row{ display:flex; width:max-content }
.px-strip__item{
  font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.2em; text-transform:uppercase; color:#85868F;
  padding:1.15rem 0; white-space:nowrap; display:inline-flex; align-items:center;
}
.px-strip__item::after{ content:""; width:5px; height:5px; margin:0 2.2rem; transform:rotate(45deg); background:var(--px-gold); opacity:.65 }
.px-mediabar{ border-block:0; padding-block:clamp(2.75rem,6vw,4.5rem) 0; overflow:hidden }
.px-mediabar__label{ font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.22em; color:#85868F; margin-bottom:1.6rem }
.px-marquee{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
}
.px-mediabar__item{
  font-family:var(--px-serif); font-style:italic; font-weight:400; font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem); letter-spacing:-.005em;
  color:#7d7e87; padding-right:clamp(2.5rem,6vw,5rem); text-decoration:none; transition:color .3s;
}
a.px-mediabar__item{ color:var(--px-gold-hi) }
.px-mediabar__item:hover{ color:#fff }
@media (prefers-reduced-motion:no-preference){
  .px-strip__row{ animation:pxMq 46s linear infinite }
  .px-marquee__row{ animation:pxMq 60s linear infinite reverse }
  .px-strip:hover .px-strip__row,.px-marquee:hover .px-marquee__row{ animation-play-state:paused }
}
@keyframes pxMq{ to{ transform:translateX(-50%) } }
@media (prefers-reduced-motion:reduce){
  .px-strip__row,.px-marquee__row{ flex-wrap:wrap; width:auto; justify-content:center }
  .px-strip__item[aria-hidden],.px-mediabar__item[aria-hidden]{ display:none }
}

/* ---------- Pillars ---------- */
.px-pillar__n{
  position:absolute; right:1.4rem; top:.6rem; font-family:var(--px-serif); font-size:5.2rem; line-height:1; pointer-events:none;
  color:transparent; -webkit-text-stroke:1px rgba(var(--px-gold-rgb),.28); transition:-webkit-text-stroke-color .5s,transform .6s var(--px-ease);
}
.px-card:hover .px-pillar__n{ -webkit-text-stroke-color:rgba(var(--px-gold-rgb),.6); transform:translateY(-4px) }
.px-pillar__n ~ .px-badge{ position:relative; z-index:1 }

/* ---------- On the record ---------- */
.px-record{
  display:grid; gap:.6rem; padding:1.5rem 1.6rem; border:1px solid var(--px-hairline-strong); border-left:2px solid var(--px-gold);
  border-radius:var(--px-r-sm); background:rgba(255,255,255,.02); text-decoration:none; color:inherit; max-width:52ch;
  transition:background-color .4s var(--px-ease),border-color .4s var(--px-ease),transform .4s var(--px-ease);
}
.px-record strong{ font-family:var(--px-serif); font-weight:400; font-size:1.55rem; line-height:1.2; letter-spacing:-.005em; color:#fff }
.px-record em{ font-style:normal; font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--px-gold) }
.px-record em::after{ content:" \2192"; transition:margin .3s var(--px-ease) }
.px-record:hover{ background:rgba(var(--px-gold-rgb),.06); border-color:rgba(var(--px-gold-rgb),.5); transform:translateX(4px) }
.px-record:hover em::after{ margin-left:.4rem }
.px-record .px-eyebrow{ margin:0 }
.px-record .px-eyebrow::before{ display:none }

.px-mosaic{ display:grid; grid-template-columns:1.1fr .9fr; grid-template-rows:auto auto; gap:clamp(.7rem,1.6vw,1.1rem) }
.px-mosaic__item{ min-height:0; margin:0; aspect-ratio:4/3 }
.px-mosaic__item:nth-child(1){ grid-column:1 / -1; aspect-ratio:16/9 }
.px-mosaic__item:nth-child(2){ aspect-ratio:1/1 }
.px-mosaic__item:nth-child(3){ aspect-ratio:1/1; transform:translateY(clamp(0px,2vw,26px)) }
.px-mosaic .px-imgslot.has-image::after{ display:none }

/* ---------- Images: graded, framed, revealed ---------- */
.px-imgslot{ border-radius:var(--px-r); border:1px dashed rgba(233,224,205,.2) }
.px-imgslot.has-image{ border:0; overflow:visible; background:none }
.px-imgslot.has-image img{
  border-radius:inherit; filter:saturate(.9) contrast(1.05) brightness(.97);
  transition:filter .8s var(--px-ease),transform 1.4s var(--px-ease),clip-path 1.3s var(--px-ease);
}
.px-imgslot.has-image::before{
  content:""; position:absolute; inset:0; z-index:1; border-radius:inherit; pointer-events:none;
  background:linear-gradient(180deg,rgba(7,8,11,0) 55%,rgba(7,8,11,.5)),linear-gradient(135deg,rgba(var(--px-gold-rgb),.1),transparent 40%);
  box-shadow:inset 0 0 0 1px rgba(233,224,205,.12);
}
.px-imgslot.has-image::after{
  content:""; position:absolute; inset:14px -14px -14px 14px; z-index:-1; border:1px solid rgba(var(--px-gold-rgb),.34); border-radius:inherit;
  transition:inset .6s var(--px-ease),border-color .6s;
}
@media (hover:hover){
  .px-imgslot.has-image:hover img{ filter:saturate(1.02) contrast(1.04) brightness(1); transform:scale(1.035) }
  .px-imgslot.has-image:hover::after{ inset:8px -8px -8px 8px; border-color:rgba(var(--px-gold-rgb),.6) }
}
.px-imgslot.has-image{ cursor:zoom-in }
.px-imgslot.has-image img{ border-radius:inherit }
.px-imgslot{ overflow:hidden }
.px-imgslot.has-image{ overflow:visible }
.px-js .px-imgslot.has-image{ clip-path:none }
.px-js .px-imgslot.has-image:not(.is-in) img{ clip-path:inset(0 0 100% 0); transform:scale(1.12) }
.px-js .px-imgslot.has-image.is-in img{ clip-path:inset(0 0 0 0) }
.px-js .px-imgslot.has-image.px-reveal{ transform:none }

/* ---------- Leadership / institutional polish ---------- */
.px-card--lg{ background:linear-gradient(135deg,rgba(var(--px-gold-rgb),.07),rgba(255,255,255,0) 38%),var(--px-slate); border-color:var(--px-hairline-strong) }
#institutional .px-card--lg{ box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 60px 90px -50px rgba(0,0,0,.95),0 0 120px -50px rgba(var(--px-gold-rgb),.25) }

/* ---------- Footer ---------- */
.px-footer{ border-top:1px solid var(--px-hairline); position:relative }
.px-footer::before{ content:""; position:absolute; top:-1px; left:50%; width:min(680px,80%); height:1px; transform:translateX(-50%); background:linear-gradient(90deg,transparent,var(--px-gold),transparent) }
.px-footer h4{ font-family:var(--px-mono); font-weight:500; letter-spacing:.2em; color:var(--px-gold) }
.px-footer a{ color:#A9AAB1 }
.px-footer a:hover{ color:var(--px-gold-hi) }
.px-footer h2{ font-size:clamp(2.3rem,1.5rem + 3.2vw,4.2rem) }
.px-footer .px-card--lg{ padding-block:clamp(2.75rem,7vw,5rem); background:radial-gradient(600px 260px at 50% 0%,rgba(var(--px-gold-rgb),.14),transparent 70%),var(--px-slate) }
.px-social a{ border-radius:3px; background:transparent }
.px-social a:hover{ background:rgba(var(--px-gold-rgb),.12); border-color:rgba(var(--px-gold-rgb),.5) }
.px-social a:hover svg{ fill:var(--px-gold-hi) }

/* ---------- Modal & forms ---------- */
.px-modal__panel{ border-radius:18px 18px 0 0; background:linear-gradient(160deg,rgba(var(--px-gold-rgb),.06),rgba(255,255,255,0) 40%),#0E1015; border-color:var(--px-hairline-strong) }
@media (min-width:700px){ .px-modal__panel{ border-radius:var(--px-r-lg) } }
.px-modal h3{ font-size:2rem }
.px-field label{ font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.12em; text-transform:uppercase; color:#B5B0A2 }
.px-field input,.px-field select,.px-field textarea{ border-radius:var(--px-r-sm); background:rgba(255,255,255,.035) }
.px-field input:focus,.px-field select:focus,.px-field textarea:focus{ border-color:var(--px-gold); background:rgba(var(--px-gold-rgb),.06) }

/* ---------- Lightbox ---------- */
.px-lb{
  position:fixed; inset:0; z-index:1200; display:none; align-items:center; justify-content:center; padding:clamp(1rem,4vw,3rem);
  background:rgba(4,5,7,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); opacity:0; transition:opacity .35s var(--px-ease);
}
.px-lb.is-open{ display:flex }
.px-lb.is-in{ opacity:1 }
.px-lb figure{ margin:0; max-width:min(1400px,100%); max-height:100%; display:grid; gap:.9rem; justify-items:center }
.px-lb img{ max-width:100%; max-height:78vh; width:auto; height:auto; border-radius:var(--px-r-sm); box-shadow:0 40px 100px rgba(0,0,0,.8); transform:scale(.97); transition:transform .5s var(--px-ease) }
.px-lb.is-in img{ transform:none }
.px-lb figcaption{ font-family:var(--px-mono); font-size:.75rem; letter-spacing:.06em; color:#B5B0A2; text-align:center; max-width:70ch }
.px-lb button{
  position:absolute; width:46px; height:46px; display:grid; place-items:center; background:rgba(255,255,255,.06); color:#fff;
  border:1px solid var(--px-hairline-strong); border-radius:3px; cursor:pointer; font-size:1.2rem; transition:background-color .25s,border-color .25s;
}
.px-lb button:hover{ background:rgba(var(--px-gold-rgb),.16); border-color:rgba(var(--px-gold-rgb),.6) }
.px-lb__x{ top:1rem; right:1rem }
.px-lb__p{ left:1rem; top:50% }
.px-lb__n{ right:1rem; top:50% }

/* ---------- Proof page upgrades ---------- */
.px-proof-photo{ border-radius:var(--px-r); cursor:zoom-in }
.px-proof-photo img{ filter:saturate(.9) contrast(1.05) }
.px-proof-photo:hover img{ filter:saturate(1.02) }
.px-proof-photo::before{ content:""; position:absolute; inset:0; z-index:1; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(233,224,205,.12); pointer-events:none }
.px-proof-photo figcaption{ z-index:2; font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.04em }
.px-proof-yt{ border-radius:var(--px-r-sm) }
.px-proof-play{ border-radius:50%; background:rgba(var(--px-gold-rgb),.9); border:0; width:72px; height:72px; margin:-36px 0 0 -36px; box-shadow:0 0 0 10px rgba(var(--px-gold-rgb),.18); transition:transform .4s var(--px-ease),box-shadow .4s }
.px-proof-play::after{ border-left-color:#15100A; left:29px; top:22px }
.px-proof-yt:hover .px-proof-play{ transform:scale(1.08); box-shadow:0 0 0 16px rgba(var(--px-gold-rgb),.14) }
.px-proof-link{ color:var(--px-gold-hi); font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase }
.px-proof-profile strong{ font-family:var(--px-serif); font-weight:400; font-size:1.6rem }

/* ---------- Page entrance ---------- */
@media (prefers-reduced-motion:no-preference){
  .px-js #px-main{ animation:pxEnter .9s var(--px-ease) both }
}
@keyframes pxEnter{ from{ opacity:0 } to{ opacity:1 } }

/* ---------- Small screens ---------- */
@media (max-width:760px){
  .px-hero h1{ max-width:100% }
  .px-pillar__n{ font-size:3.8rem }
  .px-mosaic{ grid-template-columns:1fr 1fr }
  .px-imgslot.has-image::after{ inset:10px -8px -10px 10px }
  .px-quote::before{ top:-.35em }
}
@media (prefers-reduced-motion:reduce){
  .px-js [data-split] .wi{ transform:none !important }
  .px-js .px-imgslot.has-image:not(.is-in) img{ clip-path:none; transform:none }
}

/* Content must never depend on JS: show everything when it is not running. */
:root:not(.px-js) .px-reveal{ opacity:1 !important; transform:none !important }

/* Blog cards */
.px-blog-card{ display:flex; flex-direction:column; padding:0; overflow:hidden }
.px-blog-card__media{ display:block; aspect-ratio:16/9; background:rgba(255,255,255,.04); overflow:hidden }
.px-blog-card__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease }
.px-blog-card:hover .px-blog-card__media img{ transform:scale(1.03) }
.px-blog-card__body{ display:flex; flex-direction:column; gap:.6rem; padding:1.25rem 1.5rem 1.5rem; flex:1 }
.px-blog-card__meta{ margin:0; font-family:var(--px-mono); font-size:.6875rem; letter-spacing:.1em; text-transform:uppercase; color:var(--px-muted) }
.px-blog-card h3{ margin:0; font-size:1.25rem; line-height:1.25 }
.px-blog-card h3 a{ color:inherit; text-decoration:none }
.px-blog-card h3 a:hover{ text-decoration:underline }
.px-blog-card__excerpt{ margin:0; color:var(--px-muted); font-size:.9375rem; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden }
.px-blog-card__more{ margin-top:auto; padding-top:.5rem; font-weight:600; font-size:.875rem; color:var(--px-blue-soft,#6aa2ff); text-decoration:none }
.px-blog-card__more:hover{ text-decoration:underline }
.px-blog-pager{ display:flex; gap:1rem; justify-content:center; margin-top:2.5rem }

/* Press portal */
.px-press__bar{ display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem }
.px-press__h{ margin:2.5rem 0 1rem; font-size:1.5rem }
.px-press__form{ max-width:640px }
.px-press__form small{ color:var(--px-muted); font-size:.8125rem }
.px-press__form input[type="file"]{ padding:.6rem }
.px-press__ok,.px-press__warn,.px-press__err{ margin:0 0 1rem; padding:.85rem 1rem; border-radius:var(--px-r-sm,10px); font-size:.9375rem; border:1px solid }
.px-press__ok{ color:#7ff0b8; border-color:rgba(127,240,184,.4); background:rgba(127,240,184,.08) }
.px-press__warn{ color:#ffd479; border-color:rgba(255,212,121,.4); background:rgba(255,212,121,.08) }
.px-press__err{ color:#ff8c9b; border-color:rgba(255,140,155,.4); background:rgba(255,140,155,.08) }
.px-press__list{ list-style:none; margin:0; padding:0; display:grid; gap:.75rem }
.px-press__list li{ display:grid; grid-template-columns:72px 1fr auto; align-items:center; gap:1rem; padding:.75rem; border:1px solid var(--px-hairline-strong,rgba(255,255,255,.12)); border-radius:var(--px-r-sm,10px) }
.px-press__list img{ width:72px; height:48px; object-fit:cover; border-radius:6px }
.px-press__list li div:nth-child(2){ display:grid; gap:.15rem; min-width:0 }
.px-press__list li span{ color:var(--px-muted); font-size:.8125rem }
.px-press__acts{ display:flex; gap:.5rem; align-items:center }
.px-press__acts .px-btn{ min-height:40px; padding:.4rem 1rem }
@media (max-width:560px){ .px-press__list li{ grid-template-columns:72px 1fr } .px-press__acts{ grid-column:1 / -1 } }
