/* SOURCE: assets/css/base.css */
/* Dark Protocol Interface — Design System */
:root {
  --bg-primary: #050608;
  --bg-secondary: #080a0f;
  --bg-tertiary: #0b0e14;
  --surface: #0f131a;
  --surface-elevated: #141922;
  --surface-glass: rgba(15, 19, 26, 0.72);
  --border: rgba(255, 255, 255, 0.08);
  --border-light: rgba(255, 255, 255, 0.14);
  --border-accent: rgba(140, 180, 255, 0.28);
  --text-primary: #eef1f6;
  --text-secondary: #8b93a7;
  --text-muted: #5c6578;
  --accent: #8cb4ff;
  --accent-secondary: #7dd3e8;
  --accent-soft: rgba(140, 180, 255, 0.12);
  --accent-purple: #a89bdc;
  --warning: #d4a574;
  --warning-soft: rgba(212, 165, 116, 0.12);
  --danger: #e08080;
  --danger-soft: rgba(224, 128, 128, 0.1);
  --ok: #6bc9a0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --container-width: 1120px;
  --header-h: 64px;
  --status-h: 0px;
  --font-sans: "Inter", "Noto Sans JP", sans-serif;
  --font-jp: "Noto Sans JP", "Inter", sans-serif;
  --font-mono: "JetBrains Mono", "IBM Plex Mono", monospace;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --glow-blue: radial-gradient(ellipse at 50% 0%, rgba(100, 140, 220, 0.14), transparent 55%);
  --glow-cyan: radial-gradient(ellipse at 80% 40%, rgba(125, 211, 232, 0.08), transparent 45%);
  --glow-purple: radial-gradient(ellipse at 20% 80%, rgba(168, 155, 220, 0.07), transparent 50%);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: auto;
}

html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.65;
  color: var(--text-primary);
  background: var(--bg-primary);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.page-transition-out {
  opacity: 0.4;
  filter: blur(4px);
  transition: opacity 200ms ease, filter 200ms ease;
}

body.page-transition-in {
  animation: pageIn 280ms var(--ease-out) both;
}

@keyframes pageIn {
  from {
    opacity: 0;
    filter: blur(6px);
  }
  to {
    opacity: 1;
    filter: blur(0);
  }
}

img,
svg,
canvas {
  display: block;
  max-width: 100%;
}

a {
  color: var(--accent);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: #fff;
}

::selection {
  background: rgba(140, 180, 255, 0.28);
  color: #fff;
}

.mono {
  font-family: var(--font-mono);
}

.container {
  width: min(100% - 2.5rem, var(--container-width));
  margin-inline: auto;
}

.container--narrow {
  width: min(100% - 2.5rem, 760px);
}

.section-label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 0.75rem;
}

.section-title {
  font-family: var(--font-jp);
  font-weight: 600;
  font-size: clamp(1.6rem, 3.2vw, 2.4rem);
  letter-spacing: -0.03em;
  line-height: 1.25;
  margin: 0 0 1rem;
  color: var(--text-primary);
}

.section-lead {
  color: var(--text-secondary);
  font-size: 1.02rem;
  max-width: 38rem;
  margin: 0 0 1.75rem;
}

.bg-atmosphere {
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    var(--glow-blue),
    var(--glow-cyan),
    var(--glow-purple),
    linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-primary) 40%, var(--bg-tertiary) 100%);
}

.bg-noise {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

.bg-grid {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.04;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.6) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.6) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse at center, #000 20%, transparent 75%);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  body.page-transition-out,
  body.page-transition-in {
    filter: none !important;
    opacity: 1 !important;
    animation: none !important;
  }
}


/* SOURCE: assets/css/components.css */
/* Shared UI components */

/* ——— Protocol Status Bar ——— */
.protocol-status {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--status-h);
  display: flex;
  align-items: center;
  background: rgba(5, 6, 8, 0.92);
  border-bottom: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: var(--text-secondary);
}

.protocol-status__inner {
  width: min(100% - 2rem, var(--container-width));
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  overflow: hidden;
  white-space: nowrap;
}

.protocol-status__item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
}

.protocol-status__item strong {
  color: var(--text-primary);
  font-weight: 500;
}

.protocol-status__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent-secondary);
  box-shadow: 0 0 8px rgba(125, 211, 232, 0.55);
  animation: statusPulse 2.4s ease-in-out infinite;
}

@keyframes statusPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}

/* ——— Site Header ——— */
.site-header {
  position: sticky;
  top: var(--status-h);
  z-index: 90;
  height: var(--header-h);
  display: flex;
  align-items: center;
  border-bottom: 1px solid transparent;
  background: transparent;
  transition: background 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease;
}

.site-header.is-scrolled {
  background: var(--surface-glass);
  border-bottom-color: var(--border);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}

.site-header__inner {
  width: min(100% - 2rem, var(--container-width));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
}

.site-header__brand {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: -0.03em;
  color: #fff;
  justify-self: start;
}

.site-header__brand span {
  color: var(--accent);
  font-weight: 500;
}

.site-header__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.15rem 1.35rem;
  flex-wrap: wrap;
}

.site-header__nav a {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-secondary);
  padding: 0.35rem 0;
  border-bottom: 1px solid transparent;
}

.site-header__nav a:hover,
.site-header__nav a.is-active {
  color: var(--text-primary);
  border-bottom-color: var(--accent);
}

.site-header__actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.site-header__actions a:not(.btn) {
  font-size: 0.82rem;
  color: var(--text-secondary);
}

/* ——— Buttons ——— */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.85rem 1.4rem;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 560;
  letter-spacing: -0.01em;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  overflow: hidden;
  text-decoration: none;
  transition: transform 0.25s var(--ease-out), background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.22) 50%, transparent 65%);
  transform: translateX(-120%);
  transition: transform 0.55s var(--ease-out);
  pointer-events: none;
}

.btn:hover {
  transform: translateY(-2px);
  color: inherit;
}

.btn:hover::after {
  transform: translateX(120%);
}

.btn--primary {
  background: linear-gradient(180deg, #f4f6fa 0%, #d8dee8 100%);
  color: #0a0c10;
  border-color: rgba(255, 255, 255, 0.35);
}

.btn--primary:hover {
  color: #050608;
}

.btn--secondary {
  background: transparent;
  color: var(--text-primary);
  border-color: var(--border-light);
}

.btn--secondary:hover {
  border-color: var(--accent);
  color: #fff;
}

.btn--block {
  width: 100%;
}

.btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

/* ——— Site Footer ——— */
.site-footer {
  margin-top: 4rem;
  border-top: 1px solid var(--border);
  background: var(--bg-secondary);
  padding: 3.5rem 0 2.5rem;
}

.site-footer__inner {
  width: min(100% - 2.5rem, var(--container-width));
  margin-inline: auto;
  display: grid;
  gap: 2.5rem;
  grid-template-columns: 1.1fr 2fr;
}

.site-footer__logo {
  font-family: var(--font-sans);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.03em;
  margin: 0 0 0.5rem;
  color: #fff;
}

.site-footer__logo span {
  color: var(--accent);
}

.site-footer__tag {
  color: var(--text-secondary);
  margin: 0;
  font-size: 0.95rem;
}

.site-footer__cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.site-footer__cols h3 {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 0.85rem;
  font-weight: 500;
}

.site-footer__cols a,
.site-footer__cols p {
  display: block;
  color: var(--text-secondary);
  font-size: 0.88rem;
  margin: 0 0 0.55rem;
  line-height: 1.55;
}

.site-footer__cols a:hover {
  color: #fff;
}

/* ——— Guide nav ——— */
.guide-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 1.25rem 0 0;
}

.guide-subnav a {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-secondary);
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: transparent;
}

.guide-subnav a:hover,
.guide-subnav a.is-active {
  color: var(--text-primary);
  border-color: var(--border-accent);
  background: var(--accent-soft);
}

.faq-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.85rem;
}

.faq-subnav a {
  font-size: 0.8rem;
  color: var(--text-secondary);
  padding: 0.3rem 0.65rem;
  border-bottom: 1px solid transparent;
}

.faq-subnav a.is-active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* ——— Network canvas shell ——— */
.network-canvas {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 280px;
}

.network-canvas canvas {
  width: 100% !important;
  height: 100% !important;
}

.hero__visual .network-canvas,
.fund-flow__stage .network-canvas,
.hops-story__visual .network-canvas,
.split-pane__canvas,
.diff-panel__canvas,
.register-visual .network-canvas,
.final-cta__canvas,
.transit-map__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.network-canvas__labels {
  position: absolute;
  inset: 0;
  pointer-events: none;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--text-secondary);
}

.network-canvas__label {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.network-canvas__label--in {
  left: 4%;
}

.network-canvas__label--out {
  right: 4%;
  text-align: right;
}

.network-canvas__label strong {
  display: block;
  color: var(--text-primary);
  font-size: 0.85rem;
  margin-bottom: 0.15rem;
}

.fund-flow {
  margin: 1.5rem 0;
}

.fund-flow__caption {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: 0.85rem;
}

.fund-flow__stage {
  position: relative;
  height: clamp(260px, 42vw, 380px);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background:
    radial-gradient(ellipse at 50% 50%, rgba(100, 140, 220, 0.08), transparent 60%),
    var(--surface);
  overflow: hidden;
}

.fund-flow__note {
  margin-top: 0.85rem;
  font-size: 0.88rem;
  color: var(--text-secondary);
}

/* ——— Forms ——— */
.form-group {
  margin-bottom: 1.1rem;
}

.form-group label {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: 0.45rem;
}

.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  padding: 0.9rem 1rem;
  background: rgba(8, 10, 15, 0.85);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: 1rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(12, 16, 24, 0.95);
  box-shadow: 0 0 0 3px rgba(140, 180, 255, 0.12);
}

.alert {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-sm);
  margin-bottom: 1rem;
  font-size: 0.92rem;
}

.alert-error {
  background: var(--danger-soft);
  color: #f0a8a8;
  border: 1px solid rgba(224, 128, 128, 0.3);
}

.alert-success {
  background: rgba(107, 201, 160, 0.1);
  color: #8ed9b8;
  border: 1px solid rgba(107, 201, 160, 0.28);
}

.muted {
  color: var(--text-secondary);
}

/* App shell compatibility */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 1.5rem;
}

.panel {
  max-width: 560px;
  margin: 0 auto;
}

.panel-wide {
  max-width: 820px;
  margin: 0 auto;
}

.app-main {
  max-width: 820px;
  margin: 0 auto;
  padding: 1.75rem 1.25rem 3.5rem;
}

.app-kicker {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.35rem;
}

.btn-logout {
  background: transparent;
  border: 1px solid var(--border-light);
  color: #fff;
  padding: 0.35rem 0.75rem;
  border-radius: var(--radius-sm);
  font-size: 0.82rem;
  font-weight: 600;
}

@media (max-width: 900px) {
  .site-header__inner {
    grid-template-columns: 1fr auto;
  }

  .site-header__nav {
    display: none;
  }

  .site-footer__inner {
    grid-template-columns: 1fr;
  }

  .site-footer__cols {
    grid-template-columns: 1fr;
  }

  .protocol-status__inner {
    gap: 0.75rem;
    font-size: 0.62rem;
  }
}


/* SOURCE: assets/css/pages.css */
/* Page layouts — Dark Protocol Interface */

.home-main,
.protocol-main {
  padding: 0;
  max-width: none;
  width: 100%;
}

/* ——— HERO ——— */
.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  align-items: center;
  overflow: hidden;
  padding: 2rem 0 4rem;
}

.hero__grid {
  position: absolute;
  inset: 0;
  opacity: 0.05;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.7) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.7) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(ellipse at 70% 45%, #000 10%, transparent 70%);
  pointer-events: none;
}

.hero__glow {
  position: absolute;
  width: 55%;
  height: 70%;
  right: -5%;
  top: 10%;
  background: radial-gradient(ellipse, rgba(100, 150, 230, 0.16), transparent 65%);
  pointer-events: none;
  filter: blur(40px);
}

.hero__layout {
  width: min(100% - 2.5rem, var(--container-width));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 2rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

.hero__kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin: 0 0 1rem;
}

.hero__kicker-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent-secondary);
  box-shadow: 0 0 10px rgba(125, 211, 232, 0.5);
}

.hero__brand {
  font-family: var(--font-sans);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  margin: 0 0 0.75rem;
  color: #fff;
}

.hero__brand em {
  font-style: normal;
  color: var(--accent);
  font-weight: 500;
}

.hero__title {
  font-size: clamp(2.2rem, 5.5vw, 3.8rem);
  font-weight: 650;
  letter-spacing: -0.04em;
  line-height: 1.15;
  margin: 0 0 1.25rem;
}

.hero__title-line {
  display: block;
}

.hero__title-line--accent {
  background: linear-gradient(120deg, #fff 20%, var(--accent) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero__lead {
  color: var(--text-secondary);
  font-size: 1.05rem;
  max-width: 28rem;
  margin: 0 0 1.75rem;
}

.hero__visual {
  position: relative;
  height: clamp(340px, 52vh, 560px);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background: rgba(8, 10, 15, 0.45);
  overflow: hidden;
}

.hero__visual-tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  color: var(--text-secondary);
  padding: 0.35rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(5, 6, 8, 0.55);
  backdrop-filter: blur(8px);
}

.hero__scroll {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  color: var(--text-muted);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
}

.hero__scroll-line {
  width: 1px;
  height: 36px;
  background: linear-gradient(to bottom, var(--accent), transparent);
  animation: scrollLine 1.8s ease-in-out infinite;
}

@keyframes scrollLine {
  0%, 100% { opacity: 0.25; transform: scaleY(0.7); }
  50% { opacity: 1; transform: scaleY(1); }
}

/* ——— Audience strip ——— */
.audience-strip {
  border-block: 1px solid var(--border);
  background: rgba(8, 10, 15, 0.55);
  padding: 1.25rem 0;
}

.audience-strip__inner {
  width: min(100% - 2.5rem, var(--container-width));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.audience-strip p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--text-secondary);
}

.audience-strip strong {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-primary);
  margin-bottom: 0.35rem;
  font-weight: 500;
}

/* ——— Sections ——— */
.protocol-section {
  position: relative;
  padding: clamp(4rem, 9vw, 7rem) 0;
}

.protocol-section__inner {
  width: min(100% - 2.5rem, var(--container-width));
  margin-inline: auto;
}

/* WHY / Comparison */
.diff-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin: 2rem 0;
}

.diff-panel {
  position: relative;
  min-height: 280px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  overflow: hidden;
  padding: 1.25rem;
}

.diff-panel__meta {
  position: relative;
  z-index: 2;
}

.diff-panel__meta em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}

.diff-panel__meta strong {
  display: block;
  margin-top: 0.35rem;
  font-size: 1.15rem;
  letter-spacing: -0.02em;
}

.diff-panel__canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.compare-ui {
  margin-top: 2rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.compare-ui__row {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr 1.4fr;
  border-bottom: 1px solid var(--border);
}

.compare-ui__row:last-child {
  border-bottom: none;
}

.compare-ui__row--head {
  background: rgba(255, 255, 255, 0.02);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.compare-ui__row > * {
  padding: 1rem 1.15rem;
  border-right: 1px solid var(--border);
  font-size: 0.92rem;
  color: var(--text-secondary);
}

.compare-ui__row > *:last-child {
  border-right: none;
}

.compare-ui__row--head > * {
  color: var(--text-muted);
}

.compare-ui__row [role="rowheader"] {
  color: var(--text-primary);
  font-weight: 500;
}

.compare-ui__win {
  color: var(--text-primary) !important;
  background: rgba(140, 180, 255, 0.05);
}

/* Passcode ritual */
.passcode-stage {
  position: relative;
  margin-top: 2.5rem;
  min-height: 340px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(ellipse at center, rgba(140, 180, 255, 0.08), transparent 55%),
    var(--surface);
  overflow: hidden;
}

.passcode-stage__nodes {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 8%;
  pointer-events: none;
}

.passcode-node {
  text-align: center;
  transition: transform 0.1s linear;
}

.passcode-node em {
  display: block;
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  color: var(--text-muted);
  margin-bottom: 0.4rem;
}

.passcode-node strong {
  display: block;
  font-size: 1rem;
  font-weight: 560;
}

.passcode-node span {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.8rem;
  color: var(--text-secondary);
}

.passcode-core {
  position: relative;
  z-index: 2;
  text-align: center;
}

.passcode-core__label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  color: var(--accent);
  margin-bottom: 0.75rem;
}

.passcode-core__digits {
  font-family: var(--font-mono);
  font-size: clamp(2rem, 6vw, 3.6rem);
  font-weight: 500;
  letter-spacing: 0.18em;
  color: #fff;
  text-shadow: 0 0 40px rgba(140, 180, 255, 0.25);
}

.passcode-core__hint {
  margin-top: 0.85rem;
  color: var(--text-secondary);
  font-size: 0.9rem;
}

.passcode-steps {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.passcode-steps li {
  border-top: 1px solid var(--border);
  padding-top: 1rem;
}

.passcode-steps em {
  display: block;
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.35rem;
}

.passcode-steps span {
  color: var(--text-secondary);
  font-size: 0.92rem;
}

/* Problem A→B */
.problem-line {
  position: relative;
  margin: 2.5rem 0 1rem;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.problem-node {
  width: 88px;
  height: 88px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  display: grid;
  place-items: center;
  background: var(--surface);
  font-family: var(--font-mono);
  font-size: 1.4rem;
  font-weight: 500;
  z-index: 2;
}

.problem-edge {
  position: relative;
  flex: 1;
  max-width: 420px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #e08080, transparent);
}

.problem-meta {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  width: max-content;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--danger);
}

.problem-meta span {
  opacity: 0;
  transform: translateY(8px);
  padding: 0.25rem 0.5rem;
  border: 1px solid rgba(224, 128, 128, 0.3);
  background: rgba(20, 10, 10, 0.7);
  border-radius: 2px;
}

.problem-meta span.is-shown {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.problem-meta span:nth-child(1) { top: -70px; position: relative; }
.problem-meta span:nth-child(2) { top: -40px; position: relative; }
.problem-meta span:nth-child(3) { top: 10px; position: relative; }
.problem-meta span:nth-child(4) { top: 40px; position: relative; }

/* HOPS sticky story */
.hops-story {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 2rem;
  align-items: start;
}

.hops-story__visual {
  position: sticky;
  top: calc(var(--status-h) + var(--header-h) + 1.5rem);
  height: min(70vh, 520px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  overflow: hidden;
}

.hops-story__visual .network-canvas,
.hops-story__visual [data-network-flow] {
  position: absolute;
  inset: 0;
  min-height: 0;
}

.hops-story__steps {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.hops-step {
  min-height: 55vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2rem 0;
  border-bottom: 1px solid var(--border);
  opacity: 0.35;
  transition: opacity 0.35s ease;
}

.hops-step.is-active {
  opacity: 1;
}

.hops-step__num {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--accent);
  margin-bottom: 0.5rem;
}

.hops-step h3 {
  font-size: 1.6rem;
  letter-spacing: -0.03em;
  margin: 0 0 0.75rem;
}

.hops-step p {
  color: var(--text-secondary);
  margin: 0;
  max-width: 28rem;
}

/* Warning / Human layer */
.human-layer {
  background:
    radial-gradient(ellipse at 30% 0%, rgba(212, 165, 116, 0.08), transparent 50%),
    var(--bg-secondary);
  border-block: 1px solid rgba(212, 165, 116, 0.18);
}

.risk-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-top: 2rem;
}

.risk-card {
  padding: 1.35rem 1.4rem;
  border: 1px solid rgba(212, 165, 116, 0.22);
  border-radius: var(--radius-md);
  background: rgba(20, 16, 12, 0.45);
}

.risk-card em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--warning);
  display: block;
  margin-bottom: 0.5rem;
}

.risk-card strong {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 1.05rem;
}

.risk-card p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.9rem;
}

/* Final CTA */
.final-cta {
  position: relative;
  min-height: 70vh;
  display: grid;
  place-items: center;
  text-align: center;
  overflow: hidden;
  padding: 4rem 1.25rem;
}

.final-cta__canvas {
  position: absolute;
  inset: 0;
  opacity: 0.55;
}

.final-cta__content {
  position: relative;
  z-index: 2;
}

.final-cta__brand {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  letter-spacing: -0.02em;
  color: var(--accent);
  margin-bottom: 1rem;
}

.final-cta h2 {
  font-size: clamp(1.8rem, 4.5vw, 3rem);
  letter-spacing: -0.04em;
  line-height: 1.25;
  margin: 0 0 2rem;
  max-width: 16ch;
  margin-inline: auto;
}

/* Guide map */
.protocol-map {
  position: relative;
  padding: 2rem 0 4rem;
}

.protocol-map__progress {
  position: sticky;
  top: calc(var(--status-h) + var(--header-h) + 0.75rem);
  z-index: 20;
  display: flex;
  gap: 0.35rem;
  margin-bottom: 2rem;
  padding: 0.55rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-glass);
  backdrop-filter: blur(12px);
  width: fit-content;
  max-width: 100%;
  overflow-x: auto;
}

.protocol-map__progress a {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  padding: 0.4rem 0.65rem;
  border-radius: 999px;
  color: var(--text-muted);
  white-space: nowrap;
}

.protocol-map__progress a.is-active {
  color: #0a0c10;
  background: var(--accent);
}

.protocol-map__spine {
  position: relative;
  max-width: 720px;
  margin: 0 auto;
}

.protocol-map__spine::before {
  content: "";
  position: absolute;
  left: 2.1rem;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--border);
}

.protocol-map__line {
  position: absolute;
  left: 2.1rem;
  top: 0;
  width: 1px;
  height: 0;
  background: linear-gradient(to bottom, var(--accent), var(--accent-secondary));
  box-shadow: 0 0 12px rgba(140, 180, 255, 0.35);
  transition: height 0.15s linear;
  z-index: 1;
}

.map-node {
  position: relative;
  display: grid;
  grid-template-columns: 4.2rem 1fr;
  gap: 1.25rem;
  padding: 2rem 0;
  scroll-margin-top: 140px;
}

.map-node__index {
  position: relative;
  z-index: 2;
  width: 4.2rem;
  height: 4.2rem;
  border-radius: 50%;
  border: 1px solid var(--border-light);
  background: var(--bg-primary);
  display: grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: 0.95rem;
  color: var(--text-secondary);
}

.map-node.is-active .map-node__index {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 0 0 4px rgba(140, 180, 255, 0.1);
}

.map-node__body h3 {
  margin: 0 0 0.35rem;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  letter-spacing: -0.03em;
}

.map-node__body em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: var(--accent);
  display: block;
  margin-bottom: 0.5rem;
}

.map-node__body p {
  color: var(--text-secondary);
  margin: 0 0 1rem;
  max-width: 36rem;
}

/* Ledger compare */
.ledger-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-top: 2rem;
}

.ledger-panel {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  padding: 1.5rem;
  min-height: 320px;
}

.ledger-panel__tag {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--text-muted);
  margin-bottom: 0.35rem;
}

.ledger-panel h3 {
  margin: 0 0 1.25rem;
  font-size: 1.35rem;
}

.ledger-panel--public {
  border-color: rgba(224, 128, 128, 0.28);
}

.ledger-viz {
  position: relative;
  height: 160px;
  margin-bottom: 1rem;
}

.ledger-viz__line {
  position: absolute;
  top: 50%;
  left: 12%;
  right: 12%;
  height: 2px;
  background: var(--border-light);
}

.ledger-panel--public .ledger-viz__line {
  background: linear-gradient(90deg, #e08080, #e08080);
}

.ledger-viz__node {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
  height: 40px;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-sm);
  background: var(--bg-primary);
  display: grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: 0.75rem;
}

.ledger-viz__node--a { left: 12%; }
.ledger-viz__node--b { left: 88%; }

.ledger-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.ledger-tags span {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  padding: 0.3rem 0.5rem;
  border: 1px solid rgba(224, 128, 128, 0.35);
  color: #e8a0a0;
  border-radius: 2px;
  opacity: 0;
  transform: translateY(6px);
}

.ledger-panel.is-revealed .ledger-tags span {
  opacity: 1;
  transform: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.ledger-panel.is-revealed .ledger-tags span:nth-child(2) { transition-delay: 0.1s; }
.ledger-panel.is-revealed .ledger-tags span:nth-child(3) { transition-delay: 0.2s; }
.ledger-panel.is-revealed .ledger-tags span:nth-child(4) { transition-delay: 0.3s; }

/* Transit / flow map */
.transit-map {
  position: relative;
  margin: 2rem 0;
  min-height: 420px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  overflow: hidden;
}

.transit-map__canvas {
  position: absolute;
  inset: 0;
}

.transit-map__copy {
  position: relative;
  z-index: 2;
  padding: 1.5rem;
  max-width: 280px;
  background: linear-gradient(90deg, rgba(5, 6, 8, 0.85), transparent);
}

/* Layer stack */
.layer-stack {
  position: relative;
  height: 520px;
  margin: 2rem 0;
  perspective: 1200px;
}

.layer-stack__stage {
  position: sticky;
  top: calc(var(--status-h) + var(--header-h) + 2rem);
  height: 360px;
  transform-style: preserve-3d;
}

.layer-glass {
  position: absolute;
  left: 10%;
  right: 10%;
  height: 64px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-md);
  background: rgba(140, 180, 255, 0.06);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  opacity: 0;
  transform: translateY(40px) rotateX(18deg);
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
}

.layer-glass.is-on {
  opacity: 1;
  transform: translateY(var(--ty, 0)) rotateX(12deg);
}

.layer-glass em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--accent);
}

.layer-glass strong {
  font-size: 0.95rem;
}

.layer-copy {
  display: grid;
  gap: 3rem;
  margin-top: 2rem;
}

.layer-copy article {
  min-height: 40vh;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.layer-copy h3 {
  margin: 0 0 0.5rem;
}

.layer-copy p {
  color: var(--text-secondary);
  margin: 0;
  max-width: 36rem;
}

/* Split screens */
.execution-viz {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  min-height: 520px;
  margin-top: 2rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: linear-gradient(135deg, rgba(140,180,255,.06), transparent 48%), var(--surface);
}

.execution-code { padding: 1.5rem; border-right: 1px solid var(--border); }
.execution-code__bar { display:flex; align-items:center; gap:.4rem; padding-bottom:1rem; border-bottom:1px solid var(--border); }
.execution-code__bar span { width:8px; height:8px; border-radius:50%; background:var(--border-light); }
.execution-code__bar em { margin-left:auto; font:normal .68rem var(--font-mono); color:var(--text-muted); }
.execution-code ol { margin:1.3rem 0 0; padding-left:2.7rem; counter-reset:item; }
.execution-code li { padding:.8rem .75rem; color:var(--text-muted); border-left:1px solid var(--border); transition:.35s ease; }
.execution-code li::marker { font: .68rem var(--font-mono); }
.execution-code li.is-active { color:var(--text-primary); background:rgba(140,180,255,.07); border-left-color:var(--accent); box-shadow:inset 2px 0 12px rgba(140,180,255,.06); }
.execution-code code { font:clamp(.72rem,1.4vw,.9rem) var(--font-mono); white-space:nowrap; }
.execution-code code b { color:var(--accent); font-weight:500; }
.execution-pipeline { display:flex; flex-direction:column; justify-content:center; padding:1.5rem; }
.execution-node { position:relative; display:grid; grid-template-columns:2rem 1fr; gap:.15rem .7rem; padding:.85rem 1rem; border-left:1px solid var(--border); opacity:.42; transition:.35s ease; }
.execution-node:not(:last-child)::after { content:""; position:absolute; left:-1px; top:100%; width:1px; height:8px; background:var(--border); }
.execution-node em { grid-row:1/3; font:normal .68rem var(--font-mono); color:var(--text-muted); }
.execution-node strong { font:.75rem var(--font-mono); letter-spacing:.08em; }
.execution-node span { color:var(--text-secondary); font-size:.78rem; }
.execution-node.is-active { opacity:1; border-left-color:var(--accent); background:linear-gradient(90deg,rgba(140,180,255,.1),transparent); }

.split-screen {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 70vh;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin: 2rem 0;
}

.split-pane {
  position: relative;
  padding: 1.5rem;
  border-right: 1px solid var(--border);
  background: var(--surface);
}

.split-pane:last-child {
  border-right: none;
}

.split-pane__canvas {
  position: absolute;
  inset: 0;
  opacity: 0.85;
}

.split-pane__meta {
  position: relative;
  z-index: 2;
}

.split-pane__meta em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--text-muted);
}

.split-pane__meta h3 {
  margin: 0.4rem 0 0;
  font-size: 1.25rem;
}

.feature-grid {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr 1.4fr;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-top: 2rem;
}

.feature-grid > * {
  padding: 1rem 1.1rem;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  font-size: 0.9rem;
  color: var(--text-secondary);
}

.feature-grid > *:nth-child(3n) {
  border-right: none;
}

.feature-grid__head {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted) !important;
  background: rgba(255, 255, 255, 0.02);
}

.feature-grid__win {
  color: var(--text-primary) !important;
  background: rgba(140, 180, 255, 0.05);
}

/* Register console */
.register-shell {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  min-height: calc(100vh - var(--status-h) - var(--header-h));
  gap: 0;
}

