/* ============================================================
   ApexWorks — Shared Design System
   Locked tokens replicated from index.html, extended for inner pages.
   Theme: dark only. Accent: gold. Type: Geist + JetBrains Mono.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --black:#050404;
  --black2:#0a0908;
  --black3:#10100e;
  --gold:#d4b65e;
  --gold-bright:#f0d484;
  --gold-deep:#8a7530;
  --gold-glow:rgba(212,182,94,.25);
  --white:#f4f0e8;
  --w70:rgba(244,240,232,.7);
  --w50:rgba(244,240,232,.5);
  --w30:rgba(244,240,232,.25);
  --w10:rgba(244,240,232,.08);
  --border:rgba(212,182,94,.14);
  --border-w:rgba(244,240,232,.08);
  --ease:cubic-bezier(.22,1,.36,1);
}

html{scroll-behavior:smooth;}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important;}
  html{scroll-behavior:auto;}
}

body{
  font-family:'Geist',system-ui,sans-serif;
  background:var(--black);color:var(--white);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
  cursor:none;
}

::selection{background:rgba(212,182,94,.28);color:var(--white);}

a{color:inherit;}

/* keyboard focus — accessibility */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px;}

/* ── PRECISION CURSOR ── */
#cur{position:fixed;width:6px;height:6px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .25s,opacity .25s,background .25s;}
#cur-r{position:fixed;width:36px;height:36px;border:1px solid var(--gold-glow);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease),border-color .25s,opacity .25s;}
body.hov #cur{transform:translate(-50%,-50%) scale(0);}
body.hov #cur-r{width:64px;height:64px;border-color:var(--gold);}

/* ── NAV ── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.6rem clamp(1.25rem,5vw,4rem);
  transition:padding .4s,background .4s,backdrop-filter .4s;
}
.nav.stuck{
  padding:1.1rem clamp(1.25rem,5vw,4rem);
  background:rgba(5,4,4,.78);
  backdrop-filter:blur(28px) saturate(120%);
  -webkit-backdrop-filter:blur(28px) saturate(120%);
  border-bottom:1px solid var(--border);
}
.logo{
  display:flex;align-items:center;gap:.55rem;
  font-size:1.35rem;font-weight:800;
  color:var(--white);text-decoration:none;letter-spacing:-.02em;cursor:none;
}
.logo-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold-glow);}
.logo span{color:var(--gold);}
.nav-links{list-style:none;display:flex;gap:2.5rem;align-items:center;}
.nav-links a{
  font-family:'JetBrains Mono',monospace;
  font-size:.62rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;
  color:var(--w30);text-decoration:none;cursor:none;
  transition:color .2s;min-height:44px;display:inline-flex;align-items:center;
}
.nav-links a:hover{color:var(--gold);}
.nav-links a[aria-current="page"]{color:var(--white);}
.nav-pill{
  border:1px solid var(--border);color:var(--gold)!important;
  padding:.55rem 1.3rem;border-radius:100px;
  transition:background .25s,border-color .25s,color .25s!important;
}
.nav-pill:hover{background:var(--gold)!important;color:var(--black)!important;border-color:var(--gold)!important;}
.nav-pill[aria-current="page"]{background:rgba(212,182,94,.08);}

/* burger */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:none;padding:.5rem;z-index:101;}
.nav-burger span{display:block;width:22px;height:1.5px;background:var(--white);transition:transform .3s,opacity .3s;}
.nav-burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

.mobile-menu{display:none;position:fixed;inset:0;z-index:99;background:rgba(5,4,4,.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);flex-direction:column;justify-content:center;align-items:center;}
.mobile-menu.open{display:flex;}
.mobile-menu ul{list-style:none;text-align:center;display:flex;flex-direction:column;gap:1.8rem;}
.mobile-menu a{font-size:2rem;font-weight:700;color:var(--white);text-decoration:none;letter-spacing:-.02em;transition:color .2s;cursor:none;}
.mobile-menu a:hover,.mobile-menu a[aria-current="page"]{color:var(--gold);}

@media(max-width:860px){
  .nav-links{display:none;}
  .nav-burger{display:flex;}
}

/* ── BUTTONS ── */
.btn-p{
  position:relative;overflow:hidden;cursor:none;text-decoration:none;
  background:var(--gold);color:var(--black);
  padding:1.05rem 2.3rem;border:none;border-radius:3px;
  font-family:'Geist',sans-serif;font-size:.7rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  transition:transform .25s,box-shadow .35s;min-height:48px;
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  box-shadow:0 4px 20px rgba(212,182,94,.18);
}
.btn-p::before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(-100%);transition:transform .7s var(--ease);}
.btn-p:hover{transform:translateY(-3px);box-shadow:0 16px 50px rgba(212,182,94,.4);}
.btn-p:hover::before{transform:translateX(100%);}
.btn-p:active{transform:translateY(-1px) scale(.98);}
.btn-p svg{transition:transform .25s;position:relative;z-index:1;}
.btn-p:hover svg{transform:translateX(4px);}
.btn-p span{position:relative;z-index:1;}

