/* VL Studio v4 — "From chaos to clarity": editorial luxury over a living landscape */
@font-face{font-family:'Source Serif 4';src:url(../fonts/SourceSerif4-opsz-normal.woff2) format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url(../fonts/SourceSerif4-opsz-italic.woff2) format('woff2');font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:'Switzer';src:url(../fonts/Switzer-300.woff2) format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Switzer';src:url(../fonts/Switzer-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Switzer';src:url(../fonts/Switzer-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Switzer';src:url(../fonts/Switzer-600.woff2) format('woff2');font-weight:600;font-display:swap}

:root{
  --bg:#0a0c0f; --ink:#f1efe9; --ink2:#d3d1ca; --muted:#a3a7ad; --dim:#7f858d;
  --line:rgba(241,239,233,.14); --line2:rgba(241,239,233,.26);
  --gold:#d9bf8c; --gold2:#ecd8ae; --glass:rgba(12,14,18,.58);
  --serif:'Source Serif 4',Georgia,'Times New Roman',serif; --sans:'Switzer',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --pad:clamp(20px,5vw,72px); --maxw:1280px; --r:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;overflow-x:clip}
body{font:400 16.5px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip;background:var(--bg)}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:rgba(217,191,140,.35)}
:focus-visible{outline:2px solid var(--gold2);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:var(--ink);color:var(--bg);padding:8px 14px}
.skip:focus{left:8px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);position:relative}
.narrow{max-width:900px;margin-left:max(0px,calc((100% - var(--maxw))/2))}
.nw{white-space:nowrap}

/* ---------- scene ---------- */
.scene{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#07090b}
.plates{position:absolute;inset:-3%;will-change:transform}
.plate{position:absolute;inset:0;opacity:0}
.plate img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.plate.p0{opacity:1}
.mist{position:absolute;inset:-20% -40%;pointer-events:none;opacity:0;mix-blend-mode:screen;
  background:radial-gradient(40% 30% at 30% 60%,rgba(210,220,230,.18),transparent 70%),radial-gradient(35% 25% at 70% 40%,rgba(210,220,230,.14),transparent 70%)}
html.motion .mist.m1{animation:drift 38s linear infinite}
html.motion .mist.m2{animation:drift 56s linear infinite reverse;transform:scale(1.3)}
@keyframes drift{from{translate:-6% 0}to{translate:6% 0}}
#fx{position:absolute;inset:0;width:100%;height:100%}
.flash{position:absolute;inset:0;background:radial-gradient(60% 50% at 60% 18%,rgba(220,230,255,.55),rgba(160,180,220,.12) 50%,transparent 75%);opacity:0;mix-blend-mode:screen}
/* readability: darker on the left (text column), lighter on the right where the waterfall lives */
.scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,13,.86) 0%,rgba(8,10,13,.6) 36%,rgba(8,10,13,.1) 64%,rgba(8,10,13,.25) 100%),linear-gradient(0deg,rgba(8,10,13,.7) 0%,transparent 30%)}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:34px;padding:22px max(var(--pad),calc((100% - var(--maxw))/2 + var(--pad)));transition:background .4s,padding .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(10,12,15,.64);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:var(--line);padding-top:14px;padding-bottom:14px}
.logo{display:flex;align-items:baseline;gap:9px;text-decoration:none;margin-right:auto}
.logo-vl{font:400 30px/1 var(--serif);letter-spacing:-.01em}
.logo-st{font:500 11px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--muted)}
.links{display:flex;gap:30px}
.links a{text-decoration:none;font:400 14px/1 var(--sans);letter-spacing:.04em;color:var(--ink2);transition:color .2s}
.links a:hover{color:var(--gold2)}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:none;cursor:pointer;position:relative}
.burger span{position:absolute;left:13px;right:13px;height:1px;background:var(--ink);transition:transform .3s}
.burger span:first-child{top:18px}.burger span:last-child{top:25px}
.burger[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:45;background:rgba(10,12,15,.96);backdrop-filter:blur(16px);display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 var(--pad)}
.mnav[hidden]{display:none}
.mnav a{font:400 40px/1.35 var(--serif);text-decoration:none}
.mnav .btn{margin-top:26px;align-self:flex-start;font-size:15px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:999px;font:500 14.5px/1 var(--sans);letter-spacing:.03em;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,transform .2s}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:var(--gold2);color:#17130b}
.btn-gold:hover{background:#f5e6c6}
.btn-line{border-color:var(--line2);color:var(--ink);background:rgba(10,12,15,.25);backdrop-filter:blur(6px)}
.btn-line:hover{border-color:var(--ink)}
.nav-cta{min-height:42px;padding:0 20px;font-size:13.5px}

/* ---------- type ---------- */
.kicker,.num{font:500 12px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.display{font:400 clamp(58px,9.4vw,152px)/.92 var(--serif);letter-spacing:-.025em;margin:26px 0 0}
.display em,.title em{font-style:italic;color:var(--gold2)}
.lede{font:300 clamp(18px,1.5vw,22px)/1.55 var(--sans);color:var(--ink2);max-width:40ch;margin-top:30px}
.title{font:400 clamp(38px,5vw,76px)/1.0 var(--serif);letter-spacing:-.02em;margin-top:22px;max-width:18ch;text-wrap:balance}
.title.big{font-size:clamp(44px,6.4vw,104px)}
.text{color:var(--ink2);font-size:17px;max-width:56ch;margin-top:24px;text-wrap:pretty}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:flex;align-items:center;padding:120px 0 90px;position:relative}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.offer{margin-top:24px;font-size:13.5px;color:var(--muted);letter-spacing:.02em}
.scroll-cue{position:absolute;left:50%;bottom:28px;translate:-50% 0;width:26px;height:42px;border:1px solid var(--line2);border-radius:20px}
.scroll-cue span{position:absolute;left:50%;top:9px;width:2px;height:8px;margin-left:-1px;border-radius:2px;background:var(--gold2)}
html.motion .scroll-cue span{animation:cue 2s ease-in-out infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}80%{opacity:0;transform:translateY(14px)}100%{opacity:0}}

