/* ==========================================================
   Shintech Capital homepage
   Brand: Ink #0F110F · Porcelain #F2EFE8 · Citron #D6EF44 · Grey #777A70
   ========================================================== */
:root{
  --ink:#0f110f; --ink2:#1a1c19; --ink3:#262923; --por:#f2efe8; --por2:#e6e4dc; --por3:#d9d7ce; --cit:#d6ef44; --cit2:#e3f57a; --grey:#777a70;
  --lt:rgba(15,17,15,.14); --dk:rgba(242,239,232,.12); --mut:#5f6259; --mutd:#9a9d92;
  --f:'Inter Tight',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; --m:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --pad:clamp(16px,5vw,72px); --ease:cubic-bezier(.2,.8,.2,1); --hd:84px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hd) - 1px);-webkit-text-size-adjust:100%}
body{font-family:var(--f);font-size:17px;line-height:1.55;color:var(--ink);background:var(--por);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--cit);color:var(--ink)}
.wrap{width:100%;max-width:1440px;margin:0 auto;padding:0 var(--pad)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-60px;z-index:200;background:var(--cit);color:var(--ink);padding:12px 16px;font-weight:700}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--cit);outline-offset:3px}
.sec--dark :focus-visible,.band :focus-visible{outline-color:var(--cit)}
.sec:not(.sec--dark) :focus-visible{outline-color:var(--ink)}
.ic{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:square;transition:transform .35s var(--ease)}

