@import url("../ds/colors.css");@import url("../ds/typography.css");@import url("../ds/spacing.css");@import url("../ds/elevation.css");@import url("../ds/motion.css");@import url("../ds/base.css");

/* ---------- primitives ---------- */
html{scroll-behavior:smooth}
body{overflow-x:hidden;background:var(--surface-page)}
.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-narrow{width:100%;max-width:var(--container-narrow);margin-inline:auto;padding-inline:var(--gutter)}
section{position:relative}
.sec{padding-block:var(--section-y)}
.sec-tight{padding-block:var(--section-y-tight)}
.label{font-family:var(--font-mono);font-size:var(--type-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--space-3)}
.label::before{content:"";width:28px;height:1px;background:var(--accent);flex:none}
.label-plain{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}
.display{font-family:var(--font-display);font-weight:var(--fw-black);line-height:var(--lh-display);letter-spacing:var(--ls-display);text-transform:uppercase;color:var(--text-primary);text-wrap:balance}
.d1{font-size:var(--type-display-1)}.d2{font-size:var(--type-display-2)}.d3{font-size:var(--type-display-3)}
.lead{font-size:var(--type-body-lg);line-height:var(--lh-body-tight);color:var(--text-body);max-width:var(--measure)}
.muted{color:var(--text-muted)}
.gold{color:var(--text-accent)}
.rule{height:1px;background:var(--line-hairline)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--grid-gap);align-items:end}
@media (max-width:900px){.sec-head{grid-template-columns:1fr;gap:var(--space-8)}}

