:root {
  --black:        #060608;
  --dark:         #0c0c0f;
  --darker:       #090909;
  --card:         #101013;
  --card2:        #131316;
  --border:       rgba(255,255,255,0.065);
  --border2:      rgba(255,255,255,0.11);
  --green:        #6abf3f;
  --green-mid:    #4e9e2b;
  --green-glow:   rgba(106,191,63,0.15);
  --green-subtle: rgba(106,191,63,0.055);
  --white:        #efefef;
  --muted:        #b8b8b8;
  --muted2:       #8d8d8d;
  --font-d:  'Bebas Neue', sans-serif;
  --font-b:  'Barlow', sans-serif;
  --font-c:  'Barlow Condensed', sans-serif;
  color-scheme: dark;
}

:root[data-theme="light"] {
  --black:        #f7f8f4;
  --dark:         #ecefe8;
  --darker:       #e3e8df;
  --card:         #ffffff;
  --card2:        #f1f4ed;
  --border:       rgba(13,18,12,0.12);
  --border2:      rgba(13,18,12,0.18);
  --green:        #3f8425;
  --green-mid:    #2e6618;
  --green-glow:   rgba(63,132,37,0.16);
  --green-subtle: rgba(63,132,37,0.08);
  --white:        #10140f;
  --muted:        #4f5b4a;
  --muted2:       #6e7968;
  color-scheme: light;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background: var(--black); color: var(--white); font-family: var(--font-b); overflow-x: hidden; }

nav { position:fixed; inset:0 0 auto 0; z-index:900; display:flex; align-items:center; justify-content:space-between; padding:20px 56px; transition:background .35s, backdrop-filter .35s, border-color .35s; border-bottom:1px solid transparent; }
nav.stuck { background:rgba(6,6,8,.94); backdrop-filter:blur(16px); border-color:var(--border); }
:root[data-theme="light"] nav.stuck { background:rgba(247,248,244,.94); }
.nav-logo { display:flex; align-items:center; text-decoration:none; }
.nav-logo-img { display:block; width:auto; height:48px; max-width:160px; object-fit:contain; }
.nav-logo-light { display:none; width:auto; height:48px; max-width:160px; object-fit:contain; }
:root[data-theme="light"] .nav-logo-img { display:none; }
:root[data-theme="light"] .nav-logo-light { display:block; }
.nav-actions { display:flex; align-items:center; gap:12px; }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { font-family:var(--font-c); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .2s; }
.nav-links a:hover, .nav-links a[aria-current] { color:var(--white); }
.nav-quote { font-family:var(--font-c); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--green); border:1px solid var(--green); padding:10px 24px; background:none; cursor:pointer; transition:background .2s, color .2s; }
.nav-quote:hover { background:var(--green); color:var(--black); }
.nav-theme-toggle { width:42px; height:42px; border:1px solid var(--border2); background:var(--card); color:var(--white); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:border-color .2s, color .2s, background .2s; }
.nav-theme-toggle:hover { border-color:var(--green); color:var(--green); }
.theme-icon { width:18px; height:18px; }
.theme-icon .moon, :root[data-theme="light"] .theme-icon .sun { display:none; }
:root[data-theme="light"] .theme-icon .moon { display:block; }
.nav-ham { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; z-index:1001; }
.nav-ham span { width:24px; height:2px; background:var(--white); display:block; transition:transform .3s ease, opacity .3s ease; }
.nav-ham.active span:nth-child(1) { transform:rotate(45deg) translate(5px, 5px); }
.nav-ham.active span:nth-child(2) { opacity:0; }
.nav-ham.active span:nth-child(3) { transform:rotate(-45deg) translate(7px, -7px); }

