:root{
  --paper:var(--coal);--paper-2:var(--slate);
  --ink:#F8FAFC;--dark:#08111F;
  --gold:#D9A233;--gold-2:#c08a22;--gold-hi:#F3D57A;--gold-deep:#a06818;
  --stone:#B9C2D3;--mist:rgba(248,250,252,.12);
  --line:rgba(217,162,51,.18);--line-d:rgba(217,162,51,.2);
  --display:'Cormorant Garamond',Georgia,serif;
  --caps:'Cinzel',serif;--sans:'DM Sans',system-ui,sans-serif;
  --ease:cubic-bezier(.19,1,.22,1);
  --white:#F8FAFC;--off:#18263D;--coal:#08111F;--slate:#111B2E;--navy:#111B2E;--gold-2:#c08a22;
  --blue:#4E7DFF;--blue-d:rgba(78,125,255,.18);--card:#18263D;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
body{background:var(--coal);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.75;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.locked{overflow:hidden}
::selection{background:var(--gold);color:#fff}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{font-family:inherit}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:#f2efe7}
::-webkit-scrollbar-thumb{background:#d8d2c2;border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* ---------- cursor ---------- */
.cursor,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:150;border-radius:50%;transform:translate(-50%,-50%)}
.cursor{width:6px;height:6px;background:var(--gold-deep)}
.cursor-ring{width:38px;height:38px;border:1px solid rgba(168,132,46,.55);transition:width .35s var(--ease),height .35s var(--ease),background .35s,border-color .35s;display:flex;align-items:center;justify-content:center}
.cursor-ring .cur-label{font-family:var(--caps);font-size:.55rem;letter-spacing:.28em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .3s}
.cursor-ring.grow{width:64px;height:64px;background:rgba(210,170,79,.14);border-color:var(--gold)}
.cursor-ring.view{width:86px;height:86px;background:var(--gold);border-color:var(--gold)}
.cursor-ring.view .cur-label{opacity:1}
@media(hover:none),(max-width:900px){.cursor,.cursor-ring{display:none}}

/* ---------- preloader ---------- */
#pre{position:fixed;inset:0;z-index:200;display:flex}
#pre .panel{width:50%;height:100%;background:#fbf9f3;position:relative}
#pre .panel::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
#pre .panel.l::after{right:0}
#pre .center{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:2}
#pre .ace-mark{position:relative;width:96px;height:96px}
#pre .ace-mark svg{position:absolute;inset:0;animation:aceSpin 3.2s var(--ease) infinite}
@keyframes aceSpin{0%,100%{transform:rotate(0)}50%{transform:rotate(180deg)}}
#pre .ace-mark img{position:absolute;left:50%;top:50%;width:46px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 10px rgba(210,170,79,.45))}
#pre .brand{font-family:var(--display);font-weight:500;font-size:clamp(2.2rem,4.6vw,3.6rem);letter-spacing:.26em;text-indent:.26em;color:var(--ink);overflow:hidden}
#pre .brand span{display:inline-block}
#pre .tag{font-family:var(--caps);font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-deep)}
#pre .pct{position:fixed;bottom:5vh;right:6vw;font-family:var(--display);font-weight:400;font-size:clamp(4rem,10vw,8rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(168,132,46,.65);z-index:2}
#pre .pline{position:fixed;bottom:4vh;left:6vw;width:200px;height:1px;background:rgba(168,132,46,.2);z-index:2}
#pre .pline i{display:block;height:100%;width:0;background:var(--gold-deep)}

/* ---------- top bar + nav (light) ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:8px 4%;font-size:.7rem;letter-spacing:.16em;color:rgba(255,255,255,.66);background:var(--dark);transition:transform .5s var(--ease)}
.topbar a{color:var(--gold-deep)}
.topbar .tb-r{display:flex;gap:26px}
body.pgscroll .topbar{transform:translateY(-100%)}
header.nav{position:fixed;top:34px;left:0;right:0;z-index:100;background:#0d0d12;border-bottom:1px solid var(--line-d);transition:top .5s var(--ease),box-shadow .5s}
header.nav .inner{display:flex;align-items:center;justify-content:space-between;padding:16px 4%;transition:padding .5s var(--ease)}
body.pgscroll header.nav{top:0;box-shadow:0 14px 44px rgba(10,8,2,.35)}
body.pgscroll header.nav .inner{padding:11px 4%}
.logo{position:relative;display:inline-block;isolation:isolate}
.logo img{height:52px;width:auto;transition:height .5s var(--ease),transform .6s var(--ease);position:relative;z-index:1}
.logo:hover img{transform:translateY(-2px)}
body.pgscroll .logo img{height:40px}
/* shine sweep across the golden logo */
.logo .shine{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}
.logo .shine::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-40%;width:34%;background:linear-gradient(105deg,transparent,rgba(255,244,214,.85),transparent);transform:skewX(-18deg);animation:logoShine 4.6s ease-in-out infinite;mix-blend-mode:overlay}
@keyframes logoShine{0%,55%{left:-45%}80%,100%{left:135%}}
/* spark → dollar particles */
.logo .fx{position:absolute;left:0;right:0;top:-8px;bottom:-4px;pointer-events:none;z-index:3;overflow:visible}
.logo .fx .p{position:absolute;bottom:0;font-size:var(--sz,11px);line-height:1;will-change:transform,opacity;animation:sparkRise var(--dur,1.6s) cubic-bezier(.3,.7,.4,1) forwards;transform:translate(0,0)}
.logo .fx .p i{position:absolute;left:0;top:0;font-style:normal;font-family:var(--display)}
.logo .fx .p .s1{color:#ffe9ad;animation:glyphOut var(--dur,1.6s) linear forwards}
.logo .fx .p .s2{color:var(--gold-hi);opacity:0;animation:glyphIn var(--dur,1.6s) linear forwards;font-weight:600}
@keyframes sparkRise{
  0%{transform:translate(0,0) rotate(0);opacity:0}
  12%{opacity:1}
  100%{transform:translate(var(--dx,0px),calc(var(--dy,-46px))) rotate(var(--rot,20deg));opacity:0}
}
@keyframes glyphOut{0%,46%{opacity:1;filter:drop-shadow(0 0 4px rgba(255,222,140,.9))}58%,100%{opacity:0}}
@keyframes glyphIn{0%,48%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.15)}72%{transform:scale(1)}100%{opacity:1;transform:scale(1)}}
nav.menu{display:flex;gap:40px;align-items:center}
nav.menu>a{font-family:var(--caps);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.88);position:relative;padding:6px 0;transition:color .4s}
nav.menu>a:hover{color:var(--gold-hi)}
nav.menu>a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
nav.menu>a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{font-family:var(--caps);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;background:linear-gradient(110deg,var(--gold-2),var(--gold-hi));color:#181405;padding:14px 28px;position:relative;overflow:hidden;isolation:isolate;transition:color .45s}
.nav-cta::before{content:"";position:absolute;inset:0;background:#fff;transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.nav-cta:hover{color:var(--gold-deep)}
.nav-cta:hover::before{transform:translateY(0)}
.burger{display:none;flex-direction:column;gap:7px;background:none;border:none;cursor:pointer;padding:8px;z-index:130}
.burger span{width:30px;height:1.5px;background:var(--gold-hi);transition:all .4s var(--ease)}
.burger.open span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:120;background:rgba(11,11,16,.97);backdrop-filter:blur(24px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;opacity:0;visibility:hidden;transition:all .5s var(--ease)}
.mmenu.open{opacity:1;visibility:visible}
.mmenu a{font-family:var(--display);font-size:2rem;color:#fff}
.mmenu a:hover{color:var(--gold-hi)}

/* ---------- generic ---------- */
.wrap{width:min(1280px,92%);margin:0 auto}
.eyebrow{font-family:var(--caps);font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-2);display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:46px;height:1px;background:var(--gold)}
.eyebrow.center{justify-content:center}.eyebrow.center::after{content:"";width:46px;height:1px;background:var(--gold)}
.on-dark .eyebrow{color:var(--gold)}
.h-xl{font-family:var(--display);font-weight:700;line-height:1.06;letter-spacing:-.018em;color:var(--ink)}
.h-xl .it{font-style:italic;font-weight:600;color:var(--gold-2)}
.on-dark .h-xl{color:#fff}
.on-dark .h-xl .it{color:var(--gold-hi)}
h2.h-xl{font-size:clamp(2.3rem,4.4vw,3.8rem)}
.lede{color:var(--stone);font-size:1.02rem;max-width:58ch}
.btn{position:relative;display:inline-flex;align-items:center;gap:14px;font-family:var(--caps);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;padding:20px 42px;border:1px solid var(--gold-2);color:var(--gold-2);background:transparent;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .5s}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,var(--gold-2),var(--gold));transform:translateY(101%);transition:transform .55s var(--ease);z-index:-1}
.btn:hover{color:#fff;box-shadow:0 8px 30px -8px rgba(217,162,51,.42)}
.btn:hover::before{transform:translateY(0)}
.btn.solid{background:linear-gradient(110deg,var(--gold-2),var(--gold-hi));color:var(--ink);border-color:transparent}
.btn.solid::before{background:var(--gold)}
.btn.solid:hover{color:#fff}
.btn:focus-visible,a:focus-visible{outline:2px solid var(--gold-deep);outline-offset:4px}

/* ============ HERO — FULL-BLEED VIDEO WITH LEFT OVERLAY ============ */
.hero{position:relative;height:100vh;min-height:680px;background:#0d0d12;overflow:hidden;color:#fff;cursor:auto}
.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 44%;will-change:transform}
.sparkbar{position:absolute;left:0;top:104px;width:57%;height:84px;z-index:2;pointer-events:none}
.sparkbar .base{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(234,186,104,0) 0%,rgba(236,192,112,.30) 30%,rgba(228,178,96,.15) 64%,rgba(228,178,96,0) 100%);
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 74%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 74%,transparent 100%);
  filter:blur(3px)}
.sparkbar .sheen{position:absolute;inset:0;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 74%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 74%,transparent 100%)}
.sparkbar .sheen::after{content:"";position:absolute;top:0;bottom:0;width:26%;left:-30%;
  background:linear-gradient(90deg,transparent,rgba(255,236,180,.28),transparent);
  transform:skewX(-14deg);animation:sbSheen 5.5s ease-in-out infinite}
