:root{
  --ink:#111318;
  --ink-soft:#22252c;
  --paper:#F5F4F0;
  --card:#EDE9E0;
  --border:#E0DBD0;
  --accent:#FF5A1F;
  --accent-dim:#c74716;
  --muted:#5B6470;
  --white:#ffffff;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background-color:var(--paper);
  background-image:
    radial-gradient(var(--border) 1.25px, transparent 1.25px),
    radial-gradient(800px 600px at 15% 10%, rgba(17, 19, 24, 0.045), transparent 70%),
    radial-gradient(900px 700px at 85% 30%, rgba(91, 100, 112, 0.055), transparent 75%),
    radial-gradient(750px 650px at 30% 90%, rgba(17, 19, 24, 0.035), transparent 65%);
  background-size: 24px 24px, 100% 100%, 100% 100%, 100% 100%;
  background-attachment: fixed;
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3{font-family:'Space Grotesk',sans-serif; font-weight:600; letter-spacing:-0.02em;}
.mono{font-family:'DM Mono',monospace;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

.wrap{max-width:1400px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

/* ---------- NAV ---------- */
.site-nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 32px; margin:0 auto; position:sticky; top:0; z-index:100;
  background:rgba(245,244,240,.92);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid var(--border);
  box-shadow:0 2px 16px -12px rgba(17,19,24,.15);
  transition:box-shadow .3s;
  width:100%;
}
.site-nav.scrolled{
  box-shadow:0 8px 24px -16px rgba(17,19,24,.28);
}
.site-nav-inner{display:flex; align-items:center; justify-content:space-between; max-width:1400px; margin:0 auto; width:100%;}
.logo{display:flex; align-items:baseline; gap:1px; font-size:22px;}
.logo .g{font-family:'Space Grotesk',sans-serif; font-weight:700; color:var(--ink); letter-spacing:-0.03em;}
.logo .s{font-family:'DM Mono',monospace; font-size:14px; color:var(--accent); margin-left:1px;}

.nav-links{display:flex; gap:36px; font-size:14.5px; font-weight:500;}
.nav-links a{opacity:.75; transition:opacity .2s; position:relative;}
.nav-links a:hover{opacity:1;}
.nav-links a.active{opacity:1;}
.nav-links a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--accent);
}
.nav-cta{
  background:var(--ink); color:var(--white); padding:11px 20px; border-radius:0;
  font-size:14px; font-weight:500; transition:background .2s;
}
.nav-cta:hover{background:var(--accent-dim);}
.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.nav-toggle span{width:22px; height:2px; background:var(--ink); transition:background .2s;}
.mobile-menu{
  display:none; position:fixed; inset:0; background:var(--ink); z-index:200;
  flex-direction:column; padding:28px 32px;
}
.mobile-menu.open{display:flex;}
.mobile-menu-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:50px;}
.mobile-menu .logo .g{color:var(--white);}
.mobile-close{background:none; border:none; color:var(--white); font-size:28px; cursor:pointer; line-height:1;}
.mobile-menu a{color:var(--white); font-size:26px; padding:16px 0; border-bottom:1px solid #2a2d34; font-family:'Space Grotesk',sans-serif;}
.mobile-menu .nav-cta{margin-top:30px; text-align:center; color:var(--accent); border:1px solid var(--accent); border-bottom:1px solid var(--accent); background:transparent;}
@media (max-width:860px){
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
  .site-nav .nav-cta{display:none;}
}

/* ---------- TEXTURE ---------- */
.dot-grid{
  background-image:radial-gradient(var(--border) 1px, transparent 1px);
  background-size:22px 22px;
}
.glow-blob{display:none;}

.underline-accent{position:relative; display:inline-block;}
.underline-accent::after{
  content:''; position:absolute; left:0; bottom:-4px; height:3px; width:100%;
  background:var(--accent); border-radius:0; transform:scaleX(0); transform-origin:left;
  animation:underline-in .6s cubic-bezier(.16,1,.3,1) .5s forwards;
}
.reveal.in .underline-accent::after{transform:scaleX(1);}
@keyframes underline-in{to{transform:scaleX(1);}}
@media (prefers-reduced-motion: reduce){ .underline-accent::after{animation:none; transform:scaleX(1);} }

/* ---------- BUTTONS ---------- */
.btn-primary{
  background:var(--accent); color:var(--white); padding:15px 26px; border-radius:0;
  font-weight:600; font-size:15px; transition:transform .15s, background .2s; display:inline-block;
}
.btn-primary:hover{background:var(--accent-dim); transform:translateY(-1px);}
.btn-ghost{
  border:1px solid var(--border); padding:15px 26px; border-radius:0;
  font-weight:500; font-size:15px; transition:border-color .2s, background .2s; display:inline-block;
}
.btn-ghost:hover{border-color:var(--ink); background:var(--card);}
.btn-ghost.on-dark{border-color:#3a3d45; color:var(--white);}
.btn-ghost.on-dark:hover{border-color:var(--white); background:#1c1f26;}

/* ---------- PAGE HERO ---------- */
.page-hero{padding:56px 32px 60px; max-width:1400px; margin:0 auto; position:relative;}
.page-hero::before{
  content:''; position:absolute; top:-20px; right:0; width:340px; height:280px;
  background-image:radial-gradient(var(--border) 1.5px, transparent 1.5px);
  background-size:20px 20px; opacity:.6; z-index:-1;
  mask-image:radial-gradient(ellipse at center, black 40%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center, black 40%, transparent 75%);
}
.page-hero .eyebrow{display:block; margin-bottom:16px;}
.page-hero h1{font-size:44px; line-height:1.12; max-width:820px;}
.page-hero .accent{color:var(--accent);}
.page-hero p{font-size:17px; color:var(--muted); max-width:640px; margin-top:16px; line-height:1.6;}
@media (max-width:640px){ .page-hero h1{font-size:32px;} }

.eyebrow{
  font-family:'DM Mono',monospace; font-size:13px; color:var(--accent);
  letter-spacing:.06em;
}

/* ---------- SECTION SHARED ---------- */
section{padding:80px 0;}
.section-head{margin-bottom:44px;}
.section-head h2{font-size:32px; max-width:640px;}
.section-head p{color:var(--muted); font-size:16px; margin-top:12px; max-width:560px; line-height:1.6;}
@media (max-width:640px){ .section-head h2{font-size:26px;} section{padding:56px 0;} }

/* ---------- REVIEWS & TESTIMONIALS ---------- */
.review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.review-card{background:rgba(255,255,255,.7); border-radius:0; padding:28px 26px; border:1px solid var(--border); display:flex; flex-direction:column; justify-content:space-between;}
.review-card .stars{color:var(--accent); letter-spacing:2px; font-size:15px; display:block; margin-bottom:14px;}
.review-quote{color:var(--ink); font-size:14.5px; line-height:1.6; margin-bottom:20px; font-style:normal;}
.review-name{font-size:13px; color:var(--ink); font-weight:600; font-family:'Inter',sans-serif;}
@media (max-width:860px){.review-grid{grid-template-columns:1fr;}}

/* ---------- HERO DATA PREVIEW ---------- */
.hero-preview{
  width:100%;
  border:1px solid var(--border);
  border-radius:0;
  overflow:hidden;
  background:var(--white);
  box-shadow:0 18px 36px -18px rgba(17,19,24,.12);
}
.hero-preview img{
  width:100%;
  height:auto;
  display:block;
  border-radius:0;
}

/* ---------- WORK CARDS & THUMBNAILS ---------- */
.work-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.work-card{
  border:1px solid var(--border);
  border-radius:0;
  overflow:hidden;
  transition:border-color .2s, transform .2s;
  background:rgba(255,255,255,.65);
}
.work-card:hover{border-color:var(--ink); transform:translateY(-3px);}
.work-thumb{
  height:210px;
  background:var(--card);
  border-bottom:1px solid var(--border);
  overflow:hidden;
  position:relative;
}
.work-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:0;
}
.work-body{padding:20px 22px 24px;}
.work-body h3{font-size:17.5px; margin-bottom:8px;}
.work-body p{font-size:14px; color:var(--muted); line-height:1.55;}
@media (max-width:860px){.work-grid{grid-template-columns:1fr;}}

/* ---------- DEVICE FRAMES & SIZING ---------- */
.device-frame{
  cursor:default;
  border:1px solid var(--border) !important;
  border-radius:0 !important;
  background:var(--white) !important;
  padding:0 !important;
  box-shadow:0 12px 28px -12px rgba(17,19,24,.18) !important;
  overflow:hidden;
}
.device-frame.phone{width:100%; max-width:380px; margin:0 auto;}
.device-frame.laptop{width:100%;}
.device-frame.laptop::after{display:none !important;}

.device-shot{
  border:none !important;
  border-radius:0 !important;
  padding:0 !important;
  background:transparent !important;
  height:auto !important;
}
.device-shot img{
  width:100%;
  height:auto !important;
  display:block;
  border-radius:0 !important;
}

.device-frame.kds-frame{width:100%; max-width:100%; margin:0 auto;}
.device-frame.kds-frame .device-shot img{aspect-ratio:16 / 9.5; object-fit:contain;}

.pair-block.vertical-receipts{grid-template-columns:1fr 1fr; max-width:860px; margin:40px auto 0;}
.device-frame.receipt-frame{width:100%; max-width:380px; margin:0 auto;}
.device-frame.receipt-frame .device-shot img{height:auto !important; max-height:none !important; object-fit:contain;}

/* ---------- SCROLL REVEAL ---------- */
.reveal{
  opacity:0; transform:translateY(22px) scale(.985);
  transition:opacity .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--rd, 0ms);
  will-change:opacity, transform;
}
.reveal.in{opacity:1; transform:translateY(0) scale(1);}
.reveal-scale{opacity:0; transform:scale(.92); transition:opacity .5s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1); transition-delay:var(--rd, 0ms);}
.reveal-scale.in{opacity:1; transform:scale(1);}
.reveal-left{opacity:0; transform:translateX(-24px); transition:opacity .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1); transition-delay:var(--rd, 0ms);}
.reveal-left.in{opacity:1; transform:translateX(0);}
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-scale, .reveal-left{opacity:1; transform:none; transition:none;}
}