.mobile-menu { position:fixed; inset:0; background:var(--black); z-index:1000; display:flex; flex-direction:column; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s ease; }
.mobile-menu.active { opacity:1; pointer-events:all; }
.mobile-menu-links { list-style:none; text-align:center; padding:0; }
.mobile-menu-links li { margin:24px 0; opacity:0; transform:translateY(20px); transition:opacity .4s ease, transform .4s ease; }
.mobile-menu.active .mobile-menu-links li { opacity:1; transform:translateY(0); }
.mobile-menu.active .mobile-menu-links li:nth-child(1) { transition-delay:.1s; }
.mobile-menu.active .mobile-menu-links li:nth-child(2) { transition-delay:.15s; }
.mobile-menu.active .mobile-menu-links li:nth-child(3) { transition-delay:.2s; }
.mobile-menu.active .mobile-menu-links li:nth-child(4) { transition-delay:.25s; }
.mobile-menu.active .mobile-menu-links li:nth-child(5) { transition-delay:.3s; }
.mobile-menu-links a { font-family:var(--font-d); font-size:42px; letter-spacing:.02em; text-transform:uppercase; color:var(--white); text-decoration:none; transition:color .2s; }
.mobile-menu-links a:hover { color:var(--green); }
.mobile-menu-cta { margin-top:40px; opacity:0; transform:translateY(20px); transition:opacity .4s ease, transform .4s ease; }
.mobile-menu.active .mobile-menu-cta { opacity:1; transform:translateY(0); transition-delay:.35s; }
.mobile-theme-toggle { margin-top:18px; }

.hero { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; justify-content:flex-end; padding:108px 56px 88px; position:relative; overflow:hidden; }
.hero::before { content:''; position:absolute; inset:0; z-index:0; background: radial-gradient(ellipse 55% 55% at 72% 38%, rgba(106,191,63,.09) 0%, transparent 65%), radial-gradient(ellipse 40% 40% at 20% 70%, rgba(106,191,63,.04) 0%, transparent 55%), linear-gradient(175deg, #060608 0%, #090c09 100%); }
:root[data-theme="light"] .hero::before { background: radial-gradient(ellipse 55% 55% at 72% 38%, rgba(63,132,37,.12) 0%, transparent 65%), radial-gradient(ellipse 40% 40% at 20% 70%, rgba(63,132,37,.08) 0%, transparent 55%), linear-gradient(175deg, #f7f8f4 0%, #ecefe8 100%); }
.hero-grid { position:absolute; inset:0; z-index:0; background-image: linear-gradient(rgba(106,191,63,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(106,191,63,.04) 1px, transparent 1px); background-size:72px 72px; transform:perspective(900px) rotateX(12deg) scale(1.15); transform-origin:center bottom; mask-image:linear-gradient(to top, rgba(0,0,0,.6) 0%, transparent 55%); }
.hero-scan { position:absolute; inset:0; z-index:0; pointer-events:none; background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.03) 2px, rgba(0,0,0,.03) 4px); animation:scanPan 8s linear infinite; }
@keyframes scanPan { from{background-position:0 0;} to{background-position:0 80px;} }
.hero-bg-num { position:absolute; right:40px; top:50%; transform:translateY(-55%); font-family:var(--font-d); font-size:clamp(200px, 28vw, 380px); color:rgba(106,191,63,.025); line-height:1; user-select:none; z-index:0; letter-spacing:-.02em; }
.hero-content { position:relative; z-index:2; width:min(100%, 760px); }
.hero-media {
  position:absolute;
  top:50%;
  right:56px;
  transform:translateY(-48%);
  width:min(39vw, 520px);
  aspect-ratio:4 / 5;
  z-index:1;
  border:1px solid var(--border2);
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0)),
    rgba(10,10,12,.78);
  box-shadow:0 30px 80px rgba(0,0,0,.4);
  overflow:hidden;
}
.hero-media::before {
  content:'';
  position:absolute;
  inset:14px;
  border:1px solid rgba(106,191,63,.16);
  pointer-events:none;
  z-index:2;
}
.hero-media::after {
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:45%;
  background:linear-gradient(180deg, rgba(6,6,8,0) 0%, rgba(6,6,8,.9) 100%);
  pointer-events:none;
  z-index:1;
}
.hero-media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.92;
  filter:saturate(.9) contrast(1.02);
}
.hero-media-label {
  position:absolute;
  left:28px;
  right:28px;
  bottom:24px;
  z-index:3;
  font-family:var(--font-c);
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(239,239,239,.8);
}
.hero-eyebrow { font-family:var(--font-c); font-size:11px; letter-spacing:.35em; text-transform:uppercase; color:var(--green); display:flex; align-items:center; gap:14px; margin-bottom:20px; opacity:0; animation:riseIn .7s .15s ease forwards; }
.hero-eyebrow::before { content:''; width:32px; height:1px; background:var(--green); }
.hero-title { font-family:var(--font-d); font-size:clamp(68px, 11.5vw, 156px); line-height:.9; letter-spacing:.015em; text-transform:uppercase; opacity:0; animation:riseIn .95s .3s ease forwards; }
.hero-title em { color:var(--green); font-style:normal; }
.hero-rule { width:72px; height:2px; background:var(--green); margin:28px 0; opacity:0; animation:riseIn .7s .5s ease forwards; }
.hero-sub { font-family:var(--font-b); font-size:16px; font-weight:300; line-height:1.8; color:rgba(239,239,239,.62); max-width:500px; opacity:0; animation:riseIn .9s .55s ease forwards; }
:root[data-theme="light"] .hero-sub,
:root[data-theme="light"] .intro-right p { color:var(--muted); }
.hero-actions { display:flex; gap:14px; align-items:center; margin-top:44px; opacity:0; animation:riseIn .9s .7s ease forwards; }
.btn-primary { font-family:var(--font-c); font-size:13px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; background:var(--green); color:var(--black); padding:17px 42px; border:none; cursor:pointer; transition:transform .2s, box-shadow .2s; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 44px rgba(106,191,63,.38); }
.btn-secondary { font-family:var(--font-c); font-size:13px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--green); border:1px solid rgba(106,191,63,.45); padding:16px 36px; background:none; cursor:pointer; text-decoration:none; transition:border-color .2s, background .2s, color .2s; }
.btn-secondary:hover { border-color:var(--green); background:rgba(106,191,63,.07); }
.btn-text { font-family:var(--font-c); font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); background:none; border:none; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:color .2s; }
.btn-text:hover { color:var(--white); }
.hero-scroll { position:absolute; right:56px; bottom:88px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; opacity:0; animation:fadeIn 1s 1.2s forwards; }
.hero-scroll span { font-family:var(--font-c); font-size:9px; letter-spacing:.35em; text-transform:uppercase; color:var(--muted); writing-mode:vertical-rl; }
.scroll-bar { width:1px; height:56px; background:linear-gradient(to bottom, var(--green), transparent); animation:scrollPulse 2s ease-in-out infinite; }
@keyframes scrollPulse { 0%,100%{opacity:.3;} 50%{opacity:1;} }
.hero-stats { display:flex; gap:1px; margin-top:56px; background:var(--border); opacity:0; animation:riseIn .9s .85s ease forwards; }
.hero-stat { background:rgba(6,6,8,.7); backdrop-filter:blur(8px); padding:18px 32px; flex:1; border-top:1px solid var(--border); }
.hero-stat-num { font-family:var(--font-d); font-size:34px; color:var(--green); line-height:1; }
.hero-stat-lbl { font-family:var(--font-c); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); margin-top:4px; }