.btn-s{
  background:transparent;color:var(--white);cursor:none;text-decoration:none;
  padding:1.05rem 2.3rem;border:1px solid var(--border-w);border-radius:3px;
  font-family:'Geist',sans-serif;font-size:.7rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  transition:border-color .25s,background .25s,color .25s;min-height:48px;
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
}
.btn-s:hover{border-color:var(--gold);background:rgba(212,182,94,.05);color:var(--gold);}
.btn-s:active{transform:scale(.98);}

/* ── SECTION PRIMITIVES ── */
.sec{padding:7rem clamp(1.5rem,5vw,4rem);position:relative;}
.sec-sm{padding:4.5rem clamp(1.5rem,5vw,4rem);position:relative;}
.max{max-width:1380px;margin:0 auto;}
.max-narrow{max-width:880px;margin:0 auto;}
.s-tag{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem;display:flex;align-items:center;gap:.8rem;}
.s-tag::before{content:'';width:24px;height:1px;background:var(--gold);}
.s-h{font-family:'Geist',sans-serif;font-size:clamp(2.4rem,4.6vw,4.4rem);font-weight:900;line-height:1.02;letter-spacing:-.04em;}
.s-h em{font-style:italic;background:linear-gradient(180deg,var(--gold-bright),var(--gold-deep));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1;padding-bottom:.06em;display:inline-block;}
.lead{font-size:clamp(1rem,1.6vw,1.18rem);color:var(--w70);font-weight:300;line-height:1.8;max-width:60ch;margin-top:1.5rem;}
.body{font-size:.95rem;color:var(--w70);font-weight:300;line-height:1.85;max-width:62ch;}
.body+.body{margin-top:1.1rem;}

/* ── PAGE HERO (inner pages) ── */
.phero{position:relative;overflow:hidden;padding:10rem clamp(1.5rem,5vw,4rem) 5rem;min-height:62vh;display:flex;align-items:flex-end;}
.phero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;}
.phero::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(130% 130% at 6% 96%,rgba(5,4,4,.92) 0%,rgba(5,4,4,.62) 36%,rgba(5,4,4,.2) 60%,transparent 80%);}
.phero-in{position:relative;z-index:2;width:100%;max-width:1380px;margin:0 auto;}
.phero-h{font-family:'Geist',sans-serif;font-size:clamp(2.8rem,6vw,6rem);font-weight:900;line-height:1.02;letter-spacing:-.04em;margin-bottom:1.4rem;}
.phero-h em{font-style:italic;background:linear-gradient(180deg,#ffe9b0,#d4b65e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;line-height:1.12;padding-bottom:.06em;display:inline-block;filter:drop-shadow(0 2px 12px rgba(5,4,4,.85));}
.phero-sub{font-size:1.02rem;color:var(--w70);font-weight:300;line-height:1.8;max-width:52ch;}

.kicker{display:inline-flex;align-items:center;gap:.7rem;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:1.6rem;padding:.45rem .9rem;border:1px solid var(--border);border-radius:100px;background:rgba(212,182,94,.04);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);width:fit-content;}
.kicker-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold);animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(.7);}}

/* ── BREADCRUMBS ── */
.crumbs{font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--w30);margin-bottom:1.6rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;}
.crumbs a{color:var(--w30);text-decoration:none;cursor:none;transition:color .2s;}
.crumbs a:hover{color:var(--gold);}
.crumbs .sep{color:var(--w10);}
.crumbs .here{color:var(--gold);}

/* ── METRICS ROW ── */
.metrics{display:flex;gap:2.8rem;flex-wrap:wrap;margin-top:3rem;padding-top:2.4rem;border-top:1px solid var(--border-w);}
.mn{font-family:'JetBrains Mono',monospace;font-size:2.2rem;font-weight:700;color:var(--gold);line-height:1;letter-spacing:-.04em;}
.ml{font-family:'JetBrains Mono',monospace;font-size:.58rem;color:var(--w30);margin-top:.4rem;letter-spacing:.12em;text-transform:uppercase;}

/* ── GENERIC GRIDS ── */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.split{display:grid;grid-template-columns:.9fr 1.4fr;gap:5rem;align-items:start;}
.split-stick{position:sticky;top:8rem;}