@keyframes sbSheen{0%{left:-30%}60%,100%{left:115%}}
.sparkbar canvas{position:absolute;inset:0;width:100%;height:100%}
@media(max-width:900px){.sparkbar{top:96px;height:64px;width:70%}}
.hero .veil{position:absolute;inset:0;z-index:1;background:
  linear-gradient(90deg,rgba(8,8,10,.85) 0%,rgba(8,8,10,.55) 32%,rgba(8,8,10,.04) 58%),
  linear-gradient(180deg,rgba(8,8,10,.55) 0%,transparent 22%,transparent 74%,rgba(8,8,10,.6) 100%)}
.hero-content{position:relative;z-index:3;height:100%;width:min(1300px,92%);margin:0 auto;display:flex;flex-direction:column;justify-content:center;padding-top:120px}
.hero-eyebrow{font-family:var(--caps);font-size:.66rem;letter-spacing:.48em;text-transform:uppercase;color:var(--gold-hi);display:inline-flex;align-items:center;gap:16px;margin-bottom:24px;text-shadow:0 1px 12px rgba(0,0,0,.9),0 0 30px rgba(0,0,0,.6);background:rgba(8,14,32,.42);padding:6px 18px 6px 0;border-radius:100px;backdrop-filter:blur(4px);box-shadow:0 0 24px rgba(78,125,255,.15)}
.hero-eyebrow::before{content:"";width:48px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2.9rem,5.6vw,5.2rem);line-height:1.08;letter-spacing:-.012em;color:#fdfcf9;max-width:13ch;text-shadow:0 6px 40px rgba(0,0,0,.55)}
.hero h1 .row{display:block}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero h1 .w>u{display:inline-block;text-decoration:none;transform:translateY(112%)}
.hero h1 .it{font-style:normal;
  background:linear-gradient(100deg,var(--gold) 15%,var(--gold-hi) 45%,#fff3d0 50%,var(--gold-hi) 55%,var(--gold) 85%);background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:sheen 6s linear infinite}
@keyframes sheen{to{background-position:220% center}}
.hero-sub{margin:20px 0 0;max-width:44ch;color:rgba(255,255,255,.74);font-size:clamp(.92rem,1.15vw,1.02rem)}
.hero-cta-row{display:flex;align-items:center;gap:26px;margin-top:34px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:16px;background:linear-gradient(110deg,var(--gold-2),var(--gold-hi));color:#181405;border-radius:100px;padding:9px 9px 9px 30px;font-family:var(--caps);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;transition:transform .5s var(--ease),box-shadow .5s;box-shadow:0 14px 44px rgba(210,170,79,.3)}
.pill .circ{width:46px;height:46px;border-radius:50%;background:#0d0d12;color:var(--gold-hi);display:flex;align-items:center;justify-content:center;font-size:1rem;transition:transform .5s var(--ease)}
.pill:hover{transform:translateY(-3px);box-shadow:0 22px 60px rgba(210,170,79,.42)}
.pill:hover .circ{transform:rotate(45deg)}
.hero-link{font-family:var(--caps);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.8);border-bottom:1px solid rgba(232,193,105,.5);padding-bottom:6px;transition:color .4s,border-color .4s}
.hero-link:hover{color:var(--gold-hi);border-color:var(--gold-hi)}
/* floating widgets, inset from screen edges */
.orb-badge{position:absolute;right:4.5%;top:21%;z-index:6;filter:drop-shadow(0 0 14px rgba(78,125,255,.28));width:122px;height:122px}
.orb-badge .disc{position:absolute;inset:0;border-radius:50%;background:rgba(15,15,20,.86);border:1px solid rgba(210,170,79,.5);box-shadow:0 26px 60px rgba(0,0,0,.6)}
.orb-badge svg{position:absolute;inset:0;animation:orbSpin 14s linear infinite}
@keyframes orbSpin{to{transform:rotate(360deg)}}
.orb-badge svg text{font-family:var(--caps);font-size:10.2px;letter-spacing:.32em;fill:var(--gold-hi);text-transform:uppercase}
.orb-badge .core{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;font-size:1.9rem;color:var(--gold-hi);text-shadow:0 0 18px rgba(232,193,105,.5)}
.stat-card{position:absolute;right:4.5%;bottom:9%;z-index:6;background:rgba(15,15,20,.88);backdrop-filter:blur(8px);border:1px solid rgba(210,170,79,.4);border-radius:20px;padding:20px 26px;min-width:206px;box-shadow:0 30px 70px rgba(0,0,0,.65)}
.stat-card .rowi{padding:9px 0}
.stat-card .rowi+.rowi{border-top:1px solid rgba(210,170,79,.18)}
.stat-card .v{font-family:var(--display);font-weight:600;font-size:1.6rem;color:var(--gold-hi);line-height:1}
.stat-card .t{font-family:var(--caps);font-size:.54rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:6px}
.stat-card .sdia{position:absolute;top:-9px;right:22px;color:var(--gold);font-size:.8rem;background:#0f0f14;padding:0 6px}
/* --- category slats below the banner --- */
.cats{background:#0d0d12;padding:14px 3.5% 28px}
.cats .cats-eyebrow{font-family:var(--caps);font-size:.66rem;letter-spacing:.46em;text-transform:uppercase;color:var(--gold);text-align:center;display:flex;align-items:center;justify-content:center;gap:16px;margin:0 0 26px;font-weight:600;}
.cats .cats-eyebrow::before,.cats .cats-eyebrow::after{content:"";width:46px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.cats .cats-eyebrow::after{background:linear-gradient(90deg,var(--gold),transparent)}
.slats{display:flex;gap:10px;height:36vh;min-height:280px;max-height:400px}
.slat{position:relative;flex:1;overflow:hidden;cursor:pointer;transition:flex 1.1s var(--ease);isolation:isolate;background:#101015;border-radius:18px}
.slat .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.4s var(--ease),filter 1s;transform:scale(1.06);filter:saturate(.8) brightness(.72)}
.slat::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,13,18,.12) 30%,rgba(13,13,18,.85) 100%);z-index:1}
.slat.active{flex:3.6}
.slat.active .bg{transform:scale(1);filter:saturate(1.02) brightness(.92)}
.slat:hover .bg{filter:saturate(1.02) brightness(.92)}
.slat .side{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:24px 0;transition:opacity .5s}
.slat .side .snum{font-family:var(--display);font-weight:500;font-size:1rem;color:var(--gold-hi)}
.slat .side .svert{writing-mode:vertical-rl;font-family:var(--caps);font-size:.68rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.slat .side .sdia{color:var(--gold);font-size:.6rem}
.slat.active .side{opacity:0;pointer-events:none}
.slat .open{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:32px 36px;opacity:0;transform:translateY(24px);transition:opacity .7s .25s,transform .8s .25s var(--ease)}
.slat.active .open{opacity:1;transform:none}
.slat .open .onum{font-family:var(--display);font-size:.95rem;color:var(--gold-hi)}
.slat .open .onum s{text-decoration:none;color:rgba(255,255,255,.45)}
.slat .open h3{font-family:var(--display);font-weight:500;font-size:clamp(1.4rem,2.3vw,2.1rem);line-height:1.18;color:#fff;margin:10px 0 8px;max-width:18ch}
.slat .open h3 i{font-weight:400;font-style:italic;color:var(--gold-hi)}
.slat .open p{color:rgba(255,255,255,.72);font-size:.9rem;max-width:46ch;margin-bottom:16px;display:none}
.slat.active .open p{display:block}
.slat .open .go{display:inline-flex;align-items:center;gap:12px;font-family:var(--caps);font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-hi)}
.slat .open .go .arr{transition:transform .5s var(--ease)}
.slat:hover .open .go .arr{transform:translateX(6px)}
.slat .prog{position:absolute;left:0;bottom:0;height:3px;width:100%;background:rgba(255,255,255,.14);z-index:3;opacity:0;transition:opacity .4s}
.slat.active .prog{opacity:1}
.slat .prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-hi))}
.slat .tick{position:absolute;top:16px;right:16px;width:18px;height:18px;border-top:1px solid var(--gold-hi);border-right:1px solid var(--gold-hi);opacity:0;transition:opacity .5s .3s;z-index:2}
.slat.active .tick{opacity:1}
/* --- stat strip under banner --- */
.statstrip{background:var(--slate)}
.statstrip .grid{display:grid;grid-template-columns:repeat(4,1fr)}
.statstrip .cell{padding:32px 10px;text-align:center;border-left:3px solid transparent;border-right:1px solid rgba(200,170,80,.15)}
.statstrip .cell:hover{border-left-color:var(--blue)}
.statstrip .cell:last-child{border-right:none}
.statstrip .num{font-family:var(--display);font-weight:700;font-size:clamp(2rem,3.2vw,2.9rem);color:#f4f3f0;line-height:1.1;letter-spacing:-.01em}
.statstrip .num em{font-style:normal;color:var(--gold-hi)}
.statstrip .lbl{font-family:var(--caps);font-size:.5rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(247,242,232,.5);margin-top:9px}

/* ---------- ROLL divider (compact) ---------- */
.rollsec{background:var(--slate);border-top:1px solid var(--line-d);border-bottom:1px solid var(--line);padding:44px 6%;text-align:center}
.rollsec .linewrap{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2.6vw,34px)}
.rollsec .rule{height:1px;flex:1;max-width:230px;background:linear-gradient(90deg,transparent,var(--gold));position:relative}
.rollsec .rule.r{background:linear-gradient(90deg,var(--gold),transparent)}
.rollsec .rule::after{content:"◆";position:absolute;top:-7px;color:var(--gold);font-size:.58rem}
.rollsec .rule.l::after{right:-4px}.rollsec .rule.r::after{left:-4px}
.rollsec .stmt{font-family:var(--display);font-weight:700;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.1;display:flex;align-items:baseline;gap:.32em;white-space:nowrap}
.rollsec .roll-clip{display:inline-block;overflow:hidden;height:1.18em;vertical-align:bottom;text-align:left}
.rollsec .roll{display:block;transition:transform .9s var(--ease)}
.rollsec .roll i{display:block;height:1.18em;font-style:italic;font-weight:400;
  background:linear-gradient(100deg,var(--gold-deep) 15%,var(--gold) 48%,var(--gold-hi) 52%,var(--gold-deep) 85%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:rlsheen 6s linear infinite}
@keyframes rlsheen{to{background-position:200% center}}
.rollsec .subline{margin-top:16px;font-family:var(--caps);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--stone)}
.rollsec .subline b{color:var(--gold-deep);font-weight:400}
/* ---------- SPLIT-FLAP divider (compact, dark) ---------- */
.flapsec{background:var(--dark);padding:40px 6%;text-align:center;border-top:1px solid rgba(210,170,79,.25);border-bottom:1px solid rgba(210,170,79,.25)}
.flapsec .board{display:inline-flex;gap:6px;perspective:700px}
.flapsec .cell{width:clamp(26px,3.4vw,44px);height:clamp(38px,4.8vw,62px);background:linear-gradient(180deg,#17171d 0%,#101015 48%,#0b0b0f 52%,#14141a 100%);border:1px solid rgba(210,170,79,.28);border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--caps);font-size:clamp(1rem,1.9vw,1.7rem);color:var(--gold-hi);position:relative;box-shadow:0 8px 20px rgba(0,0,0,.5)}
.flapsec .cell::after{content:"";position:absolute;left:3px;right:3px;top:50%;height:1px;background:rgba(0,0,0,.55)}
.flapsec .cell.space{background:transparent;border:none;box-shadow:none}
.flapsec .cell.space::after{display:none}
.flapsec .cell.flip{animation:flapFlip .45s ease}
@keyframes flapFlip{0%{transform:rotateX(0)}49%{transform:rotateX(-88deg)}51%{transform:rotateX(88deg)}100%{transform:rotateX(0)}}
.flapsec .cap{margin-top:18px;font-family:var(--caps);font-size:.56rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.flapsec .cap b{color:var(--gold);font-weight:400}
/* ---------- about (redesigned) ---------- */
.about{position:relative;padding:0;background:var(--coal)}
.about-inner{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:580px;position:relative}
.about h2{font-family:var(--display);font-weight:700;font-size:clamp(2.8rem,5.4vw,5rem);line-height:1;letter-spacing:-.02em;margin:26px 0 8px;color:var(--ink)}
.about .left-col{padding:72px 8% 72px 6%;display:flex;flex-direction:column;justify-content:center}
.about h2 .big-it{display:inline-block;font-style:italic;font-weight:500;
  background:linear-gradient(100deg,var(--gold-deep) 15%,var(--gold) 48%,var(--gold-hi) 52%,var(--gold-deep) 85%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:abSheen 6s linear infinite;position:relative}
@keyframes abSheen{to{background-position:200% center}}
.about .flourish{width:210px;height:14px;margin:4px 0 26px}
.about .flourish path{stroke:var(--gold);stroke-width:2;fill:none;stroke-linecap:round;stroke-dasharray:260;stroke-dashoffset:260}
.about.play .flourish path{animation:abFl 1.2s var(--ease) .3s forwards}
@keyframes abFl{to{stroke-dashoffset:0}}
.about .lead{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(1.1rem,1.7vw,1.35rem);line-height:1.6;color:#3c382e;max-width:52ch;margin-bottom:18px}
.about p.body{color:var(--stone);max-width:56ch;margin-bottom:18px;font-size:.98rem}
.about .sig{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.3rem;color:var(--gold-deep);margin-top:8px}
/* about panel — live numbers showcase (no property images) */
/* about card swipe */
.about-cards{position:relative;background:var(--slate);min-height:520px;overflow:hidden}
.acard{position:absolute;width:min(440px,86%);aspect-ratio:.82;border-radius:20px;overflow:hidden;box-shadow:0 30px 70px -20px rgba(14,12,6,.38),0 0 0 1px rgba(200,163,75,.35);cursor:pointer;will-change:transform;transition:transform .7s var(--ease),opacity .7s var(--ease),z-index 0s .35s}
.acard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ac-map{background:#fff;display:flex;align-items:center;justify-content:center;padding:6%}
.ac-map::after{background:linear-gradient(180deg,transparent 68%,rgba(8,8,10,.55))}
.ac-map img{position:relative;inset:auto;width:100%;height:100%;object-fit:contain;transform:none;border-radius:4px}
.ac-map:hover img{transform:scale(1.03)}
.acard:hover img{transform:scale(1.04)}
.acard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,8,10,.75));z-index:1}
.ac-map::after{background:linear-gradient(180deg,transparent 65%,rgba(8,8,10,.55))}
.acard .acap{position:absolute;left:24px;right:24px;bottom:22px;z-index:2;color:#f4f3f0}
.acard .acap .at{font-family:var(--caps);font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:6px}
.acard .acap h4{font-family:var(--display);font-weight:700;font-size:1.4rem;line-height:1.2;color:#f4f3f0}
.acard.pos0{transform:translate(-50%,-50%) rotate(0) scale(1);z-index:6;opacity:1;left:50%;top:50%}
.acard.pos1{transform:translate(calc(-50% + 32px),calc(-50% - 26px)) rotate(5deg) scale(.93);z-index:5;opacity:.85;left:50%;top:50%}
.acard.pos2{transform:translate(calc(-50% - 32px),calc(-50% - 48px)) rotate(-4deg) scale(.87);z-index:4;opacity:.65;left:50%;top:50%}
.acard.leaving{transform:translate(-50%,calc(-50%+110px)) rotate(12deg) scale(1.02)!important;opacity:0!important;z-index:7}
.about-cards-wrap{position:relative;height:100%;min-height:520px;width:100%}
.acard-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-family:var(--caps);font-size:.5rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(20,18,12,.4);white-space:nowrap;z-index:8}
.acard-dots{position:absolute;bottom:22px;right:30px;display:flex;gap:8px;z-index:8}
.acard-dot{width:28px;height:2px;background:rgba(140,105,30,.25);border:none;cursor:pointer;padding:0;transition:background .4s}
.acard-dot.on{background:var(--gold)}

/* ---------- numbers band (coal) ---------- */
.numbers{background:var(--coal);padding:70px 0;position:relative;overflow:hidden;border-top:1px solid var(--line-d);border-bottom:1px solid var(--line-d)}
.numbers::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 55% 80% at 50% 50%,rgba(200,163,75,.07),transparent)}
.numbers .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;text-align:center}
.numbers .cell{padding:0 40px;border-right:1px solid rgba(200,170,80,.14)}
.numbers .cell:last-child{border-right:none}
.numbers .n{font-family:var(--display);font-weight:700;font-size:clamp(4rem,7.6vw,7rem);line-height:1;color:var(--white);letter-spacing:-.03em}
.numbers .hi{color:var(--gold-hi)}
.numbers .l{font-family:var(--caps);font-size:.5rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(247,242,232,.45);margin-top:12px}
.numbers .ld{font-family:var(--sans);font-size:.82rem;color:rgba(247,242,232,.28);margin-top:6px}
.numbers .bar{display:none}
.numbers .cell:hover .n{text-shadow:0 0 60px rgba(78,125,255,.3)}
/* ---------- services (cream, editorial) ---------- */
.services{padding:110px 0;background:var(--coal);position:relative}
.services .sint{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:60px}
.services .sint h2{font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,4.8vw,4.2rem);line-height:1.06;letter-spacing:-.02em;color:var(--ink)}
.services .sint h2 .it{font-style:italic;font-weight:600;color:var(--gold-2)}
.services .sint p{color:var(--stone);font-family:var(--sans);font-size:.95rem;max-width:42ch}
.svc-rows{border-top:1px solid var(--line)}
.svc-row{border-bottom:1px solid var(--line);padding:28px 0;display:grid;grid-template-columns:62px 1fr 1fr 120px;gap:20px 36px;align-items:center;cursor:pointer;transition:background .4s;position:relative}
.svc-row:hover{background:rgba(200,162,75,.06)}
.svc-row .idx{font-family:var(--caps);font-size:.64rem;letter-spacing:.18em;color:var(--gold-2);padding-top:4px}
.svc-row h3{font-family:var(--display);font-weight:700;font-size:clamp(1.6rem,2.6vw,2.2rem);color:var(--ink);transition:transform .5s var(--ease),color .4s;line-height:1.1;letter-spacing:-.01em}
.svc-row:hover h3{transform:translateX(14px);color:var(--gold-2)}
.svc-row p{color:var(--stone);font-size:.9rem;max-width:46ch;font-family:var(--sans)}
.svc-row .go{font-family:var(--caps);font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--stone);white-space:nowrap;transition:color .4s;text-align:right}
.svc-row:hover .go{color:var(--gold-2)}
.svc-float{position:fixed;z-index:90;width:280px;aspect-ratio:4/3;pointer-events:none;overflow:hidden;opacity:0;transform:scale(.9) rotate(-2deg);transition:opacity .35s,transform .5s var(--ease);box-shadow:0 30px 70px rgba(14,12,6,.4);border-radius:12px}
.svc-float img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.svc-float img.on{opacity:1}
.svc-float.show{opacity:1;transform:scale(1) rotate(0)}
.svc-float::after{content:"";position:absolute;inset:0;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(200,170,80,.3)}
/* ---------- promises (redesigned dark-gold) ---------- */
.pledge{background:linear-gradient(135deg,#c09020,#e8c76a 42%,#caa030);padding:100px 0}
.pledge .head{text-align:center;margin-bottom:66px}
.pledge .head .eyebrow{justify-content:center;color:rgba(18,16,10,.52)}
.pledge .head h2{color:#12100a;margin-top:24px}
.pledge .head h2 .it{color:rgba(18,16,10,.58)}
.pledge .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pledge .pc{position:relative;border:1px solid rgba(15,12,5,.16);border-radius:20px;padding:34px 28px 30px;background:rgba(15,12,5,.06);overflow:hidden;transition:border-color .5s,background .5s;cursor:default}
.pledge .pc:hover{border-color:rgba(15,12,5,.3);background:rgba(15,12,5,.12)}
.pledge .pc::before{content:"";position:absolute;inset:0;border-radius:20px;background:radial-gradient(ellipse 80% 60% at 50% 100%,rgba(210,170,79,.1),transparent);opacity:0;transition:opacity .5s}
.pledge .pc:hover::before{opacity:1}
.pledge .pc .num{font-family:var(--display);font-weight:700;font-size:3.8rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(15,12,5,.25);transition:-webkit-text-stroke-color .5s;position:relative;z-index:2}
.pledge .pc:hover .num{-webkit-text-stroke-color:rgba(15,12,5,.55)}
.pledge .pc .icon{font-size:1.5rem;margin:14px 0 16px;display:block;filter:drop-shadow(0 0 5px rgba(15,12,5,.15));position:relative;z-index:2}
.pledge .pc h3{font-family:var(--display);font-weight:700;font-size:1.2rem;color:#12100a;line-height:1.3;margin-bottom:12px;position:relative;z-index:2}
.pledge .pc p{color:rgba(15,12,5,.58);font-size:.88rem;line-height:1.75;position:relative;z-index:2}
.pledge .pc .bar{height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-hi));border-radius:2px;width:0;margin-top:22px;transition:width .7s var(--ease);position:relative;z-index:2}
.pledge .pc:hover .bar{width:100%}
/* ---------- advantage (ivory, 3-col) ---------- */
.commit{background:var(--coal);padding:110px 0}
.commit .chead{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:60px}
.commit .chead h2{font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,4.8vw,4.2rem);line-height:1.06;letter-spacing:-.02em;color:var(--ink)}
.commit .chead h2 .it{font-style:italic;font-weight:600;color:var(--gold-2)}
.commit .chead p{color:var(--stone);font-size:.95rem;max-width:42ch;font-family:var(--sans)}
.commit .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.commit .cell{background:var(--card);border-radius:18px;padding:36px 30px;position:relative;overflow:hidden;border:1px solid rgba(140,105,30,.12);transition:all .5s var(--ease)}
.commit .cell:hover{background:#1d3154;box-shadow:0 0 0 1px rgba(78,125,255,.22),0 24px 50px -15px rgba(78,125,255,.12);border-color:rgba(185,145,46,.45);transform:translateY(-5px);box-shadow:0 28px 56px -18px rgba(20,16,6,.16)}
.commit .cell .stripe{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-2),var(--gold-hi));transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.commit .cell:hover .stripe{transform:scaleX(1)}
.commit .g{font-family:var(--caps);font-size:.54rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-2);margin-bottom:14px}
.commit h3{font-family:var(--display);font-weight:700;font-size:1.4rem;margin:10px 0 12px;color:var(--ink);line-height:1.2;letter-spacing:-.01em}
.commit p{color:var(--stone);font-size:.88rem;max-width:42ch;line-height:1.78;font-family:var(--sans)}
/* ---------- events (dark accent) ---------- */
.events{position:relative;overflow:hidden;background:var(--navy);color:#f4f3f0}
.events::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 70% at 80% 50%,rgba(200,163,75,.1),transparent 65%)}
.events .inner{position:relative;display:grid;grid-template-columns:1.3fr .7fr;gap:70px;align-items:center;padding:100px 0}
.events .k{font-family:var(--caps);font-size:.7rem;letter-spacing:.46em;text-transform:uppercase;color:var(--gold)}
.events h2{font-family:var(--display);font-weight:700;letter-spacing:-.02em;font-size:clamp(2.2rem,4.2vw,3.7rem);line-height:1.12;margin:20px 0 18px}
.events h2 .it{font-style:italic;font-weight:400;color:var(--gold-hi)}
.events p{color:rgba(247,242,232,.6);font-family:var(--sans);max-width:56ch}
.events .side{text-align:center;border-left:1px solid var(--line-d);padding:30px 20px}
.events .side .free{font-family:var(--display);font-weight:600;font-size:clamp(3rem,5.4vw,4.8rem);line-height:1;color:var(--gold-hi)}
.events .side .fl{font-family:var(--caps);font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:12px 0 32px}
.events .glow{position:absolute;top:-40%;right:-6%;width:420px;height:420px;border:1px solid rgba(210,170,79,.22);transform:rotate(45deg);pointer-events:none}
.events .glow::after{content:"";position:absolute;inset:36px;border:1px solid rgba(210,170,79,.13)}