.ticker { background:var(--green); padding:12px 0; overflow:hidden; white-space:nowrap; }
.ticker-inner { display:inline-flex; animation:tickScroll 28s linear infinite; }
.ticker-inner:hover { animation-play-state:paused; }
.t-item { font-family:var(--font-c); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--black); padding:0 36px; display:inline-flex; align-items:center; gap:12px; }
.t-dot { width:5px; height:5px; border-radius:50%; background:rgba(0,0,0,.25); }
@keyframes tickScroll { from{transform:translateX(0);} to{transform:translateX(-50%);} }

.lbl { font-family:var(--font-c); font-size:11px; letter-spacing:.32em; text-transform:uppercase; color:var(--green); display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.lbl::before { content:''; width:24px; height:1px; background:var(--green); flex-shrink:0; }
.sec-title { font-family:var(--font-d); font-size:clamp(40px, 5.5vw, 72px); line-height:.95; letter-spacing:.02em; }
.reveal { opacity:0; transform:translateY(38px); transition:opacity .85s ease, transform .85s ease; }
.reveal.in { opacity:1; transform:none; }
.d1{transition-delay:.08s;} .d2{transition-delay:.16s;} .d3{transition-delay:.24s;}
.d4{transition-delay:.32s;} .d5{transition-delay:.40s;} .d6{transition-delay:.48s;}

.intro { display:grid; grid-template-columns:1fr 1.1fr; gap:0; border-bottom:1px solid var(--border); }
.intro-left { padding:100px 56px; border-right:1px solid var(--border); background:var(--dark); }
.intro-right { padding:100px 56px; }
.intro-right p { font-family:var(--font-b); font-size:15px; font-weight:300; line-height:1.9; color:rgba(239,239,239,.68); }
.intro-right p+p { margin-top:18px; }
.core-value-pull { margin-top:44px; padding:24px 28px; border-left:2px solid var(--green); background:rgba(106,191,63,.04); }
.core-value-pull p { font-family:var(--font-c); font-size:18px; font-weight:300; font-style:italic; letter-spacing:.02em; line-height:1.55; color:var(--white); }
.core-value-pull cite { display:block; margin-top:12px; font-family:var(--font-c); font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--green); font-style:normal; }