/* ── CARD ── */
.card{background:var(--black2);border:1px solid var(--border-w);border-radius:14px;padding:2.4rem;position:relative;overflow:hidden;transition:background .3s,border-color .3s,transform .4s var(--ease);}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--gold),transparent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);}
.card:hover{background:rgba(212,182,94,.025);border-color:var(--border);}
.card:hover::before{transform:scaleX(1);}
.card-n{font-family:'JetBrains Mono',monospace;font-size:.55rem;color:rgba(212,182,94,.4);letter-spacing:.18em;margin-bottom:1.4rem;}
.card-ic{color:var(--gold);width:32px;height:32px;margin-bottom:1.1rem;}
.card-ic svg{width:100%;height:100%;stroke-width:1.5;fill:none;stroke:currentColor;}
.card-t{font-size:1.25rem;font-weight:700;color:var(--white);margin-bottom:.6rem;letter-spacing:-.02em;line-height:1.2;}
.card-d{font-size:.85rem;color:var(--w50);font-weight:300;line-height:1.8;}

/* ── TEAM ── */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.member{background:var(--black2);border:1px solid var(--border-w);border-radius:14px;padding:2.2rem;transition:background .3s,border-color .3s,transform .4s var(--ease);}
.member:hover{background:rgba(212,182,94,.025);border-color:var(--border);transform:translateY(-4px);}
.m-av{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:.95rem;font-weight:700;color:var(--black);margin-bottom:1.4rem;background:linear-gradient(140deg,var(--gold-bright),var(--gold-deep));box-shadow:0 8px 24px rgba(212,182,94,.22);}
.m-name{font-size:1.1rem;font-weight:700;color:var(--white);letter-spacing:-.01em;}
.m-role{font-family:'JetBrains Mono',monospace;font-size:.58rem;color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin-top:.35rem;margin-bottom:1rem;}
.m-bio{font-size:.82rem;color:var(--w50);font-weight:300;line-height:1.8;}

/* ── VALUES / FEATURE ROWS (zigzag) ── */
.zz{display:flex;flex-direction:column;}
.zz-i{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:start;padding:2.4rem 0;border-bottom:1px solid var(--border-w);transition:padding-left .45s var(--ease);position:relative;}
.zz-i::before{content:'';position:absolute;left:0;top:50%;width:0;height:1px;background:var(--gold);transition:width .45s var(--ease);transform:translateY(-50%);}
.zz-i:hover{padding-left:2rem;}
.zz-i:hover::before{width:1.5rem;}
.zz-n{font-family:'JetBrains Mono',monospace;font-size:.6rem;color:rgba(212,182,94,.35);letter-spacing:.1em;padding-top:.35rem;min-width:3rem;}
.zz-t{font-size:1.2rem;font-weight:600;color:var(--white);margin-bottom:.55rem;letter-spacing:-.01em;}
.zz-d{font-size:.85rem;color:var(--w50);font-weight:300;line-height:1.8;max-width:560px;}

/* ── TIMELINE ── */
.timeline{position:relative;margin-top:1rem;}
.timeline::before{content:'';position:absolute;left:7.5rem;top:.4rem;bottom:.4rem;width:1px;background:linear-gradient(180deg,transparent,var(--border),transparent);}
.tl-item{display:grid;grid-template-columns:6rem 1fr;gap:2.4rem;padding:1.6rem 0;position:relative;}
.tl-year{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--gold);letter-spacing:.08em;text-align:right;padding-top:.15rem;}
.tl-body{position:relative;padding-left:2rem;}
.tl-body::before{content:'';position:absolute;left:-.45rem;top:.45rem;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(212,182,94,.12);}
.tl-t{font-size:1.05rem;font-weight:700;color:var(--white);margin-bottom:.4rem;letter-spacing:-.01em;}
.tl-d{font-size:.84rem;color:var(--w50);font-weight:300;line-height:1.75;max-width:52ch;}

/* ── PRICING TIERS ── */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2rem;}
.tier{background:var(--black2);border:1px solid var(--border-w);border-radius:14px;padding:2.2rem;display:flex;flex-direction:column;transition:border-color .3s,transform .4s var(--ease),background .3s;}
.tier:hover{transform:translateY(-4px);border-color:var(--border);}
.tier.feat{border-color:var(--border-primary,rgba(212,182,94,.4));background:linear-gradient(180deg,rgba(212,182,94,.06),rgba(212,182,94,.01));}
.tier-badge{font-family:'JetBrains Mono',monospace;font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);border:1px solid var(--border);border-radius:100px;padding:.3rem .7rem;width:fit-content;margin-bottom:1.2rem;}
.tier-name{font-size:1.15rem;font-weight:700;color:var(--white);letter-spacing:-.01em;}
.tier-price{font-family:'JetBrains Mono',monospace;font-size:2rem;font-weight:700;color:var(--gold);margin:.8rem 0 .2rem;letter-spacing:-.03em;}
.tier-price small{font-size:.7rem;color:var(--w30);font-weight:400;}
.tier-note{font-size:.78rem;color:var(--w50);font-weight:300;line-height:1.7;margin-bottom:1.4rem;}
.tier-feat{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin:0 0 1.6rem;flex:1;}
.tier-feat li{font-size:.82rem;color:var(--w70);font-weight:300;line-height:1.5;display:flex;gap:.7rem;align-items:flex-start;}
.tier-feat li svg{width:14px;height:14px;flex-shrink:0;stroke:var(--gold);stroke-width:2.5;fill:none;margin-top:.2rem;}