/* ---------- buttons (from DS Button) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--type-label);letter-spacing:var(--ls-label);text-transform:uppercase;font-weight:var(--fw-medium);line-height:1;border:1px solid transparent;border-radius:var(--radius-control);cursor:pointer;text-decoration:none;white-space:nowrap;padding:15px 26px;position:relative;isolation:isolate;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.btn-lg{padding:20px 34px}
.btn-sm{padding:10px 16px;font-size:var(--type-label-sm)}
.btn-primary{background:var(--accent);color:var(--text-on-gold);border-color:var(--vx-gold-600);box-shadow:var(--shadow-inset-gold),var(--shadow-md)}
.btn-primary:hover{background:var(--accent-hover);color:var(--text-on-gold);box-shadow:var(--shadow-inset-gold),var(--shadow-lg);transform:translateY(-2px)}
.btn-secondary{background:var(--surface-steel);color:var(--text-primary);border-color:var(--line-steel);box-shadow:var(--shadow-inset-top),var(--shadow-sm)}
.btn-secondary:hover{background:var(--vx-steel-600);border-color:var(--vx-steel-500);color:var(--text-primary);transform:translateY(-2px)}
.btn-outline{background:transparent;color:var(--text-primary);border-color:var(--line-strong)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.btn-light{background:var(--surface-light);color:var(--text-on-light);border-color:var(--line-on-light)}
.btn-light:hover{background:var(--vx-white);color:var(--text-on-light);transform:translateY(-2px)}
.btn:active{transform:scale(var(--press-scale))}
.btn .arw{transition:transform var(--dur-fast) var(--ease-out)}
.btn:hover .arw{transform:translateX(4px)}
.btn-mag{will-change:transform}
.link-u{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--type-label);letter-spacing:var(--ls-label);text-transform:uppercase;display:inline-flex;gap:var(--space-3);align-items:center;padding-block:4px;position:relative}
.link-u::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-out)}
.link-u:hover{color:var(--accent)}.link-u:hover::after{transform:scaleX(1)}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(var(--reveal-shift));transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);transition-delay:var(--d,0ms)}
[data-reveal].in{opacity:1;transform:none}
.rv-line{display:block;overflow:hidden}
.rv-line>span{display:block;transform:translateY(105%);transition:transform var(--dur-reveal) var(--ease-out);transition-delay:var(--d,0ms)}
.in>.rv-line>span,.rv-line.in>span{transform:none}

/* ---------- progress + header ---------- */
#progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--accent);z-index:60}
.header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),backdrop-filter var(--dur-base) var(--ease-out)}
.header::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--line-hairline);opacity:0;transition:opacity var(--dur-base) var(--ease-out)}
.header.scrolled{background:var(--surface-header);backdrop-filter:var(--blur-header);-webkit-backdrop-filter:var(--blur-header)}
.header.scrolled::after{opacity:1}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);height:88px;transition:height var(--dur-base) var(--ease-out)}
.header.scrolled .header-in{height:70px}
.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:var(--fw-black);font-size:1.0625rem;letter-spacing:-0.01em;text-transform:uppercase;color:var(--text-primary)}
.logo:hover{color:var(--text-primary)}
.logo-mark{width:24px;height:24px;flex:none;position:relative;border:1px solid var(--line-gold);border-radius:var(--radius-xs)}
.logo-mark::before,.logo-mark::after{content:"";position:absolute;background:var(--accent)}
.logo-mark::before{left:5px;top:11px;width:12px;height:2px}
.logo-mark::after{left:10px;top:6px;width:2px;height:12px}
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,34px)}
.nav a{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-body);position:relative;padding-block:6px}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease-out)}
.nav a:hover,.nav a[aria-current=true]{color:var(--accent)}
.nav a:hover::after,.nav a[aria-current=true]::after{transform:scaleX(1)}
.header-cta{display:flex;align-items:center;gap:var(--space-4)}
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line-hairline);border-radius:var(--radius-control);cursor:pointer}
.burger span{display:block;width:18px;height:1px;background:var(--text-primary);position:relative;transition:transform var(--dur-fast) var(--ease-out)}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:1px;background:var(--text-primary);transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-micro)}
.burger span::before{top:-6px}.burger span::after{top:6px}
.burger[aria-expanded=true] span{transform:rotate(45deg)}
.burger[aria-expanded=true] span::before{transform:translateY(6px);opacity:0}
.burger[aria-expanded=true] span::after{transform:translateY(-6px) rotate(-90deg)}
.mnav{position:fixed;inset:0;z-index:45;background:var(--vx-midnight-900);display:flex;flex-direction:column;justify-content:center;gap:var(--space-4);padding:120px var(--gutter) var(--space-12);opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base)}
.mnav.open{opacity:1;visibility:visible;transform:none}
.mnav a{font-family:var(--font-display);font-weight:var(--fw-bold);text-transform:uppercase;font-size:clamp(1.75rem,9vw,2.75rem);line-height:1.05;letter-spacing:var(--ls-heading);color:var(--text-primary);border-bottom:var(--border-hairline);padding-block:var(--space-4)}
.mnav a:hover{color:var(--accent)}
.mnav .btn{margin-top:var(--space-8)}
@media (max-width:1080px){.nav,.header-cta .btn{display:none}.burger{display:flex}}