/* ---------- chapters ---------- */
.chapter{padding:clamp(110px,16vh,180px) 0;position:relative}
#chaos{min-height:90svh;display:flex;align-items:center}
.head{margin-bottom:56px}

/* services — an editorial index, not cards */
.svc-list{border-top:1px solid var(--line2)}
.svc{display:grid;grid-template-columns:80px minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:28px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .3s,padding .3s}
.svc:hover{background:linear-gradient(90deg,rgba(217,191,140,.07),transparent 70%)}
.svc .i{font:400 15px/1 var(--serif);font-style:italic;color:var(--gold)}
.svc h3{font:400 clamp(24px,2.3vw,34px)/1.1 var(--serif)}
.svc p{color:var(--muted);font-size:15px}
.svc .from{font:500 14px/1 var(--sans);color:var(--gold2);white-space:nowrap}

/* approach */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line2)}
.steps li{padding:30px 26px 10px 0;border-right:1px solid var(--line);margin-right:26px}
.steps li:last-child{border-right:0;margin-right:0}
.steps span{font:400 italic 22px/1 var(--serif);color:var(--gold)}
.steps h3{font:400 28px/1.1 var(--serif);margin:18px 0 12px}
.steps p{color:var(--ink2);font-size:15px}

/* work */
.work{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto;gap:18px}
.case{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.case figure{overflow:hidden}
.case.big{grid-row:span 2}
.case.big figure img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:scale 1.2s cubic-bezier(.2,.7,.2,1)}
.case:hover figure img{scale:1.04}
.case .phones{display:flex;gap:12px;justify-content:center;padding:24px 20px 0;height:280px;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent)}
.case .phones img{height:100%;width:auto;border-radius:14px 14px 0 0;box-shadow:0 20px 40px -14px #000}
.case>div{padding:24px 26px 28px}
.case.text{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.case.text>div+div{border-left:1px solid var(--line)}
.tag{font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.case h3{font:400 30px/1.1 var(--serif);margin:12px 0 10px}
.case p{color:var(--ink2);font-size:15px}

/* studio facts */
.facts{list-style:none;display:flex;flex-wrap:wrap;gap:20px 56px;margin-top:40px;padding-top:30px;border-top:1px solid var(--line2)}
.facts b{display:block;font:400 48px/1 var(--serif);color:var(--gold2)}
.facts span{display:block;margin-top:8px;font-size:13.5px;color:var(--muted);letter-spacing:.04em}

/* pricing */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.tab{background:rgba(10,12,15,.4);border:1px solid var(--line2);color:var(--ink2);font:500 13.5px/1 var(--sans);letter-spacing:.03em;padding:12px 18px;border-radius:999px;cursor:pointer;min-height:44px;backdrop-filter:blur(8px)}
.tab[aria-selected="true"]{background:var(--gold2);border-color:var(--gold2);color:#17130b}
.plist{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.prow{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line)}
.prow:last-child{border-bottom:0}
.prow h3{font:400 24px/1.15 var(--serif)}
.prow p{color:var(--muted);font-size:14.5px;margin-top:4px}
.prow .pr{text-align:right;white-space:nowrap}
.prow .pr small{color:var(--muted);font-size:13px}
.prow .pr b{font:400 28px/1.1 var(--serif)}
.prow .pr em{display:block;font-style:normal;font-size:12.5px;color:var(--gold2);margin-top:4px}
.bundles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}
.bundle{position:relative;padding:30px 26px;background:var(--glass);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;flex-direction:column}
.bundle.hot{border-color:rgba(236,216,174,.55)}
.bundle .badge{position:absolute;top:-12px;left:24px;background:var(--gold2);color:#17130b;font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:7px 11px;border-radius:999px}
.bundle h3{font:400 32px/1.05 var(--serif)}
.bundle .for{color:var(--gold);font-size:13.5px;margin:8px 0 16px}
.bundle ul{list-style:none;flex:1;margin-bottom:20px}
.bundle li{padding:7px 0 7px 22px;position:relative;color:var(--ink2);font-size:14.5px;border-top:1px solid var(--line)}
.bundle li::before{content:"—";position:absolute;left:0;color:var(--gold)}
.bundle .p{font:400 28px/1.1 var(--serif)}.bundle .p small{font:400 14px var(--sans);color:var(--muted)}
.bundle .n{font-size:12.5px;color:var(--gold2);margin:6px 0 20px}

/* faq */
.faq{display:grid;grid-template-columns:1fr 1.5fr;gap:64px;align-items:start}
.faq-list{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);padding:6px 28px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.faq-list details+details{border-top:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font:400 22px/1.3 var(--serif);position:relative}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";position:absolute;right:2px;top:18px;font:300 28px/1 var(--sans);color:var(--gold);transition:transform .3s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list p{color:var(--ink2);padding:0 0 22px;max-width:62ch}

/* contact */
.contact{min-height:100svh;display:flex;align-items:center}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;width:100%}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:30px;background:rgba(10,12,15,.6);border:1px solid var(--line2);border-radius:20px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.form label{display:grid;gap:8px;font:500 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.form .wide{grid-column:1/-1}
.form input,.form select,.form textarea{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--line2);border-radius:10px;color:var(--ink);font:400 16px/1.4 var(--sans);padding:13px 14px;min-height:48px;letter-spacing:0;text-transform:none}
.form select option{background:#14171c}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold2);outline-offset:0;border-color:transparent}
.form input[aria-invalid=true]{border-color:#e39a7a}
.note{font-size:13px;color:var(--muted);text-align:center}
.note.err{color:#f0a986}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

.footer{position:relative;background:rgba(10,12,15,.8);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:36px 0 calc(36px + env(safe-area-inset-bottom))}
.foot{display:flex;flex-wrap:wrap;gap:14px 30px;align-items:center;justify-content:space-between;color:var(--muted);font-size:13.5px}

/* reveals */
html.motion .reveal{opacity:0;transform:translateY(24px)}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .links,.nav-cta{display:none}.burger{display:block}
  .steps{grid-template-columns:1fr 1fr;row-gap:10px}.steps li:nth-child(2){border-right:0;margin-right:0}
  .work{grid-template-columns:1fr}.case.big{grid-row:auto}.case.text{grid-template-columns:1fr}.case.text>div+div{border-left:0;border-top:1px solid var(--line)}
  .bundles{grid-template-columns:1fr}
  .faq,.contact-grid{grid-template-columns:1fr;gap:34px}
  .svc{grid-template-columns:44px 1fr auto;gap:8px 16px}
  .svc p{grid-column:2/-1;grid-row:2}
}
@media (max-width:640px){
  /* phones: the waterfall (right side of the photo) becomes the centre of the frame; text sits on a stronger bottom-up scrim */
  .plate img{object-position:74% 50%}
  .scrim{background:linear-gradient(0deg,rgba(8,10,13,.92) 0%,rgba(8,10,13,.62) 50%,rgba(8,10,13,.35) 100%)}
  .hero{align-items:flex-end;padding-bottom:110px}
  .display{font-size:clamp(52px,15vw,76px)}
  .ctas .btn{flex:1 1 100%}
  .steps{grid-template-columns:1fr}.steps li{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-bottom:22px}
  .prow{grid-template-columns:1fr;gap:8px}.prow .pr{text-align:left}
  .form{grid-template-columns:1fr;padding:20px 16px}
  .faq-list{padding:4px 18px}.faq-list summary{font-size:19px}
  .chapter{padding:90px 0}
  .facts b{font-size:38px}
}
@media (prefers-reduced-motion:reduce){.mist,.scroll-cue span{animation:none!important}}
/* scene sits under content: body must not paint over it */
body{background:transparent}
.scene{z-index:0}
.nav{z-index:50} main,.footer{position:relative;z-index:1}

/* chaos → clarity notifications (decorative; the story of what we do) */
.toasts{position:absolute;right:max(24px,4vw);bottom:12vh;display:grid;gap:10px;width:min(320px,42vw);pointer-events:none}
.toast{position:relative;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;font:500 13.5px/1.3 var(--sans);
  background:rgba(12,14,18,.62);border:1px solid var(--line2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;color:var(--ink)}
.toast i{flex:none;width:9px;height:9px;border-radius:50%;background:#e0735a;box-shadow:0 0 12px #e0735a}
.toast .good{display:none}
.toast.ok i{background:#5ccf98;box-shadow:0 0 12px #5ccf98}
.toast.ok .bad{display:none}.toast.ok .good{display:inline}
/* sound toggle */
.sound{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:rgba(10,12,15,.3);cursor:pointer;display:grid;place-items:center}
.sound span{width:16px;height:14px;background:var(--ink2);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1 5h3l4-4v12L4 9H1z'/%3E%3Cpath d='M11 4c1.3 1.6 1.3 4.4 0 6M13 2c2.5 2.7 2.5 7.3 0 10' stroke='%23000' fill='none' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1 5h3l4-4v12L4 9H1z'/%3E%3Cpath d='M11 4c1.3 1.6 1.3 4.4 0 6M13 2c2.5 2.7 2.5 7.3 0 10' stroke='%23000' fill='none' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.45}
.sound[aria-pressed="true"] span{background:var(--gold2);opacity:1}
@media (max-width:640px){.toasts{top:84px;bottom:auto;right:16px;width:62vw;gap:7px}.toast{font-size:12px;padding:9px 11px}.toast:nth-child(n+3){display:none}}
.plates{inset:0!important;transform:none!important}
.plate{will-change:transform,opacity;backface-visibility:hidden}
/* film layer: covers the plates once it is ready */
.film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%;opacity:0;transition:opacity 1.2s ease}
html.film-on .film{opacity:1}
html.film-on .plates{visibility:hidden}
@media (max-width:640px){.film{object-position:66% 50%}}

/* ---------- work: scroll-driven 3D coverflow (all sizes) ---------- */
.rail-box{position:relative;overflow:hidden;padding:30px 0 70px;margin:0 calc(-1*var(--pad));perspective:1300px}
.rail{display:flex;gap:28px;width:max-content;transform-style:preserve-3d;padding:0 50vw}
.wcard{flex:0 0 clamp(270px,30vw,400px);background:rgba(12,14,18,.7);border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);will-change:transform,opacity;backface-visibility:hidden;box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
.wcard figure{height:clamp(150px,13vw,200px);overflow:hidden;background:#0d1016}
.wcard figure img{width:100%;height:100%;object-fit:cover}
.wcard figure.phones{display:flex;gap:10px;justify-content:center;padding:16px 16px 0;background:radial-gradient(circle at 50% 30%,#232a3a,#0b0e14)}
.wcard figure.phones img{width:auto;height:100%;border-radius:10px 10px 0 0}
.wcard figure.art{background:var(--a) center 35%/cover no-repeat;filter:saturate(.75) brightness(.8)}
.wcard>div{padding:20px 22px 24px}
.wcard h3{font:400 26px/1.1 var(--serif);margin:10px 0 8px}
.wcard p{color:var(--ink2);font-size:14px;line-height:1.55}
.rail-hud{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:center;align-items:center;gap:16px;font:500 11px/1 var(--sans);letter-spacing:.2em;color:var(--muted)}
.rh-dots{display:flex;gap:7px}.rh-dots i{width:5px;height:5px;border-radius:50%;background:var(--line2);transition:background .3s,transform .3s}
.rh-dots i.on{background:var(--gold2);transform:scale(1.5)}
html.reduce .rail-box{overflow-x:auto}html.reduce .rail{padding:0 var(--pad)}
/* footer guides */
.guides{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 24px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.guides a{font-size:13.5px;color:var(--ink2);text-decoration:none}.guides a:hover{color:var(--gold2)}
.hp{display:none!important}

/* ================= r1 review pass (art + UX) ================= */
.hero>.wrap{width:100%}
.display,.title{margin-left:-.04em}
.price-line{margin-top:18px;font:500 14px/1.5 var(--sans);color:var(--gold2);letter-spacing:.02em}
.display{font-size:clamp(52px,7.6vw,128px)}
/* carousel: full width, centred, soft edges */
.rail-box{margin:0;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%)}
.wcard figure{position:relative}
.wcard figure img,.wcard figure.art{filter:saturate(.62) sepia(.16) contrast(1.05) brightness(.84)}
.wcard figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(12,14,18,.85));pointer-events:none}
/* services: aligned columns + readable over the waterfall */
@media (min-width:1021px){.svc{grid-template-columns:56px minmax(0,1fr) minmax(0,1.25fr) 190px}.svc .from{text-align:right}}
.svc p{color:var(--ink2)}
#services .svc-list{background:linear-gradient(90deg,rgba(8,10,13,.6),rgba(8,10,13,.38));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:var(--r);padding:0 24px}
/* toasts on the page grid */
.toasts{right:max(24px,calc((100% - 1280px)/2 + 72px))}
@media (max-width:1020px) and (min-width:641px){.toasts{top:96px;bottom:auto}}
@media (max-width:640px){.toasts{display:none}}
/* form */
.form{background:rgba(10,12,15,.8);backdrop-filter:blur(28px) saturate(.6);-webkit-backdrop-filter:blur(28px) saturate(.6)}
.form select{appearance:none;-webkit-appearance:none;background:rgba(255,255,255,.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23d9bf8c' fill='none' stroke-width='1.4'/%3E%3C/svg%3E") right 16px center/12px no-repeat;padding-right:40px}
/* footer brand moment + logo rule */
.foot-hero{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-end;padding-bottom:40px;border-bottom:1px solid var(--line);margin-bottom:28px}
.foot-word{font:400 clamp(64px,13vw,210px)/.85 var(--serif);letter-spacing:-.04em}
.foot-word em{color:var(--gold2)}
.guides{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.guides a,.foot a{display:inline-block;padding:10px 0}
.logo-st{padding-left:10px;border-left:1px solid rgba(217,191,140,.5)}
/* readability minimums */
.prow .pr em,.bundle .n{font-size:13.5px}.offer{font-size:14.5px}
/* motion toggle */
.calm{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:rgba(10,12,15,.3);cursor:pointer;display:grid;place-items:center}
.calm span{width:14px;height:14px;border:1.5px solid var(--ink2);border-radius:50%;opacity:.5;position:relative}
.calm span::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--ink2)}
.calm[aria-pressed="true"] span{border-color:var(--gold2);opacity:1}.calm[aria-pressed="true"] span::after{background:var(--gold2)}
/* phones: lighter scrim (waterfall visible), sticky quick bar, swipe carousel */
.mbar{display:none}
@media (max-width:640px){
  .scrim{background:linear-gradient(0deg,rgba(8,10,13,.92) 0%,rgba(8,10,13,.58) 45%,rgba(8,10,13,.1) 75%,rgba(8,10,13,.32) 100%)}
  .display{font-size:clamp(46px,13.5vw,66px);text-shadow:0 2px 30px rgba(0,0,0,.5)}
  .kicker{text-wrap:balance}
  .mbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;display:flex;gap:6px;padding:6px;border-radius:16px;
    background:rgba(10,12,15,.82);border:1px solid var(--line2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateY(140%);transition:transform .4s}
  .mbar.show{transform:none}
  .mbar a{flex:1;min-height:46px;display:grid;place-items:center;border-radius:11px;text-decoration:none;font:500 13.5px/1 var(--sans);color:var(--ink2)}
  .mbar a.go{flex:1.8;background:var(--gold2);color:#17130b}
  .rail-box{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-mask-image:none;mask-image:none;padding-bottom:64px}
  .rail{padding:0 9vw}
  .wcard{scroll-snap-align:center;flex-basis:82vw}
  .footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
}
html.calm-mode .mist{animation:none}
html.calm-mode .reveal{transition:none}

@media (max-width:640px){#services .svc-list{padding:0 14px}.svc .from{grid-column:2/-1;grid-row:3}}
/* engine pass: contrast over bright scenes, lenis lock, coarse-pointer blur cost */
.chapter .text,.facts,.chapter .head,.hero .offer,.hero .lede{text-shadow:0 1px 18px rgba(0,0,0,.65)}
#work .head,#studio .narrow,#chaos .narrow{background:radial-gradient(closest-side,rgba(8,10,13,.55),transparent)}
.facts span,.rh-count,.offer{color:var(--ink2)}
html.lenis.lenis-stopped{overflow:hidden}
@media (pointer:coarse){.case,.plist,.bundle,.faq-list,.form,.wcard,#services .svc-list{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(12,14,18,.85)!important}}

/* "How should we reply?" chips */
.reply-via{border:0;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.reply-via legend{letter-spacing:.14em;text-transform:uppercase;color:#a3a7ad;margin-bottom:10px;width:100%}
.reply-via label{position:relative;display:inline-block;cursor:pointer}
.reply-via input{position:absolute;opacity:0;width:1px;height:1px}
.reply-via span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid rgba(241,239,233,.26);color:#d3d1ca;letter-spacing:.02em;text-transform:none}
.reply-via input:checked+span{background:#ecd8ae;border-color:#ecd8ae;color:#17130b}
.reply-via input:focus-visible+span{outline:2px solid #ecd8ae;outline-offset:2px}
.handle[hidden]{display:none!important}
label em{font-style:normal;text-transform:none;letter-spacing:0;color:#8b95aa;font-weight:400}

.reply-via legend{font-family:inherit;font-size:11.5px;font-weight:500;line-height:1}
.reply-via span{font-family:inherit;font-size:14px;font-weight:500;line-height:1}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ===== r2 (art+UX round A) ===== */
.wcard.side>div{opacity:0;transition:opacity .3s}
.wcard>div{transition:opacity .3s}
.promo-line{margin:-6px 0 20px;font-size:14.5px;color:var(--ink2)}.promo-line b{color:var(--gold2);font-weight:500}
.prow .pr em,.bundle .n{opacity:.8}
.calm::after{content:"Calm";font:500 12px/1 var(--sans);color:var(--ink2);letter-spacing:.06em;margin-left:6px}
@media (min-width:1021px){.calm{width:auto;padding:0 14px;border-radius:999px;grid-auto-flow:column;gap:2px}}
@media (max-width:1020px){.calm::after{content:none}}
html.calm-mode .rail-box{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
html.calm-mode .rail{padding:0 var(--pad)}
html.calm-mode .wcard{transform:none!important;opacity:1!important}html.calm-mode .wcard>div{opacity:1}
.sent{padding:34px 30px;background:rgba(10,12,15,.82);border:1px solid rgba(236,216,174,.45);border-radius:20px}
.sent h3{font:400 clamp(34px,4vw,52px)/1.05 var(--serif);margin:14px 0 12px}
.sent p{color:var(--ink2)}.sent b{color:var(--gold2);font-weight:500}.sent .while{margin-top:14px;font-size:14.5px;color:var(--muted)}
.sent a{color:var(--gold2)}
.legal{display:flex;flex-wrap:wrap;gap:4px 18px}.legal span+span::before{content:"·";margin-right:18px;color:var(--line2)}
@media (max-width:640px){.legal{display:grid;gap:4px}.legal span+span::before{content:none}}
.footer{background:#0a0c0f!important;backdrop-filter:none!important}
.foot-hero{border-bottom:0;position:relative}
.foot-hero::after{content:"";position:absolute;left:var(--pad);right:var(--pad);bottom:0;border-top:1px solid var(--line)}
.mnav .btn{font:500 15px/1 var(--sans)}
@media (max-width:1020px){.toasts{display:none!important}}
@media (min-width:641px) and (max-width:1020px){
  .mbar{position:fixed;left:auto;right:20px;bottom:20px;z-index:40;display:flex;gap:6px;padding:6px;border-radius:16px;width:420px;
    background:rgba(10,12,15,.85);border:1px solid var(--line2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateY(160%);transition:transform .4s}
  .mbar.show{transform:none}
  .mbar a{flex:1;min-height:46px;display:grid;place-items:center;border-radius:11px;text-decoration:none;font:500 13.5px/1 var(--sans);color:var(--ink2)}
  .mbar a.go{flex:1.8;background:var(--gold2);color:#17130b}
}
@media (max-width:640px){
  .scrim{background:linear-gradient(0deg,rgba(8,10,13,.92) 0%,rgba(8,10,13,.7) 55%,rgba(8,10,13,.45) 100%)}
  .num,.kicker{color:#f0dcb0;font-weight:600;text-shadow:0 1px 10px rgba(0,0,0,.9)}
}

/* r3 */
html.past-hero .mist{animation-play-state:paused;opacity:0!important}
.sent-msg{display:none;padding:18px 20px;border:1px solid rgba(236,216,174,.45);border-radius:14px;color:var(--ink);margin-bottom:16px}
.sent-msg:target{display:block}
.foot p a,.legal a{display:inline-block;padding:12px 4px}
.num,.kicker,.tag,.wcard .tag{font-size:12px}
.prow .pr small{font-size:13px}

.form label,.reply-via legend{font-size:12px!important}

/* r5 */
.bundle .badge{font-size:12px}.rh-count{font-size:12px}.foot-tag{font-size:12px}

.logo-st{font-size:12px}
.nextsteps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0 0;padding:0}
.nextsteps li{padding:16px 18px;border:1px solid rgba(241,239,233,.14);border-radius:14px;background:rgba(10,12,15,.55);display:flex;flex-direction:column;gap:4px}
.nextsteps b{font-weight:500;color:#ecd8ae;font-size:15px}.nextsteps span{color:#d3d1ca;font-size:14px}
@media(max-width:760px){.nextsteps{grid-template-columns:1fr}}
.steps{position:relative;isolation:isolate}.steps::before{content:"";position:absolute;inset:-90px -120px -90px;z-index:-1;background:radial-gradient(farthest-side,rgba(8,10,12,.62) 45%,rgba(8,10,12,.3) 75%,transparent 100%);pointer-events:none}
nav.links a{padding-block:8px}
.reply-via label{min-height:32px;display:inline-flex;align-items:center}
[aria-invalid=true],[aria-invalid=true]:focus,[aria-invalid=true]:focus-visible{border-color:#e8836f!important;box-shadow:0 0 0 1px #e8836f!important;outline-color:#e8836f!important}
.calm,.sound,.burger{min-width:44px}
#leadForm input,#leadForm textarea,#leadForm fieldset{scroll-margin-top:110px}
.demo-call{margin:34px 0 0;padding:24px 26px;border:1px solid rgba(236,216,174,.35);border-radius:18px;background:rgba(10,12,15,.72);backdrop-filter:blur(6px);display:grid;gap:14px;max-width:760px}
.demo-call figcaption{display:grid;gap:6px}.demo-call figcaption b{font:400 clamp(24px,2.6vw,32px)/1.15 var(--serif);color:var(--ink);font-weight:400}
.demo-call figcaption span:last-child{color:var(--muted);font-size:14px}
.demo-call audio{width:100%;height:44px;color-scheme:dark}
.demo-call summary{cursor:pointer;color:var(--gold2);font-size:15px;min-height:32px;display:flex;align-items:center}
.demo-call ol{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;color:var(--ink2);font-size:15px;line-height:1.55}.demo-call ol b{color:var(--gold2);font-weight:500}
.logo{padding-block:8px}
/* plain price menu */
.pmenu{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pmenu a{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;height:100%;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:rgba(10,12,15,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.pmenu a:hover{border-color:rgba(236,216,174,.55);transform:translateY(-2px)}
.pm-t{display:grid;gap:5px}.pm-t b{font:400 21px/1.15 var(--serif);font-weight:400}.pm-t small{color:var(--muted);font-size:14px;line-height:1.45}
.pm-p{display:grid;justify-items:end;text-align:right;gap:2px;white-space:nowrap}.pm-p>small{color:var(--muted);font-size:12px}
.pm-p b{font:500 20px/1.1 var(--sans);color:var(--gold2)}.pm-p .pm-mo{color:var(--gold2);font-size:13px}.pm-p em{font-style:normal;color:var(--muted);font-size:12px;margin-top:4px}
.pk-h{font:400 clamp(26px,2.6vw,34px)/1.1 var(--serif);margin:44px 0 0;font-weight:400}
.bundles{grid-template-columns:repeat(4,minmax(0,1fr))}
.allprices{margin-top:28px;border:1px solid var(--line);border-radius:16px;background:rgba(10,12,15,.6);padding:0 22px}
.allprices>summary{cursor:pointer;list-style:none;padding:18px 0;font:500 16px/1.3 var(--sans);color:var(--gold2);min-height:44px}
.allprices>summary::-webkit-details-marker{display:none}.allprices>summary::after{content:" +";}.allprices[open]>summary::after{content:" −"}
.allprices>summary span{color:var(--muted);font-weight:400}
.allprices[open]{padding-bottom:20px}.allp-more{margin-top:16px}.allp-more a{color:var(--gold2)}
@media (max-width:1200px){.bundles{grid-template-columns:repeat(2,minmax(0,1fr))}.pmenu{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bundles,.pmenu{grid-template-columns:1fr}.pmenu a{padding:16px 18px}.pm-t b{font-size:19px}}

/* ===== type system 2026-10-18 (Source Serif 4 + Switzer; 9 roles) ===== */
:root{--ink:#f1efe9;--ink2:#cfccc4;--muted:#9a978f;--gold:#e2c28a;--gold2:#e8c48d}
h1,h2,h3,.display,.title{font-optical-sizing:auto;text-wrap:balance}
p,li{text-wrap:pretty}
.display{font:400 clamp(44px,6.4vw,96px)/1.03 var(--serif)!important;letter-spacing:-.015em}
.display em{font-style:italic;color:var(--gold2)}
.title{font:400 clamp(34px,4.2vw,56px)/1.08 var(--serif);letter-spacing:-.01em;max-width:20ch}
.title em{font-style:normal;color:inherit}
#contact .title em{font-style:italic;color:var(--gold2)}
.kicker,.num{font:500 11px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.kicker::after,.num::after{content:"";display:block;width:24px;height:1px;background:currentColor;margin-top:12px;opacity:.9}
.tag,.wcard .tag{font:500 11px/1 var(--sans)!important;letter-spacing:.24em;color:var(--gold)}
.lede{font:300 clamp(18px,1.4vw,20px)/1.6 var(--sans);letter-spacing:.005em;color:var(--ink2);max-width:46ch}
.text,.svc p,.wcard p,.steps p,.faq p,.bundle li{font-weight:400;font-size:16.5px;line-height:1.65;color:var(--ink2)}
.svc h3,.wcard h3,.steps h3,.bundle h3,.pk-h,.demo-call figcaption b{font-family:var(--serif);font-weight:400;letter-spacing:-.005em}
.svc h3{font-size:clamp(22px,2vw,28px);line-height:1.2}
.steps h3,.wcard h3{font-size:clamp(22px,1.9vw,26px);line-height:1.2}
.bundle h3{font-size:28px;line-height:1.15}
.faq summary{font-family:var(--serif);font-weight:400;font-size:clamp(19px,1.6vw,22px);line-height:1.3}
.svc .i,.steps span{font:500 11px/1 var(--sans)!important;font-style:normal!important;letter-spacing:.2em;color:var(--muted)}
.bundle .p,.bundle .p b,.pm-p b,.prow .pr b{font-family:var(--serif);font-weight:400!important;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.bundle .p{font-size:32px}.pm-p b{font-size:28px;color:var(--ink)}
.price-line,.offer{font-weight:400;letter-spacing:.01em}
@media (max-width:640px){.text,.svc p,.wcard p,.steps p,.faq p{font-size:16px}.bundle .p{font-size:28px}.pm-p b{font-size:24px}}
/* price menu: price on its own line under the title (no squeezed columns) */
.pmenu a{flex-direction:column;justify-content:space-between;gap:16px}
.pm-p{display:flex!important;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;text-align:left;gap:4px 8px;white-space:normal}
.pm-p em{flex-basis:100%;margin-top:2px}
.pm-t b{font-size:22px}
