/* =========================================================
   FIGURES — high-tech layer (same brand palette)
   ink #0d1712 · sage #5f7563 · gold #c7b48a · ivory #f2eee5
   ========================================================= */
:root{
  --glow:rgba(176,226,186,.55);
  --glow-soft:rgba(150,210,165,.16);
  --grid-d:rgba(160,205,170,.055);
  --grid-l:rgba(40,70,52,.07);
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* ---------- scroll progress ---------- */
.tx-progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:60;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--sage),#bfe3c4,var(--gold));box-shadow:0 0 12px var(--glow)}

/* ---------- sticky glass nav ---------- */
.nav{position:fixed;transition:background .35s,backdrop-filter .35s,border-color .35s,height .35s}
.nav.tx-scrolled{background:rgba(9,17,13,.9);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid rgba(190,230,198,.12)}
.nav.tx-scrolled .wrap{height:72px}
.nav .wrap{transition:height .35s}
.links a:not(.btn){position:relative}
.links a:not(.btn)::before{content:"";position:absolute;left:50%;bottom:-2px;width:0;height:1px;background:var(--gold);box-shadow:0 0 8px var(--gold);transition:all .3s;transform:translateX(-50%)}
.links a:not(.btn):hover::before,.links a.on::before{width:100%}
.links a:hover,.links a.on{border-color:transparent}

/* ---------- grid + glow backgrounds ---------- */
.dark,.dark-2,.cta,footer,.hero{isolation:isolate}
.dark::before,.dark-2::before,footer::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--grid-d) 1px,transparent 1px),linear-gradient(90deg,var(--grid-d) 1px,transparent 1px);
  background-size:56px 56px;-webkit-mask:radial-gradient(ellipse at 50% 40%,#000 20%,transparent 80%);mask:radial-gradient(ellipse at 50% 40%,#000 20%,transparent 80%)}
.light{position:relative}
.light::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(var(--grid-l) 1px,transparent 1.2px);background-size:22px 22px;
  -webkit-mask:linear-gradient(180deg,#000,transparent 70%);mask:linear-gradient(180deg,#000,transparent 70%)}
.light>.wrap{position:relative}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(var(--grid-d) 1px,transparent 1px),linear-gradient(90deg,var(--grid-d) 1px,transparent 1px);background-size:64px 64px;
  -webkit-mask:linear-gradient(90deg,transparent 35%,#000 75%);mask:linear-gradient(90deg,transparent 35%,#000 75%)}
.hero .wrap{z-index:3}
/* slow light scan across heroes */
.hero .bg{overflow:hidden}
.hero .tx-scan{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.hero .tx-scan::before{content:"";position:absolute;left:0;right:0;height:140px;top:-140px;
  background:linear-gradient(180deg,transparent,rgba(180,235,195,.06),transparent);animation:txScan 9s linear 1.5s infinite}
@keyframes txScan{to{top:110%}}

/* ---------- eyebrows / numbers: tech type ---------- */
.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(199,180,138,.18),0 0 10px var(--gold);animation:txPulse 2.4s ease-in-out infinite;flex:0 0 auto}
.light .eyebrow::before{background:var(--sage);box-shadow:0 0 0 3px rgba(95,117,99,.18)}
@keyframes txPulse{50%{opacity:.35}}
.num,.svc-row .n,.step .num,.value b,.tag,.pill,.kpi small,.months,.tile span{font-family:var(--mono)}
.svc-row .n{box-shadow:0 0 0 4px rgba(199,180,138,.06),inset 0 0 12px rgba(199,180,138,.12);border-color:rgba(199,180,138,.35)}
.tag{letter-spacing:.14em;background:rgba(95,117,99,.35);border:1px solid rgba(190,230,198,.35);box-shadow:0 0 12px rgba(150,210,165,.25)}

/* ---------- buttons: glow + sweep ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn:not(.ghost){box-shadow:0 0 0 1px rgba(190,230,198,.18),0 8px 24px rgba(0,0,0,.25),0 0 22px rgba(120,170,130,.22)}
.btn::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;z-index:-1;
  background:linear-gradient(100deg,transparent,rgba(235,255,240,.28),transparent);transform:skewX(-18deg);transition:left .6s}
.btn:hover::before{left:130%}
.btn:hover{box-shadow:0 0 0 1px rgba(190,230,198,.35),0 0 30px rgba(150,210,165,.4)}
.btn.ghost:hover{border-color:rgba(199,180,138,.8);box-shadow:0 0 22px rgba(199,180,138,.22)}

/* ---------- glass panels with glowing edge + cursor spotlight ---------- */
.svc-row,.card,.contact-box,.cred,.value,.svc-strip a{--mx:50%;--my:50%}
.svc-row,.contact-box{position:relative;background:linear-gradient(155deg,rgba(40,62,50,.55),rgba(14,26,20,.85));
  border:1px solid rgba(190,230,198,.12);border-radius:14px;overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06)}
.svc-row::before,.contact-box::before,.card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(130deg,rgba(200,236,206,.55),transparent 30%,transparent 70%,rgba(199,180,138,.45));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;transition:opacity .35s}
.svc-row::after,.contact-box::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(420px circle at var(--mx) var(--my),rgba(170,225,182,.10),transparent 60%)}
.svc-row:hover::before,.contact-box:hover::before,.card:hover::before{opacity:1}
.svc-row:hover::after,.contact-box:hover::after{opacity:1}
.svc-row:hover{border-color:rgba(190,230,198,.25);transform:translateY(-2px)}
.svc-row{transition:transform .35s,border-color .35s}
.svc-row .im{border-radius:10px;position:relative}
.svc-row li::before{box-shadow:0 0 6px var(--gold)}