/* ---------- hero ---------- */
.hero{padding-top:clamp(132px,15vh,190px);padding-bottom:var(--section-y-tight);overflow:hidden;background:radial-gradient(120% 80% at 50% 0,var(--vx-midnight-700) 0%,var(--vx-midnight-800) 45%,var(--vx-midnight-900) 100%)}
.hero-h1{font-size:clamp(2.5rem,8.2vw,8rem);margin-top:var(--space-6)}
.hero-foot{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,64px);align-items:start;margin-top:clamp(32px,4vw,64px)}
.hero-side{display:flex;flex-direction:column;gap:var(--space-8)}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4)}
.hero-meta{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-5);border-top:var(--border-hairline)}
.hero-meta span{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
@media (max-width:900px){.hero-foot{grid-template-columns:1fr;gap:var(--space-8)}.hero-meta{flex-direction:row;flex-wrap:wrap;gap:var(--space-2) var(--space-5);order:2}.hero-side{order:1}}

/* device composition */
.stage{position:relative;margin-top:clamp(48px,7vw,104px)}
.stage::before{content:"";position:absolute;left:50%;top:-6%;width:min(1100px,120%);aspect-ratio:1/.7;transform:translateX(-50%);background:radial-gradient(50% 50% at 50% 50%,color-mix(in oklab,var(--vx-steel-500) 42%,transparent) 0%,transparent 70%);filter:blur(30px);pointer-events:none}
.device{position:relative;max-width:1080px;margin-inline:auto;z-index:1}
.lid{background:linear-gradient(180deg,#26282b,#131416);padding:12px 12px 16px;border-radius:14px 14px 6px 6px;box-shadow:var(--shadow-device),inset 0 1px 0 rgba(255,255,255,.14)}
.screen{position:relative;aspect-ratio:16/10;background:var(--vx-midnight-900);border-radius:var(--radius-xs);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.screen::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.07) 0 18%,transparent 42%);pointer-events:none}
.base{height:16px;margin-inline:-4.5%;background:var(--grad-metal);border-radius:0 0 16px 16px;box-shadow:0 26px 44px -22px rgba(0,0,0,.9)}
.base::after{content:"";display:block;width:16%;height:5px;margin:0 auto;background:rgba(0,0,0,.45);border-radius:0 0 6px 6px}
.deskglow{position:absolute;left:50%;bottom:-90px;transform:translateX(-50%);width:min(820px,90%);height:180px;background:radial-gradient(60% 50% at 50% 0,color-mix(in oklab,var(--vx-gold-500) 22%,transparent),transparent 72%);filter:blur(26px);pointer-events:none}

/* mini site inside screen */
.ms{position:absolute;left:0;right:0;top:0;height:134%;display:flex;flex-direction:column;font-size:clamp(6px,.72vw,9px);color:var(--text-body);animation:ms-scroll 18s var(--ease-in-out) infinite alternate}
@keyframes ms-scroll{0%,16%{transform:translateY(0)}46%,60%{transform:translateY(-12%)}86%,100%{transform:translateY(-25.5%)}}
.ms-bar{display:flex;align-items:center;justify-content:space-between;padding:1.4% 2.4%;border-bottom:1px solid rgba(255,255,255,.07);flex:none}
.ms-brand{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;color:var(--text-primary);font-size:1.5em}
.ms-nav{display:flex;gap:1.6em;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}
.ms-nav i:first-child{color:var(--accent);font-style:normal}
.ms-nav i{font-style:normal}
.ms-pill{padding:.5em 1.1em;background:var(--accent);color:var(--text-on-gold);border-radius:2px;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase}
.ms-body{padding:3% 2.4%;display:grid;gap:2.4%;flex:1;align-content:space-between}
.ms-h{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:-.03em;line-height:.92;font-size:4.6em;color:var(--text-primary)}
.ms-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4%}
.ms-kpi{border:1px solid rgba(255,255,255,.08);background:var(--surface-card-steel);padding:1.1em .9em;border-radius:2px}
.ms-kpi b{display:block;font-family:var(--font-mono);font-size:2em;color:var(--accent);letter-spacing:-.02em}
.ms-kpi em{font-style:normal;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-size:.9em}
.ms-panels{display:grid;grid-template-columns:1.5fr 1fr;gap:1.4%}
.ms-chart{border:1px solid rgba(255,255,255,.08);background:var(--surface-card);padding:1.2em;display:flex;align-items:flex-end;gap:.5em;height:11em;border-radius:2px}
.ms-chart i{flex:1;display:block;background:var(--vx-steel-600);border-radius:1px;animation:ms-grow 2.4s var(--ease-out) both}
.ms-chart i:nth-child(7),.ms-chart i:nth-child(8){background:var(--accent)}
@keyframes ms-grow{from{height:6%}}
.ms-flow{border:1px solid rgba(255,255,255,.08);background:var(--surface-card);padding:1.1em;display:grid;gap:.55em;align-content:start;border-radius:2px;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.92em}
.ms-flow i{font-style:normal;display:flex;justify-content:space-between;padding:.5em .7em;background:var(--surface-inset);color:var(--text-body)}
.ms-flow i b{color:var(--accent);font-weight:500}
.ms-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:1.2%}
.ms-strip i{display:block;height:4.4em;background:linear-gradient(160deg,var(--vx-steel-700),var(--vx-steel-900));border:1px solid rgba(255,255,255,.06);border-radius:2px}
.ms-strip i:nth-child(3){border-color:var(--line-gold)}

