/* Impulsbrand — Technology + Growth Solutions */
:root{
  --ink:#1D1D1F; --ink-2:#3A3A40; --muted:#5F5F66; --muted-2:#6E6E73; --faint:#8A8A90;
  --line:#ECECEF; --line-2:#E4E4E8; --line-3:#F0F0F3;
  --bg:#FFFFFF; --bg-2:#F5F5F7; --bg-3:#FAFAFB;
  --blue:#0D9AEF; --blue-ink:#0873B8; --blue-deep:#0B5A8F; --blue-soft:#E7F5FE;
  --purple:#8A2BE2; --purple-ink:#6A1FB0; --purple-soft:#F3EAFC;
  --orange:#FF7A00; --orange-ink:#1A0E00;
  --green-ink:#0E6B3B; --green-soft:#E8F6EE;
  --display:'Inter Tight',system-ui,-apple-system,sans-serif;
  --body:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5}
img{max-width:100%}
a{color:var(--blue-ink);text-decoration:none}
a:hover{color:var(--blue-deep)}
h1,h2,h3{font-family:var(--display);font-weight:600;margin:0}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}

/* Type helpers */
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-ink)}
.eyebrow.purple{color:var(--purple)}
.h-section{font-size:clamp(36px,4.6vw,64px);line-height:1.02;letter-spacing:-.04em;margin-top:16px;max-width:820px}
.lead{font-size:18px;line-height:1.55;color:var(--muted)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;font-size:16px;padding:16px 26px;border-radius:999px;min-height:48px;cursor:pointer;border:0;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn-primary{background:var(--orange);color:var(--orange-ink)}
.btn-primary:hover{color:var(--orange-ink);transform:translateY(-1px);box-shadow:0 8px 24px rgba(255,122,0,.28)}
.btn-ghost{background:transparent;color:var(--ink);font-weight:500;border:1px solid #D9D9DE}
.btn-ghost:hover{color:var(--ink);background:#F0F0F3}
.more{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:16px;min-height:44px}
.more .arr{transition:transform .2s ease}
.more:hover .arr{transform:translateX(4px)}

/* Nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--line)}
.nav-in{max-width:var(--wrap);margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;min-height:44px}
.brand img{height:24px;width:auto;display:block}
.nav-links{display:flex;gap:28px;font-size:14px}
.nav-links a{color:var(--ink)}
.nav-links a:hover{color:var(--blue-ink)}
.nav-cta{background:var(--ink);color:#fff;font-size:14px;font-weight:500;padding:10px 18px;border-radius:999px}
.nav-cta:hover{color:#fff;opacity:.88}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;border-radius:12px;cursor:pointer;color:var(--ink);align-items:center;justify-content:center}
@media (max-width:900px){
  .nav-toggle{display:inline-flex}
  .nav-cta{display:none}
  .nav-links{position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--line);padding:8px 24px 20px;display:none}
  .nav-links a{padding:14px 0;font-size:17px;border-bottom:1px solid var(--line-3)}
  .nav.open .nav-links{display:flex}
}

/* Sections */
section{padding:120px 24px}
.alt{background:var(--bg-2)}
@media (max-width:700px){section{padding:88px 20px}}

/* Hero */
.hero{padding-top:96px;padding-bottom:72px}
.hero-grid{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.hero-copy{flex:1 1 460px;min-width:0}
.pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-2);border-radius:999px;padding:6px 12px}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--blue);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(13,154,239,.35)}50%{box-shadow:0 0 0 8px rgba(13,154,239,0)}}
.hero h1{font-size:clamp(44px,6.4vw,88px);line-height:.98;letter-spacing:-.045em;margin-top:28px}
.hero .sub{font-size:clamp(18px,1.6vw,21px);line-height:1.5;color:var(--muted);margin-top:28px;max-width:540px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px}
.hero-visual{flex:1 1 480px;min-width:0}
.flow-box{background:var(--bg-2);border-radius:28px;padding:28px;border:1px solid var(--line)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px;width:fit-content;max-width:100%}
.tab{font:inherit;font-size:13px;font-weight:500;border:0;cursor:pointer;padding:9px 14px;border-radius:999px;background:transparent;color:var(--muted);min-height:36px;transition:background .25s ease,color .25s ease}
.tab[aria-selected="true"]{background:var(--ink);color:#fff}
.flow-card{background:#fff;border-radius:20px;border:1px solid var(--line);margin-top:20px;padding:32px 24px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.flow-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.node{flex:0 0 auto;text-align:center;width:104px}
.node-ic{width:56px;height:56px;margin:0 auto;border-radius:16px;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;background:var(--bg-3)}
.node-t{font-size:13px;font-weight:600;margin-top:10px}
.node-s{font-size:11px;color:var(--muted-2);margin-top:2px}
.node.core{width:120px}
.node.core .node-ic{width:72px;height:72px;border-radius:20px;background:var(--blue);border:0;box-shadow:0 10px 30px rgba(13,154,239,.35)}
.node.core .node-t{font-size:14px;font-weight:700;font-family:var(--display)}
.node.core .node-s{color:var(--blue-ink);font-weight:500}
.wire{flex:1 1 auto;position:relative;height:2px;background:var(--line-2);margin-bottom:36px;min-width:24px}
.wire i{position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(13,154,239,.18);animation:travel 1.8s cubic-bezier(.5,0,.5,1) infinite}
.wire i+i{animation-delay:.9s}
@keyframes travel{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:100%;opacity:0}}
.log{border-top:1px solid var(--line-3);margin-top:8px;padding-top:18px;display:flex;flex-direction:column;gap:10px;font-family:var(--mono);font-size:12px}
.log div{display:flex;align-items:center;gap:10px;color:var(--ink-2);animation:fadeUp .45s cubic-bezier(.2,.7,.2,1) both}
.log div:nth-child(2){animation-delay:.12s}.log div:nth-child(3){animation-delay:.24s}
.log .ck{width:16px;height:16px;border-radius:50%;background:var(--blue-soft);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.log .t{flex:1 1 auto;min-width:0}
.log .tm{color:var(--faint)}
.flow-note{font-size:13px;color:var(--muted);margin:16px 4px 0}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.swap{animation:fadeUp .45s cubic-bezier(.2,.7,.2,1) both}
@media (max-width:520px){.flow-box{padding:16px;border-radius:22px}.node{width:72px}.node.core{width:88px}.node.core .node-ic{width:60px;height:60px}.node-t{font-size:12px}.flow-card{padding:24px 12px}.wire{min-width:12px}}

.stats{display:flex;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:72px}
.stat{flex:1 1 240px;padding:28px 24px 0 0}
.stat b{display:block;font-family:var(--display);font-weight:600;font-size:40px;letter-spacing:-.03em}
.stat span{font-size:15px;color:var(--muted)}

/* Proof */
.proof{padding-top:40px;padding-bottom:96px}
.proof h2{font-family:var(--body);font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center}
.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-top:32px}
.logos>div{background:#fff;height:120px;display:flex;align-items:center;justify-content:center;padding:20px}
.logos img{object-fit:contain;max-width:70%;filter:grayscale(1) contrast(1.1);opacity:.62;transition:filter .3s ease,opacity .3s ease}
.logos>div:hover img{filter:none;opacity:1}
.logos .word{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--muted-2)}

/* Capability cards */
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:56px}
.card{background:#fff;border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:14px;min-height:300px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 24px 48px rgba(16,24,40,.08)}
.ic{width:44px;height:44px;border-radius:12px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center}
.ic.p{background:var(--purple-soft)}
.card h3{font-size:22px;letter-spacing:-.02em;margin-top:8px}
.card p{font-size:15px;line-height:1.55;color:var(--muted)}

/* Solutions */
.sol-head{text-align:center;max-width:860px;margin:0 auto}
.sol-head h2{font-size:clamp(40px,5.6vw,76px);line-height:1;letter-spacing:-.045em;margin-top:16px}
.sol-head h2 span{color:var(--faint)}
.product{margin-top:24px;background:var(--bg-2);border-radius:32px;padding:clamp(28px,4vw,56px);display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.product:first-of-type{margin-top:88px}
.product.rev{flex-wrap:wrap-reverse}
.p-copy{flex:1 1 340px;min-width:0}
.p-ui{flex:1.3 1 460px;min-width:0}
.p-name{font-size:14px;font-weight:600;color:var(--blue-ink)}
.p-name.purple{color:var(--purple)}
.product h3{font-size:clamp(30px,3.4vw,46px);line-height:1.05;letter-spacing:-.035em;margin-top:12px}
.product .lead{font-size:17px;margin-top:20px}
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:24px}
.chip{font-size:13px;font-weight:500;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid var(--line-2)}
.chips .plus{color:var(--faint);font-size:13px}
.chip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:24px;font-size:14px;font-weight:500}
.chip-grid span{padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--line-2)}
.product .more{margin-top:32px}
.win{background:#fff;border-radius:18px;border:1px solid var(--line-2);box-shadow:0 30px 60px rgba(16,24,40,.08);overflow:hidden}
.win-bar{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid var(--line-3)}
.win-bar i{width:10px;height:10px;border-radius:50%;background:var(--line-2)}
.win-bar span{margin-left:12px;font-size:12px;color:var(--muted-2)}
.ui-note{font-size:12px;color:var(--muted-2);margin:12px 4px 0}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}
.kpis div{border:1px solid var(--line-3);border-radius:12px;padding:12px}
.kpis small{display:block;font-size:11px;color:var(--muted-2)}
.kpis b{font-family:var(--display);font-weight:600;font-size:20px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:5px 10px;border-radius:999px}
.badge.ok{color:var(--green-ink);background:var(--green-soft)}
.badge.ok::before{content:"";width:6px;height:6px;border-radius:50%;background:#1A9E5A}
.badge.dev{color:var(--blue-deep);background:var(--blue-soft)}
.badge.q{color:var(--purple-ink);background:var(--purple-soft);font-weight:600;font-size:11px;padding:4px 8px}
.tbl{margin-top:18px;border:1px solid var(--line-3);border-radius:12px;overflow-x:auto}
.tbl-in{min-width:420px;font-size:13px}
.tr{display:grid;grid-template-columns:1.1fr 1.2fr 1fr .9fr;padding:12px 14px;border-top:1px solid var(--line-3)}
.tr.th{color:var(--muted-2);font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-3);border-top:0;padding:10px 14px}
.mono{font-family:var(--mono)}
.okt{color:var(--green-ink);font-weight:500}.pend{color:var(--blue-ink);font-weight:500}

