/* Kivuli Index Lab — bespoke stylesheet (direction M1 "Observatory").
   Hand-authored for this tenant only; shares no code with the platform engine.
   Palette: near-black canvas · amber #E9B44C signal · mint #7CE0B0 accent.
   Fonts self-hosted (see @font-face below) — CSP font-src 'self'. */

/* ---------- Fonts (self-hosted, asset_dir kivuli) ---------- */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('/kivuli/fonts/space-grotesk-400.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('/kivuli/fonts/space-grotesk-500.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('/kivuli/fonts/space-grotesk-600.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('/kivuli/fonts/space-grotesk-700.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/kivuli/fonts/ibm-plex-mono-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/kivuli/fonts/ibm-plex-mono-500.woff2') format('woff2')}

:root{
  --bg:#0A0B0D; --bg-2:#0E1014; --surface:#14161B; --surface-2:#181B21;
  --line:rgba(255,255,255,.08); --line-strong:rgba(255,255,255,.14);
  --ink:#F4F5F7; --ink-dim:#A6ACB8; --ink-faint:#6C7280;
  --amber:#E9B44C; --amber-soft:rgba(233,180,76,.14);
  --mint:#7CE0B0; --mint-soft:rgba(124,224,176,.12);
  --radius:18px; --radius-lg:24px; --max:1240px;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --grotesk:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--grotesk);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
/* BG2 — penumbra glow: warm light sources fading into shadow */
body::before{content:"";position:fixed;inset:0;background:
  radial-gradient(680px 480px at 82% -8%, rgba(233,180,76,.12), transparent 60%),
  radial-gradient(560px 460px at 6% 10%, rgba(124,224,176,.055), transparent 60%),
  radial-gradient(900px 700px at 50% 122%, rgba(233,180,76,.045), transparent 65%);
  pointer-events:none;z-index:0}
.kv-wrap{max-width:var(--max);margin:0 auto;padding:0 28px;position:relative;z-index:1}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--amber);color:#0A0B0D}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:6px}
.kv-skip{position:absolute;left:-9999px;top:0;background:var(--amber);color:#0A0B0D;padding:10px 16px;border-radius:0 0 8px 0;z-index:100;font-weight:600}
.kv-skip:focus{left:0}

.kv-mono{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.kv-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber)}

/* ---------- Header ---------- */
.kv-header{position:sticky;top:0;z-index:50;background:rgba(10,11,13,.66);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid var(--line)}
.kv-nav{display:flex;align-items:center;justify-content:space-between;height:66px}
.kv-brand{display:flex;align-items:center;gap:12px;font-weight:600;letter-spacing:-.01em}
.kv-brand svg{display:block}
.kv-brand .kv-name{font-size:15.5px}
.kv-brand .kv-name b{font-weight:700}
.kv-links{display:flex;align-items:center;gap:6px}
.kv-links a{font-size:14px;color:var(--ink-dim);padding:8px 14px;border-radius:10px;transition:color .18s ease,background .18s ease}
.kv-links a:hover,.kv-links a[aria-current="page"]{color:var(--ink);background:rgba(255,255,255,.04)}
.kv-lang{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--ink-faint);padding:6px 10px;border:1px solid var(--line);border-radius:8px;margin-left:8px}
.kv-menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:10px;width:42px;height:42px;color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
.kv-menu-btn svg{width:20px;height:20px}
.kv-mobile{display:none;border-bottom:1px solid var(--line);background:var(--bg-2)}
.kv-mobile.open{display:block}
.kv-mobile a{display:block;padding:14px 28px;color:var(--ink-dim);border-top:1px solid var(--line);font-size:15px}
.kv-mobile a:first-child{border-top:none}

/* ---------- Buttons / links ---------- */
.kv-btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--grotesk);font-size:15px;font-weight:500;padding:13px 22px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:transform .16s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}
.kv-btn-primary{background:var(--amber);color:#0A0B0D;font-weight:600;box-shadow:0 6px 26px rgba(233,180,76,.28)}
.kv-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(233,180,76,.4)}
.kv-btn-ghost{border-color:var(--line-strong);color:var(--ink)}
.kv-btn-ghost:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.28)}
.kv-btn svg{width:16px;height:16px}
.kv-link{display:inline-flex;align-items:center;gap:9px;color:var(--amber);font-weight:500;border-bottom:1px solid transparent;transition:gap .18s ease,border-color .18s ease}
.kv-link:hover{gap:14px;border-color:var(--amber)}
.kv-link svg{width:15px;height:15px}