/* ---------- type ---------- */
.kick{font-family:var(--m);font-size:12.5px;letter-spacing:.04em;color:var(--cit);margin-bottom:22px;font-weight:500}
.kick--muted{color:var(--mut)}
.mono-l{font-family:var(--m);font-size:12px;letter-spacing:.06em;color:var(--mut)}
.sec--dark .mono-l{color:var(--mutd)}
.mono-l i{font-style:normal;margin:0 .8em;opacity:.6}
.h1{font-size:clamp(42px,7vw,112px);line-height:.98;letter-spacing:-.035em;font-weight:800}
.h2{font-size:clamp(36px,5vw,78px);line-height:1.02;letter-spacing:-.032em;font-weight:800}
.h3{font-size:clamp(22px,1.9vw,30px);line-height:1.15;letter-spacing:-.025em;font-weight:750}
.lede{font-size:clamp(18px,1.55vw,23px);line-height:1.5;color:var(--ink);max-width:36ch}
.lede--light{color:#c9c8bf}
.hl{color:var(--cit)}

/* ---------- buttons & links ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:58px;min-width:250px;padding:0 22px 0 24px;font-weight:750;font-size:16px;letter-spacing:-.005em;border:0;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .2s var(--ease)}
.btn--c{background:var(--cit);color:var(--ink)}
.btn--k{background:var(--ink);color:var(--por)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(101%);transition:transform .45s var(--ease)}
.btn--c:hover{color:var(--cit)}
.btn:hover::before{transform:none}
.sec--dark .btn--c::before,.ft .btn--c::before,.hd .btn--c::before{background:var(--por)}
.sec--dark .btn--c:hover,.ft .btn--c:hover,.hd .btn--c:hover{color:var(--ink)}
.btn:hover .ic,.lnk:hover .ic{transform:translateX(5px)}
.btn:active{transform:scale(.985)}
.btn--wide{width:100%}
.lnk{display:inline-flex;align-items:center;gap:8px;font-weight:600;min-height:44px;background:none;border:0;cursor:pointer;padding:0;white-space:nowrap}
.lnk .ic{width:16px;height:16px}
.lnk--light{color:var(--por)}
.lnk--b{font-weight:750}
.lnk span,.lnk{background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-position:0 calc(50% + 14px);background-repeat:no-repeat;transition:background-size .35s var(--ease)}
.lnk:hover{background-size:calc(100% - 24px) 1.5px}

/* ---------- header (theme follows the section underneath) ---------- */
.hd{position:fixed;inset:0 0 auto;z-index:50;height:var(--hd);color:var(--por);transition:background .35s,color .35s,box-shadow .35s}
.hd__in{height:100%;display:flex;align-items:center;gap:28px}
.hd__logo{position:relative;display:block;height:44px;flex:0 0 auto}
.hd__logo img{height:44px;width:auto;transition:opacity .3s}
.hd__logo-l{position:absolute;inset:0;opacity:0}
.hd__nav{margin-left:auto;display:flex;gap:30px;font-size:15.5px;font-weight:550}
.hd__nav a{position:relative;padding:8px 0}
.hd__nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--cit);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.hd__nav a:hover::after,.hd__nav a.is-on::after{transform:scaleX(1);transform-origin:left}
.hd__cta{min-width:0;min-height:52px;gap:22px;margin-left:18px}
.hd.is-scrolled{background:rgba(15,17,15,.86);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.hd[data-tone="light"]{color:var(--ink)}
.hd[data-tone="light"].is-scrolled{background:rgba(242,239,232,.88);box-shadow:0 1px 0 var(--lt)}
.hd[data-tone="light"] .hd__logo-d{opacity:0}
.hd[data-tone="light"] .hd__logo-l{opacity:1}
.hd[data-tone="citron"]{color:var(--ink)}
.hd[data-tone="citron"].is-scrolled{background:rgba(214,239,68,.92)}
.hd[data-tone="citron"] .hd__logo-d{opacity:0}
.hd[data-tone="citron"] .hd__logo-l{opacity:1}
.hd[data-tone="citron"] .hd__cta{background:var(--ink);color:var(--cit)}
.hd[data-tone="light"] .hd__nav a::after{background:var(--ink)}
.hd__burger{display:none;margin-left:auto;width:48px;height:48px;background:none;border:0;cursor:pointer;position:relative}
.hd__burger span{position:absolute;left:12px;right:12px;height:2px;background:currentColor;transition:transform .35s var(--ease),top .35s var(--ease)}
.hd__burger span:first-child{top:19px}.hd__burger span:last-child{top:27px}
.hd.menu-open .hd__burger span:first-child{top:23px;transform:rotate(45deg)}
.hd.menu-open .hd__burger span:last-child{top:23px;transform:rotate(-45deg)}
.menu{position:fixed;inset:var(--hd) 0 0;background:var(--ink);color:var(--por);padding:28px var(--pad) calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:28px;overflow:auto}
.menu[hidden]{display:none}
.menu nav{display:flex;flex-direction:column}
.menu nav a{display:flex;align-items:baseline;gap:16px;font-size:clamp(34px,9vw,52px);font-weight:800;letter-spacing:-.04em;padding:10px 0;border-bottom:1px solid var(--dk);animation:menuIn .5s var(--ease) both}
.menu nav a:nth-child(2){animation-delay:.04s}.menu nav a:nth-child(3){animation-delay:.08s}.menu nav a:nth-child(4){animation-delay:.12s}
.menu nav span{font-family:var(--m);font-size:12px;letter-spacing:.06em;color:var(--cit);font-weight:500}
.menu .mono-l{margin-top:auto}
.hd.menu-open{background:var(--ink)!important;color:var(--por)!important}
.hd.menu-open .hd__logo-d{opacity:1!important}.hd.menu-open .hd__logo-l{opacity:0!important}
@keyframes menuIn{from{opacity:0;transform:translateY(14px)}}

/* ---------- sections ---------- */
.sec{padding:clamp(88px,11vw,170px) 0}
.sec--dark{background:var(--ink);color:var(--por)}
.split{display:grid;grid-template-columns:1.7fr 1fr;gap:48px;align-items:end;margin-bottom:clamp(48px,6vw,90px)}
.split .lede{justify-self:end}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hd) + 40px) 0 34px;overflow:hidden}
.hero__spot{position:absolute;inset:0;pointer-events:none;background:radial-gradient(640px circle at var(--mx,72%) var(--my,40%),rgba(214,239,68,.075),transparent 62%);transition:background .2s}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(var(--dk) 1px,transparent 1px),linear-gradient(90deg,var(--dk) 1px,transparent 1px);background-size:120px 120px;mask-image:radial-gradient(ellipse 60% 70% at 72% 45%,#000 0%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 60% 70% at 72% 45%,#000 0%,transparent 75%)}
.hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(24px,4vw,72px);align-items:center}
.hero__h{font-size:clamp(50px,8.2vw,138px);line-height:.95;letter-spacing:-.035em;font-weight:800;margin-bottom:clamp(26px,3vw,40px)}
.hero__line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hero__line>span{display:inline-block;transform:translateY(105%);animation:lineUp 1s var(--ease) forwards}
.hero__line:nth-child(2)>span{animation-delay:.09s}.hero__line:nth-child(3)>span{animation-delay:.18s}
@keyframes lineUp{to{transform:none}}
.hero__eng{color:#3a3d36;transition:color .9s var(--ease),text-shadow .9s}
.hero__eng.is-lit{color:var(--cit)}
.hero__p{font-size:clamp(18px,1.55vw,23px);color:#d9d7cf;max-width:38ch;margin-bottom:clamp(30px,3.4vw,52px);animation:fadeUp .9s .45s var(--ease) both}
.hero__cta{display:flex;align-items:center;gap:30px;flex-wrap:wrap;animation:fadeUp .9s .55s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}}
.hero__vis{position:relative}
.hero__cap{position:absolute;right:0;bottom:-6px;color:var(--mutd);letter-spacing:.3em;animation:fadeUp 1s 1.4s both}
.hero__foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;margin-top:clamp(28px,5vh,64px)}
.hero__scroll{position:relative;padding-right:22px}
.hero__scroll::after{content:"";position:absolute;right:0;top:50%;width:10px;height:10px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-75%) rotate(45deg);animation:nudge 1.8s ease-in-out infinite}
@keyframes nudge{50%{transform:translateY(-25%) rotate(45deg)}}