/* light-section cards */
.card{position:relative;border-radius:14px;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid rgba(40,70,52,.12);transition:transform .35s,box-shadow .35s}
.card::before{background:linear-gradient(130deg,rgba(95,117,99,.6),transparent 35%,transparent 65%,rgba(199,180,138,.6));opacity:0}
.card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(20,40,28,.12)}
.card .ico,.svc-strip .ico{filter:drop-shadow(0 0 6px rgba(95,117,99,.25))}

/* service strip (home) */
.svc-strip a{position:relative;overflow:hidden}
.svc-strip a::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(260px circle at var(--mx) var(--my),rgba(95,117,99,.12),transparent 65%)}
.svc-strip a:hover::after{opacity:1}
.svc-strip a::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:linear-gradient(90deg,var(--sage),var(--gold));transition:width .45s}
.svc-strip a:hover::before{width:100%}

/* ---------- HUD corner brackets on imagery ---------- */
.tile .im,.split .media,.founder .im,.svc-row .im{--c:rgba(214,240,214,.75)}
.tile .im::before,.founder .im::before,.svc-row .im::before{content:"";position:absolute;inset:10px;z-index:2;pointer-events:none;opacity:.0;transition:opacity .4s,inset .4s;
  background:
   linear-gradient(var(--c),var(--c)) top left/16px 1px,linear-gradient(var(--c),var(--c)) top left/1px 16px,
   linear-gradient(var(--c),var(--c)) top right/16px 1px,linear-gradient(var(--c),var(--c)) top right/1px 16px,
   linear-gradient(var(--c),var(--c)) bottom left/16px 1px,linear-gradient(var(--c),var(--c)) bottom left/1px 16px,
   linear-gradient(var(--c),var(--c)) bottom right/16px 1px,linear-gradient(var(--c),var(--c)) bottom right/1px 16px;
  background-repeat:no-repeat}
.tile:hover .im::before,.svc-row:hover .im::before{opacity:1;inset:14px}
.founder .im{position:relative}
.founder .im::before{opacity:1}
.tile .im{border-radius:10px}
.tile span{font-size:10.5px;letter-spacing:.2em;display:flex;align-items:center;gap:10px}
.tile span::before{content:"";width:14px;height:1px;background:currentColor;opacity:.6;transition:width .35s}
.tile:hover span::before{width:28px}

/* ---------- process line draws in ---------- */
.process::before{background:linear-gradient(90deg,var(--sage),var(--gold));transform-origin:0 50%;transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1) .2s;opacity:.55}
.process.tx-in::before{transform:scaleX(1)}
.step .ring{box-shadow:0 0 0 8px var(--ivory),0 0 0 9px rgba(95,117,99,.25),0 0 26px rgba(95,117,99,.35)}

