/* kAIxU Website — Skyes Over London LC
   Cinematic editorial standard: starfield + glass panels + floating logo (no container). */

:root{
  --paper:#070812;
  --paper2:#0b0c18;

  --gold:#ffd36a;
  --gold2:#ffefb0;
  --purple:#a243ff;
  --cyan:#27f2ff;

  --display:'Playfair Display', Georgia, serif;
  --body:'Instrument Sans', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  --ease-expo:cubic-bezier(0.16,1,0.3,1);
  --shadow:0 18px 70px rgba(0,0,0,.55);
  --shadow2:0 12px 40px rgba(0,0,0,.40);

  --max:1400px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px}
body{
  font-family:var(--body);
  color:rgba(255,255,255,.92);
  background:
    radial-gradient(1200px 740px at 18% 12%, rgba(162,67,255,.26), transparent 58%),
    radial-gradient(1100px 820px at 82% 22%, rgba(39,242,255,.16), transparent 58%),
    radial-gradient(900px 700px at 62% 88%, rgba(255,211,106,.14), transparent 60%),
    linear-gradient(180deg, var(--paper), #05050b 45%, var(--paper2));
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit;text-decoration:none}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid rgba(39,242,255,.70);
  outline-offset:3px;
  border-radius:12px;
}

.watermark{
  position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.10;
  background:
    radial-gradient(900px 520px at 50% 40%, rgba(162,67,255,.10), transparent 62%),
    radial-gradient(820px 520px at 52% 62%, rgba(255,211,106,.10), transparent 62%),
    url("https://cdn1.sharemyimage.com/2026/02/16/logo1_transparent.png") center 42% / min(560px, 70vw) no-repeat;
  filter: drop-shadow(0 0 18px rgba(255,211,106,.10));
}

.bgfx{position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.70;}
canvas#stars{width:100%; height:100%; display:block;}
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.12; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size:260px 260px;
}
.scanlines{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.08;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,.05), rgba(255,255,255,.05) 1px, rgba(0,0,0,0) 3px, rgba(0,0,0,0) 6px);
}

/* REQUIRED floating logo (no container) + subtle glow + pulse */
.sol-float-logo{
  position:fixed;
  left:16px;
  bottom:16px;
  width:74px;
  height:auto;
  z-index:60;
  filter: drop-shadow(0 0 16px rgba(255,211,106,.22)) drop-shadow(0 0 16px rgba(39,242,255,.12));
  animation:pulseLogo 3.1s ease-in-out infinite;
  user-select:none;
  -webkit-user-drag:none;
}
@keyframes pulseLogo{
  0%,100%{transform:translateY(0) scale(1); opacity:.90;}
  50%{transform:translateY(-2px) scale(1.02); opacity:1;}
}

/* Cinematic opener */
body.locked{overflow:hidden; height:100vh;}
.cinematic-opener{
  position:fixed; inset:0;
  z-index:10000;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  background:#05050b;
  pointer-events:none;
  animation:openerFadeOut 1s var(--ease-expo) 4.6s forwards;
}
.cinematic-opener::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 22% 52%, rgba(255,211,106,.14) 0%, transparent 55%),
    radial-gradient(ellipse at 78% 52%, rgba(162,67,255,.16) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 75%, rgba(39,242,255,.08) 0%, transparent 60%);
  animation:gradientPulse 4s ease-in-out infinite;
}
@keyframes gradientPulse{0%,100%{opacity:.55}50%{opacity:1}}
.opener-content{position:relative; z-index:2; text-align:center; padding:2rem; max-width:980px;}
.opener-line{overflow:hidden;}
.opener-text{
  font-family:var(--mono);
  color:rgba(255,255,255,.72);
  font-size:clamp(.9rem,2.6vw,1.05rem);
  letter-spacing:.28em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(100%);
  animation:slideUp 1s var(--ease-expo) .5s forwards;
}
.opener-title{
  font-family:var(--display);
  color:var(--gold);
  font-size:clamp(2.1rem,7.6vw,5.1rem);
  font-weight:700;
  line-height:1.05;
  margin:1.25rem 0;
  opacity:0;
  transform:translateY(100%);
  animation:slideUp 1.2s var(--ease-expo) 1s forwards;
}
.opener-subtitle{
  font-family:var(--body);
  color:rgba(255,255,255,.70);
  font-size:clamp(.95rem,2vw,1.08rem);
  letter-spacing:.04em;
  opacity:0;
  animation:fadeIn 1.2s var(--ease-expo) 2s forwards;
  max-width:84ch;
  margin:0 auto;
  line-height:1.85;
}
.opener-divider{
  width:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--cyan), var(--gold), var(--purple), transparent);
  margin:1.8rem auto;
  animation:expandLine 1.5s var(--ease-expo) 1.5s forwards;
  opacity:.9;
}
.opener-logo{
  margin-top:2.4rem;
  opacity:0;
  animation:fadeIn 1s var(--ease-expo) 2.45s forwards;
  display:flex;
  justify-content:center;
}
.sol-logo{
  width:180px;height:auto;
  filter:drop-shadow(0 0 16px rgba(255,211,106,.18)) drop-shadow(0 0 18px rgba(39,242,255,.10));
  animation:pulseLogo 3.1s ease-in-out infinite;
  user-select:none;
  -webkit-user-drag:none;
}
.opener-company{
  font-family:var(--mono);
  color:rgba(255,255,255,.44);
  font-size:.72rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-top:1rem;
  opacity:0;
  animation:fadeIn 1s var(--ease-expo) 3s forwards;
}
@keyframes slideUp{to{opacity:1; transform:translateY(0)}}
@keyframes fadeIn{to{opacity:1}}
@keyframes expandLine{to{width:240px}}
@keyframes openerFadeOut{to{opacity:0; visibility:hidden}}