/* ---------- statement / trust ---------- */
.statement{background:var(--grad-midnight-fade)}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line-hairline);border:var(--border-hairline);margin-top:clamp(40px,6vw,80px)}
.stat{background:var(--surface-page);padding:clamp(20px,3vw,36px)}
.stat b{display:block;font-family:var(--font-mono);font-size:var(--type-numeral-xl);font-weight:500;line-height:1;letter-spacing:var(--ls-numeral);color:var(--text-primary)}
.stat b i{font-style:normal;color:var(--accent)}
.stat p{margin-top:var(--space-4);font-size:var(--type-caption);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
@media (max-width:820px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- services ---------- */
.services{background:var(--surface-sunken)}
.svc-list{margin-top:clamp(40px,6vw,72px);border-top:var(--border-hairline)}
.svc{border-bottom:var(--border-hairline);position:relative;background:transparent;transition:background var(--dur-base) var(--ease-out)}
.svc:hover,.svc.open{background:var(--surface-card-steel)}
.svc-head{display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,.9fr) 44px;gap:var(--space-6);align-items:center;padding-block:clamp(22px,2.6vw,34px);width:100%;text-align:left;background:none;border:0;cursor:pointer;padding-inline:clamp(12px,2vw,28px)}
.svc-num{font-family:var(--font-mono);font-size:var(--type-label);letter-spacing:.1em;color:var(--text-muted);transition:color var(--dur-fast)}
.svc:hover .svc-num,.svc.open .svc-num{color:var(--accent)}
.svc-title{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;font-size:clamp(1.5rem,3.4vw,3rem);line-height:1;letter-spacing:var(--ls-display);color:var(--text-primary);transition:transform var(--dur-base) var(--ease-out)}
.svc:hover .svc-title{transform:translateX(10px)}
.svc-sub{color:var(--text-muted);font-size:var(--type-body-sm);line-height:var(--lh-body-tight)}
.svc-plus{width:44px;height:44px;border:1px solid var(--line-hairline);border-radius:var(--radius-pill);position:relative;justify-self:end;flex:none;transition:border-color var(--dur-fast),background var(--dur-fast)}
.svc-plus::before,.svc-plus::after{content:"";position:absolute;left:50%;top:50%;background:var(--text-primary);transition:transform var(--dur-base) var(--ease-out),background var(--dur-fast)}
.svc-plus::before{width:13px;height:1px;transform:translate(-50%,-50%)}
.svc-plus::after{width:1px;height:13px;transform:translate(-50%,-50%)}
.svc.open .svc-plus{border-color:var(--accent)}
.svc.open .svc-plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.svc.open .svc-plus::before,.svc.open .svc-plus::after{background:var(--accent)}
.svc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-in-out)}
.svc.open .svc-panel{grid-template-rows:1fr}
.svc-panel>div{overflow:hidden}
.svc-inner{display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,.9fr);gap:clamp(24px,3vw,48px);padding:0 clamp(12px,2vw,28px) clamp(30px,3.2vw,48px)}
.svc-caps{grid-column:2;list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-3);align-content:start}
.svc-caps li{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--text-body);border:var(--border-hairline);border-radius:var(--radius-pill);padding:10px 18px;background:var(--surface-inset);white-space:nowrap}
.svc-media{grid-column:3;aspect-ratio:16/10;border:var(--border-hairline);overflow:hidden}
@media (max-width:900px){.svc-head{grid-template-columns:56px minmax(0,1fr) 40px;align-items:start}.svc-sub{grid-column:2;grid-row:2;margin-top:8px}.svc-inner{grid-template-columns:1fr;gap:var(--space-6)}.svc-caps,.svc-media{grid-column:1}.svc:hover .svc-title{transform:none}}
@media (max-width:560px){.svc-caps li{white-space:normal;padding:9px 15px}}