/* ---------- CONTACT BLOCK ---------- */
.contact-block{background:var(--ink); color:var(--white); border-radius:0; margin:0 32px 100px; padding:64px 56px; max-width:1400px; margin-left:auto; margin-right:auto;}
.contact-block h2{color:var(--white); font-size:36px; margin-bottom:12px;}
.contact-block p{color:#9a9ea6; font-size:16px; margin-bottom:30px;}
@media (max-width:640px){ .contact-block{padding:40px 28px; margin:0 20px 70px;} .contact-block h2{font-size:26px;} }

/* ---------- FOOTER (SERVICES COLUMN REMOVED) ---------- */
footer{padding:0; max-width:1400px; margin:0 auto; width:100%;}
.footer-main{
  display:grid; grid-template-columns:1.8fr 1fr 1fr 1.2fr; gap:48px;
  padding:60px 32px 44px; border-top:1px solid var(--border);
}
.footer-brand .logo{margin-bottom:14px;}
.footer-brand p{color:var(--muted); font-size:13.5px; line-height:1.6; max-width:320px;}
.footer-col h4{font-family:'DM Mono',monospace; font-size:11.5px; letter-spacing:.08em; color:var(--muted); margin-bottom:18px;}
.footer-col a{display:block; font-size:14px; color:var(--ink); margin-bottom:11px; opacity:.85; transition:opacity .2s;}
.footer-col a:hover{opacity:1; color:var(--accent);}
.footer-social-row{display:flex; gap:12px; align-items:center; margin-top:8px;}
.footer-social-link{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  color:var(--ink) !important;
  opacity:.85;
  transition:color .2s, opacity .2s;
}
.footer-social-link:hover{opacity:1; color:var(--accent) !important;}
.footer-social-link svg{vertical-align:middle;}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding:22px 32px;
  border-top:1px solid var(--border); color:var(--muted); font-size:13px;
}
@media (max-width:860px){
  .footer-main{grid-template-columns:1fr 1fr; gap:36px; padding:44px 20px 30px;}
}
@media (max-width:540px){
  .footer-main{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column; gap:8px; padding:20px;}
}