.entails { padding:100px 56px; background:var(--dark); border-bottom:1px solid var(--border); }
.entails-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:72px; }
.entails-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border2); border:1px solid var(--border2); }
.entail-card { background:var(--dark); padding:44px 38px; position:relative; overflow:hidden; transition:background .35s; }
.entail-card::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 60% at 50% 100%, rgba(106,191,63,.06), transparent); opacity:0; transition:opacity .4s; }
.entail-card:hover { background:var(--card); }
.entail-card:hover::after { opacity:1; }
.entail-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--green),var(--green-mid)); transform:scaleX(0); transform-origin:left; transition:transform .45s ease; }
.entail-card:hover::before { transform:scaleX(1); }
.entail-num { font-family:var(--font-d); font-size:54px; color:rgba(106,191,63,.12); line-height:1; margin-bottom:20px; transition:color .35s; }
.entail-card:hover .entail-num { color:rgba(106,191,63,.25); }
.entail-icon { margin-bottom:18px; color:var(--green); }
.entail-icon svg { width:36px; height:36px; }
.entail-title { font-family:var(--font-c); font-size:19px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:14px; }
.entail-desc { font-family:var(--font-b); font-size:14px; font-weight:300; color:var(--muted); line-height:1.78; }
.entail-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:18px; }
.e-tag { font-family:var(--font-c); font-size:10px; letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border:1px solid var(--border2); color:var(--muted); }

.process { padding:100px 56px; border-bottom:1px solid var(--border); }
.process-timeline { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin-top:64px; position:relative; }
.process-timeline::before { content:''; position:absolute; top:28px; left:calc(10% + 14px); right:calc(10% + 14px); height:1px; background:linear-gradient(90deg, var(--green), rgba(106,191,63,.2)); }
.proc-step { padding:0 12px; text-align:center; }
.proc-dot { width:28px; height:28px; border-radius:50%; background:var(--black); border:1px solid var(--green); display:flex; align-items:center; justify-content:center; margin:0 auto 22px; position:relative; z-index:1; transition:background .3s; }
.proc-dot-inner { width:10px; height:10px; border-radius:50%; background:var(--green); }
.proc-step:hover .proc-dot { background:rgba(106,191,63,.12); }
.proc-num { font-family:var(--font-d); font-size:13px; color:var(--green); margin-bottom:10px; }
.proc-title { font-family:var(--font-c); font-size:14px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; margin-bottom:10px; }
.proc-desc { font-family:var(--font-b); font-size:12px; font-weight:300; color:var(--muted); line-height:1.7; }

.deliverables { padding:100px 56px; background:var(--dark); border-bottom:1px solid var(--border); }
.del-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border); margin-top:64px; }
.del-item { background:var(--dark); padding:32px 36px; display:flex; gap:18px; align-items:flex-start; transition:background .3s, padding-left .3s; }
.del-item:hover { background:var(--card); padding-left:44px; }
.del-check { flex-shrink:0; margin-top:3px; }
.del-check svg { width:20px; height:20px; color:var(--green); }
.del-title { font-family:var(--font-c); font-size:16px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:7px; }
.del-text { font-family:var(--font-b); font-size:13px; font-weight:300; color:var(--muted); line-height:1.7; }

