:root{
  --cream:#FFF4D6;
  --char:#2E2E2E;
  --soft:rgba(46,46,46,.66);
  --faint:rgba(46,46,46,.38);
  --line:rgba(46,46,46,.16);
  --cline:rgba(255,244,214,.22);
  --csoft:rgba(255,244,214,.75);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--cream);color:var(--char);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
::selection{background:var(--char);color:var(--cream);}
img{max-width:100%;display:block;}

#progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--char);z-index:80;}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px clamp(20px,4vw,56px);transition:box-shadow .4s,padding .4s,background .4s;}
nav.scrolled{background:rgba(255,244,214,.94);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);padding:13px clamp(20px,4vw,56px);}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--char);}
.brand .dot{width:11px;height:11px;border-radius:50%;background:var(--char);}
.brand .w{font-size:21px;font-weight:800;letter-spacing:-.03em;white-space:nowrap;}
.nav-right{display:flex;gap:14px;align-items:center;}
.nav-quick{display:flex;gap:24px;align-items:center;margin-right:10px;}
.nav-quick a{font-size:13px;font-weight:600;color:var(--soft);text-decoration:none;white-space:nowrap;}
.nav-quick a:hover{color:var(--char);}
@media(max-width:820px){.nav-quick{display:none;}}
.nav-cta{font-size:13px;font-weight:700;color:var(--cream);background:var(--char);padding:12px 20px;border-radius:100px;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease);white-space:nowrap;}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(46,46,46,.5);}
.menu-btn{display:flex;align-items:center;gap:10px;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--char);background:transparent;border:1.5px solid var(--char);border-radius:100px;padding:11px 18px;cursor:pointer;transition:background .25s,color .25s;}
.menu-btn:hover{background:var(--char);color:var(--cream);}
.menu-btn .ico{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.menu-btn .ico i{width:4px;height:4px;border-radius:50%;background:currentColor;}

/* menu overlay */
#menu{position:fixed;inset:0;z-index:90;background:var(--char);color:var(--cream);display:flex;flex-direction:column;justify-content:center;opacity:0;pointer-events:none;transition:opacity .45s var(--ease);}
#menu.open{opacity:1;pointer-events:auto;}
#menu .mwrap{max-width:1200px;margin:0 auto;width:100%;padding:0 clamp(20px,4vw,56px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:center;}
@media(max-width:860px){#menu .mwrap{grid-template-columns:1fr;}}
#menu .mlinks a{display:flex;align-items:baseline;gap:18px;text-decoration:none;color:var(--cream);padding:9px 0;opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease),color .25s;}
#menu.open .mlinks a{opacity:1;transform:none;}
#menu .mlinks a:hover .ml{color:var(--cream);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:3px;}
#menu .mlinks .mn{font-size:12px;font-weight:700;color:rgba(255,244,214,.45);width:26px;}
#menu .mlinks .ml{font-size:clamp(24px,3.4vw,40px);font-weight:800;letter-spacing:-.03em;color:var(--csoft);transition:color .25s;}
#menu .maside{border-left:1px solid var(--cline);padding-left:clamp(20px,3vw,44px);}
@media(max-width:860px){#menu .maside{border-left:0;padding-left:0;display:none;}}
#menu .maside img{max-width:280px;margin-bottom:22px;}
#menu .maside p{font-size:14px;line-height:1.7;color:var(--csoft);max-width:26em;}
#menu .maside .link{margin-top:16px;display:inline-block;}
#menu .mclose{position:absolute;top:20px;right:clamp(20px,4vw,56px);font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--cream);background:transparent;border:1.5px solid rgba(255,244,214,.5);border-radius:100px;padding:11px 20px;cursor:pointer;transition:border-color .25s;}
#menu .mclose:hover{border-color:var(--cream);}
body.menu-open{overflow:hidden;}

/* ---------- shared ---------- */
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,56px);}
section{padding:clamp(70px,9vw,120px) 0;}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-bottom:24px;}
.eyebrow::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--char);}
h1{font-size:clamp(34px,4.6vw,60px);font-weight:800;letter-spacing:-.035em;line-height:1.06;max-width:17em;}
h2{font-size:clamp(27px,3.4vw,42px);font-weight:800;letter-spacing:-.03em;line-height:1.1;max-width:17em;}
.sub{margin-top:20px;max-width:640px;font-size:clamp(15.5px,1.4vw,17px);line-height:1.75;color:var(--soft);}
.sub strong{color:var(--char);}
.btn{display:inline-block;margin-top:30px;font-size:15px;font-weight:700;color:var(--cream);background:var(--char);padding:16px 30px;border-radius:100px;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease);border:0;cursor:pointer;font-family:inherit;}
.btn:hover{transform:translateY(-3px);box-shadow:0 16px 30px -14px rgba(46,46,46,.55);}
.link{font-weight:700;color:var(--char);text-decoration:none;border-bottom:2px solid var(--faint);padding-bottom:2px;transition:border-color .25s;}
.link:hover{border-color:var(--char);}