/* ---------- process (light section) ---------- */
.process{background:var(--surface-light);color:var(--text-on-light)}
.process h2,.process h3{color:var(--text-on-light)}
.process .label{color:var(--text-on-light-muted)}
.process .lead{color:var(--text-on-light-muted)}
.steps{margin-top:clamp(40px,6vw,80px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--grid-gap);position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:26px;height:1px;background:var(--line-on-light)}
.steps::after{content:"";position:absolute;left:0;top:26px;height:1px;background:var(--accent);width:var(--pw,0%);transition:width 1.2s var(--ease-out)}
.step{position:relative;padding-top:var(--space-16)}
.step::before{content:"";position:absolute;left:0;top:21px;width:11px;height:11px;background:var(--surface-light);border:1px solid var(--vx-titanium-900);border-radius:var(--radius-pill);transition:background var(--dur-base),border-color var(--dur-base)}
.step.lit::before{background:var(--accent);border-color:var(--accent)}
.step-num{position:absolute;top:0;left:0;font-family:var(--font-mono);font-size:var(--type-label);letter-spacing:.1em;color:var(--text-on-light-muted)}
.step.lit .step-num{color:var(--vx-gold-700)}
.step h3{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;font-size:clamp(1.125rem,1.6vw,1.5rem);letter-spacing:-.02em}
.step p{margin-top:var(--space-3);font-size:var(--type-body-sm);color:var(--text-on-light-muted);line-height:var(--lh-body-tight)}
@media (max-width:900px){.steps{grid-template-columns:1fr;gap:var(--space-8)}.steps::before{left:5px;right:auto;top:0;bottom:0;width:1px;height:auto}.steps::after{display:none}.step{padding:0 0 0 var(--space-10)}.step::before{top:6px}.step-num{position:static;display:block;margin-bottom:var(--space-2)}}

/* ---------- advantage ---------- */
.adv{background:var(--grad-steel-depth)}
.adv-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:start}
.adv-list{display:grid;gap:1px;background:var(--line-hairline);border-block:var(--border-hairline)}
.adv-item{background:color-mix(in oklab,var(--vx-steel-900) 70%,transparent);padding:var(--space-6) var(--space-6) var(--space-6) 0;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:baseline;transition:background var(--dur-fast),padding-left var(--dur-base) var(--ease-out)}
.adv-item:hover{background:var(--vx-steel-800);padding-left:var(--space-4)}
.adv-item i{font-style:normal;font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:.1em;color:var(--accent)}
.adv-item h3{font-size:var(--type-h4);font-weight:var(--fw-semibold);text-transform:none;letter-spacing:-.01em}
.adv-item p{grid-column:2;margin-top:var(--space-2);font-size:var(--type-body-sm);color:var(--text-body);line-height:var(--lh-body-tight)}
@media (max-width:900px){.adv-grid{grid-template-columns:1fr}}

/* ---------- work ---------- */
.work-grid{margin-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,32px)}
.case{display:flex;flex-direction:column}.case-body{flex:1}
@media (max-width:1100px){.work-grid .case-row{grid-template-columns:1fr;gap:var(--space-1)}}
.case{border:var(--border-hairline);background:var(--surface-card);overflow:hidden;transition:transform var(--dur-base) var(--ease-out),border-color var(--dur-base),box-shadow var(--dur-base)}
.case:hover{transform:translateY(var(--hover-lift));border-color:var(--line-strong);box-shadow:var(--shadow-lg)}
.case-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--vx-midnight-900)}
.case-media image-slot{transition:transform var(--dur-slow) var(--ease-out)}
.case:hover .case-media image-slot{transform:scale(var(--media-hover-scale))}
.case-tag{position:absolute;left:0;top:0;z-index:2;font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase;background:var(--vx-midnight-900);color:var(--accent);padding:9px 14px;border-right:var(--border-hairline);border-bottom:var(--border-hairline);pointer-events:none}
.case-body{padding:clamp(20px,2.4vw,32px);display:grid;gap:var(--space-5)}
.case-body h3{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;font-size:clamp(1.25rem,2vw,1.75rem);letter-spacing:-.025em}
.case-rows{display:grid;gap:var(--space-4);border-top:var(--border-hairline);padding-top:var(--space-5)}
.case-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--space-4)}
.case-row dt{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.case-row dd{margin:0;font-size:var(--type-body-sm);color:var(--text-body);line-height:var(--lh-body-tight)}
.case-row dd.res{color:var(--text-primary)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--text-body);border:var(--border-hairline);border-radius:var(--radius-pill);padding:5px 11px;white-space:nowrap}
@media (max-width:760px){.work-grid{grid-template-columns:1fr}}
@media (max-width:900px){.case-row{grid-template-columns:1fr;gap:var(--space-1)}}