.systems { padding:72px 56px; border-bottom:1px solid var(--border); overflow:hidden; }
.sys-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; }
.sys-brands { display:flex; gap:1px; background:var(--border); }
.sys-brand { flex:1; background:var(--black); padding:32px 24px; text-align:center; transition:background .3s; }
.sys-brand:hover { background:var(--card2); }
.sys-brand-name { font-family:var(--font-d); font-size:22px; letter-spacing:.04em; margin-bottom:6px; color:var(--white); transition:color .3s; }
.sys-brand:hover .sys-brand-name { color:var(--green); }
.sys-brand-cat { font-family:var(--font-c); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
.sys-header-note { font-family:var(--font-b); font-size:14px; font-weight:300; color:var(--muted); max-width:280px; line-height:1.7; text-align:right; }

.industries { padding:100px 56px; background:var(--darker); border-bottom:1px solid var(--border); }
.ind-wrap { display:grid; grid-template-columns:1fr 2fr; gap:80px; align-items:start; margin-top:64px; }
.ind-left p { font-family:var(--font-b); font-size:14px; font-weight:300; color:var(--muted); line-height:1.8; margin-top:20px; }
.ind-followup { margin-top:16px; }
.ind-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); }
.ind-card { background:var(--darker); padding:28px 24px; transition:background .3s; }
.ind-card:hover { background:var(--card); }
.ind-icon { font-family:var(--font-d); font-size:32px; color:rgba(106,191,63,.2); margin-bottom:8px; }
.ind-name { font-family:var(--font-c); font-size:15px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; margin-bottom:6px; }
.ind-note { font-family:var(--font-b); font-size:12px; font-weight:300; color:var(--muted); line-height:1.6; }

.faq { padding:100px 56px; border-bottom:1px solid var(--border); }
.faq-inner { display:grid; grid-template-columns:1fr 1.4fr; gap:80px; }
.faq-item { border-bottom:1px solid var(--border); }
.faq-q { font-family:var(--font-c); font-size:16px; font-weight:600; letter-spacing:.04em; padding:22px 0; display:flex; justify-content:space-between; align-items:center; cursor:pointer; transition:color .2s; gap:16px; }
.faq-q:hover { color:var(--green); }
.faq-arrow { font-size:18px; color:var(--green); transition:transform .35s; flex-shrink:0; }
.faq-item.open .faq-arrow { transform:rotate(45deg); }
.faq-a { font-family:var(--font-b); font-size:14px; font-weight:300; color:var(--muted); line-height:1.8; max-height:0; overflow:hidden; transition:max-height .45s ease, padding .35s ease; }
.faq-item.open .faq-a { max-height:200px; padding-bottom:22px; }

.main-cta { padding:140px 56px; text-align:center; position:relative; overflow:hidden; background:var(--dark); }
.main-cta-bg { position:absolute; inset:0; background:radial-gradient(ellipse 70% 90% at 50% 50%, rgba(106,191,63,.075) 0%, transparent 68%); }
.main-cta-grid { position:absolute; inset:0; background-image: linear-gradient(rgba(106,191,63,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(106,191,63,.03) 1px, transparent 1px); background-size:60px 60px; mask-image:radial-gradient(ellipse 80% 90% at 50% 50%, black 30%, transparent 100%); }
.main-cta-content { position:relative; z-index:1; }
.main-cta h2 { font-family:var(--font-d); font-size:clamp(56px, 9vw, 120px); line-height:.92; letter-spacing:.02em; text-transform:uppercase; }
.main-cta h2 em { color:var(--green); font-style:normal; }
.main-cta-sub { font-family:var(--font-b); font-size:16px; font-weight:300; color:var(--muted); margin:28px auto 0; max-width:480px; line-height:1.8; }
.cta-actions { display:flex; gap:14px; justify-content:center; margin-top:48px; flex-wrap:wrap; }

.other-svcs { padding:80px 56px; border-bottom:1px solid var(--border); }
.osvc-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--border); margin-top:48px; }
.osvc-card { background:var(--black); padding:30px 26px; text-decoration:none; color:var(--white); transition:background .3s; cursor:pointer; }
.osvc-card:hover { background:var(--card); }
.osvc-num { font-family:var(--font-d); font-size:30px; color:rgba(106,191,63,.2); margin-bottom:10px; }
.osvc-name { font-family:var(--font-c); font-size:14px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; margin-bottom:8px; }
.osvc-arrow { font-family:var(--font-c); font-size:12px; letter-spacing:.15em; color:var(--green); transition:transform .2s; display:inline-block; }
.osvc-card:hover .osvc-arrow { transform:translateX(5px); }