.dark{background:var(--char);color:var(--cream);}
.dark .eyebrow{color:var(--csoft);}
.dark .eyebrow::before{background:var(--cream);}
.dark .sub{color:var(--csoft);}
.dark .btn{background:var(--cream);color:var(--char);}
.dark .link{color:var(--cream);border-color:rgba(255,244,214,.4);}
.dark .link:hover{border-color:var(--cream);}

.rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.rv.on{opacity:1;transform:none;}
.rv.d1{transition-delay:.12s;}.rv.d2{transition-delay:.24s;}

/* ---------- hero ---------- */
.hero{padding-top:clamp(140px,17vw,200px);position:relative;overflow:hidden;}
#stars{position:absolute;inset:0;z-index:0;pointer-events:none;}
.hero .wrap{position:relative;z-index:1;}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,5vw,80px);align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
.hero-art img{width:100%;height:auto;animation:fadein 1.4s var(--ease) .3s both;}
@keyframes fadein{from{opacity:0;transform:translateY(16px) scale(.98);}to{opacity:1;transform:none;}}
.hero-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;}
.page-hero{padding-top:clamp(140px,16vw,190px);border-bottom:1px solid var(--line);}

/* photos */
.photo{border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 50px -30px rgba(46,46,46,.4);}
.photo img{width:100%;height:100%;object-fit:cover;}

/* ---------- neural list ---------- */
.neural{margin-top:clamp(36px,4.5vw,54px);max-width:820px;position:relative;}
.neural::before{content:"";position:absolute;left:8px;top:14px;bottom:14px;width:2px;background:var(--line);}
.nrow{position:relative;padding:16px 0 16px 42px;font-size:16px;line-height:1.65;color:var(--soft);}
.nrow::before{content:"";position:absolute;left:0;top:22px;width:18px;height:18px;border-radius:50%;background:var(--cream);border:3px solid var(--char);transition:background .3s;}
.nrow:hover::before{background:var(--char);}
.nrow strong{color:var(--char);}
.dark .neural::before{background:var(--cline);}
.dark .nrow{color:var(--csoft);}
.dark .nrow::before{background:var(--char);border-color:var(--cream);}
.dark .nrow:hover::before{background:var(--cream);}
.dark .nrow strong{color:var(--cream);}