/* ---------- testimonials (white) ---------- */
.testi{background:var(--coal);padding:110px 0;position:relative;overflow:hidden}
.testi .bigq{position:absolute;top:-60px;left:4%;font-family:var(--display);font-size:30rem;line-height:1;color:rgba(200,163,75,.07);pointer-events:none}
.t-stage{position:relative;max-width:920px;margin:64px auto 0;min-height:320px;text-align:center}
.t-slide{position:absolute;inset:0;opacity:0;pointer-events:none}
.t-slide blockquote{font-family:var(--display);font-weight:400;font-style:italic;font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.58;color:#f4f3f0}
.t-slide blockquote .hl{color:var(--gold-deep);font-style:italic}
.t-slide .who{margin-top:34px;font-family:var(--caps);font-size:.7rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold-hi)}
.t-slide .stars{color:var(--gold-hi);letter-spacing:.4em;margin-top:14px;font-size:.8rem}
.t-nav{display:flex;gap:12px;justify-content:center;margin-top:44px}
.t-dot{width:40px;height:2px;background:rgba(244,243,240,.15);border:none;cursor:pointer;padding:0;transition:background .4s}
.t-dot.on{background:var(--gold-hi)}

/* ---------- CTA (dark image band) ---------- */
.cta{position:relative;padding:130px 0;text-align:center;overflow:hidden;background:var(--coal);color:#f4f3f0}
.cta .bg{position:absolute;inset:-12% 0;background-size:cover;background-position:center 60%;filter:brightness(.3) saturate(.85);will-change:transform}
.cta .frame{position:absolute;inset:38px;border:1px solid rgba(210,170,79,.32);pointer-events:none;z-index:2}
.cta .frame i{position:absolute;width:24px;height:24px;border-color:var(--gold);border-style:solid}
.cta .frame i:nth-child(1){top:-1px;left:-1px;border-width:1px 0 0 1px}
.cta .frame i:nth-child(2){top:-1px;right:-1px;border-width:1px 1px 0 0}
.cta .frame i:nth-child(3){bottom:-1px;left:-1px;border-width:0 0 1px 1px}
.cta .frame i:nth-child(4){bottom:-1px;right:-1px;border-width:0 1px 1px 0}
.cta .inner{position:relative;z-index:3}
.cta h2{font-size:clamp(2.5rem,5.4vw,4.6rem);margin:26px 0 24px;line-height:1.12}
.cta p{color:rgba(255,255,255,.66);max-width:56ch;margin:0 auto 48px}
.cta .row{display:flex;gap:46px;justify-content:center;margin-top:52px;flex-wrap:wrap;font-family:var(--caps);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.cta .row a{color:var(--gold-hi);border-bottom:1px solid transparent;transition:border-color .4s}
.cta .row a:hover{border-color:var(--gold-hi)}

/* ---------- location (white) ---------- */
.loc{background:var(--coal);padding:0;border-bottom:1px solid var(--line-d)}
.loc .grid{display:grid;grid-template-columns:1fr 1fr;min-height:440px}
.loc .map{position:relative;filter:grayscale(.9) sepia(.22) contrast(.95)}
.loc .map iframe{width:100%;height:100%;border:0;display:block;min-height:440px}
.loc .info{padding:80px 8% 80px 7%;display:flex;flex-direction:column;justify-content:center;border-left:1px solid rgba(200,163,75,.25);background:var(--slate)}
.loc .info .eyebrow{color:var(--gold-hi)}
.loc .info h2,.loc .info .name{color:var(--white)}
.loc .info p,.loc .info address,.loc .info a:not(.btn){color:rgba(244,243,240,.5)}
.loc h2{margin:22px 0 16px}
.loc .row{display:flex;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid rgba(28,24,16,.08);font-size:.95rem;color:var(--stone)}
.loc .row .k{font-family:var(--caps);font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep);min-width:92px}
.loc .row a{color:var(--gold-deep)}

/* ---------- footer (dark anchor) ---------- */
footer{background:var(--coal);border-top:1px solid var(--line-d);padding:96px 0 0;position:relative;overflow:hidden;color:#fff}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px;padding-bottom:76px}
.f-grid .logo img{height:85px !important;margin-bottom:26px}
.f-grid p{color:rgba(255,255,255,.5);font-size:.87rem;max-width:40ch}
.f-grid h4{font-family:var(--caps);font-size:.88rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);margin-bottom:26px}
.f-grid ul{list-style:none;display:flex;flex-direction:column;gap:13px}
.f-grid ul a{color:rgba(255,255,255,.66);font-size:.9rem;transition:color .35s,padding-left .35s var(--ease)}
.f-grid ul a:hover{color:var(--gold-hi);padding-left:8px}
.f-lic{display:inline-block;margin-top:18px;background:linear-gradient(110deg,var(--gold-2),var(--gold-hi));color:#181405;font-size:.78rem;padding:12px 18px;letter-spacing:.05em}
.f-lic b{font-weight:600}
.f-mark{font-family:var(--display);font-weight:600;font-size:clamp(4.5rem,13vw,12rem);line-height:.9;text-align:center;letter-spacing:.06em;color:transparent;-webkit-text-stroke:1px rgba(210,170,79,.15);user-select:none;pointer-events:none;transform:none;margin-bottom:.18em}
.f-bottom{border-top:1px solid rgba(255,255,255,.06);padding:26px 0;position:relative;z-index:2;background:var(--coal);font-size:.76rem;color:rgba(255,255,255,.45);letter-spacing:.06em}
.f-bottom b{color:var(--gold-hi);font-weight:500}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  nav.menu,.nav-cta{display:none}
  .burger{display:flex}
  .numbers .grid{grid-template-columns:1fr 1fr;gap:40px}
  .commit .grid{grid-template-columns:1fr 1fr}
  .pledge .cards{grid-template-columns:1fr 1fr}
  .services .sint{grid-template-columns:1fr}
  .svc-row{grid-template-columns:52px 1fr;padding:24px 0}
  .svc-row .go{display:none}
  .svc-row p{grid-column:2/3}
  .events .inner{grid-template-columns:1fr;gap:50px}
  .events .side{border-left:none;border-top:1px solid var(--line-d);padding-top:50px}
  .loc .grid{grid-template-columns:1fr}
  .loc .info{border-left:none;border-top:1px solid var(--line);padding:70px 6%}
  .loc .map iframe{min-height:340px}
  .f-grid{grid-template-columns:1fr 1fr}
  .svc-float{display:none}
  .svc-row{grid-template-columns:52px 1fr;padding:36px 2vw}
  .svc-row .go{display:none}
  .svc-row p{grid-column:1/3}
}
@media(max-width:900px){
  /* hero */
  .hero{min-height:100svh}
  .hero-content{padding-top:140px;justify-content:flex-start}
  .hero .veil{background:linear-gradient(180deg,rgba(8,8,10,.8),rgba(8,8,10,.55) 55%,rgba(8,8,10,.78))}
  .orb-badge,.stat-card{display:none}
  /* cats */
  .cats{padding:24px 5% 44px}
  .slats{flex-direction:column;height:auto;min-height:0;max-height:none;gap:8px}
  .slat{min-height:74px;flex:none;transition:min-height .9s var(--ease)}
  .slat.active{min-height:320px;flex:none}
  .slat .side{flex-direction:row;justify-content:flex-start;gap:18px;padding:0 22px;align-items:center}
  .slat .side .svert{writing-mode:horizontal-tb}
  .slat .side .sdia{display:none}
  /* stat strip */
  .statstrip .grid{grid-template-columns:1fr 1fr}
  /* about — stack */
  .about-inner{grid-template-columns:1fr;min-height:auto}
  .about .left-col{padding:60px 7% 52px}
  .about-cards{min-height:480px}
  .about-cards-wrap{min-height:480px}
  /* numbers */
  .numbers .grid{grid-template-columns:1fr;gap:48px}
  /* services */
  .services{padding:80px 0}
  .services .sint{grid-template-columns:1fr;gap:30px}
  .svc-row{grid-template-columns:52px 1fr;padding:22px 0}
  .svc-row .go{display:none}
  .svc-row p{grid-column:2/3}
  .svc-float{display:none}
  /* pledge */
  .pledge{padding:80px 0}
  .pledge .cards{grid-template-columns:1fr 1fr}
  /* advantage */
  .commit{padding:80px 0}
  .commit .chead{grid-template-columns:1fr;gap:30px}
  .commit .grid{grid-template-columns:1fr 1fr}
  /* events */
  .events .inner{grid-template-columns:1fr;gap:50px;padding:80px 0}
  .events .side{border-left:none;border-top:1px solid var(--line-d);padding-top:50px}
  /* testimonials */
  .testi{padding:80px 0}
  .t-stage{margin-top:44px}
  /* cta */
  .cta{padding:100px 0}
  /* location */
  .loc .grid{grid-template-columns:1fr}
  .loc .info{border-left:none;border-top:1px solid rgba(200,163,75,.2);padding:60px 6%}
  .loc .map iframe{min-height:300px}
  /* footer */
  .f-grid{grid-template-columns:1fr 1fr;gap:44px}
  /* nav */
  nav.menu,.nav-cta{display:none}
  .burger{display:flex}
}

@media(max-width:640px){
  /* topbar */
  .topbar .tb-l{display:none}
  /* hero */
  .hero-eyebrow{font-size:.58rem;letter-spacing:.36em}
  .hero h1{font-size:clamp(2.4rem,9vw,3.4rem)}
  .hero-cta-row{flex-direction:column;align-items:flex-start;gap:18px}
  /* stat strip */
  .statstrip .grid{grid-template-columns:1fr 1fr}
  .statstrip .cell{border-bottom:1px solid rgba(200,170,80,.15);padding:24px 8px}
  /* roll */
  .rollsec{padding:36px 5%}
  .rollsec .stmt{font-size:clamp(1.6rem,7vw,2.6rem);white-space:normal;flex-wrap:wrap;justify-content:center}
  .rollsec .rule{display:none}
  /* about */
  .about .left-col{padding:50px 5% 44px}
  .about h2{font-size:clamp(2.2rem,8vw,3.2rem)}
  .about-cards{min-height:420px}
  .about-cards-wrap{min-height:420px}
  .acard{width:min(320px,86%)}
  /* numbers */
  .numbers{padding:50px 0}
  .numbers .n{font-size:clamp(3.2rem,14vw,5rem)}
  /* services */
  .services{padding:60px 0}
  .svc-row{grid-template-columns:44px 1fr;gap:12px 20px}
  .svc-row h3{font-size:clamp(1.3rem,5.5vw,1.8rem)}
  /* pledge */
  .pledge{padding:60px 0}
  .pledge .cards{grid-template-columns:1fr}
  .pledge .head{margin-bottom:44px}
  /* advantage */
  .commit{padding:60px 0}
  .commit .grid{grid-template-columns:1fr}
  /* events */
  .events .inner{padding:60px 0}
  .events .glow{display:none}
  /* testimonials */
  .testi{padding:60px 0}
  .t-slide blockquote{font-size:clamp(1.1rem,4.5vw,1.5rem)}
  .testi .bigq{display:none}
  /* cta */
  .cta{padding:80px 0}
  .cta .frame{display:none}
  .cta h2{font-size:clamp(2rem,8vw,3.2rem)}
  .cta .row{flex-direction:column;gap:18px;align-items:center}
  /* location */
  .loc .map iframe{min-height:240px}
  /* footer */
  .f-grid{grid-template-columns:1fr}
  .f-mark{font-size:clamp(3.5rem,18vw,8rem)}
  /* flap */
  .flapsec .board{gap:4px}
  .flapsec .cell{width:clamp(22px,6vw,36px);height:clamp(32px,8.5vw,52px);font-size:clamp(.85rem,3.2vw,1.4rem)}
  /* sparkbar */
  .sparkbar{width:80%}
}

@media(max-width:380px){
  .hero h1{font-size:2.1rem}
  .about-cards{min-height:360px}
  .about-cards-wrap{min-height:360px}
  .acard{width:min(280px,88%)}
  .numbers .n{font-size:clamp(2.8rem,16vw,4rem)}
  .pledge .pc{padding:26px 20px 22px}
}
/* 640 MQ now above */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.15s!important}
}