/* ---------- engine ---------- */
.engine{background:var(--surface-sunken);overflow:hidden}
.engine-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,80px);align-items:center}
.chain{display:grid;gap:0;border:var(--border-hairline);background:var(--surface-card-steel)}
.node{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:clamp(14px,1.8vw,22px) clamp(16px,2vw,26px);border-bottom:var(--border-hairline);position:relative;transition:background var(--dur-base) var(--ease-out)}
.node:last-child{border-bottom:0}
.node.hot{background:var(--vx-steel-700)}
.node i{font-style:normal;font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:.12em;color:var(--text-muted)}
.node.hot i{color:var(--accent)}
.node b{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;font-size:clamp(1rem,1.7vw,1.375rem);letter-spacing:-.02em;color:var(--text-primary)}
.node em{font-style:normal;font-size:var(--type-caption);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-align:right}
.node::after{content:"";position:absolute;left:calc(64px + clamp(16px,2vw,26px) - 21px);bottom:-5px;width:9px;height:9px;border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);transform:rotate(45deg);background:var(--surface-card-steel);z-index:1}
.node:last-child::after{display:none}
.node.hot::after{border-color:var(--accent)}
.engine-note{display:grid;gap:var(--space-6)}
@media (max-width:900px){.engine-grid{grid-template-columns:1fr}.node em{display:none}}

/* ---------- final cta ---------- */
.cta{background:var(--vx-midnight-900);position:relative;overflow:hidden;text-align:center}
.cta::before{content:"";position:absolute;left:50%;top:-30%;width:min(1200px,140%);aspect-ratio:1/.6;transform:translateX(-50%);background:radial-gradient(50% 50% at 50% 50%,color-mix(in oklab,var(--vx-gold-500) 13%,transparent),transparent 70%);pointer-events:none}
.cta .wrap-narrow{position:relative}
.cta-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center;margin-top:clamp(32px,4vw,48px)}
.cta .lead{margin-inline:auto;text-align:center;max-width:56ch}