/* ── SERVICE DETAIL BLOCK ── */
.svc-block{scroll-margin-top:6rem;padding:3rem 0;border-top:1px solid var(--border-w);display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem;align-items:start;}
.svc-block:first-of-type{border-top:none;}
.svc-meta .card-ic{width:40px;height:40px;}
.svc-num{font-family:'JetBrains Mono',monospace;font-size:.6rem;color:rgba(212,182,94,.4);letter-spacing:.18em;margin-bottom:1rem;}
.svc-title{font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:800;color:var(--white);letter-spacing:-.02em;margin-bottom:.9rem;line-height:1.05;}
.svc-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.2rem;}
.svc-tags span{font-family:'JetBrains Mono',monospace;font-size:.55rem;color:var(--gold);border:1px solid var(--border);border-radius:100px;padding:.35rem .8rem;letter-spacing:.08em;}
.svc-includes{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:1.4rem 0;}
.svc-includes li{font-size:.84rem;color:var(--w70);font-weight:300;display:flex;gap:.6rem;align-items:flex-start;line-height:1.5;}
.svc-includes li svg{width:14px;height:14px;flex-shrink:0;stroke:var(--gold);stroke-width:2.5;fill:none;margin-top:.18rem;}
.svc-use{font-size:.82rem;color:var(--w50);font-weight:300;line-height:1.8;border-left:1px solid var(--border);padding-left:1.2rem;margin-top:1.4rem;}
.svc-use b{color:var(--gold);font-weight:500;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:.4rem;}

/* ── COMPARISON TABLE ── */
.cmp{width:100%;border-collapse:collapse;margin-top:2rem;font-size:.86rem;}
.cmp th,.cmp td{text-align:left;padding:1.1rem 1.2rem;border-bottom:1px solid var(--border-w);}
.cmp thead th{font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--w50);font-weight:400;}
.cmp thead th.hl{color:var(--gold);}
.cmp tbody th{font-weight:500;color:var(--white);font-size:.84rem;}
.cmp td{color:var(--w50);font-weight:300;}
.cmp td.hl{color:var(--white);background:rgba(212,182,94,.04);}
.cmp td svg{width:15px;height:15px;stroke:var(--gold);stroke-width:2.5;fill:none;vertical-align:-2px;}
.cmp td.no{color:var(--w30);}

/* ── ACCORDION (FAQ) ── */
.acc{border-bottom:1px solid var(--border-w);}
.acc-q{width:100%;background:none;border:none;cursor:none;text-align:left;color:var(--white);font-family:'Geist',sans-serif;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;padding:1.6rem 3rem 1.6rem 0;position:relative;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;transition:color .25s;line-height:1.4;}
.acc-q:hover{color:var(--gold);}
.acc-q .ico{flex-shrink:0;width:18px;height:18px;position:relative;}
.acc-q .ico::before,.acc-q .ico::after{content:'';position:absolute;background:var(--gold);transition:transform .3s var(--ease),opacity .3s;}
.acc-q .ico::before{top:50%;left:0;right:0;height:1.5px;transform:translateY(-50%);}
.acc-q .ico::after{left:50%;top:0;bottom:0;width:1.5px;transform:translateX(-50%);}
.acc[data-open="true"] .acc-q .ico::after{transform:translateX(-50%) scaleY(0);opacity:0;}
.acc-a{overflow:hidden;max-height:0;transition:max-height .4s var(--ease);}
.acc-a-in{padding:0 3rem 1.8rem 0;font-size:.9rem;color:var(--w70);font-weight:300;line-height:1.85;max-width:64ch;}
.acc[data-open="true"] .acc-q{color:var(--gold);}

/* ── ALT CONTACT METHODS ── */
.alt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2rem;}
.alt-card{background:var(--black2);border:1px solid var(--border-w);border-radius:14px;padding:2rem;text-decoration:none;display:block;transition:background .3s,border-color .3s,transform .4s var(--ease);}
.alt-card:hover{background:rgba(212,182,94,.025);border-color:var(--border);transform:translateY(-4px);}
.alt-ic{color:var(--gold);width:26px;height:26px;margin-bottom:1rem;}
.alt-ic svg{width:100%;height:100%;stroke-width:1.5;fill:none;stroke:currentColor;}
.alt-t{font-size:.95rem;font-weight:700;color:var(--white);margin-bottom:.35rem;}
.alt-v{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--gold);letter-spacing:.04em;}
.alt-d{font-size:.78rem;color:var(--w50);font-weight:300;margin-top:.5rem;line-height:1.6;}