/* ══ THEME PICKER ══════════════════════════════════════════ */
#tp-btn{position:fixed;bottom:28px;right:28px;z-index:9000;width:48px;height:48px;border-radius:50%;background:var(--gold);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.1);transition:transform .2s,box-shadow .2s}
#tp-btn:hover{transform:scale(1.08);box-shadow:0 6px 32px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.15)}
#tp-btn svg{width:20px;height:20px;fill:none;stroke:#000;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#tp-panel{position:fixed;bottom:88px;right:28px;z-index:9000;width:300px;background:#0d0e14;border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.05);transform:translateY(16px) scale(.96);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.19,1,.22,1),opacity .25s;overflow:hidden}
#tp-panel.open{transform:translateY(0) scale(1);opacity:1;pointer-events:all}
#tp-head{padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between}
#tp-head span{font-family:'Cinzel',serif;font-size:.54rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.45)}
#tp-close{background:none;border:none;cursor:pointer;color:rgba(255,255,255,.4);font-size:16px;line-height:1;padding:2px 4px;border-radius:4px;transition:color .2s}
#tp-close:hover{color:#fff}
#tp-list{padding:8px;max-height:440px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}
.tp-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:background .18s,border-color .18s;margin-bottom:2px}
.tp-item:hover{background:rgba(255,255,255,.06)}
.tp-item.active{background:rgba(255,255,255,.08);border-color:var(--tp-accent,rgba(255,255,255,.2))}
.tp-swatches{display:flex;gap:2px;flex-shrink:0}
.tp-sw{width:12px;height:24px;border-radius:3px;flex-shrink:0}
.tp-info{flex:1;min-width:0}
.tp-name{font-family:'Cinzel',serif;font-size:.55rem;letter-spacing:.12em;color:rgba(255,255,255,.85);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-mood{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:.78rem;color:rgba(255,255,255,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-tick{width:14px;height:14px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;font-size:9px;color:#000;font-weight:700}
.tp-item.active .tp-tick{opacity:1}

/* ================================================================
   NAV DROPDOWNS + OFFCANVAS  —  Ace One
================================================================ */

/* ── Dropdown parent item ── */
.has-drop { position: relative; }

.has-drop > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Chevron inside nav link */
.nav-chev {
  font-size: .5rem;
  opacity: .6;
  transition: transform .3s ease, opacity .25s;
  pointer-events: none;
}
.has-drop:hover .nav-chev,
.has-drop:focus-within .nav-chev {
  transform: rotate(180deg);
  opacity: 1;
}

/* Dropdown panel */
.dropdown {
  position: absolute;
  top: 100%;           /* sit flush — gap handled by padding-top below */
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 226px;
  background: #0d0d12;
  border: 1px solid rgba(255,255,255,.08);
  border-top: 2px solid var(--gold);
  border-radius: 0 0 4px 4px;
  /* padding-top creates the visual gap WITHOUT a hover dead-zone */
  padding: 14px 0 6px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .26s ease, transform .26s ease, visibility .26s;
  z-index: 400;
  box-shadow: 0 28px 60px rgba(0,0,0,.7);
}

/* Tiny gold triangle caret — sits at top of padding area */
.dropdown::before {
  content: '';
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 7px;
  background: var(--gold);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

/* ── Hover bridge ────────────────────────────────────────────────
   An invisible pseudo-element on .has-drop covers the area between
   the nav link and the dropdown panel so the mouse never leaves the
   hover target while crossing the gap.
────────────────────────────────────────────────────────────────── */
.has-drop::before {
  content: '';
  position: absolute;
  bottom: -16px;    /* hangs just below the nav link */
  left: -16px;
  right: -16px;
  height: 16px;     /* covers the visual gap + safety margin */
  z-index: 399;
}

/* Show on hover OR keyboard focus */
.has-drop:hover .dropdown,
.has-drop:focus-within .dropdown,
.dropdown.kopen {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* Dropdown links */
.dropdown a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 22px;
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .83rem;
  font-weight: 400;
  color: rgba(255,255,255,.68);
  letter-spacing: .04em;
  text-transform: none;
  transition: color .22s, padding-left .22s, background .22s;
  white-space: nowrap;
}
/* Bullet dot before each item */
.dropdown a::before {
  content: '';
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--gold);
  opacity: 0;
  flex-shrink: 0;
  transition: opacity .22s;
}
.dropdown a:hover {
  color: var(--gold-hi);
  background: rgba(255,255,255,.04);
  padding-left: 26px;
}
.dropdown a:hover::before { opacity: .85; }

/* Kill the global underline pseudo-element on dropdown links */
.dropdown a::after { display: none !important; }

/* Hide legacy full-screen mmenu — kept in DOM for main.js compat */
.mmenu { display: none !important; visibility: hidden !important; }


/* ================================================================
   OFFCANVAS PANEL  —  slides from right
================================================================ */

/* ── Panel ── */
.offcanvas {
  position: fixed;
  top: 0;
  right: -380px;          /* start off-screen */
  width: 340px;
  max-width: 88vw;
  height: 100%;
  z-index: 9999;
  background: #0b0b10;
  border-left: 1px solid rgba(255,255,255,.07);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: right .44s cubic-bezier(.4,0,.2,1),
              box-shadow .44s ease;
  will-change: right;
}
.offcanvas.open {
  right: 0;
  box-shadow: -28px 0 80px rgba(0,0,0,.8);
}

/* ── Backdrop ── */
.offcanvas-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .4s ease, visibility .4s ease;
}
.offcanvas-backdrop.open {
  opacity: 1;
  visibility: visible;
}

/* ── Header (logo + close) ── */
.oc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}
.oc-logo img { height: 40px; width: auto; display: block; }

.oc-close {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.7);
  font-size: 1.05rem;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .28s, border-color .28s, color .28s, transform .35s ease;
  flex-shrink: 0;
}
.oc-close:hover {
  background: rgba(201,168,76,.14);
  border-color: rgba(201,168,76,.35);
  color: var(--gold-hi);
  transform: rotate(90deg);
}

/* ── Scrollable nav area ── */
.oc-nav {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  padding: 8px 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(201,168,76,.25) transparent;
}

/* Simple link (Home) */
.oc-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 24px;
  font-family: var(--caps, 'Cinzel', serif);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.8);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.05);
  transition: color .22s, background .22s, padding-left .25s;
}
.oc-link:hover {
  color: var(--gold-hi);
  background: rgba(201,168,76,.04);
  padding-left: 30px;
}