/* ---------- HERO ---------- */
.hero{
  display:grid; grid-template-columns:1fr auto; gap:140px;
  align-items:center; padding:0 32px; max-width:1400px; margin:0 auto;
  position:relative; overflow:hidden;
  min-height:calc(100vh - 74px);
}
.hero h1{font-size:50px; line-height:1.1; margin-bottom:24px; white-space:nowrap;}
.hero p{font-size:17.5px; line-height:1.6; color:var(--muted); max-width:520px; margin-bottom:34px;}
.cta-row{display:flex; gap:14px; flex-wrap:wrap;}

/* Homepage Micro-Trust */
.mini-trust{
  margin-top:24px;
  display:flex;
  flex-direction:column;
  gap:4px;
  max-width:480px;
  line-height:1.5;
}
.mini-trust-stars .stars{
  color:var(--accent);
  letter-spacing:1px;
  font-size:14px;
}
.mini-trust-meta{
  font-size:12px;
  color:#7A818C;
  letter-spacing:.02em;
}
.mini-trust-quote{
  color:var(--ink);
  font-size:13.5px;
  font-weight:500;
  margin-top:2px;
}

.scroll-cue{
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-family:'DM Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:.08em;
  animation:cue-bob 2s ease-in-out infinite;
}
.scroll-cue .line{width:1px; height:26px; background:var(--border);}
@keyframes cue-bob{0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(6px);}}