/* ---------- Sections ---------- */
main{position:relative;z-index:1}
.kv-section{padding:64px 0;position:relative}
.kv-sec-head{max-width:760px;margin-bottom:44px}
.kv-sec-head h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.08;letter-spacing:-.025em;font-weight:600;margin:14px 0 16px}
.kv-sec-head p{color:var(--ink-dim);font-size:1.04rem}
.kv-divider{height:1px;background:var(--line);max-width:var(--max);margin:0 auto}

/* ---------- Hero ---------- */
.kv-hero{padding:78px 0 40px}
.kv-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.kv-hero h1{font-size:clamp(2.4rem,5.2vw,4.3rem);line-height:1.03;letter-spacing:-.03em;font-weight:600;margin:22px 0 26px}
.kv-hero h1 .kv-glow{background:linear-gradient(180deg,#fff 0%,#E9B44C 130%);-webkit-background-clip:text;background-clip:text;color:transparent}
.kv-subhero{font-size:clamp(1rem,1.25vw,1.12rem);color:var(--ink-dim);max-width:620px;margin-bottom:34px}
.kv-cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
/* page hero (non-home) */
.kv-page-hero{padding:70px 0 34px}
.kv-page-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem);line-height:1.05;letter-spacing:-.03em;font-weight:600;margin:20px 0 22px;max-width:20ch}
.kv-page-hero .kv-subhero{max-width:720px;margin-bottom:0}

/* ---------- Signal panel ---------- */
.kv-signal{background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;position:relative;overflow:hidden;box-shadow:0 30px 80px -40px rgba(0,0,0,.8)}
.kv-signal::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(340px 160px at 80% 0%,rgba(233,180,76,.12),transparent 70%);pointer-events:none}
.kv-sp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.kv-sp-title{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}
.kv-sp-live{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--mint)}
.kv-sp-live .kv-pulse{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint);animation:kv-pulse 2s ease-in-out infinite}
@keyframes kv-pulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
.kv-bars{display:flex;align-items:flex-end;gap:7px;height:118px;padding:0 2px 4px}
.kv-bars .kv-bar{flex:1;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,rgba(233,180,76,.85),rgba(233,180,76,.25));transform-origin:bottom;animation:kv-rise 3.6s ease-in-out infinite;box-shadow:0 0 14px rgba(233,180,76,.12)}
.kv-bars .kv-bar.kv-alt{background:linear-gradient(180deg,rgba(124,224,176,.8),rgba(124,224,176,.2))}
@keyframes kv-rise{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.kv-bars .kv-bar:nth-child(1){animation-delay:0s;height:60%}
.kv-bars .kv-bar:nth-child(2){animation-delay:.25s;height:88%}
.kv-bars .kv-bar:nth-child(3){animation-delay:.5s;height:44%}
.kv-bars .kv-bar:nth-child(4){animation-delay:.75s;height:100%}
.kv-bars .kv-bar:nth-child(5){animation-delay:1s;height:70%}
.kv-bars .kv-bar:nth-child(6){animation-delay:1.25s;height:52%}
.kv-bars .kv-bar:nth-child(7){animation-delay:1.5s;height:82%}
.kv-bars .kv-bar:nth-child(8){animation-delay:1.75s;height:38%}
.kv-bars .kv-bar:nth-child(9){animation-delay:2s;height:64%}
.kv-sp-legend{display:flex;gap:20px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.kv-sp-metric .kv-v{font-size:22px;font-weight:600;letter-spacing:-.02em}
.kv-sp-metric .kv-v.kv-amber{color:var(--amber)}
.kv-sp-metric .kv-v.kv-mint{color:var(--mint)}
.kv-sp-metric .kv-l{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px}

/* ---------- Four states board ---------- */
.kv-board{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent);padding:26px}
.kv-board-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}
.kv-board-bar .kv-lbl{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}
.kv-states{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.kv-state{position:relative;border-radius:var(--radius);padding:22px 20px 20px;min-height:210px;border:1px solid var(--line);background:var(--surface);transition:transform .2s ease;display:flex;flex-direction:column}
.kv-state:hover{transform:translateY(-4px)}
.kv-state .kv-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}
.kv-state h3{font-size:1.4rem;font-weight:600;letter-spacing:-.02em;margin:12px 0 10px}
.kv-state p{font-size:.9rem;color:var(--ink-dim);line-height:1.5}
.kv-state .kv-glyph{position:absolute;top:20px;right:20px;width:34px;height:34px}
.kv-s-named{border-color:rgba(233,180,76,.4);background:linear-gradient(180deg,var(--amber-soft),var(--surface));box-shadow:0 0 0 1px rgba(233,180,76,.15),0 22px 50px -30px rgba(233,180,76,.5)}
.kv-s-named h3{color:var(--amber)}
.kv-s-skipped{border-style:dashed;border-color:rgba(255,255,255,.18);background:transparent}
.kv-s-skipped h3{color:var(--ink-faint)}
.kv-s-blurred{overflow:hidden}
.kv-s-blurred::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 2px,transparent 2px 7px);filter:blur(.4px);pointer-events:none}
.kv-s-blurred h3{color:var(--ink);filter:blur(1.6px);opacity:.82}
.kv-s-blurred p{filter:blur(.4px)}
.kv-s-displaced{overflow:visible}
.kv-s-displaced::before{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid rgba(124,224,176,.35);transform:translate(9px,-9px);background:rgba(124,224,176,.03);z-index:-1}
.kv-s-displaced h3{color:var(--mint)}

