/* =========================================================================
   Awa AI Works / 阿波AIワークス — corporate site
   Design tokens carried over from the investor-demo build; components are
   reworked for a customer-acquisition site (services/industries/works/
   company/contact) plus a lower-key "vision" (investor) page.
   ========================================================================= */

:root{
  --indigo-950:#102A43;
  --indigo-800:#174A72;
  --indigo-600:#246B8E;
  --indigo-100:#D9EAF2;
  --cream:#F7F4EC;
  --ink:#1D252C;
  --gold:#C69A35;
  --sky:#8FCBE0;
  --white:#FFFFFF;

  --bg:              var(--cream);
  --bg-alt:          var(--indigo-100);
  --bg-deep:         var(--indigo-950);
  --bg-deep-2:       #0c2136;
  --surface:         var(--white);
  --text:            var(--ink);
  --text-soft:       #4d5761;
  --text-on-deep:    var(--cream);
  --text-on-deep-soft: #b9c8d6;
  --accent:          var(--indigo-800);
  --accent-strong:   var(--indigo-600);
  --gold-accent:     var(--gold);
  --sky-accent:      var(--sky);
  --line:            rgba(29,37,44,.12);
  --line-on-deep:    rgba(247,244,236,.18);
  --good: #2f7a5c;
  --good-soft: #e1efe8;
  --warn: #a5631a;
  --warn-soft: #f3e3cf;
  --shadow-soft: 0 1px 2px rgba(16,42,67,.06), 0 12px 32px -16px rgba(16,42,67,.22);
  --shadow-deep: 0 20px 60px -24px rgba(0,0,0,.6);

  --font-jp: "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", sans-serif;
  --font-display: "Zen Kaku Gothic New", var(--font-jp);
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --fs-100: .8125rem;
  --fs-200: .9375rem;
  --fs-300: 1.0625rem;
  --fs-400: 1.25rem;
  --fs-500: 1.625rem;
  --fs-600: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);
  --fs-700: clamp(2.2rem, 1.6rem + 2.6vw, 3.4rem);
  --fs-800: clamp(1.8rem, 1.3rem + 2vw, 2.75rem);

  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --space-6: 5.5rem;

  --radius-s: 8px;
  --radius-m: 14px;
  --radius-l: 22px;
  --content-w: 1180px;
  --content-w-narrow: 760px;

  --ease: cubic-bezier(.22,.7,.2,1);
  color-scheme: light;
}

[hidden]{ display:none !important; }
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--font-jp); font-size:var(--fs-300); line-height:1.9;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,video{ max-width:100%; display:block; }
h1,h2,h3{ font-family:var(--font-display); font-weight:700; line-height:1.4; margin:0; text-wrap:balance; }
p{ margin:0; }
a{ color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
button{ font:inherit; }

.skip-link{ position:absolute; left:-999px; top:0; z-index:200; background:var(--indigo-950); color:var(--cream); padding:.75rem 1.25rem; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }
:focus-visible{ outline:2px solid var(--gold-accent); outline-offset:3px; }

/* ---------------------------------------------------------------- header */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem clamp(1.25rem,4vw,3rem);
  background:rgba(247,244,236,.92); backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line);
}
.site-header.on-dark-hero{ background:linear-gradient(to bottom, rgba(16,42,67,.55), transparent); box-shadow:none; }
.site-header.on-dark-hero.is-scrolled{ background:rgba(247,244,236,.92); backdrop-filter:blur(10px); box-shadow:0 1px 0 var(--line); }
.brand-mark{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--indigo-950); }
.site-header.on-dark-hero:not(.is-scrolled) .brand-mark{ color:var(--text-on-deep); }
.brand-glyph{ font-family:var(--font-display); font-weight:900; font-size:1.4rem; line-height:1; width:2.1rem; height:2.1rem; border-radius:7px; display:grid; place-items:center; background:var(--indigo-950); color:var(--cream); flex:none; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; font-family:var(--font-display); }
.brand-text > span:first-child{ font-weight:700; font-size:.95rem; letter-spacing:.02em; }
.brand-text-ja{ font-size:.72rem; opacity:.8; }
.header-nav{ display:flex; align-items:center; gap:clamp(.8rem,1.6vw,1.6rem); font-size:var(--fs-200); }
.header-nav a{ text-decoration:none; color:var(--text); opacity:.85; }
.site-header.on-dark-hero:not(.is-scrolled) .header-nav a:not(.header-cta){ color:var(--text-on-deep); }
.header-nav a[aria-current="page"]{ opacity:1; font-weight:700; }
.header-nav a:hover{ opacity:1; }
.header-cta{ padding:.5rem 1.1rem; border-radius:999px; background:var(--gold-accent); color:var(--indigo-950) !important; font-weight:700; opacity:1 !important; }
.header-x{ display:flex; align-items:center; }
.header-x svg{ width:1.1rem; height:1.1rem; }
@media (max-width:820px){ .header-nav a:not(.header-cta):not(.header-x){ display:none; } }

