/*!******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/components/charts/charts.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************/
/* ── Chart Tooltip ── */
.chart-tooltip {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--card, #fff);
  border: 1px solid var(--line, #dde2ed);
  border-radius: 2px;
  box-shadow: var(--sh, 0 2px 8px rgba(0,0,0,0.08));
  font-size: var(--text-sm, 12px);
  color: var(--t1, #0d1526);
  white-space: nowrap;
  pointer-events: none;
  z-index: 10;
}
.chart-tooltip-swatch {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.chart-tooltip-label {
  color: var(--t2, #4b5670);
  font-weight: 600;
}
.chart-tooltip-value {
  font-weight: 700;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* ── Progress Bars ── */
.pb-list { display: flex; flex-direction: column; gap: 10px; }
.pb-row {}
.pb-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
  font-size: var(--text-sm, 12px);
}
.pb-label { color: var(--t2, #4b5670); font-weight: 600; }
.pb-value { font-weight: 700; font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }
.pb-track {
  height: 7px;
  background: rgba(43,98,227,0.08);
  border-radius: 999px;
  overflow: hidden;
}
.pb-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.9s ease;
}
@media (prefers-reduced-motion: reduce) {
  .pb-fill { transition: none; }
}

/* ── Market sizing rows ── */
.mkt-val { font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }

/* ── Radar animation ── */
.radar-data-polygon {
  /* Must match RADAR_CX/CY (chartTokens.js) so the scale-from-centre grow animation
     originates at the actual chart centre, not the geometric middle of the canvas. */
  transform-origin: 210px 150px;
}
.radar-anim .radar-data-polygon {
  animation: radarGrow 0.8s ease-out both;
}
@keyframes radarGrow {
  from { transform: scale(0); opacity: 0; }
  to   { transform: scale(1); opacity: 0.9; }
}
@media (prefers-reduced-motion: reduce) {
  .radar-anim .radar-data-polygon { animation: none; opacity: 0.9; }
}

/* ── Score ring badge — rebrand ── */
.score-badge {
  color: var(--accent-hot, #5b8aee) !important;
  background: rgba(91,138,238,0.15) !important;
  border-color: rgba(91,138,238,0.3) !important;
}

/* ── ProfitWaterfall ── */
.pw-chart { display: flex; flex-direction: column; gap: 8px; }
.pw-row {
  display: grid;
  grid-template-columns: 110px 1fr 44px;
  align-items: center;
  gap: 8px;
}
.pw-label { font-size: var(--text-sm, 12px); font-weight: 600; color: var(--t2, #4b5670); }
.pw-label-baseline { color: var(--t3, #7a8399); font-weight: 500; }
.pw-track {
  height: 9px;
  background: rgba(43,98,227,0.07);
  border-radius: 999px;
  overflow: hidden;
}
.pw-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.85s cubic-bezier(.4,0,.2,1) var(--pw-delay, 0s);
}
.pw-fill-baseline { background: rgba(43,98,227,0.18); }
.pw-val {
  font-size: var(--text-sm, 12px);
  font-weight: 700;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.pw-val-baseline { color: var(--t3, #7a8399); }
@media (prefers-reduced-motion: reduce) { .pw-fill { transition: none; } }

/* ── MarketFunnel ── */
.mf-wrap { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.mf-legend { display: flex; flex-direction: column; gap: 10px; }
.mf-legend-row { display: flex; align-items: center; gap: 8px; }
.mf-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.mf-legend-label { font-size: var(--text-xs, 11px); color: var(--t3, #7a8399); font-weight: 500; }
.mf-legend-val { font-size: var(--text-sm, 12px); font-weight: 700; color: var(--t1, #0d1526); font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }

/* ── ValuationBridge ── */
.vb-bridge { display: flex; align-items: stretch; gap: 6px; flex-wrap: wrap; }
.vb-card { flex: 1 1; min-width: 80px; padding: 12px 10px; border-radius: 8px; text-align: center; }
.vb-card-last { background: var(--bg2, rgba(0,0,0,0.03)); border: 1px solid var(--line, #dde2ed); }
.vb-card-raise { background: rgba(22,163,74,0.07); border: 1px solid rgba(22,163,74,0.24); }
.vb-card-target { background: rgba(43,98,227,0.05); border: 1.5px dashed rgba(43,98,227,0.35); }
.vb-card-val { font-size: var(--text-xl, 18px); font-weight: 700; font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; line-height: 1.2; }
.vb-card-label { font-size: var(--text-xs, 11px); color: var(--t3, #7a8399); margin-top: 3px; }
.vb-connector { display: flex; align-items: center; font-size: 18px; font-weight: 700; color: var(--t4, #a0aab8); flex-shrink: 0; padding: 0 2px; }
.vb-fallback { display: flex; flex-direction: column; gap: 8px; }
.vb-stack-track { height: 10px; border-radius: 999px; overflow: hidden; display: flex; background: rgba(220,38,38,0.12); }
.vb-bar-cash { background: #16a34a; transition: width 0.9s ease; }
.vb-bar-debt { background: rgba(220,38,38,0.45); }
.vb-stack-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: var(--text-sm, 12px); }
.vb-legend-item { display: flex; align-items: center; gap: 5px; }
.vb-legend-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
@media (prefers-reduced-motion: reduce) { .vb-bar-cash { transition: none; } }

/* ── Finance V2 report charts ── */
.financial-chart { min-width: 0; }
.financial-chart svg { width: 100%; height: auto; display: block; overflow: visible; }
.financial-chart-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 8px; font-size: var(--text-xs, 11px); color: var(--t2, #4b5670); }
.financial-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.financial-chart-legend i { width: 8px; height: 8px; border-radius: 50%; }
.financial-kpi-row, .financial-health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: 10px; }
.financial-kpi-row { margin-bottom: 20px; }
.financial-metric-card { padding: 13px 14px; border: 1px solid var(--line, #dde2ed); border-radius: 8px; background: var(--card, #fff); }
.financial-metric-value { color: var(--t1, #0d1526); font-size: var(--text-xl, 18px); font-weight: 750; font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }
.financial-metric-value[data-tone="positive"] { color: #16b364; }
.financial-metric-value[data-tone="negative"] { color: #f04438; }
.financial-metric-value[data-tone="warning"] { color: #f59e0b; }
.financial-metric-label { color: var(--t2, #4b5670); font-size: var(--text-sm, 12px); font-weight: 600; margin-top: 3px; }
.financial-metric-note { color: var(--t3, #7a8399); font-size: var(--text-xs, 11px); margin-top: 3px; }
@media (max-width: 640px) { .financial-kpi-row, .financial-health-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.balance-composition { position: relative; display: flex; flex-direction: column; gap: 9px; padding-bottom: 13px; }
.balance-row { display: grid; grid-template-columns: 82px 1fr; align-items: center; gap: 9px; color: var(--t2, #4b5670); font-size: var(--text-xs, 11px); font-weight: 600; }
.balance-track { position: relative; height: 18px; border-radius: 3px; background: rgba(43,98,227,.05); }
.balance-track::after { content:""; position:absolute; left:50%; top:0; bottom:0; border-left:1px solid var(--t4, #a0aab8); }
.balance-track i { position: absolute; top: 4px; display: block; height: 10px; border-radius: 2px; min-width: 2px; }
.balance-track i[data-direction="left"] { transform: translateX(-100%); }
.balance-track b { position:absolute; right:5px; top:1px; color:var(--t2, #4b5670); font-size:10px; font-feature-settings:"tnum"; font-variant-numeric:tabular-nums; z-index:1; }
.balance-zero { position: absolute; left: calc(82px + 9px + (100% - 91px)/2); bottom: -1px; font-size: 9px; }

/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/styles/rvc-base.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************/
/* ═══════════════════════════════════════════════
   RVC BASE — Shared styles across all pages
   Performance-first: no backdrop-filter on cards,
   GPU-composited transforms only
═══════════════════════════════════════════════ */

/* ── Tokens ── */
:root{
  /* Self-hosted Latin families via next/font (app/fonts.js); CJK + system fonts
     stay as the fallback chain (next/font can't subset the large CJK Noto SC). */
  --font-sans:var(--font-plex-sans),'IBM Plex Sans','PingFang SC','Noto Sans SC','Microsoft YaHei',system-ui,-apple-system,sans-serif;
  --font-mono:var(--font-plex-mono),'IBM Plex Mono','Noto Sans Mono','SF Mono','Roboto Mono',ui-monospace,monospace;
  --font-hero:var(--font-spectral),'Spectral','Noto Sans SC','PingFang SC','Microsoft YaHei',ui-serif,Georgia,serif;
  /* Editorial display serif — Latin numerals only (security-section 01–05 indices) */
  --font-display:var(--font-playfair),'Playfair Display',ui-serif,Georgia,serif;

  /* Type scale */
  --text-2xs:8px;
  --text-sm:10px;
  --text-sm:11px;
  --text-base:12px;
  --text-md:13px;
  --text-lg:14px;
  --text-xl:16px;
  --text-2xl:20px;
  --text-3xl:24px;
  --text-4xl:32px;
  --text-5xl:44px;
  --text-6xl:64px;
  --text-fluid-xs:clamp(22px,2.4vw,32px);
  --text-fluid-sm:clamp(26px,3vw,42px);
  --text-fluid-sm-alt:clamp(26px,3.2vw,42px);
  --text-fluid-md:clamp(34px,4.4vw,56px);
  --text-fluid-md-alt:clamp(34px,4.8vw,60px);
  --text-fluid-lg:clamp(68px,20vw,110px);
  --text-fluid-xl:clamp(96px,16vw,180px);
  --text-fluid-2xl:clamp(160px,12vw,210px);
  --text-fluid-3xl:clamp(190px,13vw,240px);

  /* One accent + documented alphas (names kept so inline var() usage flips automatically) */
  --blue:#2b62e3; --accent:#2b62e3;
  --blue-d:#1a4bc7; --accent-deep:#1a4bc7;
  --accent-hot:#5b8aee;
  --blue-s:rgba(43,98,227,0.15);
  --accent-soft:rgba(43,98,227,0.15);
  --accent-border:rgba(43,98,227,0.22);
  --accent-glow-soft:rgba(43,98,227,0.18);
  --cyan:#5b8aee;            /* legacy alias — no second hue, resolves into accent family */

  /* Dark surface ladder (no pure black/white) */
  --bg:#08090c; --bg-elev:#0f1219; --bg-elev-2:#151a24;
  --card:#0f1219;
  --line:#1c2230; --line-soft:#131722;
  --bl:rgba(43,98,227,0.11); --bm:rgba(43,98,227,0.22);

  --t1:#e8edf5; --t2:#8b95ab; --t3:#5b667d; --t4:#454f63;

  /* Genuine state only */
  --ok:#4ade80; --warn:#f59e0b; --danger:#ff5e5e;

  --r:2px;
  --sh:0 1px 2px rgba(0,0,0,.35),0 18px 40px -24px rgba(0,0,0,.6);
}

/* ── Light theme overrides ── */
.light-theme{
  --bg:#f5f7fb; --bg-elev:#ffffff; --bg-elev-2:#eef1f7;
  --card:#ffffff;
  --line:#dde2ed; --line-soft:#eaecf4;
  /* One blue family on light pages (matches intake / report chrome). */
  --blue:#0B6FFB; --accent:#0B6FFB;
  --blue-d:#0958d9; --accent-deep:#0958d9;
  --accent-hot:#3d8bfd;
  --blue-s:rgba(11,111,251,0.10);
  --accent-soft:rgba(11,111,251,0.08);
  --accent-border:rgba(11,111,251,0.28);
  --accent-glow-soft:rgba(11,111,251,0.14);
  --cyan:#3d8bfd;
  --bl:rgba(11,111,251,0.12); --bm:rgba(11,111,251,0.22);
  --t1:#0d1526; --t2:#4b5670; --t3:#7a8399; --t4:#a0aab8;
  --ok:#16a34a; --warn:#d97706; --danger:#dc2626;
  --sh:0 1px 3px rgba(0,0,0,.06),0 6px 16px -8px rgba(0,0,0,.08);
  background:var(--bg);
  color:var(--t1);
  min-height:100vh;
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* clip horizontal overflow at the root too — body's overflow-x:hidden doesn't
   govern the html box, so full-bleed 100vw strips would otherwise leak a
   page-level horizontal scrollbar. `clip` avoids creating a scroll container. */
html{scroll-behavior:smooth;overflow-x:clip;}
body{
  font-family:var(--font-sans);
  font-weight:400;
  background:var(--bg); color:var(--t1);
  /* overflow-x:hidden would make body a scroll container while the window
     does the actual scrolling — silently killing every position:sticky
     descendant (step nav, live preview, report nav). clip clips without
     creating a scroll container. */
  overflow-x:clip; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-feature-settings:"tnum";
  font-variant-numeric:tabular-nums;
}
a{text-decoration:none; color:inherit;}
button{cursor:pointer; font-family:inherit;}
input,select,textarea{font-family:inherit;border-radius:0;}
/* Global form-control shape: keep current and future text inputs square across
   native controls plus Ant Design inputs/selects/numeric fields. */
.ant-input,
.ant-input-affix-wrapper,
.ant-input-number,
.ant-input-number-affix-wrapper,
.ant-input-number-group-addon,
.ant-select,
.ant-select-selector,
.ant-select-selection-search,
.ant-select-selection-item,
.ant-select-selection-placeholder,
textarea.ant-input {
  border-radius:0!important;
}
h1,h2,h3,h4,.sec-ttl,.logo-n{font-weight:700;}
p,li,.sec-sub{font-weight:400;}
svg{display:block;}

/* Earmark recipe — every mono surface reads like telemetry */
.kpi-val,.sec-ey,.tag,.sb-title,.logo-s,.footer-l,.footer-r,
.btn-sm,.kpi-sub,
.eng-gauge-num,.eng-out-val,.eng-out-pfx,.eng-delta{
  font-variant-numeric:slashed-zero;
  font-feature-settings:"tnum" 1,"lnum" 1,"liga" 0,"zero" 1, "zero";
}

/* ── Background mesh (lightweight) ── */
.bg-mesh{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;
  background-image:
    linear-gradient(to right,rgba(43,98,227,0.06) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(43,98,227,0.06) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000,transparent 75%);
  mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000,transparent 75%);}
.orb{display:none;}

/* ── Layout ── */
.page{position:relative;z-index:1;}
.wrap{max-width:1440px;margin:0 auto;padding:0 56px;}

/* ── Header ── */
header{position:sticky;top:0;z-index:200;height:76px;
  background:rgba(8,9,12,0.88);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;}
.hrow{display:flex;align-items:center;width:100%;}

.logo{display:flex;align-items:center;gap:12px;flex-shrink:0;margin-right:40px;}
.logo-box{width:40px;height:40px;border-radius:2px;
  background:var(--bg-elev-2);border:1px solid var(--accent-border);
  display:flex;align-items:center;justify-content:center;
  font-size: var(--text-md);font-weight:700;color:var(--accent);letter-spacing:-0.5px;}
.logo-t{display:flex;flex-direction:column;}
.logo-n{font-size: var(--text-md);font-weight:700;color:var(--t1);letter-spacing:-0.3px;line-height:1.1;}
.logo-s{font-size: var(--text-2xs);font-weight:500;color:var(--t3);letter-spacing:.07em;text-transform:uppercase;margin-top:2px;}

nav{display:flex;align-items:center;gap:2px;flex:1 1;}
nav a{position:relative;font-family:var(--font-mono);font-size: var(--text-sm);font-weight:600;color:var(--t2);letter-spacing:.08em;text-transform:uppercase;
  padding:6px 14px;transition:color .18s;white-space:nowrap;}
nav a:hover{color:#e8edf5;}
nav a.active{color:#e8edf5;}
nav a.active::before{content:'';position:absolute;left:4px;top:50%;
  width:4px;height:4px;margin-top:-2px;background:var(--accent);
  box-shadow:0 0 8px var(--accent-glow-soft);}
nav a:focus-visible,
.mob-nav a:focus-visible,
.btn-primary:focus-visible,
.btn-ghost:focus-visible,
.btn-blue:focus-visible,
.btn-outline:focus-visible,
button:focus-visible{
  outline:2px solid var(--accent-border);
  outline-offset:3px;
}

/* Hamburger for mobile */
.ham{
  display:none;flex-direction:column;gap:5px;padding:8px;
  background:none;border:none;margin-left:auto;
}
.ham span{width:22px;height:2px;background:var(--t2);border-radius:2px;
  transition:transform .25s,opacity .25s;}
.ham.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.ham.open span:nth-child(2){opacity:0;}
.ham.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Mobile nav */
.mob-nav{
  display:none;
  position:fixed;top:76px;left:0;right:0;
  background:rgba(8,9,12,0.92);
  border-bottom:1px solid var(--line);
  padding:16px 24px 20px;
  flex-direction:column;gap:4px;z-index:199;
}
.mob-nav.open{display:flex;}
.mob-nav a{
  font-family:var(--font-mono);font-size: var(--text-base);font-weight:600;color:var(--t2);letter-spacing:.06em;text-transform:uppercase;
  padding:10px 14px;border-radius:999px;
  transition:color .18s,background .18s,border-color .18s,box-shadow .18s,transform .18s;
}
.mob-nav a:hover{color:#e8edf5;background:var(--bg-elev-2);}

.hdr-acts{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.btn-ghost{font-size: var(--text-md);font-weight:500;color:var(--t2);padding:7px 15px;
  border-radius:2px;border:none;background:transparent;transition:all .18s;}
.btn-ghost:hover{background:var(--bg-elev-2);color:#e8edf5;}

/* Neutral CTA — header "Start Diagnosis". The .bc-ghost variant of
   <BookConsultationButton> shares this exact look so the header
   "Book a Consultation" on inner pages matches "Start Diagnosis". */
.btn-primary,
.bc-cta.bc-ghost{font-size: var(--text-md);font-weight:600;color:#e8edf5;
  padding:8px 20px;border-radius:2px;border:1px solid rgba(232,237,245,0.28);
  background:transparent;position:relative;letter-spacing:.02em;
  transition:background .35s ease,letter-spacing .35s ease,border-color .18s;}
.btn-primary:hover,
.bc-cta.bc-ghost:hover{background:rgba(232,237,245,0.07);border-color:rgba(232,237,245,0.55);letter-spacing:.06em;}

/* ── Cards ── */
.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;
  box-shadow:var(--sh);position:relative;overflow:hidden;
  transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s;}
.card:hover{transform:translateY(-3px);
  box-shadow:0 1px 2px rgba(0,0,0,.35),0 8px 22px -12px rgba(0,0,0,.5),
    0 28px 56px -32px rgba(0,0,0,.55),0 36px 72px -40px rgba(43,98,227,.14);}
.card-inner-glow{display:none;}

/* ── Buttons ── */
/* Primary action — the one filled accent button in the system. Sole bold
   moment in an otherwise ghost-button palette, so it always reads as THE action. */
.btn-blue{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size: var(--text-md);font-weight:600;color:#fff;padding:13px 28px;border-radius:var(--r);
  border:1px solid rgba(91,138,238,0.55);letter-spacing:.02em;overflow:hidden;
  background:linear-gradient(180deg,var(--accent),var(--accent-deep));
  box-shadow:0 1px 0 rgba(255,255,255,0.12) inset,0 10px 28px -14px rgba(43,98,227,0.9);
  transition:background .35s ease,letter-spacing .35s ease,border-color .25s ease,box-shadow .35s ease,transform .25s ease;}
.btn-blue:hover{background:linear-gradient(180deg,var(--accent-hot),var(--accent));
  border-color:rgba(91,138,238,0.85);letter-spacing:.06em;transform:translateY(-1px);
  box-shadow:0 1px 0 rgba(255,255,255,0.18) inset,0 16px 36px -12px rgba(43,98,227,0.95);}
.btn-blue svg{transition:transform .3s cubic-bezier(.22,1,.36,1);}
.btn-blue:hover svg{transform:translateX(2px);}
/* Sheen sweep across the face on hover */
.btn-blue::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,0.22),transparent);
  transform:skewX(-18deg);transition:left .6s ease;}
.btn-blue:hover::after{left:130%;}
@media (prefers-reduced-motion: reduce){
  .btn-blue{transition:background .2s ease,border-color .2s ease;}
  .btn-blue:hover{transform:none;letter-spacing:.02em;}
  .btn-blue::after{display:none;}
  .btn-blue:hover svg{transform:none;}
}

.btn-outline{display:inline-flex;align-items:center;gap:7px;font-size: var(--text-md);font-weight:500;
  color:var(--t2);padding:13px 26px;border-radius:2px;
  border:1px solid var(--line);background:transparent;
  transition:background .28s ease,color .28s ease,border-color .28s ease;}
.btn-outline:hover{background:var(--bg-elev-2);color:var(--t1);border-color:var(--accent-border);}

.btn-sm{font-size: var(--text-md);font-weight:600;color:var(--accent);padding:7px 16px;border-radius:2px;
  border:1px solid var(--accent-border);background:transparent;transition:background .18s,color .18s,border-color .18s;}
/* Keep accent text on hover — #e8edf5 was for dark surfaces and vanishes on light pages. */
.btn-sm:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--bm);}

/* ── Book-a-Consultation CTA (shared <BookConsultationButton> component) ──
   Cohesive accent identity across landing / report / IPO / modules.
   solid = page-level conversion goal · outline = secondary action. */
.bc-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size: var(--text-md);font-weight:600;border-radius:var(--r);padding:13px 24px;
  cursor:pointer;text-decoration:none;letter-spacing:.02em;overflow:hidden;
  transition:background .3s ease,border-color .25s ease,color .25s ease,letter-spacing .35s ease,box-shadow .3s ease,transform .25s ease;}
.bc-cta svg{width:15px;height:15px;flex-shrink:0;transition:transform .3s cubic-bezier(.22,1,.36,1);}
.bc-cta:hover svg{transform:translateY(-1px) scale(1.05);}
.bc-cta.bc-block{display:flex;width:100%;}

/* Outline — secondary action (hero, modules) */
.bc-cta.bc-outline{color:var(--t1);border:1px solid var(--accent-border);
  background:linear-gradient(180deg,rgba(43,98,227,0.10),rgba(43,98,227,0.04));}
.bc-cta.bc-outline:hover{border-color:rgba(43,98,227,0.55);letter-spacing:.05em;transform:translateY(-1px);
  background:linear-gradient(180deg,rgba(43,98,227,0.18),rgba(43,98,227,0.08));
  box-shadow:0 10px 26px -16px rgba(43,98,227,0.9);}

/* Solid — primary conversion (report, IPO) */
.bc-cta.bc-solid{color:#fff;border:1px solid rgba(91,138,238,0.55);
  background:linear-gradient(180deg,var(--accent),var(--accent-deep));
  box-shadow:0 1px 0 rgba(255,255,255,0.12) inset,0 10px 28px -14px rgba(43,98,227,0.9);}
.bc-cta.bc-solid:hover{border-color:rgba(91,138,238,0.85);letter-spacing:.05em;transform:translateY(-1px);
  background:linear-gradient(180deg,var(--accent-hot),var(--accent));
  box-shadow:0 1px 0 rgba(255,255,255,0.18) inset,0 16px 36px -12px rgba(43,98,227,0.95);}

@media (prefers-reduced-motion: reduce){
  .bc-cta{transition:background .2s ease,border-color .2s ease;}
  .bc-cta:hover{transform:none;letter-spacing:.02em;}
  .bc-cta:hover svg{transform:none;}
}

/* ── Horizontally scrollable wrapper for wide data tables on small screens ── */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* ── Tags & Badges ── */
.tag{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);
  font-size: var(--text-sm);font-weight:600;padding:4px 10px;border-radius:2px;letter-spacing:.08em;}
.tag-blue{background:var(--accent-soft);color:var(--accent-hot);}
.tag-green{background:rgba(74,222,128,0.10);color:var(--ok);}
.tag-orange{background:rgba(245,158,11,0.10);color:var(--warn);}
.tag-red{background:rgba(255,94,94,0.10);color:var(--danger);}
.tag-dot{width:5px;height:5px;border-radius:50%;background:currentColor;}

/* ── Section headers ── */
.sec-head{margin-bottom:32px;}
.sec-ey{font-family:var(--font-mono);font-size: var(--text-sm);font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent-hot);margin-bottom:7px;}
.sec-ttl{font-size: var(--text-4xl);font-weight:600;color:var(--t1);letter-spacing:-.02em;line-height:1.18;}
.sec-sub{font-size: var(--text-xl);color:var(--t2);margin-top:8px;line-height:1.65;}

/* ── Scroll reveal ── */
.reveal{opacity:0;transform:translateY(20px);
  transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);}
.reveal.vis{opacity:1;transform:none;}

/* ── Icons ── */
.ico{width:48px;height:48px;border-radius:2px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;background:var(--bg-elev-2);border:1px solid var(--line);transition:all .22s;}
.ico svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:1.9;transition:stroke .22s;}
.card:hover .ico{background:var(--accent-soft);border-color:var(--accent-border);}
.card:hover .ico svg{stroke:var(--accent-hot);}

/* ── Progress bars ── */
.pbar{height:5px;background:var(--line);border-radius:999px;overflow:hidden;}
.pfill{height:100%;background:var(--accent);border-radius:999px;
  transition:width 1.4s cubic-bezier(.22,1,.36,1);}

/* ── Sidebar layout ── */
.sidebar-layout{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start;}
.sidebar{position:sticky;top:92px;background:var(--bg-elev);border:1px solid var(--line);
  border-radius:2px;padding:20px 14px;box-shadow:var(--sh);}
.sb-title{font-family:var(--font-mono);font-size: var(--text-sm);font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--t3);padding:0 8px;margin-bottom:8px;}
.sb-link{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:2px;
  font-size: var(--text-md);font-weight:500;color:var(--t2);transition:color .18s,background .18s;
  border:none;background:none;width:100%;text-align:left;position:relative;}
.sb-link:hover{color:#e8edf5;background:var(--bg-elev-2);}
.sb-link.active{color:#e8edf5;background:var(--bg-elev-2);font-weight:600;}
.sb-link.active::before{content:'';position:absolute;left:0;top:50%;width:2px;height:60%;
  transform:translateY(-50%);background:var(--accent);}
.sb-link svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;}

/* ── KPI numbers ── */
.kpi-val{
  font-family:var(--font-mono);
  font-size: var(--text-5xl);font-weight:600;letter-spacing:-.04em;line-height:1;
  color:#e8edf5;background:none;-webkit-text-fill-color:currentColor;
}
.kpi-lbl{font-size: var(--text-sm);color:var(--t2);font-weight:500;margin-top:5px;}
.kpi-sub{font-size: var(--text-sm);color:var(--t4);margin-top:2px;}

/* ── Footer ── */
.footer{
  padding:28px 0;border-top:1px solid var(--line);display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.footer-l{font-size: var(--text-sm);font-weight:500;color:var(--t3);}
.footer-r{font-size: var(--text-sm);color:var(--t4);}

/* ══════════════════════════════════════════════
   MOBILE — ≤768px
══════════════════════════════════════════════ */
@media(max-width:768px){
  .wrap{padding:0 20px;}
  header{height:68px;}
  .hrow{gap:12px;}
  .logo{gap:10px;margin-right:auto;}
  .logo img{width:62px;height:auto;}
  .logo-n{font-size: var(--text-base);}
  .logo-s{font-size: var(--text-2xs);letter-spacing:.08em;}
  nav{display:none;}
  .hdr-acts{margin-left:auto;gap:6px;}
  .hdr-acts .btn-ghost{display:none;}
  .hdr-acts .lang-toggle{display:none;}
  .hdr-acts .btn-primary,
  .hdr-acts .bc-cta{font-size: var(--text-base);padding:8px 13px;border-radius:2px;min-height:44px;display:inline-flex;align-items:center;}
  /* Hamburger-triggered dropdown drawer (replaces horizontal scroll bar) */
  .ham{display:flex;margin-left:0;}
  .mob-nav{
    top:68px;
    gap:4px;
    padding:12px 20px calc(16px + env(safe-area-inset-bottom));
    box-shadow:0 18px 40px rgba(0,0,0,0.45);
  }
  .mob-nav a{
    display:flex;
    align-items:center;
    min-height:48px;
    padding:0 16px;
    border-radius:8px;
    color:var(--t2);
    font-size: var(--text-lg);
    font-weight:700;
  }
  .mob-nav a:hover{
    color:#e8edf5;
    background:var(--bg-elev-2);
  }
  .mob-nav a.active{
    color:#e8edf5;
    background:var(--bg-elev-2);
  }
  .mob-nav .lang-toggle{
    margin-top:10px;
    align-self:flex-start;
    min-height:44px;
  }

  .sidebar-layout{grid-template-columns:1fr;}
  .sidebar{position:static;}

  .sec-ttl{font-size: var(--text-3xl);}
  .btn-blue,.btn-outline{font-size: var(--text-md);padding:11px 20px;}
  .hdr-acts .btn-primary,.lang-toggle{min-height:44px;display:inline-flex;align-items:center;}
  .sb-link{min-height:44px;}
}

/* ══════════════════════════════════════════════
   WIDE DESKTOP — ≥1600px / ≥2000px
   Container + shared chrome grow with the viewport so
   the layout fills large monitors instead of stranding
   a 1360px column. Screens <1600px are unchanged.
══════════════════════════════════════════════ */
@media(min-width:1600px){
  .wrap{max-width:1640px;padding:0 64px;}
  .intake-wrap,.report-wrap,.ipo-wrap{max-width:1640px;}
  .sec-ttl{font-size: var(--text-4xl);}
  .sec-sub{font-size: var(--text-xl);}
}
@media(min-width:2000px){
  .wrap{max-width:1920px;padding:0 80px;}
  .intake-wrap,.report-wrap,.ipo-wrap{max-width:1920px;}
  .sec-ttl{font-size: var(--text-4xl);}
  .sec-sub{font-size: var(--text-2xl);}
}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important;transform:none !important;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

.lang-toggle {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--t2);
  font-family: var(--font-mono);
  font-size: var(--text-md);
  font-weight: 500;
  letter-spacing: .05em;
  padding: 7px 13px;
  border-radius: 2px;
  cursor: pointer;
  transition: border-color .18s, color .18s;
}
.lang-toggle:hover {
  border-color: var(--accent-border);
  color: #e8edf5;
}

/*!******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/styles/index.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************/
.hero{
  position:relative;overflow:hidden;
  padding:80px 0 86px;
  height:calc(100vh - 76px);
  min-height:520px;
  display:flex;align-items:center;
}
.hero .wrap{position:relative;z-index:2;width:100%;}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:64px;align-items:center;}
.hero-grid>div{max-width:680px;}
/* Hero video-loop backdrop (ported from RVC-web Monolith Title-Card) */
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.42) 100%);
  mask-image:linear-gradient(90deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.42) 100%);
  transition:opacity .3s ease;
}
.hero-video--hidden{opacity:0;}
.hero-video-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(8,9,12,.90) 0%, rgba(8,9,12,.65) 28%, rgba(8,9,12,.22) 58%, rgba(8,9,12,.05) 82%, transparent 100%),
    linear-gradient(180deg, rgba(8,9,12,.5) 0%, transparent 22%, transparent 72%, rgba(8,9,12,.62) 100%);
}
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;margin-bottom:22px;
  font-size: var(--text-sm);font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);
  opacity:0;transform:translateY(14px);
  animation:fu .7s cubic-bezier(.22,1,.36,1) .05s forwards;
}
.eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:blink 1.4s infinite;}
.hero-h{
  font-size: var(--text-fluid-md);font-family:var(--font-hero);font-weight:400;color:#e8edf5;
  letter-spacing:-.02em;line-height:1.15;margin-bottom:20px;min-height:2.8em;
}
.hero-h .accent{
  color:#2b62e3;
}
.hero-h .hero-nowrap{white-space:nowrap;}
/* Typewriter cursor */
.type-cursor{display:inline-block;color:var(--blue);-webkit-text-fill-color:var(--blue);font-weight:300;line-height:1;
  animation:cur-blink .65s step-end infinite;vertical-align:baseline;}
@keyframes cur-blink{0%,100%{opacity:1;}50%{opacity:0;}}
.hero-p{font-size: var(--text-xl);color:var(--t2);line-height:1.75;margin-bottom:32px;
  opacity:0;animation:fu .8s cubic-bezier(.22,1,.36,1) 1.6s forwards;}
.hero-btns{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  opacity:0;animation:fu .8s cubic-bezier(.22,1,.36,1) 1.78s forwards;}
.hero-trust{margin-top:32px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  opacity:0;animation:fu .8s cubic-bezier(.22,1,.36,1) 1.95s forwards;}
.trust-item{display:flex;align-items:center;gap:7px;font-size: var(--text-base);color:var(--t3);font-weight:500;}
.trust-dot{width:5px;height:5px;border-radius:50%;background:var(--ok);}
@keyframes fu{to{opacity:1;transform:none}}
/* Hero partner strip — glassmorphism bar at bottom of hero */
.hero-partners{
  position:absolute;bottom:0;left:0;right:0;z-index:3;
  background:rgba(10,12,18,0.28);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  overflow:hidden;
  padding:32px 0;
}
.hp-track{
  display:flex;align-items:center;width:max-content;will-change:transform;
  animation:mq-left 86s linear infinite;
}
.hp-brand{
  display:flex;align-items:center;flex-shrink:0;
  padding:0 48px;
}
.hp-brand svg{display:block;}
/* Engine section */
.engine-section{
  padding:80px 0;
  border-top:1px solid var(--bl);
}

.eng-stage{
  --engine-bg:#f7f9fd;
  --engine-elev:#ffffff;
  --engine-elev-2:#f2f5fb;
  --engine-line:rgba(13,21,38,.12);
  --engine-line-soft:rgba(13,21,38,.07);
  --engine-text:#0d1526;
  --engine-muted:#4b5670;
  --engine-dim:#7a8399;
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px minmax(0,1fr);
  gap:0 72px;
  align-items:stretch;
  position:relative;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  isolation:isolate;
}
.eng-stage::before,
.eng-stage::after{display:none;}
.eng-panel-lbl{
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--engine-dim);
  margin-bottom:10px;
}
.eng-panel{
  display:flex;
  flex-direction:column;
  gap:10px;
  height:100%;
  min-width:0;
  position:relative;
  z-index:1;
}
.eng-card-rail{
  position:relative;
  flex:1 1;
  display:grid;
  grid-template-rows:repeat(4,1fr);
  gap:10px;
  min-height:0;
}
/* Card rail — minimal ledger rows. No box chrome; just a 1px baseline rule. */
.eng-row{
  display:grid;
  align-items:center;
  gap:6px 14px;
  min-height:0;
  padding:0 8px;
  border-bottom:1px solid rgba(13,21,38,.07);
  transition:
    opacity .32s ease,
    background .32s ease,
    transform .36s cubic-bezier(.22,1,.36,1),
    color .25s ease;
}
.eng-row:last-of-type{border-bottom:0;}
.eng-row-code{
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  font-weight:700;
  color:var(--engine-dim);
  letter-spacing:.18em;
  transition:color .25s ease;
}
.eng-row-name{
  font-size: var(--text-md);
  font-weight:500;
  color:var(--engine-text);
  letter-spacing:-.005em;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.eng-row-meta{
  grid-column:2 / -1;
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  font-weight:500;
  color:var(--engine-dim);
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-top:-2px;
}
.eng-row-val{
  font-family:var(--font-mono);
  font-size: var(--text-lg);
  font-weight:600;
  color:var(--engine-text);
  letter-spacing:-.015em;
  justify-self:end;
  white-space:nowrap;
  font-feature-settings:"tnum" 1,"lnum" 1,"liga" 0,"zero" 1;
}
.eng-row-val em{
  font-style:normal;
  font-weight:500;
  color:var(--engine-dim);
  font-size: var(--text-xs);
  margin-left:3px;
}
.eng-row-delta{
  grid-column:2 / -1;
  justify-self:end;
  font-family:var(--font-mono);
  font-size: var(--text-xs);
  font-weight:600;
  color:var(--accent);
  letter-spacing:.04em;
  margin-top:-2px;
}
.eng-row--in{grid-template-columns:auto minmax(0,1fr);}
.eng-row--out{grid-template-columns:auto minmax(0,1fr) auto;}
.eng-card-rail:hover .eng-row:not(:hover){opacity:.32;filter:saturate(.7);}
.eng-row-name{transition:color .25s ease,font-weight .25s ease;}
.eng-row--in:hover{
  transform:translateX(4px);
  background:linear-gradient(90deg,rgba(43,98,227,.07),transparent 75%);
}
.eng-row--out:hover{
  transform:translateX(-4px);
  background:linear-gradient(270deg,rgba(43,98,227,.07),transparent 75%);
}
.eng-row:hover .eng-row-code{color:var(--accent);}
.eng-row:hover .eng-row-name{color:#000;}
.eng-row:hover .eng-row-val{color:#000;}
.eng-row:hover .eng-row-delta{color:var(--accent-deep);}
.eng-core{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:100%;
  padding:28px 24px 24px;
  background:#ffffff;
  border:1px solid rgba(13,21,38,0.07);
  border-radius:12px;
  box-shadow:
    0 1px 2px rgba(13,21,38,0.018),
    0 8px 22px -18px rgba(13,21,38,0.18);
  position:relative;
  z-index:2;
  overflow:visible;
  transition:
    border-color .28s ease,
    box-shadow .28s ease;
}
.eng-core:hover{
  border-color:rgba(43,98,227,0.14);
  box-shadow:
    0 1px 2px rgba(13,21,38,0.02),
    0 9px 24px -20px rgba(13,21,38,0.18),
    0 0 0 1px rgba(43,98,227,0.025);
}
.eng-core::before,
.eng-core::after{
  display:none;
}
/* Inter-panel connector — one thin hairline per side, sitting at the
   card rail's vertical midpoint, extending into the 36px stage gutter.
   Both sides flow left → right: input pulse advances toward the core,
   then the output pulse exits the core toward the rail edge. */
.eng-flow{
  position:absolute;
  top:50%;
  width:52px;
  height:7px;
  pointer-events:none;
  display:flex;
  align-items:center;
  gap:0;
  transform:translateY(-50%);
  z-index:2;
}
.eng-flow--in{right:-62px;}
.eng-flow--out{left:-62px;}
.eng-flow-line{
  position:relative;
  flex:1 1;
  height:1px;
  background:linear-gradient(
    to right,
    rgba(43,98,227,0)    0%,
    rgba(43,98,227,.18)  8%,
    rgba(43,98,227,.34) 55%,
    rgba(43,98,227,.46)100%
  );
  overflow:hidden;
}
.eng-flow-pulse{
  position:absolute;
  top:-0.5px;
  left:-14px;
  width:14px;
  height:2px;
  background:linear-gradient(
    to right,
    rgba(43,98,227,0),
    rgba(43,98,227,.55) 55%,
    var(--accent)       95%,
    var(--accent)      100%
  );
  border-radius:999px;
  animation:eng-flow-drift 3.6s cubic-bezier(.55,.05,.5,.95) infinite;
}
.eng-flow--out .eng-flow-pulse{animation-delay:-1.8s;}
.eng-flow-tip{
  flex:0 0 auto;
  font-family:var(--font-mono);
  font-size: var(--text-2xl);
  line-height:1;
  font-weight:700;
  color:var(--accent);
  opacity:.9;
  margin-left:2px;
  transform:translateY(-1px);
}
@keyframes eng-flow-drift{
  0%   {left:-14px;opacity:0;}
  10%  {opacity:1;}
  80%  {opacity:1;}
  100% {left:100%;opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .eng-flow-pulse{animation:none;left:50%;margin-left:-7px;opacity:.8;}
  .eng-core,
  .eng-gauge,
  .eng-gauge-center,
  .eng-dims{transition:none;}
  .eng-core:hover .eng-gauge{transform:none;}
}
.eng-gauge{
  position:relative;
  width:224px;
  height:224px;
  flex-shrink:0;
  display:grid;
  place-items:center;
  transition:transform .28s cubic-bezier(.22,1,.36,1);
}
.eng-core:hover .eng-gauge{transform:scale(1.022);}
.eng-gauge-svg{
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
  position:relative;
  z-index:1;
}
/* Precision Radar Elements */
.eng-radar-track{
  fill:none;
  stroke:#f1f5f9;
  stroke-width:6;
}
.eng-radar-progress{
  fill:none;
  stroke:var(--blue);
  stroke-width:6;
  stroke-linecap:round;
  transform-origin:100px 100px;
  transform:rotate(-90deg);
  transition:stroke-dashoffset 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  filter:drop-shadow(0 2px 4px rgba(43,98,227,0.15));
}
.eng-core:hover .eng-radar-progress{filter:drop-shadow(0 3px 6px rgba(43,98,227,0.22));}
.eng-radar-scan{
  fill:none;
  stroke:rgba(43,98,227,0.14);
  stroke-width:1.5;
  stroke-dasharray:5 7;
  transform-origin:100px 100px;
  animation:eng-radar-spin 12s linear infinite;
}
.eng-radar-ticks{
  fill:none;
  stroke:#e2e8f0;
  stroke-width:3;
  stroke-dasharray:1 9;
}
.eng-radar-node{
  fill:var(--blue);
  stroke:#ffffff;
  stroke-width:1.5;
  filter:drop-shadow(0 2px 6px rgba(43,98,227,0.3));
}
.eng-radar-inner-ring{
  fill:none;
  stroke:#f8fafc;
  stroke-width:1;
}
@keyframes eng-radar-spin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
.eng-gauge-center{
  position:absolute;
  z-index:2;
  width:132px;
  height:132px;
  border-radius:50%;
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(43,98,227,0.1);
  box-shadow:
    0 8px 20px -6px rgba(13,21,38,0.06),
    inset 0 2px 4px rgba(255,255,255,0.9);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  transition:
    border-color .28s ease,
    box-shadow .28s ease,
    background .28s ease;
}
.eng-core:hover .eng-gauge-center{
  background:rgba(255,255,255,0.96);
  border-color:rgba(43,98,227,0.16);
  box-shadow:
    0 10px 24px -10px rgba(13,21,38,0.08),
    inset 0 2px 4px rgba(255,255,255,0.95);
}
.eng-gauge-num{
  font-family:var(--font-mono);
  font-size: var(--text-5xl);
  font-weight:600;
  color:#0d1526;
  line-height:1;
  letter-spacing:-.04em;
}
.eng-gauge-denom{
  font-family:var(--font-mono);
  font-size: var(--text-sm);
  font-weight:600;
  color:#64748b;
  margin-top:2px;
  letter-spacing:.06em;
}
.eng-gauge-lbl{
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#94a3b8;
  margin-top:6px;
}
.eng-dims{
  font-family:var(--font-mono);
  font-size: var(--text-2xs);
  font-weight:700;
  letter-spacing:.16em;
  color:#64748b;
  text-transform:uppercase;
  transition:color .28s ease,letter-spacing .28s ease;
}
.eng-core:hover .eng-dims{
  color:var(--accent);
  letter-spacing:.18em;
}

/* Engine section light shell */
.engine-section.eng-lt{
  background:
    linear-gradient(180deg,#f7f9fd 0%,#eef2f8 100%);
  border-top:1px solid rgba(0,0,0,.07);
}
.eng-lt .chapter-kicker{color:rgba(43,98,227,.65);}
.eng-lt .chapter-title,
.eng-lt .chapter-accent{color:#0d1117;}
.eng-lt .chapter-num{color:#0d1117;}
.eng-lt .chapter-lead{color:#5a6275;}

/* Section chapter header — large mono num grounded to the body's
   last baseline so "01" and the lead's final line sit on the same
   typographic floor. Body fills upward from that floor. */
.chapter-head{
  margin:0 auto 56px;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:clamp(32px,5vw,80px);
  align-items:last baseline;
}
.chapter-num{
  font-family:var(--font-mono);
  font-weight:300;
  font-size: var(--text-fluid-xl);
  line-height:.86;
  letter-spacing:-.04em;
  color:var(--t1);
  position:relative;
  display:inline-block;
  isolation:isolate;
  margin:0;
}
.chapter-num::after{
  content:'';
  position:absolute;
  left:-6%;
  right:-6%;
  bottom:8%;
  height:8px;
  background:var(--accent);
  opacity:.16;
  transform:skewY(-3deg);
  z-index:-1;
}
.chapter-head-body{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:640px;
  padding:0;
}
.chapter-kicker{
  font-family:var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing:.24em;
  color:var(--t3);
  text-transform:uppercase;
}
.chapter-title{
  font-family:var(--font-hero);
  font-weight:400;
  font-size: var(--text-fluid-md-alt);
  line-height:1.15;
  letter-spacing:-.02em;
  margin:0;
  color:var(--t1);
}
.chapter-accent{
  display:inline-block;
  font-family:var(--font-hero);
  font-weight:400;
  color:var(--t2);
  font-size:.56em;
  letter-spacing:-.01em;
  margin-top:.12em;
}
.chapter-lead{
  font-size: var(--text-xl);
  line-height:1.7;
  color:var(--t2);
  margin:6px 0 0;
  max-width:520px;
}

/* Process — scroll-driven ladder */
.process{padding:72px 0;border-top:1px solid var(--bl);border-bottom:1px solid var(--bl);}
.proc-ladder-wrap{perspective:1600px;}
.proc-ladder{
  list-style:none;margin:0 auto;padding:0;max-width:780px;
  transform-style:preserve-3d;transform:rotateX(8deg);
  display:flex;flex-direction:column;gap:14px;
}
.proc-rung{
  position:relative;display:grid;grid-template-columns:48px 1fr;align-items:start;gap:22px;
  padding:22px 26px;background:var(--bg-elev);border:1px solid var(--line);border-radius:3px;
  transform-origin:center;
  transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .45s ease,background .35s ease,border-color .35s ease,box-shadow .45s ease;
}
.proc-rung::after{
  content:'';position:absolute;left:-1px;top:18px;bottom:18px;width:2px;background:var(--accent);
  transform:scaleY(0);transform-origin:top;transition:transform .5s cubic-bezier(.22,1,.36,1) .08s;pointer-events:none;
}
.proc-rung[data-state="future"]{opacity:.62;transform:translateZ(0) scale(.985);}
.proc-rung[data-state="past"]{opacity:.74;transform:translateZ(-16px) scale(.97);}
.proc-rung[data-state="active"]{
  opacity:1;
  background:var(--bg-elev-2);
  transform:translateZ(40px) scale(1.01);
  box-shadow:0 12px 40px -24px rgba(0,0,0,.5);
}
.proc-rung[data-state="active"]::after{transform:scaleY(1);}
.proc-rung-num{
  font-family:'IBM Plex Mono',monospace;font-size: var(--text-md);font-weight:600;color:var(--t3);
  text-align:center;padding-top:5px;letter-spacing:.08em;
  transition:color .35s ease;
}
.proc-rung[data-state="active"] .proc-rung-num{color:var(--t1);}
.proc-rung[data-state="past"] .proc-rung-num{color:var(--t2);}
.proc-rung-body{display:flex;flex-direction:column;gap:6px;min-width:0;}
.proc-rung-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size: var(--text-xs);font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--t3);transition:color .35s ease;
}
.proc-rung[data-state="active"] .proc-rung-eyebrow{color:var(--accent-hot);}
.proc-rung-title{font-family:var(--font-sans);font-size: var(--text-2xl);font-weight:500;color:var(--t1);letter-spacing:-.005em;}
.proc-rung-desc{font-size: var(--text-md);line-height:1.6;color:var(--t2);}

/* Services */
.services{padding:88px 0;}
section.services.light-theme{min-height:0;}
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.b-card{
  background:var(--card);border:1px solid var(--bl);border-radius:2px;padding:30px;
  box-shadow:var(--sh);position:relative;overflow:hidden;
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,border-color .28s,background .28s,color .28s;
}
.b-card:hover{transform:translateY(-5px);box-shadow:0 20px 56px rgba(0,0,0,0.5);border-color:var(--bm);}
.b-card-glow{position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(ellipse at 20% 12%,rgba(232,237,245,0.03),transparent 55%);}
.b-card.wide{grid-column:span 2;}
.b-card.accent .svc-tag{background:transparent;color:var(--blue);}
.b-card:hover .svc-title{color:var(--accent);}
.svc-num{font-size: var(--text-xs);font-weight:700;letter-spacing:.1em;color:var(--t1);margin-bottom:14px;}
.svc-ico{width:48px;height:48px;border-radius:2px;background:transparent;border:none;
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;transition:transform .22s;}
.svc-ico svg{width:23px;height:23px;stroke:var(--blue);fill:none;stroke-width:1.8;}
.b-card:hover .svc-ico{transform:scale(1.12);}
.svc-title{font-size: var(--text-xl);font-weight:700;color:var(--t1);margin-bottom:10px;letter-spacing:-.02em;}
.svc-desc{font-size: var(--text-md);color:var(--t2);line-height:1.65;}
.svc-tag{display:inline-flex;align-items:center;gap:5px;font-size: var(--text-xs);font-weight:700;
  padding:4px 0;background:transparent;color:var(--blue);margin-top:14px;letter-spacing:.03em;}

/* All cards: condensed by default, reveal desc+tag on hover */
.b-card .svc-title{margin-bottom:0;}
.b-card .svc-desc{
  opacity:0;transform:translateY(6px);max-height:0;overflow:hidden;margin-top:0;
  transition:opacity .28s ease,transform .28s cubic-bezier(.22,1,.36,1),max-height .28s ease;}
.b-card .svc-tag{
  opacity:0;transform:translateY(6px);margin-top:0;
  transition:opacity .28s ease,transform .28s cubic-bezier(.22,1,.36,1),margin-top .28s ease;}
/* Reveal on hover — shared */
.b-card:hover .svc-desc{opacity:1;transform:translateY(0);max-height:200px;margin-top:10px;}
.b-card:hover .svc-tag{opacity:1;transform:translateY(0);margin-top:14px;}
/* Non-accent cards lift on hover */
.b-card:not(.accent):hover{
  background:var(--bg-elev-2);border-color:var(--accent-border);
  box-shadow:0 20px 48px rgba(43,98,227,0.18);}
.b-card:not(.accent):hover .svc-num{color:var(--t2);}
.b-card:not(.accent):hover .svc-title{color:var(--accent);}
.b-card:not(.accent):hover .svc-desc{color:var(--t2);}
.b-card:not(.accent):hover .svc-tag{color:var(--blue);}

/* KPI */
.kpi-strip{
  padding:72px 0 36px;
  background:var(--bg-elev);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;background:transparent;}
.kpi-strip section.cstory + .sw-row-label{margin-top:44px;}
.kpi-strip .sw-row-label,
.kpi-strip .marquee-wrap{
  width:calc(100vw - clamp(64px,10vw,144px));
  margin-left:50%;
  transform:translateX(-50%);
}
.kpi-strip .marquee-wrap::before{background:linear-gradient(90deg,var(--bg-elev) 10%,transparent);}
.kpi-strip .marquee-wrap::after{background:linear-gradient(270deg,var(--bg-elev) 10%,transparent);}
.kpi-strip section.cstory{
  margin:72px 0 64px;
  padding:0;
  background:transparent;
}
.kpi-strip section.cstory .wrap{
  max-width:1360px;
  padding:0;
}
.kpi-strip .cstory-kicker{display:none;}
.kpi-item{
  padding:38px 20px;text-align:center;
  background:transparent;border:0;
  transition:background .25s ease,transform .35s cubic-bezier(.22,1,.36,1),box-shadow .25s ease;
  cursor:default;position:relative;
}
.kpi-item:hover{
  background:var(--bg-elev-2);
  transform:translateY(-4px);
  box-shadow:0 8px 32px rgba(43,98,227,.10);
  z-index:1;
}
.kpi-val{font-family:var(--font-mono);font-size: var(--text-5xl);font-weight:700;letter-spacing:-.055em;line-height:1;
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 1, "tnum";
  color:var(--t1);}
.kpi-lbl{font-size: var(--text-sm);font-weight:600;color:var(--t3);margin-top:7px;letter-spacing:.04em;}

/* ── Success Wall ── */
.success-wall{padding:64px 0 60px;background:var(--bg);border-top:1px solid var(--bl);}
.sw-head{text-align:center;margin-bottom:44px;}
.sw-title{font-family:var(--font-hero);font-size: var(--text-fluid-sm-alt);font-weight:400;color:var(--t1);letter-spacing:-.03em;margin-bottom:0;}
.sw-divider{width:44px;height:1px;background:var(--line);margin:14px auto 0;}
.sw-row-label{display:block;text-align:center;font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--t4);margin-bottom:14px;}

/* Marquee */
.marquee-wrap{overflow:hidden;position:relative;padding:4px 0;}
.marquee-wrap+.marquee-wrap{margin-top:14px;}
.marquee-wrap::before,.marquee-wrap::after{
  content:'';position:absolute;top:0;bottom:0;width:140px;z-index:2;pointer-events:none;
}
.marquee-wrap::before{left:0;background:linear-gradient(90deg,var(--bg) 10%,transparent);}
.marquee-wrap::after{right:0;background:linear-gradient(270deg,var(--bg) 10%,transparent);}
.marquee-track{display:flex;gap:24px;width:max-content;will-change:transform;}
.marquee-track.go-left{animation:mq-left 76s linear infinite;}
.marquee-track.go-right{animation:mq-right 88s linear infinite;}
.marquee-wrap:hover .marquee-track{animation-play-state:paused;}
@keyframes mq-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mq-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* IPO brand cards (row 1) — logo-first layout */
.ipo-card{
  display:flex;flex-direction:column;justify-content:space-between;
  gap:10px;flex-shrink:0;
  padding:12px 20px 10px;min-width:160px;
  transition:opacity .22s,transform .22s;
  white-space:nowrap;cursor:default;
}
.ipo-card:hover{opacity:.72;transform:translateY(-2px);}
.ipo-logo-area{height:38px;display:flex;align-items:center;}
.ipo-logo-area svg{max-height:36px;max-width:150px;}
.ipo-card-meta{display:flex;align-items:center;gap:6px;}
.ipo-card-ticker{
  font-family:var(--font-mono);font-size: var(--text-2xs);font-weight:700;letter-spacing:.09em;
  color:var(--t4);
}
.ipo-card-exch{font-family:var(--font-mono);font-size: var(--text-2xs);color:var(--t4);font-weight:500;}

/* Partner pills (row 2) — brand name in color */
.partner-pill{
  display:flex;align-items:center;flex-shrink:0;
  padding:8px 14px;
  white-space:nowrap;transition:opacity .18s,transform .18s;
  cursor:default;
}
.partner-pill:hover{opacity:.65;transform:translateY(-1px);}
.pp-logo{height:22px;display:flex;align-items:center;}
.pp-logo svg{max-height:22px;max-width:100px;}

/* ── Security (04) — editorial magazine rows: oversized serif index (Playfair)
   + sans title, supporting desc; single-select click/keyboard highlight driven
   by SecurityRows.jsx. Monochrome black-and-white, one brand-blue accent used
   only on the active row's left bar + index. All values are the exact tokens
   from the brief (scoped here, not theme vars) for the intentional mono look. ── */
/* top reduced from up-to-120px → 72px to match the other main sections' rhythm
   (.process 72 / .services 88); the big top gap above "04 数据安全" is removed. */
.security{padding:72px 0 88px;background:#0A0A0B;}
/* the section lead shares the rows' rounded sans (see .secur-desc) so the intro
   paragraph and the row descriptions read as one typographic voice */
.security .chapter-lead{font-family:ui-rounded,var(--font-sans);}
/* 数据安全 header: title keeps the shared chapter-title size + leading (1.15) so it
   matches the "01 从数据到资本路径" heading exactly; only the lead is tightened. */
.security .chapter-lead{line-height:1.28;}
.secur-list{margin-top:clamp(16px,3vw,36px);}

.secur-row{
  position:relative;
  /* idx + title hug the left (auto-sized); desc fills the rest on the right */
  /* BOTH the index and title columns are fixed-width so titles + descs line up
     across rows. The index MUST be fixed (not auto): Playfair's proportional
     figures make "01" narrower than "03/04", which with an auto column shifted
     each title to a different x. Wider title column also pushes the desc farther
     from short titles. */
  display:grid;grid-template-columns:clamp(74px,7vw,104px) clamp(260px,27vw,400px) 1fr;
  /* baseline-align the oversized index, the title, and the desc's first line so
     their text sits on one line rather than floating at different heights */
  align-items:baseline;column-gap:clamp(20px,4vw,56px);
  /* compacted: vertical padding ~halved so all 5 rows (01–05) stay in view */
  padding:clamp(13px,1.8vw,22px) clamp(16px,2vw,28px);
  border-top:1px solid rgba(255,255,255,0.12);
  /* dim for the non-active rows + bg wash for the active one */
  transition:opacity .3s ease, background .3s ease;
}
.secur-row:last-child{border-bottom:1px solid rgba(255,255,255,0.12);}

/* 3px accent bar at the left edge — grows in height + fades in when active */
.secur-row::before{
  content:'';position:absolute;left:0;top:50%;
  transform:translateY(-50%) scaleY(.25);
  width:3px;height:64%;background:#3B9BFF;border-radius:2px;
  opacity:0;transition:opacity .3s ease, transform .3s ease;
}

.secur-idx{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(54px,6vw,74px);line-height:.9;
  color:rgba(255,255,255,0.4);
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "tnum";
  transition:color .3s ease;
}
.secur-name{
  /* match the section's "数据安全" chapter-title — same serif family, fluid size,
     weight, and color — so the row titles read as siblings of the heading */
  margin:0;font-family:var(--font-hero);
  /* row titles scaled to 0.8× the chapter-title size per design request */
  font-size:calc(var(--text-fluid-md-alt) * 0.8);font-weight:400;
  line-height:.86;letter-spacing:-.02em;
  color:var(--t1);
  transform-origin:left center;
  transition:color .3s ease, transform .3s ease;
}
.secur-desc{
  /* `ui-rounded` resolves to SF Pro Rounded on Apple platforms (rounder, softer
     terminals) and falls back to our normal sans / PingFang elsewhere — a rounder
     feel with no extra self-hosted font. Size/leading echo the section lead. */
  margin:0;font-family:ui-rounded,var(--font-sans);
  font-size:var(--text-xl);line-height:1.28;
  color:rgba(255,255,255,0.85);max-width:48ch;min-width:0;
  transition:color .3s ease;
}

/* Active row */
.secur-row.is-active{background:rgba(255,255,255,0.045);}
.secur-row.is-active::before{opacity:1;transform:translateY(-50%) scaleY(1);}
.secur-row.is-active .secur-idx{color:#3B9BFF;}
.secur-row.is-active .secur-name{color:#FFFFFF;transform:scale(1.04);}
.secur-row.is-active .secur-desc{color:rgba(255,255,255,0.95);}

/* Dim every other row once any row is active */
.secur-list.has-active .secur-row:not(.is-active){opacity:.5;}

/* Visible keyboard focus (a11y — rows are role=button, tabindex=0) */
.secur-row:focus-visible{outline:2px solid rgba(59,155,255,0.6);outline-offset:-2px;}

.secur-close{
  margin-top:clamp(28px,4vw,52px);padding:0 clamp(16px,2vw,28px);
  font-family:var(--font-sans);font-size:13.5px;line-height:1.7;
  color:rgba(255,255,255,0.62);max-width:72ch;
}

@media(max-width:768px){
  .hero{padding:40px 0;height:calc(100vh - 68px);}
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:30px;}
  .hero-grid>*{min-width:0;}
  .hero-h{font-size:clamp(32px,11vw,44px);line-height:1.1;min-height:3.3em;margin-bottom:18px;}
  .hero-h .hero-nowrap{white-space:normal;}
  .hero-h .hero-line,.hero-h .accent{white-space:nowrap;}
  .hero-p{font-size: var(--text-xl);line-height:1.7;margin-bottom:24px;}
  .hero-trust{margin-top:24px;gap:12px;}
  .engine-section{padding:48px 0;}
  .eng-stage{display:flex;flex-direction:column;gap:22px;padding:0;}
  .eng-core{width:100%;max-width:340px;margin:0 auto;min-height:360px;}
  .eng-flow{display:none;}
  .eng-panel--in,.eng-panel--out{width:100%;}
  .eng-card-rail{grid-template-rows:repeat(4,auto);}
  .bento{grid-template-columns:1fr;}
  .b-card.wide{grid-column:span 1;}
  .chapter-head{grid-template-columns:1fr;gap:14px;align-items:start;margin-bottom:28px;}
  .chapter-num{font-size: var(--text-fluid-lg);}
  .chapter-head-body{padding-bottom:0;}
  .chapter-title{font-size: var(--text-4xl);}
  .proc-ladder{transform:rotateX(0);gap:12px;}
  .proc-rung{grid-template-columns:46px 1fr;gap:14px;padding:16px 16px;}
  .proc-rung-title{font-size: var(--text-xl);}
  .kpi-grid{grid-template-columns:repeat(2,1fr);}
  .kpi-item:nth-child(5){grid-column:span 2;}
  .marquee-wrap::before,.marquee-wrap::after{width:60px;}
  .security{padding:56px 0;}
  /* stack index → title → desc on narrow screens; highlight logic unchanged */
  .secur-row{grid-template-columns:1fr;row-gap:6px;padding:24px clamp(14px,4vw,20px);}
  .secur-idx{font-size:clamp(48px,16vw,64px);}
  .secur-name{font-size:calc(var(--text-4xl) * 0.8);}
  .secur-desc{max-width:none;}
}
@media (prefers-reduced-motion: reduce){
  .hero-video{display:none;}
  .hero{
    background:
      linear-gradient(rgba(8,9,12,.74), rgba(8,9,12,.74)),
      url('/hero-poster.jpg') center/cover no-repeat,
      var(--bg);
  }
  .proc-ladder{transform:none;}
  .proc-rung,
  .proc-rung[data-state="future"],
  .proc-rung[data-state="past"],
  .proc-rung[data-state="active"]{transform:none;}
  /* Security rows: keep the color/opacity highlight but drop motion (no scale,
     no bar grow) for reduced-motion users. */
  .secur-row.is-active .secur-name{transform:none;}
  .secur-row.is-active::before{transform:translateY(-50%) scaleY(1);}
}

/* ══════════════════════════════════════════════
   WIDE DESKTOP — landing type scale (≥1600 / ≥2000)
   Headlines, leads, numbers, and reading-column widths
   grow with the viewport so the composition holds its
   proportions on large monitors. <1600px is unchanged.
══════════════════════════════════════════════ */
@media(min-width:1600px){
  .hero-grid{gap:80px;}
  .hero-grid>div{max-width:760px;}
  .hero-h{font-size: var(--text-6xl);}
  .hero-p{font-size: var(--text-xl);}

  .chapter-head{max-width:1460px;gap:clamp(40px,5vw,88px);}
  .chapter-num{font-size: var(--text-fluid-2xl);}
  .chapter-title{font-size: var(--text-6xl);}
  .chapter-head-body{max-width:760px;}
  .chapter-lead{font-size: var(--text-xl);max-width:600px;}

  /* 04 Security — two-pole rows on wide screens. Index + title hug the left
     (title col = max-content, so short CJK titles don't reserve a 400px box),
     a flexible 1fr gutter absorbs the slack, and the description is pinned
     flush to the right margin (justify-self:end + fixed measure). Result: the
     row spans both edges instead of stranding the right third, and every
     description shares the same left+right edge across rows. */
  .secur-row{grid-template-columns:clamp(74px,7vw,104px) max-content 1fr;}
  .secur-desc{justify-self:end;width:clamp(400px,30vw,480px);max-width:none;}

  .proc-ladder{max-width:880px;}
  .proc-rung-title{font-size: var(--text-3xl);}
  .proc-rung-desc{font-size: var(--text-lg);}

  .b-card{padding:36px;}
  .svc-title{font-size: var(--text-2xl);}
  .svc-desc{font-size: var(--text-lg);}

  .kpi-val{font-size: var(--text-5xl);}
  .kpi-lbl{font-size: var(--text-base);}

  .sw-title{font-size: var(--text-5xl);}

  .eng-gauge-num{font-size: var(--text-6xl);}
  .eng-row-name{font-size: var(--text-lg);}
  .eng-row-val{font-size: var(--text-xl);}
}
@media(min-width:2000px){
  .hero-grid{gap:96px;}
  .hero-grid>div{max-width:860px;}
  .hero-h{font-size: var(--text-6xl);}
  .hero-p{font-size: var(--text-2xl);}

  .chapter-head{max-width:1680px;}
  .chapter-num{font-size: var(--text-fluid-3xl);}
  .chapter-title{font-size: var(--text-6xl);}
  .chapter-head-body{max-width:860px;}
  .chapter-lead{font-size: var(--text-2xl);max-width:680px;}

  /* widen the right-pole description so it keeps weight against the larger
     central gutter on very wide monitors (two-pole layout from the ≥1600 block) */
  .secur-desc{width:clamp(460px,28vw,560px);font-size: var(--text-xl);}

  .proc-ladder{max-width:1000px;}
  .proc-rung-title{font-size: var(--text-3xl);}
  .proc-rung-desc{font-size: var(--text-xl);}

  .b-card{padding:42px;}
  .svc-title{font-size: var(--text-2xl);}
  .svc-desc{font-size: var(--text-xl);}

  .kpi-val{font-size: var(--text-6xl);}
  .kpi-lbl{font-size: var(--text-md);}

  .sw-title{font-size: var(--text-6xl);}

  .eng-gauge-num{font-size: var(--text-6xl);}
  .eng-row-val{font-size: var(--text-xl);}
  .eng-out-pfx{font-size: var(--text-4xl);}
  .eng-row-name{font-size: var(--text-xl);}
}

/* ══════════════════════════════════════════════
   Chapter 01 — design-version carousel chrome
══════════════════════════════════════════════ */
.engine-carousel{position:relative;}
.engcar-bar{
  position:sticky;top:12px;z-index:20;
  display:flex;align-items:center;gap:18px;
  width:min(1180px,calc(100% - 48px));
  margin:0 auto 28px;padding:9px 16px;
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border:1px solid rgba(13,21,38,.10);border-radius:2px;
  box-shadow:0 6px 24px -16px rgba(13,28,54,.18);
  font-family:var(--font-mono);
  font-variant-numeric:slashed-zero;
  font-feature-settings:"tnum" 1,"lnum" 1,"liga" 0,"zero" 1, "zero";
}
.engcar-btn{
  flex:0 0 auto;width:30px;height:30px;border-radius:2px;
  border:1px solid rgba(13,21,38,.12);background:#fff;color:#0d1526;
  font-size: var(--text-2xl);line-height:1;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .18s,color .18s,border-color .18s;
}
.engcar-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent);}
.engcar-btn:disabled{opacity:.32;cursor:not-allowed;}
.engcar-meta{flex:1 1 auto;display:flex;align-items:baseline;gap:14px;min-width:0;overflow:hidden;}
.engcar-index{font-size: var(--text-xs);letter-spacing:.22em;color:var(--accent);font-weight:700;text-transform:uppercase;flex:0 0 auto;}
.engcar-label{font-size: var(--text-base);color:#0d1526;white-space:nowrap;font-weight:600;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;}
.engcar-dots{display:flex;gap:7px;flex:0 0 auto;}
.engcar-dot{
  width:8px;height:8px;border-radius:999px;padding:0;
  border:1px solid rgba(13,21,38,.28);background:transparent;cursor:pointer;
  transition:background .18s,border-color .18s;
}
.engcar-dot:hover{border-color:var(--accent);}
.engcar-dot.is-active{background:var(--accent);border-color:var(--accent);}

/* ══════════════════════════════════════════════
   V2 — Diagnostic Schematic (engineering blueprint)
══════════════════════════════════════════════ */
.engb{padding:8px 0;}
@keyframes radar-sweep{
  0%{background-position:200% 0;}
  100%{background-position:-200% 0;}
}
.engb-frame{
  position:relative;background:#fff;
  border:1px solid rgba(13,21,38,.12);border-radius:2px;
  padding:32px 40px 28px;
  background-image:
    linear-gradient(rgba(13,21,38,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,21,38,.025) 1px,transparent 1px);
  background-size:24px 24px;background-position:-1px -1px;
  max-width:1180px;margin:0 auto;
  overflow:hidden;
}
.engb-frame-meta{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-bottom:14px;margin-bottom:24px;
  border-bottom:1px solid rgba(13,21,38,.10);
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  letter-spacing:.18em;color:var(--t3);text-transform:uppercase;
}
.engb-frame-meta--foot{padding-top:14px;padding-bottom:0;margin-top:24px;margin-bottom:0;border-top:1px solid rgba(13,21,38,.10);border-bottom:none;}
.engb-frame-meta span:first-child{color:var(--accent);}
.engb-board{
  position:relative;display:grid;
  grid-template-columns:minmax(0,1fr) 1fr minmax(0,1fr);
  gap:0;align-items:stretch;min-height:480px;
  padding:24px 48px;
}
.engb-col{display:flex;flex-direction:column;justify-content:space-around;height:100%;position:relative;z-index:2;}
.engb-col--in{grid-column:1;grid-row:1;align-items:flex-end;}
.engb-col--out{grid-column:3;grid-row:1;align-items:flex-start;}
.engb-node{
  position:relative;background:rgba(255,255,255,.96);
  border:1px solid rgba(13,21,38,.12);border-radius:2px;
  padding:12px 18px;width:min(240px,100%);
  display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:3px;align-items:baseline;
  cursor:pointer;
  transition:border-color .22s cubic-bezier(0.22,1,0.36,1),box-shadow .22s cubic-bezier(0.22,1,0.36,1),background-color .22s cubic-bezier(0.22,1,0.36,1),transform .22s cubic-bezier(0.22,1,0.36,1),opacity .35s ease-out;
}
.engb-frame::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(
    90deg,
    transparent 0%,
    rgba(43,98,227,0.00) 25%,
    rgba(43,98,227,0.02) 47%,
    rgba(43,98,227,0.07) 50%,
    rgba(43,98,227,0.02) 53%,
    rgba(43,98,227,0.00) 75%,
    transparent 100%
  );
  background-size:200% 100%;
  animation:radar-sweep 6s linear infinite;
  z-index:0;
}
.engb-frame-meta{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-bottom:14px;margin-bottom:18px;
  border-bottom:1px solid rgba(13,21,38,.10);
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  letter-spacing:.18em;color:var(--t3);text-transform:uppercase;
}
.engb-frame-meta--foot{padding-top:14px;padding-bottom:0;margin-top:18px;margin-bottom:0;border-top:1px solid rgba(13,21,38,.10);border-bottom:none;}
.engb-frame-meta span:first-child{color:var(--accent);}
.engb-board{
  position:relative;display:grid;
  grid-template-columns:minmax(0,1fr) 1fr minmax(0,1fr);
  gap:0;align-items:stretch;min-height:380px;
  padding:0 36px;
}
.engb-col{display:flex;flex-direction:column;justify-content:space-around;height:100%;position:relative;z-index:2;}
.engb-col--in{grid-column:1;grid-row:1;align-items:flex-end;}
.engb-col--out{grid-column:3;grid-row:1;align-items:flex-start;}
.engb-node{
  position:relative;background:rgba(255,255,255,.96);
  border:1px solid rgba(13,21,38,.12);border-radius:2px;
  padding:10px 14px;width:min(220px,100%);
  display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:baseline;
  cursor:pointer;
  transition:border-color .22s cubic-bezier(0.22,1,0.36,1),box-shadow .22s cubic-bezier(0.22,1,0.36,1),background-color .22s cubic-bezier(0.22,1,0.36,1),transform .22s cubic-bezier(0.22,1,0.36,1),opacity .35s ease-out;
}
.engb-node:focus-visible{
  outline:1.5px solid var(--accent);outline-offset:2px;
}
.engb-node:hover:not(.is-active){
  border-color:rgba(43,98,227,.28);
  box-shadow:0 2px 8px -3px rgba(43,98,227,.12);
  transform:translateY(-1px);
}
.engb-col--out .engb-node{text-align:right;grid-template-columns:1fr auto;}
.engb-node-port{
  position:absolute;top:50%;width:7px;height:7px;border-radius:999px;
  background:#fff;border:1px solid var(--t3);transform:translateY(-50%);
  transition:background-color .22s cubic-bezier(0.22,1,0.36,1),border-color .22s cubic-bezier(0.22,1,0.36,1);
}
.engb-col--in .engb-node-port{right:-4px;}
.engb-col--out .engb-node-port{left:-4px;}
.engb-node.is-active{
  border-color:var(--accent);
  box-shadow:
    0 4px 12px -4px rgba(43,98,227,.16),
    0 0 0 1px var(--accent-border);
  transform:translateY(-2px);
  background:#fff;
}
.engb-node.is-active .engb-node-port{background:var(--accent);border-color:var(--accent);}
@keyframes port-ping{
  0%{transform:translate(-50%,-50%) scale(1);opacity:1;}
  100%{transform:translate(-50%,-50%) scale(4.5);opacity:0;}
}
.engb-node.is-active .engb-node-port::after{
  content:'';position:absolute;top:50%;left:50%;
  width:7px;height:7px;border-radius:999px;
  border:1px solid var(--accent);
  transform:translate(-50%,-50%);
  animation:port-ping 1.6s cubic-bezier(0.22,1,0.36,1) infinite;
}
.engb-node-code{
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  color:var(--t3);letter-spacing:.14em;
  transition:color .22s cubic-bezier(0.22,1,0.36,1);
}
.engb-node.is-active .engb-node-code{color:var(--accent);}
.engb-col--out .engb-node-code{order:2;}
.engb-node-name{font-size: var(--text-lg);font-weight:500;color:#0d1526;letter-spacing:-.005em;}
.engb-col--out .engb-node-name{order:1;}
.engb-node-meta,.engb-node-val{
  grid-column:1 / -1;
  font-family:var(--font-mono);font-size: var(--text-sm);font-weight:500;color:var(--t3);letter-spacing:.04em;
  font-feature-settings:"tnum" 1,"lnum" 1,"liga" 0,"zero" 1;
}
.engb-node-val{color:#0d1526;font-size: var(--text-lg);font-weight:600;letter-spacing:-.015em;}
.engb-node-val em{font-style:normal;color:var(--t3);font-size: var(--text-sm);font-weight:500;margin-left:3px;}
.engb-wires{
  grid-column:2;
  grid-row:1;
  width:100%;height:100%;
  pointer-events:none;z-index:1;
}
@keyframes engb-flow{
  to{stroke-dashoffset:-20;}
}
.engb-wire{
  fill:none;stroke:rgba(13,21,38,.22);stroke-width:1;
  vector-effect:non-scaling-stroke;stroke-dasharray:3 3;
  transition:stroke .3s cubic-bezier(0.22,1,0.36,1),stroke-width .3s cubic-bezier(0.22,1,0.36,1);
}
.engb-wire.is-active{
  stroke:var(--accent);
  stroke-dasharray:4 4;
  stroke-width:1.4;
  animation:engb-flow .8s linear infinite;
}
.engb-core{
  grid-column:2;
  grid-row:1;
  display:flex;justify-content:center;align-items:center;
  position:relative;z-index:2;align-self:center;
}
.engb-core-frame{
  position:relative;background:#fff;
  border:1px solid rgba(13,21,38,.18);border-radius:2px;
  padding:28px 32px 24px;min-width:200px;text-align:center;
}
.engb-core-corner{
  position:absolute;width:9px;height:9px;
  border:1px solid var(--accent);
}
.engb-core-corner--tl{top:-4px;left:-4px;border-right:none;border-bottom:none;}
.engb-core-corner--tr{top:-4px;right:-4px;border-left:none;border-bottom:none;}
.engb-core-corner--bl{bottom:-4px;left:-4px;border-right:none;border-top:none;}
.engb-core-corner--br{bottom:-4px;right:-4px;border-left:none;border-top:none;}
.engb-core-label{
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  color:var(--accent);letter-spacing:.22em;text-transform:uppercase;
  margin-bottom:10px;
}
.engb-core-score{display:flex;align-items:baseline;justify-content:center;gap:6px;}
.engb-core-num{
  font-family:var(--font-mono);font-size: var(--text-6xl);font-weight:600;line-height:1;
  color:#0d1526;letter-spacing:-.045em;
  font-feature-settings:"tnum" 1,"lnum" 1,"zero" 1;
}
.engb-core-denom{font-family:var(--font-mono);font-size: var(--text-md);font-weight:600;color:var(--t3);letter-spacing:.04em;}
.engb-core-foot{
  margin-top:10px;padding-top:10px;border-top:1px solid rgba(13,21,38,.08);
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  color:var(--t3);letter-spacing:.16em;text-transform:uppercase;
}

/* Staggered entrance animations for V2 schematic */
@keyframes engb-slide-in-left{
  0%{opacity:0;transform:translateX(-14px);}
  100%{opacity:1;transform:translateX(0);}
}
@keyframes engb-slide-in-right{
  0%{opacity:0;transform:translateX(14px);}
  100%{opacity:1;transform:translateX(0);}
}
@keyframes engb-fade-in{
  0%{opacity:0;}
  100%{opacity:1;}
}
.engine-carousel[data-version="v2"] .engb-node--in{
  animation:engb-slide-in-left .55s cubic-bezier(0.22,1,0.36,1) both;
}
.engine-carousel[data-version="v2"] .engb-node--out{
  animation:engb-slide-in-right .55s cubic-bezier(0.22,1,0.36,1) both;
}
.engine-carousel[data-version="v2"] .engb-wires,
.engine-carousel[data-version="v2"] .engb-core{
  animation:engb-fade-in .75s cubic-bezier(0.22,1,0.36,1) both;
}

/* ══════════════════════════════════════════════
   V3 — Input / Process / Output ledger
══════════════════════════════════════════════ */
.engd{padding:8px 0;}
.engd-frame{
  background:#fff;border:1px solid rgba(13,21,38,.10);border-radius:2px;
  box-shadow:0 18px 54px -44px rgba(13,28,54,.32);
  overflow:hidden;
}
.engd-frame-meta{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:14px 24px;border-bottom:1px solid rgba(13,21,38,.08);
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--t3);
}
.engd-frame-meta>span:last-child{color:var(--accent);}
.engd-frame-meta--foot{
  border-top:1px solid rgba(13,21,38,.08);border-bottom:none;
  color:var(--t4);font-size: var(--text-2xs);letter-spacing:.14em;
}
.engd-frame-meta--foot>span:last-child{color:var(--t4);}
.engd-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  align-items:stretch;
}
.engd-col{display:flex;flex-direction:column;min-width:0;padding:22px 24px 20px;}
.engd-col--core{
  background:linear-gradient(180deg,rgba(43,98,227,.04),rgba(43,98,227,.015));
  border-left:1px solid rgba(13,21,38,.08);
  border-right:1px solid rgba(13,21,38,.08);
}
.engd-col-head{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;
  padding-bottom:14px;margin-bottom:14px;
  border-bottom:1px solid rgba(13,21,38,.10);
}
.engd-col-step{
  font-family:var(--font-mono);font-size: var(--text-3xl);font-weight:600;line-height:1;
  color:var(--t4);letter-spacing:-.045em;
  font-feature-settings:"tnum" 1,"lnum" 1,"zero" 1;
}
.engd-col-step--accent{color:var(--accent);}
.engd-col-headstack{display:flex;flex-direction:column;gap:3px;min-width:0;}
.engd-col-tag{
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--t3);
}
.engd-col-tag--accent{color:var(--accent);}
.engd-col-name{font-size: var(--text-md);color:#0d1526;font-weight:500;letter-spacing:-.005em;}
.engd-rows{list-style:none;margin:0;padding:0;flex:1 1;display:flex;flex-direction:column;}
.engd-row{
  display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:baseline;
  padding:12px 0;border-bottom:1px solid rgba(13,21,38,.05);
}
.engd-row:last-child{border-bottom:none;}
.engd-row-code{
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;
  color:var(--t3);letter-spacing:.14em;
}
.engd-row-code--accent{color:var(--accent);}
.engd-row-name{font-size: var(--text-md);color:#0d1526;font-weight:500;letter-spacing:-.005em;}
.engd-row-meta{
  grid-column:2 / -1;
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:500;
  color:var(--t3);letter-spacing:.04em;
  font-feature-settings:"tnum" 1,"lnum" 1,"liga" 0,"zero" 1;
}
.engd-row--out{grid-template-columns:auto 1fr auto;}
.engd-row-val{
  grid-row:1;grid-column:3;justify-self:end;white-space:nowrap;
  font-family:var(--font-mono);font-size: var(--text-lg);font-weight:600;
  color:#0d1526;letter-spacing:-.02em;
  font-feature-settings:"tnum" 1,"lnum" 1,"zero" 1;
}
.engd-row-val em{font-style:normal;color:var(--t3);font-size: var(--text-xs);font-weight:500;margin-left:3px;}
.engd-row-delta{
  grid-column:2 / -1;justify-self:end;margin-top:2px;
  font-family:var(--font-mono);font-size: var(--text-xs);font-weight:600;
  color:var(--accent);letter-spacing:.04em;
}
.engd-col-foot{
  margin-top:14px;padding-top:12px;border-top:1px solid rgba(13,21,38,.06);
  font-family:var(--font-mono);font-size: var(--text-2xs);font-weight:600;
  color:var(--t4);letter-spacing:.14em;text-transform:uppercase;
}
.engd-core-block{
  margin-bottom:14px;padding:16px 14px 14px;
  background:#fff;border:1px solid rgba(43,98,227,.16);border-radius:2px;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.engd-core-score{display:flex;align-items:baseline;gap:5px;}
.engd-core-num{
  font-family:var(--font-mono);font-size: var(--text-5xl);font-weight:600;line-height:1;
  color:#0d1526;letter-spacing:-.045em;
  font-feature-settings:"tnum" 1,"lnum" 1,"zero" 1;
}
.engd-core-denom{font-family:var(--font-mono);font-size: var(--text-sm);font-weight:600;color:var(--t3);letter-spacing:.04em;}
.engd-core-progress{position:relative;width:100%;height:2px;background:rgba(13,21,38,.08);}
.engd-core-progress-fill{position:absolute;left:0;top:0;height:100%;background:var(--accent);}
.engd-core-label{
  font-family:var(--font-mono);font-size: var(--text-2xs);font-weight:700;
  color:var(--accent);letter-spacing:.22em;text-transform:uppercase;
}
.engd-rows--steps .engd-row{padding:10px 0;}
.engd-row--step .engd-row-name{font-weight:600;}
.engd-chev{
  display:flex;flex-direction:column;justify-content:space-around;align-items:center;
  width:32px;padding:64px 0 32px;
  font-family:var(--font-mono);font-size: var(--text-base);line-height:1;
  color:rgba(13,21,38,.22);-webkit-user-select:none;user-select:none;
}
.engd-chev--right{color:rgba(43,98,227,.55);}

/* ══════════════════════════════════════════════
   V4 — Input / Process / Output operating view
══════════════════════════════════════════════ */
.engh{padding:8px 0;}
.engh-shell{
  background:#fff;border:1px solid rgba(13,21,38,.10);border-radius:2px;
  box-shadow:0 24px 70px -52px rgba(13,28,54,.32);
  overflow:hidden;
}
.engh-head{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:24px 28px 22px;border-bottom:1px solid rgba(13,21,38,.08);
  background:
    linear-gradient(90deg,rgba(11,95,255,.055),transparent 52%),
    linear-gradient(rgba(13,21,38,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(13,21,38,.025) 1px,transparent 1px);
  background-size:auto,28px 28px,28px 28px;
}
.engh-kicker,.engh-lane-head span,.engh-node-code,.engh-score-label,.engh-core-tag,.engh-step-id{
  font-family:var(--font-mono);font-weight:700;text-transform:uppercase;
  font-variant-numeric:slashed-zero;
  font-feature-settings:"tnum" 1,"lnum" 1,"liga" 0,"zero" 1, "zero";
}
.engh-kicker{display:block;margin-bottom:8px;font-size: var(--text-xs);letter-spacing:.24em;color:var(--accent);}
.engh-title{margin:0;font-size: var(--text-fluid-sm);line-height:1.02;color:#0d1526;font-weight:600;letter-spacing:-.035em;}
.engh-score{
  flex:0 0 auto;display:grid;gap:4px;justify-items:end;
  padding:12px 16px;background:rgba(255,255,255,.86);
  border:1px solid rgba(13,21,38,.10);border-radius:2px;
}
.engh-score-label{font-size: var(--text-2xs);letter-spacing:.18em;color:var(--t3);}
.engh-score-value{
  font-family:var(--font-mono);font-size: var(--text-5xl);font-weight:600;line-height:1;
  color:#0d1526;letter-spacing:-.045em;font-feature-settings:"tnum" 1,"lnum" 1,"zero" 1;
}
.engh-score-value em{font-style:normal;margin-left:4px;font-size: var(--text-md);color:var(--t3);letter-spacing:0;font-weight:500;}
.engh-flow-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.86fr) minmax(0,1.12fr);
  min-height:470px;
}
.engh-lane,.engh-process{position:relative;padding:24px 24px 26px;min-width:0;}
.engh-process{
  border-left:1px solid rgba(13,21,38,.08);border-right:1px solid rgba(13,21,38,.08);
  background:#fafcff;
}
.engh-lane-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:18px;}
.engh-lane-head span{font-size: var(--text-xs);letter-spacing:.22em;color:var(--accent);}
.engh-lane-head strong{font-size: var(--text-md);font-weight:600;color:var(--t2);}
.engh-input-list,.engh-output-list{display:grid;gap:12px;}
.engh-input-card{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;
  padding:15px 14px;background:#fff;border:1px solid rgba(13,21,38,.09);border-radius:2px;
}
.engh-input-card h4,.engh-output-card h4,.engh-step h4{
  margin:0;color:#0d1526;font-weight:600;letter-spacing:-.01em;
}
.engh-input-card h4{font-size: var(--text-md);}
.engh-input-card p,.engh-step p{
  margin:4px 0 0;color:var(--t3);font-size: var(--text-base);line-height:1.45;font-weight:500;
}
.engh-node-code{font-size: var(--text-xs);letter-spacing:.14em;color:var(--accent);padding-top:2px;}
.engh-process-core{
  position:relative;display:grid;gap:8px;place-items:center;text-align:center;
  min-height:136px;margin-bottom:18px;padding:22px 18px;
  background:#fff;border:1px solid rgba(13,21,38,.12);border-radius:2px;
}
.engh-process-core::before,.engh-process-core::after{
  content:'';position:absolute;top:50%;width:42px;height:1px;background:rgba(11,95,255,.28);
}
.engh-process-core::before{left:-42px;}
.engh-process-core::after{right:-42px;}
.engh-core-tag{font-size: var(--text-xs);letter-spacing:.18em;color:var(--accent);}
.engh-core-name{font-size: var(--text-2xl);font-weight:600;color:#0d1526;letter-spacing:-.02em;}
.engh-core-line{width:54px;height:2px;background:var(--accent);}
.engh-step-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.engh-step{
  display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;
  padding:13px 14px;background:#fff;border:1px solid rgba(13,21,38,.08);border-radius:2px;
}
.engh-step-id{
  width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(11,95,255,.08);color:var(--accent);font-size: var(--text-xs);letter-spacing:.04em;
}
.engh-step h4{font-size: var(--text-md);}
.engh-output-card{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;
  padding:15px 16px;background:#fff;border:1px solid rgba(13,21,38,.09);border-radius:2px;
}
.engh-output-main{display:grid;gap:6px;min-width:0;}
.engh-output-main h4{font-size: var(--text-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.engh-output-metric{display:grid;gap:5px;justify-items:end;text-align:right;}
.engh-output-metric span{
  font-family:var(--font-mono);font-size: var(--text-3xl);font-weight:600;line-height:1;color:#0d1526;
  letter-spacing:-.04em;font-feature-settings:"tnum" 1,"lnum" 1,"zero" 1;white-space:nowrap;
}
.engh-output-metric span em{font-style:normal;margin-left:4px;font-size: var(--text-xs);color:var(--t3);font-weight:500;letter-spacing:0;}
.engh-output-metric strong{font-family:var(--font-mono);font-size: var(--text-xs);font-weight:700;color:var(--accent);letter-spacing:.05em;white-space:nowrap;}

@media(max-width:880px){
  .engcar-bar{width:calc(100% - 24px);gap:10px;padding:7px 12px;}
  .engcar-label{font-size: var(--text-sm);}
  .engb-board{grid-template-columns:1fr;gap:22px;min-height:0;}
  .engb-wires{display:none;}
  .engb-col--out .engb-node{text-align:left;grid-template-columns:auto 1fr;}
  .engb-col--out .engb-node-code{order:0;}
  .engb-col--out .engb-node-name{order:0;}
  .engb-col,.engb-col--in,.engb-col--out{align-items:stretch;}
  .engd-grid{grid-template-columns:1fr;}
  .engd-col--core{border-left:none;border-right:none;border-top:1px solid rgba(13,21,38,.08);border-bottom:1px solid rgba(13,21,38,.08);}
  .engd-chev{flex-direction:row;width:auto;padding:0 24px;height:28px;}
  .engd-chev>span{transform:rotate(90deg);}
  .engh-head{align-items:flex-start;flex-direction:column;padding:22px 20px;}
  .engh-score{justify-items:start;}
  .engh-flow-grid{grid-template-columns:1fr;min-height:0;}
  .engh-lane,.engh-process{padding:20px;}
  .engh-process{border-left:none;border-right:none;border-top:1px solid rgba(13,21,38,.08);border-bottom:1px solid rgba(13,21,38,.08);}
  .engh-process-core::before,.engh-process-core::after{display:none;}
  .engh-output-card{grid-template-columns:1fr;}
  .engh-output-metric{justify-items:start;text-align:left;}
}

/* ── Chapter 04 · Customer Story carousel (Harvey-style pull quote) ── */
section.cstory{
  background:var(--bg);
  color:var(--t1);
  padding:120px 0 96px;
  position:relative;
  isolation:isolate;
}
.cstory-stage{position:relative;display:grid;}
.cstory-slide{
  grid-area:1/1;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(14px);
  transition:opacity .9s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),visibility 0s linear .9s;
  will-change:opacity,transform;
}
.cstory-slide[data-state="active"]{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateY(0);
  transition:opacity .9s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),visibility 0s linear 0s;
}
.cstory-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(40px,7vw,112px);
  align-items:start;
}
.cstory-portrait{
  margin:0;
  aspect-ratio:1/1;
  width:100%;
  max-width:560px;
  overflow:hidden;
  background:var(--bg-elev-2);
  border-radius:6px;
  position:relative;
}
.cstory-portrait img{
  width:100%;height:100%;
  object-fit:cover;display:block;
  filter:saturate(.96);
  transform:scale(1.04);
  transition:transform 1.4s cubic-bezier(.22,1,.36,1);
}
.cstory-slide[data-state="active"] .cstory-portrait img{transform:scale(1);}
.cstory-body{
  padding-top:clamp(24px,5vw,72px);
  display:flex;
  flex-direction:column;
  gap:36px;
  max-width:640px;
}
.cstory-kicker{
  font-family:var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--t3);
}
.cstory-quote{
  font-family:var(--font-hero);
  font-weight:400;
  font-size: var(--text-fluid-xs);
  line-height:1.32;
  letter-spacing:-.008em;
  color:var(--t1);
  margin:0;
  text-wrap:pretty;
}
.cstory-quote-mark{
  display:inline;
  margin-right:.04em;
}
.cstory-attr{
  display:flex;
  flex-direction:column;
  gap:2px;
  font-family:var(--font-sans);
  font-size: var(--text-lg);
  line-height:1.55;
  color:var(--t2);
}
.cstory-name{
  font-weight:600;
  font-size: var(--text-xl);
  color:var(--t1);
  margin-bottom:4px;
  letter-spacing:-.005em;
}
.cstory-role,.cstory-org{font-weight:400;}

.cstory-ticks{
  margin-top:clamp(56px,8vw,104px);
  display:flex;gap:24px;
}
.cstory-tick{
  position:relative;flex:1 1;
  display:block;height:14px;
  background:transparent;border:0;padding:0;
  cursor:pointer;appearance:none;
}
.cstory-tick:focus-visible{outline:1px solid var(--accent);outline-offset:4px;}
.cstory-tick-bar{
  position:absolute;left:0;right:0;top:50%;
  height:1px;background:rgba(232,237,245,.16);
  transform:translateY(-50%);
  transition:background .3s ease,height .3s ease;
}
.cstory-tick.is-active .cstory-tick-bar{background:rgba(232,237,245,.22);height:2px;}
.cstory-tick:hover .cstory-tick-bar{background:rgba(232,237,245,.34);}
.cstory-tick-progress{
  position:absolute;left:0;right:0;top:50%;
  height:2px;background:var(--t1);
  transform:scaleX(0);transform-origin:left center;
  margin-top:-1px;
  transition:transform 80ms linear;
}

@media (prefers-reduced-motion: reduce){
  .cstory-slide{transition:opacity .25s linear,visibility 0s linear .25s;transform:none;}
  .cstory-slide[data-state="active"]{transition:opacity .25s linear,visibility 0s linear 0s;transform:none;}
  .cstory-portrait img{transform:none;transition:none;}
  .cstory-tick-progress{display:none;}
}

@media (max-width:880px){
  section.cstory{padding:80px 0 64px;}
  .cstory-grid{grid-template-columns:1fr;gap:36px;}
  .cstory-portrait{max-width:none;aspect-ratio:4/5;}
  .cstory-body{padding-top:0;gap:28px;}
  .cstory-ticks{margin-top:48px;gap:16px;}
}

/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/styles/intake.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************/
/* ── Page layout ──
   The page scrolls as one document (like the report page); the step nav and
   live preview columns stick below the 76px sticky header instead of owning
   their own scroll boxes. */
.intake-page{min-height:calc(100vh - 76px);padding:28px 0 80px;background:var(--bg);}
.intake-wrap{max-width:1320px;margin:0 auto;padding:0 32px;display:flex;flex-direction:column;}

.intake-top{margin-bottom:18px;}
.intake-top h1{font-size: var(--text-3xl);font-weight:760;color:var(--t1);letter-spacing:0;margin:0;}
.intake-top p{font-size: var(--text-md);color:var(--t2);margin:7px 0 0;max-width:820px;line-height:1.55;}
.intake-title-copy{min-width:0;}

.intake-cols{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start;}
.intake-workbench{grid-template-columns:220px minmax(0,1fr) 280px;gap:16px;align-items:start;padding:0;}
.intake-workbench>.form-panel{grid-column:2;}
.intake-workbench>.cap-preview{grid-column:3;}
.intake-file-accelerator{margin:0 0 16px;border:1px solid var(--bl);background:var(--card);box-shadow:none;border-radius:2px;overflow:hidden;}
.intake-file-accelerator summary{list-style:none;cursor:pointer;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.intake-file-accelerator summary::-webkit-details-marker{display:none;}
.intake-file-accelerator summary:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;}
.intake-file-accelerator summary span{display:flex;flex-direction:column;gap:3px;min-width:0;}
.intake-file-accelerator summary strong{font-size:var(--text-lg);font-weight:780;color:var(--t1);line-height:1.2;}
.intake-file-accelerator summary em{font-style:normal;font-size:var(--text-sm);line-height:1.45;color:var(--t2);}
/* Match secondary .btn-sm — intake chrome only uses primary (.btn-blue) + secondary (.btn-sm). */
.intake-file-accelerator summary b{
  font-size:var(--text-md);font-weight:600;font-style:normal;color:var(--accent);
  padding:7px 16px;border-radius:2px;border:1px solid var(--accent-border);background:transparent;
  white-space:nowrap;transition:background .18s,color .18s,border-color .18s;
}
.intake-file-accelerator summary:hover b{background:var(--accent-soft);color:var(--accent);border-color:var(--bm);}
.intake-file-accelerator[open] summary{border-bottom:1px solid var(--bl);}
.intake-file-accelerator[open] summary b::after{content:' ↑';}
.intake-file-accelerator:not([open]) summary b::after{content:' ↓';}
.intake-file-accelerator-body{padding:14px;}
.intake-file-accelerator .smart-zone-shell{margin-bottom:0;background:#fff!important;border-style:dashed!important;}
.form-panel>.intake-top{padding:20px 24px 0;margin-bottom:16px;}
.form-panel>.intake-file-accelerator{margin:0 24px 16px;}

/* Intake form chrome: only two button classes.
   primary  = .btn-blue (filled accent, flat — no blue glow / sheen)
   secondary = .btn-sm  (outline accent) */
.form-panel .btn-blue,
.intake-file-accelerator .btn-blue{
  padding:7px 16px;font-size:var(--text-md);min-height:34px;
  background:var(--blue);border-color:var(--blue);box-shadow:none;letter-spacing:.02em;
}
.form-panel .btn-blue:hover,
.intake-file-accelerator .btn-blue:hover{
  background:var(--blue-d);border-color:var(--blue-d);transform:none;letter-spacing:.02em;box-shadow:none;
}
.form-panel .btn-blue::after,
.intake-file-accelerator .btn-blue::after{display:none;}
.form-panel .btn-blue:disabled,
.form-panel .btn-blue.is-disabled,
.intake-file-accelerator .btn-blue:disabled{
  opacity:.55;cursor:not-allowed;transform:none;letter-spacing:.02em;
  background:var(--line);border-color:transparent;color:var(--t4);
  box-shadow:none;
}
.form-panel .btn-blue:disabled:hover,
.form-panel .btn-blue.is-disabled:hover,
.intake-file-accelerator .btn-blue:disabled:hover{
  transform:none;letter-spacing:.02em;background:var(--line);border-color:transparent;box-shadow:none;
}
.form-panel .btn-sm,
.intake-file-accelerator .btn-sm{min-height:34px;}
.form-panel a.btn-blue{text-decoration:none;}
.form-panel .form-row-add.btn-sm{width:100%;justify-content:center;}

/* Keep customer-facing intake controls aligned with the square RVC input system. */
.intake-page .ant-input,
.intake-page .ant-input-affix-wrapper,
.intake-page .ant-input-number,
.intake-page .ant-input-number-affix-wrapper,
.intake-page .ant-select,
.intake-page .ant-select-single,
.intake-page .ant-select-multiple,
.intake-page .ant-select-selector,
.intake-page .ant-select-selection-search,
.intake-page .ant-select-selection-item,
.intake-page .ant-select-selection-placeholder,
.intake-page .ant-segmented,
.intake-page .ant-segmented-item,
.intake-page .ant-upload-list-item,
.intake-page .ant-btn {
  border-radius:0!important;
}

.intake-page textarea.ant-input,
.intake-page .ant-input-show-count::after {
  border-radius:0!important;
}

.intake-page .ant-input-number-group-addon,
.intake-page .ant-space-compact .ant-input-number:first-child,
.intake-page .ant-space-compact .ant-select:first-child .ant-select-selector {
  border-radius:0!important;
}

.intake-page .ant-space-compact .ant-input-number:last-child,
.intake-page .ant-space-compact .ant-select:last-child .ant-select-selector {
  border-radius:0!important;
}

.intake-page .ant-select-focused .ant-select-selector,
.intake-page .ant-select-open .ant-select-selector,
.intake-page .ant-select:hover .ant-select-selector {
  border-radius:0!important;
}

/* ── Step nav ── */
.step-nav{position:sticky;top:88px;background:var(--card);border:1px solid var(--bl);border-radius:2px;padding:14px 10px;box-shadow:var(--sh);}
/* Sticks below the 76px header; scrolls internally only if taller than the viewport. */
.intake-sidebar-nav{position:sticky;top:92px;max-height:calc(100vh - 108px);overflow:auto;z-index:10;}
.snav-title{font-size: var(--text-2xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);padding:0 6px;margin-bottom:10px;}
.step-item{display:flex;align-items:center;gap:10px;padding:10px 10px;border-radius:2px;cursor:pointer;transition:all .18s;margin-bottom:6px;border:1px solid transparent;}
.step-item:hover{background:var(--blue-s);}
.step-item:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
.step-item.active{background:var(--accent-soft);border-color:var(--accent-border);box-shadow:inset 3px 0 0 var(--blue);}
.step-item.completed .step-num{background:#16B364;border-color:#16B364;color:#fff;}
.step-item.completed .step-lbl{color:#169557;font-weight:700;}
/* In-progress: the badge fills bottom-up with the page's fill ratio (--fill
   set inline), so "touched but not done" reads differently from a checkmark. */
.step-item.started .step-num{border-color:var(--bm);color:var(--blue);background:linear-gradient(to top,var(--accent-soft) var(--fill,0%),#fff var(--fill,0%));}

/* Button-specific reset for step nav items */
.step-nav button.step-item{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:8px;border-radius:2px;cursor:pointer;transition:all .18s;margin-bottom:4px;border:1px solid transparent;font:inherit;text-align:left;color:inherit;box-sizing:border-box;}
.step-nav button.step-item:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
.step-nav button.step-item::-moz-focus-inner{border:0;padding:0;}
.step-num{width:24px;height:24px;border-radius:2px;flex-shrink:0;border:1.5px solid var(--bl);display:flex;align-items:center;justify-content:center;font-size: var(--text-xs);font-weight:760;color:var(--t3);transition:all .2s;background:#fff;}
.step-item.active .step-num{background:var(--blue);border-color:var(--blue);color:#fff;}
.step-lbl{font-size: var(--text-sm);font-weight:620;color:var(--t2);line-height:1.25;transition:color .2s;}
.step-item.active .step-lbl{color:var(--blue);font-weight:700;}
.step-nav-progress{border-top:1px solid var(--bl);margin:14px 8px 2px;padding-top:14px;}
.step-nav-progress-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:var(--text-sm);color:var(--t3);}
.step-nav-progress-row strong{font-size:var(--text-sm);color:var(--t3);}
.step-nav-progress-track{height:5px;background:var(--accent-soft);border-radius:2px;overflow:hidden;margin-top:8px;}
.step-nav-progress-fill{height:100%;background:var(--blue);border-radius:2px;transition:width .2s;}
.intake-stagebar{position:static;display:grid;grid-template-columns:auto repeat(8,minmax(96px,1fr));gap:8px;align-items:center;padding:10px 12px;overflow-x:auto;border-radius:2px;}
.intake-stagebar .snav-title{padding:0;margin:0 6px 0 0;white-space:nowrap;}
.intake-stagebar button.step-item{width:auto;min-width:0;margin:0;padding:8px;border-radius:2px;justify-content:flex-start;}
.intake-stagebar .step-num{width:22px;height:22px;border-radius:2px;font-size:var(--text-xs);}
.intake-stagebar .step-lbl{font-size:var(--text-sm);line-height:1.15;white-space:normal;}

/* ── Form panel ── */
.form-panel{background:var(--card);border:1px solid var(--bl);border-radius:var(--r);box-shadow:none;overflow:visible;}
.form-head{padding:20px 24px 16px;border-bottom:1px solid var(--bl);display:flex;justify-content:space-between;align-items:flex-start;}
.fh-step{font-size: var(--text-sm);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:3px;}
.fh-title{font-size: var(--text-xl);font-weight:700;color:var(--t1);letter-spacing:-.02em;}
.fh-desc{font-size: var(--text-base);color:var(--t2);margin-top:3px;}
.fh-save{font-size: var(--text-sm);font-weight:700;padding:5px 11px;border-radius:2px;background:rgba(22,179,100,0.1);color:var(--ok);border:1px solid rgba(22,179,100,0.2);white-space:nowrap;}

/* Step content */
.step-content{display:none;padding:24px;}
.step-content.active{display:block;}
.form-sec{font-size: var(--text-sm);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:16px;}
.form-sec-reason{font-size:var(--text-sm);line-height:1.45;color:var(--t3);background:var(--accent-soft);border-left:2px solid var(--bm);padding:7px 9px;margin:-8px 0 16px;}
.form-div{height:1px;background:var(--bl);margin:18px 0;}
.form-table-input{overflow-x:auto;}

/* ── Row cards (TableInput) ──
   Repeating entries render as cards, not as a wide scrolling table: the
   4-7 column tables never fit the 700px form panel. Cells pair up two per
   line and collapse to one column on narrow viewports. */
.form-row-cards{display:flex;flex-direction:column;gap:10px;}
.form-row-card{border:1px solid var(--bl);border-radius:2px;background:#fcfdff;padding:10px 12px 12px;}
.form-row-card-head{display:flex;align-items:center;justify-content:space-between;min-height:22px;margin-bottom:6px;}
.form-row-card-head span{font-size:var(--text-2xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);}
.form-row-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;}
.form-row-cell{min-width:0;}
.form-row-cell-full{grid-column:1 / -1;}
.form-row-cell label,.form-row-cell-label{display:block;margin-bottom:3px;font-size:var(--text-sm);font-weight:600;color:var(--t2);line-height:1.3;}
.form-row-cell label em,.form-row-cell-label em{margin-left:4px;font-style:normal;font-size:var(--text-xs);font-weight:500;color:var(--t4);}
.form-row-add{margin-top:2px;}

/* ── Checklist with upload ──
   One row per named item: does the company have it, and the proving document
   right there. A slot already filled elsewhere shows as 已上传 rather than
   asking for the same file twice. */
.checklist-upload{display:flex;flex-direction:column;gap:10px;}
.checklist-row{border:1px solid var(--bl);border-radius:2px;background:#fcfdff;padding:10px 12px 12px;}
.checklist-row-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.checklist-row-name{font-size:var(--text-md);font-weight:700;color:var(--t1);}
.checklist-row-flag{font-size:var(--text-2xs);font-weight:700;color:#169557;background:rgba(22,179,100,.1);border:1px solid rgba(22,179,100,.3);border-radius:2px;padding:1px 6px;}
.checklist-row-body{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:12px;align-items:start;}
.checklist-row-status label,.checklist-file-label{display:block;margin-bottom:3px;font-size:var(--text-sm);font-weight:600;color:var(--t2);}
.checklist-row-nodoc{display:block;padding-top:22px;font-size:var(--text-sm);color:var(--t4);line-height:1.4;}
.managed-file-slot-hint{padding:10px 12px;border:1px dashed var(--bl);border-radius:2px;background:var(--bg2);font-size:var(--text-sm);color:var(--t4);line-height:1.5;}
.checklist-file-cell .ant-upload-wrapper{display:block;}
@media(max-width:720px){.checklist-row-body{grid-template-columns:minmax(0,1fr);}}
@media(max-width:720px){.form-row-card-grid{grid-template-columns:minmax(0,1fr);}}
.form-table-input .ant-table{min-width:max-content;}
.form-table-input .ant-table-cell{vertical-align:top;white-space:normal;}
.form-table-input .ant-table-thead>tr>th{white-space:normal;line-height:1.35;}
.form-table-input .form-table-select.ant-select-multiple .ant-select-selector{height:auto!important;min-height:32px;align-items:flex-start;padding-top:1px;padding-bottom:1px;}
.form-table-input .form-table-select.ant-select-multiple .ant-select-selection-overflow{align-items:flex-start;row-gap:4px;white-space:normal;}
.form-table-input .form-table-select.ant-select-multiple .ant-select-selection-overflow-item{max-width:100%;}
.form-table-input .form-table-select.ant-select-multiple .ant-select-selection-item{height:auto;min-height:22px;line-height:18px;align-items:flex-start;white-space:normal;overflow-wrap:anywhere;word-break:break-word;padding:2px 6px;}
.form-table-input .form-table-select.ant-select-multiple .ant-select-selection-item-content{white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:18px;}
.intake-readable-select.ant-select .ant-select-selector{height:auto!important;min-height:34px;align-items:flex-start!important;padding-top:4px!important;padding-bottom:4px!important;}
.intake-readable-select.ant-select-single .ant-select-selector .ant-select-selection-item,
.intake-readable-select.ant-select-single .ant-select-selector .ant-select-selection-placeholder{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;padding-inline-end:24px;overflow-wrap:anywhere;word-break:break-word;}
.intake-readable-select.ant-select-single .ant-select-selector .ant-select-selection-search{inset-inline-start:8px;inset-inline-end:28px;}
.intake-readable-select.ant-select-multiple .ant-select-selection-overflow{align-items:flex-start;row-gap:4px;white-space:normal;}
.intake-readable-select.ant-select-multiple .ant-select-selection-overflow-item{max-width:100%;}
.intake-readable-select.ant-select-multiple .ant-select-selection-placeholder{white-space:normal;line-height:1.35;overflow-wrap:anywhere;word-break:break-word;}
.intake-readable-select.ant-select-multiple .ant-select-selection-item{height:auto;min-height:22px;line-height:18px;align-items:flex-start;white-space:normal;overflow-wrap:anywhere;word-break:break-word;padding:2px 6px;}
.intake-readable-select.ant-select-multiple .ant-select-selection-item-content{white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:18px;}
.intake-readable-select-dropdown{min-width:min(440px,calc(100vw - 32px));max-width:min(560px,calc(100vw - 32px));}
.intake-readable-select-dropdown .ant-select-item{min-height:auto;align-items:flex-start;padding-top:8px;padding-bottom:8px;}
.intake-readable-select-dropdown .ant-select-item-option-content{white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.4;}
.narrative-readiness-input,.investor-faq-responses-input{display:flex;flex-direction:column;gap:14px;}
.narrative-readiness-block{border:1px solid var(--bl);background:#fff;border-radius:0;padding:16px;display:flex;flex-direction:column;gap:14px;}
.narrative-readiness-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;}
.narrative-readiness-index{display:inline-flex;align-items:center;justify-content:center;width:34px;height:28px;border:1px solid var(--bl);background:var(--accent-soft);color:var(--blue);font-size:var(--text-sm);font-weight:760;line-height:1;border-radius:0;}
.narrative-readiness-head h4{font-size:var(--text-md);line-height:1.25;color:var(--t1);font-weight:760;margin:0 0 4px;}
.narrative-readiness-head p{font-size:var(--text-sm);line-height:1.5;color:var(--t2);margin:0;max-width:880px;}
.narrative-readiness-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.narrative-readiness-field>span{font-size:var(--text-sm);font-weight:700;color:var(--t2);line-height:1.3;}
.narrative-readiness-claim textarea{font-size:var(--text-md);line-height:1.55;}
.narrative-readiness-urgency{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:12px;border:1px solid var(--bl);background:var(--accent-soft);padding:12px;}
.narrative-readiness-urgency .narrative-readiness-field:nth-child(n+3){grid-column:span 1;}
.narrative-readiness-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:12px;}
.narrative-readiness-grid .narrative-readiness-field:nth-child(n+3){grid-column:span 1;}
@media (max-width:760px){
  .narrative-readiness-block{padding:14px;}
  .narrative-readiness-urgency{grid-template-columns:1fr;}
  .narrative-readiness-grid{grid-template-columns:1fr;}
}
.path-diagnostic{margin-bottom:26px;border-bottom:1px solid var(--bl);padding-bottom:24px;}
.path-diagnostic-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px;}
.path-diagnostic-head p{font-size:var(--text-md);line-height:1.55;color:var(--t2);margin:-8px 0 0;max-width:760px;}
.path-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.path-card{all:unset;box-sizing:border-box;min-height:132px;border:1px solid var(--bl);border-radius:2px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:9px;cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s,background .16s;}
.path-card:hover{border-color:var(--bm);box-shadow:var(--sh);transform:translateY(-1px);}
.path-card:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
.path-card.active{border-color:var(--blue);background:var(--accent-soft);box-shadow:0 0 0 1px var(--bl);}
.path-card-icon{width:30px;height:30px;border-radius:2px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--blue);font-size:17px;}
.path-card-body{display:flex;flex-direction:column;gap:5px;min-width:0;}
.path-card strong{font-size:var(--text-base);line-height:1.2;color:var(--t1);font-weight:780;}
.path-card em{font-style:normal;font-size:var(--text-sm);line-height:1.35;color:var(--t2);}
.path-card small{font-size:var(--text-xs);line-height:1.35;color:var(--t3);}
.evidence-step-upload{display:grid;gap:16px;}
.evidence-step-upload-head{border:1px solid var(--bl);background:var(--accent-soft);border-radius:2px;padding:18px;}
.evidence-step-upload-head p{font-size:var(--text-md);line-height:1.6;color:var(--t2);margin:8px 0 0;}
.evidence-step-upload .smart-zone-shell{margin-bottom:0;}

/* ── Form footer ── */
.form-foot{padding:16px 24px;border-top:1px solid var(--bl);display:flex;justify-content:space-between;align-items:center;}
.form-foot-hint{font-size: var(--text-sm);color:var(--t4);}

/* ── AI Panel ── */
.ai-panel{position:sticky;top:88px;background:var(--card);border:1px solid var(--bl);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;}
.ai-head{padding:14px 14px 12px;background:linear-gradient(135deg,#07132B,#0a1f4e);}
.ai-head-row{display:flex;align-items:center;justify-content:space-between;}
.ai-head-t{font-size: var(--text-sm);font-weight:700;color:rgba(255,255,255,0.9);letter-spacing:.06em;}
.ai-live{display:flex;align-items:center;gap:5px;font-size: var(--text-2xs);font-weight:700;color:#16B364;}
.ai-live-dot{width:5px;height:5px;border-radius:50%;background:#16B364;animation:blink 1.4s infinite;}
.ai-body{padding:14px;}

.ai-score-ring{display:flex;justify-content:center;padding:8px 0 12px;}

.ai-dims{display:flex;flex-direction:column;gap:7px;margin-bottom:12px;}
.ai-dim{display:flex;flex-direction:column;gap:3px;}
.ai-dim-row{display:flex;justify-content:space-between;}
.ai-dim-name{font-size: var(--text-sm);font-weight:600;color:var(--t2);}
.ai-dim-val{font-size: var(--text-sm);font-weight:700;color:var(--blue);}
.ai-dim-bar{height:3px;background:var(--accent-soft);border-radius:2px;overflow:hidden;}
.ai-dim-fill{height:100%;border-radius:2px;}

.ai-insight{background:var(--accent-soft);border:1px solid var(--bl);border-radius:2px;padding:11px;margin-bottom:10px;}
.ai-insight-t{font-size: var(--text-sm);font-weight:700;color:var(--blue);letter-spacing:.05em;margin-bottom:5px;}
.ai-insight-item{display:flex;align-items:flex-start;gap:5px;font-size: var(--text-sm);color:var(--t2);margin-bottom:4px;line-height:1.5;}
.ai-insight-item::before{content:'·';color:var(--blue);flex-shrink:0;}

.ai-step-content{display:none;}
.ai-step-content.active{display:block;}

/* Development-only synthetic fixture control: keep its state unmistakably separate from customer data. */
.intake-dev-fixture{display:flex;align-items:end;gap:12px;margin:0 0 16px;padding:12px 14px;border:1px dashed #92620a;background:#fff8e8;border-radius:2px;color:#5f4307;}
.intake-dev-fixture>div:first-child{flex:1 1;min-width:180px;}.intake-dev-fixture strong{display:block;font-size:var(--text-sm);font-weight:800;}.intake-dev-fixture p{margin:3px 0 0;font-size:var(--text-xs);line-height:1.4;}.intake-dev-fixture label{display:flex;flex-direction:column;gap:4px;font-size:var(--text-xs);font-weight:700;}.intake-dev-fixture select{min-width:122px;height:30px;border:1px solid #c9a65c;border-radius:2px;background:#fff;color:var(--t1);padding:0 7px;}.intake-dev-fixture-badge{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border:1px solid #c9a65c;border-radius:2px;background:#fff;font-size:var(--text-xs);line-height:1.35;}.intake-dev-fixture-badge button{align-self:flex-start;border:0;padding:0;background:transparent;color:#76520b;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;}

/* ── V3 diagnostic preview ── */
.cap-preview{position:sticky;top:92px;max-height:calc(100vh - 108px);overflow:auto;background:var(--card);border:1px solid var(--bl);border-radius:2px;box-shadow:var(--sh);padding:12px;display:flex;flex-direction:column;gap:10px;z-index:10;}
.cap-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.cap-preview-kicker{font-size:var(--text-2xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);}
.cap-preview-title{font-size:var(--text-md);font-weight:750;color:var(--t1);line-height:1.2;margin-top:2px;}
.cap-preview-progress{min-width:42px;text-align:center;border:1px solid var(--bl);background:var(--accent-soft);color:var(--blue);border-radius:2px;padding:5px 6px;font-size:var(--text-sm);font-weight:750;}
.cap-preview-progress-list{display:flex;flex-direction:column;gap:8px;}
.cap-preview-progress-item{display:flex;flex-direction:column;gap:4px;}
.cap-preview-progress-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--text-xs);line-height:1.2;color:var(--t3);}
.cap-preview-progress-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cap-preview-progress-row strong{font-size:var(--text-xs);color:var(--t1);}
.cap-preview-bar{height:4px;background:var(--accent-soft);border-radius:2px;overflow:hidden;}
.cap-preview-bar-fill{height:100%;background:var(--blue);border-radius:2px;}
.cap-preview-bar-manual{background:rgba(244,156,28,.12);}
.cap-preview-bar-manual .cap-preview-bar-fill{background:linear-gradient(90deg,#D88200,#F5B544);}
.cap-preview-metric{border:1px solid var(--bl);background:var(--accent-soft);border-radius:2px;padding:10px;}
.cap-preview-metric span,.cap-preview-grid span{display:block;font-size:var(--text-sm);font-weight:650;color:var(--t3);margin-bottom:3px;}
.cap-preview-metric strong{display:block;font-size:var(--text-md);line-height:1.25;color:var(--t1);}
.cap-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.cap-preview-grid>div{border:1px solid var(--bl);border-radius:2px;padding:9px 7px;min-width:0;}
.cap-preview-grid strong{display:block;font-size:var(--text-md);font-weight:800;color:var(--t1);}
.cap-preview-grid em,.diagnostic-review-grid em{display:block;font-style:normal;font-size:var(--text-xs);line-height:1.25;color:var(--t3);margin-top:2px;}
.cap-preview-section-title{font-size:var(--text-sm);font-weight:750;color:var(--t1);margin-bottom:7px;}
.cap-preview-proof-list,.diagnostic-review-proof-list{display:flex;flex-direction:column;gap:5px;}
.cap-preview-proof-list span,.diagnostic-review-proof-list span{font-size:var(--text-sm);line-height:1.35;color:var(--t2);background:var(--card);border:1px solid var(--bl);border-radius:2px;padding:6px 7px;}
.cap-preview-chip-row{display:flex;flex-wrap:wrap;gap:6px;}
/* Neutral tags — not buttons (form chrome only uses .btn-blue / .btn-sm). */
.cap-preview-chip{font-size:var(--text-sm);font-weight:600;color:var(--t2);background:rgba(15,23,42,.04);border:1px solid var(--bl);border-radius:2px;padding:5px 8px;line-height:1.2;}
.cap-preview-agenda p{font-size:var(--text-sm);color:var(--t3);line-height:1.45;margin:0;}
.cap-preview-warning{font-size:var(--text-sm);line-height:1.45;color:#7A1D14;background:#FEF0EE;border:1px solid #F7B5AE;border-radius:2px;padding:9px;}
.cap-preview-cta{font-size:var(--text-sm);line-height:1.5;color:var(--t2);border-top:1px solid var(--bl);padding-top:10px;}
.cap-preview-book{margin-top:10px;justify-content:center;}
.diagnostic-review{border:1px solid var(--bl);background:var(--accent-soft);border-radius:2px;padding:18px;display:flex;flex-direction:column;gap:16px;}
.diagnostic-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.diagnostic-review h2{font-size:var(--text-xl);line-height:1.25;color:var(--t1);margin:3px 0 0;}
.diagnostic-review p{font-size:var(--text-md);line-height:1.6;color:var(--t2);margin:0;}
.diagnostic-review-badge{font-size:var(--text-sm);font-weight:750;color:#7A1D14;background:#FEF0EE;border:1px solid #F7B5AE;border-radius:2px;padding:6px 8px;white-space:nowrap;}
.diagnostic-review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.diagnostic-review-grid>div{background:var(--card);border:1px solid var(--bl);border-radius:2px;padding:10px;min-width:0;}
.diagnostic-review-grid span{display:block;font-size:var(--text-sm);font-weight:650;color:var(--t3);margin-bottom:4px;}
.diagnostic-review-grid strong{display:block;font-size:var(--text-lg);font-weight:800;color:var(--t1);line-height:1.2;overflow-wrap:anywhere;}

/* ── Responsive ── */
@media(max-width:1180px){.intake-wrap{max-width:1180px;}.intake-cols{grid-template-columns:minmax(0,1fr) 260px;}.intake-workbench{grid-template-columns:200px minmax(0,1fr) 260px;gap:14px;}.path-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:1024px){.intake-page{height:auto;min-height:calc(100vh - 76px);padding:32px 0 80px;overflow:visible;}.intake-wrap{max-width:1440px;height:auto;display:block;}.intake-cols,.intake-workbench{grid-template-columns:1fr;height:auto;min-height:0;max-height:none;padding:0;overflow:visible;}.intake-workbench>.form-panel,.intake-workbench>.cap-preview{grid-column:auto;height:auto;overflow:visible;}.step-nav,.intake-sidebar-nav,.ai-panel,.cap-preview{position:static;width:auto;max-height:none;}.cap-preview{order:-1;}.intake-stagebar{grid-template-columns:auto repeat(8,120px);}.path-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:768px){.intake-wrap{padding:0 20px;}.path-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.intake-file-accelerator summary{align-items:flex-start;flex-direction:column;}.intake-file-accelerator summary b{white-space:normal;}.intake-dev-fixture{align-items:stretch;flex-direction:column;}.intake-dev-fixture select{width:100%;}}
@media(max-width:480px){
  .intake-cols{grid-template-columns:1fr;}
  .step-nav{position:static;margin-bottom:12px;}
  .intake-page{padding-top:22px;}
  .intake-top h1{font-size:var(--text-2xl);}
  .intake-stagebar{grid-template-columns:auto repeat(8,112px);padding:8px;}
  .ai-panel{position:static;}
  .form-head{padding:12px 16px;}
  .step-content{padding:16px 12px;}
  .form-foot{padding:12px 16px;flex-direction:column;gap:8px;}
  .diagnostic-review-grid{grid-template-columns:1fr;}
  .diagnostic-review-head{flex-direction:column;}
  .ant-row{margin-left:0!important;margin-right:0!important;}
  .ant-col{flex:0 0 100%!important;max-width:100%!important;}
}

/* Rolling per-file stage log under the analyze progress bar. Fixed to ~3 rows;
   the top mask fades the oldest visible row so a new row reads as pushing it off. */
.smartzone-stagelog{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:2px;
  /* mask fades the top ~30% so the oldest of the 3 rows dissolves at the edge */
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 30%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 30%);
}
.smartzone-stagelog-row{
  font-size:var(--text-sm,11px);
  line-height:22px;
  color:var(--t3,#6B7890);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  animation:smartzone-stagelog-in .28s ease;
}
.smartzone-stagelog-row.tone-active{color:var(--blue);}
.smartzone-stagelog-row.tone-done{color:var(--ok,#12B76A);}
.smartzone-stagelog-row.tone-error{color:var(--danger,#F04438);}
.smartzone-stagelog-file{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;}

.smartzone-file-row{
  display:flex;
  align-items:flex-start;
  gap:6px;
  margin-top:6px;
  color:var(--t4, #6B7890);
  font-size:var(--text-sm, 11px);
}
.smartzone-file-copy{flex:1 1;min-width:0;}
.smartzone-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.smartzone-file-status{
  display:flex;
  flex-wrap:wrap;
  gap:2px 6px;
  margin-top:2px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.smartzone-file-status:empty{display:none;}
@keyframes smartzone-stagelog-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.smartzone-stagelog-row{animation:none;}}

/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/styles/report.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************/
.report-page{padding:32px 0 80px;}
.report-page .ant-btn{border-radius:2px!important;}
.report-wrap{max-width:1440px;margin:0 auto;padding:0 32px;}

.breadcrumb{display:flex;align-items:center;gap:8px;font-size: var(--text-base);color:var(--t3);margin-bottom:20px;}
.breadcrumb a{color:var(--t3);text-decoration:none;transition:color .18s;}
.breadcrumb a:hover{color:var(--blue);}
.breadcrumb-sep{color:var(--t4);}

/* Header card */
.report-head-card{
  background:linear-gradient(135deg,#07132B,#0a1f4e);
  border-radius:2px;padding:28px 32px;margin-bottom:20px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
  position:relative;overflow:hidden;
}
.report-head-card::before{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 80% 50%,rgba(11,111,251,0.32),transparent 55%);}
.rhc-left{position:relative;}
.rhc-ey{font-size: var(--text-sm);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-bottom:6px;}
.rhc-co{font-size: var(--text-3xl);font-weight:700;color:#fff;letter-spacing:-.03em;margin-bottom:5px;}
.rhc-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.rhc-mi{font-size: var(--text-sm);color:rgba(255,255,255,0.5);}
.rhc-sep{color:rgba(255,255,255,0.2);}

.score-ring-wrap{position:relative;width:110px;height:110px;}
.score-ring-wrap svg{width:100%;height:100%;}
.score-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;}
.score-num{font-size: var(--text-4xl);font-weight:700;color:#fff;line-height:1;}
.score-denom{font-size: var(--text-sm);color:rgba(255,255,255,0.4);margin-top:1px;}
.score-badge{font-size: var(--text-sm);font-weight:700;color:#23B7FF;background:rgba(35,183,255,0.15);border:1px solid rgba(35,183,255,0.3);padding:5px 14px;border-radius:2px;text-align:center;margin-top:7px;}

.rhc-acts{position:relative;display:flex;flex-direction:column;gap:7px;align-items:flex-end;}
.btn-wh{font-size: var(--text-base);font-weight:700;color:var(--t1);padding:9px 20px;border-radius:2px;border:none;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,0.15);cursor:pointer;transition:transform .2s,box-shadow .2s;}
.btn-wh:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,0.2);}
.btn-wh-ghost{font-size: var(--text-base);font-weight:600;color:rgba(255,255,255,0.65);padding:9px 16px;border-radius:2px;border:1px solid rgba(255,255,255,0.18);background:transparent;cursor:pointer;transition:all .2s;}
.btn-wh-ghost:hover{background:rgba(255,255,255,0.1);color:#fff;}

/* 2-col layout */
.report-cols{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start;}

/* Sidebar */
.rsb{position:sticky;top:88px;background:var(--card);border:1px solid var(--bl);border-radius:var(--r);padding:16px 12px;box-shadow:var(--sh);}
.rsb-title{font-size: var(--text-2xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);padding:0 5px;margin-bottom:7px;}
.rsb-link{display:flex;align-items:center;gap:7px;padding:8px 8px;border-radius:2px;font-size: var(--text-base);font-weight:500;color:var(--t2);transition:all .18s;cursor:pointer;border:none;background:none;width:100%;text-align:left;margin-bottom:1px;}
.rsb-link:hover{color:var(--blue);background:var(--blue-s);}
.rsb-link.active{color:var(--blue);background:rgba(11,111,251,0.08);font-weight:700;}
.rsb-link svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;}

.rsb-scores{background:rgba(11,111,251,0.03);border:1px solid var(--bl);border-radius:2px;padding:12px;margin-bottom:12px;}
.rsb-sr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.rsb-sn{font-size: var(--text-sm);font-weight:600;color:var(--t2);}
.rsb-sv{font-size: var(--text-sm);font-weight:700;}
.rsb-sb{height:3px;background:rgba(11,111,251,0.08);border-radius:2px;overflow:hidden;margin-bottom:5px;}
.rsb-sf{height:100%;border-radius:2px;}

.rsb-advisor{background:linear-gradient(135deg,rgba(11,111,251,0.06),rgba(35,183,255,0.03));border:1px solid rgba(11,111,251,0.12);border-radius:2px;padding:12px;margin-top:12px;}
.rsb-av-avatar{width:34px;height:34px;border-radius:2px;background:linear-gradient(135deg,#0B6FFB,#23B7FF);display:flex;align-items:center;justify-content:center;font-size: var(--text-md);font-weight:700;color:#fff;margin-bottom:7px;}
.rsb-av-name{font-size: var(--text-base);font-weight:700;color:var(--t1);}
.rsb-av-title{font-size: var(--text-sm);color:var(--t3);margin-top:1px;}
.rsb-av-btn{margin-top:9px;width:100%;padding:7px;border-radius:2px;font-size: var(--text-sm);font-weight:600;color:var(--blue);border:1px solid rgba(11,111,251,0.2);background:rgba(11,111,251,0.06);cursor:pointer;transition:all .18s;}
.rsb-av-btn:hover{background:var(--blue);color:#fff;border-color:transparent;}

/* Content */
.report-content{display:flex;flex-direction:column;gap:18px;min-width:0;}
.sec-card{background:var(--card);border:1px solid var(--bl);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;}
.sec-card-head{padding:16px 22px;border-bottom:1px solid var(--bl);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.sch-title{font-size: var(--text-xl);font-weight:700;color:var(--t1);letter-spacing:-.02em;}
.sch-sub{font-size: var(--text-base);color:var(--t3);margin-top:2px;}
.sec-card-body{padding:20px;}

/* Disclaimer — the first report-body section, directly below the header */
.report-disclaimer-card{
  background:var(--card);border:1px solid var(--bl);border-radius:var(--r);
  box-shadow:var(--sh);overflow:hidden;margin-bottom:18px;
}
.report-disclaimer-body{padding:18px 22px 20px;}
.report-disclaimer-section{margin:0;}
.report-disclaimer-section+.report-disclaimer-section{
  border-top:1px solid rgba(11,111,251,0.08);margin-top:14px;padding-top:14px;
}
.report-disclaimer-heading{
  margin:0 0 6px;font-size:var(--text-sm);font-weight:700;color:var(--t1);
  line-height:1.4;
}
.report-disclaimer-text{
  margin:0;font-family:inherit;font-size:calc(var(--text-sm) - 1px);color:var(--t2);
  line-height:1.6;
}
.report-disclaimer-text+.report-disclaimer-text{
  border-top:1px solid rgba(11,111,251,0.05);margin-top:10px;padding-top:10px;
}

@media(max-width:768px){
  .report-disclaimer-body{padding:16px;}
  .report-disclaimer-text{line-height:1.65;}
}

/* Score boxes */
.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.sb{background:rgba(11,111,251,0.03);border:1px solid var(--bl);border-radius:2px;padding:15px;text-align:center;}
.sb-val{font-size: var(--text-3xl);font-weight:700;letter-spacing:-.04em;}
.sb-name{font-size: var(--text-sm);font-weight:600;color:var(--t3);margin-top:3px;}
.sb-trend{font-size: var(--text-sm);margin-top:3px;}

/* Radar — legend now hosts the expandable se-panels list (see RadarChart.jsx),
   so align to the top rather than centering against the SVG: the panel list
   can grow taller than the chart once a row is expanded. */
.radar-wrap{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;}
.radar-legend{flex:1 1;min-width:190px;display:flex;flex-direction:column;gap:10px;}

/* Paths */
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.path-card{border-radius:2px;padding:16px;cursor:pointer;border:1.5px solid var(--bl);background:rgba(255,255,255,0.7);transition:all .2s;}
.path-card:hover{border-color:var(--bm);transform:translateY(-2px);box-shadow:0 8px 22px rgba(11,111,251,0.09);}
.path-card.rec{background:linear-gradient(135deg,rgba(11,111,251,0.06),rgba(35,183,255,0.04));border-color:rgba(11,111,251,0.22);}
.pc-badge{font-size: var(--text-2xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:8px;display:inline-block;padding:3px 9px;border-radius:2px;}
.pc-title{font-size: var(--text-md);font-weight:700;color:var(--t1);margin-bottom:5px;}
.pc-desc{font-size: var(--text-sm);color:var(--t2);line-height:1.55;}
.pc-timeline{font-size: var(--text-sm);font-weight:600;color:var(--blue);margin-top:9px;}

/* Tables */
.opp-table{width:100%;border-collapse:collapse;}
.opp-table th{text-align:left;font-size: var(--text-sm);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);padding:8px 12px;border-bottom:2px solid var(--bl);}
.opp-table td{padding:11px 12px;font-size: var(--text-base);color:var(--t2);border-bottom:1px solid rgba(11,111,251,0.05);}
.opp-table tr:last-child td{border-bottom:none;}
.opp-table tr:hover td{background:rgba(11,111,251,0.02);}
.imp-b{display:inline-flex;align-items:center;font-size: var(--text-sm);font-weight:700;padding:3px 9px;border-radius:2px;}

/* Roadmap */
.roadmap{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.roadmap::before{content:'';position:absolute;top:22px;left:12.5%;right:12.5%;height:2px;background:linear-gradient(90deg,#0B6FFB,#23B7FF);z-index:0;}
.rm-phase{text-align:center;position:relative;z-index:1;padding:0 6px;}
.rm-dot{width:44px;height:44px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size: var(--text-sm);font-weight:700;color:#fff;background:linear-gradient(135deg,#0B6FFB,#23B7FF);box-shadow:0 4px 14px rgba(11,111,251,0.28);}
.rm-phase-label{font-size: var(--text-2xs);font-weight:700;color:var(--blue);letter-spacing:.06em;margin-bottom:5px;}
.rm-phase-title{font-size: var(--text-base);font-weight:700;color:var(--t1);margin-bottom:7px;}
.rm-actions{display:flex;flex-direction:column;gap:4px;}
.rm-action{font-size: var(--text-sm);color:var(--t2);display:flex;align-items:flex-start;gap:4px;text-align:left;}
.rm-action::before{content:'→';color:var(--blue);flex-shrink:0;}

@media(max-width:900px){.report-cols{grid-template-columns:1fr;}.rsb{position:static;}.score-grid{grid-template-columns:1fr 1fr;}.path-grid{grid-template-columns:1fr;}.roadmap{grid-template-columns:1fr 1fr;}.roadmap::before{display:none;}}
@media(max-width:768px){.report-wrap{padding:0 20px;}.report-head-card{flex-direction:column;}.report-cols{flex-direction:column;}.rsb{position:static;width:100%;}.radar-wrap{flex-direction:column;}.radar-wrap svg{width:100%;height:auto;}.rsb-link{min-height:44px;}}
@media(max-width:480px){
  .report-wrap{padding:0 14px;}
  .report-head-card{padding:20px 16px;}
  .score-grid,.roadmap,.ai-insights-grid{grid-template-columns:minmax(0,1fr);}
}

/* AI Insights */
.ai-insights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.ai-insight-card{background:var(--card);border:1px solid var(--bl);border-radius:2px;padding:16px;transition:all .2s;}
.ai-insight-card:hover{border-color:var(--bm);box-shadow:0 4px 14px rgba(11,111,251,0.06);}
.ai-insight-section{font-size:var(--text-md);font-weight:700;color:var(--t1);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--bl);}
.ai-insight-list{margin:0;padding:0;list-style:none;}
.ai-insight-item{font-size:var(--text-sm);color:var(--t2);line-height:1.55;padding:5px 0 5px 16px;position:relative;}
.ai-insight-item::before{content:'•';position:absolute;left:3px;color:var(--blue);font-weight:700;}
.ai-insight-item+.ai-insight-item{border-top:1px solid rgba(11,111,251,0.04);}
.ai-insights-fallback{padding:24px;text-align:center;}
.ai-insights-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--t3);}
.ai-insights-placeholder svg{opacity:0.3;margin-bottom:4px;}
.ai-insights-placeholder-title{font-size:var(--text-base);font-weight:600;color:var(--t2);}
.ai-insights-placeholder-desc{font-size:var(--text-sm);color:var(--t4);max-width:360px;line-height:1.5;}

/* ── Unlock teaser — gated execution detail ─────────────────────────────────
   Ghost text lines (blurred fake content) signal "real data exists here"
   without revealing anything. A frosted gradient veil pins the lock + CTA
   to the bottom. Far more visible than a bare chip sitting below empty space.
   Two layouts: .unlock-block (frosted panel) and .unlock-inline (table cells).
   backdrop-filter is safe here — the report is normal DOM, not html2canvas. */

/* Block — frosted panel with ghost content peek */
.unlock-teaser.unlock-block{
  position:relative;display:block;overflow:hidden;
  border-radius:10px;margin-top:6px;
  background:linear-gradient(160deg,rgba(11,111,251,0.04) 0%,rgba(35,183,255,0.02) 100%);
  border:1px solid rgba(11,111,251,0.09);
}

/* Ghost lines — blurred to read as "hidden real content" */
.unlock-ghost{
  display:flex;flex-direction:column;gap:6px;
  /* bottom padding reserves space for the veil's CTA row */
  padding:12px 14px 54px;
  pointer-events:none;-webkit-user-select:none;user-select:none;
}
.ug-line{
  display:block;font-size:var(--text-sm);color:var(--t1);
  line-height:1.5;filter:blur(5px);opacity:0.58;
}
.ug-line:nth-child(2){max-width:87%;}
.ug-line:nth-child(3){max-width:73%;}
.ug-line:nth-child(4){max-width:80%;}

/* Veil — gradient from transparent (ghost peeks through) to near-opaque at bottom */
.unlock-veil{
  position:absolute;inset:0;
  background:linear-gradient(
    to bottom,
    transparent 0%,
    rgba(255,255,255,0.48) 26%,
    rgba(255,255,255,0.87) 50%,
    rgba(255,255,255,0.97) 68%
  );
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  display:flex;align-items:flex-end;
  padding:0 13px 12px;
}
.unlock-veil-row{
  display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;width:100%;
}

/* Lock icon — rounded chip in block variant */
.unlock-teaser.unlock-block .unlock-lock{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:6px;
  background:rgba(11,111,251,0.1);color:#0B6FFB;
}
.unlock-teaser.unlock-block .unlock-lock svg{width:11px;height:11px;}

/* Shared desc */
.unlock-teaser-desc{font-size:var(--text-sm);font-weight:500;line-height:1.5;color:var(--t2);}
.unlock-teaser.unlock-block .unlock-teaser-desc{flex:1 1 auto;min-width:0;}

/* CTA — borderless blue text link with trailing arrow */
.unlock-teaser .unlock-teaser-cta.bc-cta{
  flex:0 0 auto;padding:6px 2px;font-size:var(--text-sm);
  font-weight:600;color:#0B6FFB;border:none;background:none;
  transition:color .2s ease,transform .3s cubic-bezier(.22,1,.36,1);
}
.unlock-teaser .unlock-teaser-cta.bc-cta::after{
  content:'→';transition:transform .25s cubic-bezier(.22,1,.36,1);
}
.unlock-teaser .unlock-teaser-cta.bc-cta:hover{
  background:none;color:#0B57C9;
  letter-spacing:.02em;box-shadow:none;transform:scale(1.06);
}
.unlock-teaser .unlock-teaser-cta.bc-cta:hover::after{transform:translateX(3px);}

@media(prefers-reduced-motion:reduce){
  .unlock-teaser .unlock-teaser-cta.bc-cta:hover{transform:none;}
}

/* Inline — compact one-liner for table cells (difficulty, mitigation) */
.unlock-teaser.unlock-inline{display:inline;}
.unlock-teaser-body{display:flex;align-items:center;gap:9px;flex:1 1 auto;min-width:0;}
.unlock-teaser.unlock-inline .unlock-teaser-body{display:inline;}
.unlock-teaser.unlock-inline .unlock-lock{
  width:auto;height:auto;background:none;
  box-shadow:none;vertical-align:-2px;margin-right:5px;color:#0B6FFB;
}
.unlock-teaser.unlock-inline .unlock-lock svg{width:12px;height:12px;}
.unlock-teaser.unlock-inline .unlock-teaser-desc{display:inline;color:var(--t3);font-style:italic;}
/* inline CTA is a plain link — a pill wraps badly inside a narrow cell */
.unlock-teaser.unlock-inline .unlock-teaser-cta.bc-cta{
  display:inline;padding:0;margin-left:8px;
  border:none;background:none;border-radius:0;
  color:#0B6FFB;font-weight:600;white-space:nowrap;vertical-align:baseline;
}
.unlock-teaser.unlock-inline .unlock-teaser-cta.bc-cta:hover{
  background:none;color:#0B57C9;text-decoration:underline;
}

/* ── Chart additions ── */
.kpi-strip{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--bl);}
.kpi-item{flex:1 1;min-width:90px;background:rgba(11,111,251,0.03);border:1px solid var(--bl);border-radius:2px;padding:11px;text-align:center;}
.kpi-val{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.03em;line-height:1.1;}
.kpi-name{font-size:var(--text-sm);color:var(--t3);margin-top:3px;font-weight:500;}

.fin-perf-wrap{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;}
.fin-chart-col{display:flex;flex-direction:column;gap:8px;}
.fin-chart-label{font-size:var(--text-sm);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);}
@media(max-width:680px){.fin-perf-wrap{grid-template-columns:1fr;}}
.finance-v2-report{display:flex;flex-direction:column;gap:18px;}
.finance-v2-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;}
.finance-v2-wide{grid-column:1/-1;}
@media(max-width:680px){.finance-v2-grid{grid-template-columns:1fr;}.finance-v2-wide{grid-column:auto;}}

.mkt-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.mkt-label{font-size:var(--text-sm);font-weight:700;color:var(--t2);width:80px;flex-shrink:0;}
.mkt-track{flex:1 1;height:8px;background:rgba(11,111,251,0.07);border-radius:999px;overflow:hidden;}
.mkt-fill{height:100%;border-radius:999px;}
.mkt-val{font-size:var(--text-sm);font-weight:600;color:#0B6FFB;width:54px;text-align:right;flex-shrink:0;}

/* ── Score-Explain Panels (expandable per-dimension rationale) ── */
.se-panels{display:flex;flex-direction:column;gap:0;}
.se-panel{border-bottom:1px solid var(--bl);}
.se-panel:last-child{border-bottom:none;}
/* Header row — full-width button, shows name + score + chevron */
.se-header{width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 0;text-align:left;}
.se-header:hover .se-name{color:var(--t1);}
.se-name{flex:1 1;font-size:var(--text-base);font-weight:600;color:var(--t2);}
.se-score{font-size:var(--text-base);font-weight:700;min-width:28px;text-align:right;}
.se-chevron{font-size:10px;color:var(--t3);margin-left:4px;}
/* Progress bar — mirrors sidebar bar style */
.se-bar{height:3px;background:rgba(11,111,251,0.07);border-radius:999px;margin-bottom:2px;}
.se-bar-fill{height:100%;border-radius:999px;transition:width .3s ease;}
/* Body — shown when expanded */
.se-body{padding:14px 0 10px;display:flex;flex-direction:column;gap:12px;}
.se-section{display:flex;flex-direction:column;gap:5px;}
.se-section-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);}
.se-prose{font-size:var(--text-sm);color:var(--t2);line-height:1.55;}
.se-prose-path{color:var(--t3);font-style:italic;}
/* Headroom line — bold deterministic "+N → ~M" */
.se-headroom{font-size:var(--text-sm);font-weight:700;color:#16B364;letter-spacing:-.01em;}
/* Chips — deduction/benchmark field labels */
.se-chips{display:flex;flex-wrap:wrap;gap:6px;}
.se-chip{font-size:var(--text-xs);padding:3px 8px;background:rgba(240,68,56,0.07);color:#B42318;border-radius:4px;border:1px solid rgba(240,68,56,0.18);}
.se-chip-ref{background:rgba(11,111,251,0.06);color:#1D4ED8;border-color:rgba(11,111,251,0.18);}
/* CTA nudge at the bottom of each panel */
.se-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid var(--bl);flex-wrap:wrap;}
.se-cta-text{font-size:var(--text-sm);color:var(--t3);}
@media(max-width:520px){.se-cta{flex-direction:column;align-items:flex-start;}}

.client-score-dimension{border-bottom:1px solid var(--bl);}
.client-score-dimension:last-child{border-bottom:none;}
.client-score-dimension__header{width:100%;background:none;border:0;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 0;text-align:left;}
.client-score-dimension__name{flex:1 1;font-size:var(--text-base);font-weight:650;color:var(--t2);}
.client-score-dimension__score{font-size:var(--text-base);font-weight:750;min-width:30px;text-align:right;}
.client-score-dimension__chevron{font-size:10px;color:var(--t3);}
.client-score-dimension__bar{height:3px;background:rgba(11,111,251,.07);border-radius:999px;margin-bottom:2px;overflow:hidden;}
.client-score-dimension__bar>div{height:100%;border-radius:inherit;transition:width .3s ease;}
.client-score-dimension__body{padding:15px 0 13px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;}
.client-score-dimension__body section:first-child{grid-column:1/-1;}
.client-score-dimension__wide,.client-score-dimension__advisor{grid-column:1/-1;}
.client-score-dimension__label{font-size:var(--text-xs);font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);margin-bottom:6px;}
.client-score-dimension__label--strength{color:#067647;}
.client-score-dimension__label--gap{color:#b54708;}
.client-score-dimension__body p,.client-score-dimension__body ul{margin:0;color:var(--t2);font-size:var(--text-sm);line-height:1.6;}
.client-score-dimension__body ul{padding-left:18px;}
.client-score-dimension__body li+li{margin-top:4px;}
.client-score-dimension__findings{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;}
.client-score-dimension__finding{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:rgba(11,111,251,.035);border:1px solid rgba(11,111,251,.1);border-radius:6px;}
.client-score-dimension__finding strong{color:var(--t2);font-size:var(--text-sm);}
.client-score-dimension__finding span{color:var(--t3);font-size:var(--text-sm);line-height:1.55;}
.client-score-dimension__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.client-score-dimension__chips span{font-size:var(--text-xs);color:var(--t2);background:var(--bg2);border:1px solid var(--bl);border-radius:999px;padding:4px 8px;}
.client-score-dimension__advisor{padding:12px 14px;background:rgba(11,111,251,.045);border-left:3px solid #0B6FFB;}
.client-score-dimension__boundary{grid-column:1/-1;color:var(--t3);font-size:var(--text-xs);line-height:1.5;padding-top:10px;border-top:1px solid var(--bl);}
@media(max-width:640px){.client-score-dimension__body{grid-template-columns:1fr}.client-score-dimension__body section:first-child,.client-score-dimension__wide,.client-score-dimension__advisor,.client-score-dimension__boundary{grid-column:1}}

/* ── V3 score card (Score Overview) — V3 is the only score shown once it
   exists; the card header above already carries the title/subtitle. ── */
.v3-primary{padding:16px;border:1px solid rgba(11,111,251,0.14);border-radius:10px;
  background:linear-gradient(180deg,rgba(11,111,251,0.045),rgba(255,255,255,0.92));}
.v3-primary-prompt{margin-top:12px;color:var(--t3);font-size:var(--text-sm);line-height:1.55;}

/*!********************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/styles/modules.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************/
/* ── Modules Page ── */
.modules-page{padding:48px 0 80px;}

/* Page header */
.modules-header{
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;
  margin-bottom:36px;
}
.mh-left{}
.mh-ey{font-size: var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:6px;}
.mh-title{font-size: var(--text-4xl);font-weight:700;color:var(--t1);letter-spacing:-.03em;}
.mh-sub{font-size: var(--text-lg);color:var(--t2);margin-top:6px;}
.mh-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

/* Filter bar */
.filter-bar{
  display:flex;align-items:center;gap:8px;
  background:var(--card);border:1px solid var(--bl);
  border-radius:2px;padding:8px;
  box-shadow:var(--sh);
  margin-bottom:28px;flex-wrap:wrap;
}
.filter-btn{
  padding:8px 18px;border-radius:999px;border:none;
  font-size: var(--text-base);font-weight:600;cursor:pointer;
  transition:all .18s;color:var(--t2);background:transparent;
}
.filter-btn:hover{background:var(--blue-s);color:var(--blue);}
.filter-btn.active{background:var(--blue);color:#fff;box-shadow:0 4px 12px rgba(11,111,251,0.25);}
.filter-sep{width:1px;height:20px;background:var(--bl);}
.filter-search{
  display:flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:2px;background:rgba(11,111,251,0.04);
  border:1px solid var(--bl);flex:1 1;min-width:160px;
}
.filter-search svg{width:14px;height:14px;stroke:var(--t4);fill:none;stroke-width:2;flex-shrink:0;}
.filter-search input{border:none;background:transparent;font-size: var(--text-md);color:var(--t1);font-family:inherit;outline:none;width:100%;}
.filter-search input::placeholder{color:var(--t4);}

/* Stats strip */
.stats-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px;
}
.stat-card{
  background:var(--card);border:1px solid var(--bl);
  border-radius:2px;padding:18px 20px;
  box-shadow:0 4px 16px rgba(15,45,90,0.06);
  display:flex;align-items:center;gap:14px;
}
.stat-ico{
  width:42px;height:42px;border-radius:2px;background:var(--blue-s);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.stat-ico svg{width:20px;height:20px;stroke:var(--blue);fill:none;stroke-width:1.8;}
.stat-val{font-size: var(--text-3xl);font-weight:700;color:var(--t1);letter-spacing:-.03em;line-height:1;}
.stat-lbl{font-size: var(--text-sm);color:var(--t3);margin-top:3px;}

/* Module grid — 3 columns equal */
.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}

/* Module card */
.mod-card{
  background:var(--card);border:1px solid var(--bl);
  border-radius:2px;padding:0;
  box-shadow:var(--sh);overflow:hidden;
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,border-color .28s;
  cursor:pointer;
}
.mod-card:hover{transform:translateY(-5px);box-shadow:0 20px 56px rgba(11,111,251,0.13);border-color:var(--bm);}
.mod-card.featured{
  border-color:rgba(11,111,251,0.28);
  box-shadow:0 8px 32px rgba(11,111,251,0.10);
}

/* Card top bar with gradient */
.mod-card-top{
  padding:20px 20px 16px;
  background:linear-gradient(135deg,rgba(11,111,251,0.04),rgba(35,183,255,0.02));
  border-bottom:1px solid var(--bl);
  display:flex;justify-content:space-between;align-items:flex-start;
}
.mod-card.top-ipo .mod-card-top{background:linear-gradient(135deg,rgba(11,111,251,0.08),rgba(35,183,255,0.04));}
.mod-card.top-fin .mod-card-top{background:linear-gradient(135deg,rgba(22,179,100,0.06),rgba(22,179,100,0.02));}
.mod-card.top-ma .mod-card-top{background:linear-gradient(135deg,rgba(35,183,255,0.08),rgba(11,111,251,0.04));}
.mod-card.top-ai .mod-card-top{background:linear-gradient(135deg,rgba(138,43,226,0.06),rgba(11,111,251,0.04));}
.mod-card.top-cap .mod-card-top{background:linear-gradient(135deg,rgba(245,158,11,0.06),rgba(245,158,11,0.02));}
.mod-card.top-inv .mod-card-top{background:linear-gradient(135deg,rgba(240,68,56,0.05),rgba(245,158,11,0.03));}

.mod-ico-wrap{display:flex;flex-direction:column;gap:10px;}
.mod-ico{
  width:46px;height:46px;border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  transition:all .22s;
}
.mod-ico svg{width:22px;height:22px;fill:none;stroke-width:1.8;transition:stroke .22s;}
.mod-card:hover .mod-ico{box-shadow:0 6px 20px rgba(11,111,251,0.25);}

.mod-tag-wrap{display:flex;gap:5px;flex-wrap:wrap;}

/* Progress ring */
.prog-ring{position:relative;width:56px;height:56px;flex-shrink:0;}
.prog-ring svg{width:100%;height:100%;}
.prog-ring-center{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  text-align:center;
}
.prog-pct{font-size: var(--text-md);font-weight:700;color:var(--t1);line-height:1;}
.prog-label{font-size: var(--text-2xs);font-weight:600;color:var(--t4);letter-spacing:.04em;}

/* Card body */
.mod-card-body{padding:18px 20px;}
.mod-num{font-size: var(--text-2xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);margin-bottom:6px;}
.mod-title{font-size: var(--text-xl);font-weight:700;color:var(--t1);letter-spacing:-.02em;margin-bottom:8px;}
.mod-desc{font-size: var(--text-base);color:var(--t2);line-height:1.6;margin-bottom:14px;}

.mod-features{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.mod-feat{display:flex;align-items:flex-start;gap:7px;font-size: var(--text-sm);color:var(--t2);}
.mod-feat-dot{width:5px;height:5px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:4px;}

/* Card footer */
.mod-card-foot{
  padding:14px 20px;border-top:1px solid var(--bl);
  display:flex;align-items:center;justify-content:space-between;
}
.mod-foot-meta{font-size: var(--text-sm);color:var(--t4);}
.mod-foot-meta strong{color:var(--t2);font-weight:600;}

/* Launch button */
.mod-launch{
  display:inline-flex;align-items:center;gap:5px;
  font-size: var(--text-base);font-weight:700;color:var(--blue);
  padding:6px 14px;border-radius:2px;
  background:rgba(11,111,251,0.06);border:1px solid rgba(11,111,251,0.15);
  transition:all .18s;
}
.mod-launch:hover{background:var(--blue);color:#fff;border-color:transparent;}

/* Module detail panel (slide-in) */
.mod-detail{
  position:fixed;top:0;right:-480px;bottom:0;width:460px;
  background:var(--card);border-left:1px solid var(--bl);
  box-shadow:-24px 0 80px rgba(11,111,251,0.10);
  z-index:300;transition:right .38s cubic-bezier(.22,1,.36,1);
  overflow-y:auto;
}
.mod-detail.open{right:0;}
.mod-detail-overlay{
  position:fixed;inset:0;background:rgba(7,19,43,0.25);
  z-index:299;opacity:0;pointer-events:none;transition:opacity .3s;
}
.mod-detail-overlay.open{opacity:1;pointer-events:auto;}

.mod-detail-head{
  padding:24px;border-bottom:1px solid var(--bl);
  background:linear-gradient(135deg,#07132B,#0a1f4e);
  position:sticky;top:0;z-index:10;
}
.mdh-close{
  display:flex;align-items:center;gap:8px;
  font-size: var(--text-sm);font-weight:600;color:rgba(255,255,255,0.5);
  cursor:pointer;background:none;border:none;margin-bottom:12px;
  transition:color .18s;
}
.mdh-close:hover{color:#fff;}
.mdh-close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}
.mdh-title{font-size: var(--text-2xl);font-weight:700;color:#fff;letter-spacing:-.02em;}
.mdh-sub{font-size: var(--text-md);color:rgba(255,255,255,0.5);margin-top:4px;}

.mod-detail-body{padding:24px;}
.md-section{margin-bottom:24px;}
.md-section-title{font-size: var(--text-sm);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;}
.md-kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.md-kpi{
  background:rgba(11,111,251,0.04);border:1px solid var(--bl);
  border-radius:2px;padding:12px;text-align:center;
}
.md-kpi-val{font-size: var(--text-2xl);font-weight:700;color:var(--t1);letter-spacing:-.03em;}
.md-kpi-lbl{font-size: var(--text-xs);color:var(--t3);margin-top:3px;}
.md-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 0;border-bottom:1px solid rgba(11,111,251,0.06);
  font-size: var(--text-md);color:var(--t2);
}
.md-item:last-child{border-bottom:none;}
.md-item-ico{width:20px;height:20px;border-radius:2px;background:var(--blue-s);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.md-item-ico svg{width:11px;height:11px;stroke:var(--blue);fill:none;stroke-width:2;}

@media(max-width:1024px){.module-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:768px){
  .wrap{padding:0 20px;}
  .module-grid{grid-template-columns:1fr;}
  .stats-strip{grid-template-columns:repeat(2,1fr);}
  .mod-detail{width:100%;right:-100%;}
  .filter-bar{gap:4px;}
  .filter-btn{padding:7px 12px;font-size: var(--text-base);}
}
@media(max-width:480px){
  .stats-strip{grid-template-columns:1fr;}
}

/* ── Gated delivery checklist (LockedDeliverables) ───────────────────────────
   The real delivery items are withheld server-side and never ship to the
   browser. This is a teaser: blurred skeleton rows (no real text) under a
   frosted veil with a lock + "book a consultation to unlock" CTA. */
.locked-deliverables{
  position:relative;margin-top:14px;min-height:132px;border-radius:2px;overflow:hidden;
  border:1px solid rgba(11,111,251,.09);
  background:linear-gradient(160deg,rgba(11,111,251,.04) 0%,rgba(35,183,255,.02) 100%);
}
.ld-rows{
  display:flex;flex-direction:column;gap:10px;
  padding:14px 14px 70px;
  filter:blur(5px);opacity:.58;
  pointer-events:none;-webkit-user-select:none;user-select:none;
}
@keyframes ld-shimmer{
  0%{background-position:200% center;}
  100%{background-position:-200% center;}
}
.ld-row{
  height:10px;border-radius:2px;
  background:linear-gradient(90deg,rgba(11,111,251,.05) 0%,rgba(11,111,251,.22) 40%,rgba(11,111,251,.05) 80%);
  background-size:200% auto;
  animation:ld-shimmer 2.4s linear infinite;
}
.ld-row:nth-child(even){animation-delay:.6s;}
@media(prefers-reduced-motion:reduce){.ld-row{animation:none;background:linear-gradient(90deg,rgba(11,111,251,.18),rgba(11,111,251,.05));}}
.ld-row:nth-child(2){width:92%;}
.ld-row:nth-child(3){width:78%;}
.ld-row:nth-child(4){width:85%;}
.ld-row:nth-child(5){width:70%;}
.ld-row:nth-child(6){width:80%;}
/* Gradient veil matches the report unlock teaser: content peeks through at the
   top while the consultation CTA sits on a frosted, legible bottom band. */
.ld-veil{
  position:absolute;inset:0;
  display:flex;align-items:flex-end;justify-content:center;gap:8px 12px;flex-wrap:wrap;
  text-align:left;padding:0 13px 12px;
  background:linear-gradient(
    to bottom,
    transparent 0%,
    rgba(255,255,255,.48) 26%,
    rgba(255,255,255,.87) 50%,
    rgba(255,255,255,.97) 68%
  );
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
}
.ld-lock{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:2px;
  background:rgba(11,111,251,.1);color:#0B6FFB;
}
.ld-lock svg{width:11px;height:11px;}
.ld-text{flex:1 1 132px;font-size:12.5px;font-weight:600;color:#475467;max-width:240px;line-height:1.4;}
.ld-cta{flex-shrink:0;}

/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/styles/auth.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
.auth-page {
  position: relative;
  min-height: calc(100vh - 80px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  /* Soft light backdrop covers the dark body. Slight warm beige in the bottom-
     right balances the blue blobs so it doesn't read as one flat blue panel. */
  background: linear-gradient(135deg, #e6eef9 0%, #f4f7fc 45%, #fbf3ec 100%);
  overflow: hidden;
}
.auth-page::before {
  /* Frosted-glass surface: three vivid color blobs behind the card so the
     "blur behind popup" reads at a glance. Larger circles + higher alpha
     than v1 — v1 was visually identical to the flat gradient. */
  content: "";
  position: absolute;
  inset: -15%;
  background:
    radial-gradient(circle at 22% 18%, rgba(11, 111, 251, 0.55), transparent 38%),
    radial-gradient(circle at 78% 28%, rgba(120, 80, 240, 0.32), transparent 42%),
    radial-gradient(circle at 50% 90%, rgba(35, 183, 255, 0.40), transparent 45%);
  filter: blur(80px);
  z-index: 0;
  pointer-events: none;
}
.auth-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 32px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 10px 32px rgba(11, 26, 51, 0.10);
}
/* Embedded mode = inside LoginPromptModal: card chrome (bg, shadow, padding)
   already comes from the modal wrapper, so strip the standalone-page styling
   and tighten the vertical rhythm — the modal needs to fit in ~1/3 viewport
   on a typical 1080p screen, not stretch full-height. */
.auth-card-embedded {
  padding: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  gap: 8px;
}
.auth-card-embedded label {
  gap: 3px;
  font-size: var(--text-sm);
}
.auth-card-embedded input {
  padding: 7px 10px;
}
.auth-card-embedded .btn-primary {
  padding: 8px 14px;
}
.auth-card h1 {
  margin: 0 0 4px;
  font-family: var(--font-hero);
  font-size: var(--text-2xl);
  color: #0B1A33;
}
.auth-card label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: var(--text-md);
  color: #2A3A55;
}
.auth-card input {
  font: inherit;
  padding: 10px 12px;
  border: 1px solid #D6DEEA;
  border-radius: 0;
  background: #fff;
}
.auth-card input:focus {
  outline: none;
  border-color: #0B6FFB;
}
.auth-password-field {
  position: relative;
  display: block;
}
.auth-password-field input {
  width: 100%;
  padding-right: 44px;
}
.auth-password-toggle {
  position: absolute;
  top: 50%;
  right: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #65748b;
  cursor: pointer;
  transform: translateY(-50%);
}
.auth-password-toggle:hover { color: var(--accent); }
.auth-password-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}
.auth-password-toggle svg {
  width: 20px;
  height: 20px;
}
.auth-card-embedded .auth-password-field input {
  padding: 7px 44px 7px 10px;
}
.auth-error {
  font-size: var(--text-md);
  color: #C03030;
  background: #FDECEC;
  padding: 8px 10px;
  border-radius: 2px;
}
/* Override the landing-page transparent .btn-primary — on a white card
   it was invisible (transparent bg + light text). Use the brand blue
   gradient (same tokens as .btn-blue) and suppress the letter-spacing
   hover animation that the landing CTA depends on. */
.auth-card .btn-primary {
  background: linear-gradient(180deg, var(--accent), var(--accent-deep));
  color: #fff;
  border: 1px solid transparent;
  padding: 11px 18px;
  font-size: var(--text-md);
  font-weight: 600;
  border-radius: 2px;
  cursor: pointer;
  letter-spacing: 0;
  transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
  box-shadow: 0 2px 8px rgba(43, 98, 227, 0.25);
}
.auth-card .btn-primary:hover {
  background: linear-gradient(180deg, var(--accent-hot), var(--accent));
  letter-spacing: 0;
  box-shadow: 0 4px 12px rgba(43, 98, 227, 0.35);
}
.auth-card .btn-primary[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
  box-shadow: none;
}
.auth-alt {
  font-size: var(--text-md);
  color: #5A6A80;
  text-align: center;
}
.auth-alt a {
  color: #0B6FFB;
  text-decoration: none;
}
.auth-alt a:hover { text-decoration: underline; }

.hdr-user {
  font-size: var(--text-md);
  color: #5A6A80;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Split-screen standalone layout (login / register pages) ──────────────
   Used ONLY by AuthShell on the standalone routes. The embedded modal form
   never gets this wrapper. Left = dark brand panel (gradient + blobs);
   right = the frosted card on the existing light backdrop. */
.auth-page.auth-split {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  align-items: stretch;
  padding: 0;
}
/* The page-level blob layer is for the single-card layout; on the split it
   would sit behind both columns. Move the blobs into the brand panel instead. */
.auth-page.auth-split::before { display: none; }

.auth-brand {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px;
  color: #fff;
  background: linear-gradient(150deg, #0B1A33 0%, #142a52 48%, #1a4bc7 100%);
}
.auth-brand::before {
  content: "";
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 24% 22%, rgba(43, 98, 227, 0.55), transparent 40%),
    radial-gradient(circle at 80% 30%, rgba(120, 80, 240, 0.30), transparent 44%),
    radial-gradient(circle at 60% 88%, rgba(35, 183, 255, 0.38), transparent 46%);
  filter: blur(70px);
  pointer-events: none;
}
.auth-brand-inner {
  position: relative; /* lift above the blurred ::before blobs */
  z-index: 1;
  max-width: 360px;
  text-align: left;
}
.auth-wordmark { font-family: var(--font-hero); line-height: 1; }
.auth-wordmark-1 {
  display: block;
  font-size: 56px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.auth-wordmark-2 {
  display: block;
  margin-top: 2px;
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.auth-brand-rule {
  width: 48px;
  height: 3px;
  margin: 28px 0 22px;
  border-radius: 2px;
  background: linear-gradient(90deg, #5b8aee, rgba(91, 138, 238, 0));
}
.auth-tagline {
  margin: 0 0 14px;
  font-family: var(--font-hero);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.3;
}
.auth-brand-sub {
  margin: 0;
  max-width: 320px;
  font-size: var(--text-md);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.66);
}
.auth-card-col {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
  /* Same light backdrop as the single-card .auth-page, so the card reads the
     same on both layouts. */
  background: linear-gradient(135deg, #e6eef9 0%, #f4f7fc 45%, #fbf3ec 100%);
}
.auth-split .auth-card { max-width: 400px; }

/* GDPR consent row (register) + privacy footnote (login) */
.auth-consent-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.auth-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: var(--text-md);
  line-height: 1.5;
  color: #2A3A55;
}
.auth-consent input[type="checkbox"] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--accent);
  cursor: pointer;
}
.auth-consent label {
  /* Override `.auth-card label` (display:flex; flex-direction:column) — that
     rule is for the stacked field labels, but here it was forcing each word and
     link onto its own line. Block flow lets the consent text wrap normally. */
  display: block;
  flex: 1 1;
  cursor: pointer;
}
.auth-consent a { color: var(--accent); text-decoration: none; }
.auth-consent a:hover { text-decoration: underline; }
.auth-consent-group .auth-fineprint { text-align: left; }
.ai-gate-signer-fields {
  display: grid;
  gap: 12px;
}
.ai-gate-receipt-summary {
  display: grid;
  gap: 10px;
  margin: 0;
}
.ai-gate-receipt-summary div {
  display: grid;
  grid-template-columns: minmax(120px, 0.8fr) 1.2fr;
  gap: 12px;
}
.ai-gate-receipt-summary dt {
  color: #5A6A80;
}
.ai-gate-receipt-summary dd {
  margin: 0;
  color: #2A3A55;
  overflow-wrap: anywhere;
}
.auth-fineprint {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.55;
  color: #5A6A80;
  text-align: center;
}
.auth-fineprint a { color: var(--accent); text-decoration: none; }
.auth-fineprint a:hover { text-decoration: underline; }

/* Mobile: collapse the split into a slim brand header above the card. */
@media (max-width: 860px) {
  .auth-page.auth-split {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
  }
  .auth-brand {
    padding: 26px 24px;
    text-align: center;
  }
  .auth-brand-inner { max-width: none; text-align: center; }
  .auth-brand-rule { margin: 16px auto; }
  .auth-wordmark-1 { font-size: 34px; }
  .auth-wordmark-2 { font-size: 18px; }
  .auth-tagline { font-size: 19px; margin-bottom: 0; }
  .auth-brand-sub { display: none; } /* keep the mobile header compact */
}

/* ── Legal stub pages (/privacy, /terms) ──────────────────────────────── */
.legal-page {
  min-height: calc(100vh - 80px);
  padding: 56px 20px;
  background: linear-gradient(135deg, #e6eef9 0%, #f4f7fc 45%, #fbf3ec 100%);
}
.legal-doc {
  max-width: 720px;
  margin: 0 auto;
  padding: 40px 44px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 32px rgba(11, 26, 51, 0.08);
}
.legal-doc h1 {
  margin: 0 0 6px;
  font-family: var(--font-hero);
  font-size: var(--text-2xl);
  color: #0B1A33;
}
.legal-updated { margin: 0 0 24px; font-size: var(--text-sm); color: #8390a4; }

.legal-back { font-size: var(--text-md); color: var(--accent); text-decoration: none; }
.legal-back:hover { text-decoration: underline; }
.legal-section { margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid #e8edf5; }
.legal-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.legal-doc h2 { margin: 0 0 12px; font-family: var(--font-hero); font-size: var(--text-lg); color: #0B1A33; font-weight: 600; }
.legal-doc p  { margin: 0 0 14px; line-height: 1.7; color: #2A3A55; font-size: var(--text-md); }
.legal-doc p:last-child { margin-bottom: 0; }
.legal-doc ul,
.legal-doc ol { margin: 0 0 14px 20px; line-height: 1.7; color: #2A3A55; font-size: var(--text-md); }
.legal-doc li { margin-bottom: 6px; }

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[15].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"app/fonts.js","import":"Spectral","arguments":[{"subsets":["latin"],"weight":["400","500","600","700"],"display":"swap","variable":"--font-spectral"}],"variableName":"fontHero"} ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/a905a6179bab2b08-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/273b2e150de7c4a9-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/692781be160fc9d0-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/1e9fc5e960416d85-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/e244d3ca994d3054-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/95fbe602f95f5b1d-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/d7fd192484976c0a-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/e478c40a90656953-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/680964f1bd688e24-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/3e68fbb477d90635-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/eba0a4e5bf800560-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/6adccebe1b78ad4c-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/1ee996a2e7c8d770-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/581701471b17b157-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/1eedfae966de4e1c-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/8b04d48cd7157641-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/d713df6f4e186d13-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/45838a0e963d80d9-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/c1fcc344624cfd87-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/877bc9206c568b1e-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'Spectral Fallback';src: local("Times New Roman");ascent-override: 96.46%;descent-override: 42.17%;line-gap-override: 0.00%;size-adjust: 109.78%
}.__className_916a8f {font-family: 'Spectral', 'Spectral Fallback';font-style: normal
}.__variable_916a8f {--font-spectral: 'Spectral', 'Spectral Fallback'
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[15].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"app/fonts.js","import":"IBM_Plex_Sans","arguments":[{"subsets":["latin"],"weight":["300","400","500","600","700"],"display":"swap","variable":"--font-plex-sans"}],"variableName":"fontSans"} ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/7b19b489dc6743ba-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/28793f5c5e3d822d-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/c9c3823090ec8b55-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/b3bf17a9041d9433-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/2801417b65625cf5-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'IBM Plex Sans Fallback';src: local("Arial");ascent-override: 101.32%;descent-override: 27.18%;line-gap-override: 0.00%;size-adjust: 101.17%
}.__className_6d343d {font-family: 'IBM Plex Sans', 'IBM Plex Sans Fallback';font-style: normal
}.__variable_6d343d {--font-plex-sans: 'IBM Plex Sans', 'IBM Plex Sans Fallback'
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[15].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"app/fonts.js","import":"IBM_Plex_Mono","arguments":[{"subsets":["latin"],"weight":["400","500","600","700"],"display":"swap","variable":"--font-plex-mono"}],"variableName":"fontMono"} ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/011e180705008d6f-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/92eeb95d069020cc-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/ef4d5661765d0e49-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/d29838c109ef09b4-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/e40af3453d7c920a-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/99dcf268bda04fe5-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/98e207f02528a563-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/73cb51aac9c97f90-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/20535187d867b7b9-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/704b853f32d191d5-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/656feb427634a431-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/991629005c80bdf1-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/46e154b2fcbd6033-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/37786be940ec402b-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'IBM Plex Mono Fallback';src: local("Arial");ascent-override: 76.16%;descent-override: 20.43%;line-gap-override: 0.00%;size-adjust: 134.59%
}.__className_b4c22e {font-family: 'IBM Plex Mono', 'IBM Plex Mono Fallback';font-style: normal
}.__variable_b4c22e {--font-plex-mono: 'IBM Plex Mono', 'IBM Plex Mono Fallback'
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[15].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"app/fonts.js","import":"Playfair_Display","arguments":[{"subsets":["latin"],"weight":["400","500"],"display":"swap","variable":"--font-playfair"}],"variableName":"fontDisplay"} ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/47f136985ef5b5cb-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/4ead58c4dcc3f285-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/28a2004cf8372660-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/_next/static/media/eaead17c7dbfcd5d-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/47f136985ef5b5cb-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/4ead58c4dcc3f285-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/28a2004cf8372660-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/eaead17c7dbfcd5d-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'Playfair Display Fallback';src: local("Times New Roman");ascent-override: 97.25%;descent-override: 22.56%;line-gap-override: 0.00%;size-adjust: 111.26%
}.__className_6069b5 {font-family: 'Playfair Display', 'Playfair Display Fallback';font-style: normal
}.__variable_6069b5 {--font-playfair: 'Playfair Display', 'Playfair Display Fallback'
}

