/* ============================================
   Ciaran Aherne — Aurora / Glass design system
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@1,9..144,300;1,9..144,400&family=Geist:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* ---- Tokens ---- */
:root {
  --bg:        #06090f;
  --bg-card:   rgba(255,255,255,0.055);
  --bg-card-h: rgba(255,255,255,0.09);
  --border:    rgba(255,255,255,0.1);
  --border-h:  rgba(255,255,255,0.22);
  --ink:       #ffffff;
  --muted:     rgba(255,255,255,0.62);
  --subtle:    rgba(255,255,255,0.3);
  --grad: linear-gradient(135deg, #60aaff 0%, #a066ff 55%, #00e5ff 100%);
  --grad-btn: linear-gradient(135deg, #0066ff 0%, #7700ee 100%);
  --blob-1: #0050cc;
  --blob-2: #6600dd;
  --blob-3: #00b8d9;
  --radius: 1.25rem;
  --glass: blur(20px) saturate(1.4);
}

/* ---- Reset ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
body {
  font-family: 'Geist', system-ui, sans-serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.6;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
::selection { background: rgba(180,138,255,.35); }

/* ---- Aurora background ---- */
.aurora {
  position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden;
}
.aurora-blob {
  position: absolute; border-radius: 9999px; filter: blur(120px); opacity: 0.5;
  animation: blob-drift 18s ease-in-out infinite alternate;
}
.aurora-blob-1 { width:700px;height:500px;top:-150px;left:-120px;background:var(--blob-1);animation-delay:0s; }
.aurora-blob-2 { width:600px;height:500px;top:0;right:-100px;background:var(--blob-2);animation-delay:-6s; }
.aurora-blob-3 { width:500px;height:400px;bottom:10%;left:30%;background:var(--blob-3);animation-delay:-12s; }
@keyframes blob-drift {
  0%   { transform: translate(0,0) scale(1); }
  33%  { transform: translate(40px,-30px) scale(1.08); }
  66%  { transform: translate(-30px,40px) scale(0.95); }
  100% { transform: translate(20px,10px) scale(1.04); }
}

.page { position: relative; z-index: 1; }

/* ---- Typography ---- */
h1,h2,h3,h4 {
  font-family: 'Geist', system-ui, sans-serif;
  font-weight: 700; letter-spacing: -0.04em; line-height: 0.93; color: var(--ink);
}
h1 { font-size: clamp(2.75rem, 6.5vw, 5rem); }
h2 { font-size: clamp(2rem, 4.5vw, 3.5rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
p  { line-height: 1.7; }

.grad-text {
  background: var(--grad); -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; background-clip: text;
}
.italic-serif {
  font-family: 'Fraunces', Georgia, serif; font-style: italic; font-weight: 300;
}

/* ---- Layout ---- */
.container { width:100%;max-width:1320px;margin:0 auto;padding:0 1.5rem; }
@media(min-width:768px) { .container { padding: 0 2.5rem; } }
section { padding-top: 6rem; }
@media(min-width:768px) { section { padding-top: 8rem; } }

/* ---- Components ---- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .625rem;
  font-size: .6875rem; font-weight: 500; text-transform: uppercase;
  letter-spacing: .2em; color: var(--muted);
}
.eyebrow-dot {
  width:.4375rem;height:.4375rem;border-radius:9999px;
  background:var(--blob-3);flex-shrink:0;box-shadow:0 0 8px var(--blob-3);
}
.mono {
  font-family: 'JetBrains Mono', monospace; font-size: .625rem;
  text-transform: uppercase; letter-spacing: .18em; color: var(--muted);
}
.glass {
  background: var(--bg-card); backdrop-filter: var(--glass);
  -webkit-backdrop-filter: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: background .3s, border-color .3s, transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s cubic-bezier(.2,.8,.2,1);
}
.glass:hover {
  background: var(--bg-card-h); border-color: var(--border-h);
  transform: translateY(-5px); box-shadow: 0 20px 60px -20px rgba(124,77,255,.25);
}
.tag {
  display:inline-flex;align-items:center;border:1px solid var(--border);
  border-radius:9999px;padding:.3125rem .875rem;font-size:.6875rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.12em;color:var(--muted);
  background:rgba(255,255,255,.04);backdrop-filter:blur(8px);
}
.grad-bar { height:2px;border-radius:9999px;background:rgba(255,255,255,.08);margin-top:.875rem; }
.grad-bar-fill { height:100%;border-radius:9999px;background:var(--grad-btn); }

/* ---- Pill buttons ---- */
.pill {
  display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;
  padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;cursor:pointer;
  transition:opacity .2s,transform .2s,box-shadow .2s;border:none;
  text-decoration:none;font-family:'Geist',system-ui,sans-serif;
}
.pill:hover { opacity:.9; transform:translateY(-1px); }
.pill-grad { background:var(--grad-btn);color:#fff;box-shadow:0 8px 32px -8px rgba(124,77,255,.5); }
.pill-grad:hover { box-shadow:0 12px 40px -8px rgba(124,77,255,.7); }
.pill-glass {
  background:rgba(255,255,255,.08);backdrop-filter:blur(8px);
  color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.15);
}
.pill-glass:hover { background:rgba(255,255,255,.12);color:#fff; }
.pill svg { width:1rem;height:1rem;transition:transform .3s; }
.pill:hover svg { transform:translateX(3px); }

/* ---- Header ---- */
.site-header {
  position:sticky;top:0;z-index:100;
  transition:background .3s,border-color .3s;
  border-bottom:1px solid transparent;
}
.site-header.scrolled {
  background:rgba(10,10,24,.85);backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);border-bottom-color:var(--border);
}
.header-inner { display:flex;align-items:center;justify-content:space-between;height:5rem; }
.site-logo { font-size:1rem;font-weight:600;color:var(--ink);letter-spacing:-.03em;text-decoration:none; }
.site-logo span { font-weight:300;opacity:.5; }

.desktop-nav { display:none;align-items:center;gap:2.25rem; }
@media(min-width:900px) { .desktop-nav { display:flex; } }
.nav-link { font-size:.875rem;font-weight:400;color:var(--muted);transition:color .2s;text-decoration:none; }
.nav-link:hover,.nav-link.active { color:var(--ink); }

.nav-dropdown { position:relative; }
.nav-dropdown-toggle {
  display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;
  cursor:pointer;font-family:'Geist',system-ui,sans-serif;font-size:.875rem;
  font-weight:400;color:var(--muted);transition:color .2s;padding:0;
}
.nav-dropdown-toggle:hover,.nav-dropdown.open .nav-dropdown-toggle { color:var(--ink); }
.nav-dropdown-toggle svg { width:.875rem;height:.875rem;transition:transform .2s; }
.nav-dropdown.open .nav-dropdown-toggle svg { transform:rotate(180deg); }
.dropdown-panel { display:none;position:absolute;left:50%;top:100%;transform:translateX(-50%);padding-top:.75rem; }
.nav-dropdown.open .dropdown-panel { display:block; }
.dropdown-inner {
  min-width:240px;background:rgba(10,10,24,.97);backdrop-filter:blur(20px);
  border:1px solid var(--border);border-radius:1rem;padding:.5rem;
  box-shadow:0 20px 60px -12px rgba(0,0,0,.7);
}
.dropdown-inner a { display:block;border-radius:.75rem;padding:.625rem 1rem;font-size:.875rem;color:var(--muted);transition:background .15s,color .15s; }
.dropdown-inner a:hover { background:rgba(255,255,255,.06);color:var(--ink); }
.dropdown-inner .dd-all { font-weight:500;color:var(--ink); }
.dropdown-divider { height:1px;background:var(--border);margin:.25rem 0; }

.header-actions { display:none;align-items:center;gap:.625rem; }
@media(min-width:900px) { .header-actions { display:flex; } }
.icon-btn {
  display:inline-flex;align-items:center;justify-content:center;
  width:2.5rem;height:2.5rem;border-radius:9999px;border:1px solid var(--border);
  background:rgba(255,255,255,.04);cursor:pointer;color:var(--muted);transition:color .2s,background .2s;
}
.icon-btn:hover { color:var(--ink);background:rgba(255,255,255,.1); }
.icon-btn svg { width:1rem;height:1rem; }

.mobile-btns { display:flex;align-items:center;gap:.5rem; }
@media(min-width:900px) { .mobile-btns { display:none; } }
.mobile-menu { display:none;border-top:1px solid var(--border);background:rgba(10,10,24,.98);backdrop-filter:blur(20px); }
.mobile-menu.open { display:block; }
.mobile-nav-inner { padding:1.5rem 1.5rem 2rem;display:flex;flex-direction:column;gap:.25rem; }
.mobile-nav-inner a { display:block;padding:.75rem 0;font-size:1.5rem;font-weight:600;letter-spacing:-.03em;color:var(--muted);transition:color .2s; }
.mobile-nav-inner a:hover,.mobile-nav-inner a.active { color:var(--ink); }
.mobile-services-btn { display:flex;align-items:center;justify-content:space-between; }
.mobile-services-btn button { background:none;border:none;cursor:pointer;color:var(--muted);padding:.5rem; }
.mobile-services-btn button svg { width:1.25rem;height:1.25rem;transition:transform .2s; }
.mobile-services-btn button.open svg { transform:rotate(180deg); }
.mobile-sub-nav { display:none;padding-left:1rem; }
.mobile-sub-nav.open { display:block; }
.mobile-sub-nav a { font-size:1rem!important;font-weight:400!important; }
.mobile-cta { margin-top:1rem; }

/* ---- Hero subheading ---- */
.hero-sub {
  font-size:clamp(1.25rem,2.5vw,1.875rem);font-weight:600;
  letter-spacing:-.03em;color:rgba(255,255,255,.82);margin-top:.625rem;line-height:1.2;
}

/* ---- Hero ---- */
.hero { padding-top:5rem;padding-bottom:6rem; }
@media(min-width:768px) { .hero { padding-top:6rem;padding-bottom:8rem; } }
.hero-grid { display:grid;gap:4rem;align-items:center; }
@media(min-width:900px) { .hero-grid { grid-template-columns:3fr 2fr; } }
.hero-buttons { display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem; }

.stat-cards { display:flex;flex-direction:column;gap:.75rem; }
.stat-card { padding:1.25rem 1.5rem; }
.stat-card .mono { display:block;margin-bottom:.375rem; }
.stat-card .stat-num {
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;font-size:2.25rem;font-weight:700;line-height:1;letter-spacing:-.04em;
}
.stat-card .stat-desc { font-size:.875rem;color:var(--muted);margin-top:.25rem; }

/* ---- Marquee ---- */
.marquee-section {
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.02);overflow:hidden;padding:1.25rem 0;
}
.marquee-track { display:flex;gap:3rem;white-space:nowrap;animation:marquee 40s linear infinite; }
.marquee-item { display:inline-flex;align-items:center;gap:3rem;font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:500;letter-spacing:-.02em;flex-shrink:0; }
.marquee-item .dot { width:.3125rem;height:.3125rem;border-radius:9999px;background:var(--subtle); }
.marquee-grad { background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ---- Services bento ---- */
.bento-grid {
  display:grid;gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:1.5rem;overflow:hidden;
}
@media(min-width:640px) { .bento-grid { grid-template-columns:1fr 1fr; } }
@media(min-width:900px) { .bento-grid { grid-template-columns:2fr 1fr 1fr; } }
.bento-card {
  background:var(--bg-card);backdrop-filter:var(--glass);padding:2rem 2.5rem;
  min-height:240px;display:flex;flex-direction:column;text-decoration:none;
  color:var(--ink);position:relative;transition:background .3s;
}
.bento-card:hover { background:var(--bg-card-h); }
@media(min-width:900px) { .bento-card.bento-wide { grid-column:span 2;min-height:280px; } }
.bento-icon {
  display:inline-flex;align-items:center;justify-content:center;
  width:2.75rem;height:2.75rem;border-radius:.875rem;background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.7);margin-bottom:1.5rem;
}
.bento-icon svg { width:1.25rem;height:1.25rem; }
.bento-num { font-family:'JetBrains Mono',monospace;font-size:.625rem;color:var(--muted); }
.bento-header { display:flex;align-items:flex-start;justify-content:space-between; }
.bento-title { font-size:clamp(1.625rem,3vw,2.5rem);font-weight:700;letter-spacing:-.04em;line-height:1;margin-top:1rem; }
.bento-wide .bento-title { font-size:clamp(2rem,4vw,3.25rem); }
.bento-blurb { font-size:.9375rem;color:var(--muted);line-height:1.65;margin-top:.75rem;flex:1; }
.bento-tags { display:flex;flex-wrap:wrap;gap:.375rem;margin-top:1.25rem; }
.bento-arrow { position:absolute;bottom:1.5rem;right:1.5rem;width:1.125rem;height:1.125rem;color:var(--subtle);transition:transform .3s,color .3s; }
.bento-card:hover .bento-arrow { transform:translate(3px,-3px);color:var(--muted); }

/* ---- Win cards ---- */
.wins-grid { display:grid;gap:1.25rem; }
@media(min-width:640px) { .wins-grid { grid-template-columns:1fr 1fr; } }
.win-card {
  border-radius:1.5rem;overflow:hidden;display:block;text-decoration:none;color:var(--ink);
  border:1px solid var(--border);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .3s;
}
.win-card:hover { transform:translateY(-6px);box-shadow:0 20px 60px -20px rgba(124,77,255,.3);border-color:rgba(180,138,255,.3); }
.win-top { padding:2.5rem 2rem 3rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem; }
.win-metric {
  font-size:clamp(3.5rem,7vw,5rem);font-weight:700;letter-spacing:-.05em;line-height:1;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.win-label { font-size:.75rem;color:var(--muted);text-align:right;max-width:120px;line-height:1.5; }
.win-bottom {
  background:rgba(255,255,255,.04);backdrop-filter:blur(8px);
  padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  border-top:1px solid var(--border);
}
.win-tag { font-family:'JetBrains Mono',monospace;font-size:.625rem;text-transform:uppercase;letter-spacing:.15em;color:rgba(180,138,255,.8); }
.win-note { font-size:1.125rem;font-weight:600;letter-spacing:-.02em;margin-top:.375rem; }
.win-arrow { width:1.125rem;height:1.125rem;color:var(--muted);flex-shrink:0;transition:transform .3s; }
.win-card:hover .win-arrow { transform:translate(3px,-3px); }
.win-grad-1 { background:linear-gradient(135deg,rgba(124,77,255,.2),rgba(10,10,24,.9)); }
.win-grad-2 { background:linear-gradient(135deg,rgba(208,40,138,.2),rgba(10,10,24,.9)); }
.win-grad-3 { background:linear-gradient(135deg,rgba(29,180,200,.2),rgba(10,10,24,.9)); }
.win-grad-4 { background:linear-gradient(135deg,rgba(124,77,255,.15),rgba(208,40,138,.15)); }

/* ---- Principles ---- */
.principles-grid { display:grid;gap:3rem; }
@media(min-width:768px) { .principles-grid { grid-template-columns:5fr 7fr;align-items:start; } }
.principle-item { display:flex;align-items:flex-start;gap:1.25rem;padding:1.5rem;border-radius:1rem;transition:background .2s; }
.principle-item:hover { background:rgba(255,255,255,.03); }
.principle-num {
  font-family:'JetBrains Mono',monospace;font-size:.625rem;text-transform:uppercase;letter-spacing:.18em;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  flex-shrink:0;padding-top:.3rem;width:2rem;
}

/* ---- Process ---- */
.process-grid {
  display:grid;gap:1px;background:var(--border);border:1px solid var(--border);
  border-radius:1.5rem;overflow:hidden;margin-top:4rem;
}
@media(min-width:768px) { .process-grid { grid-template-columns:repeat(4,1fr); } }
.process-step { background:var(--bg-card);backdrop-filter:var(--glass);padding:2rem 2.5rem; }
.process-step-num {
  font-size:3rem;font-weight:700;letter-spacing:-.05em;line-height:1;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.process-step h3 { font-size:1.125rem;margin-top:1.5rem; }
.process-step p { margin-top:.75rem;font-size:.9375rem;color:var(--muted);line-height:1.7; }

/* ---- Testimonial ---- */
.testimonial { text-align:center;max-width:52rem;margin:0 auto; }
.testimonial blockquote { font-size:clamp(1.375rem,3.5vw,2.5rem);font-weight:600;letter-spacing:-.03em;line-height:1.15; }
.testimonial figcaption { margin-top:2rem;font-size:.6875rem;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.18em;color:var(--muted); }

/* ---- CTA ---- */
.cta-section {
  margin:6rem 0;position:relative;border-radius:1.75rem;overflow:hidden;
  border:1px solid var(--border);background:rgba(255,255,255,.03);
  backdrop-filter:blur(12px);padding:5rem 2rem;text-align:center;
}
@media(min-width:768px) { .cta-section { padding:6rem 3rem; } }
.cta-blob { position:absolute;border-radius:9999px;filter:blur(80px);pointer-events:none; }
.cta-blob-1 { width:400px;height:300px;top:-80px;left:-60px;background:var(--blob-1);opacity:.35; }
.cta-blob-2 { width:350px;height:280px;bottom:-60px;right:-40px;background:var(--blob-2);opacity:.3; }
.cta-section h2,.cta-section p,.cta-section .pill { position:relative;z-index:1; }
.cta-section p { color:var(--muted);max-width:36rem;margin:1.25rem auto 2.5rem;font-size:1.0625rem; }

/* ---- Footer ---- */
.site-footer { border-top:1px solid var(--border);background:rgba(255,255,255,.015); }
.footer-main { display:grid;gap:3rem;padding:5rem 0 3rem; }
@media(min-width:768px) { .footer-main { grid-template-columns:4fr 2fr 3fr 3fr; } }
.footer-brand .site-logo { display:block;margin-bottom:1.25rem; }
.footer-brand p { font-size:.9375rem;color:var(--muted);line-height:1.7;max-width:22rem; }
.footer-col h4 {
  font-family:'JetBrains Mono',monospace;font-size:.625rem;text-transform:uppercase;letter-spacing:.18em;
  background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:1.25rem;
}
.footer-col ul { display:flex;flex-direction:column;gap:.75rem; }
.footer-col li a { font-size:.9375rem;color:var(--muted);transition:color .2s; }
.footer-col li a:hover { color:var(--ink); }
.footer-col .footer-muted { font-size:.9375rem;color:var(--subtle); }
.footer-bottom {
  border-top:1px solid var(--border);padding:1.5rem 0;
  display:flex;flex-direction:column;gap:.75rem;align-items:center;text-align:center;
}
@media(min-width:768px) { .footer-bottom { flex-direction:row;justify-content:space-between;text-align:left; } }
.footer-bottom p,.footer-bottom span,.footer-bottom a { font-family:'JetBrains Mono',monospace;font-size:.625rem;text-transform:uppercase;letter-spacing:.18em;color:var(--subtle); }
.footer-bottom a:hover { color:var(--muted); }
.footer-bottom-links { display:flex;align-items:center;gap:1.5rem; }

/* ---- About page ---- */
.about-hero-grid { display:grid;gap:3rem;align-items:flex-end; }
@media(min-width:900px) { .about-hero-grid { grid-template-columns:7fr 5fr; } }
.portrait { border-radius:1.5rem;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--border);width:100%;filter:brightness(.9) contrast(1.05); }
.dark-block { border:1px solid var(--border);border-radius:1.75rem;padding:2.5rem;position:relative;overflow:hidden;background:rgba(255,255,255,.03);backdrop-filter:blur(12px); }
@media(min-width:768px) { .dark-block { padding:4rem; } }
.dark-block-blob { position:absolute;top:-4rem;right:-4rem;width:16rem;height:16rem;border-radius:9999px;background:var(--blob-1);filter:blur(60px);opacity:.4;pointer-events:none; }
.stats-grid { display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-radius:1rem;overflow:hidden; }
.stat-item { background:rgba(255,255,255,.04);backdrop-filter:blur(8px);padding:2rem; }
.stat-num { font-size:3.5rem;font-weight:700;letter-spacing:-.05em;line-height:1;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.stat-label { font-family:'JetBrains Mono',monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-top:1rem; }
.about-grid { display:grid;gap:3rem; }
@media(min-width:768px) { .about-grid { grid-template-columns:4fr 8fr;align-items:start; } }
.principles-cards { display:grid;gap:1rem; }
@media(min-width:640px) { .principles-cards { grid-template-columns:1fr 1fr; } }
.principle-card { padding:1.75rem;border-radius:1.25rem; }
.principle-card h3 { font-size:1.25rem;margin-bottom:.75rem; }
.principle-card p { font-size:.9375rem;color:var(--muted);line-height:1.7; }

/* ---- Contact page ---- */
.contact-grid { display:grid;gap:3.5rem; }
@media(min-width:900px) { .contact-grid { grid-template-columns:5fr 7fr;gap:4rem; } }
.contact-info { display:flex;flex-direction:column;gap:1.25rem;margin-top:2.5rem; }
.contact-info-item { display:flex;align-items:flex-start;gap:1rem; }
.contact-icon { display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:1rem;flex-shrink:0;margin-top:.125rem;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--muted); }
.contact-icon.accent { background:rgba(180,138,255,.12);border-color:rgba(180,138,255,.25);color:#b48aff; }
.contact-icon svg { width:1rem;height:1rem; }
.contact-info-text .mono { display:block;margin-bottom:.25rem; }
.contact-info-text .contact-val { font-size:1.125rem;font-weight:500; }
.contact-info-text a.contact-val:hover { color:#b48aff; }
.contact-form { padding:2rem 2.5rem; }
.form-row { display:grid;gap:1.25rem; }
@media(min-width:640px) { .form-row { grid-template-columns:1fr 1fr; } }
.form-group { display:flex;flex-direction:column;gap:.5rem; }
.form-group label { font-family:'JetBrains Mono',monospace;font-size:.625rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted); }
.form-group input,.form-group textarea { width:100%;border:1px solid var(--border);border-radius:.875rem;padding:.75rem 1rem;background:rgba(255,255,255,.04);color:var(--ink);font-family:'Geist',system-ui,sans-serif;font-size:.9375rem;outline:none;transition:border-color .2s,background .2s; }
.form-group input::placeholder,.form-group textarea::placeholder { color:var(--subtle); }
.form-group input:focus,.form-group textarea:focus { border-color:rgba(180,138,255,.5);background:rgba(255,255,255,.07);box-shadow:0 0 0 3px rgba(180,138,255,.12); }
.form-group textarea { resize:vertical; }
.service-chips { display:flex;flex-wrap:wrap;gap:.5rem; }
.service-chip input { display:none; }
.service-chip label { display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:9999px;padding:.5rem 1rem;font-size:.875rem;cursor:pointer;color:var(--muted);transition:all .2s; }
.service-chip input:checked + label { border-color:rgba(180,138,255,.6);background:rgba(180,138,255,.12);color:var(--ink); }
.service-chip label:hover { border-color:var(--border-h);color:var(--ink); }
.form-note { font-size:.8125rem;color:var(--muted);margin-top:.5rem; }
.form-note a { color:#b48aff; }
.form-success { display:none;border:1px solid rgba(93,214,255,.3);border-radius:1rem;padding:2rem;text-align:center;background:rgba(93,214,255,.06);color:#5dd6ff; }

/* ---- FAQ ---- */
.faq-grid { display:grid;gap:3rem; }
@media(min-width:768px) { .faq-grid { grid-template-columns:4fr 8fr;align-items:start; } }
.faq-list { display:flex;flex-direction:column;gap:.75rem; }
details.faq-item { border:1px solid var(--border);border-radius:1rem;padding:1.5rem;background:rgba(255,255,255,.03);backdrop-filter:blur(8px);transition:background .2s,border-color .2s; }
details.faq-item[open] { background:rgba(255,255,255,.06);border-color:rgba(180,138,255,.25); }
details.faq-item summary { display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none; }
details.faq-item summary::-webkit-details-marker { display:none; }
details.faq-item summary span:first-child { font-size:1rem;font-weight:500;letter-spacing:-.02em; }
.faq-plus { font-size:1.75rem;line-height:1;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:transform .2s;flex-shrink:0; }
details.faq-item[open] .faq-plus { transform:rotate(45deg); }
details.faq-item p { margin-top:1rem;color:var(--muted);line-height:1.7;font-size:.9375rem; }

/* ---- Services page ---- */
.services-list { display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:1.5rem;overflow:hidden; }
.service-row { display:flex;align-items:center;gap:1.5rem;background:rgba(255,255,255,.03);backdrop-filter:blur(8px);padding:2rem 2.5rem;text-decoration:none;color:var(--ink);transition:background .2s; }
.service-row:hover { background:rgba(255,255,255,.07); }
.service-row-num { font-family:'JetBrains Mono',monospace;font-size:.625rem;color:var(--muted);flex-shrink:0;width:2rem; }
.service-row-body { flex:1; }
.service-row-title { font-size:1.5rem;font-weight:700;letter-spacing:-.03em;line-height:1; }
.service-row-desc { font-size:.9375rem;color:var(--muted);margin-top:.375rem; }
.service-row-tags { display:flex;gap:.375rem;margin-top:.75rem;flex-wrap:wrap; }
.service-row-arrow { width:1.25rem;height:1.25rem;color:var(--subtle);flex-shrink:0;transition:transform .3s,color .3s; }
.service-row:hover .service-row-arrow { transform:translate(3px,-3px);color:var(--muted); }

/* ---- Results page ---- */
.results-wins { display:grid;gap:1.25rem; }
@media(min-width:640px) { .results-wins { grid-template-columns:1fr 1fr; } }

/* ---- Training page ---- */
.training-features { display:grid;gap:1rem; }
@media(min-width:640px) { .training-features { grid-template-columns:1fr 1fr; } }
@media(min-width:900px) { .training-features { grid-template-columns:repeat(3,1fr); } }
.feature-card { padding:1.75rem;border-radius:1.25rem; }
.feature-card .fc-icon { width:2.75rem;height:2.75rem;border-radius:.875rem;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:#b48aff; }
.feature-card .fc-icon svg { width:1.25rem;height:1.25rem; }
.feature-card h3 { font-size:1.125rem;margin-bottom:.5rem; }
.feature-card p { font-size:.9375rem;color:var(--muted);line-height:1.7; }

/* ---- Blog ---- */
.blog-grid { display:grid;gap:1.5rem; }
@media(min-width:640px) { .blog-grid { grid-template-columns:1fr 1fr; } }
@media(min-width:900px) { .blog-grid { grid-template-columns:repeat(3,1fr); } }
.blog-card { display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-radius:1.25rem;overflow:hidden;border:1px solid var(--border);background:rgba(255,255,255,.03);backdrop-filter:blur(8px);transition:background .2s,border-color .2s,transform .4s cubic-bezier(.2,.8,.2,1); }
.blog-card:hover { background:rgba(255,255,255,.06);border-color:rgba(180,138,255,.25);transform:translateY(-4px); }
.blog-card-body { padding:1.5rem;flex:1; }
.blog-card-tag { font-family:'JetBrains Mono',monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;color:#b48aff; }
.blog-card-title { font-size:1.125rem;font-weight:600;letter-spacing:-.03em;margin-top:.625rem;line-height:1.25; }
.blog-card-excerpt { font-size:.9rem;color:var(--muted);margin-top:.625rem;line-height:1.65; }
.blog-card-footer { padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between; }
.blog-card-date { font-family:'JetBrains Mono',monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted); }
.blog-card-arrow { width:1rem;height:1rem;color:var(--subtle);transition:transform .3s; }
.blog-card:hover .blog-card-arrow { transform:translate(2px,-2px); }

/* ---- Prose pages ---- */
.prose-page { max-width:48rem; }
.prose-page h2 { font-size:1.5rem;margin-top:3rem;margin-bottom:1rem; }
.prose-page p { color:var(--muted);margin-bottom:1rem; }
.prose-page ul { list-style:disc;padding-left:1.5rem;color:var(--muted);display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem; }
.prose-page a { color:#b48aff; }
.prose-page a:hover { text-decoration:underline; }

/* ---- Blog card images ---- */
.blog-card-img {
  height:180px;position:relative;overflow:hidden;flex-shrink:0;
  border-bottom:1px solid var(--border);
}
.blog-img-seo {
  background:radial-gradient(ellipse at 25% 65%,rgba(0,80,204,.85) 0%,transparent 55%),
             radial-gradient(ellipse at 78% 25%,rgba(102,0,221,.7) 0%,transparent 50%),
             radial-gradient(ellipse at 60% 80%,rgba(0,184,217,.4) 0%,transparent 40%),#04060e;
}
.blog-img-ads {
  background:radial-gradient(ellipse at 70% 40%,rgba(102,0,221,.9) 0%,transparent 55%),
             radial-gradient(ellipse at 20% 70%,rgba(0,80,204,.6) 0%,transparent 50%),
             radial-gradient(ellipse at 85% 75%,rgba(0,184,217,.35) 0%,transparent 40%),#04060e;
}
.blog-img-web {
  background:radial-gradient(ellipse at 30% 45%,rgba(0,102,255,.8) 0%,transparent 55%),
             radial-gradient(ellipse at 75% 30%,rgba(0,184,217,.65) 0%,transparent 50%),
             radial-gradient(ellipse at 55% 80%,rgba(102,0,221,.3) 0%,transparent 40%),#04060e;
}
.blog-img-shopify {
  background:radial-gradient(ellipse at 65% 50%,rgba(0,184,217,.85) 0%,transparent 55%),
             radial-gradient(ellipse at 20% 30%,rgba(0,80,204,.65) 0%,transparent 50%),
             radial-gradient(ellipse at 80% 80%,rgba(51,0,170,.4) 0%,transparent 40%),#04060e;
}
.blog-img-local {
  background:radial-gradient(ellipse at 35% 55%,rgba(51,0,170,.85) 0%,transparent 55%),
             radial-gradient(ellipse at 75% 35%,rgba(0,80,204,.7) 0%,transparent 50%),
             radial-gradient(ellipse at 20% 80%,rgba(0,184,217,.35) 0%,transparent 40%),#04060e;
}
.blog-img-strategy {
  background:radial-gradient(ellipse at 70% 45%,rgba(102,0,221,.9) 0%,transparent 55%),
             radial-gradient(ellipse at 25% 35%,rgba(0,51,153,.7) 0%,transparent 50%),
             radial-gradient(ellipse at 55% 80%,rgba(0,184,217,.3) 0%,transparent 40%),#04060e;
}
/* Featured image on blog posts */
.article-featured-img {
  height:280px;border-radius:1.5rem;margin-top:2.5rem;
  overflow:hidden;border:1px solid var(--border);
}
@media(min-width:768px){.article-featured-img{height:340px;}}

/* ---- Blog article ---- */
.article-hero { padding-top:5rem;padding-bottom:2rem; }
.article-tag { font-family:'JetBrains Mono',monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;color:#60aaff;margin-bottom:1.25rem;display:block; }
.article-meta { display:flex;align-items:center;gap:1.5rem;margin-top:1.5rem;flex-wrap:wrap; }
.article-meta span { font-family:'JetBrains Mono',monospace;font-size:.625rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted); }
.article-layout { display:grid;gap:4rem;padding-bottom:6rem; }
@media(min-width:900px) { .article-layout { grid-template-columns:1fr 260px;align-items:start; } }
.article-body { max-width:44rem; }
.article-body h2 { font-size:clamp(1.375rem,2.5vw,1.875rem);margin-top:3rem;margin-bottom:1rem;letter-spacing:-.03em;line-height:1.15; }
.article-body h3 { font-size:1.2rem;margin-top:2rem;margin-bottom:.625rem;letter-spacing:-.02em; }
.article-body p { color:rgba(255,255,255,.82);font-size:1.0625rem;line-height:1.82;margin-bottom:1.25rem; }
.article-body ul,.article-body ol { padding-left:1.5rem;color:rgba(255,255,255,.82);display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.25rem;font-size:1.0625rem;line-height:1.7; }
.article-body ul { list-style:disc; }
.article-body ol { list-style:decimal; }
.article-body strong { color:var(--ink);font-weight:600; }
.article-body a { color:#60aaff; }
.article-body a:hover { text-decoration:underline; }
.article-callout { border:1px solid rgba(96,170,255,.2);border-radius:1rem;padding:1.5rem 2rem;background:rgba(96,170,255,.05);margin:2.5rem 0; }
.article-callout p { margin:0;color:rgba(255,255,255,.85);font-size:1rem;line-height:1.75; }
.article-callout strong { color:#60aaff; }
.article-divider { border:none;border-top:1px solid var(--border);margin:3rem 0; }
.article-sidebar { position:sticky;top:6rem;display:flex;flex-direction:column;gap:1.25rem; }
.sidebar-card { padding:1.75rem;border-radius:1.25rem; }
.sidebar-card h4 { font-size:1rem;margin-bottom:.75rem;letter-spacing:-.02em; }
.sidebar-card p { font-size:.9rem;color:var(--muted);margin-bottom:1.25rem;line-height:1.65; }
.sidebar-card ul { display:flex;flex-direction:column;gap:.5rem; }
.sidebar-card li a { font-size:.875rem;color:var(--muted);transition:color .2s;line-height:1.4;display:block; }
.sidebar-card li a:hover { color:var(--ink); }
.article-back { display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--muted);margin-bottom:2.5rem;transition:color .2s; }
.article-back:hover { color:var(--ink); }
.article-back svg { width:.875rem;height:.875rem; }

/* ---- Sitemap ---- */
.sitemap-grid { display:grid;gap:2.5rem; }
@media(min-width:640px) { .sitemap-grid { grid-template-columns:1fr 1fr; } }
@media(min-width:900px) { .sitemap-grid { grid-template-columns:repeat(3,1fr); } }
.sitemap-group h3 { font-size:1rem;border-bottom:1px solid var(--border);padding-bottom:.75rem;margin-bottom:1rem; }
.sitemap-group ul { display:flex;flex-direction:column;gap:.5rem; }
.sitemap-group li a { font-size:.9375rem;color:var(--muted);transition:color .2s; }
.sitemap-group li a:hover { color:#b48aff; }

/* ---- Animations ---- */
@keyframes fade-up { from{opacity:0;transform:translateY(1.5rem)} to{opacity:1;transform:translateY(0)} }
.animate-fade-up { animation:fade-up .7s ease both; }

/* ---- Scroll progress bar ---- */
.scroll-progress {
  position:fixed;top:0;left:0;height:2px;width:0%;
  background:linear-gradient(90deg,#60aaff 0%,#a066ff 50%,#00e5ff 100%);
  z-index:9999;pointer-events:none;
  box-shadow:0 0 6px 2px rgba(160,102,255,0.8),0 0 20px 4px rgba(96,170,255,0.4);
  transition:width 0.08s linear;
}

/* ---- Tilt shimmer overlay ---- */
.win-card { position:relative; }
.stat-card, .feature-card, .principle-item, .principle-card { position:relative; overflow:hidden; }
.tilt-shimmer {
  position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  opacity:0; transition:opacity 0.35s ease; z-index:2;
}

/* ---- Morphing hero word ---- */
#morphing-word {
  display:inline-block;
  transition:filter .35s ease, opacity .35s ease, transform .35s ease;
}
#morphing-word.morph-out {
  filter:blur(10px);
  opacity:0;
  transform:translateY(-6px);
}

/* ---- Back to top ---- */
.back-to-top {
  position:fixed;bottom:2rem;right:2rem;width:2.75rem;height:2.75rem;
  border-radius:9999px;background:var(--grad-btn);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:#fff;
  z-index:500;opacity:0;transform:translateY(1rem);
  transition:opacity .3s,transform .3s,box-shadow .3s;
  box-shadow:0 4px 20px -4px rgba(0,102,255,.5);
}
.back-to-top.visible { opacity:1;transform:translateY(0); }
.back-to-top:hover { transform:translateY(-3px);box-shadow:0 8px 28px -4px rgba(0,102,255,.7); }
.back-to-top svg { width:1rem;height:1rem; }

/* ---- Scroll reveal ---- */
.reveal {
  opacity:0; transform:translateY(1.5rem);
  transition:opacity 0.7s ease, transform 0.7s cubic-bezier(0.2,0.8,0.2,1);
}
.reveal.in-view { opacity:1; transform:none; }

/* ---- Utilities ---- */
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0; }
.text-muted { color:var(--muted); }
.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}
.mb-6{margin-bottom:1.5rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}
.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.flex-wrap{flex-wrap:wrap}