/* ---------------------------------------------------------------- layout */
.section{ position:relative; padding:var(--space-6) 0; overflow:hidden; }
.section-tight{ padding:var(--space-4) 0; }
.section-inner{ max-width:var(--content-w); margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem); position:relative; z-index:2; }
.section-inner-narrow{ max-width:var(--content-w-narrow); }
.section-alt{ background:var(--bg-alt); }
.section-deep{ background:var(--bg-deep); color:var(--text-on-deep); }
.on-deep{ color:var(--text-on-deep); }

.eyebrow{ font-family:var(--font-mono); font-size:var(--fs-100); letter-spacing:.16em; text-transform:uppercase; color:var(--accent-strong); margin:0 0 1rem; display:flex; align-items:center; gap:.7rem; }
.eyebrow::before{ content:""; width:26px; height:1px; background:currentColor; opacity:.5; }
.eyebrow-on-deep{ color:var(--sky-accent); }
.section-title{ font-size:var(--fs-600); margin-bottom:1.1rem; max-width:26ch; }
.section-lede{ font-size:var(--fs-400); color:var(--text-soft); max-width:48ch; margin-bottom:var(--space-4); }
.section-lede.on-deep{ color:var(--text-on-deep-soft); }
.fine-print{ font-size:var(--fs-100); color:var(--text-soft); margin-top:var(--space-3); max-width:64ch; }
.section-media{ position:absolute; inset:0; z-index:0; }
.bg-video{ width:100%; height:100%; object-fit:cover; }
.section-scrim{ position:absolute; inset:0; }
.section-scrim-deep{ background:linear-gradient(180deg, rgba(12,33,54,.55) 0%, rgba(12,33,54,.82) 55%, rgba(12,33,54,.94) 100%); }

/* ---------------------------------------------------------------- buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.9rem 1.8rem; border-radius:999px; text-decoration:none; font-weight:700; font-size:var(--fs-200); transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease); border:1px solid transparent; cursor:pointer; }
.btn-primary{ background:var(--gold-accent); color:var(--indigo-950); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(198,154,53,.55); }
.btn-secondary{ background:var(--indigo-950); color:var(--cream); }
.btn-secondary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(16,42,67,.4); }
.btn-ghost{ background:transparent; color:var(--indigo-950); border-color:var(--line); }
.btn-ghost:hover{ background:var(--bg-alt); }
.btn-ghost.on-deep{ color:var(--text-on-deep); border-color:rgba(247,244,236,.5); }
.btn-ghost.on-deep:hover{ background:rgba(247,244,236,.1); }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }
.btn-row{ display:flex; gap:1rem; flex-wrap:wrap; }

/* ---------------------------------------------------------------- hero (home) */
.hero{ position:relative; min-height:92svh; display:flex; flex-direction:column; justify-content:flex-end; color:var(--text-on-deep); background:var(--bg-deep); }
.hero-media{ position:absolute; inset:0; }
.hero-video{ width:100%; height:100%; object-fit:cover; }
.hero-fallback{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(12,33,54,.92) 0%, rgba(12,33,54,.55) 42%, rgba(12,33,54,.35) 100%); }
.hero-content{ position:relative; z-index:2; max-width:var(--content-w); margin:0 auto; padding:7rem clamp(1.25rem,4vw,3rem) var(--space-5); width:100%; }
.hero-copy-main{ font-size:var(--fs-700); font-weight:700; margin-bottom:1.1rem; max-width:18ch; }
.hero-copy-sub{ font-size:var(--fs-400); color:var(--text-on-deep-soft); margin-bottom:2.2rem; max-width:52ch; }
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.reveal-line{ opacity:0; transform:translateY(14px); animation:revealLine .8s var(--ease) forwards; animation-delay:calc(var(--reveal-i, 0) * 110ms + 150ms); }
@keyframes revealLine{ to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .reveal-line{ opacity:1; transform:none; animation:none; } }