footer { padding:64px 56px 40px; border-top:1px solid var(--border); display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:48px; }
.ft-brand { font-family:var(--font-d); font-size:28px; margin-bottom:12px; }
.ft-brand em { color:var(--green); font-style:normal; }
.ft-tag { font-family:var(--font-b); font-size:13px; font-weight:300; color:var(--muted); line-height:1.8; }
.ft-col h5 { font-family:var(--font-c); font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--green); margin-bottom:20px; }
.ft-col ul { list-style:none; display:flex; flex-direction:column; gap:11px; }
.ft-col ul a { font-family:var(--font-b); font-size:14px; font-weight:300; color:var(--muted); text-decoration:none; transition:color .2s; cursor:pointer; }
.ft-col ul a:hover { color:var(--white); }
.ft-bottom { grid-column:1/-1; padding-top:36px; border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; }
.ft-bottom p { font-family:var(--font-c); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(120,120,120,.45); }
.ft-socials { display:flex; gap:22px; }
.ft-socials a { font-family:var(--font-c); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .2s; cursor:pointer; }
.ft-socials a:hover { color:var(--green); }

.modal-bg { display:none; position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,.85); backdrop-filter:blur(10px); align-items:center; justify-content:center; padding:20px; }
.modal-bg.open { display:flex; }
.modal-box { width:100%; max-width:520px; max-height:88vh; max-height:calc(100dvh - 40px); background:var(--card); border:1px solid var(--border2); display:flex; flex-direction:column; animation:modalPop .4s cubic-bezier(.16,1,.3,1); }
@keyframes modalPop { from{opacity:0;transform:scale(.93) translateY(24px);} to{opacity:1;transform:none;} }
.modal-hd { padding:20px 22px 18px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:14px; flex-shrink:0; }
.modal-avatar { width:38px; height:38px; background:var(--green); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.modal-avatar svg { width:20px; height:20px; color:var(--black); }
.modal-id { flex:1; }
.modal-id h3 { font-family:var(--font-c); font-size:16px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:3px; }
.modal-online { font-family:var(--font-b); font-size:12px; color:var(--green); display:flex; align-items:center; gap:6px; }
.online-dot { width:7px; height:7px; border-radius:50%; background:var(--green); animation:blink 2s infinite; }
@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:.25;} }
.modal-svc-tag { font-family:var(--font-c); font-size:10px; letter-spacing:.18em; text-transform:uppercase; padding:4px 10px; background:rgba(106,191,63,.1); border:1px solid rgba(106,191,63,.2); color:var(--green); }
.modal-x { background:none; border:none; font-size:20px; color:var(--muted); cursor:pointer; transition:color .2s; padding:6px; line-height:1; display:flex; align-items:center; justify-content:center; }
.modal-x:hover { color:var(--white); }
.modal-prog { height:2px; background:var(--border); flex-shrink:0; }
.modal-prog-fill { width:0%; height:100%; background:var(--green); transition:width .5s ease; }
.modal-main { display:flex; flex-direction:column; flex:1; min-height:0; }
.modal-chat { flex:1; overflow-y:auto; padding:20px 20px 8px; display:flex; flex-direction:column; gap:14px; min-height:0; scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:var(--border2) transparent; }
.modal-chat::-webkit-scrollbar { width:4px; }
.modal-chat::-webkit-scrollbar-thumb { background:var(--border2); }
.msg { display:flex; gap:10px; align-items:flex-end; animation:msgFade .3s ease; }
@keyframes msgFade { from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:none;} }
.msg.user { flex-direction:row-reverse; }
.m-av { width:28px; height:28px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-c); font-size:10px; font-weight:800; }
.msg.ai .m-av { background:var(--green); color:var(--black); }
.msg.user .m-av { background:var(--card2); border:1px solid var(--border2); color:var(--muted); font-size:9px; }
.m-bub { max-width:78%; padding:11px 15px; font-family:var(--font-b); font-size:14px; font-weight:300; line-height:1.6; }
.msg.ai .m-bub { background:var(--card2); border:1px solid var(--border); border-radius:2px 10px 10px 10px; }
.msg.user .m-bub { background:rgba(106,191,63,.1); border:1px solid rgba(106,191,63,.2); border-radius:10px 2px 10px 10px; text-align:right; }
.typing-row { display:flex; gap:10px; align-items:flex-end; animation:msgFade .3s ease; }
.typing-row .m-av { background:var(--green); color:var(--black); }
.typing-bub { background:var(--card2); border:1px solid var(--border); border-radius:2px 10px 10px 10px; padding:13px 16px; display:flex; gap:5px; align-items:center; }
.ty { width:6px; height:6px; border-radius:50%; background:var(--muted2); animation:tyBounce 1.2s infinite; }
.ty:nth-child(2){animation-delay:.2s;} .ty:nth-child(3){animation-delay:.4s;}
@keyframes tyBounce { 0%,60%,100%{transform:translateY(0);opacity:.3;} 30%{transform:translateY(-6px);opacity:1;} }
.modal-qr { padding:8px 20px 4px; display:flex; flex-wrap:wrap; gap:7px; flex-shrink:0; max-height:110px; overflow-y:auto; }
.modal-qr::-webkit-scrollbar { width:4px; }
.modal-qr::-webkit-scrollbar-thumb { background:var(--border2); }
.qr-btn { font-family:var(--font-c); font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:7px 14px; border:1px solid rgba(106,191,63,.25); background:rgba(106,191,63,.05); color:var(--green); cursor:pointer; transition:background .2s, border-color .2s; animation:msgFade .3s ease; }
.qr-btn:hover { background:rgba(106,191,63,.15); border-color:var(--green); }
.modal-inp-row { padding:14px 20px 18px; border-top:1px solid var(--border); display:flex; gap:9px; align-items:flex-end; flex-shrink:0; }
.modal-inp { flex:1; background:var(--dark); border:1px solid var(--border2); color:var(--white); font-family:var(--font-b); font-size:14px; font-weight:300; padding:12px 15px; outline:none; resize:none; min-height:46px; max-height:120px; line-height:1.5; transition:border-color .2s; }
.modal-inp:focus { border-color:var(--green); }
.modal-inp::placeholder { color:var(--muted2); }
.modal-send { width:46px; height:46px; background:var(--green); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:opacity .2s, transform .2s; flex-shrink:0; }
.modal-send:hover { opacity:.85; transform:scale(1.05); }
.modal-send svg { width:17px; height:17px; color:var(--black); }
.modal-send:disabled { opacity:.35; transform:none; }
.modal-success { display:none; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:52px 32px; text-align:center; flex:1; }
.modal-success.show { display:flex; }
.succ-icon { width:68px; height:68px; border-radius:50%; border:1px solid var(--green); background:rgba(106,191,63,.08); display:flex; align-items:center; justify-content:center; color:var(--green); }
.succ-icon svg { width:30px; height:30px; }
.modal-success h3 { font-family:var(--font-d); font-size:38px; letter-spacing:.04em; text-transform:uppercase; }
.modal-success h3 em { color:var(--green); font-style:normal; }
.modal-success p { font-family:var(--font-b); font-size:14px; font-weight:300; color:var(--muted); line-height:1.75; max-width:300px; }
.modal-success-note { font-size:12px; color:var(--muted2); margin-top:4px; }
.modal-close-btn { margin-top:8px; font-family:var(--font-c); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--green); border:1px solid rgba(106,191,63,.4); padding:13px 32px; background:none; cursor:pointer; transition:background .2s, color .2s; }
.modal-close-btn:hover { background:var(--green); color:var(--black); }
@keyframes shake { 0%,100%{transform:translateX(0);} 20%,60%{transform:translateX(-5px);} 40%,80%{transform:translateX(5px);} }
.shake { animation:shake .4s ease; }
@keyframes riseIn { from{opacity:0;transform:translateY(28px);} to{opacity:1;transform:none;} }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }

:where(a,button,input,textarea):focus-visible { outline:2px solid var(--green); outline-offset:3px; }
.modal-inp:focus-visible { border-color:var(--green); outline-offset:2px; }

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none !important;transition:none !important;}
  .reveal,
  .reveal.in,
  .hero-eyebrow,
  .hero-title,
  .hero-rule,
  .hero-sub,
  .hero-actions,
  .hero-scroll,
  .hero-stats{opacity:1 !important;transform:none !important;}
  .ticker-inner{transform:none !important;}
}