.register-visual {
  position: relative;
  border-right: 1px solid var(--border);
  background: var(--bg-secondary);
  min-height: 360px;
}

.register-visual__tag {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  z-index: 2;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  color: var(--text-secondary);
}

.init-console { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding:clamp(3.5rem,7vw,6rem); overflow:hidden; }
.init-orbit { position:relative; width:min(260px,55%); aspect-ratio:1; margin:0 auto 1.5rem; border:1px solid rgba(140,180,255,.24); border-radius:50%; display:grid; place-items:center; }
.init-orbit::before,.init-orbit::after { content:""; position:absolute; inset:14%; border:1px solid var(--border); border-radius:50%; }
.init-orbit::after { inset:30%; border-color:var(--accent); box-shadow:0 0 35px rgba(140,180,255,.18); }
.init-orbit span { position:absolute; inset:-1px; border-radius:50%; border-top:1px solid var(--accent); animation:init-spin 8s linear infinite; }
.init-orbit i { font:normal .68rem var(--font-mono); letter-spacing:.18em; color:var(--accent); }
.init-log { width:min(520px,100%); margin-inline:auto; border-top:1px solid var(--border); }
.init-log p { display:grid; grid-template-columns:2rem 1fr auto; gap:.65rem; margin:0; padding:.6rem 0; border-bottom:1px solid var(--border); font:.62rem var(--font-mono); color:var(--text-muted); }
.init-log p b { color:var(--text-muted); font-weight:500; }
.init-log p.is-active { color:var(--text-primary); }
.init-log p.is-active b { color:var(--accent); }
.init-console small { width:min(520px,100%); margin:.75rem auto 0; color:var(--text-muted); font:.58rem var(--font-mono); letter-spacing:.06em; }
@keyframes init-spin { to { transform:rotate(360deg); } }

.register-form {
  display: flex;
  align-items: center;
  padding: 2.5rem clamp(1.5rem, 4vw, 3.5rem);
  background: var(--bg-primary);
}

.register-form__panel {
  width: 100%;
  max-width: 420px;
}

.register-form__panel h1 {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  letter-spacing: -0.03em;
  margin: 0 0 0.75rem;
}

.register-shell.is-focused .register-visual {
  box-shadow: inset 0 0 0 1px rgba(140, 180, 255, 0.22);
}

.register-shell.is-focused .register-form {
  background: #07090e;
}

/* FAQ accordion */
.faq-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.5rem 0;
  align-items: center;
}

.faq-search {
  flex: 1;
  min-width: 200px;
  padding: 0.75rem 1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  font-family: var(--font-sans);
}

.faq-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.faq-cats button {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
}

.faq-cats button.is-active {
  border-color: var(--accent);
  color: var(--text-primary);
  background: var(--accent-soft);
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.faq-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  overflow: hidden;
}

.faq-item[hidden] {
  display: none;
}

.faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 1.1rem 1.25rem;
  font-weight: 560;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  content: "+";
  font-family: var(--font-mono);
  color: var(--text-muted);
}

.faq-item[open] summary::after {
  content: "−";
}

.faq-item__body {
  padding: 0 1.25rem 1.25rem;
  color: var(--text-secondary);
  font-size: 0.95rem;
}

.faq-item__cat {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  color: var(--accent);
  display: block;
  margin-bottom: 0.35rem;
}

/* Content helpers reused across guides */
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1.5rem;
}

.why-grid article {
  padding: 1.25rem;
  border-top: 1px solid var(--border);
}

.why-grid h3 {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
}

.why-grid p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.92rem;
}

.plain-steps {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.plain-steps li {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem;
  padding: 1.1rem 0;
  border-top: 1px solid var(--border);
}

.plain-steps strong {
  font-size: 1.05rem;
}

.plain-steps span {
  color: var(--text-secondary);
}

.callout {
  margin-top: 1.5rem;
  padding: 1rem 1.15rem;
  border-left: 2px solid var(--accent);
  background: var(--accent-soft);
  color: var(--text-secondary);
  font-size: 0.95rem;
}

.roles-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1rem;
  align-items: center;
  margin-top: 1.5rem;
}

.role-card {
  padding: 1.35rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.role-card__tag {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--accent);
  margin: 0 0 0.5rem;
}

.role-card h3 {
  margin: 0 0 0.5rem;
}

.role-card p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.92rem;
}

.roles-arrow {
  font-family: var(--font-mono);
  color: var(--text-muted);
}

.flow-steps {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.flow-steps li {
  padding: 1.25rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.flow-steps em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--accent);
  display: block;
  margin-bottom: 0.5rem;
}

.flow-steps span {
  display: block;
  font-size: 1.1rem;
  margin-bottom: 0.35rem;
}

.flow-steps small {
  color: var(--text-secondary);
  font-size: 0.85rem;
}

.teaser-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
}

.teaser-grid a {
  display: block;
  padding: 1.15rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: inherit;
  transition: border-color 0.25s ease, transform 0.25s var(--ease-out);
}

.teaser-grid a:hover {
  border-color: var(--border-accent);
  transform: translateY(-2px);
  color: inherit;
}

.teaser-grid em {
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 0.68rem;
  color: var(--accent);
  display: block;
  margin-bottom: 0.35rem;
}

.teaser-grid strong {
  display: block;
  margin-bottom: 0.3rem;
}

.teaser-grid span {
  color: var(--text-secondary);
  font-size: 0.85rem;
}

.overview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.overview-grid article {
  padding: 1.35rem 0;
  border-top: 1px solid var(--border);
}

.overview-grid h3 {
  margin: 0 0 0.5rem;
}

.overview-grid p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.92rem;
}

@media (max-width: 900px) {
  .execution-viz { grid-template-columns:1fr; min-height:auto; }
  .execution-code { border-right:0; border-bottom:1px solid var(--border); }
  .hero__layout,
  .diff-split,
  .hops-story,
  .ledger-compare,
  .split-screen,
  .register-shell,
  .audience-strip__inner,
  .why-grid,
  .overview-grid,
  .passcode-steps,
  .flow-steps,
  .risk-grid,
  .roles-grid {
    grid-template-columns: 1fr;
  }

  .hero__visual {
    height: 300px;
  }

  .hops-story__visual {
    position: relative;
    top: auto;
    height: 280px;
  }

  .hops-step {
    min-height: auto;
    padding: 1.5rem 0;
  }

  .compare-ui__row,
  .feature-grid {
    grid-template-columns: 1fr;
  }

  .compare-ui__row > *,
  .feature-grid > * {
    border-right: none;
  }

  .roles-arrow {
    display: none;
  }

  .passcode-stage__nodes {
    padding: 0 4%;
  }

  .layer-stack {
    height: auto;
  }

  .layer-stack__stage {
    position: relative;
    top: auto;
    height: 280px;
  }
}

/* ——— Legacy class bridges (FAQ subpages / app leftovers) ——— */
.home-section,
.home-guide-hero,
.home-faq,
.home-teaser,
.home-footer-band {
  width: min(100% - 2.5rem, var(--container-width));
  margin-inline: auto;
  padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}

.home-split__label,
.home-chapter__kicker {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 0.75rem;
}

.home-section h2,
.home-guide-hero h2,
.home-faq h2 {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  letter-spacing: -0.03em;
  margin: 0 0 1rem;
}

.home-safety__lead {
  color: var(--text-secondary);
  max-width: 38rem;
  margin: 0 0 1.25rem;
}

.home-faq__list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
}

.home-faq__list > div {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  padding: 1.15rem 1.25rem;
}

.home-faq__list dt {
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.home-faq__list dd {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.95rem;
}

.home-faq__bullets {
  margin: 0.75rem 0 0;
  padding-left: 1.1rem;
  color: var(--text-secondary);
}

.home-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.home-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.4rem;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 560;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  text-decoration: none;
  transition: transform 0.25s var(--ease-out), border-color 0.25s ease, color 0.25s ease;
}

.home-btn:hover {
  transform: translateY(-2px);
  color: inherit;
}

.home-btn--solid {
  background: linear-gradient(180deg, #f4f6fa 0%, #d8dee8 100%);
  color: #0a0c10;
}

.home-btn--ghost {
  background: transparent;
  color: var(--text-primary);
  border-color: var(--border-light);
}

.home-guide-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 1.25rem 0 0;
}

.home-guide-nav a,
.home-faq-jump a {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-secondary);
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.home-guide-nav a.is-active,
.home-faq-jump a.is-active {
  color: var(--text-primary);
  border-color: var(--border-accent);
  background: var(--accent-soft);
}

.home-faq-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.85rem;
}

.fund-flow__stage--compact {
  height: clamp(220px, 36vw, 300px);
}


/* SOURCE: assets/css/animations.css */
/* Motion / reveal / scroll states */

.reveal {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(4px);
  transition:
    opacity 0.7s var(--ease-out),
    transform 0.7s var(--ease-out),
    filter 0.7s var(--ease-out);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
  filter: none;
}

/* If JS/observers fail, content still becomes readable */
@media (prefers-reduced-motion: no-preference) {
  .reveal:not(.is-visible) {
    animation: revealSafety 0.01s linear 2.5s forwards;
  }
}

@keyframes revealSafety {
  to {
    opacity: 1;
    transform: none;
    filter: none;
  }
}

.reveal-line {
  position: relative;
}

.reveal-line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  height: 1px;
  width: 0;
  background: var(--accent);
  transition: width 0.8s var(--ease-out);
}

.reveal.is-visible .reveal-line::after {
  width: 100%;
}

.parallax-layer {
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }

  .hero__scroll-line,
  .protocol-status__dot {
    animation: none !important;
  }
}


/* SOURCE: assets/css/mobile.css */
/* Mobile-first polish — distinct visuals, fewer WebGL canvases */

/* Hide mobile-only diagrams on desktop */
.m-diagram,
.fund-flow__mobile,
.hops-rail {
  display: none;
}

.network-canvas__center-badge {
  position: absolute;
  left: 50%;
  top: 18%;
  transform: translateX(-50%);
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--text-secondary);
  pointer-events: none;
  z-index: 2;
  text-align: center;
  margin: 0;
}

.network-canvas__center-badge strong {
  display: block;
  color: var(--text-primary);
  font-size: 0.95rem;
}

@media (max-width: 768px) {
  input,
  select,
  textarea,
  .faq-search {
    font-size: 16px;
  }

  /* ——— Status / header ——— */
  .protocol-status {
    height: auto;
    min-height: 32px;
    padding: 0.35rem 0;
  }

  .protocol-status__inner {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0.85rem;
    font-size: 0.6rem;
    scrollbar-width: none;
  }

  .protocol-status__inner::-webkit-scrollbar {
    display: none;
  }

  .protocol-status__item:last-child {
    display: none; /* long disclosure — keep status compact */
  }

  .site-header {
    height: 56px;
  }

  .site-header__brand {
    font-size: 0.95rem;
  }

  .site-header__actions .btn {
    padding: 0.55rem 0.85rem;
    font-size: 0.78rem;
  }

  .site-header__actions a:not(.btn) {
    display: none;
  }

  /* ——— Hero: copy first, compact visual ——— */
  .hero {
    min-height: auto;
    padding: 1.25rem 0 2.5rem;
  }

  .hero__layout {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
  }

  .hero__visual {
    order: -1;
    height: 220px;
    border-radius: var(--radius-md);
  }

  .hero__brand {
    font-size: 1.45rem;
  }

  .hero__title {
    font-size: clamp(1.85rem, 8vw, 2.4rem);
  }

  .hero__lead {
    font-size: 0.95rem;
  }

  .hero__scroll {
    display: none;
  }

  .btn-group {
    width: 100%;
  }

  .btn-group .btn {
    flex: 1;
    min-width: 0;
    padding: 0.8rem 0.9rem;
    font-size: 0.82rem;
  }

  .section-title {
    font-size: 1.55rem;
  }

  .protocol-section {
    padding: 3rem 0;
  }

  .container,
  .protocol-section__inner,
  .hero__layout {
    width: min(100% - 1.5rem, var(--container-width));
  }

  /* ——— Show mobile diagrams, hide desktop WebGL stages ——— */
  .m-diagram {
    display: flex;
    position: relative;
    z-index: 2;
    margin-top: 1.1rem;
    min-height: 120px;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    padding: 0.85rem;
    border-radius: var(--radius-sm);
    background: rgba(5, 6, 8, 0.35);
  }

  .diff-panel__canvas,
  .split-pane__canvas,
  .final-cta__canvas,
  .fund-flow__stage--desktop,
  .register-visual .network-canvas,
  .transit-map__canvas,
  .hops-story__visual > [data-network-flow],
  [data-network-flow].is-network-skipped {
    display: none !important;
  }

  /* TOP: step cards + rail only (no empty WebGL box) */
  .page-home .hops-story__visual {
    display: none !important;
  }

  .hops-story__visual.transit-map {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    border: none;
    background: transparent;
    overflow: visible;
  }

  .fund-flow__mobile {
    display: block;
  }

  .hops-rail {
    display: flex;
    gap: 0.35rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 0 1.25rem;
    padding-bottom: 0.25rem;
    scrollbar-width: none;
  }

  .hops-rail::-webkit-scrollbar {
    display: none;
  }

  .hops-rail span {
    flex: 0 0 auto;
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--text-secondary);
    background: var(--surface);
  }

  .hops-rail span:first-child {
    border-color: var(--border-accent);
    color: var(--accent);
    background: var(--accent-soft);
  }

  .hops-story__steps {
    display: grid;
    gap: 0.65rem;
  }

  .hops-step {
    min-height: auto;
    padding: 1rem 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    opacity: 1;
  }

  .hops-step h3 {
    font-size: 1.1rem;
  }

  .hops-step p {
    font-size: 0.88rem;
  }

  /* Mobile diagram variants */
  .m-diagram__node,
  .m-diagram__pool,
  .m-diagram__hand,
  .m-diagram__layer,
  .m-diagram__cloud-mini {
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--border-light);
    border-radius: var(--radius-sm);
    background: var(--bg-primary);
    color: var(--text-primary);
  }

  .m-diagram__line {
    width: 28px;
    height: 2px;
    background: linear-gradient(90deg, transparent, #e08080, transparent);
  }

  .m-diagram--flat .m-diagram__pool {
    border-color: rgba(224, 128, 128, 0.4);
    color: #e8a0a0;
  }

  .m-diagram--flat p,
  .m-diagram--layers p {
    width: 100%;
    margin: 0.35rem 0 0;
    text-align: center;
    font-size: 0.75rem;
    color: var(--text-secondary);
  }

  .m-diagram--layers {
    flex-direction: column;
    align-items: stretch;
  }

  .m-diagram__layer {
    text-align: center;
  }

  .m-diagram__layer--mid {
    border-color: var(--border-accent);
    color: var(--accent);
    background: var(--accent-soft);
  }

  .m-diagram--human .m-diagram__hand {
    border-color: rgba(224, 128, 128, 0.45);
    color: #e8a0a0;
  }

  .m-diagram--code .m-diagram__pool {
    border-color: var(--border-accent);
    color: var(--accent);
  }

  .m-diagram--transit {
    flex-direction: column;
    gap: 0.55rem;
    min-height: 160px;
  }

  .m-diagram__dots {
    display: flex;
    justify-content: center;
    gap: 0.35rem;
  }

  .m-diagram__dots i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent);
    opacity: 0.55;
  }

  .m-diagram--register {
    position: absolute;
    inset: 0;
    margin: 0;
    min-height: 100%;
    border-radius: 0;
    background:
      radial-gradient(ellipse at 50% 40%, rgba(140, 180, 255, 0.12), transparent 55%),
      var(--bg-secondary);
  }

  .m-diagram__cloud-mini {
    border-color: var(--border-accent);
    color: var(--accent);
  }

  /* Fund flow mobile schematic */
  .ff-m {
    display: grid;
    grid-template-columns: auto 12px 1fr 12px auto;
    gap: 0.35rem;
    align-items: center;
    padding: 1rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background:
      radial-gradient(ellipse at 50% 50%, rgba(100, 140, 220, 0.1), transparent 65%),
      var(--surface);
  }

  .ff-m__col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
  }

  .ff-m__tag {
    font-family: var(--font-mono);
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    color: var(--text-muted);
  }

  .ff-m__box {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--border-accent);
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    background: var(--bg-primary);
  }

  .ff-m__box--out {
    border-color: rgba(125, 211, 232, 0.45);
  }

  .ff-m__fan {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: center;
  }

  .ff-m__fan i {
    width: 10px;
    height: 1px;
    background: var(--accent);
    opacity: 0.55;
  }

  .ff-m__fan--in i {
    background: var(--accent-secondary);
  }

  .ff-m__cloud {
    position: relative;
    min-height: 88px;
    border: 1px solid rgba(140, 180, 255, 0.25);
    border-radius: var(--radius-sm);
    background: rgba(140, 180, 255, 0.06);
    padding: 0.55rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
  }

  .ff-m__cloud-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 3px;
    width: 100%;
  }

  .ff-m__cloud-grid i {
    aspect-ratio: 1;
    border-radius: 1px;
    background: rgba(140, 180, 255, 0.35);
  }

  .ff-m__cloud-grid i:nth-child(3n) {
    background: rgba(125, 211, 232, 0.4);
  }

  .ff-m__cloud-label {
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.06em;
    color: var(--text-secondary);
  }

  .ff-m__cloud-label strong {
    color: var(--text-primary);
    margin-right: 0.25rem;
  }

  /* Diff / compare panels */
  .diff-panel {
    min-height: auto;
    padding: 1rem;
  }

  .diff-panel__meta {
    margin-bottom: 0;
  }

  .split-pane {
    min-height: auto;
    padding: 1.15rem;
  }

  .split-screen {
    min-height: auto;
  }

  /* Passcode */
  .passcode-stage {
    min-height: 280px;
    padding: 1rem 0.75rem 1.25rem;
  }

  .passcode-stage__nodes {
    position: relative;
    inset: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    padding: 0 0 1rem;
    width: 100%;
  }

  .passcode-node {
    padding: 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(5, 6, 8, 0.4);
  }

  .passcode-core__digits {
    font-size: 1.55rem;
    letter-spacing: 0.12em;
  }

  .passcode-steps {
    grid-template-columns: 1fr;
  }

  /* Problem A→B */
  .problem-line {
    min-height: 140px;
    flex-wrap: nowrap;
    gap: 0.35rem;
  }

  .problem-node {
    width: 56px;
    height: 56px;
    font-size: 1.1rem;
    flex-shrink: 0;
  }

  .problem-edge {
    max-width: none;
  }

  .problem-meta {
    font-size: 0.58rem;
    gap: 0.25rem;
  }

  .problem-meta span {
    padding: 0.15rem 0.35rem;
  }

  /* Compare UI as stacked cards */
  .compare-ui__row,
  .feature-grid {
    grid-template-columns: 1fr;
  }

  .compare-ui__row {
    padding: 0.25rem 0;
  }

  .compare-ui__row--head {
    display: none;
  }

  .compare-ui__row > * {
    border-right: none;
    padding: 0.55rem 0.9rem;
  }

  .compare-ui__row [role="rowheader"] {
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    padding-bottom: 0.15rem;
  }

  .compare-ui__row > span:nth-child(2)::before {
    content: "同チェーン · ";
    color: var(--text-muted);
    font-size: 0.75em;
  }

  .compare-ui__win::before {
    content: "tornado · ";
    color: var(--accent);
    font-size: 0.75em;
  }

  /* Register: form first */
  .register-shell {
    display: flex;
    flex-direction: column;
    min-height: auto;
  }

  .register-form {
    order: -1;
    padding: 1.75rem 1.25rem 1.25rem;
  }

  .register-visual {
    height: 330px;
    border-right: none;
    border-top: 1px solid var(--border);
  }

  .register-visual__tag {
    top: 0.75rem;
    left: 0.75rem;
  }

  .init-console { padding:3rem 1rem 1rem; }
  .init-orbit { width:120px; margin-bottom:.8rem; }
  .init-log p { grid-template-columns:1.6rem 1fr auto; gap:.4rem; font-size:.55rem; }

  .execution-viz { margin-top:1rem; border-radius:var(--radius-md); }
  .execution-code { padding:1rem .65rem; overflow-x:auto; }
  .execution-code ol { padding-left:2.2rem; }
  .execution-code li { padding:.65rem .45rem; }
  .execution-pipeline { padding:.85rem; }

  .register-form__panel h1 {
    font-size: 1.45rem;
  }

  /* Final CTA */
  .final-cta {
    min-height: 50vh;
    padding: 3rem 1.25rem;
    background:
      radial-gradient(ellipse at 50% 30%, rgba(140, 180, 255, 0.12), transparent 55%),
      var(--bg-secondary);
  }

  .final-cta h2 {
    font-size: 1.55rem;
  }

  /* Layer stack */
  .layer-stack {
    height: auto;
    margin: 1rem 0;
  }

  .layer-stack__stage {
    position: relative;
    top: auto;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    perspective: none;
  }

  .layer-glass {
    position: relative;
    left: auto;
    right: auto;
    height: auto;
    min-height: 52px;
    opacity: 1;
    transform: none !important;
    padding: 0.85rem 1rem;
  }

  .layer-copy article {
    min-height: auto;
  }

  /* Misc */
  .audience-strip__inner {
    gap: 1rem;
  }

  .risk-grid {
    grid-template-columns: 1fr;
  }

  .why-grid,
  .overview-grid {
    grid-template-columns: 1fr;
  }

  .protocol-map__progress {
    border-radius: var(--radius-md);
    max-width: 100%;
  }

  .map-node {
    grid-template-columns: 3rem 1fr;
    gap: 0.85rem;
    padding: 1.35rem 0;
  }

  .map-node__index {
    width: 3rem;
    height: 3rem;
    font-size: 0.8rem;
  }

  .map-node__body h3 {
    font-size: 1.35rem;
  }

  .bg-grid {
    opacity: 0.025;
    background-size: 40px 40px;
  }
}


/* SOURCE: assets/style.css */
/* tornado USDT — app shell (forms / dashboard / wizard)
   Marketing pages use assets/css/* ; this file keeps the protocol app UI intact. */
:root {
  --bg: #050608;
  --bg-2: #080a0f;
  --panel: #0f131a;
  --line: rgba(255, 255, 255, 0.08);
  --text: #eef1f6;
  --muted: #8b93a7;
  --accent: #8cb4ff;
  --accent-2: #7dd3e8;
  --danger: #e08080;
  --ok: #6bc9a0;
  --ink: #050608;
  --paper: #050608;
  --surface: #0f131a;
  --border: rgba(255, 255, 255, 0.08);
  --signal: #8cb4ff;
  --signal-bright: #7dd3e8;
  --success: #6bc9a0;
  --shadow: none;
}

/* Old navbar unused (site-header replaces it) but keep harmless */
.navbar { display: none; }

.container,
.app-main {
  max-width: 820px;
  margin: 0 auto;
  padding: 1.75rem 1.25rem 3.5rem;
}

.card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 1.5rem;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.85rem;
  margin-top: 1.25rem;
}

.nav-card {
  display: block;
  color: inherit;
  text-align: left;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.nav-card:hover {
  border-color: rgba(140, 180, 255, 0.45);
  transform: translateY(-2px);
  color: inherit;
}

.nav-card h3 {
  font-family: var(--font-sans, Inter, sans-serif);
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
  color: var(--text);
  letter-spacing: -0.02em;
}

.nav-card p {
  color: var(--muted);
  font-size: 0.9rem;
}

.panel { max-width: 560px; margin: 0 auto; }
.panel-wide { max-width: 820px; margin: 0 auto; }

.page-app h2 {
  font-family: var(--font-sans, Inter, "Noto Sans JP", sans-serif);
  font-size: 1.45rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  letter-spacing: -0.03em;
}

.muted { color: var(--muted); }
.form-group { margin-bottom: 1rem; }

.page-app label {
  display: block;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 0.4rem;
}

.page-app input[type="text"],
.page-app input[type="password"],
.page-app input[type="email"],
.page-app input[type="number"],
.page-app textarea,
.page-app select {
  width: 100%;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  font-family: inherit;
  font-size: 1rem;
  background: #0a0c12;
  color: var(--text);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.page-app input:focus,
.page-app textarea:focus,
.page-app select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(140, 180, 255, 0.18);
}

.page-app .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: linear-gradient(180deg, #f4f6fa 0%, #d8dee8 100%);
  color: #0a0c10;
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 0.8rem 1.3rem;
  border-radius: 4px;
  font-family: var(--font-sans, Inter, sans-serif);
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  text-decoration: none;
}

.page-app .btn:hover {
  transform: translateY(-2px);
  color: #050608;
}

.page-app .btn-block { width: 100%; }

.page-app .btn-outline {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--line);
}

.alert {
  padding: 0.85rem 1rem;
  border-radius: 4px;
  margin-bottom: 1rem;
  font-size: 0.95rem;
}

.alert-error {
  background: rgba(224, 128, 128, 0.1);
  color: #f0a8a8;
  border: 1px solid rgba(224, 128, 128, 0.3);
}

.alert-success {
  background: rgba(107, 201, 160, 0.1);
  color: #8ed9b8;
  border: 1px solid rgba(107, 201, 160, 0.28);
}

.balance-box {
  background: linear-gradient(160deg, rgba(140, 180, 255, 0.1), transparent 70%);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 1.25rem 1.5rem;
  margin: 1.25rem 0;
}

.balance-box .label {
  font-family: var(--font-mono, monospace);
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.balance-box .value {
  font-family: var(--font-sans, Inter, sans-serif);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.03em;
}

.fee-line {
  margin-top: 0.65rem;
  font-size: 0.88rem;
  color: var(--muted);
  font-family: var(--font-mono, monospace);
}

.fee-line strong { color: var(--text); font-weight: 600; }

.passcode-box {
  text-align: center;
  background: #0a0c10;
  color: var(--accent-2);
  border: 1px solid rgba(140, 180, 255, 0.35);
  border-radius: 4px;
  padding: 1.5rem;
  margin: 1rem 0;
  letter-spacing: 0.25em;
  font-size: 1.75rem;
  font-weight: 700;
  font-family: var(--font-mono, monospace);
}

.badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 2px;
  font-size: 0.72rem;
  font-weight: 700;
  font-family: var(--font-mono, monospace);
  letter-spacing: 0.04em;
}

.badge-ok {
  background: rgba(107, 201, 160, 0.14);
  color: #8ed9b8;
  border: 1px solid rgba(107, 201, 160, 0.3);
}

.badge-wait {
  background: rgba(232, 236, 244, 0.06);
  color: var(--muted);
  border: 1px solid var(--line);
}

.qr-wrap { text-align: center; margin: 1.25rem 0; }

.qr-wrap img {
  border-radius: 4px;
  border: 1px solid var(--line);
  background: #fff;
  padding: 0.75rem;
}

.address-box {
  word-break: break-all;
  background: #0a0c12;
  border: 1px dashed rgba(140, 180, 255, 0.45);
  border-radius: 4px;
  padding: 0.9rem 1rem;
  font-family: var(--font-mono, monospace);
  font-size: 0.9rem;
  margin: 0.75rem 0 1rem;
}

.steps { list-style: none; margin-top: 1.25rem; }

.steps li {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.75rem 0.9rem;
  border-radius: 4px;
  margin-bottom: 0.4rem;
  border: 1px solid transparent;
}

.steps li.done {
  background: rgba(107, 201, 160, 0.08);
  border-color: rgba(107, 201, 160, 0.25);
  color: #8ed9b8;
}

.steps li.current {
  background: rgba(140, 180, 255, 0.1);
  border-color: rgba(140, 180, 255, 0.45);
  color: var(--text);
  font-weight: 700;
}

.steps li.pending {
  background: rgba(232, 236, 244, 0.03);
  color: #6b7388;
}

.step-icon {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 0.1rem;
  font-family: var(--font-mono, monospace);
}