/* ---------- the monolith (CSS-extruded logo mark) ---------- */
.mono{position:relative;aspect-ratio:1/1;width:100%;max-width:640px;margin-left:auto;perspective:1500px;perspective-origin:50% 40%}
.mono__stage{position:absolute;inset:6% 8% 14%;transform-style:preserve-3d}
.mono__obj{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--rx,14deg)) rotateY(var(--ry,-26deg)) rotateZ(-2deg);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.mono__l,.mono__facewrap{position:absolute;inset:0;transform-style:flat;will-change:transform}
.mono__obj svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mono__l{transform:translateZ(var(--z));opacity:0;transition:opacity .5s,transform 1.1s var(--ease)}
.mono.is-built .mono__l{opacity:1}
.mono__l path{fill:var(--c)}
.mono__facewrap{transform:translateZ(.5px)}
.mono__seam{stroke:var(--cit);stroke-width:.9;stroke-linejoin:miter;stroke-dasharray:22 78;stroke-dashoffset:0;opacity:0;filter:drop-shadow(0 0 2.2px rgba(214,239,68,.95)) drop-shadow(0 0 7px rgba(214,239,68,.55));transition:opacity .9s .1s}
.mono.is-lit .mono__seam{opacity:1;animation:seam 7s linear infinite}
@keyframes seam{to{stroke-dashoffset:-100}}
.mono__floor{position:absolute;left:12%;right:4%;bottom:2%;height:16%;background:radial-gradient(ellipse at 50% 40%,rgba(0,0,0,.75),transparent 70%);filter:blur(6px);transform:translateX(calc(var(--ry-n,0) * 6%))}
.mono__floor::after{content:"";position:absolute;left:20%;right:20%;top:30%;height:2px;background:linear-gradient(90deg,transparent,rgba(214,239,68,.35),transparent);filter:blur(3px);opacity:0;transition:opacity 1s}
.mono.is-lit .mono__floor::after{opacity:1}

/* ---------- citron band ---------- */
.band{background:var(--cit);color:var(--ink)}
.band__in{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:clamp(30px,3.4vw,46px);padding-bottom:clamp(30px,3.4vw,46px)}
.band__h{font-size:clamp(22px,2.6vw,40px);letter-spacing:-.03em;font-weight:800;line-height:1.1}

/* ---------- capabilities ---------- */
.caps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,2.4vw,40px)}
.cap{border-top:1px solid var(--lt);padding-top:26px;display:flex;flex-direction:column;gap:14px;position:relative}
.cap::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--ink);transition:width .7s var(--ease)}
.cap:hover::before{width:100%}
.cap__n{margin-bottom:18px}
.cap p:not(.cap__n){color:#3b3e37;max-width:30ch}
.cap .lnk{margin-top:auto;padding-top:8px}

/* ---------- advantage map ---------- */
.map .h2{margin-bottom:clamp(36px,4vw,60px)}
.map__tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,36px)}
.map__tab{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding:14px 22px 14px 24px;background:var(--ink2);color:var(--por);transition:background .3s,color .3s}
.map__tab b{display:block;font-weight:750;font-size:16.5px}
.map__tab small{display:block;font-family:var(--m);font-size:11.5px;letter-spacing:.03em;color:var(--mutd);margin-top:3px;transition:color .3s}
.map__tab:hover{background:var(--ink3)}
.map__tab.is-on{background:var(--cit);color:var(--ink)}
.map__tab.is-on small{color:#4a5418}
.map__tab.is-on .ic{transform:rotate(90deg)}
.map__hint{color:var(--mutd);font-size:clamp(17px,1.4vw,21px);margin:28px 0 clamp(40px,5vw,72px)}
.route{animation:routeIn .6s var(--ease)}
.route[hidden]{display:none}
@keyframes routeIn{from{opacity:0;transform:translateY(14px)}}
.route__head{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end;margin-bottom:clamp(36px,4vw,56px)}
.route__h{font-size:clamp(36px,5.4vw,84px);line-height:1;letter-spacing:-.045em;font-weight:800}
.route__p{color:var(--mutd);font-size:clamp(17px,1.4vw,21px);max-width:40ch}
.flow{position:relative;margin-bottom:clamp(36px,4vw,56px)}
.flow__svg{position:absolute;left:0;right:0;top:0;width:100%;height:120px}
.flow__track{stroke:var(--ink3);stroke-width:2;fill:none;vector-effect:non-scaling-stroke}
.flow__line{stroke:var(--cit);stroke-width:2;fill:none;vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100}
.route.is-on .flow__line{animation:draw 1.4s .15s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.flow__dot{fill:var(--cit);filter:drop-shadow(0 0 6px var(--cit))}
.flow__nodes{position:relative;list-style:none;display:flex;justify-content:space-between;height:120px;align-items:center;padding:0 6%}
.flow__nodes li{display:flex;flex-direction:column;align-items:center;gap:12px;font-weight:700;font-size:15px;text-align:center;opacity:0;animation:nodeIn .6s calc(.25s + var(--i) * .28s) var(--ease) forwards;width:0;white-space:nowrap}
@keyframes nodeIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
.flow__n{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--ink);border:2px solid var(--cit);color:var(--cit);font-family:var(--m);font-size:13px;margin-top:62px}
.flow__nodes li:last-child .flow__n{background:var(--cit);color:var(--ink)}
.route__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,36px)}
.rstep{background:var(--ink2);padding:clamp(24px,2.4vw,36px);min-height:260px;opacity:0;animation:rstepIn .7s calc(.15s + var(--i) * .1s) var(--ease) forwards}
@keyframes rstepIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.rstep h4{font-size:clamp(22px,2vw,30px);letter-spacing:-.025em;margin:22px 0 16px;line-height:1.15}
.rstep p:not(.kick){color:var(--mutd)}
.route__foot{margin-top:clamp(40px,5vw,72px)}
.route__sug{font-size:clamp(22px,2.4vw,36px);font-weight:750;letter-spacing:-.03em;margin-bottom:28px}
.route__cta{display:flex;align-items:center;gap:34px;flex-wrap:wrap}