/* Accordion group */
.oc-group { border-bottom: 1px solid rgba(255,255,255,.05); }

/* Parent toggle button */
.oc-parent {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 24px;
  font-family: var(--caps, 'Cinzel', serif);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.8);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: color .22s, background .22s;
}
.oc-parent:hover  { color: var(--gold-hi); background: rgba(201,168,76,.04); }
.oc-parent.open   { color: var(--gold-hi); background: rgba(201,168,76,.05); }

/* Animated arrow */
.oc-arrow {
  font-size: .55rem;
  opacity: .55;
  transition: transform .35s ease, opacity .25s;
  flex-shrink: 0;
}
.oc-parent.open .oc-arrow { transform: rotate(180deg); opacity: 1; }

/* Sub-menu container (accordion) */
.oc-sub {
  max-height: 0;
  overflow: hidden;
  background: rgba(0,0,0,.22);
  transition: max-height .38s cubic-bezier(.4,0,.2,1);
}
.oc-sub.open { max-height: 320px; }

/* Sub-menu link */
.oc-sub-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 24px 12px 38px;
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .83rem;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  letter-spacing: .04em;
  border-top: 1px solid rgba(255,255,255,.03);
  transition: color .22s, padding-left .25s, background .22s;
}
.oc-sub-link::before {
  content: '';
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--gold);
  opacity: .45;
  flex-shrink: 0;
  transition: opacity .22s;
}
.oc-sub-link:hover {
  color: var(--gold-hi);
  background: rgba(201,168,76,.05);
  padding-left: 46px;
}
.oc-sub-link:hover::before { opacity: 1; }