.progress-bar{
  position:fixed;
  bottom:40px;
  left:50%;
  transform:translateX(-50%);
  width:240px;
  height:2px;
  background:rgba(255,255,255,.10);
  border-radius:2px;
  overflow:hidden;
  z-index:10001;
  animation:fadeOut .5s var(--ease-expo) 4s forwards;
}
.progress-fill{
  height:100%;
  width:0;
  background:linear-gradient(90deg, var(--cyan), var(--gold), var(--purple));
  animation:progressFill 4s var(--ease-expo) forwards;
  box-shadow:0 0 18px rgba(39,242,255,.28);
}
@keyframes progressFill{0%{width:0}100%{width:100%}}
@keyframes fadeOut{to{opacity:0}}

main{position:relative; z-index:2}

/* Nav */
.nav{
  position:fixed; top:0; left:0;
  width:100%;
  padding:1.25rem 3rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  z-index:1000;
  background:transparent;
  transition:all .4s var(--ease-expo);
  border-bottom:1px solid rgba(255,255,255,0);
}
.nav.scrolled{
  background:rgba(5,5,11,.70);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(255,255,255,.08);
  padding:.9rem 3rem;
}
.nav-brand{display:flex; align-items:center; gap:14px;}
.nav-brand-title{display:flex; flex-direction:column; gap:2px; line-height:1.0;}
.nav-brand-name{
  font-family:var(--display);
  font-size:1.05rem;
  font-weight:700;
  color:rgba(255,255,255,.92);
  letter-spacing:.02em;
}
.nav-brand-sub{
  font-family:var(--mono);
  font-size:.62rem;
  color:rgba(255,255,255,.58);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.nav-links{display:flex; gap:2rem; list-style:none; align-items:center;}
.nav-links a{
  font-family:var(--body);
  font-size:.86rem;
  font-weight:600;
  color:rgba(255,255,255,.66);
  transition:color .25s ease, transform .25s ease, background .25s ease;
  letter-spacing:.02em;
  padding:.35rem .45rem;
  border-radius:12px;
}
.nav-links a:hover{color:var(--gold2); transform:translateY(-1px); background:rgba(255,255,255,.03);}
.nav-links a.active{color:rgba(255,255,255,.92); background:rgba(255,211,106,.08); border:1px solid rgba(255,211,106,.18);}
.nav-actions{display:flex; gap:.85rem; align-items:center; flex-wrap:wrap; justify-content:flex-end;}
.nav-linkbtn{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.74);
  padding:.78rem 1.05rem;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
  transition:all .25s ease;
}
.nav-linkbtn:hover{
  transform:translateY(-2px);
  border-color:rgba(39,242,255,.26);
  background:rgba(39,242,255,.06);
}
.nav-cta{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  padding:.78rem 1.15rem;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.92);
  border:1px solid rgba(255,211,106,.25);
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:all .3s ease;
  white-space:nowrap;
}
.nav-cta:hover{
  background:rgba(255,211,106,.10);
  border-color:rgba(39,242,255,.30);
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(0,0,0,.35);
}