/* ---------- software demos ---------- */
#software .h2{margin-bottom:clamp(40px,5vw,72px)}
.demos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,50px)}
.demo figcaption{margin-top:24px;display:flex;flex-direction:column;gap:8px}
.demo figcaption b{font-size:clamp(22px,2.2vw,34px);letter-spacing:-.03em;line-height:1.1}
.ui{display:grid;grid-template-columns:19% 1fr;aspect-ratio:16/10.4;overflow:hidden;box-shadow:0 30px 60px -40px rgba(15,17,15,.6);transition:transform .6s var(--ease)}
.demo:hover .ui{transform:translateY(-6px)}
.ui--dark{background:var(--ink);color:var(--por)}
.ui--light{background:#fff;color:var(--ink)}
.ui__side{padding:7% 14%;display:flex;flex-direction:column;gap:10%}
.ui--dark .ui__side{background:var(--ink2)}
.ui--light .ui__side{background:var(--por2)}
.ui__mark{width:26%;min-width:18px;margin-bottom:24%}
.ui--dark .ui__mark{fill:var(--cit)}.ui--light .ui__mark{fill:var(--ink)}
.ui__side i{height:3px;background:currentColor;opacity:.35;width:100%}
.ui__side i:first-of-type{opacity:.85}
.ui__main{padding:6% 7%;display:flex;flex-direction:column;min-width:0}
.ui__t{font-size:clamp(15px,1.7vw,28px);font-weight:750;letter-spacing:-.02em;margin-bottom:5%}
.ui__tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:5%}
.ui__tile{padding:9% 10%;display:flex;flex-direction:column;gap:4px;min-width:0}
.ui--dark .ui__tile{background:var(--ink2)}.ui--light .ui__tile{background:var(--por)}
.ui__tile span{font-size:clamp(10px,.95vw,14px);opacity:.7}
.ui__tile b{font-size:clamp(14px,1.6vw,26px);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.ui__tile i{height:4px;width:66%;margin-top:4px}
.ui--dark .ui__tile i{background:var(--cit)}.ui--light .ui__tile i{background:var(--ink)}
.ui__chart{flex:1;display:flex;align-items:flex-end;gap:5%;padding:7% 0 4%}
.ui__chart i{flex:1;height:var(--h);transform:scaleY(0);transform-origin:bottom;transition:transform .9s calc(var(--i) * 60ms) var(--ease)}
.ui--dark .ui__chart i{background:var(--cit)}.ui--light .ui__chart i{background:#abb89a}
.ui.is-in .ui__chart i{transform:scaleY(1)}
.ui__lab{font-size:clamp(8px,.75vw,11.5px)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.4vw,40px);margin-top:clamp(56px,6vw,96px);padding-top:40px;border-top:1px solid var(--lt)}
.steps li b{display:block;font-size:clamp(19px,1.6vw,24px);letter-spacing:-.02em;margin-top:18px;line-height:1.2}

/* ---------- mobile apps ---------- */
.apps__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,110px);align-items:center}
.apps .h2{margin-bottom:28px}
.apps .lede{max-width:44ch;margin-bottom:36px}
.feats{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin-bottom:44px}
.feats li{border-top:1px solid var(--dk);padding:20px 0 24px;display:flex;flex-direction:column;gap:6px}
.feats b{font-size:18px;letter-spacing:-.015em}
.feats span{color:var(--mutd);font-size:15.5px}
.apps__vis{position:relative;display:flex;flex-direction:column;align-items:center;perspective:1200px}
.apps__vis::before{content:"";position:absolute;width:76%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(214,239,68,.16),transparent 65%);top:12%}
.phone{position:relative;width:min(330px,78vw);aspect-ratio:9/19;border-radius:50px;padding:11px;background:linear-gradient(145deg,#3a3d36,#141513 45%,#262923);box-shadow:0 60px 100px -40px rgba(0,0,0,.9),inset 0 0 0 1.5px rgba(255,255,255,.08);transform:rotateY(var(--pry,-9deg)) rotateX(var(--prx,5deg));transition:transform .8s var(--ease)}
.phone__screen{position:relative;height:100%;border-radius:40px;overflow:hidden;background:var(--por)}
.app{height:100%;display:flex;flex-direction:column;padding:14px 18px 12px;color:var(--ink)}
.app__bar{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;padding:2px 8px 14px}
.app__bar i{width:62px;height:20px;border-radius:12px;background:var(--ink);position:absolute;left:50%;top:13px;transform:translateX(-50%)}
.app__hd{display:flex;align-items:center;gap:10px;font-weight:750;font-size:16px;letter-spacing:-.02em;margin:6px 0 14px}
.app__hd svg{width:24px;fill:var(--ink)}
.app__card{background:var(--ink);color:var(--por);padding:16px 16px 14px;border-radius:18px;position:relative;overflow:hidden}
.app__card::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(214,239,68,.35),transparent 70%)}
.app__card .mono-l{font-size:9.5px;color:var(--cit)}
.app__card b{display:block;font-size:30px;letter-spacing:-.04em;margin:4px 0 10px}
.app__prog{height:6px;border-radius:6px;background:var(--ink3);overflow:hidden}
.app__prog i{display:block;height:100%;width:var(--p,0%);background:var(--cit);border-radius:inherit;transition:width 1.6s var(--ease)}
.app__card small{display:block;font-size:11px;color:var(--mutd);margin-top:8px}
.app__sec{font-size:9.5px;margin:16px 0 8px}
.app__list{display:flex;flex-direction:column;gap:8px}
.app__item{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:9px 10px;opacity:0;transform:translateY(10px);transition:.6s var(--ease)}
.phone.is-in .app__item{opacity:1;transform:none}
.phone.is-in .app__item:nth-child(2){transition-delay:.12s}.phone.is-in .app__item:nth-child(3){transition-delay:.24s}
.app__item>i{width:38px;height:38px;border-radius:11px;flex:0 0 38px;background:linear-gradient(135deg,var(--por3),var(--por2))}
.app__item:first-child>i{background:linear-gradient(135deg,#c9a77e,#8a6744)}
.app__item span{flex:1;min-width:0;display:flex;flex-direction:column}
.app__item b{font-size:13px}
.app__item small{font-size:10.5px;color:var(--mut)}
.app__item em{font-style:normal;width:26px;height:26px;border-radius:50%;background:var(--cit);display:grid;place-items:center;font-weight:800}
.app__order{margin-top:12px;display:flex;align-items:center;gap:10px;background:var(--cit);border-radius:14px;padding:10px 12px}
.app__order b{display:block;font-size:12.5px}
.app__order small{font-size:10.5px;color:#4a5418}
.app__order i{width:30px;height:30px;border-radius:50%;border:3px solid var(--ink);border-right-color:transparent;flex:0 0 30px;animation:spin 2.4s linear infinite}
.app__tab{margin-top:auto;display:flex;justify-content:space-around;padding:12px 10px 4px;border-top:1px solid var(--lt)}
.app__tab i{width:22px;height:4px;border-radius:4px;background:var(--por3)}
.app__tab i.on{background:var(--ink)}
.push{position:absolute;left:10px;right:10px;top:10px;display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:18px;background:rgba(15,17,15,.92);color:var(--por);backdrop-filter:blur(10px);transform:translateY(-130%);transition:transform .7s cubic-bezier(.3,1.4,.5,1);box-shadow:0 14px 30px -10px rgba(0,0,0,.6)}
.push.is-on{transform:none}
.push svg{width:30px;height:30px;padding:6px;border-radius:9px;background:var(--cit);fill:var(--ink);flex:0 0 30px}
.push b{display:block;font-size:12.5px}
.push small{font-size:11px;color:var(--mutd)}
.apps__cap{margin-top:22px}

/* ---------- solutions ---------- */
#solutions .h1{margin-bottom:22px}
#solutions .lede{max-width:52ch;margin-bottom:clamp(34px,4vw,56px)}
.filt{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(30px,4vw,56px)}
.filt__b{min-height:52px;padding:0 22px;min-width:150px;text-align:left;border:0;background:var(--por2);cursor:pointer;font-weight:550;transition:background .25s,color .25s}
.filt__b:hover{background:var(--por3)}
.filt__b.is-on{background:var(--ink);color:var(--por)}
.sols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(36px,4vw,64px) clamp(20px,2.6vw,44px)}
.sol{display:flex;flex-direction:column;gap:12px;transition:opacity .35s,transform .35s var(--ease)}
.sol.is-out{display:none}
.sol__vis{position:relative;aspect-ratio:4/3;overflow:hidden;margin-bottom:12px;display:grid;place-items:center;transition:transform .6s var(--ease)}
.sol:hover .sol__vis{transform:translateY(-6px)}
.sol__vis--dark,.sol__vis--ads{background:var(--ink)}
.sol__vis--light{background:#fff}
.sol__vis--phone{background:var(--cit)}
.sol__vis--search{background:var(--por2)}
.sol__lab{position:absolute;left:16px;bottom:12px;font-size:10px}
.sol__vis--dark .sol__lab,.sol__vis--ads .sol__lab{color:var(--mutd)}
.sol__vis--phone .sol__lab{color:#4a5418}
.sol__tag{margin-top:6px}
.sol__name{color:#3b3e37}
.sol__name b{color:var(--ink)}
.sol .lnk{margin-top:auto}
.sol--cta{background:var(--ink);color:var(--por);padding:clamp(26px,2.6vw,40px);justify-content:space-between;min-height:100%}
.sol--cta .h3{font-size:clamp(28px,2.6vw,40px)}
.sol--cta p{color:var(--mutd)}
.sol--cta .btn{margin-top:28px;min-width:0}
.mini{width:100%;height:100%;display:grid;grid-template-columns:19% 1fr}
.mini__side{padding:12% 14%;display:flex;flex-direction:column;gap:14%}
.mini--dark .mini__side{background:var(--ink2)}.mini--light .mini__side{background:var(--por2)}
.mini__side svg{width:34%}
.mini--dark svg{fill:var(--cit)}.mini--light svg{fill:var(--ink)}
.mini__side i{height:3px;background:currentColor;opacity:.35}
.mini--dark{color:var(--por)}.mini--light{color:var(--ink)}
.mini__main{padding:9% 9% 14%;display:flex;flex-direction:column;gap:9%}
.mini__main b{font-size:clamp(13px,1.2vw,18px)}
.mini__tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:6%}
.mini__tiles i{height:34px}
.mini--dark .mini__tiles i{background:var(--ink2);border-bottom:3px solid var(--cit)}
.mini--light .mini__tiles i{background:var(--por);border-bottom:3px solid var(--ink)}
.mini__bars{flex:1;display:flex;align-items:flex-end;gap:7%}
.mini__bars i{flex:1;height:var(--h)}
.mini--dark .mini__bars i{background:var(--cit)}.mini--light .mini__bars i{background:#abb89a}
.miniphone{width:34%;aspect-ratio:9/19;border-radius:22px;background:var(--ink);padding:10px 8px;display:flex;flex-direction:column;gap:7px;box-shadow:0 24px 40px -20px rgba(0,0,0,.5);transform:rotate(-6deg)}
.miniphone i{height:18%;border-radius:6px;background:var(--ink3)}
.miniphone__card{height:30%!important;background:linear-gradient(135deg,var(--cit),#9fb52a)!important}
.serp{width:80%;display:flex;flex-direction:column;gap:12px}
.serp__q{background:#fff;border-radius:30px;padding:10px 16px;font-size:13px;display:flex;align-items:center;gap:6px;box-shadow:0 8px 20px -14px rgba(0,0,0,.4)}
.serp__q span{width:1.5px;height:15px;background:var(--ink);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.serp__r{background:#fff;padding:10px 14px;display:flex;flex-direction:column;gap:4px;opacity:.55}
.serp__r small{font-size:10.5px;color:#4b7d3a}
.serp__r b{font-size:14px;min-height:14px;background:linear-gradient(var(--por3),var(--por3)) 0 50%/60% 8px no-repeat}
.serp__r.is-you{opacity:1;border-left:4px solid var(--cit)}
.serp__r.is-you b{background:none;color:#1a3aa3}
.serp__r i{height:6px;width:85%;background:var(--por2)}
.adsv{width:78%}
.adsv__funnel{display:flex;flex-direction:column;align-items:center;gap:8px}
.adsv__funnel i{font-style:normal;width:var(--w);height:34px;display:grid;place-items:center;background:var(--ink3);color:var(--por);font-family:var(--m);font-size:11px;letter-spacing:.06em}
.adsv__funnel i:last-child{background:var(--cit);color:var(--ink);font-weight:500}

/* ---------- technology ---------- */
.tech .h1{margin-bottom:clamp(36px,4vw,60px)}
.stack{overflow:hidden;border-top:1px solid var(--dk);border-bottom:1px solid var(--dk);padding:22px 0;margin-bottom:clamp(50px,6vw,90px);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.stack__track{display:flex;width:max-content;gap:28px;align-items:center;font-family:var(--m);font-size:clamp(20px,2.4vw,34px);letter-spacing:.02em;animation:marquee 32s linear infinite}
.stack__track i{font-style:normal;color:var(--cit)}
.stack:hover .stack__track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.tech__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,56px)}
.tcell{border-top:1px solid var(--dk);padding-top:22px}
.tcell .mono-l{margin-bottom:16px}
.tcell p:not(.mono-l){font-size:clamp(17px,1.4vw,21px);color:#d9d7cf}

/* ---------- about ---------- */
#about .h1{margin-bottom:clamp(44px,5vw,80px)}
.about{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(36px,6vw,110px);align-items:start}
.about__mark{position:relative;aspect-ratio:1;background:var(--ink);display:flex;align-items:center;justify-content:center;padding:18%}
.about__mark svg{width:100%;overflow:visible;fill:var(--cit)}
.about__mark .kick{position:absolute;left:8%;bottom:6%;margin:0;letter-spacing:.14em}
.about__half{transition:transform 1.4s var(--ease)}
.about__half--a{transform:translate(-18px,-10px)}
.about__half--b{transform:translate(18px,10px)}
.about__mark.is-in .about__half{transform:none}
.about__mark::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(214,239,68,.18),transparent 55%);opacity:0;transition:opacity 1s 1.1s}
.about__mark.is-in::after{opacity:1}
.about__big{font-size:clamp(24px,2.6vw,42px);line-height:1.25;letter-spacing:-.03em;margin-bottom:30px}
.about__copy>p:not(.about__big){color:#3b3e37;font-size:clamp(17px,1.35vw,20px);max-width:52ch;margin-bottom:40px}
.princ{list-style:none}
.princ li{border-top:1px solid var(--lt);padding:22px 0;display:flex;flex-direction:column;gap:6px}
.princ b{font-size:clamp(22px,2vw,30px);letter-spacing:-.025em}
.princ span{color:#3b3e37}

/* ---------- start a project ---------- */
.start__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,5vw,100px);align-items:start}
.start .h1{margin-bottom:28px;font-size:clamp(42px,5.4vw,92px)}
.start .lede{margin-bottom:clamp(40px,5vw,80px)}
.start__steps{list-style:none;display:flex;flex-direction:column;gap:30px}
.start__steps li{opacity:.4;transition:opacity .4s;padding-left:18px;border-left:2px solid transparent}
.start__steps li.is-on{opacity:1;border-left-color:var(--cit)}
.start__steps .kick{margin-bottom:6px}
.brief{background:var(--por);color:var(--ink);padding:clamp(26px,4vw,60px)}
.bstep{border:0;min-width:0}
.bstep[hidden]{display:none}
.bstep.is-on{animation:fadeUp .5s var(--ease)}
.bstep__n{margin-bottom:22px}
.bstep__h{font-size:clamp(28px,3vw,46px);letter-spacing:-.035em;line-height:1.05;margin-bottom:34px}
.fld{display:flex;flex-direction:column;gap:10px;margin-bottom:26px}
.fld>span:first-child{font-weight:750;font-size:16.5px}
.fld em{font-style:normal;font-weight:500;color:var(--mut);font-size:13.5px;margin-left:6px}
.fld2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.in{width:100%;min-height:60px;padding:16px 20px;border:1.5px solid transparent;background:#fff;color:var(--ink);font-size:17px;border-radius:0;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.in::placeholder{color:#8d9087}
.in:focus{border-color:var(--ink);box-shadow:0 0 0 4px rgba(214,239,68,.6)}
textarea.in{resize:vertical;min-height:110px;line-height:1.5}
.sel{position:relative;display:block}
.sel::after{content:"";position:absolute;right:22px;top:50%;width:9px;height:9px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.sel .in{padding-right:52px;cursor:pointer}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 20px;background:#fff;font-weight:550;border:1.5px solid transparent;transition:background .2s,border-color .2s}
.chip span::after{content:"";width:18px;height:18px;border:1.5px solid var(--por3);transition:.2s}
.chip:hover span{border-color:var(--por3)}
.chip input:checked+span{background:var(--cit)}
.chip input:checked+span::after{background:var(--ink);border-color:var(--ink);box-shadow:inset 0 0 0 3px var(--cit)}
.chip input:focus-visible+span{border-color:var(--ink)}
.bstep__nav{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:38px}
.bstep__nav .btn:only-child{margin-left:0}
.bstep[data-bstep="1"] .bstep__nav{justify-content:flex-start}
.brief__note{margin-top:24px;font-size:14px;color:var(--mut)}
.brief__hp{position:absolute!important;left:-9999px}
.has-err .in,.has-err .chip span{border-color:#c6372f}
.ferr{color:#b3261e;font-size:14px;font-weight:650}
.review{background:#fff;padding:20px 22px;margin:4px 0 22px}
.review dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:14.5px}
.review dt{color:var(--mut);font-family:var(--m);font-size:11.5px;letter-spacing:.04em;padding-top:3px}
.review dd{font-weight:600}
.review__h{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.review__h button{background:none;border:0;font-weight:700;text-decoration:underline;cursor:pointer;min-height:40px}
.consent{display:flex;gap:14px;align-items:flex-start;cursor:pointer;font-size:15.5px;line-height:1.45}
.consent input{appearance:none;-webkit-appearance:none;width:24px;height:24px;flex:0 0 24px;border:1.5px solid var(--ink);background:#fff;margin-top:1px;cursor:pointer;display:grid;place-items:center}
.consent input:checked{background:var(--ink);box-shadow:inset 0 0 0 4px #fff}
.btn.is-busy{pointer-events:none;color:transparent}
.btn.is-busy::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border:2.5px solid rgba(15,17,15,.25);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.done{animation:fadeUp .6s var(--ease)}
.done[hidden]{display:none}
.done>p:not(.mono-l){font-size:18px;margin-bottom:26px}
.done .mono-l{margin-bottom:18px}
.card{background:var(--ink);color:var(--por);padding:26px 26px 22px;margin-bottom:26px;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;background:radial-gradient(circle,rgba(214,239,68,.25),transparent 70%)}
.card__h{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.card__h svg{width:34px;fill:var(--cit)}
.card dl{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;font-size:14.5px;position:relative}
.card dt{font-family:var(--m);font-size:11px;letter-spacing:.06em;color:var(--mutd);padding-top:3px}
.card dd{font-weight:600}

/* ---------- validation popup ---------- */
.pop{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:16px;background:rgba(15,17,15,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:popBg .25s}
.pop[hidden]{display:none}
@keyframes popBg{from{opacity:0}}
.pop__box{width:min(460px,100%);background:var(--por);color:var(--ink);padding:30px 28px 26px;border-top:6px solid var(--cit);animation:popIn .45s cubic-bezier(.3,1.4,.5,1)}
@keyframes popIn{from{opacity:0;transform:translateY(20px) scale(.96)}}
.pop__box h3{font-size:26px;letter-spacing:-.03em;margin:10px 0 16px;line-height:1.15}
.pop__box ul{list-style:none;margin-bottom:22px;display:flex;flex-direction:column;gap:8px}
.pop__box li button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:10px 16px;background:#fff;border:0;text-align:left;cursor:pointer;font-weight:650;transition:background .2s}
.pop__box li button:hover{background:var(--cit)}
.pop__box li small{display:block;font-weight:500;color:var(--mut);font-size:13px}

/* ---------- footer ---------- */
.ft{background:var(--ink);color:var(--por);padding:clamp(80px,9vw,150px) 0 40px}
.ft__cta{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;padding-bottom:clamp(60px,7vw,110px);border-bottom:1px solid var(--dk)}
.ft__row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:40px 0}
.ft__row img{height:46px;width:auto}
.ft__links{display:flex;gap:30px;flex-wrap:wrap;font-family:var(--m);font-size:13px;letter-spacing:.03em;color:var(--mutd)}
.ft__links a:hover{color:var(--cit)}
.ft__base{color:#5a5d55}

/* ---------- scroll reveal ---------- */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.js .rv.is-in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .caps{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 32px}
  .sols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hd__nav{gap:22px}
}
@media (max-width:980px){
  :root{--hd:72px}
  .hd__nav,.hd__cta{display:none}
  .hd__burger{display:block}
  .hd__logo,.hd__logo img{height:38px}
  .hero{min-height:0;padding-top:calc(var(--hd) + 36px)}
  .hero__grid,.split,.route__head,.apps__grid,.about,.start__grid{grid-template-columns:minmax(0,1fr)}
  .split .lede{justify-self:start}
  .mono{max-width:460px;margin:0 auto}
  .hero__cap{position:static;text-align:center;margin-top:6px}
  .demos{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}
  .apps__vis{order:-1}
  .tech__grid{grid-template-columns:minmax(0,1fr)}
  .about__mark{max-width:520px}
}
@media (max-width:720px){
  body{font-size:16px}
  .map__tabs,.route__steps{grid-template-columns:minmax(0,1fr)}
  .rstep{min-height:0}
  .flow__svg{display:none}
  .flow__nodes{flex-direction:column;align-items:flex-start;height:auto;gap:0;padding:0;border-left:2px solid var(--ink3);margin-left:22px}
  .flow__nodes li{width:auto;flex-direction:row;gap:16px;margin-left:-24px;padding:10px 0}
  .flow__n{margin-top:0}
  .caps,.sols,.feats,.fld2,.chips{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:minmax(0,1fr)}
  .btn{min-width:0;width:100%}
  .hero__cta{flex-direction:column;align-items:stretch;gap:14px}
  .hero__cta .lnk{justify-content:center}
  .hero__foot .hero__scroll{display:none}
  .hero__foot .mono-l{font-size:10.5px}
  .route__cta{flex-direction:column;align-items:stretch;gap:12px}
  .route__cta .lnk{justify-content:center}
  .filt{display:grid;grid-template-columns:1fr 1fr}
  .filt__b{min-width:0}
  .filt__b:first-child{grid-column:1/-1}
  .bstep__nav{flex-direction:column-reverse;align-items:stretch}
  .bstep__nav .lnk{justify-content:center}
  .ft__cta .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero__line>span{transform:none}
  .mono__seam{opacity:1}
}