/* ---------- Two-column method ---------- */
.kv-two{display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:center}
.kv-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:26px;font-family:var(--mono);font-size:12.5px;line-height:2.05;color:var(--ink-dim)}
.kv-panel .kv-k{color:var(--amber)}
.kv-panel .kv-c{color:var(--ink-faint)}
.kv-panel .kv-m{color:var(--mint)}

/* ---------- Focus tiles ---------- */
.kv-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kv-tile{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:20px;transition:border-color .2s ease,transform .2s ease}
.kv-tile:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.kv-tile .kv-n{font-family:var(--mono);font-size:11px;color:var(--amber);letter-spacing:.1em}
.kv-tile h4{font-size:1.02rem;font-weight:600;margin:12px 0 6px;letter-spacing:-.01em}
.kv-tile p{font-size:.86rem;color:var(--ink-faint)}

/* ---------- Research cards ---------- */
.kv-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.kv-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:24px;display:flex;flex-direction:column;min-height:250px;position:relative;overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.kv-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(240px 140px at 100% 0%,rgba(233,180,76,.1),transparent 70%);opacity:0;transition:opacity .25s ease;pointer-events:none}
.kv-card:hover{transform:translateY(-5px);border-color:rgba(233,180,76,.3);box-shadow:0 26px 60px -34px rgba(0,0,0,.9)}
.kv-card:hover::after{opacity:1}
.kv-card .kv-kicker{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.kv-card .kv-st{color:var(--mint);white-space:nowrap}
.kv-card h3{font-size:1.24rem;font-weight:600;letter-spacing:-.02em;margin:18px 0 12px;line-height:1.2}
.kv-card .kv-sum{font-size:.9rem;color:var(--ink-dim);margin-bottom:16px}
.kv-card .kv-foot{display:flex;align-items:center;gap:9px;color:var(--amber);font-size:.86rem;font-weight:500;margin-top:auto}
.kv-card .kv-foot svg{width:14px;height:14px;transition:transform .18s ease}
.kv-card:hover .kv-foot svg{transform:translateX(4px)}
.kv-browse{margin-top:30px;text-align:center}

/* ---------- Research index (grouped) ---------- */
.kv-dir{margin-bottom:52px}
.kv-dir-head{display:flex;gap:18px;align-items:baseline;padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.kv-dir-head .kv-num{font-family:var(--mono);font-size:2rem;font-weight:500;color:var(--amber);line-height:1}
.kv-dir-head h2{font-size:1.4rem;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}
.kv-dir-head p{color:var(--ink-dim);font-size:.95rem;max-width:60ch}

/* ---------- Work-item (research note) ---------- */
.kv-wi-hero{padding:64px 0 30px;max-width:820px}
.kv-wi-meta{display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:22px}
.kv-wi-meta .kv-dot{color:var(--amber)}
.kv-wi-hero h1{font-size:clamp(1.9rem,3.8vw,2.9rem);line-height:1.1;letter-spacing:-.03em;font-weight:600;margin-bottom:18px}
.kv-wi-summary{font-size:1.12rem;color:var(--ink-dim)}
.kv-wi-cover{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;margin:14px 0 6px;background:var(--surface)}
.kv-wi-cover img{width:100%;height:auto}
.kv-outcome{border:1px solid rgba(233,180,76,.28);border-radius:var(--radius);background:linear-gradient(150deg,rgba(233,180,76,.08),var(--surface) 60%);padding:22px 24px;margin:30px 0}
.kv-outcome .kv-lbl{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:8px}
.kv-outcome p{color:var(--ink);font-size:1.02rem}
.kv-prose{max-width:760px}
.kv-prose>*+*{margin-top:1.25em}
.kv-prose p{color:var(--ink-dim);font-size:1.05rem;line-height:1.75}
.kv-prose h2{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-top:2em;line-height:1.2}
.kv-prose blockquote{border-left:2px solid var(--amber);padding:6px 0 6px 22px;color:var(--ink);font-size:1.12rem;line-height:1.6;font-style:normal}
.kv-prose blockquote p{color:var(--ink)}
.kv-wi-nav{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:26px;border-top:1px solid var(--line);flex-wrap:wrap}

/* ---------- Lab / team ---------- */
.kv-meta-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:36px 0}
.kv-meta-strip .kv-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px 20px}
.kv-meta-strip .kv-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin-bottom:8px}
.kv-meta-strip .kv-v{color:var(--ink);font-size:.98rem}
.kv-team{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.kv-member{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,border-color .2s ease}
.kv-member:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.kv-member .kv-portrait{aspect-ratio:4/5;overflow:hidden;background:var(--bg-2);position:relative}
.kv-member .kv-portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.02)}
.kv-member .kv-portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,11,13,.55));pointer-events:none}
.kv-member .kv-body{padding:22px 22px 24px}
.kv-member h3{font-size:1.24rem;font-weight:600;letter-spacing:-.02em}
.kv-member .kv-role{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin:8px 0 14px}
.kv-member .kv-focus{color:var(--ink);font-size:.95rem;margin-bottom:12px}
.kv-member .kv-note{color:var(--ink-dim);font-size:.9rem;line-height:1.55}