/* Hero */
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.76) 100%),
    linear-gradient(90deg, rgba(0,0,0,.80) 0%, transparent 56%);
  z-index:2;
}
.hero-content{
  position:relative;
  z-index:3;
  max-width:1120px;
  padding:0 5rem;
  padding-top:9rem;
  padding-bottom:5rem;
}
.hero-eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:.85rem;
  margin-bottom:1.1rem;
}
.hero-eyebrow::before{
  content:"";
  width:40px; height:1px;
  background:linear-gradient(90deg, var(--cyan), var(--gold));
  opacity:.9;
}
.hero-title{
  font-family:var(--display);
  font-size:clamp(2.9rem,6.8vw,5.4rem);
  font-weight:700;
  color:rgba(255,255,255,.96);
  line-height:1.05;
  margin-bottom:1.35rem;
  opacity:0;
  animation:heroFadeUp 1.1s var(--ease-expo) 4.85s forwards;
}
.hero-title em{font-style:italic; color:var(--gold2);}
.hero-description{
  font-family:var(--body);
  font-size:1.12rem;
  color:rgba(255,255,255,.76);
  line-height:1.95;
  max-width:86ch;
  margin-bottom:2.1rem;
  opacity:0;
  animation:heroFadeUp 1.1s var(--ease-expo) 5.05s forwards;
}
.hero-actions{
  display:flex;
  gap:1.2rem;
  flex-wrap:wrap;
  opacity:0;
  animation:heroFadeUp 1.1s var(--ease-expo) 5.25s forwards;
}
.hero-btn{
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  padding:1.05rem 2.1rem;
  font-family:var(--mono);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:all .35s var(--ease-expo);
  border-radius:0;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.04);
  cursor:pointer;
}
.hero-btn svg{width:16px;height:16px; transition:transform .25s ease;}
.hero-btn:hover svg{transform:translateX(4px);}
.hero-btn-primary{
  background:linear-gradient(90deg, rgba(39,242,255,.20), rgba(255,211,106,.20), rgba(162,67,255,.20));
  border-color:rgba(255,211,106,.35);
  color:rgba(255,255,255,.94);
}
.hero-btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 45px rgba(0,0,0,.40);
  border-color:rgba(39,242,255,.30);
  background:rgba(255,255,255,.06);
}
.hero-btn-secondary:hover{
  transform:translateY(-2px);
  border-color:rgba(255,211,106,.40);
  background:rgba(255,211,106,.08);
}
@keyframes heroFadeUp{from{opacity:0; transform:translateY(28px)}to{opacity:1; transform:translateY(0)}}

.pill-row{display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.6rem;}
.pill{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.55rem .78rem;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.18);
  box-shadow:0 14px 40px rgba(0,0,0,.25);
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.74);
}
.pill b{color:rgba(255,255,255,.92); letter-spacing:.08em}
.pill i{
  width:10px; height:10px; border-radius:99px;
  background:rgba(39,242,255,.85);
  box-shadow:0 0 18px rgba(39,242,255,.35);
}

.hero-scroll-indicator{
  position:absolute; bottom:3rem; left:50%;
  transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.75rem;
  color:rgba(255,255,255,.68);
  opacity:0;
  animation:heroFadeUp 1s var(--ease-expo) 5.55s forwards;
  z-index:3;
}
.hero-scroll-indicator span{
  font-family:var(--mono); font-size:.65rem;
  letter-spacing:.15em; text-transform:uppercase;
}
.scroll-line{
  width:1px; height:60px;
  background:linear-gradient(180deg, var(--gold), transparent);
  animation:scrollPulse 2s ease-in-out infinite;
  opacity:.9;
}
@keyframes scrollPulse{0%,100%{opacity:.3; transform:scaleY(.5)}50%{opacity:1; transform:scaleY(1)}}