/* ---------------------------------------------------------- sub-page hero */
.page-hero{ background:var(--bg-deep); color:var(--text-on-deep); padding:8.5rem 0 var(--space-4); position:relative; overflow:hidden; }
.page-hero .section-inner{ position:relative; z-index:2; }
.page-hero-title{ font-size:var(--fs-700); max-width:20ch; }
.page-hero-lede{ font-size:var(--fs-400); color:var(--text-on-deep-soft); max-width:52ch; margin-top:1rem; }
.breadcrumb{ display:flex; gap:.5rem; font-size:var(--fs-100); color:var(--text-on-deep-soft); margin-bottom:1.5rem; font-family:var(--font-mono); }
.breadcrumb a{ text-decoration:none; color:var(--sky-accent); }
.breadcrumb span[aria-hidden]{ opacity:.5; }

/* ---------------------------------------------------------- scroll reveal */
.reveal-up{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-up.in-view{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal-up{ opacity:1; transform:none; transition:none; } }

/* ---------------------------------------------------------------- cards */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:var(--space-4); }
.card-grid-2{ grid-template-columns:repeat(2,1fr); }
.card-grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .card-grid, .card-grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .card-grid, .card-grid-2, .card-grid-4{ grid-template-columns:1fr; } }

.challenge-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:1.6rem; box-shadow:var(--shadow-soft); }
.challenge-no{ font-family:var(--font-mono); color:var(--sky-accent); background:var(--indigo-950); display:inline-flex; padding:.2rem .55rem; border-radius:5px; font-size:var(--fs-100); margin-bottom:.9rem; }
.challenge-card h3{ font-size:var(--fs-300); margin-bottom:.5rem; }
.challenge-card p{ color:var(--text-soft); font-size:var(--fs-200); }

.strength-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:1.7rem; box-shadow:var(--shadow-soft); }
.strength-card .num{ font-family:var(--font-mono); color:var(--gold-accent); font-size:var(--fs-200); display:block; margin-bottom:.7rem; }
.strength-card h3{ font-size:var(--fs-300); margin-bottom:.6rem; }
.strength-card p{ color:var(--text-soft); font-size:var(--fs-200); }

/* -------------------------------------------------------------- callout */
.callout{ font-family:var(--font-display); font-size:var(--fs-500); font-weight:700; line-height:1.6; color:var(--indigo-950); border-left:3px solid var(--gold-accent); padding:.4rem 0 .4rem 1.5rem; max-width:38ch; }

/* -------------------------------------------------------------- stepper */
.stepper{ display:flex; flex-direction:column; gap:0; }
.step{ display:flex; gap:1.4rem; padding:1.1rem 0; border-top:1px solid var(--line); }
.step:last-child{ border-bottom:1px solid var(--line); }
.step-no{ flex:none; width:2.4rem; height:2.4rem; border-radius:50%; background:var(--indigo-950); color:var(--cream); display:grid; place-items:center; font-family:var(--font-mono); font-weight:600; }
.step h3{ font-size:var(--fs-300); margin-bottom:.25rem; }
.step p{ color:var(--text-soft); font-size:var(--fs-200); }

