*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --black:#0D0D0D; --white:#FFFFFF; --surface:#111518; --surface2:#252A2D;
  --sand:#BCAD9B; --sand-dim:rgba(188,173,155,0.08); --sand-border:rgba(188,173,155,0.18);
  --red:#EC3E3E; --red-dark:#d42e2e;
  --border:rgba(255,255,255,0.07); --ease:cubic-bezier(0.2,0,0,1);
}
html { scroll-behavior: smooth; }
body { font-family:"Open Sans",sans-serif; font-weight:400; color:rgba(255,255,255,0.82); background:var(--black); overflow-x:hidden; }
h1,h2,h3,h4,h5 { font-family:"Space Grotesk",sans-serif; font-weight:700; line-height:1.05; }
p { line-height:1.75; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; z-index:0; background-image:linear-gradient(var(--sand-dim) 1px,transparent 1px),linear-gradient(90deg,var(--sand-dim) 1px,transparent 1px); background-size:48px 48px; opacity:.5; }

/* SCROLL PROGRESS */
#scroll-progress { position:fixed; top:0; left:0; height:2px; width:100%; background:var(--sand); transform-origin:left; transform:scaleX(0); z-index:300; transition:transform 0.05s linear; }

/* HEADER */
#header { position:fixed; top:2px; left:0; right:0; z-index:200; padding:18px 48px; display:flex; align-items:center; justify-content:space-between; transition:background 0.4s,padding 0.3s; }
#header.scrolled { background:rgba(13,13,13,0.94); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-bottom:1px solid var(--border); padding:12px 48px; }
.header-logo img { height:30px; width:auto; display:block; }
.header-nav { display:flex; align-items:center; gap:32px; }
.header-nav a { font-family:"Space Grotesk",sans-serif; font-weight:500; font-size:13px; color:rgba(255,255,255,0.6); letter-spacing:.04em; transition:color .2s; }
.header-nav a:hover, .header-nav a.active { color:var(--white); }
.header-cta { background:var(--red); color:var(--white) !important; font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:12px; padding:10px 22px; letter-spacing:0.08em; text-transform:uppercase; transition:background 0.2s; }
.header-cta:hover { background:var(--red-dark) !important; }

/* CONTAINER */
.container { max-width:1140px; margin:0 auto; padding:0 24px; position:relative; z-index:1; }

/* TYPOGRAPHY HELPERS */
.section-label { font-family:"Space Grotesk",sans-serif; font-weight:500; font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--sand); margin-bottom:20px; display:block; }
.text-sand { color:var(--sand); }
.text-red { color:var(--red); }

/* BUTTONS */
.btn-primary { display:inline-flex; align-items:center; gap:12px; background:var(--red); color:var(--white); font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:15px; padding:18px 36px; border:none; cursor:pointer; transition:background .2s; letter-spacing:0.04em; }
.btn-primary:hover { background:var(--red-dark); }
.btn-ghost { display:inline-flex; align-items:center; gap:12px; background:transparent; color:var(--white); font-family:"Space Grotesk",sans-serif; font-weight:600; font-size:14px; padding:17px 34px; border:1.5px solid rgba(255,255,255,0.25); cursor:pointer; transition:all .25s; letter-spacing:0.04em; }
.btn-ghost:hover { border-color:var(--white); background:rgba(255,255,255,0.05); }
.btn-sand { display:inline-flex; align-items:center; gap:10px; background:var(--sand); color:var(--black); font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:14px; padding:16px 32px; border:none; cursor:pointer; transition:opacity .2s; letter-spacing:0.04em; }
.btn-sand:hover { opacity:.88; }