/* ---------- FAQ ---------- */
.kv-faq{display:flex;flex-direction:column;gap:12px;max-width:820px}
.kv-faq details{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.kv-faq details[open]{border-color:var(--line-strong)}
.kv-faq summary{list-style:none;cursor:pointer;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:500;font-size:1.02rem}
.kv-faq summary::-webkit-details-marker{display:none}
.kv-faq summary .kv-plus{flex:0 0 auto;width:20px;height:20px;position:relative;transition:transform .2s ease}
.kv-faq summary .kv-plus::before,.kv-faq summary .kv-plus::after{content:"";position:absolute;background:var(--amber);border-radius:2px}
.kv-faq summary .kv-plus::before{top:9px;left:2px;right:2px;height:2px}
.kv-faq summary .kv-plus::after{left:9px;top:2px;bottom:2px;width:2px}
.kv-faq details[open] summary .kv-plus{transform:rotate(45deg)}
.kv-faq .kv-answer{padding:0 22px 22px;color:var(--ink-dim);font-size:.98rem;line-height:1.65}

/* ---------- Intake form ---------- */
.kv-form-wrap{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--surface),var(--bg-2));padding:30px;max-width:640px}
.kv-form-intro{color:var(--ink-dim);font-size:.98rem;margin-bottom:24px}
.kv-field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.kv-field label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.kv-field label .kv-req{color:var(--amber)}
.kv-field input,.kv-field textarea{font-family:var(--grotesk);font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:12px;padding:13px 15px;transition:border-color .18s ease,box-shadow .18s ease}
.kv-field input:focus,.kv-field textarea:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(233,180,76,.15)}
.kv-field textarea{resize:vertical;min-height:150px;line-height:1.6}
.kv-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.kv-form-msg{display:none;padding:14px 16px;border-radius:12px;font-size:.95rem;margin-bottom:18px}
.kv-form-msg.kv-ok{display:block;background:var(--mint-soft);border:1px solid rgba(124,224,176,.4);color:var(--mint)}
.kv-form-msg.kv-err{display:block;background:rgba(224,124,124,.12);border:1px solid rgba(224,124,124,.4);color:#e8a0a0}
.kv-form button[type=submit]{width:100%;justify-content:center}
.kv-form button[disabled]{opacity:.6;cursor:default;transform:none!important}

/* ---------- Final CTA ---------- */
.kv-cta-band{border:1px solid rgba(233,180,76,.28);border-radius:var(--radius-lg);background:linear-gradient(150deg,rgba(233,180,76,.1),var(--surface) 55%);padding:56px 44px;text-align:center;position:relative;overflow:hidden}
.kv-cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 260px at 50% -30%,rgba(233,180,76,.18),transparent 70%);pointer-events:none}
.kv-cta-band h2{max-width:760px;margin:0 auto 14px;font-size:clamp(1.6rem,2.8vw,2.3rem);letter-spacing:-.025em;font-weight:600;position:relative}
.kv-cta-band p{color:var(--ink-dim);max-width:600px;margin:0 auto 28px;position:relative}
.kv-cta-band .kv-btn{position:relative}

