/* Aesthetic Coaching: structure + motion modeled on visuvate.com, brand from jenntabiza.com
   (Inter + Playfair italic, black / ivory, rose accents). Shared by every page. */
:root{
  color-scheme:dark;
  --bg:#080808; --panel:#111; --panel2:#171717; --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.16);
  --ink:#f4f1ec; --muted:#a19e9a; --dim:#8c8986;
  --rose:#d3a29d; --burgundy:#a36361; --powder:#ffdae1; --ivory:#fff0ea;
  --sans:Inter,system-ui,sans-serif; --serif:"Playfair Display",Georgia,serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --r:18px; --wrap:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scrollbar-color:#3a3433 var(--bg);caret-color:var(--rose)}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--rose);color:#140a09}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#2e2928;border-radius:10px;border:2px solid var(--bg)}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px;border-radius:6px}
h1,h2,h3{text-wrap:balance}p,blockquote,li{text-wrap:pretty}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.it{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.nw{white-space:nowrap}
.muted{color:var(--muted)}
.h2{font-size:clamp(36px,4.4vw,62px);line-height:1.04;font-weight:700;letter-spacing:-.04em}
.h2 .it{font-weight:400}
.lead{color:var(--muted);font-size:17px;max-width:520px}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 20px;border-radius:999px;font-size:14px;font-weight:500;transition:transform .3s var(--ease),background .3s,color .3s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn-w{background:var(--ink);color:#0a0a0a}.btn-w:hover{background:#fff}
.btn-d{background:#1d1d1d;color:var(--ink);border:1px solid var(--line)}.btn-d:hover{background:#262626}
.btn svg{width:14px;height:14px}

/* Cursor-follow glow (badge, cards) */
.glowable{position:relative;isolation:isolate}
.glowable::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:var(--glow,0);transition:opacity .4s var(--ease);background:radial-gradient(var(--r,160px) circle at var(--mx,50%) var(--my,50%),rgba(211,162,157,.22),transparent 70%)}
.badge{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 14px;border-radius:999px;background:#151515;border:1px solid var(--line);font-size:12.5px;color:var(--ink)}
.badge i{width:6px;height:6px;border-radius:50%;background:var(--rose);display:block;animation:dot 2.4s ease-in-out infinite}
@keyframes dot{50%{opacity:.4;transform:scale(1.4)}}

/* Nav: floating pill that tightens on scroll */
.nav{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:100;width:min(980px,calc(100% - 24px));height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 16px;border-radius:14px;background:rgba(14,14,14,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);transition:width .5s var(--ease),background .5s var(--ease),height .5s var(--ease)}
.nav.tight{width:min(900px,calc(100% - 24px));height:54px;background:rgba(12,12,12,.82)}
.nav .logo img{height:46px;width:auto}
.nav ul{display:flex;gap:24px;list-style:none;font-size:14px}
.nav ul a{color:var(--muted);transition:color .25s}
.nav ul a:hover,.nav ul a[aria-current="page"]{color:var(--ink)}
.nav .btn{height:36px;font-size:13px}
.menu{display:none;font-size:14px;padding:0 10px}

/* Hero */
.hero{position:relative;padding:150px 0 0;text-align:center;overflow:hidden}
.bars{position:absolute;inset:0;display:flex;pointer-events:none;z-index:0;transform:translateZ(0);animation:barsIn 1.6s cubic-bezier(.33,1,.68,1) 1.95s both}
.bars span{flex:1 0 calc(100% / 15);max-width:calc(100% / 15);height:100%;background:linear-gradient(to top,#b0625f,rgba(176,98,95,.32) 38%,transparent 82%);transform:scaleY(var(--s,.6));transform-origin:bottom;animation:pulseBar 2s ease-in-out infinite alternate;animation-delay:var(--d,0s);outline:1px solid transparent}
@keyframes pulseBar{from{transform:scaleY(var(--s))}to{transform:scaleY(calc(var(--s) * .7))}}
@keyframes barsIn{from{opacity:0}}
.hero::after,.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:200px;background:linear-gradient(to bottom,rgba(8,8,8,0),var(--bg));z-index:3;pointer-events:none}
.hero .wrap,.page-hero .wrap,.editor-wrap{position:relative;z-index:2}
.hero h1{position:relative;font-size:clamp(44px,6.6vw,96px);line-height:1.02;font-weight:700;letter-spacing:-.04em;margin:22px auto 20px;max-width:16ch}
.hero h1 .it{font-weight:400;letter-spacing:-.02em}
.hero p.sub{position:relative;font-size:17px;color:var(--muted);max-width:540px;margin:0 auto 28px}
.hero .ctas,.ctas{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.intro-in{animation:rise .9s var(--ease) both}
.intro-in.d1{animation-delay:.08s}.intro-in.d2{animation-delay:.16s}.intro-in.d3{animation-delay:.3s}
@keyframes rise{from{opacity:0;translate:0 16px}}

/* Editor frame (visuvate's design tool hero) */
.editor-wrap{max-width:1200px;margin:64px auto 0;padding:1px 1px 0;border-radius:22px 22px 0 0;background:linear-gradient(180deg,rgba(211,162,157,.75),rgba(163,99,97,.35) 30%,rgba(255,255,255,.06) 70%)}

.editor{position:relative;border-radius:21px 21px 0 0;background:#0c0c0c;overflow:hidden;text-align:left}
.ed-top{height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px;border-bottom:1px solid var(--line)}
.ed-top .mark{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.ed-top .mark img{width:24px;height:24px;object-fit:contain}
.ed-mid{display:flex;gap:8px;align-items:center}
.ed-dev{display:flex;gap:4px;padding:3px;border-radius:8px;background:#161616;border:1px solid var(--line)}
.ed-dev button{width:34px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--muted)}
.ed-dev button.on{background:#262626;color:var(--ink)}
.ed-meta{font-size:12px;color:var(--muted);display:flex;gap:10px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:#141414;font-variant-numeric:tabular-nums}
.ed-av{justify-self:end;width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:center 20%;border:1px solid var(--line2);filter:grayscale(1)}
.ed-body{display:grid;grid-template-columns:230px 1fr 230px;height:560px}
.ed-side{border-right:1px solid var(--line);padding:14px;font-size:12.5px;color:var(--muted);overflow:hidden}
.ed-side.r{border-right:0;border-left:1px solid var(--line);padding:0}
.ed-tabs{display:flex;gap:4px;margin-bottom:12px;background:#141414;padding:3px;border-radius:9px}
.ed-tabs span{flex:1;text-align:center;padding:5px 0;border-radius:7px;font-size:12px}
.ed-tabs span.on{background:#242424;color:var(--ink)}
.ed-page{display:flex;justify-content:space-between;align-items:center;background:#141414;border:1px solid var(--line);border-radius:9px;padding:8px 10px;color:var(--ink);margin-bottom:10px}
.layers a{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;transition:background .25s,color .25s}
.layers a:hover{background:#1b1b1b;color:var(--ink)}
.layers a svg{width:13px;height:13px;opacity:.7}
.layers a.on{background:var(--burgundy);color:#fff}
.layers a.on svg{opacity:1}
.layers a:nth-last-child(-n+2){opacity:.55}
.align{display:flex;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--muted)}
.align svg{width:15px;height:15px}
.prop{padding:12px 14px;border-bottom:1px solid var(--line)}
.prop .h5{font-size:12.5px;color:var(--ink);font-weight:500;margin-bottom:10px}
.prop .row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:6px}
.prop .val{background:#1a1a1a;border:1px solid var(--line);border-radius:6px;padding:3px 8px;color:var(--ink);font-size:11.5px;min-width:58px;text-align:left}
.ed-canvas{position:relative;background:#121212;overflow:hidden;cursor:default}
.ed-canvas.light{background:#e9e7e2}
.ed-canvas.grab{cursor:grab}.ed-canvas.grabbing{cursor:grabbing}
.strip{position:absolute;top:22px;bottom:22px;left:0;display:flex;gap:20px;will-change:transform}
.shot{position:relative;height:100%;aspect-ratio:1100/1400;border-radius:10px;overflow:hidden;flex:0 0 auto;background:#000;transition:transform .5s var(--ease),filter .5s var(--ease);box-shadow:0 20px 40px -20px rgba(0,0,0,.9)}
.shot img{width:100%;height:100%;object-fit:cover;object-position:top;pointer-events:none;user-select:none}
.shot .lbl{position:absolute;left:10px;bottom:10px;font-size:11.5px;background:rgba(8,8,8,.78);padding:3px 9px;border-radius:999px;opacity:0;translate:0 6px;transition:opacity .3s,translate .3s var(--ease)}
.shot .feat{position:absolute;left:10px;top:10px;font-size:11px;font-weight:600;background:var(--rose);color:#1a0d0c;padding:3px 9px;border-radius:999px}
.shot:hover .lbl,.shot.held .lbl{opacity:1;translate:0 0}
.shot.held{transform:scale(1.04);z-index:2}
.zoomed .shot{transform:scale(1.12)}
.holdtip{position:absolute;right:14px;top:14px;font-size:11.5px;color:var(--muted);background:rgba(10,10,10,.7);padding:4px 10px;border-radius:999px;z-index:3;pointer-events:none}
.toolbar{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:4px;padding:5px;border-radius:12px;background:rgba(18,18,18,.92);border:1px solid var(--line2);z-index:4;box-shadow:0 14px 30px -10px rgba(0,0,0,.8)}
.toolbar button{width:38px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--ink);font-size:12.5px;font-weight:600;transition:background .2s}
.toolbar button:hover{background:#262626}
.toolbar button.on{background:var(--burgundy)}
.toolbar svg{width:17px;height:17px}

/* Press logos */
.press{padding:70px 0 40px;border-top:1px solid var(--line)}
.press p{text-align:center;font-size:13px;color:var(--muted);margin-bottom:28px}
.press .row{display:flex;justify-content:center;align-items:center;gap:clamp(22px,4vw,54px);flex-wrap:wrap;max-width:1040px;margin:0 auto}
.press img{height:clamp(22px,2.6vw,34px);width:auto;filter:brightness(0) invert(.92);opacity:.75}

/* Intro: two tile rows that slide with scroll */
.intro{padding:120px 0 100px;overflow:hidden}
.intro-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:56px;align-items:center}
.intro-grid>*,.tba-grid>*,.split>*,.ph-grid>*,.feat-grid>*{min-width:0}
.tracks{overflow:hidden}
.intro p.lead{margin:22px 0 28px}
.tracks{display:grid;gap:10px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
.track{display:flex;gap:10px;width:max-content;will-change:transform}
.track figure{width:200px;aspect-ratio:1100/1400;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#141414}
.track img{width:100%;height:100%;object-fit:cover;object-position:top}

/* Featured TBA showcase */
.tba{position:relative;padding:60px 0 130px}
.tba-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
.tba .k{display:inline-flex;gap:8px;align-items:center;font-size:13px;color:var(--rose);margin-bottom:16px}
.tba ul{list-style:none;margin:26px 0 30px;display:grid;gap:12px}
.tba li{display:flex;gap:12px;color:var(--ink);font-size:15.5px}
.tba li::before{content:"";flex:0 0 7px;height:7px;border-radius:50%;background:var(--rose);margin-top:9px}
.browser{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line2);background:#0e0e0e;box-shadow:0 40px 90px -30px rgba(0,0,0,.9),0 0 0 1px rgba(211,162,157,.08)}
.browser .bar{height:38px;display:flex;align-items:center;gap:7px;padding:0 14px;border-bottom:1px solid var(--line);background:#151515}
.browser .bar i{width:10px;height:10px;border-radius:50%;background:#2c2c2c}
.browser .bar span{margin-left:12px;flex:1;font-size:12px;color:var(--muted);background:#1d1d1d;border-radius:7px;padding:4px 10px}
.browser .view{height:min(560px,62vh);overflow:hidden;position:relative}
.browser .view img{width:100%;will-change:transform}
.browser .view::after{content:"";position:absolute;inset:auto 0 0;height:60px;background:linear-gradient(transparent,rgba(8,8,8,.6))}
.tba-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.tba-thumbs a{border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/5;transition:transform .4s var(--ease),border-color .3s}
.tba-thumbs a:hover{transform:translateY(-4px);border-color:rgba(211,162,157,.5)}
.tba-thumbs img{width:100%;height:100%;object-fit:cover;object-position:top}

/* Works ring (3D) */
.works{position:relative;height:320vh;overflow:clip}
.works .stage{position:sticky;top:0;height:100vh;overflow:hidden;display:grid;place-items:center;perspective:1500px}
.waves{position:absolute;inset:0;width:100%;height:100%;opacity:.6}
.works h2{position:absolute;z-index:400;font-size:clamp(64px,13vw,210px);font-weight:700;letter-spacing:-.05em;line-height:1;text-align:center;pointer-events:none;text-shadow:0 10px 60px rgba(0,0,0,.85)}
.works h2 .it{font-weight:400}
.ring{position:relative;width:1px;height:1px;transform-style:preserve-3d;z-index:2}
.card{position:absolute;left:-130px;top:-165px;width:260px;height:330px;border-radius:12px;overflow:hidden;border:1px solid var(--line2);background:#111;box-shadow:0 30px 60px -20px rgba(0,0,0,.85)}
.card img{width:100%;height:100%;object-fit:cover;object-position:top}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.45),transparent 22%,transparent 78%,rgba(0,0,0,.45));pointer-events:none}
.card span{position:absolute;left:10px;bottom:10px;font-size:12px;background:rgba(8,8,8,.78);padding:3px 9px;border-radius:999px;z-index:1}
.viewall{position:absolute;z-index:500;font-family:var(--serif);font-style:italic;font-size:clamp(48px,8vw,120px);opacity:0;transform:scale(.9);transition:opacity .2s;pointer-events:none}
.viewall a{pointer-events:auto}
.works .cta-btn{position:absolute;bottom:8vh;z-index:500}

/* Services grid */
.services{padding:130px 0 100px}
.sv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:46px;flex-wrap:wrap}
.sv-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.sv{background:var(--panel);border:1px solid var(--line);border-radius:14px;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:16px;font-size:14px;color:var(--ink);transition:border-color .4s var(--ease),background .4s var(--ease)}
.sv:hover{border-color:rgba(211,162,157,.4);background:#141212}
.sv svg{width:26px;height:26px;stroke:var(--ink);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s;animation:float 3s ease-in-out infinite alternate}
.sv:nth-child(2n) svg{animation-delay:-1.5s}
.sv:hover svg{stroke:var(--rose)}
@keyframes float{to{transform:translateY(-6px)}}
.sv small{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:-6px}

/* Programs teaser */
.progs{padding:40px 0 120px}
.pg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:40px}
.pg{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;min-height:250px;transition:border-color .4s var(--ease),transform .4s var(--ease)}
.pg:hover{border-color:rgba(211,162,157,.4);transform:translateY(-4px)}
.pg .t{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--rose)}
.pg h3{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:12px 0 10px}
.pg p{color:var(--muted);font-size:14.5px;flex:1}
.pg .go{display:flex;align-items:center;gap:6px;font-size:13.5px;margin-top:18px}
.pg .go svg{width:14px;height:14px;transition:transform .3s var(--ease)}
.pg:hover .go svg{transform:translateX(4px)}

/* Featured (platform section) */
.feat{padding:60px 0 120px}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;position:relative}
.stars{position:absolute;inset:-40px 0;pointer-events:none;background-image:radial-gradient(1px 1px at 20% 30%,#fff8 50%,transparent),radial-gradient(1px 1px at 70% 20%,#fff6 50%,transparent),radial-gradient(1px 1px at 40% 80%,#fff5 50%,transparent),radial-gradient(1.5px 1.5px at 85% 65%,#fff7 50%,transparent),radial-gradient(1px 1px at 10% 70%,#fff5 50%,transparent),radial-gradient(1px 1px at 55% 45%,#fff4 50%,transparent);opacity:.7;animation:twinkle 6s ease-in-out infinite alternate}
@keyframes twinkle{to{opacity:.35}}
.feat p{color:var(--muted);margin:18px 0 26px;max-width:440px}
.logo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0b0b0b}
.logo-grid div{aspect-ratio:1/1;min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;padding:20px;transition:background .3s}
.logo-grid div:hover{background:#121010}
.logo-grid div:nth-child(4n){border-right:0}
.logo-grid div:nth-child(n+5){border-bottom:0}
.logo-grid img{max-width:100%;max-height:44px;object-fit:contain;filter:brightness(0) invert(.92);opacity:.75}
.logo-grid .r img{filter:none;opacity:1;max-height:70px}

/* Marquee */
.marq{background:#111;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;padding:18px 0}
.marq .t{display:inline-flex;gap:28px;animation:mq 38s linear infinite;font-size:clamp(16px,1.7vw,21px);text-transform:uppercase;letter-spacing:.14em}
.marq span:nth-of-type(odd){color:var(--muted)}
.marq b{color:var(--rose);font-weight:400}
.marq:hover .t{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}

/* Plans + spotlight */
.plans{padding:140px 0 120px;position:relative;overflow:hidden}
.spot{position:absolute;left:50%;top:40px;width:900px;height:520px;transform:translateX(-50%);background:radial-gradient(50% 50% at 50% 40%,rgba(255,240,234,.16),rgba(211,162,157,.08) 45%,transparent 75%);pointer-events:none;opacity:var(--light,0)}
.huge{position:relative;font-size:clamp(84px,15vw,230px);font-weight:700;letter-spacing:-.05em;line-height:.8;text-align:center;background:linear-gradient(#f4f1ec 30%,rgba(244,241,236,0) 92%);-webkit-background-clip:text;background-clip:text;color:transparent;user-select:none}
.plans .intro-l{text-align:center;color:var(--muted);max-width:560px;margin:18px auto 0;position:relative}
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:40px;position:relative}
.plan{background:linear-gradient(180deg,rgba(22,20,20,.92),rgba(12,12,12,.92));border:1px solid var(--line);border-radius:var(--r);padding:28px 26px 26px;display:flex;flex-direction:column;backdrop-filter:blur(8px)}
.plan.pop{border-color:rgba(211,162,157,.45);box-shadow:0 30px 80px -40px rgba(211,162,157,.45)}
.plan .k{font-size:12px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;display:flex;justify-content:space-between}
.plan .k em{font-style:normal;color:var(--rose);letter-spacing:.08em}
.plan h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:42px;margin:14px 0 4px;letter-spacing:-.01em}
.plan .pnote{font-size:13.5px;color:var(--muted)}
.plan p.d{font-size:14.5px;color:var(--muted);margin:16px 0 18px;min-height:66px}
.plan ul{list-style:none;border-top:1px solid var(--line);margin-bottom:26px;flex:1}
.plan li{font-size:14px;padding:11px 0;border-bottom:1px solid var(--line);display:flex;gap:10px}
.plan li::before{content:"";flex:0 0 6px;height:6px;margin-top:8px;border-radius:50%;background:var(--rose)}
.plan .foot{display:flex;justify-content:space-between;align-items:center;gap:10px}
.plan .foot a.more{font-size:13px;color:var(--muted)}
.plan .foot a.more:hover{color:var(--ink)}
.onb{text-align:center;color:var(--muted);font-size:14.5px;margin-top:26px}
.onb b{color:var(--ink);font-weight:500}

/* Approach bento (tilts up as it enters) */
.approach{padding:80px 0 120px;perspective:1400px}
.approach .h2{margin-bottom:40px}
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;transform-origin:50% 100%}
.bx{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:28px;position:relative;overflow:hidden;min-height:320px;isolation:isolate}
.bx::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-140px;height:240px;z-index:-1;background:radial-gradient(50% 50% at 50% 50%,rgba(163,99,97,.38),transparent 70%);animation:breathe 5s ease-in-out infinite alternate}
.bx:nth-child(2n)::after{animation-delay:-2.5s}
@keyframes breathe{to{opacity:.55;transform:translateY(-12px)}}
.bx h3{font-size:24px;font-weight:600;letter-spacing:-.02em;margin-bottom:10px}
.bx p{color:var(--muted);font-size:15px;max-width:420px;position:relative;z-index:1}
.bx p b{color:var(--ink);font-weight:500}
.b1{grid-column:span 4;min-height:380px}.b2{grid-column:span 2;min-height:380px}.b3{grid-column:span 2}.b4{grid-column:span 4}.b5{grid-column:span 3}.b6{grid-column:span 3}
.b1 .shotph{position:absolute;right:-30px;bottom:-40px;width:52%;border-radius:12px;overflow:hidden;border:1px solid var(--line2);transform:rotate(-4deg)}
.b1 .shotph img{width:100%;aspect-ratio:1/1;object-fit:cover;filter:grayscale(1)}
.b1 p{max-width:330px}
.phones{position:absolute;left:50%;bottom:-70px;transform:translateX(-50%);display:flex;gap:12px}
.phone{width:120px;height:240px;border-radius:22px;border:5px solid #2a2a2a;overflow:hidden;background:#000}
.phone img{width:100%;height:100%;object-fit:cover;object-position:top}
.phone:nth-child(2){transform:translateY(-28px)}
.stack{position:absolute;right:24px;bottom:24px;left:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stack img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.laptop{position:absolute;right:28px;bottom:-12px;width:56%}
.laptop .scr{border:6px solid #262626;border-bottom:0;border-radius:12px 12px 0 0;overflow:hidden;aspect-ratio:16/10;background:#000}
.laptop .scr img{width:100%;height:100%;object-fit:cover;object-position:top}
.laptop .base{height:12px;background:#2a2a2a;border-radius:0 0 10px 10px;margin:0 -4%}
.b4 p{max-width:280px}
.timeline{display:flex;gap:8px;margin-top:34px}
.timeline div{flex:1;border-top:2px solid var(--line2);padding-top:12px;font-size:13px;color:var(--muted)}
.timeline div b{display:block;color:var(--ink);font-weight:500;font-size:14px}
.timeline div.on{border-color:var(--rose)}
.clock{position:absolute;right:-60px;bottom:-60px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#1c1c1c,#0b0b0b 70%);border:1px solid var(--line2)}
.clock i{position:absolute;left:50%;top:50%;width:2px;height:14px;margin-left:-1px;background:#555;transform-origin:50% 0}
.hand{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;border-radius:2px;background:var(--ink)}
.hand.h{width:5px;height:70px;margin-left:-2.5px}.hand.m{width:3px;height:105px;margin-left:-1.5px}.hand.s{width:1.5px;height:120px;margin-left:-.75px;background:var(--rose)}
.clock::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px;border-radius:50%;background:var(--rose)}

/* Testimonials */
.testi{padding:100px 0 120px;position:relative;overflow:hidden}
.globe{position:absolute;left:50%;top:40px;width:720px;height:720px;transform:translateX(-50%);border-radius:50%;background-image:radial-gradient(rgba(255,255,255,.22) 1px,transparent 1.4px);background-size:14px 14px;-webkit-mask-image:radial-gradient(circle,#000 40%,transparent 70%);mask-image:radial-gradient(circle,#000 40%,transparent 70%);opacity:.6;animation:spin 120s linear infinite}
@keyframes spin{to{transform:translateX(-50%) rotate(360deg)}}
.tgrid{position:relative;display:grid;grid-template-columns:300px 1fr;gap:14px;max-width:1000px;margin:-24px auto 0}
.stat{background:rgba(17,17,17,.9);border:1px solid var(--line);border-radius:var(--r);padding:24px;margin-bottom:14px}
.stat b{font-size:46px;font-weight:600;letter-spacing:-.04em;line-height:1}
.stat b sup{color:var(--rose);font-size:22px}
.stat span{display:block;color:var(--muted);font-size:13.5px;margin-top:8px}
.quote{background:rgba(17,17,17,.9);border:1px solid var(--line);border-radius:var(--r);padding:30px 34px;display:flex;flex-direction:column}
.quote .top{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}
.quote .qm{font-family:var(--serif);font-size:56px;line-height:.6;color:var(--rose)}
.quote blockquote{font-size:clamp(19px,1.8vw,24px);line-height:1.45;font-weight:500;letter-spacing:-.01em;margin:26px 0 30px;flex:1;transition:opacity .35s}
.quote .who{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px}
.quote .who b{display:block;font-size:14px;font-weight:600}
.quote .who span{font-size:13px;color:var(--muted)}
.arrows{display:flex;gap:8px}
.arrows button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;transition:background .2s}
.arrows button:hover{background:#1e1e1e}
.arrows svg{width:14px;height:14px}

/* FAQ */
.faq{padding:80px 0 120px}
.faq .h2{text-align:center;margin-bottom:44px}
.faq-list{max-width:780px;margin:0 auto;display:grid;gap:10px}
details{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:0 22px;transition:border-color .3s}
details[open]{border-color:var(--line2)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:20px 0;font-size:15.5px}
summary::-webkit-details-marker{display:none}
summary::after{content:"";width:9px;height:9px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);margin-top:4px;transition:transform .3s;flex:0 0 auto}
details[open] summary::after{transform:rotate(-135deg)}
details p{color:var(--muted);font-size:15px;padding:0 0 22px;max-width:640px}

/* CTA + rose that lights up */
.cta{padding:120px 0 0;text-align:center;position:relative;overflow:hidden}
.cta h2{font-size:clamp(44px,7vw,104px);font-weight:700;letter-spacing:-.05em;line-height:1}
.cta h2 .it{font-weight:400}
.cta p{color:var(--muted);margin:20px auto 28px;max-width:520px}
.bigmark{position:relative;margin:56px auto 0;width:min(420px,72vw);aspect-ratio:690/534;-webkit-mask-image:linear-gradient(#000 55%,transparent 100%);mask-image:linear-gradient(#000 55%,transparent 100%)}
.bigmark img{position:relative;width:100%;height:100%;object-fit:contain;filter:grayscale(var(--g,1)) brightness(var(--b,.35)) blur(var(--bl,6px));transform:translateY(var(--ty,40px)) scale(var(--sc,.92));will-change:filter,transform}
.rosebloom{position:absolute;left:50%;bottom:-120px;width:900px;height:600px;transform:translateX(-50%);pointer-events:none;background:radial-gradient(40% 45% at 50% 55%,rgba(211,162,157,.38),rgba(163,99,97,.18) 45%,transparent 72%);opacity:var(--light,0)}

/* Footer */
footer{position:relative;border-top:1px solid var(--line);background:var(--bg)}
.socials{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.socials a{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-right:1px solid var(--line);font-size:14px;transition:background .2s}
.socials a:last-child{border-right:0}
.socials a:hover{background:#121212}
.socials a span{color:var(--muted);transition:transform .2s,color .2s}
.socials a:hover span{transform:translateX(4px);color:var(--rose)}
.socials svg{width:14px;height:14px}
.fcols{display:grid;grid-template-columns:repeat(4,1fr)}
.fcols div{padding:30px 24px 40px;border-right:1px solid var(--line);font-size:14px}
.fcols div:last-child{border-right:0}
.fcols .h5{font-size:13px;color:var(--muted);font-weight:400;margin-bottom:16px}
.fcols li{list-style:none;margin-bottom:10px}
.fcols a:hover{color:var(--rose)}
.ph{display:inline-block;border:1px dashed rgba(211,162,157,.6);color:var(--rose);font-size:11.5px;padding:2px 8px;border-radius:6px}
.copy{border-top:1px solid var(--line);text-align:center;padding:18px;font-size:12.5px;color:var(--dim)}

/* Sub-page building blocks */
.page-hero{position:relative;padding:160px 0 90px;overflow:hidden}
.ph-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.page-hero h1{font-size:clamp(42px,5.8vw,84px);line-height:1.02;font-weight:700;letter-spacing:-.04em;margin:20px 0}
.page-hero h1 .it{font-weight:400}
.page-hero .ctas{justify-content:flex-start;margin-top:30px}
.portrait{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line2);aspect-ratio:4/5}
.portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.portrait .cap{position:absolute;left:16px;right:16px;bottom:16px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:rgba(8,8,8,.7);padding:10px 14px;border-radius:10px;backdrop-filter:blur(6px)}
.sec{padding:100px 0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.pillars{list-style:none;counter-reset:p;margin-top:30px;border-top:1px solid var(--line)}
.pillars li{counter-increment:p;display:flex;gap:18px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line);font-size:clamp(17px,1.6vw,21px);font-weight:600;letter-spacing:-.01em;transition:color .3s,padding-left .4s var(--ease)}
.pillars li::before{content:counter(p,decimal-leading-zero);font-size:12px;color:var(--rose);font-weight:500;width:22px}
.pillars li:hover{color:var(--rose);padding-left:8px}
.cards4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:40px}
.c4{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px;min-height:230px;display:flex;flex-direction:column;gap:12px;transition:border-color .4s,transform .4s var(--ease)}
.c4:hover{border-color:rgba(211,162,157,.4);transform:translateY(-4px)}
.c4 h3{font-size:19px;font-weight:600;letter-spacing:-.01em}
.c4 p{color:var(--muted);font-size:14.5px}
.c4 .ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:#1a1616;border:1px solid rgba(211,162,157,.25)}
.c4 .ic svg{width:20px;height:20px;stroke:var(--rose);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chip{font-size:13px;padding:6px 12px;border-radius:999px;border:1px solid var(--line2);color:var(--ink);background:#121212}
.phone-lg{width:min(340px,80%);margin:0 auto;border-radius:36px;border:8px solid #262626;overflow:hidden;background:#000;box-shadow:0 40px 90px -30px rgba(0,0,0,.9)}
.phone-lg img{width:100%}
.prob{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:36px}
.prob div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px}
.prob b{display:block;font-size:13px;letter-spacing:.12em;color:var(--rose);margin-bottom:8px}
.prob p{color:var(--muted);font-size:14.5px}
.four{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:40px}
.four .c4{min-height:0}
.four ul{list-style:none;display:grid;gap:6px;margin-top:6px}
.four li{font-size:14px;color:var(--ink);display:flex;gap:10px}
.four li::before{content:"";flex:0 0 6px;height:6px;border-radius:50%;background:var(--rose);margin-top:8px}
.work3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:40px}
.wk{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--panel);transition:transform .4s var(--ease),border-color .3s}
.wk:hover{transform:translateY(-6px);border-color:rgba(211,162,157,.45)}
.wk .img{aspect-ratio:1100/1150;overflow:hidden}
.wk img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 1.2s var(--ease)}
.wk:hover img{transform:scale(1.04)}
.wk .meta{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;font-size:14px}
.wk .meta span{color:var(--muted);font-size:12.5px}
.news{max-width:420px;margin:0 auto;background:#f4efe9;color:#2e2e2e;border-radius:16px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.9)}
.news .nh{padding:14px 18px;border-bottom:1px solid #e3dad3;font-size:12px;color:#7a6a66;display:flex;justify-content:space-between}
.news .nb{padding:28px 26px 30px}
.news h4{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;margin-bottom:12px}
.news h4 em{color:var(--burgundy)}
.news p{font-size:14.5px;color:#55504c;margin-bottom:18px}
.news .nbtn{display:inline-block;background:#2e2e2e;color:#fff;font-size:13px;padding:10px 16px;border-radius:999px}
.news small{display:block;text-align:center;font-size:11.5px;color:#8a7f7a;padding:0 0 14px}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:36px 0 30px}
.steps div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px}
.steps b{display:block;font-family:var(--serif);font-style:italic;font-size:34px;color:var(--rose);font-weight:400;line-height:1;margin-bottom:10px}
.prog-list{display:grid;gap:14px;margin-top:40px}
.prog{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:34px;position:relative;overflow:hidden;isolation:isolate}
.prog::after{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;z-index:-1;background:radial-gradient(circle,rgba(163,99,97,.22),transparent 70%)}
.prog .t{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose)}
.prog h3{font-size:clamp(26px,2.6vw,34px);font-weight:700;letter-spacing:-.03em;line-height:1.08;margin:10px 0 12px}
.prog h3 .it{font-weight:400}
.prog p{color:var(--muted);font-size:15px;margin-bottom:22px}
.prog ul{list-style:none;display:grid;gap:9px;align-content:start}
.prog li{display:flex;gap:12px;font-size:15px}
.prog li::before{content:"";flex:0 0 7px;height:7px;border-radius:50%;background:var(--rose);margin-top:8px}
.prog .note{font-size:12.5px;color:var(--dim);margin-top:16px}
.who4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:36px}
.method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:36px}
.method div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}
.method h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:28px;margin-bottom:8px}
.method p{color:var(--muted);font-size:14.5px}
.pull{font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.6vw,34px);line-height:1.35;max-width:900px;margin:0 auto;text-align:center}
.pull cite{display:block;font-family:var(--sans);font-style:normal;font-size:13px;color:var(--muted);margin-top:16px}


/* Coil (WebGL) works section, visuvate-style */
.works{height:440vh}
#coil{position:absolute;inset:0;width:100%;height:100%;z-index:10;display:block}
.works h2{z-index:1;transition:opacity .5s var(--ease)}
.works .dim{position:absolute;inset:0;z-index:15;background:rgba(8,8,8,.72);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}
.works .viewall{position:absolute;z-index:20;inset:0;display:grid;place-items:center;opacity:0;transform:none;transition:opacity .5s var(--ease);pointer-events:none}
.works .viewall a{font-family:var(--serif);font-style:italic;font-size:clamp(44px,7vw,104px);letter-spacing:-.02em;pointer-events:none;transition:color .3s}
.works .viewall a:hover{color:var(--rose)}
.works.done h2{opacity:0}.works.done .dim{opacity:1}.works.done .viewall{opacity:1}.works.done .viewall a{pointer-events:auto}
.works .cta-btn{z-index:30}
.works.nogl{height:auto}.works.nogl .stage{position:relative;height:70vh}
.waves g{animation:drift 14s ease-in-out infinite alternate}
.waves g+g{animation-duration:19s;animation-direction:alternate-reverse}
@keyframes drift{to{transform:translate(-40px,18px)}}
/* Headline letters: rise out of a blur */
[data-chars] .w{display:inline-block;white-space:nowrap}
[data-chars] .ch{display:inline-block;animation:chIn .7s cubic-bezier(.33,1,.68,1) both}
@keyframes chIn{from{opacity:0;transform:translateY(45%);filter:blur(7px)}}
/* Editor rises into place after the headline */
.ed-in{animation:edIn 1.4s cubic-bezier(.16,1,.3,1) .75s both}
@keyframes edIn{from{transform:translateY(72px) scale(.985);opacity:0}}
@media (prefers-reduced-motion:reduce){[data-chars] .ch,.ed-in,.waves g{animation:none}}

/* Scroll-scrubbed reveal: always visible without JS; JS sets --p from 0 to 1 */
.js [data-blur]{opacity:calc(.12 + .88 * var(--p,1));filter:blur(calc((1 - var(--p,1)) * 6px));transform:translateY(calc((1 - var(--p,1)) * 36px))}
.js [data-rise]{opacity:calc(.15 + .85 * var(--p,1));transform:translateY(calc((1 - var(--p,1)) * 26px))}
.js [data-tilt]{transform:rotateX(calc((1 - var(--p,1)) * -19deg));opacity:calc(.4 + .6 * var(--p,1))}
@media (prefers-reduced-motion:reduce){
  .js [data-blur],.js [data-rise],.js [data-tilt]{opacity:1;filter:none;transform:none}
  .marq .t,.bars span,.globe,.bx::after,.stars,.sv svg{animation:none}
  .bigmark img{filter:none;transform:none}
}

@media (max-width:1000px){
  .nav ul{display:none}.menu{display:block}
  .nav.open ul{display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:#0e0e0e;border:1px solid var(--line);border-radius:14px;padding:18px;gap:14px}
  .ed-body{grid-template-columns:1fr;height:440px}
  .ed-side,.ed-meta,.ed-av{display:none}
  .ed-top{grid-template-columns:1fr auto}
  .intro-grid,.feat-grid,.tgrid,.tba-grid,.ph-grid,.split,.prog{grid-template-columns:1fr}
  .sv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pgrid,.pg-grid,.work3,.steps,.method{grid-template-columns:1fr}
  .cards4,.who4,.prob{grid-template-columns:repeat(2,minmax(0,1fr))}
  .four{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr}
  .b1,.b2,.b3,.b4,.b5,.b6{grid-column:auto}
  .socials,.fcols{grid-template-columns:1fr 1fr}
  .socials a:nth-child(2),.fcols div:nth-child(2){border-right:0}
  .socials a{border-bottom:1px solid var(--line)}
  .card{width:170px;height:216px;left:-85px;top:-108px}
  .works h2{font-size:clamp(56px,16vw,120px)}
  .page-hero{padding-top:130px}
}
@media (max-width:560px){
  .hero{padding-top:120px}
  .ed-body{height:380px}
  .b1 .shotph{width:70%;position:relative;right:auto;bottom:auto;margin:20px 0 -50px auto}
  .laptop{position:relative;right:auto;width:100%;margin-top:24px}
  .clock{width:220px;height:220px;right:-50px;bottom:-50px}
  .cards4,.who4,.prob{grid-template-columns:1fr}
  .wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .tba-thumbs{grid-template-columns:repeat(2,1fr)}
  .prog{padding:24px}
}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- visuvate effects, recoloured ---- */
.works .filaments{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
/* Outline light (two beams around the border) */
@property --sa{syntax:"<angle>";inherits:false;initial-value:135deg}
@property --sb{syntax:"<angle>";inherits:false;initial-value:135deg}
@property --sw{syntax:"<angle>";inherits:false;initial-value:24deg}
.lit{position:relative}
.shine{position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1px;opacity:0;z-index:3;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;
  animation-duration:2.8s;animation-timing-function:linear;animation-iteration-count:infinite}
.shine.a{background-image:conic-gradient(from calc(var(--sa) - var(--sw)),transparent 0deg,#a36361 calc(var(--sw) / 2),#ffdae1 var(--sw),transparent calc(var(--sw) * 2),transparent 360deg)}
.shine.b{background-image:conic-gradient(from calc(var(--sb) - var(--sw)),transparent 0deg,#a36361 calc(var(--sw) / 2),#ffdae1 var(--sw),transparent calc(var(--sw) * 2),transparent 360deg)}
.lit:hover .shine.a,.lit:focus-visible .shine.a,.lit.run .shine.a{animation-name:shA}
.lit:hover .shine.b,.lit:focus-visible .shine.b,.lit.run .shine.b{animation-name:shB}
.lit.run:not(:hover) .shine{animation-iteration-count:1}
@keyframes shA{0%{--sa:135deg;--sw:0deg;opacity:1}10%{--sw:24deg}86%{--sa:-45deg;--sw:24deg;opacity:1}100%{--sa:-45deg;--sw:24deg;opacity:0}}
@keyframes shB{0%{--sb:135deg;--sw:0deg;opacity:1}10%{--sw:24deg}86%{--sb:315deg;--sw:24deg;opacity:1}100%{--sb:315deg;--sw:24deg;opacity:0}}
/* Sparkle shimmer that blooms out as a ring */
@property --rm{syntax:"<percentage>";inherits:false;initial-value:1%}
@property --rp{syntax:"<percentage>";inherits:false;initial-value:2%}
@property --rs{syntax:"<number>";inherits:false;initial-value:0}
@property --rf{syntax:"<number>";inherits:false;initial-value:0}
.shim{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;overflow:hidden;
  -webkit-mask:radial-gradient(115% 150% at 50% 50%,#0000 0,rgba(0,0,0,var(--rs)) var(--rm),rgba(0,0,0,var(--rf)) var(--rp),#0000 100%);
  mask:radial-gradient(115% 150% at 50% 50%,#0000 0,rgba(0,0,0,var(--rs)) var(--rm),rgba(0,0,0,var(--rf)) var(--rp),#0000 100%);
  transition:--rm .9s var(--ease),--rp .9s var(--ease),--rs .9s var(--ease),--rf .9s var(--ease)}
.lit:hover .shim,.lit.run .shim{--rm:22.29%;--rp:46.81%;--rs:.4;--rf:1}
.shim-dots{display:block;width:100%;height:100%;-webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;mask-mode:luminance;animation:shimDrift 13.3s linear infinite;animation-play-state:paused}
.lit:hover .shim-dots,.lit.run .shim-dots{animation-play-state:running}
@keyframes shimDrift{from{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:-60% 0;mask-position:-60% 0}}
.sv{position:relative;overflow:hidden}.sv>svg,.sv>span:not(.shim):not(.shine){position:relative;z-index:1}
.sv{isolation:isolate}
/* Featured: starfield card + shimmering logo grid (visuvate's platform section) */
.feat2{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
.starcard{position:relative;isolation:isolate;min-height:320px;border-radius:14px;overflow:hidden;padding:clamp(28px,4vw,46px);background:#0a0909;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end}
.starcard .starfield{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.starcard h2{font-size:clamp(28px,2.8vw,40px);font-weight:600;letter-spacing:-.03em;line-height:1.08}
.starcard h2 .it{font-weight:400}
.starcard p{color:rgba(244,241,236,.75);margin:12px 0 20px;max-width:520px}
.starcard p b{color:var(--ink);font-weight:500}
.starcard .btn{align-self:flex-start;background:rgba(255,255,255,.16);color:#fff;border-radius:8px;height:38px}
.logo-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;list-style:none;min-height:320px}
.logo-cells li{position:relative;display:grid;place-items:center;background:var(--bg);padding:18px;min-width:0;isolation:isolate}
.logo-cells img{position:relative;z-index:1;max-width:100%;max-height:40px;object-fit:contain;filter:brightness(0) invert(.92);opacity:.7;transition:opacity .5s var(--ease)}
.logo-cells li:hover img{opacity:1}
.logo-cells li.r img{filter:none;opacity:1;max-height:62px}
@media (max-width:1000px){.feat2{grid-template-columns:1fr}.logo-cells li{aspect-ratio:1/1}}
@media (prefers-reduced-motion:reduce){.shine,.shim-dots{animation:none!important}}

/* Approach headers: mixed weight, italic serif, motion */

/* Works page (visuvate /works) */
.works-page{padding:150px 0 60px}
.wtitle{text-align:center;font-size:clamp(56px,8vw,120px);font-weight:700;letter-spacing:-.05em;line-height:1;margin-bottom:22px}
.wtitle .it{font-weight:400}
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:46px}
.filters button{height:34px;padding:0 15px;border-radius:999px;font-size:13.5px;color:var(--muted);border:1px solid transparent;transition:background .25s,color .25s}
.filters button:hover{color:var(--ink)}
.filters button.on{background:var(--ink);color:#0a0a0a}
.wgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.wcard{background:#0e0e0e;border:1px solid var(--line);border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:12px}
.wcard[hidden]{display:none}
.wimg{position:relative;display:block;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:#151515}
.wimg img{width:100%;height:100%;object-fit:cover;object-position:top;transition:filter .5s var(--ease),transform .9s var(--ease)}
.wview{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.2vw,32px);color:#fff;opacity:0;transition:opacity .45s var(--ease)}
.wcard:hover .wimg img,.wimg:focus-visible img{filter:blur(10px) brightness(.45);transform:scale(1.04)}
.wcard:hover .wview,.wimg:focus-visible .wview{opacity:1}
.wimg .feat{position:absolute;left:10px;top:10px;font-size:11px;font-weight:600;background:var(--rose);color:#1a0d0c;padding:3px 9px;border-radius:999px}
.wmeta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 6px 4px}
.wmeta h3{font-size:15.5px;font-weight:600;letter-spacing:-.01em}
.wmeta span{font-size:12.5px;color:var(--muted)}
.wbtn{flex:0 0 auto;font-size:12.5px;padding:7px 12px;border-radius:999px;background:#1d1d1d;border:1px solid var(--line);transition:background .25s}
.wbtn:hover{background:#2a2a2a}
@media (max-width:1000px){.wgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.wgrid{grid-template-columns:1fr}.works-page{padding-top:120px}}

/* Watercolor brand illustrations */
.sv .ill{position:relative;z-index:1;width:clamp(68px,6.4vw,96px);height:auto;margin-bottom:-6px;filter:drop-shadow(0 8px 16px rgba(0,0,0,.45));animation:float 3.4s ease-in-out infinite alternate;transition:transform .5s var(--ease)}
.sv:nth-child(2n) .ill{animation-delay:-1.7s}
.sv:hover .ill{transform:scale(1.08) rotate(-3deg)}
.c4 .ill.sm{width:84px;height:auto;margin:-6px 0 2px -6px;filter:drop-shadow(0 8px 16px rgba(0,0,0,.45));transition:transform .5s var(--ease)}
.c4:hover .ill.sm{transform:scale(1.08) rotate(-3deg)}
.feat.dev{background:#2a2222;color:var(--powder);border:1px solid rgba(255,218,225,.35)}
.wbtn.soon{color:var(--muted);background:transparent}
@media (prefers-reduced-motion:reduce){.sv .ill{animation:none}}

/* Social icons (rose line glyphs) */
.si{width:18px;height:18px;display:block}
.socials .sl{display:flex;align-items:center;gap:12px}
.socials .sl small{color:var(--muted);font-size:12.5px;margin-left:2px}
.sb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--rose);border:1px solid rgba(211,162,157,.35);background:radial-gradient(circle at 50% 30%,rgba(211,162,157,.14),transparent 70%);transition:background .35s var(--ease),color .35s,border-color .35s,transform .35s var(--ease)}
.si-rose{width:24px;height:auto}
.socials a:hover .sb{background:var(--rose);color:#1a0d0c;border-color:var(--rose);transform:rotate(-8deg) scale(1.06)}
.follow{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:26px}
.follow .fl{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.sbtn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--rose);border:1px solid rgba(211,162,157,.4);position:relative;isolation:isolate;transition:color .35s,border-color .35s,transform .4s var(--ease)}
.sbtn::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--rose);transform:scale(0);transition:transform .45s var(--ease);z-index:-1}
.sbtn:hover{color:#1a0d0c;border-color:var(--rose);transform:translateY(-3px)}
.sbtn:hover::before{transform:scale(1)}
.sbtn .si{width:20px;height:20px}
@media (max-width:560px){.socials .sl small{display:none}}
footer{overflow:clip}.socials a{min-width:0}

.quote .who{gap:16px}.qdots{display:flex;gap:8px;margin-left:auto;margin-right:12px}.qdots button{width:8px;height:8px;border-radius:50%;background:var(--line2);transition:background .3s,width .3s}.qdots button.on{background:var(--rose);width:22px;border-radius:999px}

/* Contact page */
.ct-grid{align-items:start}
.ct-info{list-style:none;display:grid;gap:18px;margin-top:34px}
.ct-info li{display:flex;gap:16px;align-items:center}
.ct-info .ill{width:64px;height:auto;filter:drop-shadow(0 8px 16px rgba(0,0,0,.45))}
.ct-info span{display:block;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ct-info b,.ct-info a{font-weight:500;font-size:16px}
.ct-info a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(211,162,157,.5)}
.sel{user-select:all}
.ct-form{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3vw,34px);display:grid;gap:16px}
.ct-row{display:grid;gap:7px}
.ct-row label{font-size:13.5px;color:var(--muted)}.ct-row label em{color:var(--rose);font-style:normal}
.ct-form input,.ct-form select,.ct-form textarea{width:100%;font:inherit;color:var(--ink);background:#0b0b0b;border:1px solid var(--line2);border-radius:10px;padding:12px 14px;transition:border-color .25s,box-shadow .25s}
.ct-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 15px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 3px rgba(211,162,157,.18)}
.ct-form [aria-invalid="true"]{border-color:#c7686a}
.ct-form textarea{resize:vertical;min-height:120px}
.ct-consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--muted)}
.ct-consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--rose);flex:0 0 auto}
.ct-consent a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ct-err{color:#e7a3a5;font-size:14px}
.ct-form .btn{justify-self:start;height:46px;padding:0 26px}
.ct-ok{border-top:1px solid var(--line);padding-top:18px;display:grid;gap:10px}
.ct-ok h3{font-size:22px;font-weight:600}.ct-ok h3 .it{font-weight:400;color:var(--powder)}
.ct-ok p{color:var(--muted);font-size:14.5px}
/* Legal pages */
.legal-hero{padding-bottom:40px}
.lg-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:60px;align-items:start}
.lg-toc{position:sticky;top:100px}
.lg-toc ol{list-style:none;display:grid;gap:8px;font-size:14px}
.lg-toc a{color:var(--muted);transition:color .2s}.lg-toc a:hover{color:var(--rose)}
.lg-body{max-width:720px}
.lg-sec{padding:26px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.lg-sec h2{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:12px}
.lg-sec p,.lg-sec li{color:#cfcbc6;font-size:15.5px;line-height:1.7}
.lg-sec p+p{margin-top:10px}
.lg-sec ul{margin:10px 0 0 18px;display:grid;gap:6px}
.lg-sec a{color:var(--rose);text-decoration:underline;text-underline-offset:3px}
.lg-sec b{color:var(--ink);font-weight:600}
/* Sitemap page */
.sm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.sm-grid .h5{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);margin-bottom:16px}
.sm-grid ul{list-style:none;display:grid;gap:10px}
.sm-grid a{font-size:16px;transition:color .2s}.sm-grid a:hover{color:var(--rose)}
/* Cookie notice */
.cookie{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:200;max-width:400px;background:rgba(17,17,17,.96);border:1px solid var(--line2);border-radius:16px;padding:18px 20px;box-shadow:0 20px 50px -20px rgba(0,0,0,.9);backdrop-filter:blur(10px);animation:rise .6s var(--ease) both}
.cookie p{font-size:13.5px;color:var(--muted);line-height:1.55}
.cookie p b{color:var(--ink)}
.cookie a{color:var(--rose);text-decoration:underline;text-underline-offset:3px}
.ck-btns{display:flex;gap:8px;margin-top:14px}
.ck-btns .btn{height:36px;font-size:13px;flex:1;justify-content:center}
.copy a{color:var(--muted)}.copy a:hover{color:var(--rose)}
@media (max-width:1000px){.lg-grid{grid-template-columns:1fr}.lg-toc{position:static}.sm-grid{grid-template-columns:1fr}}
@media (max-width:560px){.cookie{right:16px;max-width:none}}

/* Toolbox: not an agency */
.toolbox{padding:40px 0 120px}
.tb-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.tb-head{position:sticky;top:110px}
.tb-head .lead{margin-top:20px}
.tb-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tb-list li{display:flex;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;transition:border-color .35s var(--ease),transform .35s var(--ease)}
.tb-list li:hover{border-color:rgba(211,162,157,.45);transform:translateY(-3px)}
.tb-list .ill{width:62px;height:auto;flex:0 0 auto;filter:drop-shadow(0 6px 12px rgba(0,0,0,.45))}
.tb-list b{display:block;font-size:15.5px;font-weight:600}
.tb-list span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
.sv-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1000px){.tb-grid{grid-template-columns:1fr}.tb-head{position:static}.sv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tb-list{grid-template-columns:1fr}}

/* Social badges: watercolor rose disc behind the clean logo */
.sb,.sbtn{background:url(assets/icons/badge.png) center/112% no-repeat;border:0;color:#6b2f33}
.sb{width:44px;height:44px}
.sbtn{width:54px;height:54px}
.sbtn::before{display:none}
.socials a:hover .sb,.sbtn:hover{background:url(assets/icons/badge.png) center/112% no-repeat;color:#3d1517;transform:rotate(-10deg) scale(1.08);border:0}
.sb .si,.sbtn .si{width:19px;height:19px;filter:drop-shadow(0 1px 0 rgba(255,255,255,.35))}
.si-rose{width:28px}
/* Programs: pick chips */
.pick{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 6px}
.pick a{font-size:13.5px;padding:8px 14px;border-radius:999px;border:1px solid var(--line2);background:#121212;transition:background .25s,border-color .25s,color .25s}
.pick a:hover{border-color:var(--rose);color:var(--powder)}
.prog{scroll-margin-top:100px}
/* Book: pre-call questionnaire */
.bk-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.bk-steps{list-style:none;display:grid;gap:12px;margin-top:30px}
.bk-steps li{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:15px}
.bk-steps b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line2);font-size:13px;font-weight:600;transition:background .3s,color .3s,border-color .3s}
.bk-steps li.on{color:var(--ink)}.bk-steps li.on b{background:var(--rose);color:#1a0d0c;border-color:var(--rose)}
.bk-step{border:0;display:grid;gap:16px;min-width:0}
.bk-step[hidden]{display:none}
.bk-step legend{font-size:20px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px;padding:0}
.bk-step legend em{display:block;font-style:normal;font-size:13.5px;font-weight:400;color:var(--muted);margin-top:4px}
.tchips{display:flex;flex-wrap:wrap;gap:8px}
.tchip{cursor:pointer}
.tchip input{position:absolute;opacity:0;pointer-events:none}
.tchip span{display:inline-block;font-size:14px;padding:9px 15px;border-radius:999px;border:1px solid var(--line2);background:#0b0b0b;transition:background .25s,border-color .25s,color .25s}
.tchip:hover span{border-color:rgba(211,162,157,.6)}
.tchip input:checked+span{background:var(--rose);border-color:var(--rose);color:#1a0d0c}
.tchip input:focus-visible+span{outline:2px solid var(--rose);outline-offset:3px}
.bk-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bk-nav{display:flex;gap:10px}
.bk-done h3{font-size:24px;font-weight:600}.bk-done h3 .it{font-weight:400;color:var(--powder)}
.bk-done p{color:var(--muted)}
.bk-done .btn{justify-self:start}
@media (max-width:1000px){.bk-grid{grid-template-columns:1fr}}
@media (max-width:560px){.bk-two{grid-template-columns:1fr}}

/* About */
.chips .chip{background:#141212}
.ab-stat{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ab-stat div{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.ab-stat b{display:block;font-size:clamp(34px,3.6vw,48px);font-weight:700;letter-spacing:-.04em;line-height:1}
.ab-stat sup{font-size:.5em;color:var(--rose)}
.ab-stat span{display:block;color:var(--muted);font-size:13.5px;margin-top:8px}
.dm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:36px}
.dm{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px;display:grid;gap:10px;align-content:start}
.dm .ill{width:84px;height:auto;filter:drop-shadow(0 8px 16px rgba(0,0,0,.45));transition:transform .5s var(--ease)}
.dm:hover .ill{transform:scale(1.08) rotate(-3deg)}
.dm h3{font-size:21px;font-weight:600;letter-spacing:-.02em}
.dm p{color:var(--muted);font-size:14.5px}
.tl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:36px}
.tl-i{border-top:2px solid var(--rose);padding-top:20px}
.tl-i .n{font-family:var(--serif);font-style:italic;font-size:40px;color:var(--rose);line-height:1}
.tl-i h3{font-size:20px;font-weight:600;margin:10px 0}
.tl-i p{color:var(--muted);font-size:14.5px}
.tl-i .lesson{color:var(--ink);font-family:var(--serif);font-style:italic;font-size:16px;margin-top:12px}
.br-list{display:grid;gap:14px;margin-top:36px}
.br{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.br-img{display:block;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#151515}
.br-img img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 1s var(--ease)}
.br:hover .br-img img{transform:scale(1.04)}
.br-none{display:grid;place-items:center}.br-none img{width:55%;height:auto;object-fit:contain}
.br .yr{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose)}
.br h3{font-size:clamp(24px,2.4vw,32px);font-weight:700;letter-spacing:-.03em;margin:6px 0 2px}
.br .role{font-family:var(--serif);font-style:italic;color:var(--powder)}
.br p{color:var(--muted);margin-top:10px;max-width:620px}
.press-h{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);margin-bottom:16px}
.press-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.press-list li{font-size:13.5px;padding:7px 13px;border-radius:999px;border:1px solid var(--line2);background:#121212}
/* Practice Assessment */
.pa-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.pa-card{min-height:440px;align-content:start}
.pa-bar{height:4px;border-radius:4px;background:var(--line);overflow:hidden;margin-bottom:6px}
.pa-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--burgundy),var(--rose));transition:width .5s var(--ease)}
.pa-step{display:grid;gap:12px;border:0}
.pa-step[hidden]{display:none}
.pa-k{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--rose)}
.pa-step h2{font-size:clamp(24px,2.4vw,32px);font-weight:600;letter-spacing:-.02em;line-height:1.15}
.pa-help{color:var(--muted);font-size:14.5px;margin-bottom:6px}
.pa-opts{display:grid;gap:10px}
.pa-opt{text-align:left;font-size:15.5px;padding:15px 18px;border-radius:12px;border:1px solid var(--line2);background:#0b0b0b;transition:border-color .25s,background .25s,transform .25s var(--ease)}
.pa-opt:hover{border-color:var(--rose);transform:translateX(4px)}
.pa-opt.on{background:var(--rose);color:#1a0d0c;border-color:var(--rose)}
.pa-result h2{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(30px,3vw,40px)}
.pa-result p{color:var(--muted)}
.pa-retake{justify-self:start;color:var(--muted);font-size:13.5px;text-decoration:underline;text-underline-offset:4px;margin-top:6px}
@media (max-width:1000px){.dm-grid,.tl{grid-template-columns:1fr}.br{grid-template-columns:1fr}.pa-grid{grid-template-columns:1fr}}
@media (max-width:560px){.ab-stat{grid-template-columns:1fr}.nav ul{gap:16px}}

/* Soft rose light wave in service + recognition boxes (replaces sparkle dots) */
.sv,.logo-cells li{position:relative;overflow:hidden;isolation:isolate}
.sv::after,.logo-cells li::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(to top,rgba(176,98,95,.42),rgba(176,98,95,.14) 42%,transparent 78%);
  transform-origin:bottom;transform:scaleY(var(--wv,.75));opacity:.85;
  animation:boxWave 2.4s ease-in-out infinite alternate;animation-delay:var(--wd,0s);transition:opacity .4s var(--ease)}
.sv:hover::after,.logo-cells li:hover::after{opacity:1;--wv:1}
@keyframes boxWave{from{transform:scaleY(var(--wv,.75))}to{transform:scaleY(calc(var(--wv,.75) * .55))}}
@media (prefers-reduced-motion:reduce){.sv::after,.logo-cells li::after{animation:none}}

/* Approach headers: no slant, clean baseline */
.b1 .shotph{transform:none}

/* Testimonials: COBE globe (visuvate) in rose */
.testi{isolation:isolate}
.testi .globe{display:none}
.globe-wrap{position:absolute;left:50%;top:0;transform:translateX(-50%);margin-top:clamp(-92px,-5.5vw,-44px);width:min(980px,130vw);aspect-ratio:1/1;opacity:.72;z-index:-2}
.globe-wrap canvas{width:100%;height:100%;opacity:0;transition:opacity .7s var(--ease);cursor:grab;contain:layout paint size}
.globe-fade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(62% 62% at 50% 42%,transparent 42%,rgba(8,8,8,.45) 70%,var(--bg) 96%)}
.stat,.quote{backdrop-filter:blur(12px);background:rgba(8,8,8,.42)}
/* Serif quotes with oversized rose quotation marks hugging the text */
.quote blockquote{position:relative;font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.1vw,30px);line-height:1.38;letter-spacing:-.005em;margin:34px 0 34px;padding:0 .2em 0 .55em;text-indent:0}
.quote blockquote::before,.quote blockquote::after{font-family:var(--serif);font-style:italic;color:var(--rose);line-height:0;position:relative;font-size:3.4em;vertical-align:-.42em}
.quote blockquote::before{content:"\201C";margin-left:-.42em;margin-right:.04em}
.quote blockquote::after{content:"\201D";margin-left:.02em}

/* Works scroll room = visuvate formula (120 + 30 x items) vh */
.works{height:calc((120vh + 30vh * 16))}
/* Seamless section flow: no hairlines or hard bands between sections */
.press{border-top:0}
.marq{background:transparent;border:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.works .stage::before,.works .stage::after{content:"";position:absolute;left:0;right:0;height:26vh;z-index:5;pointer-events:none}
.works .stage::before{top:0;background:linear-gradient(var(--bg),rgba(8,8,8,0))}
.works .stage::after{bottom:0;background:linear-gradient(rgba(8,8,8,0),var(--bg))}
.works .viewall,.works .cta-btn,.works .dim{z-index:30}
footer{border-top:0}footer::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}

/* Calm boxes (visuvate): static soft gradient; light only on hover */
.sv::after,.logo-cells li::after{animation:none;transform:none;opacity:.55;transition:opacity .6s var(--ease)}
.sv:hover::after,.logo-cells li:hover::after{opacity:1}
.lit.run:not(:hover) .shine{animation:none;opacity:0}
[id]{scroll-margin-top:96px}

/* Smooth, elegant backdrop light: bars melt into a soft glow (no stepped columns) */
.bars{filter:blur(22px) saturate(1.05);inset:-40px -40px 0 -40px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 30%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 30%,#000 100%)}
.page-hero .bars{opacity:.8}
.page-hero{overflow:hidden}
.page-hero[style*="text-align:center"] .ctas{justify-content:center}
/* page heroes: glow dissolves into the next section instead of ending on a shelf */
.page-hero .bars{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%,#000 62%,rgba(0,0,0,.45) 84%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 24%,#000 62%,rgba(0,0,0,.45) 84%,transparent 100%)}
.page-hero::after{height:38%;background:linear-gradient(to bottom,rgba(8,8,8,0),rgba(8,8,8,.5) 60%,var(--bg))}
.page-hero .bars{opacity:1}
/* hero dissolves into the next section like visuvate: glow and board both melt into black, no edge */
.hero .bars{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 26%,#000 52%,rgba(0,0,0,.4) 74%,transparent 92%);mask-image:linear-gradient(to bottom,transparent 0,#000 26%,#000 52%,rgba(0,0,0,.4) 74%,transparent 92%)}
.hero::after{height:46%;background:linear-gradient(to bottom,rgba(8,8,8,0),rgba(8,8,8,.7) 45%,var(--bg) 82%)}
.editor-wrap{-webkit-mask-image:linear-gradient(to bottom,#000 55%,rgba(0,0,0,.35) 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,rgba(0,0,0,.35) 82%,transparent 100%)}
.hero{padding-bottom:110px}

/* approach headers: one clean line, one baseline, no tilt, no squiggles */
.bx h3.ah{font-family:var(--sans);font-size:clamp(24px,2.2vw,32px);font-weight:600;letter-spacing:-.025em;line-height:1.15;margin-bottom:12px;position:relative;z-index:1;white-space:nowrap;transform:none}
.bx h3.ah em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--powder);display:inline;transform:none;vertical-align:baseline}
@media (max-width:420px){.bx h3.ah{white-space:normal}}

/* ===== APPROACH bento, rebuilt on visuvate's geometry ===== */
.approach{perspective:none}
.ap{display:grid;gap:20px}
.ap-row{display:grid;gap:20px}
.ap-row.r1{grid-template-columns:775fr 540fr;height:593px}
.ap-row.r2{grid-template-columns:540fr 775fr;height:650px}
.ap-row.r3{grid-template-columns:775fr 540fr;height:560px}
.ap-box{position:relative;isolation:isolate;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#060606;min-width:0}
.ap-art{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:50% 50%}
.ap-copy{position:relative;z-index:3;padding:45px 36px 0}
.ap-copy h3{font-family:var(--sans);font-size:clamp(24px,2.6vw,36px);line-height:1.1;font-weight:500;letter-spacing:-.03em;color:#fff;margin:0}
.ap-copy p{margin-top:12px;font-size:18px;line-height:1.6;color:#9a9a9a;max-width:640px}
.ap-copy p b{color:#fff;font-weight:400}
.ap-mob .ap-copy p,.ap-cms .ap-copy p{color:rgba(255,255,255,.7)}

/* Strategy: drifting strip of real builds */
.ap-strip{position:absolute;left:0;right:0;top:219px;bottom:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.ap-track{display:flex;gap:16px;width:max-content;animation:apDrift 60s linear infinite}
.ap-track figure{margin:0;width:262px;height:400px;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.12);flex:0 0 auto;background:#111}
.ap-track figure:nth-child(3n+2){transform:translateY(-14px)}
.ap-track img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
@keyframes apDrift{to{transform:translateX(calc(-50% - 8px))}}

/* Mobile: two phones breathing over the planet glow */
.ap-phone{position:absolute;border-radius:34px;padding:7px;background:linear-gradient(145deg,#4a4444,#141212 40%,#2c2828);box-shadow:0 30px 60px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.14);animation:apBreathe ease-in-out infinite;will-change:transform}
.ap-phone img{display:block;width:100%;aspect-ratio:9/19.5;object-fit:cover;object-position:top;border-radius:27px}
.ap-phone::before{content:"";position:absolute;top:14px;left:50%;width:26%;height:16px;margin-left:-13%;border-radius:10px;background:#000;z-index:2}
.ap-phone.p-a{top:170px;left:45.3%;width:46%;--bd:10px;animation-duration:5s;transform:rotate(4deg)}
.ap-phone.p-b{top:214px;left:5%;width:46%;--bd:15px;animation-duration:6s;z-index:2}
@keyframes apBreathe{0%,100%{translate:0 calc(var(--bd) / -2)}50%{translate:0 calc(var(--bd) / 2)}}

/* Convert: laptop riding the light beam */
.ap-laptop{position:absolute;left:58px;top:262px;width:719px;transition:transform .6s var(--ease)}
.ap-conv:hover .ap-laptop{transform:translateX(-40px)}
.ap-laptop .lid{background:linear-gradient(#2a2727,#121010);border-radius:18px 18px 0 0;padding:14px 14px 0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.ap-laptop .scr{aspect-ratio:16/10;overflow:hidden;border-radius:6px 6px 0 0;background:#000}
.ap-laptop .scr img{width:100%;display:block}
.ap-laptop .base{height:22px;margin:0 -34px;border-radius:0 0 18px 18px;background:linear-gradient(#cfc7c4,#8d8582 55%,#5d5654);box-shadow:0 20px 40px rgba(0,0,0,.6)}

/* Elevated: design editor with live cursors */
.ap-editor{position:absolute;left:44px;top:236px;width:790px;height:470px;border-radius:12px;background:#0e0c0c;border:1px solid rgba(255,255,255,.12);box-shadow:0 40px 80px rgba(0,0,0,.6)}
.ed-bar{height:34px;display:flex;align-items:center;gap:16px;padding:0 14px;border-bottom:1px solid rgba(255,255,255,.08);font-size:10px;color:#b9b3b1}
.ed-bar .lg{width:16px;height:16px;border-radius:4px;background:#2a2424}
.ed-bar b{font-weight:500}
.ed-body{display:flex;gap:10px;height:calc(100% - 34px);padding:0 0 0 0}
.ed-body aside{width:168px;flex:0 0 auto;border-right:1px solid rgba(255,255,255,.08);padding:10px;font-size:9.5px;color:#8f8886}
.ed-body .tabs{display:flex;gap:4px;margin-bottom:10px}
.ed-body .tabs span{padding:4px 8px;border-radius:5px}
.ed-body .tabs .on{background:#221d1d;color:#fff}
.ed-body ul{list-style:none;display:grid;gap:7px}
.ed-body li{display:flex;align-items:center;gap:6px}
.ed-body li i{width:7px;height:7px;border-radius:2px;background:var(--rose)}
.ed-body li.d1{padding-left:12px}.ed-body li.d2{padding-left:24px}.ed-body li.d2 i{background:#8b6f6c}
.ed-col{position:relative;width:190px;flex:0 0 auto;margin-top:26px;overflow:hidden;border-radius:4px}
.ed-col img{width:100%;display:block}
.ed-col.sel{outline:1.5px solid var(--rose);outline-offset:0;margin-top:26px}
.ed-col.sel small{position:absolute;top:-1px;left:0;transform:translateY(-100%);font-size:9px;color:#d8cfcd;padding:3px 6px}
.cur{position:absolute;display:flex;align-items:flex-start;gap:2px;animation:apCur 9s ease-in-out infinite;z-index:4}
.cur svg{width:18px;height:18px;fill:var(--rose);filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}
.cur em{font-style:normal;font-size:13px;font-weight:500;color:#1a0d0c;background:var(--rose);padding:5px 12px;border-radius:999px;margin-top:14px}
.cur.c1{left:120px;top:250px}.cur.c2{left:560px;top:330px;animation-delay:-4.5s;animation-duration:11s}
@keyframes apCur{0%,100%{translate:0 0}30%{translate:34px -18px}60%{translate:-16px 22px}}

/* Launch table on silk */
.ap-table{position:absolute;top:212px;right:0;left:36px;bottom:0;border-radius:12px 0 0 0;border-top:1px solid rgba(255,255,255,.1);border-left:1px solid rgba(255,255,255,.1);background:#080808;padding:18px 0 0 20px}
.ap-table .th,.ap-table li{display:grid;grid-template-columns:1fr 160px 110px;align-items:center;padding-right:24px}
.ap-table .th{font-size:12px;color:#6f6a69;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.ap-table ul{list-style:none}
.ap-table li{padding-top:13px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.06);font-size:13.5px;color:#d9d3d1}
.ap-table .nm{display:flex;align-items:center;gap:12px}
.ap-table .nm i{width:10px;height:12px;border-radius:2px;background:#cfc8c6}
.ap-table .dt{color:#8a8483;font-size:12.5px}
.ap-table img{width:59px;height:35px;border-radius:3px;object-fit:cover;object-position:top}

/* Fast: watch dial */
.ap-fut{display:flex;flex-direction:column}
.ap-fut .ap-art,.ap-fut::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(158deg,#2a2525,#181515 34%,#0b0a0a 68%,#000)}
.ap-dial{position:relative;flex:1;min-height:0;margin-top:20px}
.ap-dial svg{position:absolute;left:50%;top:18px;width:560px;height:560px;margin-left:-280px}
.ap-dial .hh,.ap-dial .mh,.ap-dial .sh{transform-origin:280px 280px}

@media (max-width:1100px){
  .ap-editor{transform:scale(.8);transform-origin:top left}
  .ap-laptop{transform:scale(.8);transform-origin:top left}
  .ap-conv:hover .ap-laptop{transform:scale(.8) translateX(-40px)}
}
@media (max-width:750px){
  .ap-row.r1,.ap-row.r2,.ap-row.r3{grid-template-columns:1fr;height:auto}
  .ap-box{min-height:400px}
  .ap-copy{padding:32px 20px 0}
  .ap-copy p{font-size:14px}
  .ap-disc,.ap-mob,.ap-conv,.ap-pix{min-height:440px}
  .ap-strip{top:200px}.ap-track figure{width:180px;height:270px}
  .ap-phone.p-a{top:190px;width:44%}.ap-phone.p-b{top:220px;width:44%}
  .ap-laptop{left:20px;top:220px;transform:scale(.56)}.ap-conv:hover .ap-laptop{transform:scale(.56)}
  .ap-editor{left:16px;top:210px;transform:scale(.6)}
  .ap-table{top:200px;left:16px;padding-left:14px}.ap-table .th,.ap-table li{grid-template-columns:1fr 92px 64px;padding-right:12px}.ap-table li{font-size:12px}
  .ap-fut{min-height:460px}
  .ap-dial svg{width:440px;height:440px;margin-left:-220px}
}
@media (prefers-reduced-motion:reduce){.ap-track,.ap-phone,.cur{animation:none}}

/* ===== service cells: visuvate's shimmer ring + border shine, in rose ===== */
@property --rg-mid{syntax:"<percentage>";inherits:false;initial-value:1%}
@property --rg-peak{syntax:"<percentage>";inherits:false;initial-value:2%}
@property --rg-soft{syntax:"<number>";inherits:false;initial-value:0}
@property --rg-full{syntax:"<number>";inherits:false;initial-value:0}
@property --sh-a{syntax:"<angle>";inherits:false;initial-value:135deg}
@property --sh-b{syntax:"<angle>";inherits:false;initial-value:135deg}
@property --sh-w{syntax:"<angle>";inherits:false;initial-value:24deg}
.vgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.vsc{position:relative;display:grid;place-items:center;aspect-ratio:1/1;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:transparent;text-align:center;padding:0 12px;transition:border-color .3s var(--ease);isolation:isolate}
.vsc .in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:21px}
.vsc img{width:56px;height:56px;display:block}
.vsc .lb{font-size:16px;line-height:21px;color:#8c8584;transition:color .3s var(--ease)}
.vsc:hover .lb,.vsc:focus-visible .lb{color:#fff}
.shm{position:absolute;inset:0;pointer-events:none;
  -webkit-mask:radial-gradient(115% 150% at 50% 50%,#0000 0,rgba(0,0,0,var(--rg-soft)) var(--rg-mid),rgba(0,0,0,var(--rg-full)) var(--rg-peak),#0000 100%);
  mask:radial-gradient(115% 150% at 50% 50%,#0000 0,rgba(0,0,0,var(--rg-soft)) var(--rg-mid),rgba(0,0,0,var(--rg-full)) var(--rg-peak),#0000 100%);
  transition:--rg-mid .9s var(--ease),--rg-peak .9s var(--ease),--rg-soft .9s var(--ease),--rg-full .9s var(--ease)}
.vsc:hover .shm,.lcell:hover .shm{--rg-mid:22.29%;--rg-peak:46.81%;--rg-soft:.4;--rg-full:1}
.shm canvas{width:100%;height:100%;display:block;-webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;mask-mode:luminance;animation:shDrift 13.333s linear infinite paused}
.vsc:hover .shm canvas,.lcell:hover .shm canvas{animation-play-state:running}
@keyframes shDrift{0%{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:-60% 0;mask-position:-60% 0}}
.shn{position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity 60ms linear;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}
.shn.a{background-image:conic-gradient(from calc(var(--sh-a) - var(--sh-w)),transparent 0deg,#d3a29d calc(var(--sh-w) / 2),#ffdae1 var(--sh-w),transparent calc(var(--sh-w) * 2),transparent 360deg)}
.shn.b{background-image:conic-gradient(from calc(var(--sh-b) - var(--sh-w)),transparent 0deg,#d3a29d calc(var(--sh-w) / 2),#ffdae1 var(--sh-w),transparent calc(var(--sh-w) * 2),transparent 360deg)}
@media (prefers-reduced-motion:no-preference){
  .vsc:hover .shn,.vsc:focus-visible .shn,.lcell:hover .shn{animation-duration:2.8s;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}
  .vsc:hover .shn.a,.vsc:focus-visible .shn.a,.lcell:hover .shn.a{animation-name:shA}
  .vsc:hover .shn.b,.vsc:focus-visible .shn.b,.lcell:hover .shn.b{animation-name:shB}
}
@keyframes shA{0%{--sh-a:135deg;--sh-w:0deg;opacity:1}10%{--sh-w:24deg}86%{--sh-a:-45deg;--sh-w:24deg;opacity:1}to{--sh-a:-45deg;--sh-w:24deg;opacity:0}}
@keyframes shB{0%{--sh-b:135deg;--sh-w:0deg;opacity:1}10%{--sh-w:24deg}86%{--sh-b:315deg;--sh-w:24deg;opacity:1}to{--sh-b:315deg;--sh-w:24deg;opacity:0}}
@media (hover:none){.shn{display:none}}
@media (max-width:1000px){.vgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}}
@media (max-width:640px){.vgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vsc .lb{font-size:14px;line-height:19px}.vsc img{width:48px;height:48px}}
.logo-cells li::after,.logo-cells li .shine{display:none!important}
.logo-cells li.lcell .shm,.logo-cells li.lcell .shn{z-index:0}
.logo-cells li.lcell .shn{border-radius:0}

/* ===== pricing, visuvate card anatomy ===== */
.plans{padding:clamp(80px,9vw,135px) 0}
.plans .huge{text-align:center;margin-bottom:clamp(40px,5vw,64px)}
.pgrid2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pc{position:relative;display:flex;flex-direction:column;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(180deg,#141313 0%,#0a0a0a 46%,#060606 100%);padding:28px 26px 26px;overflow:hidden;isolation:isolate}
.pc.pop{border-color:rgba(211,162,157,.5)}
.pc.pop::before{content:"";position:absolute;inset:-1px -1px auto -1px;height:220px;z-index:-1;background:radial-gradient(80% 100% at 50% 0%,rgba(211,162,157,.22),transparent 70%)}
.pk{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8c8584;display:flex;justify-content:space-between;gap:10px}
.pk em{font-style:normal;color:var(--rose);letter-spacing:.1em}
.pp{display:flex;align-items:baseline;gap:8px;margin:26px 0 14px}
.pp small{font-size:12px;color:#8c8584;order:0}
.pp b{font-family:var(--sans);font-size:clamp(38px,3.4vw,48px);font-weight:500;letter-spacing:-.04em;color:#fff;line-height:1}
.pp span{font-size:14px;color:#8c8584}
.pd{font-size:14px;line-height:1.6;color:#9a9a9a;min-height:68px;margin-bottom:22px}
.pc ul{list-style:none;flex:1;margin-bottom:28px}
.pc li{font-size:14px;color:#d9d3d1;padding:12px 0;border-top:1px solid rgba(255,255,255,.08)}
.pc li:last-child{border-bottom:1px solid rgba(255,255,255,.08)}
.pf{display:flex;justify-content:space-between;align-items:center}
.pf .more{font-size:13px;color:#8c8584;transition:color .3s}
.pf .more:hover{color:#fff}
.pstart{margin:28px auto 0;max-width:820px;display:flex;align-items:baseline;gap:16px;justify-content:center;text-align:left;color:#9a9a9a;font-size:15px;line-height:1.6}
.pstart b{font-size:30px;font-weight:500;color:#fff;letter-spacing:-.03em;flex:0 0 auto}
@media (max-width:900px){.pgrid2{grid-template-columns:1fr;max-width:520px;margin:0 auto}.pstart{flex-direction:column;align-items:center;text-align:center;gap:6px}}

/* ===== testimonials, visuvate layout: centered globe, huge title, glass cards ===== */
.testi.tv{position:relative;isolation:isolate;overflow:hidden;padding:clamp(80px,9vw,120px) 0}
.tv-globe{position:absolute;inset:0;z-index:-2;display:grid;place-items:center;pointer-events:none}
.tv-globe .globe-wrap{position:relative;left:auto;top:auto;transform:none;margin-top:clamp(-92px,-5.5vw,-44px);width:min(980px,130vw);aspect-ratio:1/1;opacity:.72;z-index:auto;pointer-events:auto}
.tv-fade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(62% 62% at 50% 42%,transparent 42%,rgba(8,8,8,.45) 70%,var(--bg) 96%)}
.globe-fade{display:none}
.tv-h{text-align:center;font-family:var(--sans);font-size:clamp(46px,9vw,132px);line-height:1;font-weight:500;letter-spacing:-.05em;margin:0}
.tv-stage{position:relative;margin:clamp(-44px,-3vw,-18px) auto 0;max-width:1120px;display:grid;grid-template-columns:4fr 8fr;gap:16px}
.tv-card{position:relative;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(8,8,8,.42);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.tv-card .hl{position:absolute;top:0;left:50%;width:420px;max-width:80%;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(255,218,225,.6) 50%,transparent)}
.tv-card .lift{position:absolute;inset:0;border-radius:12px;pointer-events:none;background:radial-gradient(58% 46% at 50% 0%,rgba(211,162,157,.14),transparent 70%)}
.tv-stats{display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:40px}
.tv-stats .st{position:relative}
.tv-stats .n{font-size:clamp(40px,4.4vw,60px);line-height:.9;font-weight:500;letter-spacing:-.045em;color:#fff;display:flex;align-items:flex-start}
.tv-stats .n sup{font-size:.42em;color:var(--rose);margin-left:3px;line-height:1;font-weight:500;letter-spacing:0}
.tv-stats .l{margin-top:8px;font-size:14px;color:#8c8584}
.testi.tv .quote{padding:44px;display:flex;flex-direction:column;background:rgba(8,8,8,.42)}
.testi.tv .quote .top{position:relative;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#8c8584}
.testi.tv .quote .stars{color:var(--rose);letter-spacing:4px;font-size:15px}
.testi.tv .quote blockquote{position:relative;font-family:var(--serif);font-size:clamp(22px,2.1vw,30px);line-height:1.38;color:#fff;margin:34px 0 34px;flex:1}
.testi.tv .quote .who{position:relative;border-top:0;padding-top:0;display:flex;align-items:center;gap:14px}
.testi.tv .pers{display:flex;align-items:center;gap:14px;margin-right:auto}
.testi.tv .av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:600;color:#1a0d0c;background:radial-gradient(circle at 35% 30%,#fff4ef,#d3a29d 55%,#8a4d4b)}
.testi.tv .pers b{display:block;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fff}
.testi.tv .pers span{font-size:13px;color:#8c8584}
.testi.tv .arrows{display:flex;gap:8px}
.testi.tv .arrows button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.14);display:grid;place-items:center;color:#8c8584;transition:background .3s,color .3s}
.testi.tv .arrows button:hover{background:#151313;color:#fff}
.testi.tv .arrows svg{width:18px;height:18px}
.testi.tv .qdots{margin:0 4px 0 0}
@media (max-width:900px){.tv-stage{grid-template-columns:1fr;margin-top:28px}.tv-stats{order:2;flex-direction:row;flex-wrap:wrap;gap:24px;padding:28px}.tv-stats .st{flex:1 1 140px}.testi.tv .quote{padding:28px}}

/* ===== intro over the spiral (visuvate): opaque tile wall that lifts off the sticky coil ===== */
.vintro{position:relative;isolation:isolate;z-index:10;background:var(--bg);height:820px;overflow:hidden}
.vi-rows{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px;padding:0 0 12px}
.vi-row{flex:1;min-height:0;display:flex}
.vi-row .track{display:flex;gap:12px;height:100%;width:max-content;will-change:transform}
.vi-row figure{height:100%;aspect-ratio:380/268;flex:0 0 auto;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#121212;margin:0}
.vi-row img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.vi-vig{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 96% at 50% 0%,rgba(8,8,8,0) 74%,rgba(8,8,8,.08) 80.5%,rgba(8,8,8,.28) 87%,rgba(8,8,8,.62) 92.7%,rgba(8,8,8,.9) 97%,var(--bg) 100%)}
.vi-spot{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(700px at 22% 30%,var(--bg) 0%,var(--bg) 41%,rgba(8,8,8,.72) 58%,rgba(8,8,8,.38) 74%,rgba(8,8,8,.12) 88%,rgba(8,8,8,0) 100%)}
.vi-copy{position:relative;z-index:2;padding-top:120px;pointer-events:none}
.vi-copy>div{max-width:470px;pointer-events:auto}
.vi-copy p.lead{margin:14px 0 22px;color:#9a9a9a}
.works{margin-top:-820px}
.works .stage::before{display:none}
@media (max-width:760px){
  .vintro{height:720px}
  .works{margin-top:-720px}
  .vi-spot{background:radial-gradient(430px at 40% 28%,rgba(8,8,8,.9) 0%,rgba(8,8,8,.84) 30%,rgba(8,8,8,.56) 56%,rgba(8,8,8,.26) 76%,rgba(8,8,8,0) 100%)}
  .vi-copy{padding-top:96px}
}
.vi-spot{background:radial-gradient(760px at 21% 36%,var(--bg) 0%,var(--bg) 46%,rgba(8,8,8,.78) 60%,rgba(8,8,8,.42) 75%,rgba(8,8,8,.12) 88%,rgba(8,8,8,0) 100%)}
.testi.tv .quote .top{flex-direction:column;align-items:flex-start;gap:18px}
.ap-cms .ap-art{background-position:100% 50%;background-size:auto 130%}
.ap-cms .ap-art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,6,6,.92) 0%,rgba(6,6,6,.55) 45%,rgba(6,6,6,0) 75%)}
@media (max-width:640px){.testi.tv .quote .who{flex-wrap:wrap}.testi.tv .pers{flex:1 0 100%;margin-bottom:14px}.testi.tv .qdots{margin-right:auto}}
.marq{background:#141414;-webkit-mask-image:none;mask-image:none;border:0}
.marq{position:relative}
.marq::before,.marq::after{content:"";position:absolute;top:0;bottom:0;width:12%;z-index:2;pointer-events:none}
.marq::before{left:0;background:linear-gradient(90deg,#141414,rgba(20,20,20,0))}
.marq::after{right:0;background:linear-gradient(270deg,#141414,rgba(20,20,20,0))}
.skip{position:fixed;left:16px;top:-60px;z-index:10000;background:var(--ink);color:#140a09;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;transition:top .2s}
.skip:focus{top:14px}
main{scroll-margin-top:0}
.ap-table .th{color:#8f8987}
.pgrid2{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pc{padding:26px 22px 24px}
.pd{min-height:92px}
@media (max-width:1180px){.pgrid2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px;margin:0 auto}}
@media (max-width:640px){.pgrid2{grid-template-columns:1fr;max-width:520px}.pd{min-height:0}}

/* ===== Work page, visuvate.com/works anatomy in rose ===== */
.vw{position:relative}
.vw-head{position:relative;z-index:0;max-width:1425px;margin:0 auto;padding:clamp(132px,11vw,150px) 32px clamp(40px,5vw,70px)}
.vw-par{will-change:transform}
.vw-head h1{text-align:center;font-family:var(--sans);font-size:clamp(58px,11.2vw,160px);line-height:1;font-weight:500;letter-spacing:-.05em;margin:0}
.vw-head h1 .it{font-weight:400;letter-spacing:-.03em}
.vw-filters{position:relative;z-index:10;max-width:1425px;margin:0 auto;padding:0 32px clamp(32px,4vw,56px);text-align:center}
.vw-pills{margin:-4px;text-wrap:balance}
.vfbtn{display:inline-block;height:34px;margin:4px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:var(--bg);color:#9a9a9a;font:500 15px/1 var(--sans);vertical-align:middle;cursor:pointer;transition:color .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.vfbtn:hover{color:#fff;border-color:rgba(255,255,255,.28)}
.vfbtn.on{background:var(--ink);border-color:transparent;color:#140a09}
.vroll{--b:.2em;display:inline-flex;align-items:flex-start;height:calc(1lh + var(--b) * 2);line-height:21px;margin-block:calc(var(--b) * -1);vertical-align:bottom;overflow:hidden}
.vrc{display:inline-flex;flex-direction:column;white-space:pre;transition:translate .42s var(--ease);transition-delay:calc(var(--i) * 18ms)}
.vrc>span{height:1lh;padding-block:var(--b);box-sizing:content-box;flex:0 0 auto}
.vfbtn:hover .vrc,.vfbtn:focus-visible .vrc{translate:0 -50%}
.vw-sel{display:none;position:relative;max-width:380px;margin:0 auto;height:48px;align-items:center;gap:12px;padding:0 20px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(8,8,8,.42);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.vw-sel .k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8c8584;font-weight:500}
.vw-sel select{flex:1;min-width:0;background:transparent;border:0;color:#fff;font:500 15px var(--sans);appearance:none;-webkit-appearance:none;outline:0}
.vw-sel select option{color:#111}
.vw-sel .n{font-size:13px;color:#8c8584}
.vw-grid{position:relative;z-index:10;max-width:1425px;margin:0 auto;padding:0 32px clamp(80px,9vw,120px);display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.vcell{width:calc((100% - 40px) / 3);min-width:0}
.vcell[hidden]{display:none}
.vw-js .vcell{opacity:0;transform:translateY(34px)}
.vw-js .vcell.in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
.vcard{position:relative;display:flex;flex-direction:column;gap:24px;height:100%;padding:10px 10px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(8,8,8,.3);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.vmedia{display:block}
.vshot{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:#141414}
.vshot img{position:absolute;left:0;top:0;width:100%;height:auto;min-height:100%;object-fit:cover;object-position:top;display:block;transition:filter .5s var(--ease)}
.vcard:hover .vshot img{filter:blur(7px) brightness(.62)}
.vview{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.2vw,32px);line-height:1;color:#fff;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.vcard:hover .vview{opacity:1}
.vdev{position:absolute;left:10px;top:10px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;color:#1a0d0c;background:var(--rose)}
.vmeta{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-left:8px}
.vtx{min-width:0;display:flex;flex-direction:column;gap:4px}
.vtx h2{font-family:var(--sans);font-size:24px;line-height:1.2;font-weight:500;letter-spacing:-.03em;color:#fff;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vtx p{font-size:16px;line-height:1.3;color:#9a9a9a;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vvisit{flex:0 0 auto;display:inline-flex;padding:10px 16px;border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-size:14px;line-height:1;font-weight:500;transition:background .3s var(--ease)}
.vcard:hover .vvisit{background:rgba(255,255,255,.18)}
.vvisit.soon{color:#d3a29d}
.vcard:hover .shn{animation-duration:2.8s;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}
.vcard:hover .shn.a{animation-name:shA}
.vcard:hover .shn.b{animation-name:shB}
@media (max-width:1023px){.vw-grid{gap:8px;padding-left:24px;padding-right:24px}.vcell{width:calc((100% - 8px) / 2)}.vcard{gap:12px;padding:6px 6px 12px;border-radius:6px}.vshot{border-radius:3px}.vtx h2{font-size:16px;line-height:1.25}.vtx p{font-size:13px}.vvisit{display:none}.vmeta{padding-left:6px}}
@media (max-width:767px){.vw-pills{display:none}.vw-sel{display:flex}}
@media (prefers-reduced-motion:reduce){.vw-js .vcell{opacity:1;transform:none}.vcard:hover .shn{animation:none}}
@media (max-width:1023px){.vtx h2{white-space:normal}.vtx p{white-space:normal}}
/* service boxes: same type as the name on the jenntabiza.com hero (Inter Bold caps, tight tracking) */
.vsc .lb{font-family:var(--sans);font-size:15px;line-height:18px;font-weight:700;letter-spacing:-.02em;text-transform:uppercase;color:#d9d3d1}
@media (max-width:640px){.vsc .lb{font-size:14px;line-height:17px}}
/* marketing opt-ins: optional, unchecked, separate from the contact consent */
.ct-optins{display:grid;gap:12px;padding:14px 0 2px}
.ct-optins .ct-consent{font-size:12.5px;line-height:1.5}
.ct-optins b{color:var(--ink);font-weight:600}

/* homepage type theme: card and box titles share the service-box caps (Inter Bold, tight tracking) */
.tb-list b,.pg h3,.ap-copy h3,.pk,.marq .t,.press p,.press .lbl{font-family:var(--sans);font-weight:700;letter-spacing:-.02em;text-transform:uppercase}
.tb-list b{font-size:14px;line-height:1.25}
.pg h3{font-size:clamp(17px,1.5vw,20px);line-height:1.2}
.ap-copy h3{font-size:clamp(22px,2.1vw,30px);line-height:1.1}
.pk{font-size:13px;color:#d9d3d1;letter-spacing:-.02em}
.pk em{font-weight:700;letter-spacing:-.02em}
.marq .t{font-size:clamp(14px,1.3vw,17px)}
.pg .t{font-weight:700;letter-spacing:-.02em;text-transform:uppercase}
.ct-ok[hidden]{display:none}
.faq-points{list-style:none;display:grid;gap:10px;margin:0 0 18px}
.faq-points li{color:var(--muted);line-height:1.6;font-size:15px;max-width:640px}
.faq-points b{color:var(--ink);font-weight:600}
.faq-sub{max-width:780px;margin:56px auto 22px;text-align:center}
.faq-sub h3{font-family:var(--sans);font-size:clamp(22px,2.1vw,30px);line-height:1.1;font-weight:700;letter-spacing:-.02em;text-transform:uppercase;color:#fff;margin:0}
.faq-sub p{margin-top:10px;color:var(--muted);font-size:16px}

/* home hero: back to distinct rectangles (no blur); only the base dissolves */
.hero .bars{filter:none;inset:0;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 58%,rgba(0,0,0,.4) 78%,transparent 94%);mask-image:linear-gradient(to bottom,#000 0,#000 58%,rgba(0,0,0,.4) 78%,transparent 94%)}

/* about: awards banner, big scrolling caps like jenntabiza.com */
.awb{position:relative;padding:44px 0 56px;overflow:hidden;background:linear-gradient(to bottom,transparent,rgba(163,99,97,.09) 35%,rgba(163,99,97,.09) 65%,transparent)}
.awb-k{text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#8c8584;margin:0 0 18px}
.awb-w{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.awb-t{display:flex;width:max-content;animation:awbRun 60s linear infinite}
.awb-t ul{list-style:none;display:flex;margin:0;padding:0}
.awb-t li{display:flex;align-items:center;white-space:nowrap;font-family:var(--sans);font-size:clamp(36px,6.4vw,96px);line-height:1.1;font-weight:800;letter-spacing:-.02em;text-transform:uppercase;color:#fff}
.awb-t li::after{content:"";width:.2em;height:.2em;border-radius:50%;margin:0 .55em;background:radial-gradient(circle at 35% 30%,#fff4ef,#d3a29d 55%,#8a4d4b)}
@keyframes awbRun{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.awb-t{animation:none}}

/* home: sections melt into each other. Fades overlap the boundary instead of stopping at it */
.home .vintro{overflow:visible}
.home .vi-rows{overflow:hidden}
.home .vi-vig{background:linear-gradient(to bottom,var(--bg) 0,rgba(8,8,8,0) 130px),radial-gradient(120% 96% at 50% 0%,rgba(8,8,8,0) 66%,rgba(8,8,8,.28) 80%,rgba(8,8,8,.7) 90%,var(--bg) 99%)}
.home .vintro::after{content:"";position:absolute;left:0;right:0;top:100%;height:30vh;pointer-events:none;background:linear-gradient(to bottom,var(--bg),rgba(8,8,8,.72) 34%,rgba(8,8,8,.3) 68%,rgba(8,8,8,0))}
.home .works .stage::after{height:42vh;background:linear-gradient(to bottom,rgba(8,8,8,0),rgba(8,8,8,.55) 50%,var(--bg) 100%)}
.home .services,.home .toolbox,.home .tba,.home .progs,.home section.feat,.home .plans,.home .approach,.home .testi,.home .faq,.home .cta,.home .press{position:relative;overflow:visible}
.home .services>.wrap,.home .toolbox>.wrap,.home .tba>.wrap,.home .progs>.wrap,.home section.feat>.wrap,.home .plans>.wrap,.home .approach>.wrap,.home .faq>.wrap{position:relative;z-index:1}
.home .services::before,.home .tba::before,.home .progs::before,.home section.feat::before,.home .approach::before,.home .faq::before,.home .toolbox::before{content:"";position:absolute;left:0;right:0;top:-230px;height:460px;pointer-events:none;z-index:0;background:radial-gradient(70% 50% at 50% 50%,rgba(163,99,97,.15),rgba(163,99,97,.05) 55%,rgba(163,99,97,0) 100%)}
.home .tba::before,.home section.feat::before,.home .faq::before{background:radial-gradient(60% 50% at 18% 50%,rgba(163,99,97,.13),rgba(163,99,97,0) 100%),radial-gradient(60% 50% at 82% 50%,rgba(211,162,157,.07),rgba(163,99,97,0) 100%)}
.home .marq{background:linear-gradient(to bottom,rgba(20,20,20,0),rgba(30,22,22,.9) 32%,rgba(30,22,22,.9) 68%,rgba(20,20,20,0));padding:44px 0}
.home .marq::before{background:linear-gradient(90deg,var(--bg),rgba(8,8,8,0))}
.home .marq::after{background:linear-gradient(270deg,var(--bg),rgba(8,8,8,0))}
.home .testi.tv{overflow:hidden}
.home .tv-fade{background:linear-gradient(to bottom,var(--bg) 0,rgba(8,8,8,0) 22%,rgba(8,8,8,0) 78%,var(--bg) 100%),radial-gradient(62% 62% at 50% 42%,transparent 42%,rgba(8,8,8,.45) 70%,var(--bg) 96%)}
.home footer::before{display:none}
.home .socials,.home .socials a,.home .copy{border-color:transparent}
.hero .bars{bottom:auto;height:100vh;min-height:760px;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 74%,rgba(0,0,0,.45) 90%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 74%,rgba(0,0,0,.45) 90%,transparent 100%)}
.home .cta{overflow:hidden}

/* form errors: impossible to miss */
.ct-form [aria-invalid="true"],.pa-step [aria-invalid="true"]{border:2px solid #ff5a5f!important;background:rgba(255,90,95,.1)!important;box-shadow:0 0 0 3px rgba(255,90,95,.2)}
.ct-consent input[aria-invalid="true"]{outline:2px solid #ff5a5f;outline-offset:2px}
.ct-row.is-bad label{color:#ff8d90}
.ct-row .fe,.ct-consent+.fe{display:block;margin-top:6px;font-size:13px;font-weight:600;color:#ff8d90}
.ct-consent.is-bad span{color:#ff8d90}
.ct-err{display:flex;gap:10px;align-items:flex-start;padding:13px 15px;border-radius:10px;background:#3a1416;border:1.5px solid #ff5a5f;color:#fff;font-size:14.5px;font-weight:600;line-height:1.4}
.ct-err[hidden]{display:none}
.ct-err::before{content:"!";flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#ff5a5f;color:#180808;font-weight:800;font-size:14px}

/* page transition: the rose blooms between pages */
html::before,html::after{content:"";position:fixed;pointer-events:none;opacity:0;visibility:hidden}
html::before{inset:0;z-index:99998;background:radial-gradient(46% 46% at 50% 50%,rgba(163,99,97,.24),rgba(163,99,97,0) 100%),var(--bg)}
html::after{left:50%;top:50%;width:clamp(120px,14vw,190px);aspect-ratio:690/534;margin-left:calc(clamp(120px,14vw,190px) / -2);margin-top:calc(clamp(120px,14vw,190px) * -.387);z-index:99999;background:url(assets/rose-big.webp) center/contain no-repeat;filter:drop-shadow(0 0 34px rgba(211,162,157,.45))}
html.pt-leave::before,html.pt-leave::after,html.pt-arrive::before,html.pt-arrive::after{visibility:visible;pointer-events:auto}
html.pt-leave::before{animation:ptBg .42s var(--ease) both}
html.pt-leave::after{animation:ptBloom .46s var(--ease) both}
html.pt-arrive::before,html.pt-arrive::after{opacity:1}
html.pt-reveal::before{animation:ptBg .68s var(--ease) reverse both}
html.pt-reveal::after{animation:ptOpen .6s var(--ease) both}
@keyframes ptBg{from{opacity:0}to{opacity:1}}
@keyframes ptBloom{from{opacity:0;transform:scale(.55) rotate(-14deg)}to{opacity:1;transform:none}}
@keyframes ptOpen{from{opacity:1;transform:none}to{opacity:0;transform:scale(1.35) rotate(6deg)}}
@media (prefers-reduced-motion:reduce){html::before,html::after{display:none}}

/* ===== Optometry Growth: Aesthetic Coaching design + every jenntabiza.com/optometrygrowth section ===== */
.ogx{position:relative}
.ogx .sec{position:relative;padding:clamp(70px,8vw,100px) 0}
.ogx .sec:nth-of-type(3n+1)::before{content:"";position:absolute;left:0;right:0;top:-200px;height:400px;pointer-events:none;background:radial-gradient(70% 50% at 50% 50%,rgba(163,99,97,.13),rgba(163,99,97,0) 100%)}
.ogx .wrap{position:relative}
.ogk{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose);font-weight:600;margin:0 0 14px}
.ogx .pillars li{font-weight:700;letter-spacing:-.02em;text-transform:uppercase;font-size:clamp(15px,1.3vw,17px)}
.ogx .c4 h3{font-weight:700;letter-spacing:-.02em;text-transform:uppercase;font-size:15px}
.ogx .prob b{font-weight:700;letter-spacing:-.02em;font-size:15px}
.og-tight{padding:0!important}
.og-sys{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:0 22px}
.og-sys summary{cursor:pointer}
.og-sys>div{background:var(--ivory);border-radius:12px;padding:20px;margin:0 0 22px;text-align:center}
.og-sys img{max-width:458px;width:100%}
.og-posts{margin:0;text-align:center}
.og-posts>div{position:relative;height:clamp(360px,36vw,500px)}
.og-posts img{position:absolute;border-radius:10px;box-shadow:0 30px 60px rgba(0,0,0,.55)}
.og-posts .p0{left:50%;top:6%;width:52%;transform:translateX(-50%);opacity:.92}
.og-posts .p1{left:0;top:0;width:46%;transform:rotate(-5deg);z-index:2}
.og-posts .p2{right:0;top:20%;width:46%;transform:rotate(5deg);z-index:2}
.og-posts figcaption{font-size:13px;color:var(--muted);margin-top:16px}
.og-lap img{display:block;width:100%;border-radius:14px;border:1px solid var(--line2);-webkit-mask-image:radial-gradient(120% 120% at 50% 50%,#000 72%,transparent 100%);mask-image:radial-gradient(120% 120% at 50% 50%,#000 72%,transparent 100%)}
.ogx .four .c4{position:relative}
.ogx .four .n{position:absolute;right:22px;top:20px;font-family:var(--serif);font-style:italic;font-size:30px;color:var(--rose);line-height:1}
.ogx .four ul{margin-top:12px}
.og-bl{display:grid;gap:14px}
.og-bl .c4{display:flex;gap:14px;align-items:flex-start;aspect-ratio:auto}
.og-bl .ill.sm{width:54px;margin:0;flex:0 0 auto}
.og-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.og-ready{text-align:center}
.og-ready .lead{margin:20px auto 0;max-width:560px}
.og-ready .ctas{justify-content:center;margin-top:26px}
.og-colh{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:40px}
.og-colh>span{font-size:13px;color:var(--muted)}
.og-stage{position:relative;height:clamp(230px,33vw,460px)}
.ogc{position:absolute;left:50%;top:0;width:min(68%,760px);height:100%;border-radius:14px;overflow:hidden;background:#111;border:1px solid var(--line2);box-shadow:0 30px 70px rgba(0,0,0,.6);transition:transform .7s var(--ease),opacity .5s,filter .5s}
.ogc img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.og-arw{display:flex;justify-content:center;gap:12px;margin-top:28px}
.og-arw button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);color:var(--ink);display:grid;place-items:center;background:transparent;cursor:pointer;transition:background .3s}
.og-arw button:hover{background:var(--panel2)}.og-arw svg{width:18px;height:18px}
.og-cap{text-align:center;margin-top:20px}
.og-cap p{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.og-cap h3{font-size:clamp(20px,2vw,28px);font-weight:700;letter-spacing:-.02em;text-transform:uppercase;margin:0 0 6px}
.og-cap a{font-size:13.5px;color:var(--rose)}
.og-rings{position:relative;overflow:hidden;height:clamp(600px,64vw,900px);display:grid;place-items:center;background:radial-gradient(60% 56% at 50% 50%,#a36361 0,#5e2c34 46%,rgba(30,14,18,.9) 76%,var(--bg) 100%);text-align:center}
.og-rings::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(to bottom,var(--bg) 0,rgba(8,8,8,0) 22%,rgba(8,8,8,0) 78%,var(--bg) 100%)}
.og-rings::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(36% 28% at 50% 50%,rgba(0,0,0,.45),rgba(0,0,0,0))}
.og-rings img{position:absolute;left:50%;top:50%}
.og-rings .eye{z-index:0;width:min(40vw,500px);transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(closest-side,#000 70%,transparent 100%);mask-image:radial-gradient(closest-side,#000 70%,transparent 100%)}
.og-rings .rng{z-index:1;width:min(88vw,880px);transform:translate(-50%,-50%);will-change:transform}
.og-rings .tx{position:relative;z-index:3;padding:0 24px}
.og-rings p{font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 12px;color:#fff}
.og-rings h2{font-size:clamp(36px,5vw,72px);font-weight:700;letter-spacing:-.04em;line-height:1.02;margin:0;color:#fff;text-shadow:0 6px 40px rgba(0,0,0,.5)}
.og-rings h2 .it{font-weight:400}
.og-rings span:not(.it){display:block;margin-top:14px;font-size:16px;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.6)}
.og-wk{grid-template-columns:repeat(2,minmax(0,1fr))}
.news .nlg{display:block;width:96px;margin:16px auto 12px}
.news .nim{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top}
.og-me{display:flex;gap:16px;align-items:flex-start;margin-top:22px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:14px}
.og-me img{width:92px;aspect-ratio:1/1.15;object-fit:cover;object-position:top;border-radius:10px;flex:0 0 auto}
.og-me b{display:block;font-weight:700;letter-spacing:-.02em;text-transform:uppercase;font-size:15px}
.og-me small{display:block;color:var(--rose);font-size:12.5px;margin:3px 0 8px}
.og-me p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
@media (max-width:900px){.og-3,.og-wk{grid-template-columns:1fr}.og-stage{height:56vw}.ogc{width:84%}.og-colh{flex-direction:column;align-items:flex-start}.og-rings .eye{width:64vw}}
.og-wk .wk .img{aspect-ratio:16/10;overflow:hidden}.og-wk .wk .img img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transform:none}


/* ===== Programs page: chapters + imagery ===== */
.pgs{margin-top:16px}
.pg-ch{margin:120px 0 40px;display:grid;gap:12px}
.pg-ch:first-child{margin-top:64px}
.pg-k{font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:14px;color:var(--rose)}
.pg-fig{margin:0;overflow:hidden;border-radius:var(--r);background:#141414;position:relative;aspect-ratio:5/4}
.pg-fig img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:filter .5s}
.pg-fig img[data-par]{transform:scale(1.12)}
.pg-tx .t{display:block;font-weight:700;font-size:13px;letter-spacing:-.01em;text-transform:uppercase;color:var(--rose)}
.pg-tx h3{font-size:clamp(30px,3.3vw,46px);font-weight:700;letter-spacing:-.035em;line-height:1.04;margin:10px 0 14px}
.pg-tx h3 .it{font-weight:400}
.pg-tx>p{color:var(--muted);font-size:16px;line-height:1.6;margin-bottom:22px}
.pg-tx .note{font-size:12.5px;color:var(--muted);opacity:.8}
.pg-tx .ctas{margin:0 0 26px}
.pg-ul{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;padding:20px 0 0;border-top:1px solid var(--line)}
.pg-ul li{display:flex;gap:10px;font-size:14.5px;line-height:1.4}
.pg-ul li::before{content:"";flex:0 0 6px;height:6px;border-radius:50%;background:var(--rose);margin-top:7px}
.pg-feature{display:grid;grid-template-columns:1fr 1.15fr;gap:72px;align-items:center}
.pg-comp{position:relative;padding:0 34px 56px 0}
.pg-comp .browser img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top}
.pg-phone{position:absolute;right:0;bottom:0;width:34%;border-radius:24px;border:6px solid #262626;overflow:hidden;background:#000;box-shadow:0 30px 70px -20px rgba(0,0,0,.9)}
.pg-phone img{display:block;width:100%}
.pg-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.pg-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:border-color .4s}
.pg-card:hover{border-color:rgba(211,162,157,.4)}
.pg-card .pg-fig{border-radius:0;aspect-ratio:16/10}
.pg-card:hover .pg-fig img{transform:scale(1.08)}
.pg-card .pg-fig img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.pg-card .pg-tx{padding:32px;display:flex;flex-direction:column;flex:1}
.pg-card .pg-tx h3{font-size:clamp(28px,2.7vw,36px)}
.pg-card .pg-ul{margin-top:auto}
.pg-wide{position:relative;margin-top:18px;border-radius:var(--r);overflow:hidden;min-height:620px;display:flex;align-items:center;border:1px solid var(--line)}
.pg-wide .pg-fig{position:absolute;inset:0;aspect-ratio:auto;border-radius:0}
.pg-wide .pg-fig img{transform:none;object-position:70% center}
.pg-wide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,8,.96) 0%,rgba(8,8,8,.9) 38%,rgba(8,8,8,.35) 66%,transparent 100%)}
.pg-wide .pg-tx{position:relative;z-index:1;max-width:560px;padding:48px}
.pg-split{display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center;margin-top:88px}
.pg-ch+.pg-split{margin-top:0}
.pg-split.rev .pg-fig{order:2}
.pg-split.rev{grid-template-columns:1fr 1.1fr}
.pg-por .pg-fig{aspect-ratio:4/5;max-width:440px;justify-self:end}
.pg-monthly{margin-top:120px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:56px;border-radius:var(--r);border:1px solid rgba(211,162,157,.22);background:radial-gradient(90% 120% at 100% 100%,rgba(163,99,97,.3),transparent 62%),var(--panel);overflow:hidden}
.pg-fan{position:relative;height:400px}
.pg-fan img{position:absolute;top:50%;left:50%;width:56%;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:14px;border:1px solid var(--line2);box-shadow:0 30px 60px -20px rgba(0,0,0,.85)}
.pg-fan img:nth-child(1){transform:translate(-92%,-50%) rotate(-8deg)}
.pg-fan img:nth-child(2){transform:translate(-50%,-54%);z-index:2}
.pg-fan img:nth-child(3){transform:translate(-8%,-50%) rotate(8deg)}
.who4 .c4{overflow:hidden;padding-top:0}
.who-img{margin:0 -26px 8px;aspect-ratio:4/3;overflow:hidden}
.who-img img{display:block;width:100%;height:100%;object-fit:cover}
.who4 h3{font-weight:700;text-transform:uppercase;letter-spacing:-.02em;font-size:17px}
.pg-quote{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
.pg-quote .pg-fig{aspect-ratio:4/5}
.pg-quote .pull{text-align:left;margin:0;font-size:clamp(26px,3vw,40px)}
.pg-method{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:stretch}
.pg-method .pg-fig{aspect-ratio:auto;min-height:100%}
.pg-method .method{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:980px){
  .pg-ch{margin-top:88px;margin-bottom:28px}
  .pg-feature,.pg-split,.pg-split.rev,.pg-monthly,.pg-quote,.pg-method{grid-template-columns:1fr;gap:32px}
  .pg-split{margin-top:64px}
  .pg-split.rev .pg-fig{order:0}
  .pg-feature .pg-comp{order:-1}
  .pg-por .pg-fig{max-width:none;justify-self:stretch}
  .pg-two{grid-template-columns:1fr}
  .pg-wide{display:block;min-height:0;background:var(--panel)}
  .pg-wide .pg-fig{position:relative;inset:auto;aspect-ratio:4/3}
  .pg-wide::after{display:none}
  .pg-wide .pg-tx{max-width:none;padding:28px}
  .pg-monthly{padding:28px}
  .pg-fan{height:280px;order:-1}
  .pg-method .pg-fig{aspect-ratio:5/4;min-height:0}
  .who4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .pg-ul{grid-template-columns:1fr}
  .pg-card .pg-tx{padding:24px}
  .pg-method .method{grid-template-columns:1fr}
  .who4{grid-template-columns:1fr}
  .pg-comp{padding:0 18px 36px 0}
}


/* ===== Site-wide type system =====
   DISPLAY  sentences + headlines: Inter 700, sentence case, Playfair italic accent (.it)
   TITLE    names of things (cards, programs, sites, people): Inter 700 caps, -.02em
   LABEL    small tags and eyebrows: Inter 700 caps, -.02em, 12-13px
   Playfair italic is reserved for the accent word, quotes and step numerals. */
.vw-par h1,.tv-h,.testi.tv .tv-h,.starcard h2,section.starcard h2,.pa-step h2,.bk-step h3,.ct-ok h3{font-weight:700}
.pa-step h2,.bk-step h3,.ct-ok h3{letter-spacing:-.03em}
.pp b,.pstart b,.ab-stat b{font-weight:700}

.vtx h2,.dm h3,.tl-i h3,.br-body h3,.lg-sec h2,.method h3,.pa-result h2,.pg-tx h3,.who4 h3,.wk .meta b,.testi.tv .pers b,.news-t{
  font-family:var(--sans);font-style:normal;font-weight:700;letter-spacing:-.02em;text-transform:uppercase}
.vtx h2{font-size:20px;line-height:1.15}
.dm h3{font-size:19px}.tl-i h3{font-size:19px}.lg-sec h2{font-size:20px}
.method h3{font-size:17px}
.pa-result h2{font-size:clamp(26px,2.6vw,34px);line-height:1.08}
.pg-tx h3{font-size:clamp(28px,2.9vw,40px);line-height:1.06}
.pg-card .pg-tx h3{font-size:clamp(26px,2.4vw,32px)}
.pg-tx h3 .it,.br-body h3 .it,.vtx h2 .it,.dm h3 .it,.tl-i h3 .it{font-weight:400;letter-spacing:-.01em;text-transform:none}

.badge,.h5,p.h5,.fcols .h5,.prop .h5,.sm-grid .h5,.ogk,.pg-k,.pg-tx .t,.press-h,.awb-k,.follow .fl,.ct-info span,.br .yr,.pa-k,.og-cap p,.og-rings p,.portrait .cap,.pk,.vw-sel .k{
  font-family:var(--sans);font-weight:700;letter-spacing:-.02em;text-transform:uppercase}
.badge{font-size:12px}
.h5,p.h5,.fcols .h5,.prop .h5,.ogk,.pg-k,.pg-tx .t,.press-h,.awb-k,.ct-info span,.br .yr,.pa-k,.og-cap p,.og-rings p{font-size:13px}
.lg-toc .h5{font-size:13px}
.vtx h2{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
@media (max-width:1023px){.vtx h2{font-size:15px}}