/* ---------- card grids (content splitting) ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,22px);margin-top:clamp(34px,4.5vw,52px);}
@media(max-width:760px){.grid2{grid-template-columns:1fr;}}
.gcard{position:relative;border:1px solid var(--line);border-radius:14px;padding:22px 24px 22px 52px;font-size:15px;line-height:1.65;color:var(--soft);background:rgba(255,255,255,.35);transition:transform .3s var(--ease),border-color .3s;}
.gcard::before{content:"";position:absolute;left:22px;top:27px;width:12px;height:12px;border-radius:50%;background:var(--char);}
.gcard:hover{transform:translateY(-3px);border-color:var(--char);}
.gcard strong{color:var(--char);}
.dark .gcard{background:rgba(255,244,214,.06);border-color:var(--cline);color:var(--csoft);}
.dark .gcard::before{background:var(--cream);}
.dark .gcard:hover{border-color:var(--cream);}
.dark .gcard strong{color:var(--cream);}

/* ---------- connected services (pinned) ---------- */
.svc-sec{position:relative;height:340vh;}
.svc-stick{position:sticky;top:0;height:100svh;display:flex;align-items:center;overflow:hidden;}
.svc-grid{display:grid;grid-template-columns:minmax(0,.9fr) 90px minmax(0,1.1fr);gap:0;align-items:center;width:100%;}
.svc-brand .eyebrow{margin-bottom:18px;}
.svc-brand .big{font-size:clamp(38px,5vw,64px);font-weight:800;letter-spacing:-.035em;line-height:1;}
.svc-brand img{max-width:min(300px,26vw);margin-top:26px;}
.svc-dots{display:flex;gap:10px;margin-top:30px;}
.svc-dots i{width:34px;height:5px;border-radius:3px;background:var(--line);transition:background .3s;}
.svc-dots i.on{background:var(--char);}
.svc-wire{position:relative;height:3px;background:var(--line);border-radius:2px;overflow:visible;}
.svc-wire::before,.svc-wire::after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:13px;height:13px;border-radius:50%;background:var(--char);}
.svc-wire::before{left:-6px;}
.svc-wire::after{right:-6px;}
.svc-wire .pulse{position:absolute;left:0;top:0;bottom:0;width:100%;background:var(--char);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);}
.svc-wire.zap .pulse{transform:none;}
.svc-panels{position:relative;min-height:340px;}
.svc-panel{position:absolute;inset:0;opacity:0;transform:translateY(22px);transition:opacity .45s var(--ease),transform .45s var(--ease);pointer-events:none;display:flex;flex-direction:column;justify-content:center;}
.svc-panel.on{opacity:1;transform:none;pointer-events:auto;}
.svc-panel .sn{font-size:13px;font-weight:800;letter-spacing:.2em;color:var(--faint);margin-bottom:14px;}
.svc-panel h3{font-size:clamp(24px,3vw,38px);font-weight:800;letter-spacing:-.03em;margin-bottom:14px;max-width:13em;}
.svc-panel p{font-size:16px;line-height:1.75;color:var(--soft);max-width:32em;}
.svc-panel .link{display:inline-block;margin-top:22px;align-self:flex-start;}
.svc-hint{position:absolute;bottom:clamp(24px,4vh,42px);left:0;right:0;text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);}
@media(max-width:860px){
  .svc-sec{height:auto;}
  .svc-stick{position:static;height:auto;display:block;overflow:visible;padding:clamp(70px,9vw,120px) 0;}
  .svc-grid{grid-template-columns:1fr;gap:26px;}
  .svc-wire,.svc-hint{display:none;}
  .svc-brand img{display:none;}
  .svc-panels{min-height:0;}
  .svc-panel{position:static;opacity:1;transform:none;pointer-events:auto;margin-bottom:34px;}
}

/* ---------- photo quote band ---------- */
.quote-band{position:relative;background-size:cover;background-position:center 30%;padding:clamp(110px,16vw,190px) 0;}
.quote-band::before{content:"";position:absolute;inset:0;background:rgba(46,46,46,.82);}
.quote-band .wrap{position:relative;}
.quote-band blockquote{font-size:clamp(26px,3.6vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.15;color:var(--cream);max-width:18em;}
.quote-band cite{display:block;margin-top:22px;font-style:normal;font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--csoft);}

/* ---------- method strip ---------- */
.method{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:clamp(40px,5vw,60px);position:relative;}
@media(max-width:860px){.method{grid-template-columns:1fr;}}
.mstep{position:relative;padding:26px 22px 0 0;}
.mstep .dotline{position:relative;height:20px;margin-bottom:18px;}
.mstep .dotline::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;background:var(--char);}
.mstep .dotline::after{content:"";position:absolute;left:24px;right:0;top:50%;height:2px;background:var(--line);}
.mstep:last-child .dotline::after{display:none;}
@media(max-width:860px){.mstep .dotline::after{display:none;}}
.mstep .mn{font-size:12px;font-weight:800;letter-spacing:.16em;color:var(--faint);margin-bottom:6px;}
.mstep h3{font-size:19px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px;}
.mstep p{font-size:14px;line-height:1.65;color:var(--soft);}
.dark .mstep .dotline::before{background:var(--cream);}
.dark .mstep .dotline::after{background:var(--cline);}
.dark .mstep .mn{color:rgba(255,244,214,.5);}
.dark .mstep p{color:var(--csoft);}