/* -------------------------------------------------------------- services */
.service-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:var(--space-2); }
@media (max-width:960px){ .service-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .service-grid{ grid-template-columns:1fr; } }
.service-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:1.6rem; display:flex; flex-direction:column; gap:.8rem; box-shadow:var(--shadow-soft); }
.service-head h3{ font-size:var(--fs-350, var(--fs-300)); font-size:1.15rem; }
.service-card p{ color:var(--text-soft); font-size:var(--fs-200); flex:1; }
.service-price{ font-family:var(--font-mono); color:var(--indigo-800); font-weight:600; font-size:var(--fs-200); border-top:1px solid var(--line); padding-top:.8rem; }
.service-card .btn{ align-self:flex-start; margin-top:.3rem; }

/* -------------------------------------------------------------- tabs */
.tabs{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-soft); }
.tablist{ display:flex; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.tab{ flex:1; min-width:140px; padding:1rem .8rem; background:none; border:none; cursor:pointer; font-weight:700; font-size:var(--fs-200); color:var(--text-soft); border-bottom:3px solid transparent; transition:color .2s, border-color .2s, background .2s; }
.tab[aria-selected="true"]{ color:var(--indigo-950); border-color:var(--gold-accent); background:var(--bg-alt); }
.tab:hover{ color:var(--indigo-950); }
.tabpanel{ padding:2rem; }
.usecase-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; }
@media (max-width:640px){ .usecase-list{ grid-template-columns:1fr 1fr; } }
.usecase-list li{ background:var(--bg-alt); border-radius:var(--radius-s); padding:.9rem 1rem; font-size:var(--fs-200); font-weight:500; border-left:3px solid var(--indigo-600); }

/* -------------------------------------------------------------- FAQ */
.faq-list{ display:flex; flex-direction:column; gap:.75rem; }
.faq-item{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; }
.faq-question{ width:100%; text-align:left; background:none; border:none; padding:1.2rem 1.4rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; cursor:pointer; font-weight:700; font-size:var(--fs-300); }
.faq-question .icon{ flex:none; width:1.4rem; height:1.4rem; position:relative; }
.faq-question .icon::before, .faq-question .icon::after{ content:""; position:absolute; background:var(--indigo-800); border-radius:2px; transition:transform .25s var(--ease); }
.faq-question .icon::before{ width:100%; height:2px; top:50%; left:0; transform:translateY(-50%); }
.faq-question .icon::after{ width:2px; height:100%; left:50%; top:0; transform:translateX(-50%); }
.faq-item[data-open="true"] .icon::after{ transform:translateX(-50%) scaleY(0); }
.faq-answer{ padding:0 1.4rem; max-height:0; overflow:hidden; transition:max-height .3s var(--ease), padding .3s var(--ease); color:var(--text-soft); font-size:var(--fs-200); }
.faq-item[data-open="true"] .faq-answer{ padding:0 1.4rem 1.3rem; max-height:400px; }

/* -------------------------------------------------------------- CIVILINK / works */
.status-badge{ display:inline-flex; align-items:center; gap:.4rem; font-family:var(--font-mono); font-size:var(--fs-100); font-weight:600; padding:.35rem .8rem; border-radius:999px; }
.status-badge.mvp{ background:var(--warn-soft); color:var(--warn); }
.status-badge.done{ background:var(--good-soft); color:var(--good); }
.work-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l); padding:2rem; box-shadow:var(--shadow-soft); margin-bottom:var(--space-3); }
.work-card-head{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.work-card-head h3{ font-size:var(--fs-500); }
.feature-columns{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-top:1.5rem; }
@media (max-width:720px){ .feature-columns{ grid-template-columns:1fr; } }
.feature-columns h4{ font-family:var(--font-mono); font-size:var(--fs-100); text-transform:uppercase; letter-spacing:.08em; color:var(--text-soft); margin-bottom:.9rem; }
.feature-list{ display:flex; flex-direction:column; gap:.55rem; }
.feature-list li{ font-size:var(--fs-200); padding-left:1.3rem; position:relative; }
.feature-list.done li::before{ content:"✓"; position:absolute; left:0; color:var(--good); font-weight:700; }
.feature-list.todo li::before{ content:"—"; position:absolute; left:0; color:var(--text-soft); }
.work-note{ background:var(--bg-alt); border-radius:var(--radius-s); padding:1rem 1.2rem; font-size:var(--fs-200); margin-top:1.5rem; }
.work-card-soon{ border-style:dashed; opacity:.8; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--text-soft); min-height:140px; font-size:var(--fs-200); }