/* FOOTER */
#footer { background:var(--black); border-top:1px solid var(--border); padding:56px 0 36px; }
.footer-top { display:grid; grid-template-columns:1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
.footer-brand img { height:26px; margin-bottom:16px; }
.footer-brand p { font-size:13px; color:rgba(255,255,255,0.3); line-height:1.75; max-width:240px; }
.footer-col h5 { font-family:"Space Grotesk",sans-serif; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--sand); margin-bottom:16px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col ul li a { font-size:13px; color:rgba(255,255,255,0.4); transition:color .2s; }
.footer-col ul li a:hover { color:rgba(255,255,255,0.8); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; padding-top:28px; border-top:1px solid var(--border); }
.footer-copy { font-size:12px; color:rgba(255,255,255,0.18); }
.footer-social { display:flex; gap:12px; }
.footer-social a { width:34px; height:34px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); color:rgba(255,255,255,0.3); transition:border-color .2s,color .2s; }
.footer-social a:hover { border-color:var(--sand); color:var(--sand); }
.footer-social svg { width:15px; height:15px; fill:currentColor; }

/* PAGE HERO */
.page-hero { padding:140px 0 100px; border-top:3px solid var(--red); position:relative; overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0; background:radial-gradient(ellipse at 60% 50%,rgba(236,62,62,0.04) 0%,transparent 65%); }
.page-hero-inner { position:relative; z-index:2; max-width:820px; }
.page-hero h1 { font-size:clamp(38px,5vw,66px); color:var(--white); letter-spacing:-.03em; margin-bottom:24px; }
.page-hero h1 em { font-style:normal; color:var(--sand); font-weight:300; }
.page-hero p { font-size:18px; color:rgba(255,255,255,0.55); line-height:1.78; max-width:620px; }

/* SECTION COMMON */
.section { padding:120px 0; position:relative; z-index:1; }
.section-surface { background:var(--surface); }
.section-black { background:var(--black); }
.section-border-top { border-top:1px solid var(--border); }
.section-border-sand { border-top:1px solid var(--sand-border); }
.section-header { max-width:680px; margin:0 auto 72px; text-align:center; }
.section-header h2 { font-size:clamp(32px,3.8vw,50px); color:var(--white); letter-spacing:-.03em; margin-bottom:20px; }
.section-header p { font-size:17px; color:rgba(255,255,255,0.5); line-height:1.75; }
.section-header-left { max-width:680px; margin:0 0 72px; }
.section-header-left h2 { font-size:clamp(32px,3.8vw,50px); color:var(--white); letter-spacing:-.03em; margin-bottom:20px; }
.section-header-left p { font-size:17px; color:rgba(255,255,255,0.5); line-height:1.75; }

/* CARD GRID */
.card-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--surface2); }
.card-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--surface2); }
.card { background:var(--surface); padding:48px 40px; position:relative; transition:background .3s; }
.card:hover { background:#161b1e; }
.card::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(to right,var(--sand),transparent); }
.card.red-top::before { background:var(--red); }
.card.no-top::before { display:none; }
.card-eyebrow { font-family:"Space Grotesk",sans-serif; font-size:10px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--sand); margin-bottom:16px; }
.card h3 { font-size:20px; color:var(--white); letter-spacing:-.02em; margin-bottom:14px; line-height:1.2; }
.card p { font-size:14px; color:rgba(255,255,255,0.5); line-height:1.75; }
.card-result { background:var(--surface2); border-left:2px solid var(--sand); padding:16px 20px; margin:24px 0; }
.card-result-label { font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--sand); margin-bottom:8px; }
.card-result-text { font-size:13px; color:rgba(255,255,255,0.65); line-height:1.6; }
.card-list { list-style:none; display:flex; flex-direction:column; gap:9px; margin-top:20px; }
.card-list li { font-size:13px; color:rgba(255,255,255,0.5); padding-left:18px; position:relative; line-height:1.5; }
.card-list li::before { content:"—"; position:absolute; left:0; color:var(--sand); font-size:11px; top:1px; }
.card-link { display:inline-flex; align-items:center; gap:8px; font-family:"Space Grotesk",sans-serif; font-size:13px; font-weight:600; color:var(--sand); margin-top:28px; letter-spacing:.04em; transition:gap .2s; }
.card-link:hover { gap:14px; }
.card-link::after { content:"→"; }