/* ---------- Footer ---------- */
.kv-footer{border-top:1px solid var(--line);padding:52px 0 40px;position:relative;z-index:1;margin-top:24px}
.kv-foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px;align-items:start}
.kv-foot-note{color:var(--ink-dim);font-size:.93rem;max-width:340px;margin-top:16px}
.kv-foot-col h5{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:14px}
.kv-foot-col a{display:block;color:var(--ink-dim);font-size:14px;padding:5px 0;transition:color .18s ease}
.kv-foot-col a:hover{color:var(--amber)}
.kv-foot-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:44px;padding-top:22px;border-top:1px solid var(--line);flex-wrap:wrap;gap:12px}
.kv-foot-bottom span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-faint)}

/* ---------- Error pages ---------- */
.kv-error{min-height:64vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 0}
.kv-error .kv-code{font-family:var(--mono);font-size:clamp(3rem,10vw,6rem);color:var(--amber);letter-spacing:.05em;line-height:1}
.kv-error h1{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:600;letter-spacing:-.02em;margin:18px 0 12px}
.kv-error p{color:var(--ink-dim);max-width:44ch;margin:0 auto 28px}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .kv-foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .kv-hero-grid{grid-template-columns:1fr;gap:40px}
  .kv-two{grid-template-columns:1fr;gap:32px}
  .kv-states{grid-template-columns:repeat(2,1fr)}
  .kv-tiles{grid-template-columns:repeat(2,1fr)}
  .kv-cards{grid-template-columns:1fr}
  .kv-team{grid-template-columns:1fr}
  .kv-meta-strip{grid-template-columns:1fr}
  .kv-links{display:none}
  .kv-menu-btn{display:inline-flex}
}
@media(max-width:520px){
  .kv-wrap{padding:0 18px}
  .kv-states{grid-template-columns:1fr}
  .kv-tiles{grid-template-columns:1fr}
  .kv-foot-grid{grid-template-columns:1fr}
  .kv-cta-band{padding:40px 22px}
  .kv-form-wrap{padding:22px}
  .kv-sp-legend{flex-wrap:wrap;gap:14px}
  .kv-section{padding:52px 0}
  .kv-btn{width:100%;justify-content:center}
  .kv-cta-row{width:100%}
  .kv-wi-nav{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