/* ---------- split ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:center;}
@media(max-width:860px){.split{grid-template-columns:1fr;}}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.tag{font-size:12.5px;font-weight:700;letter-spacing:.04em;border:1.5px solid var(--line);border-radius:100px;padding:9px 16px;color:var(--soft);transition:border-color .25s,color .25s;}
.tag:hover{border-color:var(--char);color:var(--char);}
.dark .tag{border-color:var(--cline);color:var(--csoft);}
.dark .tag:hover{border-color:var(--cream);color:var(--cream);}

/* ---------- routes (secondary pages) ---------- */
.routes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.2vw,28px);margin-top:clamp(36px,4.5vw,56px);}
@media(max-width:820px){.routes{grid-template-columns:1fr;}}
.route{display:block;background:rgba(255,255,255,.42);border:1px solid var(--line);border-radius:16px;padding:clamp(26px,3vw,38px);text-decoration:none;color:inherit;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;}
.route:hover{transform:translateY(-6px);box-shadow:0 26px 48px -28px rgba(46,46,46,.45);border-color:var(--char);}
.route .rn{font-size:12px;font-weight:800;letter-spacing:.18em;color:var(--faint);margin-bottom:14px;}
.route h3{font-size:clamp(20px,2.2vw,26px);font-weight:800;letter-spacing:-.025em;margin-bottom:10px;}
.route p{font-size:14.5px;line-height:1.7;color:var(--soft);}
.route .go{display:inline-block;margin-top:18px;font-size:13.5px;font-weight:700;border-bottom:2px solid var(--faint);padding-bottom:2px;transition:border-color .25s;}
.route:hover .go{border-color:var(--char);}

/* ---------- big CTA ---------- */
.bigcta{border-top:1px solid var(--line);}
.bigcta h2{max-width:15em;}

/* ---------- forms ---------- */
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(30px,5vw,70px);margin-top:clamp(34px,4vw,52px);align-items:start;}
@media(max-width:860px){.form-grid{grid-template-columns:1fr;}}
form{display:grid;gap:16px;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:600px){.f-row{grid-template-columns:1fr;}}
label{display:block;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-bottom:7px;}
input,select,textarea{width:100%;background:rgba(255,255,255,.6);border:1.5px solid var(--line);border-radius:10px;padding:13px 15px;font-family:inherit;font-size:15px;color:var(--char);appearance:none;transition:border-color .25s,box-shadow .25s;}
textarea{min-height:120px;resize:vertical;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--char);box-shadow:0 8px 20px -12px rgba(46,46,46,.4);}
.f-note{font-size:12.5px;color:var(--faint);line-height:1.6;}
.f-done{display:none;border:1.5px solid var(--line);border-radius:16px;background:rgba(255,255,255,.6);padding:clamp(26px,3vw,40px);}
.f-done h3{font-size:clamp(21px,2.4vw,27px);font-weight:800;letter-spacing:-.025em;margin-bottom:10px;}
.f-done p{font-size:15px;line-height:1.7;color:var(--soft);}
form.sent{display:none;}
form.sent + .f-done{display:block;}
.contact-ways{display:grid;gap:14px;margin-top:26px;}
.way{display:flex;justify-content:space-between;gap:14px;align-items:baseline;border-top:1px solid var(--line);padding:14px 0 0;font-size:14.5px;color:var(--soft);}
.way b{color:var(--char);font-weight:700;}

/* ---------- footer ---------- */
footer{background:var(--char);color:var(--cream);}
footer .fwrap{max-width:1200px;margin:0 auto;padding:clamp(50px,6vw,80px) clamp(20px,4vw,56px) 40px;}
footer .ftop{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(30px,5vw,70px);align-items:center;padding-bottom:clamp(30px,4vw,50px);}
@media(max-width:820px){footer .ftop{grid-template-columns:1fr;}}
footer .fbrand{font-size:26px;font-weight:800;letter-spacing:-.03em;}
footer .fsub{margin-top:12px;font-size:14.5px;line-height:1.7;color:var(--csoft);max-width:34em;}
footer .fart img{width:100%;max-width:420px;margin-left:auto;}
@media(max-width:820px){footer .fart img{margin-left:0;}}
footer .fnav{display:flex;flex-wrap:wrap;gap:12px 26px;border-top:1px solid var(--cline);padding-top:26px;}
footer .fnav a{font-size:13px;font-weight:600;color:var(--csoft);text-decoration:none;}
footer .fnav a:hover{color:var(--cream);}
footer .legal{margin-top:22px;font-size:12px;color:rgba(255,244,214,.5);}

/* review pill */
.review{position:fixed;bottom:16px;right:16px;z-index:70;background:var(--char);color:var(--cream);border-radius:100px;padding:9px 16px;font-size:12px;font-weight:700;letter-spacing:.04em;display:flex;gap:12px;align-items:center;box-shadow:0 12px 26px -12px rgba(46,46,46,.6);}
.review a{color:rgba(255,244,214,.75);text-decoration:none;}
.review a:hover{color:#fff;}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01s !important;animation-delay:0s !important;transition-duration:.01s !important;}
  html{scroll-behavior:auto;}
}