/* Terminal */
.terminal{
  background:var(--ink);
  border-radius:14px !important;
  padding:28px 30px 26px;
  border:1px solid #2a2d34;
  box-shadow:0 30px 60px -20px rgba(17,19,24,.35);
  position:relative;
  width:580px;
  max-width:100%;
  height:410px;
  display:flex;
  flex-direction:column;
}
.terminal-bar{display:flex; gap:7px; margin-bottom:18px; flex-shrink:0;}
.dot{width:9px; height:9px; border-radius:50%; background:#3a3d45;}
.term-label{font-family:'DM Mono',monospace; font-size:11.5px; color:#6d727c; margin-bottom:14px; letter-spacing:.04em; flex-shrink:0;}
.term-body{font-family:'DM Mono',monospace; font-size:15px; color:#e8e6e0; line-height:1.9; flex:1; overflow:hidden;}
.term-line{opacity:0; white-space:nowrap;}
.term-line.show{opacity:1;}
.cursor{display:inline-block; width:8px; height:16px; background:var(--accent); vertical-align:middle; margin-left:2px; animation:blink 1s step-end infinite;}
@keyframes blink{50%{opacity:0;}}
.ticket{margin-top:16px; background:#1c1f26; border:1px dashed #3a3d45; border-radius:6px; padding:14px 16px; opacity:0; transform:translateY(6px); transition:opacity .4s, transform .4s;}
.ticket.show{opacity:1; transform:translateY(0);}
.ticket .tt{color:var(--accent); font-size:12px; letter-spacing:.05em; margin-bottom:6px;}
.ticket .tid{font-size:22px; color:var(--white); font-weight:500;}

@media (max-width:1400px){ .hero{max-width:1180px; gap:80px;} .terminal{width:480px; height:390px;} }
@media (max-width:900px){ .hero{grid-template-columns:1fr; gap:56px; min-height:auto; padding:44px 32px 90px;} .hero h1{font-size:38px; white-space:normal;} .scroll-cue{display:none;} .terminal{width:100%; height:auto; min-height:330px;} .term-line{white-space:normal;} }
@media (prefers-reduced-motion: reduce){ 
  .term-line, .ticket{transition:none; opacity:1; transform:none;} 
  .cursor, .scroll-cue{animation:none;} 
}

/* ---------- PRINCIPLES ---------- */
.principles{background:rgba(255,255,255,.55); border-top:1px solid var(--border); border-bottom:1px solid var(--border); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);}
.principles-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
.principle h3{font-size:20px; margin-bottom:10px;}
.principle p{color:var(--muted); font-size:14.5px; line-height:1.6;}
@media (max-width:860px){.principles-grid{grid-template-columns:1fr; gap:28px;}}

.process-band{background:var(--ink); color:var(--white);}
.process-band .section-head h2{color:var(--white);}
.process-band .section-head p{color:#9a9ea6;}
.process-list{display:grid; grid-template-columns:1fr; max-width:640px; gap:0;}
.step{display:flex; gap:18px; padding:20px 0; border-bottom:1px solid #2a2d34;}
.step .num{font-family:'DM Mono',monospace; color:var(--accent); font-size:14px; width:26px; flex-shrink:0;}
.step .txt strong{display:block; font-size:15.5px; margin-bottom:3px;}
.step .txt span{font-size:13.5px; color:#9a9ea6; line-height:1.5;}

.services-row{display:flex; flex-wrap:wrap; gap:16px;}
.criteria-list{display:flex; flex-direction:column; gap:0; max-width:640px;}
.criteria-item{display:flex; align-items:baseline; gap:14px; padding:18px 0; border-bottom:1px solid var(--border); font-size:16px; color:var(--ink); line-height:1.5;}
.criteria-item:first-child{border-top:1px solid var(--border);}
.criteria-item .mark{color:var(--accent); font-family:'DM Mono',monospace; flex-shrink:0;}
.service-pill{border:1px solid var(--border); border-radius:0; padding:18px 22px; flex:1; min-width:220px; transition:transform .3s cubic-bezier(.16,1,.3,1), border-color .3s; background:rgba(255,255,255,.65);}
.service-pill:hover{transform:translateY(-4px); border-color:var(--accent);}
.service-pill h3{font-size:15.5px; margin-bottom:4px;}
.service-pill span{font-size:13px; color:var(--muted);}

/* ---------- WORK / CASES ---------- */
.case{padding:90px 32px; border-top:1px solid var(--border); margin:0 -32px; border-radius:0;}
.case:nth-child(even){background:var(--card); border-top-color:transparent;}
.case:first-of-type{border-top:none;}
.case-head{display:grid; grid-template-columns:1fr 1.1fr; gap:60px; margin-bottom:56px; align-items:start;}
.case-head h2{font-size:34px; margin:14px 0 16px;}
.case-head p{color:var(--muted); font-size:16px; line-height:1.65;}

.case-meta{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.meta-card{background:rgba(255,255,255,0.7); border:1px solid var(--border); padding:16px 18px; display:flex; flex-direction:column; gap:6px;}
.meta-card .lbl{font-family:'DM Mono',monospace; font-size:11px; font-weight:600; color:var(--accent); letter-spacing:.08em;}
.meta-card .val{font-size:14.5px; color:var(--ink); font-weight:500; line-height:1.45;}
@media (max-width:860px){.case-head{grid-template-columns:1fr; gap:32px;} .case-meta{grid-template-columns:1fr;}}

.shots-row{display:flex; gap:24px; align-items:flex-end; flex-wrap:wrap; margin-bottom:56px; width:100%;}
.shots-row.center{justify-content:center;}
.shots-row.center > div{width:100%; max-width:1100px;}
.shot-label{font-family:'DM Mono',monospace; font-size:11px; color:var(--muted); text-align:center; margin-top:10px;}

.pair-block{display:grid; grid-template-columns:0.85fr 1.15fr; gap:48px; align-items:start; margin-top:48px; width:100%;}
.pair-block h3{font-size:17px; margin-bottom:8px;}
.pair-block p{color:var(--muted); font-size:14px; line-height:1.6;}
@media (max-width:900px){ .pair-block{grid-template-columns:1fr;} }

.result-strip{background:var(--card); border:1px solid var(--border); border-radius:0; padding:28px 32px; display:flex; gap:40px; flex-wrap:wrap; margin-top:44px;}
.result-item .num{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:26px; color:var(--accent);}
.result-item .lbl{font-size:13px; color:var(--muted); margin-top:2px;}

/* ---------- SERVICES ---------- */
.svc-list{border-top:1px solid var(--border);}
.svc-row{display:grid; grid-template-columns:60px 1fr 1fr; gap:32px; padding:48px 0; border-bottom:1px solid var(--border); align-items:start; transition:padding-left .3s cubic-bezier(.16,1,.3,1);}
.svc-row:hover{padding-left:8px;}
.svc-row .idx{font-family:'DM Mono',monospace; color:var(--accent); font-size:15px;}
.svc-row h3{font-size:24px; margin-bottom:12px;}
.svc-row p{color:var(--muted); font-size:15px; line-height:1.65; margin-bottom:16px;}
.tag-row{display:flex; gap:8px; flex-wrap:wrap;}
.tag{font-family:'DM Mono',monospace; font-size:11.5px; color:var(--muted); border:1px solid var(--border); border-radius:0; padding:5px 12px;}
@media (max-width:760px){ .svc-row{grid-template-columns:1fr; gap:10px;} }

.sector-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:8px;}
.sector-card{background:var(--card); border:1px solid var(--border); border-radius:0; padding:24px; transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s;}
.sector-card:hover{transform:translateY(-4px); box-shadow:0 20px 30px -20px rgba(17,19,24,.25);}
.sector-card h3{font-size:17px; margin-bottom:8px;}
.sector-card p{color:var(--muted); font-size:13.5px; line-height:1.6;}
@media (max-width:960px){ .sector-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .sector-grid{grid-template-columns:1fr;} }

/* ---------- PROCESS ---------- */
.flow{border-top:1px solid var(--border);}
.flow-step{
  display:grid; grid-template-columns:120px 1fr; gap:36px; padding:56px 32px;
  border-bottom:1px solid var(--border); align-items:start; margin:0 -32px; border-radius:0;
}
.flow-step:nth-child(even){background:var(--card); border-bottom-color:transparent;}
.flow-step .big-num{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:56px; color:var(--card); -webkit-text-stroke:1.5px var(--border); }
.flow-step:hover .big-num{color:var(--accent); -webkit-text-stroke:1.5px var(--accent); transition:color .3s, -webkit-text-stroke .3s;}
.flow-step h3{font-size:26px; margin-bottom:12px;}
.flow-step p{color:var(--muted); font-size:15.5px; line-height:1.7; max-width:640px;}
.flow-step .stamp{font-family:'DM Mono',monospace; font-size:12px; color:var(--accent); letter-spacing:.05em; display:block; margin-bottom:10px;}
@media (max-width:640px){ .flow-step{grid-template-columns:1fr; gap:8px;} .flow-step .big-num{font-size:36px;} }

/* ---------- ABOUT PAGE & TYPEWRITER ---------- */
.pain-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px;}
.pain-card{background:var(--card); border-radius:0; padding:28px 26px; border:1px solid var(--border); transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s;}
.pain-card:hover{transform:translateY(-4px); box-shadow:0 20px 30px -20px rgba(17,19,24,.2);}
.pain-card .q{font-family:'DM Mono',monospace; font-size:12px; color:var(--accent); margin-bottom:12px; display:block;}
.pain-card p{font-size:15px; line-height:1.6; color:var(--ink);}
@media (max-width:860px){ .pain-grid{grid-template-columns:1fr;} }

.offer-band{background:var(--ink); border-radius:0; padding:48px; margin:64px 0;}
.offer-band .eyebrow{color:var(--accent);}
.offer-band h2{color:var(--white); font-size:28px; margin:12px 0 16px;}
.offer-band p{color:#c3c6cc; font-size:15.5px; line-height:1.7; max-width:640px;}
@media (max-width:640px){ .offer-band{padding:32px 24px;} }

.typewriter-section{background:var(--card); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:0;}
.tw-wrap{max-width:980px; margin:0 auto; padding:0 32px; min-height:300px; display:flex; align-items:center; justify-content:center;}
.tw-text{font-family:'Space Grotesk',sans-serif; font-weight:500; font-size:30px; line-height:1.55; color:var(--ink); text-align:center; width:100%;}
.tw-highlight{color:var(--accent); font-weight:700;}
.tw-cursor{display:inline-block; width:3px; height:0.95em; background:var(--accent); vertical-align:text-bottom; margin-left:3px; animation:tw-blink 0.9s step-end infinite;}
@keyframes tw-blink{50%{opacity:0;}}
.tw-line{display:block;}
.tw-line.line-two{margin-top:14px;}
@media (max-width:640px){ .tw-text{font-size:22px;} .tw-wrap{min-height:250px;} }

/* Origin Story - Architectural Blueprint Layout */
.origin-story-section{
  padding:90px 0;
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,0.45);
}
.origin-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
}
.origin-column{
  background:var(--white);
  border:1px solid var(--border);
  border-top:3px solid var(--ink);
  padding:36px 36px 40px;
  display:flex;
  flex-direction:column;
  box-shadow:0 12px 28px -14px rgba(17,19,24,0.08);
}
.origin-column:nth-child(2){
  border-top-color:var(--accent);
}
.origin-column-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:20px;
}
.origin-badge{
  font-size:12px;
  font-weight:600;
  color:var(--accent);
  letter-spacing:.08em;
}
.origin-status{
  font-size:11px;
  color:var(--muted);
  letter-spacing:.06em;
}
.origin-column h3{
  font-size:28px;
  margin-bottom:12px;
}
.origin-lead{
  font-size:16.5px;
  font-weight:600;
  color:var(--ink);
  line-height:1.5;
  margin-bottom:20px;
  border-bottom:1px solid var(--border);
  padding-bottom:16px;
}
.origin-body p{
  font-size:14.5px;
  color:var(--muted);
  line-height:1.7;
  margin-bottom:14px;
}
.origin-body p:last-child{margin-bottom:0;}
@media (max-width:860px){
  .origin-grid{grid-template-columns:1fr; gap:24px;}
  .origin-column{padding:28px 24px;}
}

.split-principle{display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
.split-half{padding:56px 48px;}
.split-half.dark{background:var(--ink); color:var(--white);}
.split-half.light{background:var(--card);}
.split-half .tag { font-family: 'DM Mono', monospace; font-size: 12px; letter-spacing: .05em; color: var(--accent); display: inline-block; border: none; padding: 5px 12px 0 0; margin: 0 0 14px 0; }
.split-half h3{font-size:22px; margin-bottom:14px;}
.split-half.dark h3{color:var(--white);}
.split-half p{font-size:14.5px; line-height:1.7; color:var(--muted);}
.split-half.dark p{color:#9a9ea6;}
@media (max-width:760px){ .split-principle{grid-template-columns:1fr;} .split-half{padding:40px 28px;} }

.skills-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:10px;}
.why-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
.why-card{border:1px solid var(--border); border-radius:0; padding:26px 24px; transition:transform .3s cubic-bezier(.16,1,.3,1), border-color .3s;}
.why-card:hover{transform:translateY(-4px); border-color:var(--accent);}
.why-num{color:var(--accent); font-size:13px; display:block; margin-bottom:12px;}
.why-card h3{font-size:18px; margin-bottom:8px;}
.why-card p{color:var(--muted); font-size:14px; line-height:1.6;}
@media (max-width:640px){ .why-grid{grid-template-columns:1fr;} }
.skill-tag{font-family:'DM Mono',monospace; font-size:12.5px; border:1px solid var(--border); border-radius:0; padding:8px 16px; background:var(--white);}

/* ---------- LEGAL & POLICY PAGES (PROPORTIONAL & TIGHT) ---------- */
.legal-wrapper{
  padding:0 32px 100px;
  max-width:960px;
}
.legal-card{
  background:rgba(255,255,255,0.7);
  border:1px solid var(--border);
  box-shadow:0 8px 24px -12px rgba(17,19,24,0.06);
}
.legal-row{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:24px;
  padding:28px 32px;
  border-bottom:1px solid var(--border);
}
.legal-row:last-child{border-bottom:none;}
.legal-num{
  color:var(--accent);
  font-size:13px;
  padding-top:3px;
}
.legal-row h3{
  font-size:18px;
  margin-bottom:8px;
  color:var(--ink);
}
.legal-row p{
  font-size:14.5px;
  line-height:1.65;
  color:var(--muted);
}
@media (max-width:640px){
  .legal-wrapper{padding:0 20px 80px;}
  .legal-row{grid-template-columns:1fr; gap:8px; padding:22px 20px;}
}

/* ---------- CONTACT ---------- */
.contact-wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; padding:20px 32px 100px; max-width:1400px; margin:0 auto;}
@media (max-width:900px){ .contact-wrap{grid-template-columns:1fr; gap:40px;} }
.contact-side h2{font-size:28px; margin-bottom:16px;}
.contact-side p{color:var(--muted); font-size:15.5px; line-height:1.7; margin-bottom:28px;}
.side-fact{display:flex; gap:14px; padding:16px 0; border-top:1px solid var(--border);}
.side-fact:last-of-type{border-bottom:1px solid var(--border);}
.side-fact .k{font-family:'DM Mono',monospace; font-size:12px; color:var(--accent); width:90px; flex-shrink:0; padding-top:2px;}
.side-fact .v{font-size:14.5px; color:var(--ink);}

form{display:flex; flex-direction:column; gap:22px;}
.field label{display:block; font-size:13px; font-weight:600; margin-bottom:8px; color:var(--ink);}
.field .hint{font-size:12.5px; color:var(--muted); font-weight:400; margin-left:6px;}
.row-2{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:520px){ .row-2{grid-template-columns:1fr;} }
input[type=text], input[type=email], textarea, select{
  width:100%; border:1px solid var(--border); background:var(--white); border-radius:0;
  padding:14px 16px; font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink);
  transition:border-color .2s, box-shadow .2s; outline:none;
}
input:focus, textarea:focus, select:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(255,90,31,.12);}
textarea{resize:vertical; min-height:120px;}

.project-types{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
@media (max-width:600px){ .project-types{grid-template-columns:repeat(2,1fr);} }
.ptype{
  border:1px solid var(--border); border-radius:0; padding:14px 12px; text-align:center;
  font-size:13px; cursor:pointer; transition:border-color .2s, background .2s, transform .15s; user-select:none;
  background:var(--white);
}
.ptype:hover{border-color:var(--ink); transform:translateY(-2px);}
.ptype.selected{border-color:var(--accent); background:rgba(255,90,31,.08); color:var(--accent-dim); font-weight:600;}
#customTypeWrap{display:none; margin-top:4px;}

.submit-row{display:flex; align-items:center; gap:16px; margin-top:6px;}
.form-note{font-size:12.5px; color:var(--muted);}
.success-msg{display:none; background:var(--card); border:1px solid var(--border); border-radius:0; padding:22px 24px; font-size:14.5px; color:var(--ink);}
.success-msg strong{color:var(--accent-dim);}

.faq-section{padding:20px 0 90px;}
.faq-list{max-width:760px; display:flex; flex-direction:column; gap:0;}
.faq-item{border-bottom:1px solid var(--border); padding:20px 0;}
.faq-item:first-child{border-top:1px solid var(--border);}
.faq-item summary{
  cursor:pointer; font-size:16px; font-weight:600; color:var(--ink); list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:'+'; color:var(--accent); font-size:22px; font-weight:400; flex-shrink:0;
  transition:transform .25s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{color:var(--muted); font-size:14.5px; line-height:1.65; margin-top:14px; max-width:640px;}

/* ---------- INTRO SPLASH ---------- */
.intro-splash{
  position:fixed; inset:0; z-index:1000;
  background:#fdeae6;
  display:flex; align-items:center; justify-content:center;
  transition:opacity .5s ease; opacity:1;
}
.intro-splash.hide{opacity:0; pointer-events:none;}
.intro-splash.skip-instant{display:none;}
.intro-video{width: min(80vw, 420px); aspect-ratio: 1 / 1; height: auto; display: block; object-fit: contain;}
.intro-skip{
  position:absolute; bottom:32px; right:32px; background:transparent;
  border:1px solid rgba(17, 19, 24, 0.2); color:var(--ink); opacity:.75; font-family:'DM Mono',monospace; font-size:12px;
  padding:8px 16px; border-radius:0; cursor:pointer; transition:opacity .2s, border-color .2s;
}
.intro-skip:hover{opacity:1; border-color:var(--ink);}

/* ---------- CIRCULAR BACK TO TOP BUTTON ---------- */
.back-to-top{
  position:fixed;
  bottom:28px;
  right:28px;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--ink);
  color:var(--white);
  border:1px solid #2a2d34;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .25s ease, transform .25s ease, background .2s ease, border-color .2s ease;
  z-index:90;
  box-shadow:0 8px 24px -6px rgba(17,19,24,.35);
}
.back-to-top:hover{
  background:var(--accent);
  border-color:var(--accent);
  transform:translateY(0);
}
.back-to-top.visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