/* ---------- footer ---------- */
.footer{background:var(--surface-page);border-top:var(--border-hairline);padding-top:clamp(56px,7vw,104px);padding-bottom:var(--space-10)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.foot-brand p{margin-top:var(--space-4);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--type-caption);letter-spacing:.14em;text-transform:uppercase}
.foot-col h3{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);font-weight:400}
.foot-col ul{margin-top:var(--space-5);display:grid;gap:var(--space-3)}
.foot-col a,.foot-col li{color:var(--text-body);font-size:var(--type-body-sm)}
.foot-col a:hover{color:var(--accent)}
.foot-bottom{margin-top:clamp(40px,5vw,72px);padding-top:var(--space-6);border-top:var(--border-hairline);display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;align-items:center}
.foot-bottom p,.foot-bottom a{font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.socials{display:flex;gap:var(--space-5)}
@media (max-width:900px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ---------- misc ---------- */
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gutter);top:12px;z-index:70;background:var(--accent);color:var(--text-on-gold);padding:10px 16px;font-family:var(--font-mono);font-size:var(--type-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase}
image-slot{width:100%;height:100%}
@media (max-width:420px){.chips span,.svc-caps li{white-space:normal}}

/* ---------- phone / whatsapp actions ---------- */
.btn-ico{width:1.05em;height:1.05em;flex:0 0 auto;margin-right:-2px}
.btn-wa{background:#25D366;color:#07270f;border:1px solid #25D366}
.btn-wa:hover{background:#1ebe5a;border-color:#1ebe5a;color:#07270f}
.btn-ghost-wa{background:transparent;color:inherit;border:1px solid color-mix(in oklch,currentColor 32%,transparent)}
.btn-ghost-wa:hover{border-color:#25D366;color:#25D366}
.hdr-call{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;letter-spacing:-.01em;text-decoration:none;color:inherit;white-space:nowrap}
.hdr-call .btn-ico{width:15px;height:15px}
.hdr-call:hover{opacity:.7}
@media (max-width:900px){.hdr-call span{display:none}}
.cmeta b a{color:inherit;text-decoration:none}
.cmeta b a:hover{text-decoration:underline}

.hero-direct{margin-top:var(--space-5);font-size:14px;letter-spacing:-.01em;color:color-mix(in oklch,currentColor 62%,transparent);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hero-direct a{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in oklch,currentColor 28%,transparent);padding-bottom:1px}
.hero-direct a:hover{color:inherit;filter:brightness(1.35);border-bottom-color:currentColor}
.wa-ico{width:14px;height:14px;flex:0 0 auto}

/* ---------- service visuals (collage) ---------- */
.svc-inner{grid-template-columns:88px minmax(0,.9fr) minmax(0,1.1fr);align-items:center}
.svc-vis{grid-column:3;position:relative;aspect-ratio:16/11;width:100%;isolation:isolate}
.v-shot{position:absolute;margin:0;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 24px 60px -20px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.06)}
.v-shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}
.v-main{right:0;top:6%;width:76%;aspect-ratio:16/10.5}
.v-sub{left:0;bottom:4%;width:44%;aspect-ratio:4/3;z-index:2}
.v-kpi{position:absolute;z-index:3;background:var(--surface-light,#f4f5f5);color:var(--text-on-light,#0e1113);border-radius:8px;padding:10px 14px;display:grid;gap:2px;box-shadow:0 14px 30px -12px rgba(0,0,0,.55);min-width:0}
.v-kpi em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.7;white-space:nowrap}
.v-kpi b{font-family:var(--font-display);font-weight:var(--fw-black);font-size:clamp(18px,2vw,28px);line-height:1;letter-spacing:-.01em}
.v-kpi small{font-size:.55em;opacity:.55;font-weight:600}
.v-kpi.up b{color:oklch(0.55 0.15 150)}
.v-kpi.k1{right:-2%;top:-2%}
.v-kpi.k2{right:6%;top:36%}
.v-kpi.k3{right:4%;bottom:0}
.v-tag{position:absolute;z-index:3;background:var(--accent);color:var(--text-on-accent,#111);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:6px 12px;border-radius:var(--radius-pill)}
.v-tag.t1{left:48%;bottom:10%}
.v-icos{position:absolute;z-index:3;display:flex;gap:8px}
.v-icos.i1{left:2%;top:4%}
.v-ico{width:46px;height:46px;border-radius:10px;background:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -10px rgba(0,0,0,.6)}
.v-ico img{width:62%;height:62%;object-fit:contain}
.v-board{position:absolute;inset:6% 22% 10% 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.4vw,18px);align-content:center}
.v-ico.lg{width:auto;height:auto;aspect-ratio:1;border-radius:14px}
.v-ico.lg img{width:46%;height:46%}
.svc-vis .v-kpi,.svc-vis .v-tag,.svc-vis .v-icos{transition:transform .5s var(--ease-out)}
.svc.open .svc-vis .v-kpi.k1{animation:vFloat 6s ease-in-out infinite}
.svc.open .svc-vis .v-kpi.k3{animation:vFloat 7s ease-in-out -2s infinite}
@keyframes vFloat{50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.svc-vis *{animation:none!important}}
@media (max-width:900px){.svc-inner{grid-template-columns:1fr}.svc-vis{grid-column:1;margin-top:var(--space-4)}}
@media (max-width:560px){.svc-vis{aspect-ratio:1/1}.v-main{width:88%;top:12%}.v-sub{width:52%;bottom:6%}.v-kpi{padding:7px 10px}.v-kpi em{font-size:9px}.v-kpi b{font-size:18px}.v-kpi.k2{display:none}.v-ico{width:38px;height:38px}.v-tag{font-size:10px;padding:5px 10px}.v-tag.t1{left:auto;right:2%;bottom:24%}.v-board{inset:4% 0 22% 0}}