/* -------------------------------------------------------------- company page */
.principle-list{ display:flex; flex-direction:column; gap:1.4rem; }
.principle-item{ display:flex; gap:1.2rem; }
.principle-item .mark{ flex:none; width:2rem; height:2rem; border-radius:50%; background:var(--indigo-100); color:var(--indigo-800); display:grid; place-items:center; font-family:var(--font-mono); font-weight:700; font-size:var(--fs-100); }
.principle-item p{ color:var(--text-soft); }

/* -------------------------------------------------------------- funnel CTA band */
.cta-band{ background:var(--bg-deep); color:var(--text-on-deep); text-align:center; padding:var(--space-5) 0; }
.cta-band h2{ font-size:var(--fs-600); margin-bottom:1rem; }
.cta-band p{ color:var(--text-on-deep-soft); max-width:44ch; margin:0 auto 2rem; }

/* -------------------------------------------------------------- contact */
.section-contact{ background:var(--bg-alt); }
.contact-form{ display:flex; flex-direction:column; gap:1.4rem; margin-top:var(--space-3); }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.purpose-group{ border:none; padding:0; margin:0; }
.purpose-group legend{ font-weight:700; margin-bottom:.8rem; font-size:var(--fs-200); }
.purpose-options{ display:flex; flex-wrap:wrap; gap:.6rem; }
.purpose-chip{ position:relative; }
.purpose-chip input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.purpose-chip span{ display:inline-flex; padding:.6rem 1.1rem; border-radius:999px; background:var(--surface); border:1px solid var(--line); font-size:var(--fs-200); cursor:pointer; transition:background .2s, border-color .2s, color .2s; }
.purpose-chip input:checked + span{ background:var(--indigo-950); border-color:var(--indigo-950); color:var(--cream); }
.purpose-chip input:focus-visible + span{ outline:2px solid var(--gold-accent); outline-offset:2px; }
.form-row{ display:flex; flex-direction:column; gap:.4rem; }
.form-row label{ font-size:var(--fs-200); font-weight:700; }
.req{ color:var(--indigo-600); font-weight:400; font-size:var(--fs-100); }
.form-row input, .form-row select, .form-row textarea{ font:inherit; padding:.8rem 1rem; border-radius:var(--radius-s); border:1px solid var(--line); background:var(--surface); resize:vertical; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ outline:2px solid var(--indigo-600); outline-offset:1px; border-color:transparent; }
.form-row .error-text{ color:#b3261e; font-size:var(--fs-100); display:none; }
.form-row.has-error input, .form-row.has-error select, .form-row.has-error textarea{ border-color:#b3261e; }
.form-row.has-error .error-text{ display:block; }
.consent-row{ display:flex; align-items:flex-start; gap:.7rem; font-size:var(--fs-200); }
.consent-row input{ margin-top:.3rem; }
.consent-row a{ color:var(--indigo-800); text-decoration:underline; }
.form-status{ font-size:var(--fs-200); border-radius:var(--radius-s); padding:.9rem 1.1rem; }
.form-status.info{ background:var(--surface); border:1px solid var(--line); }
.form-status.success{ background:var(--good-soft); color:var(--good); border:1px solid var(--good); }
.form-status.error{ background:#fbe9e7; color:#b3261e; border:1px solid #b3261e; }
.form-status.pending{ background:var(--warn-soft); color:var(--warn); border:1px solid var(--warn); }
.contact-alt{ margin-top:var(--space-3); padding-top:var(--space-3); border-top:1px solid var(--line); font-size:var(--fs-200); }

/* -------------------------------------------------------------- footer */
.site-footer{ background:var(--bg-deep-2); color:var(--text-on-deep-soft); padding:var(--space-4) clamp(1.25rem,4vw,3rem) var(--space-3); }
.footer-inner{ max-width:var(--content-w); margin:0 auto; display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; padding-bottom:var(--space-3); border-bottom:1px solid var(--line-on-deep); }
.footer-brand{ display:flex; gap:.8rem; align-items:flex-start; }
.footer-brand p{ color:var(--cream); font-weight:700; margin-bottom:.3rem; }
.footer-meta{ color:var(--text-on-deep-soft) !important; font-weight:400 !important; font-size:var(--fs-100); }
.footer-nav{ display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; }
.footer-nav a{ font-size:var(--fs-200); text-decoration:none; color:var(--text-on-deep-soft); }
.footer-nav a:hover{ color:var(--cream); }
.footer-social{ display:flex; gap:.8rem; margin-top:1rem; }
.footer-social a{ width:2.1rem; height:2.1rem; border-radius:50%; border:1px solid var(--line-on-deep); display:grid; place-items:center; }
.footer-social svg{ width:1rem; height:1rem; fill:var(--text-on-deep-soft); }
.footer-info p{ font-size:var(--fs-200); margin-bottom:.3rem; }
.footer-vision-link{ font-size:var(--fs-100); opacity:.7; }
.footer-disclaimer{ max-width:var(--content-w); margin:1.4rem auto 0; font-size:var(--fs-100); line-height:1.8; }

/* -------------------------------------------------------------- 404 */
.error-page{ min-height:70svh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:1.5rem; padding:8rem 1.5rem 4rem; }
.error-page .code{ font-family:var(--font-mono); font-size:4rem; color:var(--indigo-950); }

.only-wide{ display:none; }
@media (min-width:640px){ .only-wide{ display:inline; } }

/* =========================================================================
   /vision/ page only — investor-facing components carried over from the
   earlier investor-demo build.
   ========================================================================= */
.ai-console{ background:rgba(9,24,39,.6); border:1px solid var(--line-on-deep); border-radius:var(--radius-m); padding:var(--space-3); margin-bottom:var(--space-4); backdrop-filter:blur(6px); box-shadow:var(--shadow-deep); }
.ai-log{ display:flex; flex-direction:column; gap:.65rem; font-family:var(--font-mono); font-size:var(--fs-200); }
.ai-log li{ position:relative; padding-left:1.7rem; color:var(--text-on-deep-soft); opacity:.25; transition:opacity .5s var(--ease), color .5s var(--ease); }
.ai-log li::before{ content:""; position:absolute; left:0; top:.45em; width:.6rem; height:.6rem; border-radius:2px; border:1px solid var(--sky-accent); background:transparent; transition:background .3s var(--ease), border-color .3s var(--ease); }
.ai-log li.is-active{ opacity:1; color:var(--text-on-deep); }
.ai-log li.is-active::before{ background:var(--gold-accent); border-color:var(--gold-accent); }
.ai-log li.ai-log-final.is-active{ color:var(--gold-accent); font-weight:700; }
@media (prefers-reduced-motion: reduce){ .ai-log li{ opacity:1; color:var(--text-on-deep); } .ai-log li::before{ background:var(--sky-accent); } }

.metric-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-on-deep); border:1px solid var(--line-on-deep); border-radius:var(--radius-m); overflow:hidden; }
.metric-card{ background:rgba(9,24,39,.55); padding:1.5rem 1.1rem; display:flex; flex-direction:column; gap:.5rem; }
.metric-label{ font-size:var(--fs-100); color:var(--text-on-deep-soft); }
.metric-value{ font-family:var(--font-mono); font-size:var(--fs-500); font-weight:600; color:var(--cream); font-variant-numeric:tabular-nums; }
@media (max-width:900px){ .metric-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .metric-grid{ grid-template-columns:1fr; } }

.chart-block{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-l); padding:var(--space-3) var(--space-3) var(--space-2); box-shadow:var(--shadow-soft); margin-bottom:var(--space-3); }
.chart-legend{ display:flex; gap:1.5rem; font-size:var(--fs-200); margin-bottom:1.5rem; }
.chart-legend .dot{ width:.7rem; height:.7rem; border-radius:2px; display:inline-block; margin-right:.4rem; }
.dot-revenue{ background:var(--indigo-800); }
.dot-profit{ background:var(--gold-accent); }
.bar-chart{ display:flex; justify-content:space-around; align-items:flex-end; gap:1.5rem; height:260px; padding:0 .5rem; }
.bar-group{ display:flex; flex-direction:column; align-items:center; gap:.8rem; flex:1; height:100%; justify-content:flex-end; }
.bar-pair{ display:flex; align-items:flex-end; gap:.5rem; height:100%; width:100%; justify-content:center; }
.bar{ width:2.6rem; border-radius:6px 6px 0 0; position:relative; height:var(--h); transition:height 1.1s var(--ease); display:flex; justify-content:center; }
.bar-revenue{ background:linear-gradient(180deg, var(--indigo-600), var(--indigo-950)); }
.bar-profit{ background:linear-gradient(180deg, var(--gold-accent), #97742a); }
.bar-value{ position:absolute; top:-1.6rem; font-family:var(--font-mono); font-size:var(--fs-100); font-weight:600; color:var(--text); white-space:nowrap; }
.bar-period{ font-size:var(--fs-100); color:var(--text-soft); text-align:center; }
.chart-unit{ text-align:right; font-size:var(--fs-100); color:var(--text-soft); }

.mini-stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:var(--space-2); }
@media (max-width:640px){ .mini-stat-row{ grid-template-columns:1fr; } }
.mini-stat{ background:var(--bg-alt); border-radius:var(--radius-m); padding:1.2rem 1.4rem; display:flex; justify-content:space-between; align-items:baseline; }
.mini-stat-label{ font-size:var(--fs-200); color:var(--text-soft); }
.mini-stat-value{ font-family:var(--font-mono); font-size:var(--fs-400); font-weight:700; color:var(--indigo-950); }

.funding-amount{ font-family:var(--font-mono); color:var(--indigo-950); font-size:1.2em; }
.fund-bars{ display:flex; flex-direction:column; gap:1.1rem; margin-bottom:var(--space-2); }
.fund-row{ display:grid; grid-template-columns:14rem 1fr 9rem; align-items:center; gap:1rem; }
@media (max-width:720px){ .fund-row{ grid-template-columns:1fr; gap:.4rem; } .fund-amt{ text-align:left !important; } }
.fund-label{ font-size:var(--fs-200); }
.fund-track{ height:.6rem; background:var(--bg-alt); border-radius:999px; overflow:hidden; }
.fund-fill{ height:100%; width:var(--w); max-width:0; background:linear-gradient(90deg, var(--indigo-600), var(--gold-accent)); border-radius:999px; transition:max-width 1.1s var(--ease); }
.fund-fill.in-view{ max-width:100%; }
.fund-amt{ font-family:var(--font-mono); text-align:right; font-weight:600; }
.fund-amt small{ display:block; color:var(--text-soft); font-weight:400; font-size:var(--fs-100); }

.network-map{ margin:0 0 var(--space-4); }
.network-map-svg{ width:100%; height:auto; }
.map-nodes .node{ fill:var(--sky-accent); }
.map-nodes .node-origin{ fill:var(--gold-accent); }
.node-label{ fill:var(--text-on-deep-soft); font-size:15px; }
.node-label-strong{ fill:var(--cream); font-size:18px; font-weight:700; }
.node-label-soft{ fill:var(--text-on-deep-soft); font-size:13px; }
.map-links path{ stroke-dasharray:6 6; }

.phase-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:var(--space-3); }
@media (max-width:900px){ .phase-grid{ grid-template-columns:1fr; } }
.phase-card{ background:rgba(9,24,39,.55); border:1px solid var(--line-on-deep); border-radius:var(--radius-m); padding:1.6rem; backdrop-filter:blur(6px); }
.phase-tag{ font-family:var(--font-mono); font-size:var(--fs-100); color:var(--gold-accent); letter-spacing:.1em; }
.phase-card h3{ color:var(--text-on-deep); font-size:var(--fs-400); margin:.5rem 0 .9rem; }
.phase-card ul{ display:flex; flex-direction:column; gap:.5rem; }
.phase-card li{ color:var(--text-on-deep-soft); font-size:var(--fs-200); padding-left:1rem; position:relative; }
.phase-card li::before{ content:"—"; position:absolute; left:0; color:var(--sky-accent); }
.growth-story{ text-align:center; font-family:var(--font-display); font-size:var(--fs-400); font-weight:700; }