/* ── Footer (CTA + contact) ── */
.oc-footer {
  padding: 22px;
  border-top: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.oc-cta {
  display: block;
  text-align: center;
  padding: 14px 20px;
  background: linear-gradient(110deg, var(--gold-2), var(--gold-hi));
  color: #181405;
  font-family: var(--caps, 'Cinzel', serif);
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 2px;
  transition: opacity .25s, transform .25s;
}
.oc-cta:hover { opacity: .85; transform: translateY(-1px); }

.oc-contact { display: flex; flex-direction: column; gap: 8px; }

.oc-contact-link {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .8rem;
  color: rgba(255,255,255,.45);
  text-decoration: none;
  transition: color .22s;
}
.oc-contact-link i {
  color: var(--gold);
  opacity: .65;
  font-size: .76rem;
  width: 15px;
  flex-shrink: 0;
  transition: opacity .22s;
}
.oc-contact-link:hover { color: var(--gold-hi); }
.oc-contact-link:hover i { opacity: 1; }

/* ================================================================
   RESPONSIVE  —  show burger / hide desktop nav at ≤ 1080 px
   (already handled in base style.css — these are additive fixes)
================================================================ */

/* Ensure dropdown is always hidden at mobile (panel replaces it) */
@media (max-width: 1080px) {
  .has-drop .dropdown { display: none; }
  .nav-chev { display: none; }
}

/* Prevent body scroll when offcanvas is open on touch devices */
body.oc-open { overflow: hidden; touch-action: none; }

/* Burger ARIA expanded visual — match existing .open state */
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8.5px) rotate(-45deg); }