/* Stemple Case Desk — light/cream theme + motion layer */
*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{margin:0;background:var(--color-cream);color:var(--color-navy);font-family:var(--font-body);overflow-x:hidden}
/* Rebrand: replace the design-system orange with a refined deep teal accent */
:root{--color-orange:#0E7C6B;--accent-bright:#39C6B2;--color-accent:#0E7C6B;--font-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif}
::selection{background:var(--color-orange);color:#fff}
a{color:var(--color-navy)}a:hover{color:var(--color-orange)}
img{display:block;max-width:100%}
#root{position:relative;z-index:1}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

/* ---- Reveal ---- */
.rv{opacity:0;transform:translateY(46px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.rv.in{opacity:1;transform:none}
.rv-2{transition-delay:.12s}.rv-3{transition-delay:.24s}.rv-4{transition-delay:.36s}.rv-5{transition-delay:.48s}.rv-6{transition-delay:.6s}
.clip-rise{overflow:hidden;display:block}
.clip-rise>span{display:block;transform:translateY(110%);transition:transform 1.1s cubic-bezier(.16,1,.3,1);will-change:transform}
.in .clip-rise>span,.clip-rise.in>span{transform:none}
.cr-2>span{transition-delay:.09s}.cr-3>span{transition-delay:.18s}.cr-4>span{transition-delay:.27s}

/* ---- Primitives ---- */
.wrap{max-width:1520px;margin:0 auto;padding:0 var(--gutter)}
.section{position:relative;padding:clamp(90px,13vh,170px) 0}
.eyebrow{font-family:var(--font-headline);font-weight:300;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--color-orange);display:inline-flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--color-orange);opacity:.8}
.eyebrow.on-dark{color:var(--accent-bright)}
.mono{font-family:var(--font-body);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(31,42,68,.42)}
.hl{font-family:var(--font-headline);font-style:italic;font-weight:500;line-height:1.1;letter-spacing:-.01em}
.dark-sec{background:var(--color-deep-black);color:#fff}
.dark-sec .mono{color:rgba(255,255,255,.42)}

/* ---- Floating pill nav ---- */
.pillnav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,3vw,44px);gap:16px;transition:padding .35s,background .35s,backdrop-filter .35s}
.pillnav.scrolled{padding:12px clamp(20px,3vw,44px);background:rgba(243,241,236,.72);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(31,42,68,.08)}
.pill-group{position:relative;display:flex;gap:6px;background:rgba(255,255,255,.1);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(255,255,255,.28);border-radius:100px;padding:6px;overflow:hidden;box-shadow:0 6px 26px rgba(8,10,14,.14),inset 0 1px 0 rgba(255,255,255,.35)}
.pill-group::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(130px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.4),transparent 62%)}
.pill-group:hover::before{opacity:1}
.pillnav.scrolled .pill-group{background:rgba(255,255,255,.28);border-color:rgba(31,42,68,.12);box-shadow:0 6px 22px rgba(8,10,14,.08),inset 0 1px 0 rgba(255,255,255,.55)}
.pillnav.scrolled .pill-group::before{background:radial-gradient(130px circle at var(--mx,50%) var(--my,50%),rgba(14,124,107,.16),transparent 62%)}
.pill{position:relative;z-index:1;appearance:none;background:transparent;border:none;font-family:var(--font-body);font-size:14.5px;color:rgba(255,255,255,.92);letter-spacing:.01em;padding:11px 22px;border-radius:100px;cursor:pointer;text-decoration:none;transition:background .3s,color .25s,transform .3s cubic-bezier(.16,1,.3,1);white-space:nowrap}
.pill:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}
.pillnav.scrolled .pill{color:var(--color-navy)}
.pillnav.scrolled .pill:hover{background:rgba(31,42,68,.07)}
.pill.book{background:rgba(14,124,107,.32);border:1px solid rgba(57,198,178,.55);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.pill.book:hover{background:rgba(14,124,107,.55);transform:translateY(-1px)}
.pillnav.scrolled .pill.book{color:#fff}
.nav-logo{display:flex;align-items:center;justify-content:center;text-decoration:none;flex:none}
.nav-logo .wm{font-family:var(--font-serif);font-size:clamp(24px,2.4vw,34px);font-weight:600;letter-spacing:.34em;color:#fff;padding-left:.34em;text-shadow:0 2px 20px rgba(0,0,0,.28);transition:color .3s}
.pillnav.scrolled .nav-logo .wm{color:var(--color-navy);text-shadow:none}
.nav-side{display:flex;align-items:center;gap:12px}
.nav-burger{display:none}
@media(max-width:900px){
  .pillnav{background:rgba(243,241,236,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(31,42,68,.08)}
  .pillnav .nav-logo .wm{color:var(--color-navy);text-shadow:none}
  .pill-group.left,.pill-group.right{position:fixed;top:74px;left:16px;right:16px;flex-direction:column;background:rgba(247,245,240,.99);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:16px;padding:12px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:1001;box-shadow:0 20px 50px rgba(8,10,14,.28)}
  .pill-group.left .pill,.pill-group.right .pill{color:var(--color-navy);text-align:left}
  .pillnav.open .pill-group.left,.pillnav.open .pill-group.right{transform:none;opacity:1;pointer-events:auto}
  .pill-group.right{top:auto;bottom:16px}
  .pillnav.open::after{content:"";position:fixed;inset:0;background:rgba(11,13,18,.4);z-index:998}
  .nav-burger{display:flex;flex-direction:column;gap:5px;background:rgba(255,255,255,.7);border:1px solid rgba(31,42,68,.12);border-radius:12px;padding:14px;cursor:pointer;position:relative;z-index:1001}
  .nav-burger span{width:20px;height:2px;background:var(--color-navy);transition:.3s}
  .pillnav.open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .pillnav.open .nav-burger span:nth-child(2){opacity:0}
  .pillnav.open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* ---- Hero (luxury full-bleed) ---- */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:0;background:#0b0d12}
.hero-media{position:absolute;inset:-9% 0;z-index:0;overflow:hidden;will-change:transform;backface-visibility:hidden}
.hero-ken{position:absolute;inset:0;transform-origin:62% 42%;animation:ken 30s ease-in-out infinite alternate;will-change:transform}
.hero-ken video,.hero-ken image-slot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@keyframes ken{from{transform:scale(1.03)}to{transform:scale(1.15)}}
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(8,10,14,.5) 0%,rgba(8,10,14,.14) 26%,rgba(8,10,14,.22) 56%,rgba(8,10,14,.82) 100%),radial-gradient(130% 100% at 50% 34%,transparent 42%,rgba(8,10,14,.44) 100%)}
#lattice{display:none}
.hero-inner{position:relative;z-index:3;width:100%;padding-top:120px;padding-bottom:clamp(72px,12vh,140px)}
.hero-eyebrow{font-family:var(--font-body);font-weight:400;font-size:clamp(10.5px,1vw,13px);letter-spacing:.36em;text-transform:uppercase;color:rgba(255,255,255,.82);margin-bottom:clamp(20px,3.4vh,38px)}
.hero-title{font-family:var(--font-serif);font-weight:500;font-size:clamp(58px,10.8vw,184px);line-height:.92;letter-spacing:-.018em;color:#fff;margin:0;text-shadow:0 2px 44px rgba(0,0,0,.32)}
.hero-title em{font-style:italic;font-weight:500;color:#fff}
.hero-cta{display:flex;gap:28px;align-items:center;margin-top:clamp(30px,5vh,54px);flex-wrap:wrap}
.btn-ghost-lux{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;border:1px solid rgba(255,255,255,.55);color:#fff;border-radius:100px;padding:16px 38px;font-family:var(--font-body);font-size:15px;letter-spacing:.03em;text-decoration:none;backdrop-filter:blur(3px);transition:background .3s,border-color .3s,color .3s,transform .2s}
.btn-ghost-lux:hover{background:#fff;border-color:#fff;color:var(--color-navy);transform:translateY(-1px)}
.btn-ghost-lux span{font-size:.9em}
.watchfilm{display:inline-flex;align-items:center;gap:14px;cursor:pointer;background:none;border:none;font-family:var(--font-body);font-size:15px;color:#fff;letter-spacing:.02em}
.watchfilm .pl{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;color:#fff;transition:background .25s,border-color .25s,color .25s,transform .25s}
.watchfilm:hover .pl{background:#fff;border-color:#fff;color:var(--color-navy);transform:scale(1.06)}
.hero-scroll{position:absolute;left:50%;transform:translateX(-50%);bottom:30px;z-index:3;display:flex;align-items:center;gap:14px;color:rgba(255,255,255,.72);font-size:11px;letter-spacing:.26em;text-transform:uppercase}
.hero-scroll .bar{width:52px;height:1px;background:rgba(255,255,255,.32);position:relative;overflow:hidden}
.hero-scroll .bar::after{content:"";position:absolute;inset:0;background:var(--color-orange);transform:translateX(-100%);animation:scrollbar 2.6s cubic-bezier(.7,0,.3,1) infinite}
@keyframes scrollbar{0%{transform:translateX(-100%)}50%{transform:translateX(0)}100%{transform:translateX(100%)}}

/* fingerprint / signature morph (navy on light) */
.morph{position:relative;width:100%;aspect-ratio:1;max-width:480px;margin:0 auto}
.morph::before{content:"";position:absolute;inset:-16%;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(243,241,236,.78) 0%,rgba(243,241,236,.52) 44%,rgba(243,241,236,.12) 68%,rgba(243,241,236,0) 80%);backdrop-filter:blur(3px)}
.morph svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.fp path,.fp circle{fill:none;stroke:rgba(31,42,68,.72);stroke-width:1.7;stroke-linecap:round}
.fp .accent{stroke:var(--color-orange);stroke-width:2}
.sig path{fill:none;stroke:var(--color-orange);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 10px rgba(14,124,107,.55))}
.morph-ring{position:absolute;inset:-6%;border:1px solid rgba(31,42,68,.2);border-radius:50%}
.morph-ring.two{inset:6%;border-color:rgba(14,124,107,.4)}
.morph-tag{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);white-space:nowrap}
.fp{animation:fpFade 9s ease-in-out infinite}
.fp path{stroke-dasharray:var(--len,400);stroke-dashoffset:var(--len,400);animation:draw 9s ease-in-out infinite}
.sig{animation:sigFade 9s ease-in-out infinite}
.sig path{stroke-dasharray:640;stroke-dashoffset:640;animation:sigDraw 9s ease-in-out infinite}
.morph-ring{animation:spin 26s linear infinite}
.morph-ring.two{animation:spin 20s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fpFade{0%{opacity:0}8%{opacity:1}44%{opacity:1}52%{opacity:0}100%{opacity:0}}
@keyframes draw{0%{stroke-dashoffset:var(--len,400)}34%{stroke-dashoffset:0}44%{stroke-dashoffset:0}52%{stroke-dashoffset:calc(var(--len,400)*-1)}100%{stroke-dashoffset:calc(var(--len,400)*-1)}}
@keyframes sigFade{0%,46%{opacity:0}50%{opacity:1}92%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes sigDraw{0%,48%{stroke-dashoffset:640}86%{stroke-dashoffset:0}94%{stroke-dashoffset:0}100%{stroke-dashoffset:-640}}

/* ---- Principle (scroll-driven word fill) ---- */
.principle{background:var(--color-cream);padding:clamp(120px,19vh,240px) 0}
.principle .wrap{max-width:1240px}
.principle-star{display:block;width:36px;height:36px;color:var(--color-navy);margin-bottom:clamp(34px,6vh,68px)}
.principle-star svg{width:100%;height:100%;display:block}
.principle-text{font-family:var(--font-serif);font-weight:500;font-size:clamp(36px,5.8vw,82px);line-height:1.16;letter-spacing:-.008em;margin:0;max-width:20ch}
.principle-text .pw{color:rgb(210,206,196)}
.principle-text em{font-style:italic}

/* ---- Case Desk showcase (premium mac window) ---- */
.casedesk{background:linear-gradient(180deg,#efece4 0%,#e6e3da 100%);position:relative;overflow:hidden}
.casedesk::before{content:"";position:absolute;top:-14%;left:50%;transform:translateX(-50%);width:88vw;height:66vh;background:radial-gradient(circle at 50% 40%,rgba(57,198,178,.16),transparent 66%);pointer-events:none;z-index:0}
.casedesk .wrap{position:relative;z-index:1}
.cd-head{display:grid;grid-template-columns:auto 1fr;gap:60px;align-items:end;margin-bottom:64px}
.cd-headline{position:relative}
.cd-title{font-family:'Bodoni Moda','Cormorant Garamond',Georgia,serif;font-weight:700;font-optical-sizing:auto;font-variation-settings:"opsz" 96;font-size:clamp(64px,11vw,176px);line-height:.88;letter-spacing:.02em;color:var(--color-navy);margin:18px 0 0;text-transform:uppercase;display:flex;flex-wrap:wrap;align-items:baseline;gap:.14em}
.cd-title em{font-style:italic;font-weight:500;color:var(--color-orange)}
.cd-word{display:inline-block;color:var(--color-navy)}
.cd-word-alt{color:var(--color-orange);font-style:italic;font-weight:500}
.cd-sep{display:inline-flex;align-items:center;justify-content:center;width:clamp(26px,3vw,54px);height:1em;position:relative;opacity:0;animation:cdSepIn .6s ease-out .55s forwards}
.cd-sep::before,.cd-sep::after{content:"";position:absolute;top:calc(50% - .12em);height:1px;background:linear-gradient(90deg,transparent,rgba(31,42,68,.5),transparent);width:42%}
.cd-sep::before{left:0}.cd-sep::after{right:0}
.cd-diamond{width:.28em;height:.28em;background:var(--color-orange);transform:rotate(45deg);animation:cdSpin 6s linear infinite;box-shadow:0 0 12px rgba(14,124,107,.45)}
@keyframes cdSepIn{to{opacity:1}}
@keyframes cdSpin{to{transform:rotate(405deg)}}
.cd-serial{margin-top:22px;font-family:var(--font-body);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:rgba(31,42,68,.55);display:inline-flex;align-items:center;gap:14px;padding-top:18px;border-top:1px solid rgba(31,42,68,.16)}
.cd-lead{font-family:var(--font-body);font-size:17px;line-height:1.72;color:var(--color-charcoal);max-width:470px;padding-bottom:14px}
.cd-stage{position:relative;display:block}
.cd-shot{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 40px 90px -35px rgba(15,23,42,.55),0 12px 30px -15px rgba(15,23,42,.35);margin-bottom:64px;animation:cdShotFloat 9s ease-in-out infinite;will-change:transform;transition:box-shadow .5s}
.cd-shot img{display:block;width:100%;height:auto;border-radius:18px}
.cd-shot .cd-shine{position:absolute;top:0;left:-30%;width:40%;height:100%;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:skewX(-18deg);pointer-events:none;animation:shotShine 6s ease-in-out infinite}
.cd-shot:hover{animation-play-state:paused;box-shadow:0 50px 100px -30px rgba(15,23,42,.6),0 16px 40px -15px rgba(15,23,42,.4)}
@keyframes cdShotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes shotShine{0%,88%{left:-40%;opacity:0}92%{opacity:1}100%{left:120%;opacity:0}}
.mac-bar{position:relative;display:flex;align-items:center;padding:14px 18px;background:linear-gradient(180deg,#222630,#191d26);border-bottom:1px solid rgba(255,255,255,.06)}
.mac-lights{display:flex;gap:8px}
.mac-lights span{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.2)}
.mac-lights span:nth-child(1){background:#ff5f57}
.mac-lights span:nth-child(2){background:#febc2e}
.mac-lights span:nth-child(3){background:#28c840}
.mac-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--font-body);font-size:12.5px;letter-spacing:.02em;color:rgba(255,255,255,.5);white-space:nowrap}
.mac-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 24px;background:#14171f;border-bottom:1px solid rgba(255,255,255,.06)}
.mock-tabs{display:flex;gap:24px;font-size:12.5px;color:rgba(255,255,255,.42)}
.mock-tabs .on{color:#fff;position:relative}
.mock-tabs .on::after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:2px;background:var(--accent-bright)}
.tb-status{display:inline-flex;align-items:center;gap:9px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(57,198,178,.82)}
.tb-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-bright);box-shadow:0 0 0 4px rgba(57,198,178,.16)}
.mock-body{display:grid;grid-template-columns:212px 1fr;min-height:452px}
.mock-side{border-right:1px solid rgba(255,255,255,.06);padding:22px 0;background:rgba(255,255,255,.012)}
.mrow{display:flex;align-items:center;gap:12px;padding:11px 24px;font-size:13.5px;color:rgba(255,255,255,.52);cursor:default;transition:background .2s,color .2s,padding .25s}
.mrow:hover{padding-left:28px}
.mrow:hover,.mrow.on{background:rgba(255,255,255,.05);color:#fff}
.mrow .ic{width:15px;height:15px;border:1.4px solid currentColor;border-radius:3px;opacity:.7;flex:none}
.mrow.on{box-shadow:inset 2px 0 0 var(--accent-bright)}
.mrow.on .ic{background:var(--accent-bright);border-color:var(--accent-bright)}
.mock-main{padding:28px 30px}
.matter{display:flex;align-items:baseline;gap:14px;margin-bottom:5px}
.matter h4{font-family:var(--font-serif);font-weight:600;font-size:26px;letter-spacing:-.01em;margin:0}
.tag{font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:4px 9px;border-radius:4px;background:rgba(106,240,255,.14);color:var(--color-cyan)}
.tag.live{background:rgba(57,198,178,.16);color:var(--accent-bright)}
.matter-sub{font-size:12.5px;color:rgba(255,255,255,.4);margin-bottom:24px}
.timeline{border-left:1px solid rgba(255,255,255,.1);margin:8px 0 0 6px;padding-left:22px}
.tl{position:relative;padding:0 0 20px}
.tl::before{content:"";position:absolute;left:-27px;top:4px;width:9px;height:9px;border-radius:50%;background:#0d1017;border:2px solid rgba(255,255,255,.3)}
.tl.done::before{background:var(--color-cyan);border-color:var(--color-cyan)}
.tl.now::before{background:var(--accent-bright);border-color:var(--accent-bright);animation:tlPulse 2.2s ease-out infinite}
@keyframes tlPulse{0%{box-shadow:0 0 0 0 rgba(57,198,178,.45)}70%{box-shadow:0 0 0 9px rgba(57,198,178,0)}100%{box-shadow:0 0 0 0 rgba(57,198,178,0)}}
.tl .t{font-size:13.5px;color:#fff;margin-bottom:3px}
.tl .d{font-size:11.5px;color:rgba(255,255,255,.38)}
.cite{margin-top:2px;padding:15px 17px;border:1px solid rgba(106,240,255,.2);border-radius:9px;background:linear-gradient(120deg,rgba(106,240,255,.06),rgba(57,198,178,.03));font-size:12.5px;color:rgba(255,255,255,.64);line-height:1.55}
.cite b{color:var(--color-cyan);font-weight:400}
.cd-feats{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(31,42,68,.16)}
.feat{position:relative;border-bottom:1px solid rgba(31,42,68,.16);padding:28px 24px;transition:padding .35s cubic-bezier(.16,1,.3,1),background .35s}
.feat:nth-child(odd){border-right:1px solid rgba(31,42,68,.16)}
.feat:hover{padding-left:32px;background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,0))}
.feat .n{font-family:var(--font-serif);font-style:italic;font-weight:500;font-size:22px;color:var(--color-orange);margin-bottom:6px;line-height:1}
.feat h5{font-family:var(--font-body);font-weight:500;font-size:17px;margin:0 0 8px;color:var(--color-navy)}
.feat p{font-size:13.5px;line-height:1.6;color:var(--color-charcoal);margin:0}

/* ---- Full-bleed image showcase (White Desert "Our Camps" style) ---- */
.bleed{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;padding-bottom:9vh}
.bleed .bg{position:absolute;inset:-16% 0;z-index:0;will-change:transform}
.bleed .bg image-slot{width:100%;height:100%}
.bleed .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(6,7,11,.72) 0%,rgba(6,7,11,.28) 38%,rgba(6,7,11,.12) 68%,rgba(14,124,107,.28) 100%),linear-gradient(0deg,rgba(6,7,11,.78) 0%,rgba(6,7,11,0) 46%);pointer-events:none}
.bleed-head{position:relative;z-index:2;margin:0 var(--gutter)}
.bleed-eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--font-headline);font-weight:300;font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--accent-bright);margin-bottom:22px}
.bleed-eyebrow::before{content:"";width:40px;height:1px;background:var(--accent-bright)}
.bleed-title{margin:0;max-width:12ch;font-family:var(--font-display);font-weight:400;font-size:clamp(56px,10vw,168px);line-height:.86;letter-spacing:.01em;text-transform:uppercase;color:#fff;text-shadow:0 6px 70px rgba(0,0,0,.5)}
.bleed-title i{color:var(--accent-bright);font-style:normal}
.bleed-panel{position:absolute;top:clamp(80px,13vh,140px);right:var(--gutter);z-index:3;width:min(400px,80vw);padding:0;background:rgba(9,12,14,.5);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);border-radius:16px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.7);transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s}
.bleed-panel::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-bright),transparent)}
.bleed-panel:hover{transform:translateY(-4px);border-color:rgba(57,198,178,.5)}
.bleed-panel>*{padding-left:34px;padding-right:34px}
.panel-top{display:flex;align-items:center;gap:14px;padding-top:32px;margin-bottom:18px}
.panel-lock{width:38px;height:38px;flex:none;border-radius:9px;background:rgba(57,198,178,.14);border:1px solid rgba(57,198,178,.35);display:flex;align-items:center;justify-content:center;color:var(--accent-bright)}
.panel-lock svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.bleed-panel .lab{font-family:var(--font-display);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#fff}
.bleed-panel p{font-size:15.5px;line-height:1.7;color:rgba(255,255,255,.88);margin:0 0 22px}
.panel-list{list-style:none;margin:0;padding:0 34px 32px;border-top:1px solid rgba(255,255,255,.12);padding-top:20px}
.panel-list li{display:flex;align-items:center;gap:12px;font-size:14px;color:rgba(255,255,255,.82);padding:7px 0}
.panel-list .tick{width:16px;height:16px;flex:none;border-radius:50%;border:1.5px solid var(--accent-bright);position:relative}
.panel-list .tick::after{content:"";position:absolute;left:4.5px;top:2px;width:4px;height:8px;border:solid var(--accent-bright);border-width:0 1.6px 1.6px 0;transform:rotate(45deg)}
.bleed-panel .lab{font-family:var(--font-display);font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.bleed-panel p{font-size:15px;line-height:1.7;color:rgba(255,255,255,.85);margin:0}

/* ---- Marquee ---- */
.marquee{overflow:hidden;border-top:1px solid rgba(31,42,68,.14);border-bottom:1px solid rgba(31,42,68,.14);padding:26px 0;background:var(--color-cream)}
.marquee-track{display:flex;gap:60px;width:max-content;animation:marq 30s linear infinite;will-change:transform}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee span{font-family:var(--font-display);font-size:clamp(22px,3vw,40px);letter-spacing:.02em;text-transform:uppercase;color:rgba(31,42,68,.18);white-space:nowrap;display:inline-flex;align-items:center;gap:60px}
.marquee span::after{content:"◆";color:var(--color-orange);font-size:.4em;opacity:.8}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---- Security (light) ---- */
.security{background:var(--color-cream);position:relative;overflow:hidden}
.sec-word{position:absolute;right:-2%;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:clamp(160px,24vw,420px);color:rgba(31,42,68,.035);line-height:.8;pointer-events:none;user-select:none}
.sec-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid rgba(31,42,68,.16);position:relative;z-index:2}
.pillar{padding:42px 48px 46px;border-bottom:1px solid rgba(31,42,68,.16);position:relative;transition:background .3s}
.pillar:nth-child(odd){border-right:1px solid rgba(31,42,68,.16)}
.pillar:hover{background:rgba(255,255,255,.5)}
.pillar .idx{font-family:var(--font-display);font-size:14px;letter-spacing:.14em;color:rgba(31,42,68,.4)}
.pillar h3{font-family:var(--font-headline);font-weight:500;font-size:clamp(22px,2.4vw,30px);margin:20px 0 12px;line-height:1.1;color:var(--color-navy)}
.pillar p{font-size:15px;line-height:1.6;color:var(--color-charcoal);max-width:420px}
.pillar .status{margin-top:16px;display:inline-flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#0f8a97}
.pillar .status .d{width:7px;height:7px;border-radius:50%;background:#12b3c4;box-shadow:0 0 0 4px rgba(18,179,196,.16)}
.pillar .status.pending{color:rgba(31,42,68,.5)}.pillar .status.pending .d{background:rgba(31,42,68,.5);box-shadow:0 0 0 4px rgba(31,42,68,.1)}
.sec-top{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:52px;flex-wrap:wrap}
.sec-top h2{font-family:var(--font-headline);font-style:italic;font-weight:500;font-size:clamp(30px,4.6vw,62px);line-height:1.04;letter-spacing:-.015em;max-width:760px;color:var(--color-navy)}
.badge{display:inline-flex;flex-direction:column;gap:6px;padding:20px 26px;border:1px solid rgba(31,42,68,.16);border-radius:8px;background:#fff}
.badge .v{font-family:var(--font-display);font-size:34px;line-height:1;color:var(--color-orange)}
.badge .l{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--color-charcoal)}

/* ---- Journey / History map (dark) ---- */
.journey{background:radial-gradient(120% 90% at 60% 10%,#0f131c,#06070b 70%);color:#fff;position:relative;overflow:hidden}
.journey .wrap{position:relative;z-index:3}
.journey-top{max-width:640px;margin-bottom:26px}
.journey-top h2{font-family:var(--font-headline);font-style:italic;font-weight:500;font-size:clamp(30px,4.4vw,58px);line-height:1.05;letter-spacing:-.015em;margin:22px 0 0}
.journey-top p{color:rgba(255,255,255,.6);font-size:16px;line-height:1.6;margin-top:18px;max-width:520px}
.map-stage{position:relative;display:grid;grid-template-columns:340px 1fr;gap:0;align-items:stretch;min-height:600px;margin-top:20px}
.map-card{align-self:center;background:rgba(9,11,16,.55);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:34px 34px;backdrop-filter:blur(6px);z-index:4}
.map-stat{padding:20px 0;border-top:1px solid rgba(255,255,255,.12)}
.map-stat:first-child{border-top:none;padding-top:0}
.map-stat .k{font-family:var(--font-headline);font-style:italic;font-size:14px;color:rgba(255,255,255,.7);margin-bottom:8px}
.map-stat .v{font-family:var(--font-display);font-size:clamp(28px,3vw,42px);line-height:1;color:#fff}
.map-stat .v .u{color:var(--accent-bright);font-size:.5em;letter-spacing:.08em;margin-left:8px}
.city-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:18px;flex-wrap:wrap}
.city-head .v{font-family:var(--font-display);font-size:clamp(30px,3.2vw,44px);line-height:1;color:#fff;text-transform:uppercase}
.status-chip{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 11px;border-radius:100px;border:1px solid;white-space:nowrap}
.status-chip .d{width:7px;height:7px;border-radius:50%}
.status-chip.s1{color:#7dffdf;border-color:rgba(57,198,178,.5);background:rgba(57,198,178,.12)}.status-chip.s1 .d{background:#39c6b2;box-shadow:0 0 0 3px rgba(57,198,178,.22)}
.status-chip.s2{color:#cfe6ff;border-color:rgba(150,190,240,.4);background:rgba(150,190,240,.1)}.status-chip.s2 .d{background:#9cc0f0}
.status-chip.s3{color:rgba(255,255,255,.75);border-color:rgba(255,255,255,.28);background:transparent}.status-chip.s3 .d{background:rgba(255,255,255,.45)}
.courts{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.courts li{position:relative;padding-left:18px;font-size:14px;line-height:1.4;color:rgba(255,255,255,.9)}
.courts li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--accent-bright)}
.fit{font-size:14.5px;color:#fff;letter-spacing:.01em}
.city-cta{margin-top:22px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(120deg,var(--color-orange),#0a5f52);color:#fff;border:none;border-radius:100px;padding:16px 22px;font-family:var(--font-body);font-size:15px;letter-spacing:.01em;cursor:pointer;box-shadow:0 10px 30px -12px rgba(14,124,107,.6);transition:box-shadow .25s,transform .12s,filter .25s}
.city-cta:hover{filter:brightness(1.08);box-shadow:0 16px 40px -12px rgba(14,124,107,.8);transform:translateY(-2px)}
.city-cta:active{transform:translateY(0)}
.city-cta em{font-style:normal;opacity:.82;font-weight:400}
.city-cta span{transition:transform .2s}.city-cta:hover span{transform:translateX(5px)}
.map-counts{display:flex;gap:36px;margin-top:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12)}
.map-counts .v{font-family:var(--font-display);font-size:34px;line-height:1;color:var(--accent-bright)}
.map-counts .k{font-family:var(--font-headline);font-style:italic;font-size:13px;color:rgba(255,255,255,.7);margin-top:4px}
.phase-key{display:flex;gap:18px;margin-top:20px;flex-wrap:wrap}
.phase-key span{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;letter-spacing:.06em;color:rgba(255,255,255,.72)}
.phase-key .pk{width:11px;height:11px;border-radius:50%}
.phase-key .pk.p1{background:#39c6b2}.phase-key .pk.p2{background:#9cc0f0;opacity:.85}.phase-key .pk.p3{background:transparent;border:1.5px solid rgba(255,255,255,.55)}
.map-holder{position:relative;min-height:600px;transform:translateZ(0);will-change:transform;contain:layout paint}
.map-holder svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.map-land{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.14);stroke-width:.6}
.map-land.focus{fill:#1e5f56;fill-opacity:1;stroke:rgba(57,198,178,.65);stroke-width:1.2}
/* rollout pins by phase */
.pin{cursor:pointer;animation:pinFade .6s ease backwards;animation-delay:var(--d,0s)}
.pin-dot{transform-box:fill-box;transform-origin:center;animation:pinPop .7s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:var(--d,0s)}
@keyframes pinFade{from{opacity:0}to{opacity:1}}
@keyframes pinPop{0%{transform:scale(0)}100%{transform:scale(1)}}
.pin-sonar{fill:none;stroke:var(--accent-bright);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:sonar 2.8s ease-out infinite;animation-delay:var(--d,0s)}
@keyframes sonar{0%{transform:scale(1);opacity:.55}100%{transform:scale(3.6);opacity:0}}
.pin-hit{fill:transparent}
.pin-pulse{fill:none;stroke:var(--accent-bright);stroke-width:1.5;opacity:0}
.pin-label{font-family:var(--font-body);font-size:13px;font-weight:500;letter-spacing:.03em;paint-order:stroke;stroke:rgba(6,7,11,.85);stroke-width:3px;stroke-linejoin:round}
.pin-p1 .pin-dot{fill:#39c6b2;stroke:#eafffb;stroke-width:2}
.pin-p1 .pin-label{fill:#eafffb}
.pin-p2 .pin-dot{fill:#9cc0f0;stroke:rgba(255,255,255,.75);stroke-width:1.5}
.pin-p2 .pin-label{fill:#eaf1fb}
.pin-p3 .pin-dot{fill:#06070b;stroke:rgba(255,255,255,.65);stroke-width:1.6}
.pin-p3 .pin-label{fill:rgba(240,244,250,.92)}
.pin.sel .pin-dot{stroke:#fff;stroke-width:2.6}
.pin.sel .pin-label{fill:#fff}
.pin:focus{outline:none}
.pin:focus .pin-dot{stroke:#fff;stroke-width:2.6}

/* ---- Film (full-scale video) ---- */
.film{position:relative;background:var(--color-cream);color:#fff;padding:0;height:260vh}
.film-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-cream)}
.film-frame{position:relative;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;transform-origin:50% 50%;will-change:transform,border-radius;backface-visibility:hidden;box-shadow:0 40px 120px rgba(9,11,16,.28)}
.film-frame .bg{position:absolute;inset:0;z-index:0;background:radial-gradient(120% 100% at 50% 30%,#141821,#080a0f 70%)}
.film-frame .bg image-slot{width:100%;height:100%}
.film-frame .bg video,.film-frame .bg iframe{position:absolute;top:50%;left:50%;width:max(177.78vh,100vw);height:max(56.25vw,100vh);transform:translate(-50%,-50%);object-fit:cover;display:block;border:0;pointer-events:none}
.film-frame .bg::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 50%,rgba(9,11,16,.30) 0%,rgba(9,11,16,.58) 100%)}
.film-copy{position:relative;z-index:2;text-align:center;padding:0 var(--gutter);pointer-events:none;transform-origin:50% 50%;will-change:transform,opacity}
.film-copy .lab{font-family:var(--font-headline);font-weight:300;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.film-copy h2{font-family:var(--font-display);font-weight:400;font-size:clamp(44px,8vw,140px);line-height:.9;letter-spacing:.01em;text-transform:uppercase;margin:18px 0 0}
.film-play{width:96px;height:96px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.05);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto;cursor:pointer;font-size:26px;transition:background .3s,transform .3s,border-color .3s}
.film-play:hover{background:var(--color-orange);border-color:var(--color-orange);transform:scale(1.06)}
.film-play::before{content:"";position:absolute;width:96px;height:96px;border-radius:50%;border:1px solid rgba(255,255,255,.4);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}

/* video modal */
.vmodal{position:fixed;inset:0;z-index:2000;background:rgba(6,7,11,.9);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:5vw;opacity:0;pointer-events:none;transition:opacity .35s}
.vmodal.open{opacity:1;pointer-events:auto}
.vmodal-box{position:relative;width:100%;max-width:1100px;aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 40px 120px rgba(0,0,0,.6)}
.vmodal-box video,.vmodal-frame{width:100%;height:100%;display:block;border:0;background:#000}
.vmodal-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:rgba(255,255,255,.6);text-align:center;padding:30px;font-size:14px}
.vmodal-empty .ic{font-size:40px;opacity:.5}
.vmodal-close{position:absolute;top:-46px;right:0;background:none;border:none;color:#fff;font-size:26px;cursor:pointer;line-height:1}

/* ---- Testimonials — The Ledger ---- */
.voices{background:linear-gradient(180deg,#f6f4ef 0%,#eeeae1 100%);position:relative;overflow:hidden;padding:130px 0}
.voices-grid{position:relative;max-width:1560px;margin:0 auto;padding:0 clamp(24px,4vw,72px);display:grid;grid-template-columns:1fr 320px;grid-template-rows:auto 1fr;gap:56px 72px}
.voices-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.vg-grid{position:absolute;inset:-1px;background-image:linear-gradient(rgba(31,42,68,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(31,42,68,.045) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at 30% 50%,#000 30%,transparent 78%)}
.vg-orb{position:absolute;top:-16%;right:-8%;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(57,198,178,.28),rgba(57,198,178,0) 65%);filter:blur(8px);animation:vgOrb 22s ease-in-out infinite;will-change:transform}
@keyframes vgOrb{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-40px,30px) scale(1.06)}}

.voices-head{grid-column:1 / -1;position:relative;z-index:1;display:flex;flex-direction:column;gap:14px}
.voices-title{font-family:var(--font-serif);font-weight:500;font-style:italic;font-size:clamp(40px,6.2vw,96px);line-height:.94;letter-spacing:-.02em;color:var(--color-navy);margin:0;display:flex;flex-direction:column;text-wrap:balance}
.voices-title em{font-style:italic;color:var(--accent-bright);position:relative;padding:0 .04em}
.voices-title em::after{content:"";position:absolute;left:.04em;right:.04em;bottom:.03em;height:.18em;background:rgba(57,198,178,.18);z-index:-1;transform:skewX(-8deg)}
.voices-meta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#0E7C6B;margin-top:6px}
.voices-meta .dot{width:7px;height:7px;border-radius:50%;background:var(--accent-bright);box-shadow:0 0 0 5px rgba(57,198,178,.16);animation:vgPulse 2.4s ease-out infinite}
@keyframes vgPulse{0%,100%{opacity:1}50%{opacity:.55}}

.stage{position:relative;z-index:1;min-height:400px;display:flex;align-items:center}
.stage-quote{position:relative;padding:12px 0 8px 92px;animation:qIn .9s cubic-bezier(.2,.9,.25,1) both}
@keyframes qIn{0%{opacity:0;transform:translateY(22px)}60%{opacity:1}100%{opacity:1;transform:none}}
.stage-quote .qmark{position:absolute;left:-6px;top:-40px;font-family:var(--font-serif);font-weight:500;font-size:220px;line-height:1;color:var(--accent-bright);opacity:.85;pointer-events:none;user-select:none}
.stage-quote .qmark::after{content:"";position:absolute;left:6px;top:24px;width:52px;height:2px;background:var(--accent-bright);transform-origin:left;animation:qLine 1.1s .1s cubic-bezier(.2,.9,.25,1) both}
@keyframes qLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.qtext{font-family:var(--font-serif);font-weight:500;font-size:clamp(22px,2.15vw,32px);line-height:1.42;color:var(--color-navy);margin:0;letter-spacing:-.005em;max-width:64ch;text-wrap:pretty}
.qtext b{font-weight:600;color:var(--color-navy);background:linear-gradient(180deg,transparent 62%,rgba(57,198,178,.22) 62%);padding:0 .06em}
.qrule{margin:36px 0 22px;height:1px;background:linear-gradient(90deg,rgba(31,42,68,.22),transparent 60%)}
.qrule span{display:block;width:64px;height:1px;background:var(--accent-bright);transform-origin:left;animation:qLine 1s .35s cubic-bezier(.2,.9,.25,1) both}
.qwho{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.qwho-name{font-family:var(--font-body);font-weight:500;font-size:19px;color:var(--color-navy);letter-spacing:.005em}
.qwho-role{font-family:var(--font-body);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#7a7a7a}

.index-rail{position:relative;z-index:1;align-self:end;display:flex;flex-direction:column;gap:22px;border-left:1px solid rgba(31,42,68,.14);padding:12px 0 12px 22px}
.rail-count{font-family:var(--font-serif);font-weight:500;font-size:34px;letter-spacing:-.01em;color:var(--color-navy);line-height:1;display:flex;align-items:baseline;gap:8px}
.rail-count .sep{color:rgba(31,42,68,.35);font-size:22px}
.rail-count .tot{font-size:22px;color:rgba(31,42,68,.5)}
.rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:rail}
.rail-list button{all:unset;cursor:pointer;position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;padding:12px 4px 12px 0;width:100%;border-top:1px solid rgba(31,42,68,.1);transition:padding .35s cubic-bezier(.16,1,.3,1)}
.rail-list button:hover{padding-left:8px}
.rail-list .rl-num{grid-row:1 / span 2;align-self:center;font-family:var(--font-serif);font-style:italic;font-size:14px;color:rgba(31,42,68,.4);letter-spacing:.02em}
.rail-list .rl-name{font-family:var(--font-body);font-weight:500;font-size:14px;color:rgba(31,42,68,.55);transition:color .25s}
.rail-list .rl-role{font-family:var(--font-body);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(31,42,68,.35)}
.rail-list li.on button{padding-left:14px}
.rail-list li.on .rl-name{color:var(--color-navy)}
.rail-list li.on .rl-num{color:var(--accent-bright);font-style:italic}
.rl-bar{position:absolute;left:0;bottom:-1px;height:1px;background:var(--accent-bright);animation:rlBar 7s linear both;box-shadow:0 0 6px rgba(57,198,178,.6)}
@keyframes rlBar{from{width:0}to{width:100%}}
.rail-arrows{display:flex;gap:10px;margin-top:6px}
.rail-arrows button{all:unset;cursor:pointer;width:42px;height:42px;border:1px solid rgba(31,42,68,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-navy);font-size:16px;transition:background .25s,border-color .25s,transform .25s,color .25s}
.rail-arrows button:hover{background:var(--color-navy);color:#fff;border-color:var(--color-navy);transform:translateY(-1px)}

@media(max-width:900px){
  .voices{padding:80px 0}
  .voices-grid{grid-template-columns:1fr;gap:36px}
  .stage-quote{padding-left:0}
  .stage-quote .qmark{position:relative;left:0;top:0;font-size:120px;display:block;line-height:.9;margin-bottom:-12px}
  .stage-quote .qmark::after{display:none}
  .index-rail{border-left:0;border-top:1px solid rgba(31,42,68,.14);padding:22px 0 0}
  .voices-title{font-size:clamp(34px,10vw,60px)}
}
.quote-who,.quote-txt{display:none}

/* ---- Values ---- */
.values{background:var(--color-mushroom)}
.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(31,42,68,.14);border:1px solid rgba(31,42,68,.14);margin-top:56px}
.val{background:var(--color-cream);padding:44px 38px 50px;transition:background .35s}
.val:hover{background:#fff}
.val-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.val .n{font-family:var(--font-display);font-size:14px;letter-spacing:.14em;color:var(--color-orange)}
.val-icon{width:48px;height:48px;display:block}
.val-icon svg{width:100%;height:100%;overflow:visible}
.val-icon [class^=vi-]{stroke:var(--color-navy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
.val-icon .vi-node,.val-icon .vi-track{fill:none}
/* clock */
.val-icon .vi-track{stroke:rgba(31,42,68,.2)}
.val-icon .vi-sweep{stroke:var(--color-orange);stroke-dasharray:107;stroke-dashoffset:107;transform:rotate(-90deg);transform-origin:24px 24px;transition:stroke-dashoffset 1.1s cubic-bezier(.65,0,.35,1)}
.val-icon .vi-hand{transform-origin:24px 24px;transition:transform .9s cubic-bezier(.34,1.56,.64,1)}
.val:hover .vi-sweep{stroke-dashoffset:12}
.val:hover .vi-hand.hh{transform:rotate(300deg)}
.val:hover .vi-hand.mh{transform:rotate(220deg)}
/* invoice */
.val-icon .vi-doc{stroke:var(--color-navy)}
.val-icon .vi-ln{stroke:rgba(31,42,68,.35);stroke-dasharray:12;stroke-dashoffset:12;transition:stroke-dashoffset .5s ease}
.val-icon .vi-ln.l2{transition-delay:.1s}
.val-icon .vi-check{stroke:var(--color-orange);stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .6s ease .18s}
.val:hover .vi-ln{stroke-dashoffset:0}
.val:hover .vi-check{stroke-dashoffset:0}
/* offline waves */
.val-icon .vi-wave{stroke:var(--color-navy);opacity:.35;stroke-dasharray:60;stroke-dashoffset:60;transition:stroke-dashoffset .5s ease,opacity .4s ease}
.val-icon .vi-wave.w1{transition-delay:0s}.val-icon .vi-wave.w2{transition-delay:.08s}.val-icon .vi-wave.w3{transition-delay:.16s}
.val-icon .vi-node{fill:var(--color-orange);stroke:none;transform-origin:24px 39px;transform:scale(.6);transition:transform .4s cubic-bezier(.34,1.56,.64,1) .24s}
.val:hover .vi-wave{stroke-dashoffset:0;opacity:.9}
.val:hover .vi-node{transform:scale(1)}
.val h4{font-family:var(--font-headline);font-style:italic;font-weight:500;font-size:24px;margin:22px 0 14px;line-height:1.15;color:var(--color-navy)}
.val p{font-size:14.5px;line-height:1.6;color:var(--color-charcoal);margin:0}
.val .line{width:38px;height:2px;background:var(--color-navy);margin-top:26px;transition:width .4s,background .4s}
.val:hover .line{width:72px;background:var(--color-orange)}
.val-lead{font-family:var(--font-headline);font-style:italic;font-weight:500;font-size:clamp(24px,3vw,40px);line-height:1.2;max-width:900px;margin-top:26px;color:var(--color-navy)}

/* ---- Team (light) ---- */
.team{background:var(--color-cream)}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px}
.team-carousel{margin-top:56px;padding:0 var(--gutter);overflow:hidden}
.team-track{display:flex;gap:24px;width:max-content;will-change:transform}
.team-carousel .member{flex:0 0 auto;width:auto}
.rv-slide{opacity:0;transform:translateX(-60px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.rv-slide.in{opacity:1;transform:none}
.member{position:relative}
.member .ph{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:10px;background:#e2e0d8;border:1px solid rgba(31,42,68,.1)}
.member image-slot{width:100%;height:100%}
.member .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(9,11,16,.4),transparent 55%);pointer-events:none}
.member .disc{position:absolute;top:16px;left:16px;z-index:3;font-family:var(--font-display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(9,11,16,.45);backdrop-filter:blur(6px);padding:7px 12px;border-radius:4px;outline:none;transition:box-shadow .25s}
.member .disc:hover{box-shadow:0 0 0 1px rgba(255,255,255,.5)}
.member .disc:focus{background:rgba(9,11,16,.7);box-shadow:0 0 0 1px var(--accent-bright);cursor:text}
.member .meta{padding:22px 4px 0}
.member .nm{font-family:var(--font-headline);font-weight:500;font-size:22px;letter-spacing:-.01em;color:var(--color-navy);position:relative;display:inline-block;border-radius:4px;padding:2px 6px;margin-left:-6px;outline:none;transition:background .25s,box-shadow .25s}
.member .nm:hover{background:rgba(31,42,68,.05);box-shadow:inset 0 -1px 0 rgba(31,42,68,.25)}
.member .nm:hover::after{content:"\270e";position:absolute;top:-8px;right:-14px;font-size:12px;color:var(--color-orange);opacity:.85}
.member .nm:focus{background:#fff;box-shadow:0 0 0 1px rgba(14,124,107,.4),0 6px 20px rgba(31,42,68,.12);cursor:text}
.member .nm:focus::after{display:none}
.member .rl{font-size:13px;color:rgba(31,42,68,.5);margin-top:6px;display:inline-block;border-radius:4px;padding:2px 6px;margin-left:-6px;outline:none;transition:background .25s,box-shadow .25s}
.member .rl:hover{background:rgba(31,42,68,.05);box-shadow:inset 0 -1px 0 rgba(31,42,68,.2)}
.member .rl:focus{background:#fff;box-shadow:0 0 0 1px rgba(14,124,107,.4);cursor:text}

/* ---- Footer (custom, animated) ---- */
.site-footer{background:var(--color-cream);color:var(--color-navy);padding:96px 0 0;position:relative;overflow:hidden}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(14,124,107,.55),transparent);background-size:45% 100%;background-repeat:no-repeat;animation:ftLine 6.5s linear infinite}
@keyframes ftLine{0%{background-position:-50% 0}100%{background-position:150% 0}}
.footer-top{display:flex;gap:56px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.footer-logo{display:inline-block}
.footer-logo img{height:54px;border-radius:9px;transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s}
.footer-logo:hover img{transform:translateY(-4px) rotate(-3deg);box-shadow:0 14px 34px -12px rgba(31,42,68,.45)}
.footer-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px;flex:1;min-width:min(100%,660px)}
.footer-head{font-family:var(--font-headline);font-style:italic;font-weight:500;font-size:16px;color:var(--color-navy);margin:0 0 22px}
.footer-link{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;font-size:15px;color:var(--color-charcoal);text-decoration:none;margin-bottom:11px;transition:color .25s,transform .25s}
.footer-link:hover{color:var(--color-orange);transform:translateX(5px)}
.footer-sub{display:block;font-size:12px;color:rgba(31,42,68,.42);margin-top:3px}
.footer-link:hover .footer-sub{color:rgba(14,124,107,.7)}
.footer-wm-wrap{overflow:hidden;padding:56px 0 0;line-height:0}
.footer-wm{font-family:var(--font-display);font-weight:500;font-size:clamp(100px,21.5vw,392px);line-height:.76;letter-spacing:-.012em;white-space:nowrap;margin:0;padding-left:var(--gutter);background:linear-gradient(100deg,#1F2A44 0%,#1F2A44 42%,#39C6B2 50%,#1F2A44 58%,#1F2A44 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:wmShine 7s linear infinite}
@keyframes wmShine{0%{background-position:130% 0}100%{background-position:-130% 0}}
.footer-base{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:22px;padding-bottom:32px;border-top:1px solid rgba(31,42,68,.12)}
.footer-quote{font-family:var(--font-headline);font-style:italic;font-size:14px;color:var(--color-charcoal);margin:0}
.footer-copy{font-size:12px;color:var(--color-charcoal);margin:0}
@media(max-width:900px){.footer-cols{grid-template-columns:1fr 1fr;gap:34px}}
@media(max-width:560px){.footer-cols{grid-template-columns:1fr}}

/* ---- CTA / demo (full-bleed light image) ---- */
.cta{position:relative;overflow:hidden;color:#fff;min-height:96vh;display:flex;align-items:center}
.cta .bg{position:absolute;inset:0;z-index:0}
.cta .bg image-slot{width:100%;height:100%}
.cta .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,7,11,.82) 0%,rgba(6,7,11,.55) 42%,rgba(6,7,11,.35) 100%)}
.cta-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr .9fr;gap:70px;align-items:center;width:100%}
.cta h2{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,6vw,96px);line-height:.92;letter-spacing:.01em;text-transform:uppercase;margin:22px 0 0;color:#fff}
.cta .cta-sub{max-width:460px;margin-top:26px;font-size:17px;line-height:1.65;color:rgba(255,255,255,.85)}
.demo-card{background:rgba(9,11,16,.5);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:38px}
.field{margin-bottom:20px}
.field label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:9px}
.field input,.field select{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18);border-radius:7px;padding:14px 16px;color:#fff;font-family:var(--font-body);font-size:15px;transition:border-color .2s,background .2s}
.field input::placeholder{color:rgba(255,255,255,.4)}
.field input:focus,.field select:focus{outline:none;border-color:var(--color-orange);background:rgba(255,126,21,.06)}
.field select{appearance:none;cursor:pointer}
.field select option{background:#12151e}
.submit{width:100%;margin-top:6px;background:var(--color-orange);color:#fff;border:none;border-radius:7px;padding:16px;font-family:var(--font-body);font-size:15px;letter-spacing:.04em;cursor:pointer;transition:background .2s,transform .1s}
.submit:hover{background:#e86d08}.submit:active{transform:scale(.99)}
.demo-ok{padding:30px 0;text-align:center}
.demo-ok .ck{width:56px;height:56px;border-radius:50%;border:2px solid var(--color-cyan);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:var(--color-cyan);font-size:26px}
.contactline{display:flex;flex-wrap:wrap;gap:14px 40px;margin-top:34px;font-size:14px;color:rgba(255,255,255,.75)}
.contactline b{color:#fff;font-weight:400}

/* cursor */
#cursor{position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;background:var(--color-orange);z-index:9999;pointer-events:none;transform:translate(-50%,-50%);transition:width .25s,height .25s,background .25s}
#cursor.big{width:46px;height:46px;background:rgba(255,126,21,.2)}
#ring{position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid rgba(31,42,68,.4);border-radius:50%;z-index:9998;pointer-events:none;transform:translate(-50%,-50%)}

@media(max-width:960px){
  :root{--gutter:24px}
  .hero-grid,.cd-head,.cta-inner,.map-stage{grid-template-columns:1fr}
  .cd-feats{grid-template-columns:1fr}
  .feat:nth-child(odd){border-right:none}
  .cd-shot{margin-bottom:32px}
  .map-stage{gap:20px}.map-holder{min-height:420px}
  .sec-grid,.val-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .pillar:nth-child(odd){border-right:none}
  .morph{max-width:320px;margin-top:10px}
  .bleed-panel{position:static;margin:24px var(--gutter) 0;width:auto}
  .bleed-title{font-size:clamp(48px,15vw,90px);max-width:100%}
  .bleed{align-items:flex-start;padding-top:16vh}
  #cursor,#ring{display:none}
  .mock-body{grid-template-columns:1fr;min-height:auto}.mock-side{display:none}
  .footer-top{gap:36px}
}
@media(max-width:720px){
  .bleed{min-height:auto;padding:100px 0 48px;display:block}
  .bleed .bg{inset:0}
  .bleed-head{position:relative;z-index:2}
  .bleed-title{font-size:clamp(48px,14vw,90px);max-width:none}
  .bleed-panel{position:relative;top:auto;right:auto;left:auto;width:auto;margin:28px 20px 0;max-width:none}
  .bleed-panel>*{padding-left:22px;padding-right:22px}
  .panel-list{padding-left:22px;padding-right:22px}
}
@media(max-width:600px){
  .section{padding:60px 0}
  .hero-inner{padding-top:104px;padding-bottom:96px}
  .hero-cta{gap:18px}
  .hero-scroll{display:none}
  .cd-head{gap:22px;margin-bottom:40px}
  .mac-toolbar{padding:10px 15px}
  .tb-status{display:none}
  .mock-main{padding:20px 17px}
  .matter{flex-wrap:wrap;gap:8px}
  .matter h4{font-size:21px}
  .principle-text{max-width:none}
  .footer-top{flex-direction:column;gap:28px}
  .footer-base{flex-direction:column;align-items:flex-start;gap:8px}
  .team-carousel{padding:0 16px}
  .team-carousel .member{max-width:78vw}
  .member .ph{aspect-ratio:4/5;max-height:62vh}
  .member image-slot{object-position:50% 22%}
  .member .disc{font-size:10.5px;padding:5px 9px;letter-spacing:.12em}
  .member .nm{font-size:18px}
  .member .rl{font-size:12px}
  .cite{font-size:12px}
}
a:focus-visible,button:focus-visible,.pill:focus-visible,.footer-link:focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px;border-radius:4px}
@media(prefers-reduced-motion:reduce){
  .rv{transition:none;opacity:1;transform:none}
  .clip-rise>span{transition:none;transform:none}
  .marquee-track,.hero-scroll .bar::after,.film-play::before,.fp,.fp path,.sig,.sig path,.morph-ring,.pin,.pin-dot,.pin-sonar,.hero-aura span,.cd-shot,.cd-shot .cd-shine,.cd-sep,.cd-diamond,.hero-ken,.tl.now::before,.footer-wm,.site-footer::before{animation:none}
  .footer-wm{-webkit-text-fill-color:var(--color-navy);color:var(--color-navy)}
  .fp{opacity:.6}.sig{opacity:1}.fp path,.sig path{stroke-dashoffset:0}
}