/* ── FORM CARD ── */
.fcard{background:rgba(244,240,232,.03);border:1px solid var(--border-w);border-top:1px solid rgba(212,182,94,.18);border-radius:14px;padding:2.6rem;backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%);box-shadow:inset 0 1px 0 rgba(212,182,94,.12),0 50px 100px rgba(0,0,0,.5);}
.f{margin-bottom:1.35rem;}
.f label{display:block;font-family:'JetBrains Mono',monospace;font-size:.58rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--w70);margin-bottom:.6rem;}
.rmk{color:var(--gold);}
.f input,.f select,.f textarea{width:100%;background:rgba(244,240,232,.03);border:1px solid var(--border-w);border-radius:6px;padding:.95rem 1.1rem;color:var(--white);font-family:'Geist',sans-serif;font-size:.88rem;font-weight:400;transition:border-color .25s,box-shadow .25s,background .25s;outline:none;appearance:none;cursor:none;min-height:44px;}
.f input::placeholder,.f textarea::placeholder{color:var(--w30);}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,182,94,.1);background:rgba(244,240,232,.05);}
.f select option{background:var(--black3);}
.f textarea{resize:vertical;min-height:120px;}
.tw{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.f-err{display:none;font-family:'JetBrains Mono',monospace;font-size:.58rem;color:#e57878;margin-top:.4rem;letter-spacing:.04em;}
.f-err.on{display:block;}
input[aria-invalid="true"],select[aria-invalid="true"]{border-color:#e57878;}
.sbtn{width:100%;background:var(--gold);color:var(--black);border:none;border-radius:6px;padding:1.15rem;font-family:'Geist',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:none;margin-top:.5rem;min-height:48px;display:flex;align-items:center;justify-content:center;gap:.6rem;transition:background .25s,transform .2s,box-shadow .35s;box-shadow:0 4px 20px rgba(212,182,94,.2);position:relative;overflow:hidden;}
.sbtn::before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(-100%);transition:transform .7s var(--ease);}
.sbtn:hover:not(:disabled){background:var(--gold-bright);transform:translateY(-2px);box-shadow:0 18px 50px rgba(212,182,94,.4);}
.sbtn:hover:not(:disabled)::before{transform:translateX(100%);}
.sbtn:active{transform:scale(.98);}
.sbtn:disabled{opacity:.7;cursor:none;}
.sbtn .spin{width:15px;height:15px;border:2px solid rgba(5,4,4,.3);border-top-color:var(--black);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.fn{text-align:center;font-family:'JetBrains Mono',monospace;font-size:.6rem;color:var(--w30);margin-top:1rem;letter-spacing:.1em;}
.trust{display:flex;flex-direction:column;gap:.9rem;margin-top:2rem;}
.tr{display:flex;align-items:center;gap:.85rem;font-size:.82rem;color:var(--w50);font-weight:300;}
.tr svg{width:15px;height:15px;flex-shrink:0;stroke:var(--gold);stroke-width:2;fill:none;}

/* ── CTA BAND ── */
.cta-band{position:relative;overflow:hidden;background:var(--black2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:6rem clamp(1.5rem,5vw,4rem);text-align:center;}
.cta-band::before{content:'';position:absolute;width:800px;height:800px;border-radius:50%;background:radial-gradient(circle,rgba(212,182,94,.07),transparent 65%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;}
.cta-band .inner{position:relative;z-index:1;max-width:720px;margin:0 auto;}
.cta-band h2{font-family:'Geist',sans-serif;font-size:clamp(2rem,4vw,3.4rem);font-weight:900;letter-spacing:-.03em;line-height:1.05;margin-bottom:1.2rem;}
.cta-band h2 em{font-style:italic;background:linear-gradient(180deg,var(--gold-bright),var(--gold-deep));-webkit-background-clip:text;background-clip:text;color:transparent;}
.cta-band p{font-size:.95rem;color:var(--w70);font-weight:300;line-height:1.8;max-width:48ch;margin:0 auto 2.2rem;}
.cta-actions{display:flex;gap:.85rem;justify-content:center;flex-wrap:wrap;}

/* ── MARQUEE ── */
.marquee{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.85rem 0;overflow:hidden;background:rgba(212,182,94,.025);position:relative;z-index:5;}
.marquee-track{display:flex;gap:0;animation:mar 28s linear infinite;width:max-content;}
.marquee-track span{font-family:'JetBrains Mono',monospace;font-size:.62rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--w30);white-space:nowrap;padding:0 2.5rem;display:flex;align-items:center;gap:2rem;}
.marquee-track span::after{content:'✦';color:var(--gold);font-size:.4rem;}
@keyframes mar{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ── FOOTER ── */
footer{background:var(--black);border-top:1px solid var(--border-w);padding:3.5rem clamp(1.5rem,5vw,4rem) 2rem;}
.foot-in{max-width:1380px;margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--border-w);margin-bottom:1.5rem;}
.f-logo{display:flex;align-items:center;gap:.55rem;font-size:1.3rem;font-weight:800;color:var(--white);letter-spacing:-.02em;text-decoration:none;cursor:none;}
.f-logo .logo-dot{width:7px;height:7px;}
.f-logo span{color:var(--gold);}
.f-brand{max-width:280px;}
.f-tagline{font-size:.8rem;color:var(--w50);font-weight:300;line-height:1.7;margin-top:1rem;}
.f-nav{display:flex;gap:3.5rem;flex-wrap:wrap;}
.f-nav-group{display:flex;flex-direction:column;gap:.6rem;}
.f-nav-label{font-family:'JetBrains Mono',monospace;font-size:.55rem;color:var(--gold);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.3rem;}
.f-nav a{font-family:'JetBrains Mono',monospace;font-size:.58rem;color:var(--w30);text-decoration:none;letter-spacing:.18em;text-transform:uppercase;cursor:none;transition:color .25s;}
.f-nav a:hover{color:var(--gold);}
.foot-btm{max-width:1380px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.f-c{font-family:'JetBrains Mono',monospace;font-size:.56rem;color:var(--w30);letter-spacing:.08em;opacity:.7;}

/* ── TOAST ── */
#toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(120px);background:var(--gold);color:var(--black);padding:1rem 2.5rem;border-radius:6px;font-family:'JetBrains Mono',monospace;font-weight:700;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;z-index:999;transition:transform .5s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;display:flex;align-items:center;gap:.7rem;box-shadow:0 20px 60px rgba(212,182,94,.4);}
#toast.show{transform:translateX(-50%) translateY(0);}
#toast svg{width:13px;height:13px;stroke:var(--black);stroke-width:2.5;fill:none;}

/* ── REVEAL ── */
.rv{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.rv.on{opacity:1;transform:none;}
.rv-l{opacity:0;transform:translateX(-36px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.rv-l.on{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .rv,.rv-l{opacity:1;transform:none;}
}

/* ── RESPONSIVE ── */
@media(max-width:1080px){
  .split{grid-template-columns:1fr;gap:3rem;}
  .split-stick{position:static;}
  .svc-block{grid-template-columns:1fr;gap:2rem;}
}
@media(max-width:880px){
  .grid-3,.team,.tiers,.alt-grid{grid-template-columns:1fr 1fr;}
  .timeline::before{left:5.5rem;}
  .tl-item{grid-template-columns:4rem 1fr;gap:1.4rem;}
}
@media(max-width:680px){
  .sec{padding:5rem clamp(1.2rem,5vw,2rem);}
  .grid-2,.grid-3,.team,.tiers,.alt-grid,.split,.svc-includes{grid-template-columns:1fr;}
  .tw{grid-template-columns:1fr;}
  .phero{min-height:54vh;padding-top:8rem;}
  /* comparison table → stacked on mobile */
  .cmp,.cmp tbody,.cmp tr,.cmp td,.cmp th{display:block;}
  .cmp thead{display:none;}
  .cmp tr{border:1px solid var(--border-w);border-radius:12px;margin-bottom:1rem;padding:.6rem;}
  .cmp tbody th{font-size:.95rem;padding:.8rem;border-bottom:1px solid var(--border-w);}
  .cmp td{display:flex;justify-content:space-between;gap:1rem;border:none;padding:.6rem .8rem;}
  .cmp td::before{content:attr(data-label);font-family:'JetBrains Mono',monospace;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);}
  /* mobile: drop custom cursor for touch */
  body,*{cursor:auto!important;}
  #cur,#cur-r{display:none;}
  .timeline::before{left:4.2rem;}
  .tl-item{grid-template-columns:3rem 1fr;gap:1rem;}
  .tl-year{font-size:.62rem;}
}


/* ============================================================
   MOBILE OPTIMISATION — @media (max-width: 768px)
   Rules below are ADDITIVE — desktop styles untouched.
   Target: 375px (iPhone SE / standard iPhone)
   ============================================================ */

@media (max-width: 768px) {

  /* ── GLOBAL SPACING ── */
  .sec { padding: 3rem 1.25rem; }
  .sec-sm { padding: 2rem 1.25rem; }

  /* ── CUSTOM CURSOR — disable on touch ── */
  body, * { cursor: auto !important; }
  #cur, #cur-r { display: none !important; }

  /* ── NAVIGATION ── */
  .nav {
    padding: 1rem 1.25rem;
  }
  .nav.stuck {
    padding: .85rem 1.25rem;
  }
  .nav-links { display: none; }
  .nav-burger { display: flex; }
  .logo { font-size: 1.15rem; }

  /* ── HERO (INDEX) ── */
  .hero {
    grid-template-columns: 1fr;
    min-height: 100dvh;
  }
  .hero-right {
    position: absolute;
    inset: 0;
    opacity: .35;
  }
  /* Limit Three.js canvas height on mobile */
  #three-canvas {
    max-height: 50vh !important;
  }
  .hero-left {
    padding: 6rem 1.25rem 3rem;
    position: relative;
    z-index: 2;
    justify-content: flex-end;
  }
  h1.hero-h {
    font-size: clamp(2.4rem, 10vw, 3.6rem);
    margin-bottom: 1.4rem;
    line-height: 1.0;
    letter-spacing: -.03em;
  }
  .sub {
    font-size: .88rem;
    margin-bottom: 1.8rem;
    max-width: 100%;
    line-height: 1.75;
  }
  .ctas {
    flex-direction: column;
    gap: .7rem;
  }
  .ctas .btn-p,
  .ctas .btn-s {
    width: 100%;
    justify-content: center;
    min-height: 52px;
  }
  /* Hide decorative corner data widget */
  .corner-data { display: none !important; }
  /* Hide scroll cue */
  .scroll-cue { display: none; }
  /* Noise overlay — keep but lighter for perf */
  .noise { opacity: .03; }

  /* ── HERO METRICS ── */
  .metrics {
    gap: 1.5rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    flex-wrap: wrap;
  }
  .metrics > div { flex: 1 1 auto; min-width: 80px; }
  .mn { font-size: 1.6rem; }
  .ml { font-size: .52rem; }

  /* ── PAGE HERO (inner pages) ── */
  .phero {
    min-height: 46vh;
    padding: 7rem 1.25rem 3rem;
    max-height: 50vh;
  }
  .phero canvas {
    max-height: 50vh !important;
  }
  .phero-h {
    font-size: clamp(2rem, 9vw, 3rem);
    margin-bottom: 1rem;
  }
  .phero-sub {
    font-size: .85rem;
    max-width: 100%;
  }
  .kicker {
    font-size: .55rem;
    margin-bottom: 1.2rem;
  }

  /* ── SECTION HEADINGS ── */
  .s-h {
    font-size: clamp(1.8rem, 7vw, 2.8rem);
  }
  .lead {
    font-size: .9rem;
    margin-top: 1rem;
  }

  /* ── MANIFESTO / SPLIT LAYOUT ── */
  .man-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .man-stick { position: static; }
  .man-body { max-width: 100%; }
  .split { grid-template-columns: 1fr; gap: 2rem; }
  .split-stick { position: static; }

  /* ── BENTO GRID — single column ── */
  .bento {
    grid-template-columns: 1fr;
    gap: 1px;
  }
  .bc-a, .bc-b, .bc-c, .bc-d, .bc-e, .bc-f, .bc-g {
    grid-column: span 1 !important;
  }
  .bc { padding: 1.6rem; }
  .bc-t { font-size: 1.1rem; }
  .bc-d { font-size: .8rem; }
  /* Hide bento arrow decorations on mobile */
  .bc-arr { display: none; }

  /* Services header */
  .svcs-head {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
  }
  .svcs-sub { text-align: left; justify-self: start; max-width: 100%; }

  /* ── PROCESS ROWS ── */
  .proc-list { margin-top: 2rem; }
  .pr {
    grid-template-columns: 2.5rem 1fr;
    gap: 1rem;
    padding: 1.6rem 0;
  }
  /* Hide description and timing tags on mobile for cleanliness */
  .pr-d { display: none; }
  .pr-tg { display: none; }
  .pr-t {
    font-size: clamp(1rem, 4.5vw, 1.4rem);
    letter-spacing: -.01em;
  }
  .pr-n { font-size: .55rem; }
  /* Hide decorative watermark text */
  .proc::before { display: none; }

  /* ── GRIDS ── */
  .grid-2, .grid-3 { grid-template-columns: 1fr; gap: 1rem; }

  /* ── TEAM GRID — single column (max 2 cols at wider mobile) ── */
  .team { grid-template-columns: 1fr; gap: 1rem; }
  .member { padding: 1.6rem; }
  .m-av { width: 52px; height: 52px; margin-bottom: 1rem; }

  /* ── TIERS / PRICING ── */
  .tiers { grid-template-columns: 1fr; gap: 1rem; }
  .tier { padding: 1.6rem; }

  /* ── TESTIMONIALS — single column ── */
  .testi-grid {
    grid-template-columns: 1fr;
    gap: 1px;
  }
  .tc { padding: 1.8rem 1.25rem; }
  .tc-feat {
    grid-column: span 1 !important;
    flex-direction: column;
    gap: 1.5rem;
    padding: 2rem 1.25rem;
  }
  .tc-feat .tc-q { font-size: 1rem; }

  /* ── SERVICE DETAIL BLOCKS ── */
  .svc-block {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2rem 0;
  }
  .svc-title { font-size: clamp(1.3rem, 5vw, 1.8rem); }
  .svc-includes { grid-template-columns: 1fr; }

  /* ── ALT CONTACT GRID ── */
  .alt-grid { grid-template-columns: 1fr; gap: .85rem; }
  .alt-card { padding: 1.4rem; }

  /* ── FORM ── */
  .req-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .fcard { padding: 1.6rem 1.25rem; }
  .tw { grid-template-columns: 1fr; }
  .f input,
  .f select,
  .f textarea {
    font-size: 1rem; /* prevent iOS zoom on focus */
    min-height: 52px;
    padding: 1rem 1.1rem;
  }
  .f textarea { min-height: 100px; }
  .sbtn {
    min-height: 56px;
    font-size: .75rem;
  }

  /* ── CONTACT PAGE — trust bullets ── */
  .trust { gap: .7rem; }
  .tr { font-size: .8rem; }

  /* ── CTA BAND ── */
  .cta-band { padding: 3rem 1.25rem; }
  .cta-band h2 { font-size: clamp(1.6rem, 7vw, 2.4rem); }
  .cta-band p { font-size: .85rem; }
  .cta-actions { flex-direction: column; gap: .7rem; align-items: stretch; }
  .cta-actions .btn-p,
  .cta-actions .btn-s { width: 100%; justify-content: center; min-height: 52px; }

  /* ── ACCORDION (FAQ) ── */
  .acc-q {
    font-size: .95rem;
    padding: 1.3rem 2.5rem 1.3rem 0;
  }
  .acc-a-in { font-size: .85rem; padding-right: 0; }

  /* ── COMPARISON TABLE ── */
  .cmp, .cmp tbody, .cmp tr, .cmp td, .cmp th { display: block; }
  .cmp thead { display: none; }
  .cmp tr { border: 1px solid var(--border-w); border-radius: 12px; margin-bottom: 1rem; padding: .6rem; }
  .cmp tbody th { font-size: .9rem; padding: .8rem; border-bottom: 1px solid var(--border-w); }
  .cmp td { display: flex; justify-content: space-between; gap: 1rem; border: none; padding: .6rem .8rem; }
  .cmp td::before { content: attr(data-label); font-family: 'JetBrains Mono', monospace; font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }

  /* ── ZIGZAG ROWS ── */
  .zz-i {
    gap: 1rem;
    padding: 1.6rem 0;
  }
  .zz-t { font-size: 1.05rem; }
  .zz-d { font-size: .82rem; }

  /* ── TIMELINE ── */
  .timeline::before { left: 3.5rem; }
  .tl-item { grid-template-columns: 2.8rem 1fr; gap: .8rem; padding: 1.2rem 0; }
  .tl-year { font-size: .6rem; }
  .tl-t { font-size: .95rem; }
  .tl-d { font-size: .8rem; }

  /* ── MARQUEE ── */
  .marquee-track { animation-duration: 20s; }

  /* ── FOOTER — single column ── */
  footer { padding: 2.5rem 1.25rem 1.5rem; }
  .foot-in {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.8rem;
    padding-bottom: 1.5rem;
  }
  .f-nav {
    flex-direction: column;
    gap: 1.4rem;
    width: 100%;
  }
  .f-nav-group { gap: .5rem; }
  .foot-btm {
    flex-direction: column;
    gap: .5rem;
  }
  .f-c { font-size: .54rem; }

  /* ── HIDE DECORATIVE ELEMENTS ── */
  /* Orbiting rings bg element via proc watermark already hidden */
  /* Noise overlay handled above */
  /* Hide section decorative pseudo-elements that are performance-heavy */
  .req::before { display: none; }
  .cta-band::before { display: none; }

  /* ── PREVENT HORIZONTAL OVERFLOW ── */
  .max, .max-narrow {
    max-width: 100%;
    overflow-x: hidden;
  }
  img, canvas, iframe, video { max-width: 100%; }

  /* ── CARDS ── */
  .card { padding: 1.6rem; }
  .card-t { font-size: 1.1rem; }

  /* ── BREADCRUMBS ── */
  .crumbs { font-size: .54rem; gap: .4rem; }

  /* ── SECTION TAG ── */
  .s-tag { font-size: .55rem; margin-bottom: 1rem; }
}

/* ── 480px and under — tighten more ── */
@media (max-width: 480px) {
  h1.hero-h { font-size: clamp(2rem, 11vw, 2.8rem); }
  .s-h { font-size: clamp(1.6rem, 8vw, 2.4rem); }
  .phero-h { font-size: clamp(1.8rem, 10vw, 2.6rem); }
  .bc { padding: 1.4rem 1.1rem; }
  .tc { padding: 1.4rem 1rem; }
  .fcard { padding: 1.4rem 1rem; }
  /* Team grid: single column only */
  .team { grid-template-columns: 1fr; }
  /* Metrics: show all but compressed */
  .metrics > div { min-width: 70px; }
  .mn { font-size: 1.4rem; }
}