/* Sections */
.section{max-width:var(--max); margin:0 auto; padding:6.4rem 5rem; position:relative; z-index:2;}
.section.slim{padding:4.6rem 5rem}
.section-divider{max-width:var(--max); margin:0 auto; height:1px; background:rgba(255,255,255,.10);}
.section h2{
  font-family:var(--display);
  font-size:2.35rem;
  font-weight:700;
  color:rgba(255,255,255,.96);
  margin-bottom:1.15rem;
  line-height:1.18;
  text-shadow:0 0 24px rgba(162,67,255,.10);
}
.section h3{
  font-family:var(--display);
  font-size:1.45rem;
  font-weight:700;
  color:rgba(255,255,255,.94);
  margin-top:2.4rem;
  margin-bottom:.85rem;
}
.section p{
  font-family:var(--body);
  font-size:1.08rem;
  color:rgba(255,255,255,.86);
  line-height:1.95;
  margin-bottom:1.15rem;
}
.lead{font-size:1.22rem; color:rgba(255,255,255,.74); line-height:1.9;}

.grid-2{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.4rem; margin:2rem 0;}
.grid-3{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.4rem; margin:2rem 0;}

.card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  padding:2rem;
  position:relative;
  overflow:hidden;
  transition:all .35s var(--ease-expo);
  box-shadow:0 12px 40px rgba(0,0,0,.22);
}
.card::before{
  content:"";
  position:absolute; top:0; left:0;
  width:4px; height:100%;
  background:linear-gradient(180deg, var(--cyan), var(--gold), var(--purple));
  transform:scaleY(0);
  transform-origin:top;
  transition:transform .35s var(--ease-expo);
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 55px rgba(0,0,0,.38);
  border-color:rgba(255,211,106,.20);
}
.card:hover::before{transform:scaleY(1);}
.card h4{font-family:var(--display); font-size:1.18rem; font-weight:700; color:rgba(255,255,255,.94); margin-bottom:.6rem;}
.card p{margin:0;color:rgba(255,255,255,.76);font-size:1rem;line-height:1.85}

.pull-quote{
  margin:2.8rem 0;
  padding:2.6rem 3rem;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.10);
  position:relative;
  box-shadow:var(--shadow2);
}
.pull-quote::before{
  content:"“";
  position:absolute;
  top:-18px;
  left:1.4rem;
  font-family:var(--display);
  font-size:7.5rem;
  color:var(--gold);
  opacity:.20;
  line-height:1;
}
.pull-quote blockquote{
  font-family:var(--display);
  font-size:1.55rem;
  font-weight:450;
  font-style:italic;
  color:rgba(255,255,255,.94);
  line-height:1.55;
}
.pull-quote cite{
  display:block;
  font-family:var(--mono);
  font-size:.76rem;
  font-style:normal;
  color:rgba(255,211,106,.92);
  margin-top:1.2rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.panel{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.22);
  box-shadow:var(--shadow2);
  padding:1.25rem;
  margin:1.4rem 0;
}
pre{
  margin:0;
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.10);
  padding:1rem;
  overflow:auto;
  color:rgba(255,255,255,.88);
  font-family:var(--mono);
  font-size:.80rem;
  line-height:1.7;
}
.code-meta{
  margin:.6rem 0 .75rem;
  font-family:var(--mono);
  font-size:.70rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.62);
}

/* Tables */
.table-shell{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.22);
  box-shadow:var(--shadow2);
  overflow:auto;
  margin-top:1.2rem;
}
table{width:100%; border-collapse:collapse; min-width:880px;}
th, td{ text-align:left; padding:1rem 1rem; border-bottom:1px solid rgba(255,255,255,.10); vertical-align:top; }
th{
  font-family:var(--mono);
  font-size:.70rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.76);
  background:rgba(255,255,255,.03);
}
td{color:rgba(255,255,255,.86); line-height:1.75; font-size:1rem;}
.row-title{font-family:var(--display); font-weight:700; font-size:1.15rem; color:rgba(255,255,255,.95); margin-bottom:.15rem;}
.row-sub{font-family:var(--body); font-size:.95rem; color:rgba(255,255,255,.70);}

.note{margin-top:.95rem; font-family:var(--body); font-size:1.0rem; color:rgba(255,255,255,.74); line-height:1.75;}
.note b{color:var(--gold2);}

/* Estimator */
.estimator{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:1.6rem;}
.field{border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.03); padding:1rem;}
.field label{
  display:block;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.70);
  margin-bottom:.5rem;
}
.field input, .field select{
  width:100%;
  padding:.85rem .85rem;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.30);
  color:rgba(255,255,255,.92);
  font-family:var(--body);
  font-size:1rem;
  line-height:1.7;
}
.estimator-output{grid-column:1 / -1; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.26); padding:1.15rem;}
.estimator-output .k{font-family:var(--mono); font-size:.70rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.66);}
.estimator-output .v{font-family:var(--display); font-size:2.0rem; font-weight:700; color:var(--gold2); margin-top:.3rem;}
.estimator-breakdown{margin-top:.85rem; color:rgba(255,255,255,.78); line-height:1.85; font-size:1rem;}