/* ---------- creds / values ---------- */
.creds{border-top:0;gap:14px}
.cred{border:1px solid rgba(40,70,52,.12)!important;border-radius:14px;background:rgba(255,255,255,.55);transition:transform .35s,box-shadow .35s}
.cred:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,40,28,.1)}
.value{border-top:1px solid transparent;border-image:linear-gradient(90deg,var(--sage),transparent) 1}
.value b{color:var(--sage)}

/* ---------- ticker (home) ---------- */
.tx-ticker{position:relative;background:#0a130f;border-top:1px solid rgba(190,230,198,.1);border-bottom:1px solid rgba(190,230,198,.1);overflow:hidden;
  -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.tx-ticker .track{display:flex;width:max-content;animation:txTick 38s linear infinite}
.tx-ticker span{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#9fb19c;padding:18px 28px;white-space:nowrap;display:flex;align-items:center;gap:28px}
.tx-ticker span::after{content:"";width:5px;height:5px;transform:rotate(45deg);background:var(--gold);box-shadow:0 0 8px var(--gold)}
@keyframes txTick{to{transform:translateX(-50%)}}

/* ---------- CTA ---------- */
.cta{border-top:1px solid rgba(190,230,198,.1)}
.cta::after{content:"";position:absolute;left:50%;top:0;width:60%;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(200,236,206,.6),transparent);box-shadow:0 0 18px var(--glow)}
.cta h2{text-shadow:0 0 40px rgba(150,210,165,.15)}

/* ---------- footer ---------- */
footer{position:relative}
.foot h5{font-family:var(--mono)}
.legal{font-family:var(--mono);font-size:11px;letter-spacing:.06em}

/* ---------- reveal: blur-in ---------- */
.rv{filter:blur(6px)}
.rv.in{filter:none}
.rv{transition:opacity .9s ease,transform .9s ease,filter .9s ease}

/* ---------- headings ---------- */
.hero h1 em,.split h2,.cta h2{letter-spacing:-.01em}
.hero h1 em{text-shadow:0 0 34px rgba(199,180,138,.25)}

@media (max-width:860px){
  .nav.tx-scrolled .wrap{height:64px}
  .nav.tx-scrolled{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(9,17,13,.95)}
  .creds{gap:10px}
  .hero::after{-webkit-mask:linear-gradient(180deg,transparent 30%,#000);mask:linear-gradient(180deg,transparent 30%,#000)}
}
@media (prefers-reduced-motion:reduce){
  .tx-ticker .track,.hero .tx-scan::before,.eyebrow::before{animation:none}
  .rv{filter:none}
}

/* ---------- SEO heading structure (same look) ---------- */
.svc-strip h3{font-family:var(--sans);font-weight:400;font-size:14px;line-height:1.4;color:var(--txt-l);flex:1;letter-spacing:0}
.svc-row .svc-h{font-size:32px;margin-bottom:10px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;line-height:1.08}
.card h3{font-family:var(--serif);font-size:24px;font-weight:500;color:var(--txt-l);margin-bottom:6px}
ol.process{list-style:none;padding:0}
.step h3{font-family:var(--serif);font-size:28px;font-weight:400;color:var(--txt-l);margin:6px 0 8px}
.tile .ins-h{font-family:var(--serif);font-size:20px;font-weight:400;line-height:1.25;color:var(--txt-l)}
.contact-box .cb-h{font-size:24px;margin-bottom:14px}
h2.eyebrow{line-height:1.6}
.split .copy .eyebrow{margin:0 0 22px}
@media (max-width:560px){.svc-row .svc-h{font-size:27px}}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:12px;max-width:900px}
.faq details{border:1px solid rgba(40,70,52,.14);border-radius:14px;background:rgba(255,255,255,.6);padding:0 24px;transition:box-shadow .3s,border-color .3s}
.faq details[open]{border-color:rgba(95,117,99,.45);box-shadow:0 14px 34px rgba(20,40,28,.08)}
.faq summary{cursor:pointer;list-style:none;padding:22px 34px 22px 0;font-family:var(--serif);font-size:22px;color:var(--txt-l);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:18px;color:var(--sage);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding:0 0 22px;max-width:760px;font-size:15px}