/* STAT ROW */
.stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--surface2); }
.stat-item { background:var(--surface); padding:40px 36px; }
.stat-num { font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:clamp(36px,4vw,52px); color:var(--white); line-height:1; margin-bottom:8px; letter-spacing:-.03em; }
.stat-label { font-size:13px; color:rgba(255,255,255,0.38); line-height:1.55; }

/* TECH CARD */
.tech-card { background:var(--surface); border:1px solid var(--sand-border); padding:52px 48px; position:relative; overflow:hidden; transition:border-color .3s; }
.tech-card:hover { border-color:rgba(188,173,155,0.4); background:#161b1e; }
.tech-badge { display:inline-block; background:var(--sand); color:var(--black); font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:9px; letter-spacing:.2em; text-transform:uppercase; padding:5px 12px; margin-bottom:24px; }
.tech-card h3 { font-size:22px; color:var(--white); margin-bottom:14px; letter-spacing:-.02em; }
.tech-card > p { font-size:15px; color:rgba(255,255,255,0.5); line-height:1.75; margin-bottom:28px; }
.tech-features { list-style:none; display:flex; flex-direction:column; gap:10px; }
.tech-features li { font-size:14px; color:rgba(255,255,255,0.55); padding-left:20px; position:relative; line-height:1.55; }
.tech-features li::before { content:"→"; position:absolute; left:0; color:var(--sand); font-size:12px; top:1px; }
.tech-result { background:var(--surface2); border-left:2px solid var(--sand); padding:20px 24px; margin-top:32px; }
.tech-result-label { font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--sand); margin-bottom:10px; }
.tech-result-text { font-size:14px; color:rgba(255,255,255,0.65); line-height:1.65; }

/* FAQ */
.faq-list { display:flex; flex-direction:column; gap:1px; }
.faq-item { background:var(--surface2); overflow:hidden; }
.faq-question { padding:22px 28px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; transition:background .2s; }
.faq-question:hover { background:#2a3035; }
.faq-question h3 { font-size:15px; color:var(--white); font-weight:600; line-height:1.4; flex:1; padding-right:24px; }
.faq-icon { width:28px; height:28px; background:var(--surface); display:flex; align-items:center; justify-content:center; flex-shrink:0; border:1px solid var(--border); transition:background .2s; }
.faq-icon svg { stroke:rgba(255,255,255,0.6); transition:transform .3s; }
.faq-item.open .faq-icon { background:var(--sand); border-color:var(--sand); }
.faq-item.open .faq-icon svg { stroke:var(--black); transform:rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-answer-inner { padding:0 28px 28px; font-size:15px; color:rgba(255,255,255,0.55); line-height:1.75; }
.faq-item.open .faq-answer { max-height:400px; }

/* CTA SECTION */
.cta-section { background:var(--black); padding:140px 0; text-align:center; position:relative; overflow:hidden; border-top:1px solid var(--border); }
.cta-section::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--red),transparent); }
.cta-section::after { content:""; position:absolute; bottom:-10%; left:50%; transform:translateX(-50%); width:800px; height:400px; background:radial-gradient(ellipse,rgba(188,173,155,0.04) 0%,transparent 65%); pointer-events:none; }
.cta-inner { position:relative; z-index:2; max-width:640px; margin:0 auto; }
.cta-inner h2 { font-size:clamp(36px,4.5vw,58px); color:var(--white); letter-spacing:-.03em; margin-bottom:20px; line-height:1.04; }
.cta-inner h2 em { font-style:normal; color:var(--sand); font-weight:300; }
.cta-inner p { font-size:17px; color:rgba(255,255,255,0.45); margin-bottom:40px; line-height:1.7; }
.cta-actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* RESPONSIVE */
@media (max-width:1024px) {
  #header { padding:16px 24px; } #header.scrolled { padding:12px 24px; }
  .stat-row { grid-template-columns:1fr 1fr; }
  .card-grid-3 { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; gap:32px; }
}
@media (max-width:768px) {
  .page-hero { padding:120px 0 80px; }
  .section { padding:80px 0; }
  .card-grid-2 { grid-template-columns:1fr; }
  .stat-row { grid-template-columns:1fr 1fr; }
  .header-nav { display:none; }
}