/* CTA */
.cta{
  margin-top:2.6rem;
  padding:2.4rem;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(90deg, rgba(39,242,255,.10), rgba(255,211,106,.10), rgba(162,67,255,.10));
  box-shadow:0 22px 55px rgba(0,0,0,.38);
}
.cta h3{margin-top:0}
.cta-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.2rem;}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  padding:1.0rem 1.9rem;
  font-family:var(--mono);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.04);
  cursor:pointer;
  transition:all .35s var(--ease-expo);
}
.btn.primary{
  background:linear-gradient(90deg, rgba(39,242,255,.20), rgba(255,211,106,.20), rgba(162,67,255,.20));
  border-color:rgba(255,211,106,.35);
  color:rgba(255,255,255,.94);
}
.btn:hover{transform:translateY(-3px);border-color:rgba(39,242,255,.30);background:rgba(255,255,255,.06);}
.btn svg{width:16px;height:16px;transition:transform .25s ease;}
.btn:hover svg{transform:translateX(4px);}

/* Footer */
.footer{
  background:rgba(0,0,0,.45);
  padding:4.8rem 5rem 2.6rem;
  color:rgba(255,255,255,.92);
  border-top:1px solid rgba(255,255,255,.10);
  position:relative;
  z-index:2;
}
.footer-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:3rem;
  margin-bottom:3rem;
  padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.footer-brand h4{font-family:var(--display); font-size:1.5rem; font-weight:700; margin-bottom:.5rem;}
.footer-brand .subsidiary{
  font-family:var(--mono);
  font-size:.65rem;
  color:rgba(255,255,255,.56);
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:1.15rem;
}
.footer-brand p{font-size:.95rem; color:rgba(255,255,255,.72); line-height:1.75; max-width:64ch;}
.footer-links h5{
  font-family:var(--mono);
  font-weight:800;
  font-size:.74rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:1.1rem;
  color:rgba(255,255,255,.90);
}
.footer-links ul{list-style:none; display:flex; flex-direction:column; gap:.7rem;}
.footer-links a{font-size:.92rem; color:rgba(255,255,255,.72); transition:color .25s ease;}
.footer-links a:hover{color:var(--gold2);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;}
.footer-copyright{
  font-family:var(--mono);
  font-size:.68rem;
  color:rgba(255,255,255,.56);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.footer-legal{display:flex; gap:1.25rem; flex-wrap:wrap;}
.footer-legal a{font-size:.85rem; color:rgba(255,255,255,.70);}
.footer-legal a:hover{color:var(--gold2);}

/* Scroll reveal */
.fade-up{opacity:0; transform:translateY(36px); transition:all .8s var(--ease-expo);}
.fade-up.visible{opacity:1; transform:translateY(0);}

/* Responsive */
@media (max-width: 1200px){
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 1024px){
  .nav{padding:1rem 1.5rem;}
  .nav-links{display:none;}
  .hero-content{padding:0 2rem; padding-top:8.2rem; padding-bottom:4rem;}
  .section{padding:5rem 2rem;}
  .section.slim{padding:3.8rem 2rem;}
  .footer{padding:3.6rem 2rem 2.2rem;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  table{min-width:760px;}
  .estimator{grid-template-columns:1fr;}
}
@media (max-width: 768px){
  .hero-content{padding:0 1.25rem; padding-top:7.4rem; padding-bottom:3.2rem;}
  .section{padding:3.4rem 1.25rem;}
  .section.slim{padding:3.0rem 1.25rem;}
  .pull-quote{padding:2rem 1.4rem;}
  .pull-quote blockquote{font-size:1.25rem;}
  .footer{padding:3rem 1.25rem 2rem;}
  .footer-grid{grid-template-columns:1fr;}
  table{min-width:640px;}
}
@media (prefers-reduced-motion: reduce){
  .cinematic-opener, .progress-fill, .scroll-line, .sol-float-logo, .sol-logo{animation:none !important;}
  .fade-up{transition:none !important;}
}
