/* ============================================================================
   ELYTRA, Website styles (monochrome). Layered on colors_and_type.css.
   ============================================================================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-sans);background:var(--paper);color:var(--fg-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
[data-lucide]{width:1em;height:1em;stroke-width:1.6;flex:none}
::selection{background:#111;color:#fff}

.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.narrow{max-width:920px}

/* ---------------- buttons ---------------- */
.btn{font:var(--t-body-sm);font-weight:600;border-radius:var(--r-md);padding:13px 22px;border:1px solid transparent;cursor:pointer;transition:all var(--dur-fast) var(--ease-out);display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.btn [data-lucide]{width:16px;height:16px}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-hover);box-shadow:var(--shadow-brand)}
.btn-primary:active{background:var(--brand-press);transform:translateY(1px)}
.btn-outline{background:transparent;color:var(--ink-900);border-color:var(--border-strong)}
.btn-outline:hover{border-color:var(--ink-500);background:var(--white)}
.btn-ghost{background:transparent;color:var(--ink-800)}
.btn-ghost:hover{background:var(--ink-100)}
.btn-on-dark{background:#fff;color:#111}
.btn-on-dark:hover{background:var(--ink-200)}
.btn-on-dark-outline{background:transparent;color:#fff;border-color:var(--ink-700)}
.btn-on-dark-outline:hover{border-color:#fff}
.link-arrow{display:inline-flex;align-items:center;gap:7px;font:var(--t-body-sm);font-weight:600;border-bottom:1px solid transparent;transition:border-color var(--dur-fast)}
.link-arrow [data-lucide]{width:16px;height:16px;transition:transform var(--dur-fast)}
.link-arrow:hover{border-color:currentColor}
.link-arrow:hover [data-lucide]{transform:translateX(4px)}

/* ---------------- nav ---------------- */
.nav{position:sticky;top:0;z-index:80;background:rgba(250,250,250,.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(0,0,0,.06)}
.nav-inner{display:flex;align-items:center;height:72px;gap:36px}
.brand-lockup{display:inline-flex;align-items:center;gap:9px;line-height:1;color:inherit}
.brand-word{font-family:var(--font-display);font-size:21px;font-weight:500;line-height:1;letter-spacing:0;color:var(--ink-950)}
.nav-logo{flex:none}
.nav-logo img{height:25px;display:block}
.nav-logo .landing-logo{height:32px;width:auto;border-radius:4px}
.nav-links{display:flex;gap:28px;margin-left:2px}
.nav-links a{font:var(--t-body-sm);font-weight:500;color:var(--ink-600);transition:color var(--dur-fast);position:relative;padding:4px 0;white-space:nowrap}
.nav-links a:hover{color:var(--ink-950)}
.nav-links a.active{color:var(--ink-950)}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-26px;height:2px;background:var(--ink-950)}
.nav-cta{margin-left:auto;display:flex;align-items:center;gap:10px}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;color:var(--ink-900);width:40px;height:40px;align-items:center;justify-content:center}
.nav-toggle [data-lucide]{width:22px;height:22px}

/* ---------------- hero (redesigned: lines + map) ---------------- */
.hero-x{display:block}
.hero-x-top{position:relative;background:#ffffff;color:var(--ink-950);overflow:hidden;padding:104px 0 78px;text-align:center;isolation:isolate}
.hero-x-lines{position:absolute;inset:0;z-index:0;opacity:.42;pointer-events:none}
.hero-x-lines canvas{pointer-events:auto}
.hero-x-fade{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 88% at 50% 32%,transparent 30%,rgba(255,255,255,.6) 78%,#ffffff 100%),linear-gradient(to bottom,#ffffff 0%,rgba(255,255,255,.4) 14%,transparent 40%,transparent 66%,#ffffff 100%)}
.hero-x-copy{position:relative;z-index:2;max-width:920px}
.hero-x-eyebrow{display:inline-block;font:var(--t-overline);letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--ink-600);margin-bottom:26px;padding:7px 16px;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:rgba(255,255,255,.7);backdrop-filter:blur(4px)}
.hero-x-copy h1{font:var(--t-display-2xl);letter-spacing:var(--tracking-display);margin:0 0 22px;text-wrap:balance;color:var(--ink-950)}
.hero-x-copy p.lead{font:var(--t-body-lg);color:var(--fg-secondary);margin:0 auto 32px;max-width:50ch}
.hero-x-cta{display:flex;gap:13px;justify-content:center;align-items:center;flex-wrap:wrap}

.hero-x-mapwrap{background:#ffffff;padding:14px 0 36px}
.hero-x-maphead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.hero-x-mapeyebrow{display:inline-flex;align-items:center;gap:9px;font:var(--t-overline);letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--ink-600)}
.hero-x-mapeyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--ink-900);box-shadow:0 0 0 3px rgba(0,0,0,.06);animation:nodepulse 2.4s ease-in-out infinite}
.hero-x-maphint{font:var(--t-caption);color:var(--ink-400);white-space:nowrap}
.hero-x-map{max-width:1080px;margin:0 auto}
.hero-x-map svg{width:100%;height:auto;display:block}

/* map stage + flag overlay */
.map-stage{position:relative;width:100%}
.flag-layer{position:absolute;inset:0;pointer-events:none}
.mk{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;z-index:2}
.mk-flag-wrap{display:block;width:28px;height:28px;border-radius:50%;overflow:hidden;border:2px solid #fff;box-shadow:0 1px 4px rgba(20,30,55,.25);transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-out)}
.mk-flag{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.mk-dot{position:absolute;left:50%;top:calc(100% + 3px);transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--ink-900);box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.mk-dest .mk-dot{background:var(--ink-500);box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.mk-label{position:absolute;left:50%;top:calc(100% + 12px);transform:translateX(-50%);white-space:nowrap;font:var(--t-caption);font-weight:600;color:#fff;background:var(--ink-950);padding:4px 9px;border-radius:6px;opacity:0;visibility:hidden;transition:opacity .16s var(--ease-out);box-shadow:var(--shadow-md)}
.mk:hover{z-index:5}
.mk:hover .mk-flag-wrap{transform:scale(1.18);box-shadow:0 4px 12px rgba(20,30,55,.34)}
.mk:hover .mk-label{opacity:1;visibility:visible}

.hero-x-legend{display:flex;align-items:center;gap:26px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.hero-x-legend .lg{display:inline-flex;align-items:center;gap:9px;font:var(--t-caption);color:var(--ink-600);white-space:nowrap}
.hero-x-legend .lg-node{width:11px;height:11px;border-radius:50%;background:var(--ink-900);box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.hero-x-legend .lg-dest{width:9px;height:9px;border-radius:50%;background:var(--ink-700)}
.hero-x-legend .lg-count{font:var(--t-caption);color:var(--ink-400)}
.hero-x-legend .lg-count b{color:var(--ink-900);font-family:var(--font-mono)}

@keyframes nodepulse{0%,100%{opacity:1}50%{opacity:.45}}
@media(max-width:720px){
  .hero-x-top{padding:80px 0 60px}
  .hero-x-copy h1{font-size:44px}
  .hero-x-maphint{display:none}
  .hero-x-legend{gap:16px}
  .mk-flag-wrap{width:22px;height:22px}
}

/* ---------------- hero (legacy split layout, kept for inner pages) ---------------- */
.hero{padding:96px 0 76px;position:relative}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}
.hero h1{font:var(--t-display-2xl);letter-spacing:var(--tracking-display);margin:0 0 24px;text-wrap:balance}
.hero p.lead{font:var(--t-body-lg);color:var(--fg-secondary);margin:0 0 30px;max-width:46ch}
.hero-cta{display:flex;gap:13px;align-items:center;flex-wrap:wrap}
.pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.pill{font:var(--t-caption);font-weight:600;color:var(--ink-700);border:1px solid var(--border-strong);border-radius:var(--r-pill);padding:8px 15px;display:inline-flex;align-items:center;gap:8px;background:var(--white)}
.pill .dot{width:5px;height:5px;border-radius:50%;background:var(--ink-950)}
.hero.compact{padding:84px 0 56px}
.hero.compact h1{font:var(--t-display-xl);letter-spacing:var(--tracking-display)}
.hero.center{text-align:center}
.hero.center p.lead{margin-left:auto;margin-right:auto}
.hero.center .hero-cta{justify-content:center}

/* code/instruction card (hero visual) */
.code-card{background:var(--ink-950);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);overflow:hidden;position:relative}
.code-card::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:18px 18px;pointer-events:none}
.code-head{display:flex;align-items:center;gap:8px;padding:15px 18px;border-bottom:1px solid var(--ink-800)}
.code-head .d{width:10px;height:10px;border-radius:50%;background:var(--ink-700)}
.code-head .t{margin-left:10px;font:var(--t-caption);color:var(--ink-500);font-family:var(--font-mono)}
.code-body{padding:22px;font-family:var(--font-mono);font-size:13px;line-height:1.95;color:var(--ink-300);position:relative}
.code-body .kw{color:#fff}
.code-body .mut{color:var(--ink-500)}
.code-body .ok{color:#fff;font-weight:600}
.code-body .ind{padding-left:22px;display:block}

/* ---------------- sections ---------------- */
section{position:relative}
.section-anchor{scroll-margin-top:96px}
.band{padding:104px 0}
.hero.compact + .band:not(.sunken){border-top:1px solid var(--border)}
.band.tight{padding:80px 0}
.band.dark{background:var(--ink-950);color:var(--paper)}
.band.sunken{background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.sec-head{max-width:62ch;margin-bottom:56px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
h2.sec-title{font:var(--t-display-lg);letter-spacing:var(--tracking-display);margin:0 0 16px;text-wrap:balance}
.sec-head p{font:var(--t-body-lg);color:var(--fg-secondary);margin:0;max-width:54ch}
.dark .sec-head p{color:var(--ink-300)}
.sec-head.center p{margin-left:auto;margin-right:auto}

/* ---------------- stats strip ---------------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr)}
.stat{padding:38px 34px;border-left:1px solid var(--ink-800)}
.stat:first-child{border-left:0;padding-left:0}
.stat .v{font-family:var(--font-mono);font-size:54px;letter-spacing:-.04em;line-height:1}
.stat .l{font:var(--t-body);color:var(--ink-400);margin-top:14px}
.band:not(.dark) .stat{border-color:var(--border)}
.band:not(.dark) .stat .l{color:var(--fg-secondary)}

/* ---------------- use case grid ---------------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.uc{background:var(--white);padding:32px 30px;transition:background var(--dur-base)}
.uc:hover{background:var(--ink-50)}
.uc .ix{font-family:var(--font-mono);font-size:13px;color:var(--ink-400);margin-bottom:22px}
.uc h3{font:var(--t-h3);margin:0 0 10px}
.uc p{font:var(--t-body-sm);color:var(--fg-secondary);margin:0}
.uc .ic{width:40px;height:40px;border:1px solid var(--border-strong);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;margin-bottom:22px;color:var(--ink-900)}
.uc .ic [data-lucide]{width:19px;height:19px}
.usecase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);overflow:hidden}
.usecase-card{background:var(--white);padding:32px 30px 36px;min-height:300px;transition:background var(--dur-base);display:flex;flex-direction:column;align-items:flex-start}
.usecase-card:hover{background:var(--ink-50)}
.usecase-card-number{font-family:var(--font-mono);font-size:14px;line-height:1;color:var(--ink-400);margin-bottom:24px}
.usecase-card-icon{width:44px;height:44px;border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;margin-bottom:24px;color:var(--ink-950)}
.usecase-card-icon [data-lucide]{width:20px;height:20px;stroke-width:2.3}
.usecase-card h3{font:var(--t-h3);margin:0 0 14px}
.usecase-card p{font:var(--t-body-sm);color:var(--fg-secondary);line-height:1.6;margin:0;max-width:38ch}

/* ---------------- steps ---------------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.step{border-top:2px solid var(--ink-950);padding-top:26px}
.dark .step{border-color:#fff}
.step .n{font-family:var(--font-mono);font-size:14px;color:var(--ink-500);letter-spacing:.05em}
.step h3{font:var(--t-h3);margin:14px 0 12px}
.step p{font:var(--t-body-sm);color:var(--fg-secondary);margin:0}
.dark .step p{color:var(--ink-300)}

/* ---------------- comparison / data tables ---------------- */
.tbl-wrap{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--white)}
table.data{width:100%;border-collapse:collapse}
table.data th,table.data td{text-align:left;padding:18px 24px;border-bottom:1px solid var(--border);vertical-align:top}
table.data tbody tr:last-child td{border-bottom:0}
table.data thead th{font:var(--t-overline);letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--fg-muted);background:var(--ink-50)}
table.data td.lbl{font-weight:600;color:var(--ink-900);width:26%}
table.data td{font:var(--t-body-sm);color:var(--fg-secondary)}
table.data .m,table.data td.m{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-950)}
table.data .pos{color:var(--ink-950);font-weight:600}
table.data col.after,table.data .after-col{background:#fafafa}
table.data thead th.hl{color:var(--ink-950)}
.tbl-cap{font:var(--t-caption);color:var(--fg-muted);margin:14px 2px 0}
.tbl-title{font:var(--t-h4);margin:0 0 16px}

/* ---------------- reasons / principles ---------------- */
.reasons{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.reason{background:var(--white);padding:40px 38px}
.reason .n{font-family:var(--font-mono);font-size:14px;color:var(--ink-400);margin-bottom:20px}
.reason h3{font:var(--t-h2);font-size:24px;margin:0 0 14px;letter-spacing:-.01em}
.reason p{font:var(--t-body);color:var(--fg-secondary);margin:0}
.reason p b{color:var(--ink-950);font-weight:600}
.principles{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--ink-800);border:1px solid var(--ink-800);border-radius:var(--r-lg);overflow:hidden}
.principle{background:var(--ink-950);color:var(--paper);padding:34px 30px}
.principle .n{font-family:var(--font-mono);font-size:13px;color:var(--ink-500);margin-bottom:18px}
.principle h3{font:var(--t-h4);margin:0 0 10px;color:#fff}
.principle p{font:var(--t-body-sm);color:var(--ink-400);margin:0}

/* ---------------- corridors ---------------- */
.corridors{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.corridor-row{background:var(--white);display:flex;align-items:center;justify-content:space-between;padding:20px 26px}
.corridor-row .cc{display:flex;align-items:center;gap:14px}
.corridor-row .code{font-family:var(--font-mono);font-weight:600;font-size:18px;width:46px}
.corridor-row .place{font:var(--t-body-sm);color:var(--fg-secondary)}
.status-live{font:var(--t-caption);font-weight:600;display:inline-flex;align-items:center;gap:7px;color:var(--ink-950)}
.status-live .dot{width:7px;height:7px;border-radius:50%;background:var(--ink-950)}

/* ---------------- prose ---------------- */
.prose{max-width:72ch}
.prose p{font:var(--t-body-lg);color:var(--ink-800);margin:0 0 22px;line-height:1.7}
.prose p:last-child{margin-bottom:0}
.prose .flow-block{margin:0 0 32px}
.prose .flow-block h3{font:var(--t-h3);margin:0 0 8px}
.prose .flow-block .tag{font-family:var(--font-mono);font-size:12px;color:var(--ink-500);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:6px}
.callout{border-left:2px solid var(--ink-950);padding:6px 0 6px 24px;font:var(--t-h3);font-weight:500;color:var(--ink-950);margin:8px 0;text-wrap:balance}
.dark .callout{border-color:#fff;color:#fff}

/* ---------------- CTA band ---------------- */
.cta-band{text-align:center}
.cta-band h2{font:var(--t-display-xl);letter-spacing:var(--tracking-display);margin:0 0 18px;text-wrap:balance}
.cta-band p{font:var(--t-body-lg);color:var(--ink-300);margin:0 auto 34px;max-width:54ch}
.cta-band .row{display:flex;gap:13px;justify-content:center;align-items:center;flex-wrap:wrap}
.cta-band .cta-note{font:var(--t-body-sm);color:var(--ink-300);max-width:520px}
.cta-band .mail{font-family:var(--font-mono);font-size:14px;color:var(--ink-300)}
.contact-cta{display:flex;flex-direction:column;align-items:center}
.contact-cta h1,
.contact-cta h2{font:var(--t-display-2xl);letter-spacing:var(--tracking-display);margin:0 0 44px;color:#fff}
.contact-cta .contact-actions{display:flex;flex-direction:column;align-items:center;gap:22px}
.contact-cta .btn{padding:21px 46px;border-radius:22px;font-size:18px;line-height:1}
.contact-cta .btn [data-lucide]{width:24px;height:24px}
.contact-cta .contact-note{font:var(--t-body-lg);color:var(--ink-300);margin:0;max-width:780px;text-align:center}
.contact-cta .mail{font-family:var(--font-mono);font-size:inherit;color:var(--ink-300)}
.contact-cta .mail:hover{color:#fff}

/* ---------------- contact form ---------------- */
.contact-page{background:#fff}
.contact-form-shell{padding:34px 0 96px;background:#fff}
.contact-form-wrap{max-width:820px;margin-left:0;margin-right:auto}
.contact-progress{display:flex;align-items:center;gap:18px;margin-bottom:54px;color:var(--ink-700);font:var(--t-caption);font-weight:500}
.contact-progress-line{height:1px;background:var(--border);box-shadow:0 5px 12px rgba(15,23,42,.08);flex:1}
.contact-form-head{margin-bottom:44px}
.contact-form-head .eyebrow{font:var(--t-overline);letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--ink-500);margin:0 0 18px}
.contact-form-head h1{font:var(--t-display-xl);letter-spacing:var(--tracking-display);line-height:1.04;margin:0 0 16px;color:var(--ink-950);max-width:12ch}
.contact-form-head p{font:var(--t-body-lg);color:var(--fg-secondary);margin:0;max-width:45ch}
.contact-form{display:flex;flex-direction:column;gap:54px;max-width:690px}
.form-section{display:flex;flex-direction:column;gap:20px}
.form-section h2{font:var(--t-h3);margin:0 0 8px;color:var(--ink-950)}
.form-grid{display:grid;gap:20px}
.form-grid.two{grid-template-columns:1fr 1fr}
.field{display:flex;flex-direction:column;gap:8px}
.field span{font:var(--t-caption);font-weight:600;color:var(--ink-700)}
.field input,
.field select,
.field textarea{width:100%;border:1px solid var(--border-strong);background:#fff;border-radius:5px;color:var(--ink-950);font:var(--t-body);padding:0 19px;min-height:60px;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.field textarea{padding-top:16px;line-height:1.55;resize:vertical}
.field input::placeholder,
.field textarea::placeholder{color:var(--ink-500)}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-500) 50%),linear-gradient(135deg,var(--ink-500) 50%,transparent 50%);background-position:calc(100% - 22px) 26px,calc(100% - 16px) 26px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:46px}
.field input:focus,
.field select:focus,
.field textarea:focus{outline:none;border-color:var(--ink-950);box-shadow:0 0 0 3px rgba(17,17,17,.08)}
.phone-row{display:block}
.phone-field-full{position:relative;z-index:2}
.phone-field-full .iti{width:100%}
.phone-field-full .iti__tel-input{width:100%;font:var(--t-body);font-style:normal}
.phone-field-full .iti__selected-country{border-right:1px solid var(--border);padding:0 13px}
.phone-field-full .iti__country-container{border-radius:5px 0 0 5px}
.phone-field-full .iti__country-selector{z-index:40;width:min(420px,calc(100vw - 48px));max-width:calc(100vw - 48px);max-height:206px;background:#fff;border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow-lg);overflow:hidden}
.phone-field-full .iti__dropdown-content{border:0;border-radius:8px;box-shadow:none;font:var(--t-body-sm);overflow:hidden}
.phone-field-full .iti__search-input-wrapper{height:44px;border-bottom:1px solid var(--border)}
.phone-field-full .iti__search-input{height:44px;min-height:0;padding:0 44px;border:0;background:#fff;border-radius:0;box-shadow:none;font:var(--t-body-sm);line-height:44px}
.phone-field-full .iti__search-input:focus{outline:none;border:0;box-shadow:none}
.phone-field-full .iti__country-list{max-height:160px;overflow-y:auto;background:#fff}
.phone-field-full .iti__country{min-height:42px;padding:9px 14px;background:#fff;font:var(--t-body-sm)}
.phone-field-full .iti__country-name{overflow:hidden;text-overflow:ellipsis}
.phone-field-full .iti__dial-code{color:var(--ink-500)}
.phone-field-full .iti__country-check{margin-left:auto}
.form-submit{display:flex;flex-direction:column;gap:16px;margin-top:10px}
.contact-submit-btn{height:62px;border-radius:999px;justify-content:center;font-size:17px;width:100%;max-width:690px}
.contact-submit-btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}
.form-status{min-height:22px;margin:0;font:var(--t-body-sm);color:var(--ink-500)}
.form-status[data-tone="error"]{color:#9A3412}
.form-status[data-tone="success"]{color:#166534}

/* ---------------- FAQ ---------------- */
.faq-list{border-top:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{width:100%;background:none;border:0;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 4px;font:var(--t-h4);color:var(--ink-950);font-family:var(--font-sans)}
.faq-q [data-lucide]{width:20px;height:20px;color:var(--ink-500);transition:transform var(--dur-base) var(--ease-out);flex:none}
.faq-item.open .faq-q [data-lucide]{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height var(--dur-slow) var(--ease-out)}
.faq-a .inner{padding:0 4px 28px;font:var(--t-body);color:var(--fg-secondary);max-width:74ch;line-height:1.7}

/* ---------------- footer ---------------- */
.site-footer{background:var(--ink-950);color:var(--paper);padding:72px 0 36px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;padding-bottom:52px;border-bottom:1px solid var(--ink-800)}
.foot-brand img{height:25px;margin-bottom:18px}
.foot-brand .landing-logo{height:36px;width:auto;border-radius:4px}
.foot-brand-lockup{margin-bottom:18px}
.foot-brand .foot-brand-lockup img{margin-bottom:0}
.foot-brand .brand-word{color:#fff}
.foot-brand p{font:var(--t-body-sm);color:var(--ink-400);max-width:32ch;margin:0}
.foot-col h5{font:var(--t-overline);letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--ink-500);margin:0 0 16px}
.foot-col a{display:block;font:var(--t-body-sm);color:var(--ink-300);padding:7px 0;transition:color var(--dur-fast)}
.foot-col a:hover{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font:var(--t-caption);color:var(--ink-500);flex-wrap:wrap;gap:12px}

/* ---------------- case studies ---------------- */
.case{padding:96px 0}
.case + .case{border-top:1px solid var(--border)}
.case-head{display:flex;flex-direction:column;gap:18px;margin-bottom:40px}
.case-kicker{display:inline-flex;align-items:center;gap:12px;font:var(--t-overline);letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--ink-500)}
.case-kicker .corr{display:inline-flex;align-items:center;gap:8px}
.case-kicker img{width:24px;height:auto;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.case-kicker .sep{color:var(--ink-300)}
.case h2.case-title{font:var(--t-display-lg);font-size:40px;letter-spacing:var(--tracking-display);margin:0;max-width:22ch;text-wrap:balance}
.case-lede{font:var(--t-body-lg);color:var(--fg-secondary);max-width:70ch;margin:0;line-height:1.65}
.case-section-label{font:var(--t-h4);margin:48px 0 16px}
.case-narr{font:var(--t-body-lg);color:var(--ink-800);max-width:72ch;line-height:1.7;margin:0 0 18px}
.case-narr:last-of-type{margin-bottom:0}
.table-duo{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
table.data td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;color:var(--ink-950)}
table.data th.num{text-align:right}
.delta{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}
.delta-card{flex:1;min-width:220px;background:var(--ink-950);color:var(--paper);border-radius:var(--r-lg);padding:26px 28px}
.delta-card .dl{font:var(--t-caption);color:var(--ink-400);text-transform:uppercase;letter-spacing:.08em}
.delta-card .dv{font-family:var(--font-mono);font-size:38px;letter-spacing:-.03em;margin-top:10px}
.delta-card .ds{font:var(--t-caption);color:var(--ink-400);margin-top:8px}
@media(max-width:820px){
  .table-duo{grid-template-columns:1fr}
  .case h2.case-title{font-size:30px}
  .case{padding:64px 0}
}

/* ---------------- markets: use cases + corridors ---------------- */
.usecases{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.ucx{background:var(--white);padding:34px 30px;transition:background var(--dur-base)}
.ucx:hover{background:var(--ink-50)}
.ucx-n{font-family:var(--font-mono);font-size:13px;color:var(--ink-400);margin-bottom:18px}
.ucx-ic{width:44px;height:44px;border:1px solid var(--border-strong);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--ink-900)}
.ucx-ic [data-lucide]{width:20px;height:20px}
.ucx h3{font:var(--t-h3);margin:0 0 10px}
.ucx p{font:var(--t-body-sm);color:var(--fg-secondary);margin:0;line-height:1.6}

.corridor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.corridor-card{display:flex;align-items:center;gap:14px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;transition:all var(--dur-base) var(--ease-out)}
.corridor-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}
.corridor-flag{width:34px;height:auto;border-radius:3px;box-shadow:0 1px 3px rgba(20,30,55,.2),0 0 0 1px rgba(0,0,0,.04);flex:none}
.corridor-meta{display:flex;flex-direction:column;min-width:0;margin-right:auto}
.corridor-ccy{font-family:var(--font-mono);font-weight:600;font-size:17px;letter-spacing:-.01em}
.corridor-place{font:var(--t-caption);color:var(--fg-secondary)}
.corridor-status{font:var(--t-caption);font-weight:600;display:inline-flex;align-items:center;gap:7px;color:var(--ink-950);flex:none}
.corridor-status .dot{width:7px;height:7px;border-radius:50%;background:#2d6be3;box-shadow:0 0 0 3px rgba(45,107,227,.16)}
@media(max-width:900px){.usecases,.usecase-grid{grid-template-columns:1fr}.corridor-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.corridor-grid{grid-template-columns:1fr}}

/* ---------------- flow detail ---------------- */
.flow-detail{display:grid;grid-template-columns:96px 1fr;gap:28px;padding:34px 0;border-top:1px solid var(--border)}
.flow-detail:first-child{border-top:0}
.flow-detail-n{font-family:var(--font-mono);font-size:40px;letter-spacing:-.03em;color:var(--ink-300);line-height:1}
.flow-detail-body .tag{font-family:var(--font-mono);font-size:12px;color:var(--ink-500);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:10px}
.flow-detail-body h3{font:var(--t-h2);font-size:26px;margin:0 0 12px;letter-spacing:-.01em}
.flow-detail-body p{font:var(--t-body-lg);color:var(--fg-secondary);margin:0;max-width:64ch;line-height:1.65}

/* ---------------- rail diagram ---------------- */
.rail{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:0;max-width:1000px;margin:0 auto}
.rail-node{display:flex;flex-direction:column;align-items:center;text-align:center;width:130px;flex:none}
.rail-ic{width:58px;height:58px;border:1px solid var(--border-strong);border-radius:var(--r-lg);display:flex;align-items:center;justify-content:center;background:var(--white);box-shadow:var(--shadow-xs);margin-bottom:14px}
.rail-ic [data-lucide]{width:24px;height:24px;color:var(--ink-900)}
.rail-lbl{font:var(--t-h4);font-size:15px}
.rail-sub{font:var(--t-caption);color:var(--fg-muted);margin-top:3px}
.rail-seg{flex:1;min-width:64px;height:58px;display:flex;align-items:center;justify-content:center;position:relative}
.rail-seg::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:repeating-linear-gradient(90deg,var(--ink-300) 0 6px,transparent 6px 12px)}
.rail-seg span{position:relative;background:var(--paper);padding:3px 10px;font:var(--t-caption);font-weight:600;color:var(--ink-500);border-radius:var(--r-pill);white-space:nowrap;transform:translateY(-30px)}
.rail-seg.accent::before{background:var(--ink-950);height:2px}
.rail-seg.accent span{color:var(--ink-950)}
.rail-foot{text-align:center;font:var(--t-body);color:var(--fg-secondary);max-width:54ch;margin:40px auto 0}
@media(max-width:820px){
  .rail{flex-direction:column;gap:0}
  .rail-node{flex-direction:row;width:100%;justify-content:flex-start;gap:16px;text-align:left}
  .rail-ic{margin-bottom:0}
  .rail-seg{width:100%;height:34px;flex:none}
  .rail-seg::before{left:28px;right:auto;top:0;bottom:0;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--ink-300) 0 6px,transparent 6px 12px)}
  .rail-seg span{transform:none;margin-left:48px}
  .flow-detail{grid-template-columns:1fr;gap:8px}
}

/* ---------------- reveal ---------------- */
@media (prefers-reduced-motion: no-preference){
  .js-reveal .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
  .js-reveal .reveal.in{opacity:1;transform:none}
}

/* ---------------- responsive ---------------- */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .hero h1{font-size:56px}
  .reasons,.principles,.grid-3,.usecase-grid,.corridors,.steps,.stats{grid-template-columns:1fr}
  .stat{border-left:0;border-top:1px solid var(--border);padding:26px 0}
  .stat:first-child{border-top:0}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .nav-links,.nav-cta .btn-outline{display:none}
  .nav-toggle{display:flex}
  .nav.open .nav-links{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--border);padding:14px 28px;gap:2px}
  .nav.open .nav-links a{padding:13px 0;border-bottom:1px solid var(--border)}
  .hero h1{font-size:44px}
  h2.sec-title{font-size:34px}
  .cta-band h2{font-size:38px}
  .contact-cta h1,
  .contact-cta h2{font-size:44px;margin-bottom:32px}
  .contact-cta .btn{width:100%;justify-content:center;padding:19px 28px}
  .contact-cta .contact-actions{width:100%}
  .contact-cta .contact-note{font-size:16px}
  .band{padding:72px 0}
  .reason,.uc,.usecase-card,.principle{padding:28px 24px}
  table.data th,table.data td{padding:14px 16px}
  .foot-grid{grid-template-columns:1fr}
  .contact-form-shell{padding:24px 0 72px}
  .contact-form-wrap{max-width:none}
  .contact-progress{margin-bottom:36px}
  .contact-form-head{margin-bottom:36px}
  .contact-form-head h1{font-size:38px;max-width:10ch}
  .contact-form-head p{font-size:17px}
  .contact-form{gap:42px;max-width:none}
  .form-grid.two{grid-template-columns:1fr}
  .field input,
  .field select,
  .field textarea{min-height:56px;padding-left:16px;padding-right:16px}
  .field select{background-position:calc(100% - 20px) 24px,calc(100% - 14px) 24px}
}