.cs{display:flex;flex-wrap:wrap}
.cs-side{flex:0 0 180px;border-right:1px solid var(--line-3);padding:18px;background:var(--bg-3)}
.cs-side small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2)}
.src{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:13px;margin-top:8px}
.src i{width:8px;height:8px;border-radius:2px}
.cs-main{flex:1 1 260px;min-width:0;padding:18px}
.prods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.prods div{border:1px solid var(--line-3);border-radius:10px;padding:8px;font-size:11px}
.prods div::before{content:"";display:block;height:64px;border-radius:6px;background:#EEF0F3;margin-bottom:6px}
.prods div:nth-child(3n+2)::before{background:#E9EEF5}.prods div:nth-child(3n)::before{background:#F1EEF3}
.prods b{display:block}.prods span{color:var(--muted-2)}
.bar{margin-top:14px;height:6px;border-radius:999px;background:var(--line-3);overflow:hidden}
.bar i{display:block;height:100%;width:72%;background:var(--blue);border-radius:999px}
.mini-btn{font-size:12px;font-weight:600;background:var(--orange);color:var(--orange-ink);padding:7px 12px;border-radius:999px}
@media (max-width:560px){.cs-side{flex:1 1 100%;border-right:0;border-bottom:1px solid var(--line-3)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

.chat{display:flex;flex-wrap:wrap}
.chat-main{flex:1 1 260px;min-width:0;padding:20px;display:flex;flex-direction:column;gap:10px;font-size:13px;line-height:1.45}
.msg{max-width:85%;padding:10px 12px}
.msg.in{align-self:flex-start;background:var(--bg-2);border-radius:14px 14px 14px 4px}
.msg.out{align-self:flex-end;background:var(--blue-soft);border-radius:14px 14px 4px 14px}
.chat-side{flex:0 1 220px;min-width:0;border-left:1px solid var(--line-3);padding:20px;background:var(--bg-3);font-size:13px}
.chat-side dl{margin:14px 0 0;display:flex;flex-direction:column;gap:10px}
.chat-side dt{font-size:11px;color:var(--muted-2)}.chat-side dd{margin:0;font-weight:500}
.steps-mini{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px;font-size:12px}
.steps-mini div{display:flex;gap:8px;align-items:center}
.steps-mini i{width:14px;height:14px;border-radius:50%;background:var(--blue)}
.steps-mini i.o{background:transparent;border:2px solid #C9C9CF}
@media (max-width:560px){.chat-side{flex:1 1 100%;border-left:0;border-top:1px solid var(--line-3)}}

.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-top:24px}
.duo .card{background:var(--bg-2);border-radius:32px;padding:40px;min-height:0;gap:0}
.duo h3{font-size:30px;line-height:1.1;letter-spacing:-.03em;margin-top:12px}
.conn{display:flex;flex-direction:column;gap:10px;margin-top:28px}
.conn div{background:#fff;border-radius:16px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-weight:600}
.conn .dash{background:transparent;border:1px dashed #C9C9CF;font-weight:400;font-size:14px;color:var(--muted)}
.sys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:28px;font-size:15px;font-weight:500}
.sys div{background:#fff;border-radius:14px;padding:16px}
@media (max-width:420px){.duo{grid-template-columns:1fr}.duo .card{padding:28px}}

/* Before / After */
.ba-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}
.ba-tab{font:inherit;font-size:14px;font-weight:500;cursor:pointer;padding:10px 16px;min-height:44px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink);transition:all .2s ease}
.ba-tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.ba{position:relative;margin-top:24px;height:480px;border-radius:28px;overflow:hidden;border:1px solid var(--line-2);background:#fff;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.ba-layer{position:absolute;inset:0}
.ba-before{background:#E9E6DF;padding:28px;font-family:'Times New Roman',serif;color:#4A4A4A}
.old-head{background:#2F4F7F;color:#fff;padding:14px 18px;font-size:22px;font-weight:bold}
.old-nav{display:flex;gap:6px;background:#CFCAC0;padding:8px 12px;font-size:13px;text-decoration:underline;color:#1F3A6B}
.old-body{display:flex;gap:14px;margin-top:14px}
.old-img{width:180px;height:220px;background:#BDB7AB;display:flex;align-items:center;justify-content:center;font-size:12px;flex:0 0 auto}
.old-txt{font-size:14px;line-height:1.4}
.xls-title{font-family:Arial,sans-serif;font-size:13px;font-weight:bold;margin-bottom:8px}
.xls{display:grid;grid-template-columns:40px repeat(5,minmax(0,1fr));font-family:Arial,sans-serif;font-size:12px;background:#fff;border:1px solid #A9A9A9}
.xls span{border:1px solid #D0D0D0;padding:6px;overflow:hidden;white-space:nowrap}
.xls .h{background:#EEE}.xls .err{background:#FFF59D}
.ba-after{background:#fff;padding:36px 40px;clip-path:inset(0 0 0 50%)}
#ba-new{margin-left:auto;width:calc(50% - 16px)}
#ba-new .new-top span{display:none}
.new-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted);gap:12px}
.new-top b{font-family:var(--display);color:var(--ink);font-size:16px}
.new-top span{display:flex;gap:20px}
.new-h{font-family:var(--display);font-weight:600;font-size:clamp(22px,3.2vw,44px);letter-spacing:-.04em;line-height:1.02;margin-top:56px;max-width:620px}
.new-s{font-size:16px;color:var(--muted);margin-top:16px;max-width:480px}
.new-cta{display:inline-block;background:var(--orange);color:var(--orange-ink);font-weight:600;font-size:14px;padding:12px 18px;border-radius:999px;margin-top:28px}
.new-blocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:36px;max-width:620px}
.new-blocks i{height:90px;border-radius:14px;background:var(--bg-2)}.new-blocks i:nth-child(2){background:#EEF5FB}
.ba-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center}
.ba-label{position:absolute;bottom:20px;font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:.06em;padding:6px 10px;border-radius:999px;z-index:2}
.ba-label.l{left:20px;background:rgba(29,29,31,.78);color:#fff}
.ba-label.r{right:20px;background:var(--blue);color:#04263D}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(16,24,40,.12);pointer-events:none;z-index:3}
.ba-handle span{position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff;box-shadow:0 6px 20px rgba(16,24,40,.18);display:flex;align-items:center;justify-content:center}
.ba-range{-webkit-appearance:none;appearance:none;position:absolute;inset:0;width:100%;height:100%;margin:0;background:transparent;cursor:ew-resize;opacity:0;z-index:4}
.ba-cap{font-size:14px;color:var(--muted);margin:16px 4px 0}
@media (max-width:700px){.ba{height:420px}.ba-before,.ba-after{padding:18px}#ba-new{width:calc(50% - 6px)}.old-head{font-size:15px;padding:10px}.old-nav{font-size:11px;flex-wrap:wrap}.old-img{width:80px;height:110px}.old-txt{font-size:12px}.new-h{margin-top:28px}.new-s{font-size:13px}.new-cta{font-size:12px;padding:10px 12px}.new-blocks{grid-template-columns:1fr 1fr}.new-blocks i{height:56px}.new-blocks i:nth-child(3){display:none}}

/* Cases */
.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px;margin-top:56px}
@media (max-width:400px){.cases{grid-template-columns:1fr}}
.case{border:1px solid var(--line-2);border-radius:24px;padding:28px;display:flex;flex-direction:column;gap:20px;background:#fff;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.case:hover{transform:translateY(-4px);box-shadow:0 24px 48px rgba(16,24,40,.08)}
.case-media{border-radius:16px;background:var(--bg-2);padding:14px 14px 0;overflow:hidden}
.case-media .win{border-radius:10px 10px 0 0;border-bottom:0;box-shadow:0 12px 30px rgba(16,24,40,.08)}
.case-media .win-bar{padding:8px 10px;gap:5px}
.case-media .win-bar i{width:7px;height:7px}
.case-media .win-bar span{font-family:var(--mono);font-size:10px;margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.case-media img{display:block;width:100%;height:196px;object-fit:cover;object-position:top center}
.case-logo{height:180px;border-radius:16px;background:var(--bg-2);display:flex;align-items:center;justify-content:center;padding:28px}
.case-logo img{max-width:70%;object-fit:contain}
.case-logo .word{font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:-.02em;color:var(--ink-2)}
.case h3{font-size:24px;letter-spacing:-.02em}
.case .site{font-family:var(--mono);font-size:13px;display:inline-block;margin-top:6px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags span{font-size:12px;font-weight:500;padding:5px 10px;border-radius:999px;background:var(--bg-2);color:var(--ink-2)}
.k{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}
.k.b{color:var(--blue-ink)}
.case p{font-size:15px;line-height:1.5;margin-top:6px}
.case-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-3);display:flex;justify-content:flex-end;align-items:center}
.case-foot .more{font-size:14px}

/* Method */
.method{list-style:none;padding:0;margin:64px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.method li{background:#fff;border-radius:24px;padding:28px 24px;min-height:220px;display:flex;flex-direction:column}
.method .n{font-family:var(--mono);font-size:13px;color:var(--blue-ink)}
.method .ln{height:2px;background:var(--blue);border-radius:2px;margin-top:16px;transform-origin:left;transform:scaleX(.15);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.method.in .ln{transform:scaleX(1)}
.method li:nth-child(2) .ln{transition-delay:.12s}.method li:nth-child(3) .ln{transition-delay:.24s}.method li:nth-child(4) .ln{transition-delay:.36s}.method li:nth-child(5) .ln{transition-delay:.48s}
.method li:last-child .n{color:var(--purple)}.method li:last-child .ln{background:var(--purple)}
.method h3{font-size:26px;letter-spacing:-.03em;margin-top:28px}
.method p{font-size:15px;line-height:1.5;color:var(--muted);margin-top:10px}

/* Tech */
.tech{text-align:center;max-width:1000px}
.tech .h-section{margin:0 auto}
.tech .lead{margin:20px auto 0;max-width:560px}
.stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:64px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.stack div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 12px;font-family:var(--display);font-weight:600;font-size:17px;color:var(--muted);transition:color .2s ease,background .2s ease}
.stack div:hover{color:var(--ink);background:var(--bg-3)}

/* AI */
.ai-grid{display:flex;flex-wrap:wrap;gap:64px;align-items:center}
.ai-grid>div{flex:1 1 420px;min-width:0}
.ai-flow{background:#fff;border-radius:28px;padding:32px;border:1px solid var(--line);list-style:none;margin:0}
.ai-step{display:flex;gap:16px;align-items:stretch}
.ai-rail{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}
.ai-dot{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;background:var(--bg-2);color:var(--muted-2);transition:all .4s ease}
.ai-line{width:2px;flex:1 1 auto;min-height:22px;background:var(--line-2);transition:background .4s ease}
.ai-step:last-child .ai-line{display:none}
.ai-txt{padding:8px 0 22px;opacity:.55;transition:opacity .4s ease}
.ai-txt b{display:block;font-size:17px}
.ai-txt span{font-size:14px;color:var(--muted)}
.ai-step.on .ai-dot{background:var(--blue-soft);color:var(--blue-ink)}
.ai-step.on .ai-txt{opacity:1}
.ai-step.done .ai-line{background:var(--blue)}
.ai-step.cur .ai-dot{background:var(--blue);color:#04263D;box-shadow:0 0 0 6px rgba(13,154,239,.15)}

/* Capabilities */
.caps-h{font-size:clamp(28px,3vw,40px);letter-spacing:-.03em;margin-top:16px;max-width:680px;color:var(--muted)}
.caps{display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:40px;font-family:var(--display);font-weight:600;font-size:clamp(30px,4vw,56px);letter-spacing:-.035em;line-height:1.18}
.caps .s{color:#C9C9CF}.caps .ai{color:var(--purple)}

/* Contact */
.contact-sec{padding-top:0}
.contact{background:var(--bg-2);border-radius:40px;padding:clamp(32px,6vw,88px);display:flex;flex-wrap:wrap;gap:56px}
.contact>div{flex:1 1 400px;min-width:0}
.contact h2{font-size:clamp(34px,4.6vw,64px);line-height:1.02;letter-spacing:-.04em}
.contact .lead{font-size:20px;margin-top:24px}
.cinfo{margin-top:48px;display:flex;flex-direction:column;gap:16px;font-size:15px}
.cinfo small{display:block;font-size:12px;color:var(--muted-2)}
.cinfo b{font-weight:600}
.cinfo .row{display:flex;gap:32px;flex-wrap:wrap}
.cinfo a{font-weight:500}
.form{flex:1 1 380px;min-width:0;background:#fff;border-radius:28px;padding:32px;display:flex;flex-direction:column;gap:16px}
.form .two{display:flex;gap:12px;flex-wrap:wrap}
.form .two>div{flex:1 1 160px}
.form label{font-size:13px;font-weight:500;display:block;margin-bottom:6px}
.inp{width:100%;font:inherit;font-size:16px;padding:14px 16px;border:1px solid #D9D9DE;border-radius:12px;background:#fff;color:var(--ink)}
.inp:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
textarea.inp{resize:vertical;min-height:120px}
.hp{position:absolute;left:-9999px}
.form .btn{width:100%;min-height:52px}
.notice{border-radius:12px;padding:12px 14px;font-size:14px}
.notice.ok{background:var(--green-soft);color:var(--green-ink)}
.notice.err{background:#FDECEC;color:#9B1C1C}
@media (max-width:520px){.form{padding:22px}.contact{border-radius:28px}}

/* Footer */
.foot{border-top:1px solid var(--line);padding:48px 24px}
.foot-top{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;font-size:14px}
.foot-top img{height:22px;width:auto;display:block}
.foot-top p{color:var(--muted);line-height:1.5;margin-top:14px;max-width:320px}
.foot-cols{display:flex;gap:56px;flex-wrap:wrap}
.foot-cols div{display:flex;flex-direction:column;gap:10px}
.foot-cols b{font-weight:600}
.foot-cols a{color:var(--ink)}.foot-cols a:hover{color:var(--blue-ink)}
.foot-bot{margin-top:40px;padding-top:20px;border-top:1px solid var(--line-3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--muted-2)}
.foot-bot a{color:var(--muted-2)}

/* WhatsApp */
.wa{position:fixed;right:20px;bottom:20px;z-index:40;width:56px;height:56px;border-radius:50%;background:#1D1D1F;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(16,24,40,.25);transition:transform .2s ease}
.wa:hover{transform:scale(1.06);color:#fff}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
  .method .ln{transform:none}
}