.done .step-icon { background: var(--ok); color: #0c0e12; }
.current .step-icon { background: var(--accent); color: #0c0e12; }
.pending .step-icon { background: #1c2230; color: #6b7388; }

.table-wrap { overflow-x: auto; margin-top: 1rem; }

.page-app table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.page-app th,
.page-app td {
  text-align: left;
  padding: 0.75rem 0.65rem;
  border-bottom: 1px solid var(--line);
}

.page-app th {
  color: var(--muted);
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-family: var(--font-mono, monospace);
}

.wizard-meta {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.note {
  background: rgba(140, 180, 255, 0.08);
  border-left: 3px solid var(--accent);
  padding: 0.9rem 1rem;
  margin: 1rem 0;
  font-size: 0.95rem;
}

.empty {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--muted);
}

.app-kicker {
  font-family: var(--font-mono, monospace);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.35rem;
}

@media (max-width: 640px) {
  .container,
  .app-main { padding: 1.25rem 1rem 2.5rem; }
  .passcode-box { font-size: 1.35rem; letter-spacing: 0.15em; }
  .balance-box .value { font-size: 1.45rem; }
}


/* SOURCE: assets/css/rebuild.css */
/* P2 / production visual system */
:root{--p2-bg:#070a0c;--p2-panel:#0d1215;--p2-paper:#f0f3ed;--p2-copy:#eef2ed;--p2-line:rgba(233,242,236,.13);--p2-line-hi:rgba(233,242,236,.3);--p2-signal:#a8ff4f;--p2-cyan:#86ffdd;--p2-danger:#ff725e;--p2-max:1320px;--p2-pad:clamp(20px,4.3vw,70px);--p2-ease:cubic-bezier(.16,1,.3,1)}
html{background:var(--p2-bg);scroll-behavior:smooth}body.design-r0{margin:0;color:var(--p2-paper);background:var(--p2-bg);font-family:Inter,"Noto Sans JP",sans-serif;overflow-x:clip}.design-r0 *{box-sizing:border-box}.design-r0 a{color:inherit}.design-r0 .bg-atmosphere,.design-r0 .bg-noise,.design-r0 .bg-grid{display:none}
/* system chrome */
.design-r0 .protocol-status{height:30px;background:#030506;border:0;color:var(--p2-paper)}.design-r0 .protocol-status__inner{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));margin-inline:auto;font:600 9px/1.1 "JetBrains Mono",monospace;letter-spacing:.12em}.design-r0 .protocol-status__dot{background:var(--p2-signal);box-shadow:0 0 12px var(--p2-signal)}
.design-r0 .site-header{height:76px;background:rgba(7,10,12,.78);border-bottom:1px solid var(--p2-line);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.design-r0 .site-header.is-scrolled{background:rgba(7,10,12,.95)}.design-r0 .site-header__inner{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));margin-inline:auto;grid-template-columns:auto 1fr auto}.design-r0 .site-header__brand{color:var(--p2-paper);font-size:17px;font-weight:800;letter-spacing:-.05em;text-transform:uppercase}.design-r0 .site-header__brand span{color:var(--p2-signal);font-weight:500}.design-r0 .site-header__nav{justify-self:center;gap:2px}.design-r0 .site-header__nav a{padding:11px 13px;color:#8c9691;font:600 10px/1 Inter,sans-serif;letter-spacing:.11em;border-radius:0}.design-r0 .site-header__nav a:hover,.design-r0 .site-header__nav a.is-active{color:var(--p2-paper);background:transparent}.design-r0 .site-header__nav a.is-active::after{background:var(--p2-signal)}.design-r0 .site-header__actions{gap:15px;color:var(--p2-copy);font-size:11px}.design-r0 .site-header__menu{display:none;width:42px;height:42px;padding:0;border:1px solid var(--p2-line);background:none}.design-r0 .site-header__menu span{display:block;width:16px;height:1px;margin:5px auto;background:var(--p2-paper);transition:.3s var(--p2-ease)}
.design-r0 .btn,.p2-button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:48px;padding:0 18px;border:1px solid var(--p2-line-hi);border-radius:0;color:var(--p2-paper);background:transparent;font:700 10px/1 Inter,sans-serif;letter-spacing:.1em;transition:.35s var(--p2-ease)}.design-r0 .btn--primary,.p2-button--signal{color:#071008;background:var(--p2-signal);border-color:var(--p2-signal)}.design-r0 .btn:hover,.p2-button:hover{color:var(--p2-bg);background:var(--p2-cyan);border-color:var(--p2-cyan);transform:none;box-shadow:none}.p2-button i{font-size:17px;font-style:normal}
/* home hero */
.p2-hero{position:relative;min-height:calc(100svh - 106px);isolation:isolate;overflow:hidden;border-bottom:1px solid var(--p2-line)}.p2-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 78% 42%,rgba(134,255,221,.1),transparent 25%),radial-gradient(circle at 72% 40%,rgba(168,255,79,.055),transparent 43%),linear-gradient(90deg,transparent 49.9%,var(--p2-line) 50%,transparent 50.1%)}.p2-hero__mesh{position:absolute;inset:0;z-index:-1;opacity:.22;background-image:linear-gradient(var(--p2-line) 1px,transparent 1px),linear-gradient(90deg,var(--p2-line) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 48%,#000)}
.p2-hero__inner{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));min-height:calc(100svh - 205px);margin:auto;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(440px,.98fr);gap:clamp(40px,6vw,100px);align-items:center}.p2-eyebrow,.p2-kicker{margin:0 0 24px;color:#8d9892;font:600 10px/1.2 "JetBrains Mono",monospace;letter-spacing:.14em}.p2-eyebrow{display:flex;align-items:center;gap:10px}.p2-eyebrow span{width:7px;height:7px;background:var(--p2-signal);box-shadow:0 0 15px var(--p2-signal)}.p2-hero h1{max-width:900px;margin:0;color:var(--p2-paper);font-size:clamp(66px,7.3vw,118px);font-weight:520;line-height:.86;letter-spacing:-.08em}.p2-hero h1 em{color:var(--p2-signal);font-style:normal}.p2-hero__jp{margin:34px 0 0;color:var(--p2-paper);font-size:clamp(17px,1.5vw,22px);font-weight:600;letter-spacing:-.03em}.p2-hero__lead{max-width:570px;margin:15px 0 0;color:var(--p2-copy);font-size:14px;line-height:1.85}.p2-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.p2-actions--routes{display:grid;grid-template-columns:repeat(2,minmax(185px,1fr));width:min(100%,500px);gap:8px;margin-top:30px}.p2-button--hero{min-height:68px;padding:10px 16px 10px 19px;gap:18px}.p2-button--hero>span{display:grid;gap:7px;text-align:left}.p2-button--hero small{color:inherit;font:700 7px/1 "JetBrains Mono",monospace;letter-spacing:.13em;opacity:.64}.p2-button--hero strong{color:inherit;font:700 14px/1.1 "Noto Sans JP",sans-serif;letter-spacing:-.01em}.p2-button--hero i{width:29px;height:29px;display:grid;place-items:center;border:1px solid currentColor;font-size:13px}.p2-button--signal.p2-button--hero,.p2-button--signal.p2-button--hero:hover{color:#030703}.p2-button--signal.p2-button--hero{box-shadow:0 0 0 1px rgba(155,255,63,.08),0 12px 34px rgba(155,255,63,.08)}.p2-button--receive{color:var(--p2-paper);border-color:#51635a;background:rgba(12,20,16,.86)}.p2-button--receive small{color:var(--p2-cyan);opacity:.88}.p2-button--receive:hover{color:#03100c}.p2-hero__detail{width:max-content;margin-top:18px;padding-bottom:5px;display:flex;align-items:center;gap:20px;border-bottom:1px solid #46534c;color:#a9b5af;font-size:11px;font-weight:600}.p2-hero__detail span{color:var(--p2-signal)}.p2-access__actions{display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));gap:8px;width:min(100%,510px);margin-top:30px}.p2-access__actions .p2-button{width:100%}
.p2-core{position:relative;height:min(65vh,650px);border:1px solid var(--p2-line);background:radial-gradient(circle at center,rgba(134,255,221,.08),transparent 42%),rgba(7,12,14,.7);overflow:hidden}.p2-core::before,.p2-core::after{content:"";position:absolute;z-index:2;pointer-events:none}.p2-core::before{inset:16px;border:1px solid rgba(255,255,255,.06)}.p2-core::after{left:50%;top:0;width:1px;height:100%;background:linear-gradient(transparent,var(--p2-line-hi),transparent)}.p2-core__canvas{position:absolute;inset:0}.p2-core__canvas canvas{filter:saturate(.65) hue-rotate(30deg)}.p2-core__hud{position:absolute;z-index:4;left:28px;right:28px;display:flex;justify-content:space-between;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em;color:#7e8b85}.p2-core__hud b{color:var(--p2-signal);font-weight:500}.p2-core__hud--top{top:27px}.p2-core__hud--bottom{bottom:27px}.p2-core__cross{position:absolute;z-index:3;inset:50% auto auto 50%;width:28px;height:28px;transform:translate(-50%,-50%);border:1px solid rgba(168,255,79,.45);border-radius:50%}.p2-core__cross::before,.p2-core__cross::after{content:"";position:absolute;background:rgba(168,255,79,.45)}.p2-core__cross::before{left:50%;top:-10px;width:1px;height:46px}.p2-core__cross::after{top:50%;left:-10px;width:46px;height:1px}.p2-core__fallback{display:none}.p2-metrics{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--p2-line)}.p2-metrics>div{min-height:98px;padding:24px 22px;border-right:1px solid var(--p2-line)}.p2-metrics>div:first-child{border-left:1px solid var(--p2-line)}.p2-metrics span{display:block;margin-bottom:12px;color:#718078;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.p2-metrics strong{font:500 20px/1 Inter,sans-serif;letter-spacing:-.04em}
/* editorial sections */
.p2-manifesto,.p2-route,.p2-architecture,.p2-compare,.p2-access{position:relative;padding:clamp(100px,13vw,190px) var(--p2-pad);border-bottom:1px solid var(--p2-line)}.p2-manifesto{width:min(100%,calc(var(--p2-max) + 2 * var(--p2-pad)));margin:auto;display:grid;grid-template-columns:180px 1fr;gap:clamp(30px,6vw,100px)}.p2-manifesto__index{padding-top:7px;color:#64716b;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.p2-manifesto__body h2,.p2-section-head h2{margin:0;color:var(--p2-paper);font-size:clamp(52px,7vw,104px);font-weight:500;line-height:.94;letter-spacing:-.075em}.p2-manifesto__body h2 em{color:var(--p2-cyan);font-style:normal}.p2-manifesto__copy{display:grid;grid-template-columns:minmax(0,480px) auto;gap:40px;align-items:end;margin-top:55px;padding-top:25px;border-top:1px solid var(--p2-line)}.p2-manifesto__copy p{margin:0;color:var(--p2-copy);font-size:15px;line-height:1.9}.p2-manifesto__copy a,.p2-text-link{justify-self:end;color:var(--p2-paper);font:700 10px/1 Inter,sans-serif;letter-spacing:.1em;border-bottom:1px solid var(--p2-paper);padding-bottom:8px}.p2-manifesto__copy a span,.p2-text-link span{margin-left:15px;color:var(--p2-signal)}
.p2-section-head{width:min(100%,var(--p2-max));margin:0 auto 70px;display:grid;grid-template-columns:1fr minmax(260px,420px);gap:20px;align-items:end}.p2-section-head .p2-kicker{grid-column:1/-1}.p2-section-head h2{font-size:clamp(52px,6vw,88px)}.p2-section-head>p:last-child{margin:0;color:var(--p2-copy);font-size:14px;line-height:1.8}
/* interactive route */
.p2-route{background:#0a0f12}.p2-route__stage{width:min(100%,var(--p2-max));margin:auto;display:grid;grid-template-columns:1fr 330px;border:1px solid var(--p2-line);background:#080c0e}.p2-route__visual{position:relative;min-height:590px;display:grid;place-items:center;overflow:hidden;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px}.p2-route__visual svg{width:94%;height:auto}.p2-route__base{fill:none;stroke:url(#routeGlow);stroke-width:2;opacity:.9}.p2-route__branches path{fill:none;stroke:#38504d;stroke-width:1.25;transition:.6s var(--p2-ease)}.p2-route__nodes circle{fill:#0a0f12;stroke:var(--p2-cyan);stroke-width:2}.p2-route__packet{fill:var(--p2-signal);filter:drop-shadow(0 0 8px var(--p2-signal))}.p2-route[data-route-stage="1"] .p2-route__branches path,.p2-route[data-route-stage="2"] .p2-route__branches path,.p2-route[data-route-stage="3"] .p2-route__branches path{stroke:var(--p2-cyan);opacity:.75}.p2-route__label{position:absolute;top:52%;color:#72817b;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.p2-route__label--in{left:5%}.p2-route__label--out{right:4%}.p2-route__steps{list-style:none;margin:0;padding:0;border-left:1px solid var(--p2-line)}.p2-route__steps li{border-bottom:1px solid var(--p2-line)}.p2-route__steps li:last-child{border:0}.p2-route__steps button{width:100%;min-height:147px;padding:24px;text-align:left;color:var(--p2-copy);background:none;border:0;cursor:pointer;transition:.35s var(--p2-ease)}.p2-route__steps em{display:block;margin-bottom:17px;color:#5f6d67;font:normal 9px/1 "JetBrains Mono",monospace}.p2-route__steps strong{display:block;margin-bottom:8px;color:#8a9690;font-size:13px;letter-spacing:.08em}.p2-route__steps span{font-size:12px}.p2-route__steps li.is-active button{background:rgba(168,255,79,.055);box-shadow:inset 3px 0 0 var(--p2-signal)}.p2-route__steps li.is-active strong{color:var(--p2-signal)}
/* architecture — 他セクションと同じ黒基調（白背景を廃止） */
.p2-architecture{background:var(--p2-bg);color:var(--p2-paper)}.p2-section-head--dark h2{color:var(--p2-paper)}.p2-section-head--dark>p:last-child{color:var(--p2-copy)}.p2-architecture__grid{width:min(100%,var(--p2-max));margin:auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--p2-line);border-left:1px solid var(--p2-line)}.p2-architecture__grid a{position:relative;min-height:390px;padding:28px;display:flex;flex-direction:column;border-right:1px solid var(--p2-line);border-bottom:1px solid var(--p2-line);color:var(--p2-paper);background:var(--p2-panel);transition:.4s var(--p2-ease)}.p2-architecture__grid a:hover{color:#07100b;background:var(--p2-signal)}.p2-architecture__grid em{font:normal 10px/1 "JetBrains Mono",monospace;color:#7a8880}.p2-architecture__grid> a>span{margin-top:auto;color:#7a8880;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.p2-architecture__grid h3{margin:15px 0 10px;font-size:28px;font-weight:550;line-height:1;letter-spacing:-.05em;color:inherit}.p2-architecture__grid p{margin:0;color:var(--p2-copy);font-size:13px}.p2-architecture__grid a:hover p,.p2-architecture__grid a:hover em,.p2-architecture__grid a:hover>span{color:#07100b}.p2-architecture__grid i{position:absolute;right:25px;top:24px;font-style:normal}
/* compare/access */
.p2-compare{width:min(100%,calc(var(--p2-max) + 2 * var(--p2-pad)));margin:auto}.p2-compare__table{border-top:1px solid var(--p2-line-hi)}.p2-compare__row{display:grid;grid-template-columns:1fr 1.2fr 1.2fr;min-height:78px;border-bottom:1px solid var(--p2-line);align-items:center}.p2-compare__row>*{height:100%;padding:0 24px;display:flex;align-items:center;border-right:1px solid var(--p2-line);font-size:13px}.p2-compare__row>*:last-child{border-right:0;color:var(--p2-paper);background:rgba(134,255,221,.035)}.p2-compare__row strong,.p2-compare__row--head span{color:#68746e;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.11em}.p2-compare__row--head{min-height:44px}.p2-compare .p2-text-link{display:block;width:max-content;margin:38px 0 0 auto}
.p2-access{min-height:78vh;display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,8vw,140px);align-items:center;background:radial-gradient(circle at 22% 50%,rgba(134,255,221,.08),transparent 29%)}.p2-access__copy h2{margin:0;font-size:clamp(58px,7vw,108px);font-weight:500;line-height:.86;letter-spacing:-.08em}.p2-access__copy h2 em{color:var(--p2-signal);font-style:normal}.p2-access__copy>p:not(.p2-kicker){max-width:530px;margin:28px 0;color:var(--p2-copy);line-height:1.8}.p2-access__orb{position:relative;width:min(38vw,520px);aspect-ratio:1;margin:auto;display:grid;place-items:center;border:1px solid var(--p2-line);border-radius:50%}.p2-access__orb::before,.p2-access__orb::after,.p2-access__orb i{content:"";position:absolute;border:1px solid var(--p2-line);border-radius:50%}.p2-access__orb::before{inset:14%}.p2-access__orb::after{inset:30%;border-color:rgba(168,255,79,.36);box-shadow:0 0 70px rgba(168,255,79,.08)}.p2-access__orb i:nth-child(1){inset:0;border-top-color:var(--p2-cyan);animation:p2spin 12s linear infinite}.p2-access__orb i:nth-child(2){inset:21%;border-right-color:var(--p2-signal);animation:p2spin 8s linear infinite reverse}.p2-access__orb i:nth-child(3){inset:39%;background:var(--p2-signal);border:0;box-shadow:0 0 45px rgba(168,255,79,.5)}.p2-access__orb span{width:7px;height:7px;border-radius:50%;background:var(--p2-cyan);transform:translateY(-19vw);box-shadow:0 0 14px var(--p2-cyan)}@keyframes p2spin{to{transform:rotate(360deg)}}
/* inner pages */
.design-r0 .protocol-main{background:var(--p2-bg)}.design-r0 .protocol-section{position:relative;padding:clamp(90px,10vw,150px) 0;border-bottom:1px solid var(--p2-line);background:transparent}.design-r0 .protocol-section::after{content:attr(data-r0-section);position:absolute;right:var(--p2-pad);top:28px;color:#3f4b45;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.design-r0 .protocol-section__inner,.design-r0 .hero__layout{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max))}.design-r0 .section-label{margin:0 0 26px;color:#74827b;font:600 10px/1 "JetBrains Mono",monospace;letter-spacing:.14em}.design-r0 .section-label::before{content:"// ";color:var(--p2-signal)}.design-r0 .section-title{max-width:19ch;margin:0;color:var(--p2-paper);font-size:clamp(44px,6vw,82px);font-weight:520;line-height:.98;letter-spacing:-.07em}.design-r0 .section-lead{max-width:720px;margin:28px 0 0;color:var(--p2-copy);font-size:16px;line-height:1.9}.design-r0 .muted{color:var(--p2-copy)!important}.design-r0 .reveal{opacity:1;transform:none}.design-r0 .home-guide-nav,.design-r0 .protocol-map__progress{padding:0;border:1px solid var(--p2-line);border-radius:0;background:rgba(10,15,18,.86);box-shadow:none}.design-r0 .home-guide-nav a,.design-r0 .protocol-map__progress a{padding:10px 12px;color:#728079;border:0;border-right:1px solid var(--p2-line);border-radius:0;font-size:9px}.design-r0 .home-guide-nav a.is-active,.design-r0 .protocol-map__progress a.is-active{color:#07100b;background:var(--p2-signal)}
.design-r0 .overview-grid,.design-r0 .why-grid,.design-r0 .risk-grid{gap:0;border-top:1px solid var(--p2-line);border-left:1px solid var(--p2-line)}.design-r0 .overview-grid article,.design-r0 .why-grid article,.design-r0 .risk-card{min-height:190px;padding:26px;border:0;border-right:1px solid var(--p2-line);border-bottom:1px solid var(--p2-line);border-radius:0;background:transparent;box-shadow:none}.design-r0 .overview-grid p,.design-r0 .why-grid p,.design-r0 .risk-card p{color:var(--p2-copy)}.design-r0 .risk-card em,.design-r0 .map-node__body em,.design-r0 .flow-steps em{color:var(--p2-cyan)}.design-r0 .plain-steps li{border-color:var(--p2-line)}.design-r0 .plain-steps span{color:var(--p2-copy)}
.design-r0 .protocol-map__spine::before{background:var(--p2-line)}.design-r0 .protocol-map__line{background:linear-gradient(var(--p2-signal),var(--p2-cyan));box-shadow:0 0 15px rgba(134,255,221,.2)}.design-r0 .map-node__index{color:#647069;background:var(--p2-bg);border-color:var(--p2-line-hi)}.design-r0 .map-node.is-active .map-node__index{color:#07100b;background:var(--p2-signal);border-color:var(--p2-signal);box-shadow:0 0 28px rgba(168,255,79,.14)}.design-r0 .map-node__body p{color:var(--p2-copy)}
.design-r0 .ledger-panel,.design-r0 .split-screen,.design-r0 .execution-viz,.design-r0 .transit-map,.design-r0 .passcode-stage,.design-r0 .compare-ui,.design-r0 .feature-grid,.design-r0 .faq-item,.design-r0 .flow-steps li,.design-r0 .role-card,.design-r0 .teaser-grid a{border:1px solid var(--p2-line);border-radius:0;background:var(--p2-panel);box-shadow:none}.design-r0 .ledger-viz__node{color:var(--p2-paper);background:var(--p2-bg);border-color:var(--p2-line-hi);border-radius:50%}.design-r0 .ledger-panel--public .ledger-viz__line{background:var(--p2-danger)}.design-r0 .ledger-tags span{color:var(--p2-danger);border-color:rgba(255,114,94,.4)}.design-r0 .split-pane,.design-r0 .execution-code{border-color:var(--p2-line);background:transparent}.design-r0 .execution-code li.is-active,.design-r0 .execution-node.is-active{background:rgba(168,255,79,.06);border-color:var(--p2-signal)}.design-r0 .execution-code code b{color:var(--p2-signal)}.design-r0 .execution-node span{color:var(--p2-copy)}.design-r0 .layer-glass{color:var(--p2-paper);border:1px solid rgba(134,255,221,.24);border-radius:0;background:rgba(11,18,20,.83);box-shadow:0 12px 30px rgba(0,0,0,.3);backdrop-filter:blur(15px)}.design-r0 .layer-glass em{color:var(--p2-cyan)}.design-r0 .human-layer{background:#111411;border-color:rgba(168,255,79,.16)}.design-r0 .human-layer .risk-card{background:rgba(255,114,94,.035)}
.design-r0 .faq-search{color:var(--p2-paper);background:var(--p2-panel);border:1px solid var(--p2-line-hi);border-radius:0}.design-r0 .faq-cats button{color:#7c8882;border-color:var(--p2-line);border-radius:0;background:transparent}.design-r0 .faq-cats button.is-active{color:#07100b;background:var(--p2-signal);border-color:var(--p2-signal)}.design-r0 .faq-item__cat{color:var(--p2-cyan)}
/* access/app */
.design-r0 .register-shell{min-height:calc(100svh - 106px);background:var(--p2-bg)}.design-r0 .register-visual{background:radial-gradient(circle at center,rgba(134,255,221,.08),transparent 42%),#080d0f;border-color:var(--p2-line)}.design-r0 .register-form{background:var(--p2-paper);color:#08100b}.design-r0 .register-form__panel{max-width:520px}.design-r0 .register-form__panel h1{max-width:9ch;color:#08100b;font-size:clamp(54px,5vw,82px);font-weight:520;line-height:.88;letter-spacing:-.075em}.design-r0 .register-form .muted{color:#59645e!important}.design-r0 .register-form .section-label{color:#5f6a64}.design-r0 .register-form .section-label::before{color:#3f8a70}.design-r0 .form-group label{color:#354039;font:700 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.design-r0 input,.design-r0 select,.design-r0 textarea{min-height:50px;color:#07100b;background:transparent;border:0;border-bottom:1px solid #77817a;border-radius:0}.design-r0 input:focus,.design-r0 select:focus,.design-r0 textarea:focus{border-color:#07100b;box-shadow:none;outline:0}.design-r0 .register-form .btn--primary{color:#eef5ed;background:#07100b;border-color:#07100b}.design-r0 .init-orbit i,.design-r0 .init-log p.is-active b{color:var(--p2-signal)}.design-r0 .app-main{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));padding-block:70px}.design-r0 .card,.design-r0 .panel,.design-r0 .stat-card,.design-r0 .flow-card{color:var(--p2-paper);background:var(--p2-panel);border:1px solid var(--p2-line);border-radius:0}.design-r0 .site-footer{padding-top:80px;color:var(--p2-paper);background:#030506;border:0}.design-r0 .site-footer__inner{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max))}.design-r0 .site-footer p,.design-r0 .site-footer a{color:#75817b}.design-r0 .site-footer__bottom{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));margin:70px auto 0;padding:22px 0;display:flex;justify-content:space-between;border-top:1px solid var(--p2-line);color:#56615b;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.12em}
/* production footer */
.design-r0 .site-footer{margin-top:0;padding:0;border-top:1px solid var(--p2-line);background:radial-gradient(circle at 13% 25%,rgba(155,255,63,.045),transparent 24%),#030506}.design-r0 .site-footer__inner{padding:76px 0 64px;grid-template-columns:minmax(280px,.85fr) minmax(0,1.65fr);gap:clamp(50px,7vw,110px)}.site-footer__logo-link{display:inline-flex}.site-footer__logo-link img{width:190px;height:auto}.design-r0 .site-footer__tag{max-width:350px;margin:23px 0 0;color:#b6c1bb;font-size:14px;line-height:1.75}.site-footer__network{width:min(100%,350px);margin-top:26px;padding:14px 15px;display:grid;grid-template-columns:7px 1fr auto;gap:10px;align-items:center;border:1px solid var(--p2-line);background:#070b0d}.site-footer__network i{width:7px;height:7px;background:var(--p2-signal);box-shadow:0 0 12px var(--p2-signal)}.site-footer__network span,.site-footer__network strong{font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.site-footer__network span{color:#68756e}.site-footer__network strong{color:var(--p2-signal)}.site-footer__actions{width:min(100%,350px);margin-top:9px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.design-r0 .site-footer__actions a{min-height:48px;padding:0 14px;display:flex;justify-content:space-between;align-items:center;border:1px solid #334039;color:#d4ddd8;background:#080d0f;font-size:11px;font-weight:600}.design-r0 .site-footer__actions a.is-send{border-color:var(--p2-signal);color:#050a06;background:var(--p2-signal)}.site-footer__actions a i{font-style:normal}.design-r0 .site-footer__cols{grid-template-columns:.85fr .9fr 1.35fr;gap:clamp(28px,4vw,60px)}.design-r0 .site-footer__cols h3{margin-bottom:20px;color:#8d9a93;font-size:8px;letter-spacing:.14em}.design-r0 .site-footer__cols a{width:max-content;margin-bottom:12px;padding-bottom:3px;color:#b1bdb6;font-size:12px;border-bottom:1px solid transparent}.design-r0 .site-footer__cols a:hover{color:var(--p2-signal);border-color:var(--p2-signal)}.site-footer__service dl{margin:0;border:1px solid var(--p2-line);background:var(--p2-line);display:grid;gap:1px}.site-footer__service dl>div{min-width:0;padding:12px 13px;display:flex;justify-content:space-between;gap:15px;background:#070b0d}.site-footer__service dt,.site-footer__service dd{font:600 7px/1.2 "JetBrains Mono",monospace;letter-spacing:.07em}.site-footer__service dt{color:#5f6d66}.site-footer__service dd{margin:0;color:#bbc6c0;text-align:right}.site-footer__notice{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));margin:auto;padding:22px 0;display:grid;grid-template-columns:160px minmax(0,1fr);gap:28px;border-top:1px solid var(--p2-line);border-bottom:1px solid var(--p2-line)}.site-footer__notice strong{padding-top:4px;color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.design-r0 .site-footer__notice p{max-width:900px;margin:0;color:#66736c;font-size:11px;line-height:1.8}.design-r0 .site-footer__bottom{margin:0 auto;padding:22px 0;border-top:0}.site-footer__bottom nav{display:flex;gap:24px}.design-r0 .site-footer__bottom a{color:#65716a;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.design-r0 .site-footer__bottom a:hover{color:var(--p2-signal)}
@media(max-width:1000px){.p2-hero__inner{grid-template-columns:1fr;min-height:auto;padding:80px 0}.p2-core{height:520px}.p2-metrics{grid-template-columns:repeat(2,1fr)}.p2-section-head{grid-template-columns:1fr}.p2-architecture__grid{grid-template-columns:repeat(2,1fr)}.p2-access{grid-template-columns:1fr}.p2-access__orb{width:min(75vw,480px)}.design-r0 .site-footer__inner{grid-template-columns:1fr}.design-r0 .site-footer__cols{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.design-r0 .site-header__inner{grid-template-columns:auto 1fr auto}.design-r0 .site-header__menu{display:block;justify-self:end}.design-r0 .site-header__nav{display:flex;position:fixed;z-index:200;inset:106px 0 auto 0;min-height:calc(100svh - 106px);padding:36px 20px;flex-direction:column;align-items:stretch;background:rgba(3,5,6,.98);opacity:0;visibility:hidden;transform:translateY(-12px);transition:.35s var(--p2-ease)}.design-r0 .site-header__nav a{padding:20px 0;font-size:18px;border-bottom:1px solid var(--p2-line)}.design-r0.menu-open .site-header__nav{opacity:1;visibility:visible;transform:none}.design-r0.menu-open .site-header__menu span:first-child{transform:translateY(3px) rotate(45deg)}.design-r0.menu-open .site-header__menu span:last-child{transform:translateY(-3px) rotate(-45deg)}.design-r0.menu-open{overflow:hidden}.design-r0 .site-header__actions{display:none}}
@media(max-width:768px){:root{--p2-pad:20px}.design-r0 .protocol-status__item:nth-child(3),.design-r0 .protocol-status__item:nth-child(4),.design-r0 .protocol-status__item:nth-child(5){display:none}.design-r0 .site-header{height:64px}.design-r0 .site-header__nav{inset:94px 0 auto}.p2-hero__inner{padding:54px 0 35px}.p2-hero h1{font-size:clamp(59px,18vw,82px)}.p2-hero__lead{font-size:13px}.p2-actions{display:grid}.p2-actions--routes,.p2-access__actions{grid-template-columns:1fr;width:100%;gap:8px}.p2-button{width:100%}.p2-button--hero{min-height:66px;padding-inline:17px}.p2-button--hero strong{font-size:14px}.p2-hero__detail{margin-top:17px}.p2-core{height:330px}.p2-metrics{grid-template-columns:1fr 1fr}.p2-metrics>div{min-height:82px;padding:18px 15px}.p2-metrics strong{font-size:16px}.p2-manifesto,.p2-route,.p2-architecture,.p2-compare,.p2-access{padding-block:95px}.p2-manifesto{grid-template-columns:1fr}.p2-manifesto__body h2,.p2-section-head h2{font-size:clamp(48px,14vw,70px)}.p2-manifesto__copy{grid-template-columns:1fr}.p2-manifesto__copy a{justify-self:start}.p2-section-head{margin-bottom:40px}.p2-route__stage{grid-template-columns:1fr}.p2-route__visual{min-height:310px}.p2-route__steps{display:grid;grid-template-columns:1fr 1fr;border-left:0;border-top:1px solid var(--p2-line)}.p2-route__steps li{border-right:1px solid var(--p2-line)}.p2-route__steps button{min-height:125px;padding:17px}.p2-architecture__grid{grid-template-columns:1fr}.p2-architecture__grid a{min-height:230px}.p2-compare__row{grid-template-columns:.8fr 1fr 1fr;min-height:92px}.p2-compare__row>*{padding:12px 9px;font-size:11px;line-height:1.45}.p2-access{min-height:auto}.p2-access__orb{width:80vw}.p2-access__copy h2{font-size:clamp(57px,17vw,78px)}.design-r0 .protocol-section{padding:82px 0}.design-r0 .section-title{font-size:clamp(42px,12vw,58px)}.design-r0 .overview-grid,.design-r0 .why-grid,.design-r0 .risk-grid{grid-template-columns:1fr}.design-r0 .register-form{padding:60px 20px}.design-r0 .register-form__panel h1{font-size:54px}.design-r0 .site-footer__inner{padding:58px 0 42px;gap:42px}.design-r0 .site-footer__cols{grid-template-columns:1fr 1fr;gap:34px 20px}.site-footer__service{grid-column:1/-1}.site-footer__actions{grid-template-columns:1fr 1fr}.site-footer__notice{padding:24px 0;grid-template-columns:1fr;gap:12px}.design-r0 .site-footer__notice p{font-size:10px}.design-r0 .site-footer__bottom{gap:16px;flex-direction:column;align-items:flex-start}.site-footer__bottom nav{gap:20px}.design-r0 input,.design-r0 select,.design-r0 textarea,.design-r0 .faq-search{font-size:16px}}

.design-r0 .site-footer__cost-note{margin:13px 0 0;color:#66736c;font-size:9px;line-height:1.7}.design-r0 .site-footer__policy-link{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));min-height:96px;margin:0 auto 28px;padding:22px 24px;display:grid;grid-template-columns:170px 250px minmax(0,1fr) auto;gap:24px;align-items:center;border:1px solid var(--p2-line);color:#c9d4ce;background:linear-gradient(90deg,rgba(168,255,79,.055),transparent 42%),#06090a;transition:border-color .3s var(--p2-ease),background .3s var(--p2-ease)}.design-r0 .site-footer__policy-link:hover{border-color:rgba(168,255,79,.4);background:linear-gradient(90deg,rgba(168,255,79,.09),transparent 48%),#070b0c}.site-footer__policy-link span{color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.13em}.site-footer__policy-link strong{color:#d3dcd7;font-size:17px;font-weight:500}.design-r0 .site-footer__policy-link p{margin:0;color:#6f7c75;font-size:10px;line-height:1.7}.site-footer__policy-link i{color:#aeb9b3;font:600 9px/1 "JetBrains Mono",monospace;font-style:normal;white-space:nowrap}.site-footer__policy-link i b{font:inherit}@media(max-width:1000px){.design-r0 .site-footer__policy-link{grid-template-columns:150px 210px minmax(0,1fr)}.site-footer__policy-link i{grid-column:3;justify-self:end}}@media(max-width:768px){.design-r0 .site-footer__policy-link{min-height:0;margin-bottom:22px;padding:20px;grid-template-columns:1fr auto;gap:13px}.site-footer__policy-link strong{grid-column:1/-1;font-size:16px}.design-r0 .site-footer__policy-link p{grid-column:1/-1;font-size:10px}.site-footer__policy-link i{grid-column:2;grid-row:1}}
.p2-core__canvas[data-network-flow="tornado"] canvas{filter:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.design-r0 *,.design-r0 *::before,.design-r0 *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}


/* SOURCE: assets/css/p2-motion.css */
.p2-ready{opacity:0;transform:translateY(32px);transition:opacity .9s var(--p2-ease),transform .9s var(--p2-ease)}
.p2-ready.p2-in{opacity:1;transform:none}
.p2-core{background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(134,255,221,.11),transparent 37%),rgba(7,12,14,.7)}
@media(prefers-reduced-motion:reduce){.p2-ready{opacity:1;transform:none}}


/* SOURCE: assets/css/subpages.css */
/* Subpage product experiences */
.sub-page{background:#070a0c}.sub-wrap{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));margin-inline:auto}.sub-hero{position:relative;min-height:620px;padding:clamp(70px,9vw,130px) 0 60px;display:flex;align-items:flex-end;border-bottom:1px solid var(--p2-line);overflow:hidden}.sub-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 49.95%,var(--p2-line) 50%,transparent 50.05%),radial-gradient(circle at 76% 48%,var(--sub-glow,rgba(134,255,221,.1)),transparent 27%)}.sub-hero::after{content:attr(data-chapter);position:absolute;right:var(--p2-pad);top:45px;color:#26322d;font:500 clamp(100px,18vw,260px)/1 Inter,sans-serif;letter-spacing:-.09em}.sub-hero__grid{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.65fr);gap:clamp(40px,9vw,150px);align-items:end}.sub-breadcrumb{margin-bottom:30px;color:#718078;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.14em}.sub-breadcrumb a{color:var(--p2-signal)}.sub-hero h1{max-width:900px;margin:0;font-size:clamp(58px,8vw,116px);font-weight:500;line-height:.88;letter-spacing:-.085em}.sub-hero h1 em{color:var(--sub-accent,var(--p2-cyan));font-style:normal}.sub-hero__aside{padding:24px 0 0;border-top:1px solid var(--p2-line-hi)}.sub-hero__aside p{margin:0 0 25px;color:var(--p2-copy);font-size:14px;line-height:1.9}.sub-meta{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--p2-line)}.sub-meta span{padding:13px;background:#090d0f;color:#6c7a73;font:600 8px/1.4 "JetBrains Mono",monospace;letter-spacing:.1em}.sub-nav{position:sticky;z-index:30;top:106px;border-bottom:1px solid var(--p2-line);background:rgba(7,10,12,.88);backdrop-filter:blur(18px)}.sub-nav__inner{width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));margin:auto;display:flex;overflow-x:auto;scrollbar-width:none}.sub-nav a{flex:0 0 auto;padding:17px 16px;color:#67746e;border-right:1px solid var(--p2-line);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.09em}.sub-nav a:first-child{border-left:1px solid var(--p2-line)}.sub-nav a.is-active,.sub-nav a:hover{color:#061008;background:var(--p2-signal)}
.sub-section{padding:clamp(90px,11vw,160px) 0;border-bottom:1px solid var(--p2-line)}.sub-section__head{display:grid;grid-template-columns:180px 1fr;gap:clamp(30px,7vw,100px);margin-bottom:70px}.sub-index{color:#59665f;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.sub-section h2{max-width:min(100%,22em);margin:0;font-size:clamp(44px,6vw,82px);font-weight:500;line-height:.96;letter-spacing:-.07em}.sub-section__head p{grid-column:2;max-width:680px;margin:20px 0 0;color:var(--p2-copy);line-height:1.9}.sub-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--p2-line);border-left:1px solid var(--p2-line)}.sub-card{position:relative;min-height:260px;padding:28px;border-right:1px solid var(--p2-line);border-bottom:1px solid var(--p2-line);background:#0a0f11;transition:.4s var(--p2-ease)}.sub-card:hover{background:#0f1718}.sub-card em{display:block;color:var(--sub-accent,var(--p2-cyan));font:normal 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.sub-card h3{margin:75px 0 12px;font-size:25px;font-weight:550;letter-spacing:-.04em}.sub-card p{margin:0;color:var(--p2-copy);font-size:13px;line-height:1.75}.sub-card i{position:absolute;right:25px;top:23px;color:#57645d;font-style:normal}.sub-card--signal{color:#061008;background:var(--p2-signal)}.sub-card--signal em,.sub-card--signal p,.sub-card--signal i{color:#28401f}
.sub-terminal{border:1px solid var(--p2-line);background:#080d0f}.sub-terminal__bar{min-height:42px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--p2-line);color:#627069;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.sub-terminal__bar b{color:var(--p2-signal)}.sub-terminal__body{padding:clamp(24px,4vw,55px)}
.sub-next{padding:80px 0}.sub-next__inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.sub-next p{margin:0;color:#64716a;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.sub-next a{font-size:clamp(12px,1.5vw,18px);font-weight:500;letter-spacing:-.03em}.sub-next a span{color:var(--p2-signal)}
/* hub */
.hub-orbit{position:absolute;right:7%;top:50%;width:min(38vw,520px);aspect-ratio:1;transform:translateY(-50%);border:1px solid var(--p2-line);border-radius:50%}.hub-orbit::before,.hub-orbit::after{content:"";position:absolute;border:1px solid var(--p2-line);border-radius:50%}.hub-orbit::before{inset:18%}.hub-orbit::after{inset:38%;background:var(--p2-signal);border:0;box-shadow:0 0 80px rgba(168,255,79,.2)}.hub-map{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--p2-line);border-left:1px solid var(--p2-line)}.hub-map a{position:relative;min-height:310px;padding:32px;border-right:1px solid var(--p2-line);border-bottom:1px solid var(--p2-line);background:#090d0f;overflow:hidden}.hub-map a::after{content:attr(data-number);position:absolute;right:-8px;bottom:-35px;color:#111a16;font:500 150px/1 Inter,sans-serif;letter-spacing:-.08em}.hub-map em{color:var(--p2-cyan);font:normal 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.hub-map h2{position:relative;z-index:2;margin:80px 0 12px;font-size:34px;font-weight:540;letter-spacing:-.05em}.hub-map p{position:relative;z-index:2;max-width:440px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.75}.hub-map a:hover{background:var(--p2-signal);color:#061008}.hub-map a:hover em,.hub-map a:hover p{color:#294020}.hub-map a:hover::after{color:rgba(6,16,8,.08)}
/* basics ledger */
.ledger-stage{display:grid;grid-template-columns:1fr 1fr;min-height:520px;border:1px solid var(--p2-line)}.ledger-side{position:relative;padding:30px;overflow:hidden}.ledger-side+ .ledger-side{border-left:1px solid var(--p2-line)}.ledger-side>em{color:#68766f;font:normal 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.ledger-side h3{font-size:30px;font-weight:520;letter-spacing:-.05em}.ledger-track{position:absolute;left:12%;right:12%;top:53%;height:1px;background:#3b4741}.ledger-track::before,.ledger-track::after{content:"";position:absolute;top:50%;width:54px;height:54px;transform:translateY(-50%);border:1px solid var(--p2-line-hi);border-radius:50%;background:#090d0f}.ledger-track::before{left:0}.ledger-track::after{right:0}.ledger-side--public .ledger-track{background:var(--p2-danger);box-shadow:0 0 20px rgba(255,114,94,.2)}.ledger-data{position:absolute;left:20%;right:20%;top:62%;display:flex;flex-wrap:wrap;gap:6px}.ledger-data span{padding:7px 9px;color:var(--p2-danger);border:1px solid rgba(255,114,94,.35);font:500 8px/1 "JetBrains Mono",monospace}
/* flow */
.flow-console{display:grid;grid-template-columns:240px 1fr;min-height:620px;border:1px solid var(--p2-line)}.flow-console__steps{border-right:1px solid var(--p2-line)}.flow-console__steps button{width:100%;min-height:103px;padding:18px;text-align:left;color:#6d7a74;background:none;border:0;border-bottom:1px solid var(--p2-line);font:600 9px/1.5 "JetBrains Mono",monospace}.flow-console__steps button.is-active{color:var(--p2-signal);background:rgba(168,255,79,.05);box-shadow:inset 3px 0 var(--p2-signal)}.flow-console__viz{position:relative;display:grid;place-items:center;background-image:radial-gradient(circle,#26332d 1px,transparent 1px);background-size:24px 24px}.flow-line{width:80%;height:2px;background:linear-gradient(90deg,var(--p2-cyan),var(--p2-signal));box-shadow:0 0 18px rgba(134,255,221,.28)}.flow-line::before,.flow-line::after{content:"";position:absolute;top:50%;width:70px;height:70px;transform:translateY(-50%);border:1px solid var(--p2-cyan);border-radius:50%;background:#091011}.flow-line::before{left:9%}.flow-line::after{right:9%}.flow-cloud{position:absolute;left:35%;right:35%;top:29%;bottom:29%;border:1px solid var(--p2-line);background:rgba(134,255,221,.03)}.flow-cloud i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--p2-signal);box-shadow:0 0 10px var(--p2-signal)}.flow-cloud i:nth-child(1){left:20%;top:23%}.flow-cloud i:nth-child(2){left:70%;top:31%}.flow-cloud i:nth-child(3){left:40%;top:68%}.flow-cloud i:nth-child(4){left:81%;top:74%}
/* safety */
.security-stack{display:grid;gap:10px;perspective:1100px}.security-layer{position:relative;min-height:112px;padding:25px 30px;display:grid;grid-template-columns:90px 1fr auto;align-items:center;border:1px solid var(--p2-line);background:linear-gradient(90deg,rgba(134,255,221,.035),transparent);transition:.35s var(--p2-ease)}.security-layer:hover{border-color:rgba(134,255,221,.45);transform:translateX(8px)}.security-layer em{color:var(--p2-cyan);font:normal 9px/1 "JetBrains Mono",monospace}.security-layer h3{margin:0;font-size:22px;font-weight:520}.security-layer p{max-width:400px;margin:0;color:var(--p2-copy);font-size:12px;line-height:1.7}
/* contract */
.code-stage{display:grid;grid-template-columns:1.1fr .9fr;min-height:600px;border:1px solid var(--p2-line);background:#080c0e}.code-editor{padding:30px;border-right:1px solid var(--p2-line);font:16px/2.35 "JetBrains Mono",monospace}.code-editor p{margin:0;color:#68756f}.code-editor p.is-active{color:var(--p2-paper);background:rgba(168,255,79,.05);box-shadow:inset 2px 0 var(--p2-signal)}.code-editor b{color:var(--p2-cyan);font-weight:500}.code-editor i{color:var(--p2-signal);font-style:normal}.code-pipeline{padding:30px;display:flex;flex-direction:column;justify-content:center}.code-node{padding:16px 18px;border-left:1px solid var(--p2-line);opacity:.55;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:6px 12px}.code-node.is-active{opacity:1;border-color:var(--p2-signal);background:linear-gradient(90deg,rgba(168,255,79,.07),transparent)}.code-node em{color:var(--p2-cyan);font:normal 10px/1.2 "JetBrains Mono",monospace;flex:0 0 auto}.code-node strong{display:inline;margin:0;font-size:15px;letter-spacing:.06em;color:var(--p2-paper);flex:0 0 auto}.code-node span{display:inline;color:var(--p2-paper);font-size:14px;line-height:1.35;flex:1 1 auto;min-width:0}
/* compare */
.versus{display:grid;grid-template-columns:1fr 80px 1fr;border:1px solid var(--p2-line)}.versus__side{min-height:520px;padding:35px;background:#090d0f}.versus__middle{display:grid;place-items:center;border-inline:1px solid var(--p2-line);color:#66736d;font:600 9px/1 "JetBrains Mono",monospace;writing-mode:vertical-rl}.versus__side em{color:#6f7c76;font:normal 9px/1 "JetBrains Mono",monospace}.versus__side h3{margin:20px 0;font-size:44px;font-weight:500;letter-spacing:-.06em}.versus__side--win h3{color:var(--p2-signal)}.versus-route{height:220px;margin-top:45px;display:grid;place-items:center;border:1px solid var(--p2-line);background-image:linear-gradient(var(--p2-line) 1px,transparent 1px),linear-gradient(90deg,var(--p2-line) 1px,transparent 1px);background-size:32px 32px}.versus-route span{padding:12px 16px;color:#07100b;background:var(--p2-signal);font:700 9px/1 "JetBrains Mono",monospace}
/* risk */
.risk-matrix{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--p2-line);border:1px solid var(--p2-line)}.risk-item{min-height:230px;padding:28px;background:#0a0e10}.risk-item__top{display:flex;justify-content:space-between;color:var(--p2-danger);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.risk-item h3{margin:65px 0 10px;font-size:25px;font-weight:520}.risk-item p{margin:0;color:var(--p2-copy);font-size:13px;line-height:1.75}.risk-meter{height:3px;margin-top:25px;background:#202824}.risk-meter span{display:block;width:var(--risk,60%);height:100%;background:var(--p2-danger)}
/* faq */
.faq-command{display:grid;grid-template-columns:300px 1fr;border:1px solid var(--p2-line)}.faq-command__filter{padding:25px;border-right:1px solid var(--p2-line)}.faq-command__filter input{width:100%;color:var(--p2-paper);border:1px solid var(--p2-line-hi);padding:14px}.faq-command__cats{display:grid;margin-top:15px}.faq-command__cats button{padding:15px;text-align:left;color:#718078;background:none;border:0;border-bottom:1px solid var(--p2-line);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.09em}.faq-command__cats button.is-active{color:var(--p2-signal)}.faq-command__list details{border-bottom:1px solid var(--p2-line);background:#090d0f}.faq-command__list summary{padding:25px 28px;display:flex;justify-content:space-between;list-style:none;cursor:pointer;font-size:15px}.faq-command__list summary::after{content:"+";color:var(--p2-signal)}.faq-command__list details[open] summary::after{content:"−"}.faq-command__answer{padding:0 28px 28px;color:var(--p2-copy);font-size:13px;line-height:1.8}
@media(max-width:900px){.sub-hero__grid{grid-template-columns:1fr}.sub-hero::after{opacity:.4}.sub-section__head{grid-template-columns:1fr}.sub-section__head p{grid-column:1}.sub-grid{grid-template-columns:1fr 1fr}.hub-map{grid-template-columns:1fr}.flow-console,.code-stage,.faq-command{grid-template-columns:1fr}.flow-console__steps{display:grid;grid-template-columns:repeat(2,1fr);border-right:0;border-bottom:1px solid var(--p2-line)}.flow-console__viz{min-height:400px}.code-editor,.faq-command__filter{border-right:0;border-bottom:1px solid var(--p2-line)}.versus{grid-template-columns:1fr}.versus__middle{min-height:55px;border-inline:0;border-block:1px solid var(--p2-line);writing-mode:initial}.security-layer{grid-template-columns:65px 1fr}.security-layer p{grid-column:2;margin-top:10px}.ledger-stage{grid-template-columns:1fr}.ledger-side{min-height:380px}.ledger-side+ .ledger-side{border-left:0;border-top:1px solid var(--p2-line)}}
@media(max-width:768px){.sub-hero{min-height:560px;padding-top:60px}.sub-hero h1{font-size:clamp(52px,16vw,72px)}.sub-nav{top:94px}.sub-section{padding:85px 0}.sub-section__head{margin-bottom:45px}.sub-section h2{font-size:clamp(42px,12vw,58px)}.sub-grid{grid-template-columns:1fr}.sub-card{min-height:220px}.sub-next__inner{align-items:flex-start;flex-direction:column}.security-layer{padding:20px;grid-template-columns:50px 1fr}.risk-matrix{grid-template-columns:1fr}.faq-command__filter{padding:18px}.faq-command__list summary{padding:21px 18px}.faq-command__answer{padding:0 18px 22px}.hub-orbit{opacity:.35;width:80vw;right:-32%}}


/* SOURCE: assets/css/flow-animations.css */
.flow-scroll-section{padding-bottom:42px}
.flow-scroll-scene{--flow-scroll-progress:0;position:relative;height:360svh}
.flow-scroll-sticky{position:sticky;z-index:5;top:160px;height:calc(100svh - 184px);min-height:0;display:flex;flex-direction:column;justify-content:center}
.flow-scroll__indicator{height:31px;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;gap:15px;align-items:start;color:#66736c;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.11em}
.flow-scroll__indicator span{color:#7a8880}
.flow-scroll__indicator i{position:relative;height:1px;margin-top:3px;background:#202b26;overflow:hidden}
.flow-scroll__indicator i b{position:absolute;inset:0 auto 0 0;width:calc(var(--flow-scroll-progress) * 100%);background:var(--p2-signal);box-shadow:0 0 12px rgba(168,255,79,.55);transition:width .12s linear}
.flow-scroll__indicator em{color:var(--p2-signal);font-style:normal}
.flow-scroll-sticky .flow-console{width:100%;height:calc(100% - 31px);min-height:0;background:#070b0d;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.flow-scroll-scene[data-scroll-stage="0"] .flow-scroll-sticky{--flow-stage-tint:rgba(255,114,94,.04)}
.flow-scroll-scene[data-scroll-stage="1"] .flow-scroll-sticky{--flow-stage-tint:rgba(134,255,221,.04)}
.flow-scroll-scene[data-scroll-stage="2"] .flow-scroll-sticky{--flow-stage-tint:rgba(168,255,79,.045)}
.flow-scroll-scene[data-scroll-stage="3"] .flow-scroll-sticky{--flow-stage-tint:rgba(168,255,79,.07)}
.flow-scroll-sticky .flow-console__viz{background-color:var(--flow-stage-tint,transparent);transition:background-color .5s ease}
.flow-console__steps button{display:flex;min-height:103px;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;transition:color .3s ease,background .3s ease,box-shadow .3s ease}
.flow-console__steps button span{font:600 9px/1.2 "JetBrains Mono",monospace}
.flow-console__steps button small{font:500 8px/1.2 "JetBrains Mono",monospace;letter-spacing:.04em}
.flow-console__viz{position:relative;min-width:0;overflow:hidden}
.flow-stage-canvas{display:none;position:absolute;inset:48px 3% 42px;width:94%;height:calc(100% - 90px)}
.flow-console.has-flow-canvas .flow-stage-canvas{display:block}
.flow-console.has-flow-canvas .flow-viz{display:none}
.flow-viz{position:absolute;inset:48px 3% 42px;width:94%;height:calc(100% - 90px);overflow:visible}
.flow-viz__hud,.flow-viz__caption{position:absolute;z-index:3;left:22px;right:22px;display:flex;justify-content:space-between;align-items:center;color:#65736c;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}
.flow-viz__hud{top:20px}.flow-viz__hud b{color:var(--p2-signal);font-weight:500}.flow-viz__caption{bottom:18px}.flow-viz__caption b{color:#8b9992;font-weight:500}
.flow-viz__grid path{fill:none;stroke:rgba(134,255,221,.055);stroke-width:1}
.flow-viz__routes path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.route-main{stroke:url(#flowGradient);stroke-width:2;filter:drop-shadow(0 0 5px rgba(134,255,221,.35))}
.route-branch{stroke:#4e6964;stroke-width:1.3;opacity:0}
.flow-viz__boundary path{fill:none;stroke:var(--p2-danger);stroke-width:1.5;opacity:0}
.endpoint{fill:#081012;stroke:var(--p2-cyan);stroke-width:1.5}.endpoint--out{stroke:#5c6d66}
.hop,.micro{fill:var(--p2-signal);opacity:0;filter:drop-shadow(0 0 5px var(--p2-signal))}
.flow-viz__packet{fill:var(--p2-signal);opacity:0;transform-box:fill-box;transform-origin:center}
.flow-viz__pulse{fill:none;stroke:var(--p2-cyan);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
.flow-viz__labels text{fill:#596861;font:500 9px "JetBrains Mono",monospace;letter-spacing:.08em}.flow-viz__labels text:nth-child(3){fill:var(--p2-danger);opacity:0}

/* 01 — a continuous route reaches the boundary, then snaps apart */
.flow-console[data-stage="0"] .flow-viz__boundary path,.flow-console[data-stage="0"] .flow-viz__labels text:nth-child(3){opacity:1}
.flow-console[data-stage="0"].is-animating .route-main--left{stroke-dasharray:290;animation:flowDraw .72s ease-out both}
.flow-console[data-stage="0"].is-animating .route-main--right{stroke-dasharray:290;animation:flowDraw .72s .58s ease-out both}
.flow-console[data-stage="0"].is-animating .flow-viz__packet{animation:packetBreak 1.45s cubic-bezier(.2,.8,.2,1) both}
.flow-console[data-stage="0"].is-animating .flow-viz__boundary{animation:boundaryHit .55s .72s ease-out both}
.flow-console[data-stage="0"].is-animating .flow-viz__pulse--in{animation:nodePulse 1s ease-out both}

/* 02 — packet disappears into an unpredictable private hop */
.flow-console[data-stage="1"] .route-branch.b1,.flow-console[data-stage="1"] .route-branch.b2{opacity:.8;stroke:var(--p2-cyan)}
.flow-console[data-stage="1"] .hop{opacity:.55}
.flow-console[data-stage="1"].is-animating .route-branch.b1,.flow-console[data-stage="1"].is-animating .route-branch.b2{stroke-dasharray:520;animation:flowDraw 1s ease-out both}
.flow-console[data-stage="1"].is-animating .h1{animation:hopPulse .7s .45s ease-out both}.flow-console[data-stage="1"].is-animating .h2{animation:hopPulse .7s .9s ease-out both}
.flow-console[data-stage="1"].is-animating .flow-viz__packet{animation:packetObscure 1.9s cubic-bezier(.2,.8,.2,1) both}

/* 03 — all branch paths and micro-wallets fan out */
.flow-console[data-stage="2"] .route-branch{opacity:.85;stroke:var(--p2-cyan)}
.flow-console[data-stage="2"] .hop,.flow-console[data-stage="2"] .micro{opacity:1}
.flow-console[data-stage="2"].is-animating .route-branch{stroke-dasharray:560;animation:flowDraw 1s ease-out both}
.flow-console[data-stage="2"].is-animating .route-branch.b2{animation-delay:.12s}.flow-console[data-stage="2"].is-animating .route-branch.b3{animation-delay:.24s}.flow-console[data-stage="2"].is-animating .route-branch.b4{animation-delay:.36s}
.flow-console[data-stage="2"].is-animating .hop,.flow-console[data-stage="2"].is-animating .micro{animation:walletBloom .65s ease-out both}.flow-console[data-stage="2"].is-animating .h2,.flow-console[data-stage="2"].is-animating .m2{animation-delay:.12s}.flow-console[data-stage="2"].is-animating .h3,.flow-console[data-stage="2"].is-animating .m3{animation-delay:.22s}.flow-console[data-stage="2"].is-animating .h4,.flow-console[data-stage="2"].is-animating .m4{animation-delay:.32s}.flow-console[data-stage="2"].is-animating .m5{animation-delay:.42s}.flow-console[data-stage="2"].is-animating .m6{animation-delay:.52s}
.flow-console[data-stage="2"].is-animating .flow-viz__packet{animation:packetDistribute 1.6s ease-out both}

/* 04 — branches collapse toward one output and the receiver confirms */
.flow-console[data-stage="3"] .route-branch{opacity:.5;stroke:var(--p2-signal)}
.flow-console[data-stage="3"] .hop{opacity:.45}.flow-console[data-stage="3"] .endpoint--out{stroke:var(--p2-signal);filter:drop-shadow(0 0 8px rgba(168,255,79,.45))}
.flow-console[data-stage="3"].is-animating .route-branch{stroke-dasharray:560;animation:flowDraw 1s ease-out both}
.flow-console[data-stage="3"].is-animating .flow-viz__packet{animation:packetReassemble 1.55s cubic-bezier(.15,.8,.2,1) both}
.flow-console[data-stage="3"].is-animating .flow-viz__pulse--out{animation:outputConfirm 1s 1.05s ease-out both}

@keyframes flowDraw{from{stroke-dashoffset:560}to{stroke-dashoffset:0}}
@keyframes packetBreak{0%{opacity:0;transform:translate(0,0) scale(.5)}12%{opacity:1}68%{opacity:1;transform:translate(290px,0) scale(1)}76%{opacity:1;transform:translate(315px,0) scale(1.45)}100%{opacity:0;transform:translate(315px,0) scale(.1)}}
@keyframes boundaryHit{0%{opacity:0;transform:scaleY(.35)}35%{opacity:1;transform:scaleY(1.18)}100%{opacity:1;transform:scaleY(1)}}
@keyframes packetObscure{0%{opacity:0;transform:translate(290px,0) scale(.4)}12%{opacity:1}42%{transform:translate(405px,-155px) scale(1)}58%{opacity:.25;transform:translate(455px,-80px) scale(.6)}78%{opacity:1;transform:translate(510px,-75px) scale(1)}100%{opacity:0;transform:translate(585px,0) scale(.5)}}
@keyframes packetDistribute{0%{opacity:1;transform:translate(290px,0) scale(1)}40%{opacity:1;transform:translate(405px,0) scale(1.4)}65%{opacity:.25;transform:translate(440px,0) scale(3.5)}100%{opacity:0;transform:translate(490px,0) scale(.1)}}
@keyframes packetReassemble{0%{opacity:0;transform:translate(405px,-155px) scale(.3)}18%{opacity:1}62%{opacity:1;transform:translate(580px,0) scale(1.3)}100%{opacity:1;transform:translate(690px,0) scale(.8)}}
@keyframes nodePulse{0%{opacity:.8;transform:scale(.75)}100%{opacity:0;transform:scale(1.8)}}
@keyframes hopPulse{0%{opacity:0;transform:scale(.2)}45%{opacity:1;transform:scale(2)}100%{opacity:.6;transform:scale(1)}}
@keyframes walletBloom{0%{opacity:0;transform:scale(0)}65%{opacity:1;transform:scale(2.2)}100%{opacity:1;transform:scale(1)}}
@keyframes outputConfirm{0%{opacity:1;transform:scale(.75)}100%{opacity:0;transform:scale(2.1)}}

@media(max-width:900px){.flow-scroll-scene{height:330svh}.flow-scroll-sticky{top:144px;height:calc(100svh - 160px)}.flow-scroll__indicator{height:27px;gap:10px;font-size:7px}.flow-scroll-sticky .flow-console{height:calc(100% - 27px)}.flow-viz{inset:42px 1% 36px;width:98%;height:calc(100% - 78px)}.flow-viz__hud,.flow-viz__caption{left:14px;right:14px}.flow-viz__labels text{font-size:10px}}
@media(max-width:520px){.flow-scroll-scene{height:310svh}.flow-scroll-sticky{top:142px;height:calc(100svh - 152px)}.flow-scroll__indicator{grid-template-columns:auto 1fr auto}.flow-scroll-sticky .flow-console{box-shadow:none}.flow-console__steps button{min-height:78px}}
@media(prefers-reduced-motion:reduce){.flow-scroll__indicator i b,.flow-scroll-sticky .flow-console__viz{transition:none}.flow-console .flow-viz *{animation:none!important}.flow-viz__packet{display:none}.flow-console[data-stage="0"] .flow-viz__boundary path,.flow-console[data-stage="0"] .flow-viz__labels text:nth-child(3),.flow-console[data-stage="1"] .route-branch.b1,.flow-console[data-stage="1"] .route-branch.b2,.flow-console[data-stage="2"] .route-branch,.flow-console[data-stage="2"] .hop,.flow-console[data-stage="2"] .micro,.flow-console[data-stage="3"] .route-branch,.flow-console[data-stage="3"] .hop{opacity:1}}


/* SOURCE: assets/css/code-scroll.css */
.code-scroll-section{padding-bottom:42px}
.code-scroll-scene{--code-scroll-progress:0;position:relative;height:430svh}
.code-scroll-sticky{position:sticky;z-index:5;top:96px;height:calc(100svh - 120px);min-height:0;display:flex;flex-direction:column;justify-content:center}
.code-scroll__indicator{height:31px;flex:0 0 auto;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;gap:15px;align-items:start;color:#66736c;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.11em}
.code-scroll__indicator span{color:#7a8880}.code-scroll__indicator i{position:relative;height:1px;margin-top:3px;background:#202b26;overflow:hidden}.code-scroll__indicator i b{position:absolute;inset:0 auto 0 0;width:calc(var(--code-scroll-progress) * 100%);background:var(--p2-signal);box-shadow:0 0 12px rgba(168,255,79,.55);transition:width .12s linear}.code-scroll__indicator em{color:var(--p2-signal);font-style:normal}
.code-scroll-sticky .code-stage{width:100%;height:calc(100% - 31px);min-height:0;overflow:hidden;background:#070b0d;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.code-scroll-sticky .code-editor,
.code-scroll-sticky .code-pipeline{min-height:0;overflow:hidden;display:grid;grid-template-rows:repeat(5,minmax(0,1fr));padding:0;gap:0;height:100%}
.code-scroll-sticky .code-editor p,
.code-scroll-sticky .code-node{display:flex;align-items:center;box-sizing:border-box;min-height:0;height:100%;margin:0;padding:0 22px;font:clamp(14px,1.4vw,18px)/1.35 "JetBrains Mono","Noto Sans JP",monospace;color:var(--p2-paper)}
.code-scroll-sticky .code-editor p{color:#c5cec8}
.code-scroll-sticky .code-editor p.is-active{color:var(--p2-paper);background:rgba(168,255,79,.05);box-shadow:inset 2px 0 var(--p2-signal)}
.code-scroll-sticky .code-node{width:100%;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;gap:10px;border-left:1px solid var(--p2-line);opacity:.72;background:transparent;appearance:none;cursor:pointer;text-align:left;transition:opacity .25s ease,background .25s ease,border-color .25s ease}
.code-scroll-sticky .code-node em,.code-scroll-sticky .code-node strong,.code-scroll-sticky .code-node span{display:inline;margin:0;font-size:inherit;line-height:inherit;white-space:nowrap;color:var(--p2-paper)}
.code-scroll-sticky .code-node em{color:var(--p2-cyan);flex:0 0 auto}
.code-scroll-sticky .code-node strong{letter-spacing:.05em;flex:0 0 auto}
.code-scroll-sticky .code-node span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.code-scroll-sticky .code-node:hover,.code-scroll-sticky .code-node:focus-visible{opacity:1;border-color:var(--p2-cyan);outline:0}
.code-scroll-sticky .code-node.is-active{opacity:1;border-color:var(--p2-signal);background:linear-gradient(90deg,rgba(168,255,79,.09),transparent)}
.code-scroll-scene[data-scroll-stage="0"] .code-scroll-sticky{--code-stage-tint:rgba(134,255,221,.025)}.code-scroll-scene[data-scroll-stage="1"] .code-scroll-sticky{--code-stage-tint:rgba(255,114,94,.035)}.code-scroll-scene[data-scroll-stage="2"] .code-scroll-sticky{--code-stage-tint:rgba(168,255,79,.04)}.code-scroll-scene[data-scroll-stage="3"] .code-scroll-sticky{--code-stage-tint:rgba(134,255,221,.045)}.code-scroll-scene[data-scroll-stage="4"] .code-scroll-sticky{--code-stage-tint:rgba(168,255,79,.07)}.code-scroll-sticky .code-stage{background:linear-gradient(135deg,var(--code-stage-tint,transparent),transparent 48%),#070b0d;transition:background .45s ease}
@media(max-width:900px){.code-scroll-scene{height:400svh}.code-scroll-sticky{top:80px;height:calc(100svh - 96px)}.code-scroll__indicator{height:27px;gap:10px;font-size:7px}.code-scroll-sticky .code-stage{height:calc(100% - 27px);grid-template-columns:1fr;grid-template-rows:minmax(160px,.9fr) minmax(0,1.1fr)}.code-scroll-sticky .code-editor{border-right:0;border-bottom:1px solid var(--p2-line)}.code-scroll-sticky .code-editor p,.code-scroll-sticky .code-node{padding:0 16px;font-size:13px}.code-scroll-sticky .code-node{border-left:2px solid var(--p2-line);border-bottom:1px solid var(--p2-line)}.code-scroll-sticky .code-node:last-child{border-bottom:0}.code-scroll-sticky .code-node span{white-space:normal}}
@media(max-width:520px){.code-scroll-scene{height:370svh}.code-scroll-sticky{top:76px;height:calc(100svh - 88px)}.code-scroll__indicator{grid-template-columns:auto 1fr auto}.code-scroll-sticky .code-stage{box-shadow:none}.code-scroll-sticky .code-editor{grid-row:1}.code-scroll-sticky .code-editor p,.code-scroll-sticky .code-node{padding:0 14px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.code-scroll__indicator i b,.code-scroll-sticky .code-stage,.code-scroll-sticky .code-node{transition:none}}


/* SOURCE: assets/css/i18n.css */
.language-switch{display:inline-grid;grid-template-columns:1fr 1fr;align-items:stretch;border:1px solid var(--p2-line);overflow:hidden;min-width:96px}
.language-switch button{min-height:32px;min-width:0;width:100%;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;color:#ffffff;background:transparent;border:0;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.04em;cursor:pointer;box-sizing:border-box}
.language-switch button+button{border-left:1px solid var(--p2-line)}
.language-switch button.is-active{color:#061008;background:var(--p2-signal)}
html[data-language="ja"] [data-en-only],html[data-language="en"] [data-ja-only]{display:none!important}
html[data-language="ja"] .p2-hero h1{max-width:9em;font-size:clamp(48px,5.25vw,78px);line-height:1.04;letter-spacing:-.055em;word-break:keep-all}
html[data-language="ja"] .p2-hero h1 em{display:inline-block;margin-top:.12em}
.language-switch--mobile{display:none}
.site-header__brand img{display:block;width:clamp(148px,15vw,214px);height:auto}
@media(max-width:900px){.language-switch--mobile{display:inline-grid;margin-left:auto}.site-header__actions .language-switch{display:none}.site-header__menu{order:4}.site-header__inner{gap:8px}}
@media(max-width:768px){html[data-language="ja"] .p2-hero h1{max-width:100%;font-size:clamp(44px,12.4vw,58px);line-height:1.08;letter-spacing:-.045em}}
@media(max-width:480px){.site-header__brand img{width:132px}.language-switch{min-width:72px}.language-switch button{padding-inline:6px;font-size:8px}.language-switch button:first-child{font-size:0}.language-switch button:first-child::after{content:"JA";font-size:8px}}


/* SOURCE: assets/css/architecture-icons.css */
.p2-architecture__icon{display:block!important;width:118px;height:118px;margin:42px 0 auto!important;color:var(--p2-cyan)!important;transition:color .35s ease,transform .45s var(--p2-ease)}
.p2-architecture__icon svg{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.p2-architecture__label{margin-top:24px!important}
.p2-architecture__grid a:hover .p2-architecture__icon{color:#07100b!important;transform:translateY(-5px)}
.p2-architecture__icon .icon-packet{fill:var(--p2-signal);stroke:none;filter:drop-shadow(0 0 5px rgba(168,255,79,.7))}
.p2-architecture__grid a:hover .icon-packet{fill:#07100b;animation:architecturePacket 1.35s ease-in-out infinite}
.p2-architecture__icon .icon-run{stroke:var(--p2-signal);stroke-width:2}
.p2-architecture__grid a:hover .icon-run{stroke:#07100b;stroke-dasharray:18;animation:architectureRun 1s linear infinite}
.p2-architecture__icon .icon-gate{fill:rgba(168,255,79,.14);stroke:var(--p2-signal)}
.p2-architecture__grid a:hover .icon-gate{fill:#07100b;stroke:#07100b;animation:architectureGate 1.2s ease-in-out infinite}
.p2-architecture__icon .icon-alert{stroke:var(--p2-danger);stroke-width:2.2}
.p2-architecture__grid a:hover .icon-alert{stroke:#07100b;animation:architectureAlert .85s ease-in-out infinite}
@keyframes architecturePacket{0%,100%{transform:translate(0,0)}35%{transform:translate(48px,-36px)}68%{transform:translate(48px,0)}}
@keyframes architectureRun{to{stroke-dashoffset:-36}}
@keyframes architectureGate{50%{transform:scale(1.5);transform-origin:89px 58px}}
@keyframes architectureAlert{50%{opacity:.25}}
@media(max-width:768px){.p2-architecture__icon{width:96px;height:96px;margin-top:28px!important}.p2-architecture__label{margin-top:18px!important}}
@media(prefers-reduced-motion:reduce){.p2-architecture__icon *{animation:none!important}}


/* SOURCE: assets/css/home-route-stage.css */
.p2-route__canvas{display:none;position:absolute;inset:0;width:100%;height:100%}
.p2-route.has-route-canvas .p2-route__canvas{display:block}
.p2-route.has-route-canvas .p2-route__visual>svg,
.p2-route.has-route-canvas .p2-route__label{display:none}
@media(prefers-reduced-motion:reduce){.p2-route__canvas{animation:none!important}}


/* SOURCE: assets/css/home-route-scroll.css */
.p2-route{padding-bottom:42px}
.p2-route__scroll-scene{--p2-route-scroll-progress:0;position:relative;height:360svh}
.p2-route__sticky{position:sticky;z-index:5;top:122px;height:calc(100svh - 146px);min-height:0;display:flex;flex-direction:column;justify-content:center}
.p2-route__scroll-indicator{height:31px;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;gap:15px;align-items:start;color:#66736c;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.11em}
.p2-route__scroll-indicator span{color:#7a8880}.p2-route__scroll-indicator i{position:relative;height:1px;margin-top:3px;background:#202b26;overflow:hidden}.p2-route__scroll-indicator i b{position:absolute;inset:0 auto 0 0;width:calc(var(--p2-route-scroll-progress) * 100%);background:var(--p2-signal);box-shadow:0 0 12px rgba(168,255,79,.55);transition:width .12s linear}.p2-route__scroll-indicator em{color:var(--p2-signal);font-style:normal}
.p2-route__sticky .p2-route__stage{width:100%;height:calc(100% - 31px);min-height:0;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.p2-route__sticky .p2-route__visual{min-height:0;height:100%}.p2-route__sticky .p2-route__steps{min-height:0;overflow:hidden;display:flex;flex-direction:column}.p2-route__sticky .p2-route__steps li{flex:1;display:flex}.p2-route__sticky .p2-route__steps button{min-height:0;flex:1}
.p2-route__scroll-scene[data-scroll-stage="0"] .p2-route__visual{background-color:rgba(29,49,43,.11)}.p2-route__scroll-scene[data-scroll-stage="1"] .p2-route__visual{background-color:rgba(29,53,60,.14)}.p2-route__scroll-scene[data-scroll-stage="2"] .p2-route__visual{background-color:rgba(47,60,31,.14)}.p2-route__scroll-scene[data-scroll-stage="3"] .p2-route__visual{background-color:rgba(48,57,38,.14)}
@media(max-width:768px){.p2-route{padding-bottom:30px}.p2-route__scroll-scene{height:310svh}.p2-route__sticky{top:106px;height:calc(100svh - 122px)}.p2-route__scroll-indicator{height:27px;gap:10px;font-size:7px}.p2-route__sticky .p2-route__stage{height:calc(100% - 27px);grid-template-rows:minmax(255px,.95fr) minmax(0,1.05fr)}.p2-route__sticky .p2-route__visual{min-height:0}.p2-route__sticky .p2-route__steps{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;height:auto;overflow:hidden}.p2-route__sticky .p2-route__steps li{min-height:0}.p2-route__sticky .p2-route__steps button{min-height:0}.p2-route__sticky .p2-route__steps em{margin-bottom:11px}.p2-route__sticky .p2-route__steps strong{font-size:11px}.p2-route__sticky .p2-route__steps span{font-size:10px;line-height:1.45}}
@media(prefers-reduced-motion:reduce){.p2-route__scroll-indicator i b{transition:none}}


/* SOURCE: assets/css/guide-core-scroll.css */
.guide-core-scroll{--guide-core-progress:0;position:relative;height:310svh}.guide-core-scroll__sticky{position:sticky;z-index:5;top:160px;height:calc(100svh - 184px);min-height:0;display:flex;flex-direction:column;justify-content:center}.guide-core-scroll__indicator{height:31px;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;gap:15px;align-items:start;color:#66736c;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.11em}.guide-core-scroll__indicator span{color:#7a8880}.guide-core-scroll__indicator i{position:relative;height:1px;margin-top:3px;background:#202b26;overflow:hidden}.guide-core-scroll__indicator i b{position:absolute;inset:0 auto 0 0;width:calc(var(--guide-core-progress) * 100%);background:var(--p2-signal);box-shadow:0 0 12px rgba(168,255,79,.55);transition:width .12s linear}.guide-core-scroll__indicator em{color:var(--p2-signal);font-style:normal}.guide-core-scroll .guide-core-grid{height:calc(100% - 31px);min-height:0;overflow:hidden}.guide-core-scroll .sub-card{min-height:0;height:100%;background:#090d0f;transition:background .45s ease,color .45s ease,box-shadow .45s ease}.guide-core-scroll .sub-card h3{margin-top:auto;position:relative;z-index:1}.guide-core-scroll .sub-card p,.guide-core-scroll .sub-card em{position:relative;z-index:1;transition:color .45s ease}.guide-core-scroll .sub-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,var(--guide-core-glow,transparent),transparent 60%);opacity:0;transition:opacity .45s ease}.guide-core-scroll .sub-card.is-active{box-shadow:inset 3px 0 0 var(--p2-signal);background:linear-gradient(140deg,var(--guide-core-tint,rgba(168,255,79,.09)),#0a1210);color:var(--p2-paper)}.guide-core-scroll .sub-card.is-active::before{opacity:1}.guide-core-scroll .sub-card.is-active h3{color:var(--p2-signal)}.guide-core-scroll .sub-card.is-active p{color:#c4d0c8}.guide-core-scroll[data-scroll-stage="0"]{--guide-core-tint:rgba(134,255,221,.10);--guide-core-glow:rgba(134,255,221,.16)}.guide-core-scroll[data-scroll-stage="1"]{--guide-core-tint:rgba(126,189,255,.10);--guide-core-glow:rgba(101,195,255,.16)}.guide-core-scroll[data-scroll-stage="2"]{--guide-core-tint:rgba(168,255,79,.11);--guide-core-glow:rgba(168,255,79,.17)}.guide-core-scroll[data-scroll-stage="0"] .sub-card.is-active h3{color:var(--p2-cyan)}.guide-core-scroll[data-scroll-stage="1"] .sub-card.is-active h3{color:#8dd9ff}@media(max-width:768px){.guide-core-scroll{height:270svh}.guide-core-scroll__sticky{top:142px;height:calc(100svh - 158px)}.guide-core-scroll__indicator{height:27px;gap:10px;font-size:7px}.guide-core-scroll .guide-core-grid{height:calc(100% - 27px);grid-template-columns:1fr;grid-template-rows:repeat(3,1fr)}.guide-core-scroll .sub-card{padding:20px;min-height:0}.guide-core-scroll .sub-card h3{margin:22px 0 8px;font-size:22px}.guide-core-scroll .sub-card p{font-size:11px;line-height:1.6}}@media(prefers-reduced-motion:reduce){.guide-core-scroll__indicator i b,.guide-core-scroll .sub-card,.guide-core-scroll .sub-card::before,.guide-core-scroll .sub-card p,.guide-core-scroll .sub-card em{transition:none}}


/* SOURCE: assets/css/hub-map-scroll.css */
.hub-map-scroll{--hub-map-progress:0}.hub-map-scroll__indicator{height:31px;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;gap:15px;align-items:start;color:#66736c;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.11em}.hub-map-scroll__indicator span{color:#7a8880}.hub-map-scroll__indicator i{position:relative;height:1px;margin-top:3px;background:#202b26;overflow:hidden}.hub-map-scroll__indicator i b{position:absolute;inset:0 auto 0 0;width:calc(var(--hub-map-progress) * 100%);background:var(--p2-signal);box-shadow:0 0 12px rgba(168,255,79,.55);transition:width .12s linear}.hub-map-scroll__indicator em{color:var(--p2-signal);font-style:normal}.hub-map a{transition:background .45s ease,border-color .45s ease,box-shadow .45s ease,color .45s ease}.hub-map a::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 25%,var(--hub-map-glow,transparent),transparent 52%);opacity:0;transition:opacity .45s ease;pointer-events:none}.hub-map a>*{position:relative;z-index:1}.hub-map a.is-active{background:linear-gradient(135deg,var(--hub-map-tint,rgba(168,255,79,.10)),#0a1210);box-shadow:inset 3px 0 0 var(--hub-map-accent,var(--p2-signal)),0 0 50px rgba(0,0,0,.18)}.hub-map a.is-active::before{opacity:1}.hub-map a.is-active em,.hub-map a.is-active h2{color:var(--hub-map-accent,var(--p2-signal))}.hub-map a.is-active p{color:#d1dad5}.hub-map-scroll[data-hub-stage="0"]{--hub-map-accent:#86ffdd;--hub-map-tint:rgba(134,255,221,.10);--hub-map-glow:rgba(134,255,221,.16)}.hub-map-scroll[data-hub-stage="1"]{--hub-map-accent:#86d8ff;--hub-map-tint:rgba(92,192,255,.11);--hub-map-glow:rgba(92,192,255,.16)}.hub-map-scroll[data-hub-stage="2"]{--hub-map-accent:#a8ff4f;--hub-map-tint:rgba(168,255,79,.10);--hub-map-glow:rgba(168,255,79,.16)}.hub-map-scroll[data-hub-stage="3"]{--hub-map-accent:#d8a8ff;--hub-map-tint:rgba(194,124,255,.11);--hub-map-glow:rgba(194,124,255,.16)}.hub-map-scroll[data-hub-stage="4"]{--hub-map-accent:#ffcf72;--hub-map-tint:rgba(255,195,80,.10);--hub-map-glow:rgba(255,195,80,.15)}.hub-map-scroll[data-hub-stage="5"]{--hub-map-accent:#ff8c83;--hub-map-tint:rgba(255,119,105,.10);--hub-map-glow:rgba(255,119,105,.15)}.hub-map-scroll[data-hub-stage="6"]{--hub-map-accent:#82ffd2;--hub-map-tint:rgba(72,238,184,.10);--hub-map-glow:rgba(72,238,184,.15)}.hub-map-scroll[data-hub-stage="7"]{--hub-map-accent:#f3f7f5;--hub-map-tint:rgba(243,247,245,.08);--hub-map-glow:rgba(243,247,245,.12)}@media(max-width:768px){.hub-map-scroll__indicator{height:27px;gap:10px;font-size:7px}.hub-map a.is-active{box-shadow:inset 3px 0 0 var(--hub-map-accent,var(--p2-signal))}}@media(prefers-reduced-motion:reduce){.hub-map-scroll__indicator i b,.hub-map a,.hub-map a::before{transition:none}}


/* SOURCE: assets/css/interaction-affordance.css */
/* Shared affordance language: every action has a visible direction and a tactile state. */
.design-r0 a[href],.design-r0 button:not(:disabled){cursor:pointer}.design-r0 a:focus-visible,.design-r0 button:focus-visible,.design-r0 summary:focus-visible{outline:2px solid var(--p2-signal);outline-offset:4px}
.sub-next{background:linear-gradient(90deg,rgba(168,255,79,.035),transparent 48%)}.sub-next__inner{padding:18px 0;border-top:1px solid var(--p2-line);border-bottom:1px solid var(--p2-line)}.sub-next a{position:relative;min-height:76px;padding:17px 58px 17px 22px;display:flex;align-items:center;border:1px solid #526159;background:#0a100e;transition:transform .28s var(--p2-ease),background .28s var(--p2-ease),border-color .28s var(--p2-ease),color .28s var(--p2-ease)}.sub-next a::after{content:"OPEN ↗";position:absolute;right:20px;bottom:17px;color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.sub-next a:hover{color:#071008;border-color:var(--p2-signal);background:var(--p2-signal);transform:translateX(5px)}.sub-next a:hover span,.sub-next a:hover::after{color:#071008}
.hub-map a,.p2-architecture__grid a,.howto-role-switch a,.site-footer__policy-link{isolation:isolate}.hub-map a::selection,.p2-architecture__grid a::selection{background:transparent}.hub-map a:hover,.hub-map a:focus-visible{box-shadow:0 16px 34px rgba(0,0,0,.18);z-index:2;transform:none}.p2-architecture__grid a:hover,.p2-architecture__grid a:focus-visible,.howto-role-switch a:hover,.howto-role-switch a:focus-visible{transform:translateY(-5px);box-shadow:0 16px 34px rgba(0,0,0,.18);z-index:2}.hub-map a:focus-visible,.p2-architecture__grid a:focus-visible,.howto-role-switch a:focus-visible{outline-offset:-4px}
.p2-button,.design-r0 .btn,.p2-text-link,.p2-hero__detail,.howto-step__link,.howto-progress-cta,.site-footer__policy-link{transition:transform .24s var(--p2-ease),box-shadow .24s var(--p2-ease),border-color .24s var(--p2-ease),background .24s var(--p2-ease)}.p2-button:hover,.design-r0 .btn:hover,.howto-progress-cta:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.22)}.p2-text-link:hover,.p2-hero__detail:hover,.howto-step__link:hover{border-color:var(--p2-signal);color:var(--p2-signal)}.p2-text-link:hover span,.p2-hero__detail:hover span,.howto-step__link:hover span{transform:translateX(4px)}.p2-text-link span,.p2-hero__detail span,.howto-step__link span{display:inline-block;transition:transform .24s var(--p2-ease)}
@media(max-width:768px){.sub-next__inner{padding:14px 0}.sub-next a{width:100%;min-height:70px;padding:16px 48px 16px 17px}.sub-next a::after{right:15px;bottom:14px}.hub-map a:hover,.p2-architecture__grid a:hover,.howto-role-switch a:hover{transform:none}.p2-button:active,.design-r0 .btn:active,.sub-next a:active,.howto-progress-cta:active{transform:scale(.98)}}
@media(prefers-reduced-motion:reduce){.sub-next a,.hub-map a,.p2-architecture__grid a,.howto-role-switch a,.p2-button,.design-r0 .btn,.p2-text-link,.p2-hero__detail,.howto-step__link,.howto-progress-cta,.site-footer__policy-link,.p2-text-link span,.p2-hero__detail span,.howto-step__link span{transition:none}}


/* SOURCE: assets/css/compare-stage.css */
.versus-route{position:relative;isolation:isolate;overflow:hidden;background-color:#070b0d}
.versus-route::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(7,11,13,.8),transparent 14%,transparent 86%,rgba(7,11,13,.8))}
.versus-route canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;display:block}
.versus-route__fallback{position:relative;z-index:3;transition:opacity .25s ease}
.versus-route.is-enhanced .versus-route__fallback{opacity:0}
.versus-route__legend{position:absolute;z-index:4;left:16px;right:16px;bottom:13px;display:flex;justify-content:space-between;color:#74837b;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.12em;pointer-events:none}
.versus-route .versus-route__legend span{padding:0;background:transparent;color:inherit;font:inherit}
.versus__side--win .versus-route__legend{color:#91aa9d}
@media(max-width:768px){.versus-route__legend{left:12px;right:12px;bottom:10px;font-size:6px}.versus-route::after{background:linear-gradient(90deg,rgba(7,11,13,.65),transparent 12%,transparent 88%,rgba(7,11,13,.65))}}
@media(prefers-reduced-motion:reduce){.versus-route canvas{opacity:.82}}


/* SOURCE: assets/css/howto.css */
.howto-intro{padding-bottom:0}.howto-role-switch{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--p2-line);background:var(--p2-line);gap:1px}.howto-role-switch a{min-height:150px;padding:28px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:8px 24px;background:#090d0f;transition:.3s var(--p2-ease)}.howto-role-switch a:hover{background:#0d1511}.howto-role-switch span{grid-row:1/3;color:var(--p2-signal);font:600 10px/1 "JetBrains Mono",monospace}.howto-role-switch strong{align-self:end;color:var(--p2-paper);font-size:26px;font-weight:500}.howto-role-switch small{color:#718078;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}
.howto-progress-cta{min-height:82px;margin-top:1px;padding:20px 28px;display:grid;grid-template-columns:170px 1fr auto;gap:24px;align-items:center;border:1px solid var(--p2-line);background:#0b130e;color:var(--p2-paper);transition:.3s var(--p2-ease)}.howto-progress-cta:hover{border-color:#3f5f4d;background:#0e1912}.howto-progress-cta span{color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.howto-progress-cta strong{font-size:15px;font-weight:500}.howto-progress-cta i{color:var(--p2-signal);font-style:normal}
.howto-flow{scroll-margin-top:150px}.howto-flow--receiver{background:#080c0e}.howto-flow__head{display:grid;grid-template-columns:1fr minmax(280px,.55fr);gap:40px;align-items:end;margin-bottom:52px}.howto-flow__head h2{margin:12px 0 0}.howto-flow__head>p{margin:0;color:var(--p2-copy);font-size:14px;line-height:1.8}
.howto-steps{margin:0;padding:0;list-style:none;border:1px solid var(--p2-line)}.howto-steps>li{position:relative;min-height:180px;display:grid;grid-template-columns:92px minmax(0,1fr) minmax(180px,.42fr);background:#090d0f;border-bottom:1px solid var(--p2-line);overflow:hidden}.howto-steps>li:last-child{border-bottom:0}.howto-step__index{position:relative;padding:28px 0;text-align:center;border-right:1px solid var(--p2-line);color:#748078;font:600 9px/1 "JetBrains Mono",monospace}.howto-step__index i{position:absolute;left:50%;top:58px;bottom:-1px;width:1px;background:linear-gradient(var(--p2-signal),var(--p2-line))}.howto-step__index i::before{content:"";position:absolute;top:0;left:-3px;width:7px;height:7px;border:1px solid var(--p2-signal);border-radius:50%;background:#090d0f}.howto-steps>li:last-child .howto-step__index i{bottom:50%;background:var(--p2-signal)}.howto-step__body{align-self:center;padding:34px 38px}.howto-step__body em{color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.howto-step__body h3{margin:14px 0 10px;color:var(--p2-paper);font-size:25px;font-weight:500;letter-spacing:-.04em}.howto-step__body p{max-width:680px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.8}.howto-step__link{width:max-content;margin-top:18px;padding:0 0 6px;display:flex;gap:18px;align-items:center;border:0;border-bottom:1px solid #435048;background:none;color:var(--p2-paper);font:600 10px/1.2 "Noto Sans JP",sans-serif;cursor:pointer}.howto-step__link span{color:var(--p2-signal)}
.howto-step__signal,.howto-step__code,.howto-network,.howto-step__complete,.howto-reassemble{min-height:100%;display:grid;place-items:center;border-left:1px solid var(--p2-line);background:radial-gradient(circle at 50%,rgba(155,255,63,.09),transparent 48%)}.howto-step__signal span{width:72px;height:72px;border:1px solid #4f665a;border-radius:50%;box-shadow:0 0 0 14px rgba(155,255,63,.025),0 0 36px rgba(155,255,63,.08);animation:howtoPulse 2.6s ease-in-out infinite}.howto-step__signal span::after{content:"";display:block;width:7px;height:7px;margin:31px;border-radius:50%;background:var(--p2-signal);box-shadow:0 0 14px var(--p2-signal)}.howto-step__code{color:var(--p2-signal);font:600 14px/1 "JetBrains Mono",monospace;letter-spacing:.18em}.howto-network{display:flex;gap:7px;align-items:center;justify-content:center}.howto-network span{padding:10px 12px;border:1px solid var(--p2-line-hi);color:#68746e;font:600 8px/1 "JetBrains Mono",monospace}.howto-network .is-active{border-color:var(--p2-signal);background:var(--p2-signal);color:#07100b}.howto-step__complete{color:var(--p2-signal);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.howto-step__complete span{width:32px;height:32px;display:grid;place-items:center;margin-left:10px;border-radius:50%;border:1px solid var(--p2-signal)}
.howto-qr{grid-column:1/-1;max-height:0;display:grid;grid-template-columns:184px 1fr;gap:28px;align-items:center;padding:0 38px 0 130px;background:#0b120e;overflow:hidden;opacity:0;transition:max-height .45s var(--p2-ease),padding .45s var(--p2-ease),opacity .25s}.howto-qr.is-open{max-height:290px;padding-top:28px;padding-bottom:28px;opacity:1}.howto-qr canvas{width:184px;height:184px;padding:9px;background:#eff6f1}.howto-qr strong{display:block;color:var(--p2-signal);font:600 10px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.howto-qr p{max-width:550px;margin:14px 0;color:var(--p2-copy);font-size:13px;line-height:1.75}.howto-qr small{color:#65736c;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}
.howto-reassemble{position:relative;display:flex;gap:8px}.howto-reassemble i{width:5px;height:5px;border-radius:50%;background:#70f6d3;box-shadow:0 0 8px #70f6d3;animation:howtoGather 2.5s ease-in-out infinite}.howto-reassemble span{width:15px;height:15px;margin-left:18px;border:1px solid var(--p2-signal);border-radius:50%;box-shadow:0 0 16px rgba(155,255,63,.3)}.howto-reassemble::after{content:"";position:absolute;width:90px;height:1px;background:linear-gradient(90deg,#70f6d3,var(--p2-signal));opacity:.4}
@keyframes howtoPulse{50%{transform:scale(.88);box-shadow:0 0 0 24px rgba(155,255,63,0),0 0 50px rgba(155,255,63,.16)}}@keyframes howtoGather{50%{transform:translateX(19px) scale(.6);opacity:.55}}
@media(max-width:900px){.howto-flow__head{grid-template-columns:1fr}.howto-steps>li{grid-template-columns:66px minmax(0,1fr)}.howto-step__signal,.howto-step__code,.howto-network,.howto-step__complete,.howto-reassemble{grid-column:2;min-height:105px;border-top:1px solid var(--p2-line);border-left:0}.howto-qr{grid-column:1/-1;padding-left:94px}.howto-qr.is-open{padding-left:94px}.howto-step__index{grid-row:1/3}}
@media(max-width:768px){.howto-role-switch{grid-template-columns:1fr}.howto-role-switch a{min-height:112px;padding:20px}.howto-role-switch strong{font-size:21px}.howto-progress-cta{padding:18px 20px;grid-template-columns:1fr auto;gap:8px 16px}.howto-progress-cta span{grid-column:1/-1}.howto-progress-cta strong{font-size:13px}.howto-flow__head{gap:16px;margin-bottom:30px}.howto-flow__head>p{font-size:13px}.howto-steps>li{grid-template-columns:48px minmax(0,1fr);min-height:0}.howto-step__index{padding-top:23px}.howto-step__index i{top:50px}.howto-step__body{padding:24px 20px 25px}.howto-step__body h3{font-size:21px}.howto-step__body p{font-size:12px;line-height:1.75}.howto-step__link{font-size:10px}.howto-step__signal,.howto-step__code,.howto-network,.howto-step__complete,.howto-reassemble{min-height:84px}.howto-step__signal span{width:52px;height:52px}.howto-step__signal span::after{margin:21px}.howto-qr,.howto-qr.is-open{grid-template-columns:1fr;padding-left:68px;padding-right:20px;gap:18px}.howto-qr canvas{width:150px;height:150px}.howto-qr.is-open{max-height:480px}.howto-qr p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.howto-step__signal span,.howto-reassemble i{animation:none}}


/* SOURCE: assets/css/send-flow.css */
.design-r0.view-launder-start .app-main{width:min(calc(100% - 32px),1120px);max-width:1120px;padding-top:48px}
.send-console{border:1px solid var(--p2-line);background:#080c0e;box-shadow:0 34px 90px rgba(0,0,0,.25)}
.send-console__head{min-height:220px;padding:38px 42px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:end;border-bottom:1px solid var(--p2-line);background:radial-gradient(circle at 88% 18%,rgba(112,246,211,.08),transparent 27%),linear-gradient(120deg,rgba(155,255,63,.025),transparent 45%)}
.send-console__head h1{margin:9px 0 14px;color:var(--p2-paper);font:500 clamp(36px,5vw,62px)/1 "Noto Sans JP",sans-serif;letter-spacing:-.07em}.send-console__head p:not(.app-kicker){max-width:650px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.8}
.send-console__status{align-self:start;display:flex;gap:9px;align-items:center;color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.11em}.send-console__status span{width:7px;height:7px;background:var(--p2-signal);box-shadow:0 0 12px var(--p2-signal)}
.send-wizard{margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);list-style:none;border-bottom:1px solid var(--p2-line);background:var(--p2-line);gap:1px}.send-wizard li{min-height:72px;padding:14px;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;background:#090d0f;color:#5e6a64}.send-wizard li span{font:600 7px/1 "JetBrains Mono",monospace}.send-wizard li strong{font-size:10px;font-weight:500}.send-wizard li.is-current{color:#07100b;background:var(--p2-signal)}.send-wizard li.is-done{color:#a4b1aa;background:#0e1712}.send-wizard li.is-done span{color:var(--p2-signal)}
.send-console>.alert{margin:24px 42px 0}.send-stage{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(350px,.72fr);min-height:470px}.send-stage__copy{padding:52px 42px;align-self:center}.send-stage__copy>span{color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.send-stage__copy h2{margin:17px 0 15px!important;color:var(--p2-paper);font-size:32px!important;font-weight:500!important}.send-stage__copy>p{max-width:610px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.85}
.send-form{align-self:center;margin:42px;padding:31px;border:1px solid var(--p2-line);background:#0a0f11}.send-form label:not(.password-mode label){color:#89968f;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.send-form input,.send-form select{min-height:56px!important;border-radius:0!important;background:#070a0c!important;color:#fff!important;border:1px solid var(--p2-line-hi)!important;-webkit-text-fill-color:#fff}.send-form select option{color:#07100b;background:#fff}.send-form input::placeholder{color:#65736b;-webkit-text-fill-color:#65736b}.send-form .btn,.send-wallet-panel .btn,.send-confirm-panel .btn{min-height:54px;border-radius:0!important;background:var(--p2-signal)!important;border-color:var(--p2-signal)!important;color:#07100b!important;justify-content:space-between!important}
.password-mode{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:24px;background:var(--p2-line);border:1px solid var(--p2-line)}.password-mode label{cursor:pointer}.password-mode input{position:absolute;opacity:0;pointer-events:none}.password-mode span{min-height:49px;display:grid;place-items:center;background:#090d0f;color:#7d8983;font-size:12px}.password-mode input:checked+span{background:var(--p2-signal);color:#07100b}.password-manual small{display:block;margin-top:9px;color:#66736c;font-size:10px;line-height:1.5}.password-manual small.is-valid{color:var(--p2-signal)}.password-rules{max-width:500px;margin:27px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;list-style:none;background:var(--p2-line);border:1px solid var(--p2-line)}.password-rules li{padding:13px 15px;background:#090d0f;color:#839087;font:500 9px/1.3 "JetBrains Mono",monospace}.password-rules li::before{content:"+";margin-right:9px;color:var(--p2-signal)}
.send-wallet-panel{padding:39px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid var(--p2-line);background:#07100b}.send-wallet-panel canvas{width:min(216px,100%);height:auto;padding:12px;background:#eff6f1;border:1px solid #506259}.send-wallet-panel>strong{margin-top:22px;color:var(--p2-signal);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.send-wallet-panel>small{margin-top:9px;color:#647169;font:600 7px/1.4 "JetBrains Mono",monospace;letter-spacing:.08em;text-align:center}.send-wallet-panel form{width:100%;margin-top:28px}.send-session-meta{margin:30px 0 0;border:1px solid var(--p2-line)}.send-session-meta div{min-width:0;padding:15px;background:#090d0f}.send-session-meta div+div{border-top:1px solid var(--p2-line)}.send-session-meta dt{margin-bottom:8px;color:#5e6b64;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.send-session-meta dd{margin:0;overflow-wrap:anywhere;color:#c1ccc6;font:500 11px/1.4 "JetBrains Mono",monospace}
.send-connected{width:max-content;max-width:100%;margin-top:28px;padding:14px 17px;display:flex;gap:13px;align-items:center;border:1px solid #294333;background:#0b1510}.send-connected>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--p2-signal);color:#07100b}.send-connected strong,.send-connected small{display:block;font:600 8px/1.3 "JetBrains Mono",monospace}.send-connected strong{color:var(--p2-signal)}.send-connected small{margin-top:5px;color:#66736c}.send-amount-input{position:relative}.send-amount-input input{padding-right:75px!important}.send-amount-input>span{position:absolute;right:17px;top:50%;transform:translateY(-50%);color:#65736b;font:600 9px/1 "JetBrains Mono",monospace}
.send-estimate{margin-top:31px;border:1px solid var(--p2-line)}.send-estimate div{padding:18px;background:#090d0f}.send-estimate small{display:block;margin-bottom:8px;color:#657169;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.send-estimate strong{color:#c6d0ca;font-size:22px}.send-estimate>span{display:block;padding:11px 18px;border-block:1px solid var(--p2-line);color:#79857e;font:500 9px/1 "JetBrains Mono",monospace}.send-estimate .is-net{background:#0d1711}.send-estimate .is-net strong{color:var(--p2-signal);font-size:29px}
.send-confirm-panel,.send-share-panel{padding:39px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--p2-line);background:#090e10}.send-confirm-panel dl,.send-share-panel dl{margin:0;border:1px solid var(--p2-line)}.send-confirm-panel dl div,.send-share-panel dl div{padding:15px;background:#080c0e}.send-confirm-panel dl div+div,.send-share-panel dl div+div{border-top:1px solid var(--p2-line)}.send-confirm-panel dt,.send-share-panel dt{margin-bottom:7px;color:#66736c;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.send-confirm-panel dd,.send-share-panel dd{margin:0;overflow-wrap:anywhere;color:#c5cfc9;font:500 10px/1.5 "JetBrains Mono",monospace}.send-confirm-panel form{margin-top:27px}
.share-password{margin-top:30px;padding:20px;border:1px solid #34523f;background:#0b1510}.share-password small{display:block;margin-bottom:12px;color:#6d7a72;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.share-password strong{display:block;color:var(--p2-signal);font:600 clamp(18px,3vw,27px)/1.2 "JetBrains Mono",monospace;letter-spacing:.08em;overflow-wrap:anywhere}.share-password button{margin-top:17px;padding:7px 12px;border:1px solid #3d5146;background:transparent;color:#a8b4ad;font-size:10px;cursor:pointer}.share-password button.is-copied{border-color:var(--p2-signal);color:var(--p2-signal)}.share-actions{margin-top:20px;display:flex;gap:8px;flex-wrap:wrap}.share-actions .btn{border-radius:0!important}.send-share-panel{align-items:center;background:#07100b}.send-share-mark{width:112px;height:112px;margin-bottom:23px;display:grid;place-items:center;border:1px solid var(--p2-signal);border-radius:50%;box-shadow:0 0 45px rgba(155,255,63,.12)}.send-share-mark span{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:var(--p2-signal);color:#07100b;font-size:20px}.send-share-panel>strong{margin-bottom:24px;color:var(--p2-signal);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.send-share-panel dl{width:100%}.send-reset{padding:0 42px 34px}.send-reset button{padding:0 0 5px;border:0;border-bottom:1px solid #3a4740;background:none;color:#77847d;font-size:11px;cursor:pointer}
@media(max-width:768px){.design-r0.view-launder-start .app-main{width:calc(100% - 40px);padding-top:34px}.send-console__head{min-height:0;padding:28px 22px;grid-template-columns:1fr;gap:22px}.send-console__head h1{font-size:35px;line-height:1.08}.send-console__status{grid-row:1}.send-wizard{grid-template-columns:1fr 1fr}.send-wizard li{min-height:55px;padding:12px}.send-stage{grid-template-columns:1fr;min-height:0}.send-stage__copy{padding:36px 22px}.send-stage__copy h2{font-size:26px!important}.send-form{margin:0 22px 32px;padding:22px}.password-rules{grid-template-columns:1fr}.send-wallet-panel,.send-confirm-panel,.send-share-panel{min-height:345px;padding:32px 22px;border-left:0;border-top:1px solid var(--p2-line)}.send-reset{padding:25px 22px 30px}.send-console>.alert{margin:20px 22px 0}.send-estimate .is-net strong{font-size:25px}.share-actions{display:grid}.share-actions .btn{width:100%}}


/* SOURCE: assets/css/receive-flow.css */
.design-r0.view-launder-withdraw .app-main{width:min(calc(100% - 32px),1080px);max-width:1080px;padding-top:48px}
.receive-console{border:1px solid var(--p2-line);background:#080c0e;box-shadow:0 34px 90px rgba(0,0,0,.25)}
.receive-console__head{min-height:220px;padding:38px 42px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:end;border-bottom:1px solid var(--p2-line);background:radial-gradient(circle at 88% 18%,rgba(155,255,63,.08),transparent 27%),linear-gradient(120deg,rgba(112,246,211,.025),transparent 45%)}
.receive-console__head h1{margin:9px 0 14px;color:var(--p2-paper);font:500 clamp(36px,5vw,62px)/1 "Noto Sans JP",sans-serif;letter-spacing:-.07em}
.receive-console__head p:not(.app-kicker){max-width:650px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.8}
.receive-console__status{align-self:start;display:flex;gap:9px;align-items:center;color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.11em}
.receive-console__status span{width:7px;height:7px;background:var(--p2-signal);box-shadow:0 0 12px var(--p2-signal)}
.receive-wizard{margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);list-style:none;border-bottom:1px solid var(--p2-line);background:var(--p2-line);gap:1px}
.receive-wizard li{min-height:76px;padding:17px 20px;display:flex;gap:14px;align-items:center;background:#090d0f;color:#5e6a64}
.receive-wizard li span{font:600 8px/1 "JetBrains Mono",monospace}.receive-wizard li strong{font-size:12px;font-weight:500}
.receive-wizard li.is-current{color:#07100b;background:var(--p2-signal)}.receive-wizard li.is-done{color:#a4b1aa;background:#0e1712}.receive-wizard li.is-done span{color:var(--p2-signal)}
.receive-console>.alert{margin:24px 42px 0}
.receive-stage{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.7fr);min-height:440px}
.receive-stage__copy{padding:52px 42px;align-self:center}.receive-stage__copy>span{color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.receive-stage__copy h2{margin:17px 0 15px!important;color:var(--p2-paper);font-size:32px!important;font-weight:500!important}.receive-stage__copy>p{max-width:570px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.85}
.receive-form{align-self:center;margin:42px;padding:31px;border:1px solid var(--p2-line);background:#0a0f11}.receive-form label{color:#89968f;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.receive-form input,.receive-form select{min-height:56px!important;border-radius:0!important;background:#070a0c!important;color:#fff!important;border:1px solid var(--p2-line-hi)!important;-webkit-text-fill-color:#fff}.receive-form select option{color:#07100b;background:#fff}.receive-form input::placeholder{color:#65736b;-webkit-text-fill-color:#65736b}.receive-form .btn,.receive-wallet-panel .btn{min-height:54px;border-radius:0!important;background:var(--p2-signal)!important;border-color:var(--p2-signal)!important;color:#07100b!important;justify-content:space-between!important}
.receive-wallet-panel{padding:39px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid var(--p2-line);background:#07100b;min-width:0}.receive-wallet-panel canvas{width:min(216px,100%);height:auto;padding:12px;background:#eff6f1;border:1px solid #506259}.receive-wallet-panel>strong{margin-top:22px;color:var(--p2-signal);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.receive-wallet-panel>small{margin-top:9px;color:#647169;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.receive-wallet-panel form{width:100%;margin-top:28px}
.receive-session-meta{margin:32px 0 0;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--p2-line);background:var(--p2-line);gap:1px}.receive-session-meta div{min-width:0;padding:15px;background:#090d0f}.receive-session-meta dt{margin-bottom:8px;color:#5e6b64;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.receive-session-meta dd{margin:0;overflow:hidden;text-overflow:ellipsis;color:#c1ccc6;font:500 10px/1.3 "JetBrains Mono",monospace;white-space:nowrap}
.receive-connected-mark{width:112px;height:112px;display:grid;place-items:center;border:1px solid var(--p2-signal);border-radius:50%;box-shadow:0 0 0 20px rgba(155,255,63,.025),0 0 54px rgba(155,255,63,.11);animation:receiveConnected 2.8s ease-in-out infinite}.receive-connected-mark span{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:var(--p2-signal);color:#07100b;font-size:20px}.receive-wallet-address{max-width:100%;margin:16px 0 0;overflow:hidden;text-overflow:ellipsis;color:#8c9992;font:500 9px/1.5 "JetBrains Mono",monospace;white-space:nowrap}.receive-reset{padding:0 42px 34px}.receive-reset button{padding:0 0 5px;border:0;border-bottom:1px solid #3a4740;background:none;color:#77847d;font-size:11px;cursor:pointer}
.receive-progress-link{width:min(100%,290px);min-height:52px;margin-top:27px;border-radius:0!important;background:var(--p2-signal)!important;color:#07100b!important;justify-content:space-between!important}.receive-processing-orb{position:relative;width:150px;height:150px;display:grid;place-items:center}.receive-processing-orb i{position:absolute;inset:8px;border:1px solid rgba(155,255,63,.55);border-radius:50%;animation:receiveOrbit 5s linear infinite}.receive-processing-orb i:nth-child(2){inset:30px;border-color:rgba(112,246,211,.45);animation-duration:3s;animation-direction:reverse}.receive-processing-orb i::after{content:"";position:absolute;top:15%;left:8%;width:6px;height:6px;border-radius:50%;background:var(--p2-signal);box-shadow:0 0 12px var(--p2-signal)}.receive-processing-orb span{width:18px;height:18px;border-radius:50%;background:var(--p2-signal);box-shadow:0 0 26px rgba(155,255,63,.65)}
@keyframes receiveConnected{50%{transform:scale(.94);box-shadow:0 0 0 30px rgba(155,255,63,0),0 0 68px rgba(155,255,63,.16)}}
@keyframes receiveOrbit{to{transform:rotate(360deg)}}
.route-progress-card{margin:0 0 26px;padding:28px;border:1px solid var(--p2-line);background:#08100c}.route-progress-card__top{display:flex;justify-content:space-between;gap:20px;align-items:end}.route-progress-card__top span{color:#75837b;font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.route-progress-card__top strong{color:var(--p2-signal);font:500 30px/1 "JetBrains Mono",monospace}.route-progress-track{height:5px;margin:20px 0 17px;background:#1b2520;overflow:hidden}.route-progress-track span{display:block;width:var(--route-progress,0%);height:100%;background:linear-gradient(90deg,#70f6d3,var(--p2-signal));box-shadow:0 0 16px rgba(155,255,63,.35);transition:width 1s linear}.route-progress-card__meta{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--p2-line)}.route-progress-card__meta div{padding:14px;background:#090d0f}.route-progress-card__meta small{display:block;margin-bottom:7px;color:#657169;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.route-progress-card__meta b{color:#c5cfc9;font:500 11px/1.2 "JetBrains Mono",monospace}
@media(max-width:768px){.design-r0.view-launder-withdraw .app-main{width:calc(100% - 40px);padding-top:34px}.receive-console__head{min-height:0;padding:28px 22px;grid-template-columns:1fr;gap:22px}.receive-console__head h1{font-size:35px;line-height:1.08}.receive-console__status{grid-row:1}.receive-wizard{grid-template-columns:1fr 1fr}.receive-wizard li{min-height:58px;padding:13px 14px}.receive-stage{grid-template-columns:1fr;min-height:0}.receive-stage__copy{padding:36px 22px}.receive-stage__copy h2{font-size:26px!important}.receive-form{margin:0 22px 32px;padding:22px}.receive-wallet-panel{min-height:355px;padding:32px 22px;border-left:0;border-top:1px solid var(--p2-line)}.receive-session-meta{grid-template-columns:1fr}.receive-reset{padding:25px 22px 30px}.receive-console>.alert{margin:20px 22px 0}.route-progress-card{padding:20px}.route-progress-card__top strong{font-size:24px}.route-progress-card__meta{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.receive-connected-mark,.receive-processing-orb i{animation:none}.route-progress-track span{transition:none}}

.design-r0.view-progress .app-main{width:min(calc(100% - 32px),1120px);max-width:1120px;padding-top:48px}
.progress-console{overflow:hidden;border:1px solid var(--p2-line);background:#080c0e;box-shadow:0 34px 90px rgba(0,0,0,.25)}
.progress-console__head{min-height:220px;padding:38px 42px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:end;border-bottom:1px solid var(--p2-line);background:radial-gradient(circle at 87% 16%,rgba(155,255,63,.09),transparent 27%),linear-gradient(120deg,rgba(112,246,211,.03),transparent 48%)}
.progress-console__head h1{margin:9px 0 14px;color:var(--p2-paper);font:500 clamp(36px,5vw,62px)/1 "Noto Sans JP",sans-serif;letter-spacing:-.07em}.progress-console__head p:not(.app-kicker){max-width:660px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.8}
.progress-console__signal{align-self:start;display:flex;align-items:center;gap:10px;color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.progress-console__signal i{width:7px;height:7px;background:var(--p2-signal);box-shadow:0 0 15px var(--p2-signal);animation:progressSignal 1.8s ease-in-out infinite}
.progress-lookup{min-height:390px;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.72fr)}.progress-lookup__copy{padding:52px 42px;align-self:center}.progress-lookup__copy>span,.progress-waiting>div>span{color:var(--p2-signal);font:600 8px/1 "JetBrains Mono",monospace;letter-spacing:.12em}.progress-lookup__copy h2,.progress-waiting h2{margin:17px 0 15px;color:var(--p2-paper);font-size:32px;font-weight:500}.progress-lookup__copy p,.progress-waiting p{max-width:570px;margin:0;color:var(--p2-copy);font-size:13px;line-height:1.85}
.progress-lookup__form{align-self:center;margin:42px;padding:31px;border:1px solid var(--p2-line);background:#0a0f11}.progress-lookup__form label{color:#89968f;font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.progress-lookup__form input{min-height:56px!important;border-radius:0!important;background:#070a0c!important;color:#fff!important;border:1px solid var(--p2-line-hi)!important;-webkit-text-fill-color:#fff}.progress-lookup__form input::placeholder{color:#65736b;-webkit-text-fill-color:#65736b}.progress-lookup__form .btn{min-height:54px;border-radius:0!important;background:var(--p2-signal)!important;border-color:var(--p2-signal)!important;color:#07100b!important;justify-content:space-between!important}.progress-lookup__form .alert{margin:0 0 18px}
.progress-session-bar{min-height:72px;padding:14px 22px 14px 42px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--p2-line);background:#0a0f11}.progress-session-bar div{display:flex;align-items:center;gap:16px}.progress-session-bar small{color:#607068;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.1em}.progress-session-bar strong{color:#b8c6be;font:500 11px/1 "JetBrains Mono",monospace}.progress-session-bar button{padding:8px 0;border:0;border-bottom:1px solid #46544d;background:none;color:#86938c;font-size:10px;cursor:pointer}
.progress-waiting{min-height:410px;padding:52px 42px;display:grid;grid-template-columns:250px minmax(0,1fr);align-items:center;gap:54px}.progress-waiting__visual{position:relative;width:210px;height:210px;display:grid;place-items:center;border:1px solid #1d2a24;background:radial-gradient(circle,rgba(155,255,63,.1),transparent 60%)}.progress-waiting__visual::before,.progress-waiting__visual::after{content:"";position:absolute;inset:34px;border:1px solid rgba(112,246,211,.28);border-radius:50%;animation:receiveOrbit 8s linear infinite}.progress-waiting__visual::after{inset:63px;border-color:rgba(155,255,63,.42);animation-direction:reverse;animation-duration:4s}.progress-waiting__visual i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--p2-signal);box-shadow:0 0 12px var(--p2-signal)}.progress-waiting__visual i:first-child{transform:translate(-68px,-10px)}.progress-waiting__visual i:nth-child(2){transform:translate(57px,42px)}.progress-waiting__visual span{width:15px;height:15px;border-radius:50%;background:var(--p2-signal);box-shadow:0 0 30px rgba(155,255,63,.65)}.progress-waiting__meta{width:min(100%,390px);margin-top:25px;padding-top:18px;display:flex;justify-content:space-between;border-top:1px solid var(--p2-line)}.progress-waiting__meta small{color:#6c7a72;font:600 8px/1 "JetBrains Mono",monospace}.progress-waiting__meta strong{color:var(--p2-paper);font:500 12px/1 "JetBrains Mono",monospace}
.progress-live-grid{padding:34px 42px 42px;display:grid;grid-template-columns:minmax(0,1fr) minmax(315px,.62fr);gap:22px}.progress-live-main{min-width:0}.progress-live-grid .route-progress-card{margin:0}.progress-job-meta{margin-top:22px;display:grid;grid-template-columns:1.4fr .7fr .9fr;gap:1px;background:var(--p2-line)}.progress-job-meta div{min-width:0;padding:17px;background:#090d0f}.progress-job-meta small{display:block;margin-bottom:8px;color:#627068;font:600 7px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.progress-job-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;color:#b9c5bf;font:500 10px/1.3 "JetBrains Mono",monospace;white-space:nowrap}
.progress-route-steps{margin:0;padding:0;list-style:none;border:1px solid var(--p2-line);background:#090d0f}.progress-route-steps li{min-height:62px;padding:12px 15px;display:grid;grid-template-columns:30px minmax(0,1fr);gap:13px;align-items:center;border-bottom:1px solid var(--p2-line);color:#58655e}.progress-route-steps li:last-child{border-bottom:0}.progress-route-steps li>span{width:28px;height:28px;display:grid;place-items:center;border:1px solid #28342e;border-radius:50%;font:600 7px/1 "JetBrains Mono",monospace}.progress-route-steps small{display:block;margin-bottom:5px;color:#4d5a53;font:600 6px/1 "JetBrains Mono",monospace;letter-spacing:.08em}.progress-route-steps strong{display:block;font-size:10px;font-weight:500;line-height:1.35}.progress-route-steps li.current{background:#0d1811;color:var(--p2-paper)}.progress-route-steps li.current>span{border-color:var(--p2-signal);color:#07100b;background:var(--p2-signal);box-shadow:0 0 18px rgba(155,255,63,.18)}.progress-route-steps li.done{color:#87958d}.progress-route-steps li.done>span{border-color:#3a7056;color:var(--p2-signal)}
@keyframes progressSignal{50%{opacity:.35;box-shadow:0 0 4px var(--p2-signal)}}
@media(max-width:768px){.design-r0.view-progress .app-main{width:calc(100% - 40px);padding-top:34px}.progress-console__head{min-height:0;padding:28px 22px;grid-template-columns:1fr;gap:22px}.progress-console__head h1{font-size:35px;line-height:1.08}.progress-console__signal{grid-row:1}.progress-lookup{min-height:0;grid-template-columns:1fr}.progress-lookup__copy{padding:36px 22px 18px}.progress-lookup__copy h2,.progress-waiting h2{font-size:26px}.progress-lookup__form{margin:12px 22px 32px;padding:22px}.progress-session-bar{padding:14px 18px;align-items:flex-start}.progress-session-bar div{gap:8px;flex-direction:column;align-items:flex-start}.progress-waiting{min-height:0;padding:36px 22px;grid-template-columns:1fr;gap:32px}.progress-waiting__visual{width:180px;height:180px;margin:auto}.progress-live-grid{padding:24px 18px 32px;grid-template-columns:1fr}.progress-job-meta{grid-template-columns:1fr}.progress-route-steps strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){.progress-console__signal i,.progress-waiting__visual::before,.progress-waiting__visual::after{animation:none}}


/* SOURCE: assets/css/policy.css */
.policy-page{background:var(--p2-bg)}
.policy-hero .sub-hero__aside{align-self:end}
.policy-principles{padding-top:120px}
.policy-principles__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--p2-line);border-left:1px solid var(--p2-line)}
.policy-principles__grid article{position:relative;min-height:310px;padding:34px 36px;border-right:1px solid var(--p2-line);border-bottom:1px solid var(--p2-line);background:linear-gradient(145deg,rgba(168,255,79,.025),transparent 52%),#080c0e;overflow:hidden}
.policy-principles__grid article::after{content:"";position:absolute;right:-90px;bottom:-90px;width:190px;height:190px;border:1px solid rgba(168,255,79,.08);border-radius:50%}
.policy-principles__grid em{color:#56625c;font:600 8px/1 "JetBrains Mono",monospace;font-style:normal}
.policy-principles__grid strong{display:block;margin:58px 0 15px;color:var(--p2-signal);font:600 9px/1 "JetBrains Mono",monospace;letter-spacing:.12em}
.policy-principles__grid h3{max-width:20em;margin:0 0 16px;color:#d8e1dc;font-size:clamp(20px,2vw,28px);font-weight:500;line-height:1.35;letter-spacing:-.025em}
.policy-principles__grid p{position:relative;z-index:1;max-width:47em;margin:0;color:#7f8b85;font-size:12px;line-height:2}
.policy-boundary{padding-top:40px}
.policy-boundary__grid{display:grid;grid-template-columns:minmax(250px,.78fr) minmax(0,1.5fr);gap:clamp(60px,9vw,150px)}
.policy-boundary header{position:sticky;top:145px;align-self:start}
.policy-boundary header h2{margin:24px 0;color:var(--p2-paper);font-size:clamp(46px,5.3vw,76px);font-weight:500;line-height:.94;letter-spacing:-.065em}
.policy-boundary header p{max-width:350px;margin:0;color:#7d8983;font-size:13px;line-height:1.9}
.policy-boundary__list{margin:0;border-top:1px solid var(--p2-line)}
.policy-boundary__list>div{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,1.3fr);gap:28px;padding:30px 0;border-bottom:1px solid var(--p2-line)}
.policy-boundary__list dt{color:#69756f;font:600 8px/1.4 "JetBrains Mono",monospace;letter-spacing:.1em}
.policy-boundary__list dt span{display:block;margin-bottom:22px;color:var(--p2-signal)}
.policy-boundary__list dd{margin:0}
.policy-boundary__list dd strong{display:block;margin-bottom:12px;color:#d2dcd6;font-size:16px;font-weight:500}
.policy-boundary__list dd p{margin:0;color:#78847e;font-size:11px;line-height:1.9}
@media(max-width:900px){.policy-principles__grid{grid-template-columns:1fr}.policy-principles__grid article{min-height:270px}.policy-boundary__grid{grid-template-columns:1fr;gap:50px}.policy-boundary header{position:static}}
@media(max-width:768px){.policy-principles{padding-top:82px}.policy-principles__grid article{min-height:0;padding:27px 23px}.policy-principles__grid strong{margin-top:40px}.policy-principles__grid h3{font-size:21px}.policy-principles__grid p{font-size:11px;line-height:1.9}.policy-boundary{padding-top:24px}.policy-boundary header h2{font-size:48px}.policy-boundary__list>div{grid-template-columns:1fr;gap:18px;padding:25px 0}.policy-boundary__list dt span{display:inline;margin:0 12px 0 0}.policy-boundary__list dd strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){.policy-principles__grid article::after{display:none}}


/* SOURCE: assets/css/mobile-polish.css */
/* Final responsive pass: consistent gutters, type scale and component density. */
.site-header__nav-cta{display:none}
.risk-matrix>.risk-item:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:900px){
  .design-r0 .site-header__menu{position:relative;z-index:302;border-color:#344139;background:#0a0f0c;transition:border-color .25s,background .25s}
  .design-r0 .site-header__menu:hover,.design-r0.menu-open .site-header__menu{border-color:var(--p2-signal);background:#0e1711}
  .design-r0 .site-header__menu span{position:absolute;left:50%;width:18px;margin:0;transform:translateX(-50%)}
  .design-r0 .site-header__menu span:first-child{top:16px}.design-r0 .site-header__menu span:last-child{top:23px}
  .design-r0.menu-open .site-header__menu span:first-child{top:20px;transform:translateX(-50%) rotate(45deg)}
  .design-r0.menu-open .site-header__menu span:last-child{top:20px;transform:translateX(-50%) rotate(-45deg)}
  .design-r0 .site-header__nav{
    grid-column:1/-1;justify-self:stretch;counter-reset:mobile-nav;
    position:fixed;z-index:300;top:76px;right:0;bottom:auto;left:0;
    width:100%;min-width:100%;height:calc(100dvh - 106px);min-height:0;margin:0;padding:25px 24px max(38px,env(safe-area-inset-bottom));
    align-items:stretch;justify-content:flex-start;gap:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
    background:rgba(3,6,7,.992);background-image:linear-gradient(90deg,transparent 0,transparent calc(100% - 1px),rgba(155,255,63,.15) calc(100% - 1px)),radial-gradient(circle at 88% 12%,rgba(155,255,63,.09),transparent 28%);
    box-shadow:0 40px 90px rgba(0,0,0,.55);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .25s ease,transform .3s var(--p2-ease),visibility .3s;
  }
  .design-r0.menu-open .site-header__nav{opacity:1;visibility:visible;transform:none}
  .design-r0 .site-header__nav>a{counter-increment:mobile-nav;position:relative;width:100%;min-height:63px;padding:0 34px 0 44px;display:flex;align-items:center;border:0;border-bottom:1px solid var(--p2-line);color:#a4afa9;font-size:17px;letter-spacing:.08em}
  .design-r0 .site-header__nav>a::before{content:"0" counter(mobile-nav);position:absolute;left:4px;color:#58645e;font:500 8px/1 "JetBrains Mono",monospace;letter-spacing:.08em}
  .design-r0 .site-header__nav>a::after{content:"↗";position:absolute;right:4px;width:auto;height:auto;background:none;color:#526159;font:400 14px/1 Inter,sans-serif}
  .design-r0 .site-header__nav>a:hover,.design-r0 .site-header__nav>a:focus-visible,.design-r0 .site-header__nav>a.is-active{color:var(--p2-paper);background:linear-gradient(90deg,rgba(155,255,63,.075),transparent)}
  .design-r0 .site-header__nav>a.is-active::before,.design-r0 .site-header__nav>a.is-active::after{color:var(--p2-signal)}
  .site-header__nav-cta{display:grid;grid-template-columns:1fr 1.5fr;gap:8px;margin-top:auto;padding-top:28px}
  .design-r0 .site-header__nav-cta a{min-height:50px;padding:0 14px;display:flex;align-items:center;justify-content:center;border:1px solid var(--p2-line-hi);color:var(--p2-paper);font-size:10px;letter-spacing:.05em}
  .design-r0 .site-header__nav-cta a.is-launch{justify-content:space-between;border-color:var(--p2-signal);background:var(--p2-signal);color:#07100b}
  .design-r0.menu-open{overflow:hidden;touch-action:none}
}
@media(max-width:768px){
  :root{--p2-pad:24px}
  html{overflow-x:clip;scroll-padding-top:96px}
  body.design-r0{width:100%;overflow-x:clip}
  .design-r0 h1,.design-r0 h2,.design-r0 h3{text-wrap:balance;overflow-wrap:break-word}
  .design-r0 p,.design-r0 li,.design-r0 summary{text-wrap:pretty}
  html[lang="ja"] .design-r0 h1,html[lang="ja"] .design-r0 h2,html[lang="ja"] .design-r0 h3,html[lang="ja"] .design-r0 p{word-break:auto-phrase;line-break:strict}

  /* Shared horizontal rhythm */
  .p2-hero__inner,.p2-metrics,.sub-wrap,.sub-hero .sub-hero__grid,
  .design-r0 .protocol-section__inner,.design-r0 .hero__layout,
  .design-r0 .site-footer__inner,.design-r0 .site-footer__bottom,
  .design-r0 .app-main{width:calc(100% - 48px);max-width:none;margin-inline:auto}
  .design-r0 .site-header__inner,.design-r0 .protocol-status__inner{width:calc(100% - 2 * var(--p2-pad));margin-inline:auto}

  /* Header */
  .design-r0 .site-header__inner{gap:8px}
  .design-r0 .site-header__menu{width:40px;height:40px}
  .design-r0 .site-header__nav{top:64px;height:calc(100dvh - 94px);padding:18px 24px max(28px,env(safe-area-inset-bottom))}
  .design-r0 .site-header__nav>a{min-height:57px;padding-left:40px;font-size:15px}

  /* Home */
  .p2-hero__inner{padding:44px 0 34px;gap:30px}
  .p2-eyebrow,.p2-kicker{margin-bottom:18px;font-size:9px;line-height:1.45;letter-spacing:.1em}
  .p2-hero h1,html[data-language="ja"] .p2-hero h1{max-width:100%;font-size:clamp(38px,10.7vw,44px);line-height:1.08;letter-spacing:-.045em}
  .p2-hero__jp{margin-top:23px;font-size:16px;line-height:1.6;letter-spacing:-.02em}
  .p2-hero__lead{margin-top:11px;font-size:13px;line-height:1.75}
  .p2-actions{margin-top:25px;gap:8px}
  .p2-button{min-height:50px;padding-inline:16px}
  .p2-core{height:300px}
  .p2-core::before{inset:10px}
  .p2-core__hud{left:17px;right:17px;font-size:8px;letter-spacing:.08em}
  .p2-core__hud--top{top:18px}.p2-core__hud--bottom{bottom:18px}
  .p2-metrics{grid-template-columns:1fr 1fr}
  .p2-metrics>div{min-height:76px;padding:16px 13px}
  .p2-metrics span{margin-bottom:9px;font-size:8px;line-height:1.35;letter-spacing:.08em}
  .p2-metrics strong{font-size:15px;line-height:1.2}

  .p2-manifesto,.p2-route,.p2-architecture,.p2-compare,.p2-access{width:100%;padding:72px var(--p2-pad)}
  .p2-manifesto{gap:14px}
  .p2-manifesto__index{padding-top:0}
  .p2-manifesto__body h2,.p2-section-head h2{font-size:clamp(34px,9.5vw,39px);line-height:1.08;letter-spacing:-.05em}
  .p2-manifesto__copy{gap:25px;margin-top:36px;padding-top:20px}
  .p2-manifesto__copy p{font-size:14px;line-height:1.8}
  .p2-section-head{margin-bottom:32px;gap:14px}
  .p2-section-head>p:last-child{font-size:13px;line-height:1.75}

  .p2-route__visual{min-height:280px}
  .p2-route__steps{grid-template-columns:1fr 1fr}
  .p2-route__steps button{min-height:112px;padding:14px}
  .p2-route__steps em{margin-bottom:11px;font-size:8px}
  .p2-route__steps strong{margin-bottom:7px;font-size:12px}
  .p2-route__steps span{font-size:11px;line-height:1.55}

  .p2-architecture__grid a{min-height:250px;padding:22px}
  .p2-architecture__icon{width:84px!important;height:84px!important;margin-top:22px!important}
  .p2-architecture__label{margin-top:16px!important}
  .p2-architecture__grid h3{margin:12px 0 9px;font-size:23px;line-height:1.08}
  .p2-architecture__grid p{font-size:12px;line-height:1.65}

  .p2-compare__row{grid-template-columns:1fr 1fr;min-height:0;align-items:stretch}
  .p2-compare__row>*{min-height:54px;height:auto;padding:12px 13px;font-size:11px;line-height:1.5}
  .p2-compare__row>strong{grid-column:1/-1;min-height:34px;padding-block:8px;border-bottom:1px solid var(--p2-line);background:rgba(255,255,255,.025)}
  .p2-compare__row--head{grid-template-columns:1fr 1fr}
  .p2-compare__row--head span:first-child{display:none}
  .p2-compare__row--head span{min-height:45px;font-size:8px}
  .p2-compare .p2-text-link{margin-top:28px}

  .p2-access{gap:34px}
  .p2-access__orb{width:min(72vw,280px)}
  .p2-access__orb span{transform:translateY(-29vw)}
  .p2-access__copy h2{font-size:clamp(39px,10.8vw,46px);line-height:1.07;letter-spacing:-.05em}
  .p2-access__copy>p:not(.p2-kicker){margin:21px 0;font-size:13px;line-height:1.75}

  /* Guide hub and guide pages */
  .sub-hero{min-height:auto;padding:72px 0 46px;align-items:initial}
  .sub-hero .sub-hero__grid{display:grid;grid-template-columns:1fr;gap:30px;align-items:end}
  .sub-hero::after{top:28px;right:20px;font-size:88px;opacity:.3}
  .sub-breadcrumb{margin-bottom:19px;font-size:8px;line-height:1.5;letter-spacing:.1em}
  .sub-hero h1{max-width:100%;font-size:clamp(37px,10.2vw,43px);line-height:1.08;letter-spacing:-.055em}
  .sub-hero__aside{padding-top:18px}
  .sub-hero__aside p{margin-bottom:20px;font-size:13px;line-height:1.75}
  .sub-meta span{padding:11px 9px;font-size:7px;letter-spacing:.07em}
  .sub-nav{top:94px}
  .sub-nav__inner{width:calc(100% - 48px)}
  .sub-nav a{padding:14px 13px;font-size:8px}

  .sub-section{padding:68px 0}
  .sub-section__head{gap:13px;margin-bottom:32px}
  .sub-section h2{max-width:100%;font-size:clamp(30px,8.2vw,35px);line-height:1.1;letter-spacing:-.05em}
  .sub-section__head p{margin-top:10px;font-size:13px;line-height:1.75}
  .sub-grid{grid-template-columns:1fr}
  .sub-card{min-height:180px;padding:21px}
  .sub-card h3{margin:44px 0 10px;font-size:22px;line-height:1.15}
  .sub-card p{font-size:12px;line-height:1.7}
  .sub-next{padding:58px 0}
  .sub-next__inner{gap:18px}
  .sub-next a{font-size:clamp(12px,3.8vw,16px);line-height:1.25}

  .hub-orbit{width:70vw;right:-30%;opacity:.22}
  .hub-map a{min-height:225px;padding:22px}
  .hub-map a::after{bottom:-24px;font-size:112px}
  .hub-map h2{margin:54px 0 10px;font-size:28px;line-height:1.08}
  .hub-map p{font-size:12px;line-height:1.7}

  .ledger-side{min-height:330px;padding:21px}
  .ledger-side h3{font-size:24px}
  .ledger-track::before,.ledger-track::after{width:44px;height:44px}
  .ledger-data{left:14%;right:14%;gap:5px}
  .ledger-data span{padding:6px 7px;font-size:7px}

  .flow-console{min-height:0}
  .flow-console__steps button{min-height:86px;padding:14px;font-size:8px}
  .flow-console__viz{min-height:345px}
  .flow-stage-canvas{inset:44px 10px 38px;width:calc(100% - 20px);height:calc(100% - 82px)}
  .flow-viz__hud,.flow-viz__caption{left:11px;right:11px;font-size:7px;letter-spacing:.06em}

  .security-stack{gap:8px}
  .security-layer{min-height:0;padding:17px 16px;grid-template-columns:40px 1fr;gap:7px 12px}
  .security-layer:hover{transform:none}
  .security-layer h3{font-size:17px;line-height:1.25}
  .security-layer p{grid-column:2;margin-top:0;font-size:11px;line-height:1.65}

  .code-stage{min-height:0}
  .code-editor{padding:17px 14px;font-size:11px;line-height:1.9;overflow-x:auto}
  .code-editor p{min-width:max-content;padding-right:14px;white-space:nowrap}
  .code-pipeline{padding:18px 14px}
  .code-node{padding:15px 16px}

  .versus__side{min-height:0;padding:21px}
  .versus__side h3{font-size:30px;line-height:1.08}
  .versus-route{height:170px;margin-top:30px}
  .versus__middle{min-height:46px}

  .risk-item{min-height:195px;padding:21px}
  .risk-matrix>.risk-item:last-child:nth-child(odd){grid-column:auto}
  .risk-item h3{margin:43px 0 9px;font-size:21px;line-height:1.15}
  .risk-item p{font-size:12px;line-height:1.7}

  .faq-command__filter{padding:15px}
  .faq-command__filter input{padding:12px 13px}
  .faq-command__cats{grid-template-columns:1fr 1fr;gap:1px;background:var(--p2-line)}
  .faq-command__cats button{padding:12px 10px;background:#090d0f;font-size:8px}
  .faq-command__list summary{gap:14px;padding:18px 16px;font-size:13px;line-height:1.6}
  .faq-command__answer{padding:0 16px 20px;font-size:12px;line-height:1.75}

  /* Register and application screens */
  .register-shell{min-height:auto}
  .design-r0 .register-form{padding:48px 24px 42px}
  .design-r0 .register-form__panel{max-width:none}
  .design-r0 .register-form__panel h1{max-width:none;font-size:clamp(31px,8.5vw,34px);line-height:1.08;letter-spacing:-.05em}
  .register-form .muted{font-size:13px;line-height:1.75}
  .register-visual{height:280px;min-height:280px}
  .register-visual__tag{top:16px;left:20px;font-size:8px}
  .init-console{padding:44px 18px 16px}
  .init-orbit{width:108px}
  .init-log p{grid-template-columns:24px 1fr auto;gap:7px;font-size:8px}
  .init-console>small{font-size:7px}
  .design-r0 input,.design-r0 select,.design-r0 textarea,.design-r0 .faq-search{font-size:16px}

  .design-r0 .app-main{padding:48px 0 64px}
  .design-r0 .card{padding:20px}
  .card-grid{grid-template-columns:1fr}
  .balance-box{padding:18px}
  .passcode-box{padding:20px 12px;font-size:20px;letter-spacing:.11em;overflow-wrap:anywhere}

  .design-r0 .site-footer{padding-top:0}
  .site-footer__inner{gap:42px}
  .site-footer__cols{gap:34px 20px}
  .design-r0 .site-footer__bottom{margin-top:0;padding:18px 0;gap:10px;line-height:1.6}
}

@media(max-width:380px){
  :root{--p2-pad:20px}
  .p2-hero__inner,.p2-metrics,.sub-wrap,.sub-hero .sub-hero__grid,
  .design-r0 .protocol-section__inner,.design-r0 .hero__layout,
  .design-r0 .site-footer__inner,.design-r0 .site-footer__bottom,
  .design-r0 .app-main{width:calc(100% - 40px)}
  .sub-nav__inner{width:calc(100% - 40px)}
  .p2-hero h1,html[data-language="ja"] .p2-hero h1{font-size:39px}
  .p2-manifesto__body h2,.p2-section-head h2{font-size:35px}
  .sub-hero h1{font-size:36px}
  .sub-section h2{font-size:30px}
  .p2-route__steps{grid-template-columns:1fr}
  .p2-route__steps button{min-height:92px}
  .language-switch button{padding-inline:6px}
  .design-r0 .site-header__nav{padding-inline:20px}
  .design-r0 .site-header__nav>a{min-height:53px;font-size:14px}
}

/* ========== Guide / subpage alignment fixes ========== */
/* ヒーロー: 日本語でも行間・サイズが崩れないように */
.sub-hero{
  min-height:auto;
  padding:clamp(72px,8vw,110px) 0 clamp(48px,6vw,72px);
  align-items:stretch;
}
.sub-hero__grid{
  align-items:center;
  gap:clamp(28px,5vw,72px);
}
.sub-hero h1{
  max-width:14ch;
  font-size:clamp(36px,4.6vw,60px);
  line-height:1.16;
  letter-spacing:-.05em;
  word-break:keep-all;
  overflow-wrap:normal;
  text-wrap:balance;
}
.sub-hero h1 br{display:inline!important}
.sub-hero__line{
  display:inline-block;
  white-space:nowrap;
}
.sub-hero h1 em{
  display:inline-block;
  margin-top:.08em;
}
html[data-language="ja"] .sub-hero h1,
html[lang="ja"] .sub-hero h1{
  max-width:8.5em;
  font-size:clamp(32px,4.1vw,50px);
  line-height:1.22;
  letter-spacing:-.035em;
}
.sub-hero__aside p{
  max-width:38em;
  line-height:1.85;
  overflow-wrap:break-word;
  word-break:auto-phrase;
}
.hub-orbit{
  width:min(28vw,380px);
  opacity:.55;
  pointer-events:none;
}

/* ガイド地図カード: ずらしレイアウトをやめ、同じ高さ・同じ起点で整列 */
.hub-map a{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  min-height:260px;
  padding:28px 26px 30px;
  margin-top:0!important;
}
.hub-map em{
  display:block;
  min-height:1.2em;
  margin:0;
}
.hub-map h2{
  margin:36px 0 12px;
  font-size:clamp(22px,2.1vw,30px);
  font-weight:540;
  line-height:1.25;
  letter-spacing:-.04em;
  color:var(--p2-paper);
}
.hub-map p{
  margin:0;
  margin-top:auto;
  padding-top:12px;
  font-size:13px;
  line-height:1.7;
}
.hub-map a.is-active h2{color:var(--hub-map-accent,var(--p2-signal))}
.hub-map a:hover{transform:none!important}

@media(max-width:768px){
  .sub-hero{padding:56px 0 40px}
  html[data-language="ja"] .sub-hero h1,
  html[lang="ja"] .sub-hero h1,
  .sub-hero h1{
    max-width:100%;
    font-size:clamp(28px,7.5vw,38px);
    line-height:1.22;
  }
  .hub-map a{min-height:210px;padding:22px}
  .hub-map h2{margin-top:28px;font-size:24px}
}

/* ========== TORNADE layout polish (PC + SP) ========== */

/* 見出しの強制改行: SPは自然折り返し、PCで意図改行を復元 */
.p2-hero h1 br,
.p2-manifesto__body h2 br,
.p2-section-head h2 br,
.sub-hero h1 br,
.sub-section h2 br,
.howto-flow__head h2 br{
  display:none;
}
@media(min-width:900px){
  .p2-hero h1 br,
  .p2-manifesto__body h2 br,
  .p2-section-head h2 br,
  .sub-hero h1 br,
  .sub-section h2 br,
  .howto-flow__head h2 br{
    display:inline;
  }
}

/* アクセス見出し: 「つながりを切る。 / 価値は残す。」を意図どおり2行に */
.p2-access__copy h2{
  font-size:clamp(40px,5.2vw,72px);
  line-height:1.18;
  letter-spacing:-.05em;
  word-break:keep-all;
  overflow-wrap:normal;
  text-wrap:balance;
}
.p2-access__copy h2 br{display:inline!important}
.p2-access__line{
  display:inline-block;
  white-space:nowrap;
}
html[data-language="ja"] .p2-access__copy h2,
html[lang="ja"] .p2-access__copy h2{
  font-size:clamp(34px,7.2vw,56px);
  line-height:1.22;
  letter-spacing:-.04em;
}
@media(max-width:768px){
  .p2-access__copy h2,
  html[data-language="ja"] .p2-access__copy h2,
  html[lang="ja"] .p2-access__copy h2{
    font-size:clamp(30px,8.4vw,40px);
    line-height:1.25;
  }
}

/* PC見出しの行間・折り返し */
.sub-hero h1{
  line-height:1.08;
  overflow-wrap:break-word;
  text-wrap:balance;
}
.sub-section h2{
  font-size:clamp(34px,4.6vw,64px);
  line-height:1.1;
  overflow-wrap:break-word;
  text-wrap:balance;
}
html[data-language="ja"] .sub-section h2,
html[lang="ja"] .sub-section h2{
  font-size:clamp(30px,4.2vw,54px);
  line-height:1.18;
  letter-spacing:-.04em;
  word-break:keep-all;
}
.send-console__head h1,
.receive-console__head h1,
.progress-console__head h1,
.contact-console__head h1{
  line-height:1.12;
  overflow-wrap:break-word;
  text-wrap:balance;
}

/* ダークUI上のフォーム共通（register白フォームの黒文字衝突を打ち消し） */
.design-r0.page-app .form-group label,
.design-r0 .contact-form label,
.design-r0 .send-form label:not(.password-mode label),
.design-r0 .receive-form label,
.design-r0 .progress-lookup__form label{
  color:#89968f!important;
}
.design-r0.page-app input,
.design-r0.page-app select,
.design-r0.page-app textarea,
.design-r0 .contact-form input,
.design-r0 .contact-form textarea,
.design-r0 .faq-command__filter input{
  color:#fff!important;
  -webkit-text-fill-color:#fff;
  background:#070a0c!important;
  border:1px solid var(--p2-line-hi)!important;
  border-radius:0!important;
  padding:14px 16px;
}
.design-r0.page-app textarea,
.design-r0 .contact-form textarea{
  min-height:140px;
  resize:vertical;
  line-height:1.7;
}
.design-r0.page-app input::placeholder,
.design-r0.page-app textarea::placeholder,
.design-r0 .contact-form input::placeholder,
.design-r0 .contact-form textarea::placeholder,
.design-r0 .faq-command__filter input::placeholder{
  color:#65736b;
  -webkit-text-fill-color:#65736b;
}

/* Contact console（送金と同型） */
.design-r0.view-contact .app-main{
  width:min(calc(100% - 32px),960px);
  max-width:960px;
  padding-top:48px;
}
.contact-console{
  border:1px solid var(--p2-line);
  background:#080c0e;
  box-shadow:0 34px 90px rgba(0,0,0,.25);
}
.contact-console__head{
  min-height:180px;
  padding:38px 42px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:36px;
  align-items:end;
  border-bottom:1px solid var(--p2-line);
  background:radial-gradient(circle at 88% 18%,rgba(112,246,211,.08),transparent 27%),linear-gradient(120deg,rgba(155,255,63,.025),transparent 45%);
}
.contact-console__head h1{
  margin:9px 0 14px;
  color:var(--p2-paper);
  font:500 clamp(34px,4.5vw,54px)/1.12 "Noto Sans JP",sans-serif;
  letter-spacing:-.06em;
}
.contact-console__head p:not(.app-kicker){
  max-width:620px;
  margin:0;
  color:var(--p2-copy);
  font-size:13px;
  line-height:1.8;
}
.contact-console__status{
  align-self:start;
  display:flex;
  gap:9px;
  align-items:center;
  color:var(--p2-signal);
  font:600 8px/1 "JetBrains Mono",monospace;
  letter-spacing:.11em;
}
.contact-console__status span{
  width:7px;
  height:7px;
  background:var(--p2-signal);
  box-shadow:0 0 12px var(--p2-signal);
}
.contact-stage{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);
  min-height:420px;
}
.contact-stage--done{
  grid-template-columns:1fr;
}
.contact-stage__copy{
  padding:52px 42px;
  align-self:center;
}
.contact-stage__copy>span{
  color:var(--p2-signal);
  font:600 8px/1 "JetBrains Mono",monospace;
  letter-spacing:.12em;
}
.contact-stage__copy h2{
  margin:17px 0 15px;
  color:var(--p2-paper);
  font-size:28px;
  font-weight:500;
  line-height:1.2;
}
.contact-stage__copy>p{
  max-width:480px;
  margin:0;
  color:var(--p2-copy);
  font-size:13px;
  line-height:1.85;
}
.contact-ticket{
  margin-top:18px!important;
  color:var(--p2-signal)!important;
  font:600 clamp(16px,2.5vw,22px)/1.4 "JetBrains Mono",monospace!important;
  overflow-wrap:anywhere;
}
.contact-form{
  align-self:center;
  margin:42px;
  padding:31px;
  border:1px solid var(--p2-line);
  background:#0a0f11;
  display:grid;
  gap:18px;
}
.contact-form .form-group{display:grid;gap:8px}
.contact-form .btn{
  min-height:54px;
  border-radius:0!important;
  background:var(--p2-signal)!important;
  border-color:var(--p2-signal)!important;
  color:#07100b!important;
  justify-content:space-between!important;
}
.contact-feedback{
  margin-top:-24px;
  padding-top:0!important;
}
.contact-feedback__error{color:#f87171;font-size:13px}
.contact-feedback__busy{color:var(--p2-copy);font-size:13px}

/* タブレット幅: 2カラムが窮屈になる領域を早めに縦積み */
@media(max-width:1100px){
  .send-stage,
  .receive-stage,
  .contact-stage,
  .progress-lookup{
    grid-template-columns:1fr;
    min-height:0;
  }
  .send-wallet-panel,
  .send-confirm-panel,
  .send-share-panel,
  .receive-wallet-panel{
    border-left:0;
    border-top:1px solid var(--p2-line);
  }
  .send-wizard{grid-template-columns:repeat(3,1fr)}
  .receive-wizard{grid-template-columns:repeat(2,1fr)}
  .p2-route__stage{grid-template-columns:1fr}
  .p2-route__steps{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-left:0;
    border-top:1px solid var(--p2-line);
  }
}

@media(max-width:768px){
  .design-r0.view-contact .app-main{
    width:calc(100% - 40px);
    padding-top:34px;
  }
  .contact-console__head{
    min-height:0;
    padding:28px 22px;
    grid-template-columns:1fr;
    gap:22px;
  }
  .contact-console__head h1{font-size:32px;line-height:1.15}
  .contact-console__status{grid-row:1}
  .contact-stage{grid-template-columns:1fr}
  .contact-stage__copy{padding:36px 22px 12px}
  .contact-stage__copy h2{font-size:24px}
  .contact-form{margin:0 22px 32px;padding:22px}

  .send-wizard li strong,
  .receive-wizard li strong{
    font-size:9px;
    line-height:1.35;
  }
  .send-console__head h1,
  .receive-console__head h1,
  .progress-console__head h1{
    font-size:clamp(28px,8vw,34px);
    line-height:1.18;
  }
  .send-stage__copy h2,
  .receive-stage__copy h2,
  .progress-lookup__copy h2{
    font-size:22px!important;
    line-height:1.25!important;
  }

  /* ガイド sticky のヘッダー重なり緩和 */
  .flow-scroll-sticky,
  .code-scroll-sticky,
  .guide-core-scroll__sticky,
  .p2-route__sticky,
  .hub-map-scroll__sticky{
    top:110px;
    height:calc(100svh - 128px);
  }

  .sub-hero__aside p,
  .sub-section__head p,
  .howto-flow__head>p,
  .howto-step__body p{
    line-height:1.8;
    overflow-wrap:break-word;
  }
  .faq-command__list summary{
    align-items:flex-start;
    line-height:1.55;
  }
}

/* Header / status: content column centered; logo left, rest right */
.design-r0 .site-header{
  display:flex;
  justify-content:center;
  padding-inline:clamp(28px,6vw,96px);
  box-sizing:border-box;
}
.design-r0 .protocol-status{
  display:flex;
  justify-content:center;
  padding-inline:clamp(28px,6vw,96px);
  box-sizing:border-box;
}
.design-r0 .protocol-status__inner{
  box-sizing:border-box;
  width:100%;
  max-width:var(--p2-max);
  margin-inline:auto;
}
/* Desktop: logo left, nav + actions right */
@media(min-width:901px){
  .design-r0 .site-header__inner{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:clamp(14px,1.6vw,28px);
    width:100%;
    max-width:var(--p2-max);
    margin-inline:auto;
    grid-template-columns:none;
  }
  .design-r0 .site-header__brand{
    flex:0 0 auto;
    margin-right:auto;
    justify-self:auto;
  }
  .design-r0 .site-header__nav,
  .design-r0 .site-header__actions{
    flex:0 0 auto;
    justify-self:auto;
    margin-left:0;
  }
  .design-r0 .site-header__nav{
    gap:0;
  }
}
/* Mobile/tablet: keep usable edge layout */
@media(max-width:900px){
  .design-r0 .site-header{
    padding-inline:var(--p2-pad);
  }
  .design-r0 .site-header__inner{
    display:grid;
    grid-template-columns:auto 1fr auto;
    width:100%;
    max-width:var(--p2-max);
    margin-inline:auto;
    justify-content:unset;
  }
}
/* Chapter sticky bar removed from all guide subpages */
.sub-nav{display:none!important}
/* Align all subpage shells to the same centered column */
.sub-page .sub-wrap,
.sub-page .sub-nav__inner,
.sub-page .sub-hero .sub-hero__grid,
.design-r0 .app-main,
.design-r0 .protocol-section__inner,
.design-r0 .hero__layout,
.design-r0 .site-footer__inner,
.design-r0 .site-footer__bottom,
.design-r0 .site-footer__notice,
.design-r0 .site-footer__policy-link{
  box-sizing:border-box;
  width:min(calc(100% - 2 * var(--p2-pad)),var(--p2-max));
  max-width:var(--p2-max);
  margin-inline:auto;
}
@media(max-width:768px){
  .design-r0 .site-header,
  .design-r0 .protocol-status{
    padding-inline:var(--p2-pad);
  }
  .design-r0 .site-header__inner,
  .design-r0 .protocol-status__inner{
    width:100%;
  }
  .sub-page .sub-wrap,
  .design-r0 .app-main,
  .design-r0 .protocol-section__inner,
  .design-r0 .hero__layout,
  .design-r0 .site-footer__inner,
  .design-r0 .site-footer__bottom,
  .design-r0 .site-footer__notice,
  .design-r0 .site-footer__policy-link{
    width:calc(100% - 2 * var(--p2-pad));
  }
}

/* ========== SUB-HERO REDESIGN (centered 1-column) ========== */
:root{
  --color-accent:var(--p2-signal);
}
.sub-hero{
  --color-accent:var(--p2-signal);
  --sub-accent:var(--color-accent);
  --sub-glow:transparent;
  position:relative;
  min-height:520px;
  padding:120px 0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-bottom:1px solid var(--p2-line);
  overflow:hidden;
  text-align:center;
}
/* kill old 2-column chrome */
.sub-hero::before,
.sub-hero::after,
.sub-hero .hub-orbit{
  content:none!important;
  display:none!important;
}
.sub-hero__bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.sub-hero__num{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  color:var(--p2-paper);
  font:500 clamp(140px,22vw,280px)/1 "Inter","Noto Sans JP",sans-serif;
  letter-spacing:-.08em;
  opacity:.06;
  user-select:none;
}
.sub-hero__rings{
  position:absolute;
  left:50%;
  top:50%;
  width:min(62vw,520px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border:1px solid rgba(233,242,236,.1);
  border-radius:50%;
}
.sub-hero__rings::before,
.sub-hero__rings::after{
  content:"";
  position:absolute;
  inset:18%;
  border:1px solid rgba(233,242,236,.08);
  border-radius:50%;
}
.sub-hero__rings::after{
  inset:36%;
  border-color:rgba(233,242,236,.06);
  background:transparent;
  box-shadow:none;
}
.sub-hero__inner{
  position:relative;
  z-index:1;
  width:min(calc(100% - 2 * var(--p2-pad)),720px);
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.sub-breadcrumb{
  margin:0 0 24px;
  color:#7a8880;
  font:600 9px/1 "JetBrains Mono",monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.sub-breadcrumb__brand{
  color:var(--color-accent)!important;
  text-decoration:none;
}
.sub-breadcrumb__rest{
  color:#7a8880;
}
.sub-hero h1{
  max-width:100%;
  margin:0 0 32px;
  color:var(--p2-paper);
  font-family:"Noto Sans JP","Inter",sans-serif;
  font-size:clamp(40px,5.2vw,68px);
  font-weight:500;
  line-height:1.15;
  letter-spacing:-.04em;
  word-break:keep-all;
  overflow-wrap:normal;
  text-wrap:balance;
}
.sub-hero__title-main{
  color:var(--p2-paper);
  font:inherit;
}
.sub-hero__title-gap{white-space:pre}
html[data-language="ja"] .sub-hero__title-gap,
html[lang="ja"] .sub-hero__title-gap{display:none}
@media(max-width:768px){
  .sub-hero__title-gap{display:none}
}
.sub-hero__title-accent,
.sub-hero h1 em{
  color:var(--color-accent)!important;
  font:inherit;
  font-style:normal;
}
.sub-hero__br{
  display:none;
}
.sub-hero__lead,
.sub-hero__aside p{
  max-width:560px;
  margin:0 auto 48px;
  color:rgba(240,243,237,.7);
  font-family:"Noto Sans JP","Inter",sans-serif;
  font-size:15px;
  font-weight:400;
  line-height:1.9;
  text-align:center;
  overflow-wrap:break-word;
}
/* Meta: horizontal 4-up */
.sub-meta{
  width:100%;
  max-width:640px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  background:transparent!important;
  border-top:1px solid rgba(255,255,255,.1);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.sub-meta__item,
.sub-meta>span{
  min-width:0;
  padding:18px 12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:transparent!important;
  border:0;
  border-right:1px solid rgba(255,255,255,.1);
  text-align:center;
}
.sub-meta__item:last-child,
.sub-meta>span:last-child{
  border-right:0;
}
.sub-meta__label{
  color:#7a8880;
  font:600 8px/1.2 "JetBrains Mono",monospace;
  letter-spacing:.12em;
}
.sub-meta__value,
.sub-meta strong{
  color:var(--p2-paper);
  font:600 12px/1.2 "JetBrains Mono",monospace;
  letter-spacing:.04em;
}
/* legacy flat spans → keep readable if any remain */
.sub-meta>span{
  color:#7a8880;
  font:600 8px/1.4 "JetBrains Mono",monospace;
  letter-spacing:.1em;
}

html[data-language="ja"] .sub-hero h1,
html[lang="ja"] .sub-hero h1{
  max-width:12em;
  font-size:clamp(36px,4.8vw,64px);
  line-height:1.18;
  letter-spacing:-.035em;
}

@media(max-width:768px){
  .sub-hero{
    min-height:auto;
    padding:80px 0;
  }
  .sub-hero__inner{
    width:calc(100% - 2 * var(--p2-pad));
  }
  .sub-breadcrumb{margin-bottom:20px}
  .sub-hero h1,
  html[data-language="ja"] .sub-hero h1,
  html[lang="ja"] .sub-hero h1{
    max-width:100%;
    margin-bottom:24px;
    font-size:clamp(32px,8.4vw,42px);
    line-height:1.2;
  }
  .sub-hero__br{display:block}
  .sub-hero__lead,
  .sub-hero__aside p{
    margin-bottom:36px;
    font-size:14px;
    line-height:1.85;
  }
  .sub-meta{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sub-meta__item:nth-child(2n),
  .sub-meta>span:nth-child(2n){
    border-right:0;
  }
  .sub-meta__item:nth-child(-n+2),
  .sub-meta>span:nth-child(-n+2){
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .sub-hero__num{
    font-size:clamp(110px,42vw,180px);
  }
  .sub-hero__rings{
    width:min(78vw,320px);
  }
}

@media(max-width:375px){
  .sub-hero{padding:72px 0}
  .sub-hero h1,
  html[data-language="ja"] .sub-hero h1,
  html[lang="ja"] .sub-hero h1{
    font-size:34px;
  }
  .sub-meta__item{padding:14px 8px}
  .sub-meta__value{font-size:11px}
}


/* Section titles: prefer single line when no intentional <br> */
.sub-section h2{
  max-width:min(100%,22em);
  word-break:keep-all;
  overflow-wrap:normal;
  text-wrap:nowrap;
  white-space:nowrap;
}
html[data-language="ja"] .sub-section h2,
html[lang="ja"] .sub-section h2{
  max-width:100%;
  font-size:clamp(28px,3.6vw,48px);
  line-height:1.2;
  letter-spacing:-.03em;
  text-wrap:nowrap;
  white-space:nowrap;
}
@media(max-width:900px){
  .sub-section h2,
  html[data-language="ja"] .sub-section h2,
  html[lang="ja"] .sub-section h2{
    white-space:normal;
    text-wrap:balance;
  }
}
/* Keep intentional multi-line titles */
.sub-section h2:has(br){
  white-space:normal;
  text-wrap:balance;
}
/* sub-next CTA text size — half of previous */
.design-r0 .sub-next a,
.sub-next a{
  font-size:clamp(12px,1.5vw,18px)!important;
  font-weight:500;
  letter-spacing:-.03em;
  line-height:1.25;
  min-height:52px;
  padding:12px 52px 12px 18px;
}
.design-r0 .sub-next a span,
.sub-next a span{
  font-size:inherit;
}
.sub-next a::after{
  right:16px;
  bottom:12px;
  font-size:7px;
}
@media(max-width:768px){
  .design-r0 .sub-next a,
  .sub-next a{
    font-size:clamp(12px,3.8vw,16px)!important;
    min-height:48px;
    padding:12px 44px 12px 16px;
  }
}

/* protocol-status removed */
.protocol-status,
.design-r0 .protocol-status{
  display:none!important;
  height:0!important;
  min-height:0!important;
  overflow:hidden!important;
  border:0!important;
  padding:0!important;
  margin:0!important;
}
.design-r0 .site-header{
  top:0;
}
@media(max-width:900px){
  .design-r0 .site-header__nav{
    inset:76px 0 auto 0;
    min-height:calc(100svh - 76px);
    height:calc(100dvh - 76px);
  }
}
@media(max-width:768px){
  .design-r0 .site-header__nav{
    inset:64px 0 auto 0;
    top:64px;
    min-height:calc(100svh - 64px);
    height:calc(100dvh - 64px);
  }
  .p2-route__sticky{top:64px;height:calc(100svh - 80px)}
  .sub-nav{top:64px}
}
.p2-hero{min-height:calc(100svh - 76px)}
.design-r0 .register-shell{min-height:calc(100svh - 76px)}

/* Home hero: keep eyebrow spacing after label removal */
.p2-eyebrow--blank{
  min-height:calc(10px * 1.2);
  margin:0 0 24px;
  color:transparent;
  pointer-events:none;
  user-select:none;
}
.p2-eyebrow--blank span{opacity:0}

/* Home: slightly smaller section titles + clean 2-line leads */
.p2-manifesto__body h2{
  font-size:clamp(42px,5.6vw,84px)!important;
}
.p2-route .p2-section-head h2,
.p2-architecture .p2-section-head h2,
.p2-compare .p2-section-head h2{
  font-size:clamp(40px,5vw,72px)!important;
}
.p2-manifesto__copy{
  grid-template-columns:minmax(0,min(100%,760px)) auto;
}

/* Intentional multi-line copy: no orphan wraps */
.p2-lines{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.18em;
  margin:0;
  max-width:100%;
  color:inherit;
  font:inherit;
  line-height:1.75;
  word-break:normal;
  line-break:strict;
  overflow-wrap:anywhere;
}
.p2-lines__row{
  display:inline-block;
  max-width:100%;
  line-break:strict;
}
/* Keep Japanese sentence endings from orphaning */
.p2-lines__row:lang(ja),
html[data-language="ja"] .p2-lines__row,
html[lang="ja"] .p2-lines__row{
  line-break:strict;
}
@media(min-width:901px){
  .p2-route .p2-section-head:has(> .p2-lines){
    grid-template-columns:minmax(0,1fr);
    gap:18px 24px;
    align-items:start;
  }
  .p2-route .p2-section-head:has(> .p2-lines) h2{
    max-width:14em;
  }
  .p2-route .p2-section-head:has(> .p2-lines) > .p2-lines{
    max-width:52em;
    font-size:14px;
  }
  .p2-route .p2-section-head:has(> .p2-lines) > .p2-lines .p2-lines__row,
  .p2-manifesto__copy .p2-lines__row,
  .sub-section__head .p2-lines__row{
    white-space:nowrap;
  }
}
@media(max-width:900px){
  .p2-manifesto__body h2{
    font-size:clamp(34px,8.6vw,48px)!important;
  }
  .p2-route .p2-section-head h2,
  .p2-architecture .p2-section-head h2,
  .p2-compare .p2-section-head h2{
    font-size:clamp(32px,8vw,44px)!important;
  }
  .p2-route .p2-section-head{
    grid-template-columns:1fr;
  }
  .p2-lines{
    font-size:13px;
    line-height:1.7;
    letter-spacing:-.01em;
  }
  /* SP: allow wrap inside a row, but never leave a 1-glyph orphan line */
  .p2-lines__row{
    white-space:normal;
    text-wrap:pretty;
  }
}
.u-nowrap{white-space:nowrap}

/* Section titles: accent em like manifesto / hero */
.p2-section-head h2 em,
.sub-section__head h2 em,
.sub-section h2 em{
  color:var(--p2-cyan)!important;
  font-style:normal;
}

/* Japanese body/leads: reduce ugly mid-word orphans */
html[data-language="ja"] .p2-section-head>p,
html[lang="ja"] .p2-section-head>p,
html[data-language="ja"] .p2-manifesto__copy p,
html[lang="ja"] .p2-manifesto__copy p,
html[data-language="ja"] .sub-section__head p,
html[lang="ja"] .sub-section__head p,
html[data-language="ja"] .sub-hero__lead,
html[lang="ja"] .sub-hero__lead,
html[data-language="ja"] .p2-hero__lead,
html[lang="ja"] .p2-hero__lead{
  line-break:strict;
  overflow-wrap:anywhere;
  text-wrap:pretty;
}
.sub-section__head .p2-lines{
  grid-column:2;
  max-width:min(100%,720px);
}
@media(max-width:900px){
  .sub-section__head .p2-lines{
    grid-column:1;
  }
}

/* Header nav: pure white + slightly larger type */
.design-r0 .site-header__nav>a{
  color:#ffffff!important;
  font-size:12px!important;
  letter-spacing:.08em;
}
.design-r0 .site-header__nav>a:hover,
.design-r0 .site-header__nav>a.is-active{
  color:#ffffff!important;
}
.design-r0 .site-header__actions a:not(.btn){
  color:#ffffff!important;
  font-size:12px!important;
}
@media(max-width:900px){
  .design-r0 .site-header__nav>a{
    font-size:17px!important;
  }
}

/* code-stage: sync left/right rows + matching text size */
.code-scroll-sticky .code-stage{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:stretch;
}
.code-scroll-sticky .code-editor,
.code-scroll-sticky .code-pipeline{
  display:grid!important;
  grid-template-rows:repeat(5,minmax(0,1fr));
  height:100%;
  min-height:0;
  margin:0;
  padding:0!important;
  gap:0!important;
  overflow:hidden!important;
  justify-content:stretch!important;
}
.code-scroll-sticky .code-editor p,
.code-scroll-sticky .code-node{
  display:flex!important;
  align-items:center;
  box-sizing:border-box;
  min-height:0;
  height:100%;
  margin:0!important;
  padding:0 22px!important;
  font-size:clamp(14px,1.4vw,18px)!important;
  line-height:1.35!important;
  font-family:"JetBrains Mono","Noto Sans JP",monospace;
}
.code-scroll-sticky .code-editor p{
  color:#c5cec8;
}
.code-scroll-sticky .code-editor p.is-active{
  color:var(--p2-paper);
}
.code-scroll-sticky .code-node{
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  justify-content:flex-start;
  gap:10px!important;
  width:100%;
  opacity:.72;
  border-left:1px solid var(--p2-line);
  background:transparent;
  appearance:none;
  cursor:pointer;
  text-align:left;
  color:var(--p2-paper);
}
.code-scroll-sticky .code-node.is-active{
  opacity:1;
  border-color:var(--p2-signal);
  background:linear-gradient(90deg,rgba(168,255,79,.09),transparent);
}
.code-scroll-sticky .code-node em,
.code-scroll-sticky .code-node strong,
.code-scroll-sticky .code-node span{
  display:inline!important;
  margin:0!important;
  font-size:inherit!important;
  line-height:inherit!important;
  white-space:nowrap;
  color:var(--p2-paper)!important;
}
.code-scroll-sticky .code-node em{
  color:var(--p2-cyan)!important;
  flex:0 0 auto;
}
.code-scroll-sticky .code-node strong{
  letter-spacing:.05em;
  flex:0 0 auto;
}
.code-scroll-sticky .code-node span{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:900px){
  .code-scroll-sticky .code-stage{
    grid-template-columns:1fr;
    grid-template-rows:minmax(160px,.9fr) minmax(0,1.1fr);
  }
  .code-scroll-sticky .code-editor,
  .code-scroll-sticky .code-pipeline{
    grid-template-rows:repeat(5,minmax(0,1fr));
  }
  .code-scroll-sticky .code-editor p,
  .code-scroll-sticky .code-node{
    padding:0 16px!important;
    font-size:13px!important;
  }
  .code-scroll-sticky .code-node span{white-space:normal}
}

/* Site-wide: muted/body gray → white for readability */
:root{--p2-copy:#eef2ed}
.design-r0 .muted,
.design-r0 .protocol-main p,
.design-r0 .sub-page p,
.design-r0 .sub-hero__lead,
.design-r0 .sub-section__head p,
.design-r0 .sub-card p,
.design-r0 .hub-map p,
.design-r0 .faq-command__answer,
.design-r0 .risk-item p,
.design-r0 .security-layer p,
.design-r0 .p2-hero__lead,
.design-r0 .p2-section-head>p:last-child,
.design-r0 .section-lead,
.design-r0 .howto-step__body p,
.design-r0 .p2-route__steps span,
.design-r0 .p2-architecture__grid p,
.design-r0 .versus__side p,
.design-r0 .p2-manifesto__copy p,
.design-r0 .p2-access__copy>p:not(.p2-kicker){
  color:var(--p2-paper)!important;
}
/* keep light/signal panels readable (dark text on lime) */
.design-r0 .sub-card--signal,
.design-r0 .sub-card--signal em,
.design-r0 .sub-card--signal h3,
.design-r0 .sub-card--signal p,
.design-r0 .sub-card--signal i,
.design-r0 .hub-map a:hover,
.design-r0 .hub-map a:hover em,
.design-r0 .hub-map a:hover p{
  color:#061008!important;
}
.design-r0 .sub-card--signal:hover,
.design-r0 .sub-card--signal:hover em,
.design-r0 .sub-card--signal:hover h3,
.design-r0 .sub-card--signal:hover p,
.design-r0 .sub-card--signal:hover i{
  color:var(--p2-paper)!important;
}
.design-r0 .register-form p,
.design-r0 .register-form .muted{
  color:#59645e!important;
}
.design-r0 .code-node{opacity:.7}
.design-r0 .code-node.is-active{opacity:1}

/* Progress page title: slightly smaller + accent */
.design-r0.view-progress .send-console__head h1{
  font-size:clamp(30px,4.2vw,50px)!important;
  line-height:1.12;
}
.design-r0.view-progress .send-console__head h1 em{
  color:var(--p2-cyan);
  font-style:normal;
}
@media(max-width:768px){
  .design-r0.view-progress .send-console__head h1{
    font-size:clamp(26px,7.5vw,34px)!important;
  }
}


/* Mixing progress viz (send / progress) */
.mixing-progress{
  margin-top:22px;
  border:1px solid var(--p2-line);
  background:#070b0d;
}
.mixing-progress__meta{
  display:flex;
  flex-wrap:wrap;
  gap:16px 28px;
  align-items:flex-end;
  justify-content:space-between;
  padding:18px 20px;
  border-bottom:1px solid var(--p2-line);
}
.mixing-progress__meta small{
  display:block;
  margin-bottom:8px;
  color:#66736c;
  font:600 8px/1 "JetBrains Mono",monospace;
  letter-spacing:.12em;
}
.mixing-progress__meta strong{
  display:block;
  color:var(--p2-paper);
  font-size:18px;
  font-weight:550;
  letter-spacing:-.03em;
}
.mixing-progress__meta p{
  margin:8px 0 0;
  color:#9aa69f;
  font-size:12px;
  line-height:1.5;
}
.mixing-progress__bar{
  position:relative;
  width:min(100%,260px);
  height:8px;
  background:#121916;
  border:1px solid var(--p2-line);
}
.mixing-progress__bar i{
  position:absolute;
  inset:0 auto 0 0;
  background:linear-gradient(90deg,var(--p2-cyan),var(--p2-signal));
  box-shadow:0 0 14px rgba(168,255,79,.35);
}
.mixing-progress__bar span{
  position:absolute;
  right:0;
  top:-18px;
  color:var(--p2-signal);
  font:600 10px/1 "JetBrains Mono",monospace;
}
.mixing-progress__stage{
  display:grid;
  grid-template-columns:1.35fr .9fr;
  min-height:360px;
}
.mixing-progress__visual{
  position:relative;
  min-height:320px;
  border-right:1px solid var(--p2-line);
  background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);
  background-size:40px 40px;
}
.mixing-progress__canvas{
  display:block;
  width:100%;
  height:100%;
  min-height:320px;
}
.mixing-progress__steps{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
}
.mixing-progress__steps li{
  flex:1 1 0;
  min-height:72px;
  padding:16px 18px;
  border-bottom:1px solid var(--p2-line);
  border-left:2px solid transparent;
  opacity:.62;
}
.mixing-progress__steps li:last-child{border-bottom:0}
.mixing-progress__steps li.is-done{opacity:.85;border-left-color:rgba(134,255,221,.45)}
.mixing-progress__steps li.is-current{
  opacity:1;
  border-left-color:var(--p2-signal);
  background:linear-gradient(90deg,rgba(168,255,79,.09),transparent);
}
.mixing-progress__steps em{
  display:block;
  margin-bottom:8px;
  color:var(--p2-cyan);
  font:normal 10px/1 "JetBrains Mono",monospace;
}
.mixing-progress__steps li.is-current em,
.mixing-progress__steps li.is-current strong{color:var(--p2-signal)}
.mixing-progress__steps strong{
  display:block;
  margin-bottom:6px;
  color:var(--p2-paper);
  font-size:14px;
  letter-spacing:.04em;
}
.mixing-progress__steps span{
  display:block;
  color:#a7b2ab;
  font-size:12px;
  line-height:1.45;
}
.mixing-progress--compact .mixing-progress__stage{min-height:300px}
.mixing-progress--compact .mixing-progress__visual,
.mixing-progress--compact .mixing-progress__canvas{min-height:260px}
@media(max-width:900px){
  .mixing-progress__stage{grid-template-columns:1fr}
  .mixing-progress__visual{border-right:0;border-bottom:1px solid var(--p2-line);min-height:240px}
  .mixing-progress__canvas{min-height:240px}
  .mixing-progress__steps li{min-height:58px;padding:12px 14px}
  .mixing-progress__bar{width:100%}
}

/* ========== QA fixes: JA font fallback + SP overflow / line breaks ========== */
:root{
  --font-mono:"JetBrains Mono","Noto Sans JP","Noto Sans",monospace;
}
.p2-eyebrow,
.p2-kicker,
.p2-metrics span,
.p2-metrics strong,
.p2-core__hud,
.p2-manifesto__index,
.p2-architecture__grid em,
.p2-architecture__grid>a>span,
.p2-compare__row strong,
.p2-compare__row--head span,
.sub-index,
.sub-breadcrumb,
.sub-meta__label,
.sub-meta__value,
.sub-card em,
.protocol-status__inner,
.site-footer__network span,
.site-footer__network strong{
  font-family:var(--font-mono)!important;
}
/* Japanese labels in mono contexts must fall back to Noto Sans JP (avoid tofu □) */
html[lang="ja"] .p2-kicker,
html[data-language="ja"] .p2-kicker,
html[lang="ja"] .p2-metrics span,
html[data-language="ja"] .p2-metrics span,
html[lang="ja"] .p2-core__hud,
html[data-language="ja"] .p2-core__hud,
html[lang="ja"] .sub-index,
html[data-language="ja"] .sub-index,
html[lang="ja"] .sub-meta__label,
html[data-language="ja"] .sub-meta__label,
html[lang="ja"] .sub-breadcrumb,
html[data-language="ja"] .sub-breadcrumb,
html[lang="ja"] .protocol-status__inner,
html[data-language="ja"] .protocol-status__inner{
  font-family:"Noto Sans JP","Noto Sans",sans-serif!important;
  letter-spacing:.06em;
  font-weight:600;
}
/* Flow / code / compare chrome also receives JA via i18n */
html[lang="ja"] .flow-console__steps button,
html[data-language="ja"] .flow-console__steps button,
html[lang="ja"] .flow-console__steps span,
html[data-language="ja"] .flow-console__steps span,
html[lang="ja"] .flow-console__steps small,
html[data-language="ja"] .flow-console__steps small,
html[lang="ja"] .flow-viz__caption,
html[data-language="ja"] .flow-viz__caption,
html[lang="ja"] .flow-viz__hud,
html[data-language="ja"] .flow-viz__hud,
html[lang="ja"] .flow-scroll__indicator,
html[data-language="ja"] .flow-scroll__indicator,
html[lang="ja"] .code-scroll__indicator,
html[data-language="ja"] .code-scroll__indicator,
html[lang="ja"] .p2-route__scroll-indicator,
html[data-language="ja"] .p2-route__scroll-indicator,
html[lang="ja"] .code-node,
html[data-language="ja"] .code-node,
html[lang="ja"] .p2-route__steps button,
html[data-language="ja"] .p2-route__steps button,
html[lang="ja"] .sub-card em,
html[data-language="ja"] .sub-card em,
html[lang="ja"] .sub-card h3,
html[data-language="ja"] .sub-card h3{
  font-family:"Noto Sans JP","Noto Sans",sans-serif!important;
}
.sub-section__head,
.sub-section__head > *{
  min-width:0;
  max-width:100%;
}
.sub-section h2,
html[data-language="ja"] .sub-section h2,
html[lang="ja"] .sub-section h2{
  overflow-wrap:anywhere;
}
@media(max-width:900px){
  .sub-section h2,
  html[data-language="ja"] .sub-section h2,
  html[lang="ja"] .sub-section h2{
    white-space:normal!important;
    text-wrap:balance;
    word-break:keep-all;
    overflow-wrap:break-word;
    line-break:strict;
    max-width:100%!important;
  }
  .sub-section__head{
    width:100%;
  }
  .sub-section__head p,
  .sub-section__head .p2-lines{
    max-width:100%;
  }
  .p2-hero__jp.p2-lines,
  .p2-hero__lead.p2-lines{
    max-width:100%;
  }
  .p2-hero__lead.p2-lines .p2-lines__row{
    white-space:normal;
    text-wrap:pretty;
    word-break:keep-all;
    overflow-wrap:break-word;
    line-break:strict;
  }
  /* Prevent grid/table cells forcing horizontal scroll on SP */
  .p2-compare__row,
  .versus,
  .sub-grid{
    max-width:100%;
  }
  .p2-compare__row>*{
    min-width:0;
  }
}
/* Hero lead: keep sentence units tidy on PC */
@media(min-width:901px){
  .p2-hero__lead.p2-lines .p2-lines__row{
    white-space:nowrap;
  }
}

