:root{--blue:#2336E8;--ink:#0B0C14;--paper:#F7F7F5;--soft:#5E6073;--lilac:#CBD0FF;--line:rgba(11,12,20,.14);
  --serif:'Instrument Serif',Georgia,serif;--sans:'Hanken Grotesk',system-ui,sans-serif;--ease:cubic-bezier(.16,1,.3,1);
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
  *{box-sizing:inherit;margin:0;padding:0}
  html{scroll-behavior:smooth;scroll-padding-top:80px}
  body{background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:.95}
  .wrap{max-width:1280px;margin:0 auto;padding:0 40px}
  @media(max-width:720px){.wrap{padding:0 22px}}
  section{padding-block:120px}
  @media(max-width:720px){section{padding-block:72px}}
  
  header{position:sticky;top:0;z-index:50;background:rgba(247,247,245,.82);backdrop-filter:blur(14px);padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid var(--line)}
  nav{display:flex;align-items:center;justify-content:space-between;padding:14px 40px;max-width:1280px;margin:0 auto;gap:20px}
  @media(max-width:720px){nav{padding:12px 22px}}
  .brand{display:inline-flex;align-items:center;gap:10px;font:400 1.7rem/1 var(--serif);letter-spacing:-.01em}
  .logo{width:34px;height:34px;flex:none;transition:transform .6s var(--ease)}
  
  .links{display:flex;gap:34px;font-size:.92rem;font-weight:500}
  .links a{position:relative}.links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
  .links a:hover::after{transform:scaleX(1);transform-origin:left}
  @media(max-width:800px){.links{display:none}}
  
  .btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);font:600 .92rem var(--sans);padding:14px 28px;border:1px solid var(--ink);border-radius:100px;cursor:pointer;transition:color .35s,transform .3s var(--ease)}
  .btn::before{content:"";position:absolute;inset:0;background:var(--blue);transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1}
  .btn:hover::before{transform:none}.btn:hover{color:#fff;border-color:var(--blue)}
  .btn-ghost{background:transparent;color:inherit;border-color:currentColor}
  .btn-ghost::before{background:currentColor}.btn-ghost:hover{color:var(--paper);border-color:var(--ink)}
  .btn-ghost:hover::before{background:var(--ink)}
  .btn:disabled{opacity:.5;cursor:default}
  .btn:focus-visible,.opt:focus-visible,.field input:focus{outline:2px solid var(--blue);outline-offset:3px}
  
  /* hero */
  .hero{background:var(--blue);color:#fff;padding:70px 0 90px;overflow:hidden;position:relative}
  .hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
  @media(max-width:1000px){.hero .wrap{grid-template-columns:1fr}}
  .kicker{font-size:.95rem;color:var(--lilac);margin-bottom:26px}
  .hero h1{font-size:clamp(3.6rem,8.6vw,8rem);line-height:.9}
  .hero h1 .l{display:block;overflow:hidden;padding:.04em 0 .1em}
  .hero h1 .l>span{display:block;transform:translateY(105%);animation:up 1s var(--ease) forwards}
  .hero h1 .l:nth-child(2)>span{animation-delay:.1s;font-style:italic;color:var(--lilac)}
  .hero h1 .l:nth-child(3)>span{animation-delay:.2s}
  @keyframes up{to{transform:none}}
  .hero .sub{max-width:40ch;margin:34px 0;font-size:1.15rem;color:rgba(255,255,255,.86);opacity:0;animation:in .9s .6s var(--ease) forwards}
  .hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;opacity:0;animation:in .9s .75s var(--ease) forwards}
  .hero .btn{background:#fff;color:var(--blue);border-color:#fff}.hero .btn::before{background:var(--ink)}.hero .btn:hover{color:#fff;border-color:var(--ink)}
  .hero .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}.hero .btn-ghost::before{background:#fff}.hero .btn-ghost:hover{color:var(--blue);border-color:#fff}
  @keyframes in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  
  /* stage: browser mockups */
  .stage{position:relative;height:540px;perspective:1100px;--mx:0;--my:0}
  @media(max-width:1000px){.stage{height:400px;margin-top:20px}}
  .win{position:absolute;width:min(300px,62vw);background:#fff;color:var(--ink);border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(5,10,80,.55);
  transform:translate3d(calc(var(--mx)*var(--d)*1px),calc(var(--my)*var(--d)*1px),0) rotate(var(--r));animation:float 7s ease-in-out infinite,pop 1.1s var(--ease) both;animation-delay:var(--dl),var(--dl)}
  @keyframes float{50%{translate:0 -10px}}
  @keyframes pop{from{opacity:0;scale:.8}}
  .win .bar{display:flex;align-items:center;gap:5px;padding:9px 12px;background:#eceef5}
  .win .bar i{width:8px;height:8px;border-radius:50%;background:#c3c7d9}
  .win .bar b{margin-left:8px;flex:1;background:#fff;border-radius:6px;padding:1px 8px;font:500 .62rem var(--sans);color:var(--soft)}
  .win .pg{padding:16px}
  .win h5{font:400 1.55rem/1 var(--serif);color:var(--c)}
  .win p{font-size:.68rem;color:var(--soft);margin:6px 0 10px}
  .win .go{display:inline-block;background:var(--c);color:#fff;font:600 .62rem var(--sans);padding:6px 12px;border-radius:50px}
  .win .row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
  .win .row u{height:46px;border-radius:7px;background:var(--c);opacity:.16}
  .win .row u:nth-child(2){opacity:.3}
  .w1{--c:#1B4FD8;--r:-7deg;--d:-18;--dl:0s;left:0;top:30px}
  .w2{--c:#C2410C;--r:4deg;--d:22;--dl:.15s;right:0;top:150px;z-index:2}
  .w3{--c:#BE185D;--r:-2deg;--d:34;--dl:.3s;left:70px;bottom:0;z-index:3}
  .w2{animation-delay:1.2s,.15s}.w3{animation-delay:2.4s,.3s}
  @media(max-width:560px){.w3{left:20px}}
  
  
  /* stats */
  .stats{display:grid;grid-template-columns:repeat(4,1fr)}
  @media(max-width:800px){.stats{grid-template-columns:1fr 1fr;row-gap:40px}}
  .stat{border-left:1px solid var(--line);padding-left:24px}.stat:first-child{border:0;padding:0}
  @media(max-width:800px){.stat:nth-child(3){border:0;padding:0}}
  .stat .num{font:400 clamp(3.4rem,6.5vw,6rem)/1 var(--serif);color:var(--blue)}
  .stat .label{color:var(--soft);font-size:.92rem;margin-top:8px;max-width:20ch}
  
  .sh{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:52px;padding-bottom:26px;border-bottom:1px solid var(--line);flex-wrap:wrap}
  .sh h2{font-size:clamp(2.8rem,6.4vw,5.6rem)}.sh h2 em{color:var(--blue)}
  .sh p{max-width:34ch;color:var(--soft)}
  
  /* reveal */
  .js .rv{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--i,0s)}
  .js .rv.on{opacity:1;transform:none}
  .js .mask{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.js .mask.on{opacity:1;transform:none}
  
  /* rows (services + pricing) */
  .row2{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:1fr 1.4fr;gap:28px;padding:38px 20px;margin:0 -20px;border-top:1px solid var(--line);align-items:baseline;transition:color .4s}
  .row2:last-child{border-bottom:1px solid var(--line)}
  .row2::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease);z-index:-1}
  .row2:hover::before{transform:scaleY(1)}.row2:hover{color:var(--paper)}.row2:hover p,.row2:hover ul,.row2:hover .tag{color:rgba(247,247,245,.75)}
  @media(max-width:760px){.row2{grid-template-columns:1fr;gap:10px}}
  .row2 h3{font-size:clamp(2.2rem,4vw,3.4rem)}.row2 p{color:var(--soft);max-width:52ch}
  .price .row2{grid-template-columns:1.5fr 1fr 1.7fr .7fr;align-items:center}
  @media(max-width:900px){.price .row2{grid-template-columns:1fr}}
  .row2.pop{background:var(--blue);color:#fff}.row2.pop::before{background:var(--ink)}.row2.pop .tag,.row2.pop ul{color:var(--lilac)}
  .tag{font-size:.85rem;color:var(--soft);font-style:italic;margin-bottom:6px}
  .amt{font:400 2.2rem/1 var(--serif)}
  .row2 ul{list-style:none;font-size:.92rem;color:var(--soft)}.row2 li::before{content:"+ ";color:var(--blue)}.row2.pop li::before,.row2:hover li::before{color:var(--lilac)}
  .deliv{font-size:.9rem;font-weight:600;text-align:right}@media(max-width:900px){.deliv{text-align:left}}
  .care{margin-top:30px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
  .care h4{font-size:2rem}.care p{color:var(--soft);font-size:.92rem;max-width:50ch;margin-top:4px}
  .fee-note{margin-top:22px;font-size:.9rem;color:var(--soft)}
  
  /* process */
  .steps{--p:0;position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding-top:44px}
  .steps::before,.steps::after{content:"";position:absolute;top:10px;left:0;height:2px;background:var(--line);width:100%}
  .steps::after{background:var(--blue);width:calc(var(--p)*100%);transition:width .2s linear}
  @media(max-width:820px){.steps{grid-template-columns:1fr;padding:0 0 0 34px}.steps::before,.steps::after{top:0;left:10px;width:2px;height:100%}.steps::after{height:calc(var(--p)*100%);width:2px}}
  .step{position:relative}
  .step::before{content:"";position:absolute;top:-44px;left:0;width:22px;height:22px;border-radius:50%;background:var(--paper);border:2px solid var(--line);transition:.4s var(--ease)}
  @media(max-width:820px){.step::before{top:6px;left:-34px}}
  .step.on::before{background:var(--blue);border-color:var(--blue);transform:scale(1.15)}
  .step h4{font-size:2rem;margin-bottom:6px}.step p{font-size:.9rem;color:var(--soft)}
  
  /* intake */
  .intake{border:1px solid var(--line);padding:48px;background:#fff;border-radius:6px}
  @media(max-width:720px){.intake{padding:26px}}
  .intake-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:30px;flex-wrap:wrap;gap:10px}
  .progress-track{font-size:.8rem;color:var(--soft)}
  .field{margin-bottom:22px}.field label{display:block;color:var(--soft);margin-bottom:10px}
  .field input{width:100%;background:transparent;border:0;border-bottom:1.5px solid var(--line);color:var(--ink);padding:12px 2px;font:400 2rem var(--serif);transition:border-color .3s}
  .field input:focus{border-color:var(--blue);outline:0}
  .opts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:640px){.opts{grid-template-columns:1fr}}
  .opt{border:1px solid var(--line);padding:18px;cursor:pointer;border-radius:10px;transition:transform .3s var(--ease),background .25s,color .25s,border-color .25s}
  .opt:hover{border-color:var(--blue);transform:translateY(-3px)}
  .opt strong{display:block;font:400 1.6rem var(--serif)}.opt span{font-size:.82rem;color:var(--soft)}
  .opt.selected{background:var(--blue);border-color:var(--blue);color:#fff}.opt.selected span{color:var(--lilac)}
  .intake-nav{display:flex;justify-content:space-between;margin-top:30px}
  .low-budget-note{border-left:2px solid var(--blue);padding:14px 18px;font-size:.9rem;color:var(--soft);margin-top:16px;display:none}
  .step-panel{display:none}.step-panel.active{display:block;animation:in .6s var(--ease)}
  .confirm{text-align:center;padding:20px 0}.confirm .check{font-size:2.4rem;color:var(--blue)}
  
  footer{background:var(--ink);color:var(--paper);padding:100px 0 40px;overflow:hidden}
  footer .cta{display:block;font:400 clamp(4rem,15vw,14rem)/.85 var(--serif);letter-spacing:-.04em;margin-bottom:70px;transition:color .4s,letter-spacing .6s var(--ease)}
  footer .cta:hover{color:var(--lilac);letter-spacing:-.02em}
  .fr{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;border-top:1px solid rgba(247,247,245,.18);padding-top:30px}
  footer p{color:rgba(247,247,245,.6);font-size:.9rem;max-width:44ch}
  
  @media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .rv,.js .mask{opacity:1;transform:none}.hero h1 .l>span,.hero .sub,.hero .cta-row{transform:none;opacity:1}}
  
  .js .row2.rv{transition:opacity .8s var(--ease),transform .8s var(--ease),color .4s}
  
  /* less text at rest, details on hover (touch devices keep everything visible) */
  .hov{display:none}
  .row2:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
  .row2:focus-visible::before{transform:scaleY(1)}.row2:focus-visible{color:var(--paper)}
  @media(hover:hover) and (pointer:fine){
    .hov{display:inline}
    .row2 p,.row2 ul,.step p,.care p{opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
    .row2:hover p,.row2:focus-visible p,.row2:hover ul,.row2:focus-visible ul,.step:hover p,.care:hover p{opacity:1;transform:none}
  }
  
  /* default view equals a 125% browser zoom on desktop screens */
  @media(min-width:1280px){html{zoom:1.25}}