/* UAX institutional site — mobile-first, dual theme, shared pages */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0;overflow-x:hidden;max-width:100%}
body{
  font-family:var(--font-body);font-size:1rem;line-height:1.65;
  color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--focus)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.skip-link{position:absolute;inset-inline-start:1rem;inset-block-start:-100%;background:var(--accent);color:var(--accent-ink);padding:.55rem .9rem;z-index:999;border-radius:var(--radius);font-weight:700}
.skip-link:focus{inset-block-start:1rem}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.container--wide{max-width:var(--container-wide);width:100%;margin-inline:auto;padding-inline:var(--gutter)}

/* Header */
.site-header{position:sticky;inset-block-start:0;z-index:var(--z-header);background:var(--bg-header);backdrop-filter:blur(12px);border-block-end:1px solid var(--line-soft)}
.site-header.is-solid{box-shadow:var(--shadow)}
.header__inner{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.5rem;min-width:0}
/* True alpha PNG — no solid plate; header bg shows through */
.brand__mark{
  height:40px;width:auto;max-width:min(42vw,180px);
  display:block;background:transparent;object-fit:contain;
  /* slight lift so metallic mark reads on both themes */
  filter:drop-shadow(0 1px 2px color-mix(in srgb, var(--text) 18%, transparent));
}
html[data-theme="light"] .brand__mark{
  filter:drop-shadow(0 1px 1px color-mix(in srgb, #000 12%, transparent));
}
.brand__text{font-family:var(--font-display);font-weight:700;letter-spacing:.12em;font-size:1.05rem;color:var(--text);text-transform:uppercase}
.brand__text span{color:var(--accent)}
.brand__text--sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0
}
/* V12: reveal the UAX wordmark beside the emblem on desktop for quicker brand
   recognition; it stays screen-reader-only on narrow screens to preserve header space. */
@media (min-width:900px){
  .brand__text--sr-only{
    position:static;width:auto;height:auto;margin:0;padding:0 0 0 .15rem;
    overflow:visible;clip:auto;white-space:normal;
  }
}
html[data-locale="ja"] .brand__text{text-transform:none;letter-spacing:.04em}

.nav-toggle{display:inline-flex;margin-inline-start:auto;background:transparent;border:1px solid var(--line-soft);color:var(--text);border-radius:var(--radius-pill);padding:.5rem .85rem;font:inherit;min-height:44px;cursor:pointer}
.header__actions{display:flex;align-items:center;gap:.4rem;width:100%;justify-content:flex-end;order:3}
.header__actions .btn--cta{display:none}
.primary-nav{display:none;width:100%;order:4;padding-block:.35rem .75rem;border-block-start:1px solid var(--line-soft)}
.primary-nav.is-open{display:block}
.primary-nav__list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.primary-nav a{color:var(--text-soft);font-weight:600;padding:.8rem .35rem;border-block-end:1px solid var(--line-soft);display:block;font-size:.95rem}
.primary-nav a[aria-current="page"]{color:var(--accent)}

.theme-toggle,.lang-switch__btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  background:transparent;border:1px solid var(--line-soft);color:var(--text-soft);
  border-radius:var(--radius-pill);padding:.4rem .7rem;font:inherit;font-weight:600;font-size:.85rem;
  min-height:44px;min-width:44px;cursor:pointer;
}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .icon-sun{display:none}
html[data-theme="light"] .theme-toggle .icon-moon{display:none}
html[data-theme="light"] .theme-toggle .icon-sun{display:block}
.lang-switch{position:relative}
.lang-switch__menu{position:absolute;inset-block-start:calc(100% + 8px);inset-inline-end:0;background:var(--bg-elevated);border:1px solid var(--line-soft);border-radius:var(--radius);padding:.35rem;list-style:none;margin:0;min-width:min(190px,80vw);max-height:min(300px,55vh);overflow:auto;display:none;box-shadow:var(--shadow);z-index:var(--z-overlay)}
.lang-switch.open .lang-switch__menu{display:block}
.lang-switch__menu li{padding:.5rem .7rem;border-radius:6px;color:var(--text-soft);font-size:.85rem;cursor:pointer;display:flex;justify-content:space-between}
.lang-switch__menu li[aria-selected="true"]{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text)}
.lang-switch__menu li[data-status="planned"]{opacity:.45;cursor:default}
.lang-switch__menu .soon{font-size:.65rem;text-transform:uppercase;color:var(--text-muted)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font:inherit;font-weight:700;font-size:.92rem;padding:.75rem 1.15rem;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;min-height:44px;text-align:center}
.btn--primary{background:var(--accent);color:var(--accent-ink)}
.btn--primary:hover{filter:brightness(1.05);color:var(--accent-ink)}

/* Institutional security-gateway control (not consumer pill) */
.btn--gateway{
  --btn-ease: var(--ease);
  display:inline-flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:.55rem .75rem;
  min-height:48px;
  padding:.7rem 1.15rem;
  border-radius:var(--radius-institutional);
  border:1px solid color-mix(in srgb, var(--inst-navy) 88%, #fff 12%);
  background:var(--inst-navy);
  color:var(--inst-on-navy);
  font-weight:600;
  font-size:.88rem;
  letter-spacing:.04em;
  line-height:1.35;
  text-align:start;
  text-decoration:none;
  box-shadow:none;
  white-space:normal;
  max-width:100%;
  transition:
    background-color var(--dur) var(--btn-ease),
    border-color var(--dur) var(--btn-ease),
    color var(--dur) var(--btn-ease),
    box-shadow var(--dur) var(--btn-ease);
}
.btn--gateway:hover{
  background:var(--inst-navy-hover);
  border-color:color-mix(in srgb, var(--inst-navy-hover) 80%, #fff 20%);
  color:var(--inst-on-navy);
  filter:none;
}
.btn--gateway:active{
  background:var(--inst-navy-active);
  box-shadow:inset 0 1px 0 rgba(0,0,0,.35);
}
.btn--gateway:focus-visible{
  outline:2px solid var(--inst-focus-ring);
  outline-offset:3px;
  color:var(--inst-on-navy);
}
.btn--gateway:disabled,
.btn--gateway[aria-disabled="true"]{
  opacity:.48;
  cursor:not-allowed;
  pointer-events:none;
}
.btn--gateway__icon{
  flex:0 0 auto;
  width:1rem;height:1rem;
  display:block;
  opacity:.9;
}
.btn--gateway__label{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0}
.btn--gateway__en{display:block;font-weight:600;letter-spacing:.05em}
.btn--gateway__ja{display:block;font-size:.8rem;font-weight:600;opacity:.88;letter-spacing:.02em}
.btn--gateway__chev{
  flex:0 0 auto;
  width:.85rem;height:.85rem;
  margin-inline-start:auto;
  transition:transform var(--dur) var(--btn-ease);
  opacity:.85;
}
.btn--gateway:hover .btn--gateway__chev,
.btn--gateway:focus-visible .btn--gateway__chev{
  transform:translateX(2px);
}
html[dir="rtl"] .btn--gateway:hover .btn--gateway__chev,
html[dir="rtl"] .btn--gateway:focus-visible .btn--gateway__chev{
  transform:translateX(-2px);
}
@media (prefers-reduced-motion:reduce){
  .btn--gateway,
  .btn--gateway__chev{transition:none}
  .btn--gateway:hover .btn--gateway__chev,
  .btn--gateway:focus-visible .btn--gateway__chev{transform:none}
}
.btn--ghost{background:transparent;border-color:var(--line-soft);color:var(--text)}
.btn--ghost:hover{border-color:var(--accent)}

/* Sections */
.section{padding-block:clamp(2.25rem,5.5vw,3.75rem)}
.section--alt{background:var(--bg-elevated);border-block:1px solid var(--line-soft)}
.section--dense{padding-block:clamp(1.6rem,4vw,2.5rem)}
.section__head{max-width:40rem;margin-block-end:var(--sp-5)}
.section__head h2,.page-title{
  font-family:var(--font-display);font-size:clamp(1.4rem,3.8vw,2rem);
  font-weight:700;letter-spacing:.01em;margin:0 0 var(--sp-3);line-height:1.25;color:var(--text);
  text-wrap:balance
}
html[data-locale="ja"] .section__head h2,html[data-locale="ja"] .page-title{text-transform:none;letter-spacing:.04em;line-height:1.4}
.section__head p,.lede{margin:0;color:var(--text-muted);font-size:1.02rem;line-height:1.7}
.eyebrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--sp-3)}
.eyebrow::before{content:"";width:1.1rem;height:1px;background:var(--accent)}
html[data-locale="ja"] .eyebrow{text-transform:none;letter-spacing:.05em}

/* Hero — logo films (dark/light, multi-aspect via object-fit + source media) */
.hero{
  position:relative;overflow:hidden;
  border-block-end:1px solid var(--line-soft);
  background:var(--bg);
}
.hero__stage{
  position:relative;
  min-height:clamp(28rem,78vh,46rem);
  display:grid;
  align-items:stretch;
}

.hero__scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(
      105deg,
      color-mix(in srgb, var(--bg) 92%, transparent) 0%,
      color-mix(in srgb, var(--bg) 78%, transparent) 38%,
      color-mix(in srgb, var(--bg) 35%, transparent) 62%,
      color-mix(in srgb, var(--bg) 18%, transparent) 100%
    ),
    linear-gradient(
      to top,
      color-mix(in srgb, var(--bg) 70%, transparent) 0%,
      transparent 42%
    );
}
html[dir="rtl"] .hero__scrim{
  background:
    linear-gradient(
      255deg,
      color-mix(in srgb, var(--bg) 92%, transparent) 0%,
      color-mix(in srgb, var(--bg) 78%, transparent) 38%,
      color-mix(in srgb, var(--bg) 35%, transparent) 62%,
      color-mix(in srgb, var(--bg) 18%, transparent) 100%
    ),
    linear-gradient(
      to top,
      color-mix(in srgb, var(--bg) 70%, transparent) 0%,
      transparent 42%
    );
}
/* Light theme: white film needs a stronger readable veil */
html[data-theme="light"] .hero__scrim{
  background:
    linear-gradient(
      105deg,
      color-mix(in srgb, var(--bg) 94%, transparent) 0%,
      color-mix(in srgb, var(--bg) 82%, transparent) 42%,
      color-mix(in srgb, var(--bg) 40%, transparent) 68%,
      color-mix(in srgb, var(--bg) 22%, transparent) 100%
    ),
    linear-gradient(
      to top,
      color-mix(in srgb, var(--bg) 55%, transparent) 0%,
      transparent 48%
    );
}

.hero__inner{
  position:relative;z-index:2;
  padding-block:clamp(2.75rem,9vw,5rem);
  max-width:40rem;
  display:flex;flex-direction:column;justify-content:center;
  min-height:inherit;
}
.hero h1{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(1.65rem,5.2vw,2.55rem);line-height:1.18;letter-spacing:.005em;
  margin:0 0 var(--sp-4);color:var(--text);
  /* V12: sentence case (was uppercase) + balanced wrapping to stop the awkward
     "co-development" break on wide screens. */
  text-wrap:balance;max-width:22ch;
  text-shadow:0 1px 18px color-mix(in srgb, var(--bg) 55%, transparent);
}
html[dir="rtl"] .hero h1{max-width:none}
html[data-locale="ja"] .hero h1{text-transform:none;line-height:1.4;font-size:clamp(1.4rem,4.5vw,2.05rem)}
.hero .lead{color:var(--text-soft);font-size:1.05rem;line-height:1.75;margin:0 0 var(--sp-5)}
.hero__cta{display:flex;flex-direction:column;gap:.7rem}
.hero__rule{height:1px;background:var(--line);margin-block:var(--sp-5) 0;max-width:6rem}

/* Ultrawide presentation: prefer cinematic crop framing */
@media (min-width:1200px) and (min-aspect-ratio:2/1){
  .hero__stage{min-height:clamp(26rem,70vh,42rem)}
}
/* Capability groups */
.cap-groups{display:grid;gap:1rem}
.cap-group{border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--bg-panel);padding:1.15rem 1.2rem;display:flex;flex-direction:column}
.cap-group h3{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.05rem;letter-spacing:.05em;text-transform:uppercase}
html[data-locale="ja"] .cap-group h3{text-transform:none}
.cap-group p{margin:0;color:var(--text-muted);font-size:.92rem;line-height:1.65}
.cap-group__lines{margin-block-start:.65rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;color:var(--accent)}
.cap-group__cta{margin-block-start:auto;padding-block-start:1rem}
.cap-group__cta .btn{font-size:.82rem}
.cap-transition{margin-block-start:var(--sp-5);padding:1rem 1.15rem;border-inline-start:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--bg-panel));font-size:.95rem;line-height:1.65;color:var(--text-soft)}

/* Domain detail pages */
.domain-page__codes{margin:.85rem 0 0;font-size:.85rem;font-weight:700;letter-spacing:.1em;color:var(--accent)}
.line-cards{display:grid;gap:1rem}
.line-card{border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--bg-panel);padding:1.2rem 1.25rem}
.line-card__code{margin:0 0 .45rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:700}
.line-card h3{margin:0 0 .55rem;font-family:var(--font-display);font-size:1.1rem;letter-spacing:.04em;text-transform:uppercase}
html[data-locale="ja"] .line-card h3{text-transform:none}
.line-card p{margin:0;color:var(--text-muted);font-size:.92rem;line-height:1.65}
.line-card__use{margin-block-start:.75rem !important;font-size:.82rem !important;color:var(--text-soft) !important;padding-block-start:.65rem;border-block-start:1px solid var(--line-soft)}
.domain-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.domain-nav a{display:block;padding:.85rem 1rem;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg-panel);color:var(--text-soft);font-weight:600}
.domain-nav a:hover{border-color:var(--accent);color:var(--text)}
.domain-nav a:focus-visible{border-color:var(--accent);color:var(--text);outline:2px solid var(--focus);outline-offset:2px}
.domain-nav a[aria-current="page"]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--bg-panel))}
@media (min-width:720px){
  .line-cards{grid-template-columns:1fr 1fr}
  .domain-nav ul{grid-template-columns:1fr 1fr}
}
@media (min-width:960px){
  .line-cards{grid-template-columns:repeat(3,1fr)}
}

/* Horizons compact */
.horizons-grid{display:grid;gap:.85rem}
.horizon-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg-panel);padding:1rem 1.1rem}
.horizon-card h3{margin:0 0 .4rem;font-family:var(--font-display);font-size:1rem;letter-spacing:.04em;text-transform:uppercase}
html[data-locale="ja"] .horizon-card h3{text-transform:none}
.horizon-card p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.6}

/* ── Multi-Domain Protection Map (MDP) ── */
.mdp{
  border:1px solid var(--inst-border);
  border-radius:var(--radius-institutional);
  background:var(--bg-panel);
  padding:clamp(1.05rem,2.8vw,1.5rem);
  box-shadow:none;
  color:var(--text);
}
.mdp__header{max-width:52rem;margin-block-end:1.1rem}
.mdp__title{margin:0 0 .45rem;font-family:var(--font-display);font-size:clamp(1.1rem,2.6vw,1.35rem);letter-spacing:.08em;text-transform:uppercase}
html[data-locale="ja"] .mdp__title{text-transform:none;letter-spacing:.04em}
.mdp__intro{margin:0 0 .55rem;color:var(--text-muted);font-size:.92rem;line-height:1.65}
.mdp__policy{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--text-soft);border-inline-start:2px solid var(--inst-border);padding-inline-start:.65rem}
.mdp__layout{display:grid;gap:1.25rem;align-items:start}
.mdp__viz{position:relative;min-width:0}
.mdp__svg{width:100%;height:auto;display:block;max-width:560px;margin-inline:auto;color:var(--accent);overflow:visible}
/* NOTE: the legacy static-SVG visualization classes (.mdp-field/.mdp-flow/.mdp-phys/
   .mdp-lattice__* etc.) were removed — the live map is drawn by assets/js/domain-map.js
   (Canvas-2D) with the accessible .mdp-node* SVG layer below. */
.mdp-node{cursor:pointer;outline:none}
.mdp-node__hit{fill:transparent;pointer-events:all}
.mdp-node__disk{fill:color-mix(in srgb, var(--map-fill) 80%, var(--bg-panel));stroke:var(--map-stroke);stroke-width:1.4;transition:fill var(--dur) var(--ease), stroke var(--dur) var(--ease), stroke-width var(--dur) var(--ease)}
.mdp-node__label{fill:var(--text);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-display);pointer-events:none}
html[data-locale="ja"] .mdp-node__label{text-transform:none;letter-spacing:.04em;font-size:11px}
.mdp-node__sub{fill:var(--text-muted);font-size:8.5px;font-weight:600;letter-spacing:.04em;font-family:var(--font-mono);pointer-events:none}
.mdp-node:hover .mdp-node__disk,
.mdp-node:focus-visible .mdp-node__disk{fill:color-mix(in srgb, var(--map-active) 18%, var(--bg-panel));stroke:var(--map-active);stroke-width:1.75}
.mdp-node[aria-pressed="true"] .mdp-node__disk{fill:color-mix(in srgb, var(--map-active) 28%, var(--bg-panel));stroke:var(--map-active);stroke-width:2}
.mdp-node:focus-visible .mdp-node__disk{outline:2px solid var(--focus);outline-offset:3px}
.mdp-node:hover .mdp-node__label,
.mdp-node:focus-visible .mdp-node__label{fill:var(--map-active)}
.mdp-node[aria-pressed="true"] .mdp-node__label{fill:var(--map-active)}
.mdp-node[aria-pressed="true"] .mdp-node__sub{fill:var(--text-soft)}
.mdp__chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin-block-start:.85rem}
.mdp-chip{appearance:none;border:1px solid var(--inst-border);background:var(--bg);color:var(--text-soft);font:inherit;font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:.55rem .35rem;border-radius:var(--radius-institutional);min-height:44px;cursor:pointer;transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background-color var(--dur) var(--ease)}
html[data-locale="ja"] .mdp-chip{text-transform:none}
.mdp-chip:hover{border-color:var(--accent);color:var(--text)}
.mdp-chip:focus-visible{border-color:var(--accent);color:var(--text);outline:2px solid var(--focus);outline-offset:2px}
.mdp-chip[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--bg))}
.mdp__panel{border:1px solid var(--inst-border);border-radius:var(--radius-institutional);background:var(--bg);padding:1rem 1.1rem 1.15rem;min-height:14rem}
.mdp__panel-kicker{margin:0 0 .35rem;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-family:var(--font-mono)}
html[data-locale="ja"] .mdp__panel-kicker{font-family:var(--font-body);text-transform:none;letter-spacing:.04em}
.mdp__panel-title{margin:0 0 .55rem;font-family:var(--font-display);font-size:1.02rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text)}
html[data-locale="ja"] .mdp__panel-title{text-transform:none}
.mdp__panel-body{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.65}
.mdp__portfolio{margin-block-start:1rem}
.mdp__portfolio-label{margin:0 0 .4rem;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);font-family:var(--font-mono)}
html[data-locale="ja"] .mdp__portfolio-label{font-family:var(--font-body);text-transform:none}
.mdp__portfolio-list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.mdp__portfolio-list li{border:1px solid var(--inst-border);border-radius:var(--radius-institutional);padding:.5rem .65rem;background:var(--bg-panel)}
.mdp__portfolio-list strong{display:block;font-family:var(--font-mono);font-size:.84rem;letter-spacing:.04em;color:var(--accent);margin-block-end:.2rem;font-weight:600}
.mdp__portfolio-list span{display:block;font-size:.8rem;color:var(--text-muted);line-height:1.5;font-family:var(--font-body)}
.mdp__physics{margin:1rem 0 0;padding:.65rem .75rem;border-inline-start:2px solid var(--inst-border);font-size:.8rem;line-height:1.55;color:var(--text-soft);font-family:var(--font-mono)}
html[data-locale="ja"] .mdp__physics{font-family:var(--font-body)}
.mdp__panel-actions{margin-block-start:1rem}
.mdp__page-link[hidden],.mdp__portfolio[hidden],.mdp__physics[hidden]{display:none !important}
.mdp__legend{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.4rem;font-size:.86rem}
@media (min-width:720px){.mdp__legend{grid-template-columns:1fr 1fr}}
.mdp__legend a{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline;padding:.55rem .7rem;border:1px solid var(--inst-border);border-radius:var(--radius-institutional);color:var(--text-soft);text-decoration:none;background:var(--bg);transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background-color var(--dur) var(--ease)}
.mdp__legend a:hover{border-color:var(--accent);color:var(--text)}
.mdp__legend a:focus-visible{border-color:var(--accent);color:var(--text);outline:2px solid var(--focus);outline-offset:2px}
.mdp__legend strong{color:var(--accent);min-width:6.5rem;font-family:var(--font-mono);font-size:.8rem;font-weight:600}
html[data-locale="ja"] .mdp__legend strong{font-family:var(--font-body)}
.mdp__legend a.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--bg))}
@media (min-width:900px){
  .mdp__layout{grid-template-columns:minmax(0,1.15fr) minmax(17rem,.9fr);gap:1.5rem;align-items:stretch}
  .mdp__panel{height:100%}
  .mdp__chips{display:none}
}
@media (max-width:899px){.mdp__svg{max-width:100%}}
@media (prefers-reduced-motion:reduce){
  .mdp-pathway,.mdp-phys,.mdp-node__disk,.mdp-lattice__struts line,.mdp-lattice__nodes circle,.mdp-chip,.mdp__legend a{transition:none}
}

/* V11: the simulated air-gap transition overlay was removed — see site.js. */

.cap-line.is-highlighted,.cap-group.is-highlighted{outline:1px solid var(--accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent)}

/* CSP-safe semantic spacing and text treatments */
.hero__cta--page{margin-block-start:1.25rem}
.cap-transition--spaced{margin-block-start:1.25rem}
.cap-transition p{margin:0}
.section-links{margin-block-start:var(--sp-5)}
.field-help--spaced{margin-block-start:1rem}
.safety--form{margin-block-end:var(--sp-5)}
.return-link{margin-block-start:var(--sp-6)}
.footer__tagline{color:var(--text-muted);font-size:.9rem;margin:.5rem 0 0}
.footer__endorsement{color:var(--accent);font-size:.88rem;margin:.4rem 0 0}
.legal-page{max-width:48rem}
.legal-page__title{font-family:var(--font-display)}
.legal-page__lede{color:var(--text-muted)}

/* Kaisha table */
/* Corporate overview — flat Japanese aerospace summary grid (no soft card chrome) */
.kaisha{
  border:1px solid var(--inst-border);
  border-radius:var(--radius-institutional);
  background:var(--inst-value-bg);
  overflow:hidden;
  box-shadow:none;
}
.kaisha__head{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;
  padding:.65rem .85rem;
  background:var(--inst-label-bg);
  border-block-end:1px solid var(--inst-border);
}
.kaisha__head h2{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(1rem,2.4vw,1.2rem);
  letter-spacing:.02em;
  font-weight:700;
  color:var(--text);
}
html[data-locale="ja"] .kaisha__head h2{text-transform:none;letter-spacing:.04em}
.kaisha__badge{
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-muted);
  border:1px solid var(--inst-border);
  border-radius:var(--radius-institutional);
  padding:.25rem .5rem;
  align-self:center;
  background:var(--inst-value-bg);
}
.kaisha-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.kaisha-posture{list-style:none;margin:var(--sp-4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.kaisha-posture li{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--text-soft);background:var(--bg-elevated);border:1px solid var(--line-soft);border-radius:var(--radius-pill);padding:.4rem .8rem}
.kaisha table{
  width:100%;
  border-collapse:collapse;
  border-spacing:0;
  font-size:.9rem;
  min-width:0;
  table-layout:fixed;
}
.kaisha th,.kaisha td{
  padding:.55rem .8rem;
  text-align:start;
  vertical-align:top;
  line-height:1.5;
  border:1px solid var(--inst-border);
  word-break:normal;
  overflow-wrap:anywhere;
}
.kaisha th{
  width:36%;
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.02em;
  color:var(--text);
  background:var(--inst-label-bg);
}
.kaisha td{
  width:64%;
  font-weight:500;
  font-size:.9rem;
  color:var(--text);
  background:var(--inst-value-bg);
}
.kaisha .th-ja{
  font-weight:600;
  font-size:.74rem;
  color:var(--text-muted);
  display:inline-block;
  margin-block-start:.2rem;
  letter-spacing:.01em;
  line-height:1.45;
}

/* Stacked label/value pairs on narrow viewports — still a strict grid, not soft cards */
@media (max-width:560px){
  .kaisha table,.kaisha tbody,.kaisha tr,.kaisha th,.kaisha td{display:block;width:100%}
  .kaisha tr{border-block-end:0}
  .kaisha th{
    width:100%;
    border-block-end:0;
    padding-block-end:.3rem;
  }
  .kaisha td{
    width:100%;
    border-block-start:0;
    padding-block-start:.25rem;
    margin-block-end:0;
  }
  .kaisha tr + tr th{border-block-start-width:1px}
}

/* Engagement page */
.page-hero{padding-block:clamp(2rem,5vw,3rem);border-block-end:1px solid var(--line-soft)}
.page-hero .page-title{margin-block-end:.75rem}
.steps{display:grid;gap:.75rem;counter-reset:step}
.step{display:grid;grid-template-columns:auto 1fr;gap:.85rem;padding:1rem 1.1rem;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg-panel)}
.step__num{width:2.25rem;height:2.25rem;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-weight:700;font-family:var(--font-display);font-size:1rem}
.step h3{margin:0 0 .35rem;font-size:1rem;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase}
html[data-locale="ja"] .step h3{text-transform:none}
.step p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.55}
.step dl{margin:.55rem 0 0;display:grid;gap:.25rem;font-size:.82rem}
.step dt{font-weight:700;color:var(--text-soft)}
.step dd{margin:0;color:var(--text-muted)}
.notice{border-inline-start:3px solid var(--accent);padding:.85rem 1rem;background:color-mix(in srgb, var(--accent) 8%, var(--bg-panel));font-size:.9rem;line-height:1.65;color:var(--text-soft);margin:0 0 var(--sp-5)}
/* Non-affiliation callout: placed beside institutional names (JETRO/METI/ATLA) so the
   disavowal sits where the borrowed-prestige risk actually is, not only in the footer. */
.notice--nonaffil{border-inline-start-color:var(--status-negative);background:color-mix(in srgb, var(--status-negative) 7%, var(--bg-panel));margin-top:var(--sp-4)}
/* Provisional machine-assisted translation banner. Injected by site.js only when a
   non-English (machine-assisted) locale is active, so an institutional reader is told at the
   point of reading that English governs. Hidden for English; never blocks the content. */
.xlate-banner{margin:0;padding:.6rem var(--gutter);text-align:center;font-size:.82rem;line-height:1.5;color:var(--accent-ink);background:var(--accent);border-bottom:1px solid var(--line)}
.xlate-banner[hidden]{display:none}
.field-optional{font-weight:400;color:var(--text-muted);font-size:.85em}
.safety{border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;background:color-mix(in srgb, var(--muted-red) 8%, var(--bg-panel));font-size:.9rem;line-height:1.65;color:var(--text-muted)}
.safety strong{display:block;color:var(--muted-red);margin-block-end:.4rem;font-size:.82rem}

/* Footer */
.site-footer{border-block-start:1px solid var(--line-soft);padding-block:var(--sp-6) var(--sp-5);background:var(--bg-elevated);margin-block-start:auto}
.footer__grid{display:grid;gap:var(--sp-5);margin-block-end:var(--sp-5)}
.footer__brand{font-family:var(--font-display);font-size:1.2rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.footer__brand span{color:var(--accent)}
.site-footer h4{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;color:var(--accent);margin:0 0 var(--sp-3)}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.site-footer a{color:var(--text-soft);font-size:.88rem}
.footer__legal{display:flex;flex-direction:column;gap:.55rem;border-block-start:1px solid var(--line-soft);padding-block-start:var(--sp-4);color:var(--text-muted);font-size:.72rem}
.footer__legal-row{display:flex;flex-wrap:wrap;gap:.45rem 1.25rem;align-items:baseline}
.ref-note{font-size:.7rem;color:var(--text-muted);line-height:1.55;max-width:72ch;margin:0}
.ref-note a{color:var(--text-soft);text-decoration:underline;text-underline-offset:.12em}
.ref-note a:hover,.ref-note a:focus-visible{color:var(--accent)}
.ref-note--ja{font-size:.72rem;line-height:1.65}

@media (min-width:480px){
  .hero__cta{flex-direction:row;flex-wrap:wrap}
  .horizons-grid{grid-template-columns:1fr 1fr}
  .cap-groups{grid-template-columns:1fr 1fr}
}
@media (min-width:768px){
  .header__inner{flex-wrap:nowrap}
  .header__actions{width:auto;order:0}
  .header__actions .btn--cta{display:inline-flex}
  .steps{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1.4fr 1fr 1fr}
  .footer__legal{flex-direction:row;justify-content:space-between;align-items:center}
}
@media (min-width:1024px){
  .nav-toggle{display:none}
  .primary-nav{display:block;width:auto;margin-inline-start:auto;padding:0;border:0;order:0}
  .primary-nav__list{flex-direction:row;align-items:center;gap:.15rem}
  .primary-nav a{font-size:.86rem;padding:.5rem .6rem;border:0;display:inline-block}
  .cap-groups{grid-template-columns:repeat(4,1fr)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* OpSec: public restricted notice */
.restricted-notice{
  padding:1rem 1rem 1.15rem;
  border-block-start:1px solid var(--inst-border);
  background:var(--inst-label-bg);
}
.restricted-notice__title{
  margin:0 0 .55rem;
  font-family:var(--font-display);
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--text);
}
html[data-locale="ja"] .restricted-notice__title{text-transform:none;letter-spacing:.06em}
.restricted-notice__en,.restricted-notice__ja{
  margin:0 0 .65rem;
  font-size:.88rem;
  line-height:1.65;
  color:var(--text-soft);
}
.restricted-notice__cta-wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem 1.25rem;
  margin-block-start:.9rem;
}
.th-ja{font-weight:600;font-size:.78rem;color:var(--text-muted);display:inline-block;margin-block-start:.15rem}
.page-title__ja{display:block;font-size:.85em;font-weight:600;margin-block-start:.35rem;letter-spacing:.04em;color:var(--text-muted);text-transform:none}

/* Locked datapack preview — categories only */
.locked-pack{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--bg-panel)}
.locked-pack__row{display:grid;grid-template-columns:1fr;gap:0;border-block-end:1px solid var(--line-soft)}
.locked-pack__row:last-child{border-block-end:0}
.locked-pack__cat{padding:.75rem 1rem;font-weight:600;font-size:.88rem;color:var(--text);background:color-mix(in srgb, var(--accent) 5%, var(--bg-elevated))}
.locked-pack__status{padding:.75rem 1rem;font-size:.82rem;line-height:1.5;color:var(--text-muted)}
.lock-badge{margin-inline-end:.25rem}
@media (min-width:720px){
  .locked-pack__row{grid-template-columns:1.1fr 1fr}
  .locked-pack__cat{border-inline-end:1px solid var(--line-soft)}
}

/* Section infographics (rendered visual panels) */
.infographic{margin:var(--sp-5) 0 0;padding:0}
.infographic img{display:block;width:100%;height:auto;border-radius:var(--radius-lg);border:1px solid var(--line-soft);box-shadow:var(--shadow);background:var(--bg-elevated)}
.infographic figcaption{margin-block-start:.6rem;color:var(--text-muted);font-size:.82rem;line-height:1.5;text-align:center}

/* ============================================================================
   PANEL UPGRADE — S1 corporate grid · S2 pathway · S3 contact-reveal · S4 canvas
   ========================================================================== */

/* S1 · Corporate Overview — monospaced institutional data points (values are Latin
   proper nouns; labels/JA keep the body/JP stack). */
.kaisha-table td{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.005em}

/* S1 · Institutional Infrastructure & Readiness */
.inst-infra{margin-block-start:var(--sp-5)}
.inst-infra__title{font-family:var(--font-display);font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .9rem;display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:baseline}
html[data-locale="ja"] .inst-infra__title{text-transform:none;letter-spacing:.03em}
.inst-infra__title-ja{font-size:.8rem;color:var(--text-muted);font-weight:600}
.inst-infra__grid{list-style:none;margin:0;padding:0;display:grid;gap:.8rem;grid-template-columns:1fr}
.inst-infra__cell{position:relative;border:1px solid var(--inst-border);border-radius:var(--radius-institutional);background:var(--inst-value-bg);padding:1rem 1.05rem .95rem;padding-inline-start:1.25rem}
.inst-infra__cell::before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;width:3px;height:100%;background:var(--accent);opacity:.6}
.inst-infra__idx{font-family:var(--font-mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em;font-weight:700}
.inst-infra__cell-title{margin:.3rem 0 .35rem;font-size:.92rem;font-weight:700;color:var(--text);line-height:1.35}
.inst-infra__cell-body{margin:0;font-size:.85rem;line-height:1.6;color:var(--text-muted)}
@media(min-width:760px){.inst-infra__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* S2 · Engagement & Disclosure pathway (preview strip + tracker) */
.pathway{list-style:none;margin:0;padding:0}
.pathway--preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .75rem;margin:.1rem 0 1.15rem;padding:.9rem;border:1px solid var(--inst-border);border-radius:var(--radius-institutional);background:color-mix(in srgb, var(--accent) 5%, var(--inst-value-bg))}
.pathway__step{display:flex;align-items:center;gap:.55rem;position:relative}
.pathway__num{flex:none;width:1.7rem;height:1.7rem;display:grid;place-items:center;font-family:var(--font-mono);font-size:.82rem;font-weight:700;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-institutional);background:var(--bg)}
.pathway__label{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.pathway__en{font-size:.78rem;font-weight:700;color:var(--text);letter-spacing:.01em}
.pathway__ja{font-size:.68rem;color:var(--text-muted)}
@media(min-width:720px){
  .pathway--preview{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pathway--preview .pathway__step:not(:last-child)::after{content:"";position:absolute;inset-inline-end:-.5rem;inset-block-start:50%;width:.4rem;height:1px;background:var(--accent);opacity:.5}
}

/* S2 · engagement-page CTA */
.pathway-cta{margin-block-start:var(--sp-5);display:flex}
.pathway-cta .btn{font-family:var(--font-mono);letter-spacing:.03em}

/* S3 · anti-scrape contact reveal */
.contact-reveal{margin:.9rem 0 0;display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}
.contact-reveal__btn{appearance:none;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;color:var(--text-soft);background:transparent;border:1px solid var(--line-soft);border-radius:var(--radius-institutional);padding:.45rem .75rem;min-height:38px;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.contact-reveal__btn:hover{border-color:var(--accent);color:var(--text)}
.contact-reveal__btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.contact-reveal__out{font-family:var(--font-mono);font-size:.82rem;word-break:break-all}
.contact-reveal__link{color:var(--accent-strong);text-decoration:none;border-block-end:1px solid currentColor}
.contact-reveal__link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.contact-reveal__note{font-size:.72rem;color:var(--text-muted);line-height:1.4}

/* S4 · Canvas stage — decorative particle layer behind the accessible SVG nodes */
.mdp__stage{position:relative;max-width:560px;margin-inline:auto}
.mdp__stage .mdp__svg{max-width:none;margin-inline:0;position:relative;z-index:1}
.mdp-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}

/* ============================================================================
   PANEL UPGRADE v2 — S2 scarcity · S3 View Transitions · S4 CSS-3D metamaterial cell
   ========================================================================== */

/* S2 · Authority / scarcity micro-copy for the restricted datapack */
.restricted-notice__scarcity{
  margin:.9rem 0 0;padding:.7rem .85rem;
  font-size:.82rem;line-height:1.55;color:var(--text-soft);
  border-inline-start:2px solid var(--accent);
  background:color-mix(in srgb, var(--accent) 6%, transparent);
  border-radius:0 var(--radius-institutional) var(--radius-institutional) 0;
}

/* S3 · Cross-document View Transitions (app-like page changes; Chromium supports,
   others no-op gracefully). Honors reduced-motion. */
@view-transition{ navigation: auto; }
::view-transition-old(root),::view-transition-new(root){
  animation-duration:.28s;animation-timing-function:var(--ease);
}
@media (prefers-reduced-motion: reduce){
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
}
/* Persist the sticky header across navigations */
.site-header{ view-transition-name: uax-header; }

/* S4 · Stage layering: canvas(0) < 3D cell(1) < SVG nodes(2) */
.mdp__stage .mdp__svg{ z-index:2; }
.cell3d{
  position:absolute;inset:0;margin:auto;z-index:1;
  width:38%;aspect-ratio:1;pointer-events:none;
  display:grid;place-items:center;
  perspective:560px;
  transition:transform .45s var(--ease);
}
.cell3d__cube{
  --edge:120px;
  position:absolute;width:var(--edge);height:var(--edge);
  transform-style:preserve-3d;
  animation:cell3d-spin 26s linear infinite;
  will-change:transform;
}
.cell3d__cube--inner{ --edge:74px; animation-duration:34s; animation-direction:reverse; opacity:.75; }
.cell3d__face{
  position:absolute;inset:0;
  border:1px solid var(--map-active);
  background:color-mix(in srgb, var(--map-active) 5%, transparent);
  opacity:.5;transition:opacity var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.f-front{ transform:translateZ(calc(var(--edge)/2)); }
.f-back{ transform:rotateY(180deg) translateZ(calc(var(--edge)/2)); }
.f-right{ transform:rotateY(90deg) translateZ(calc(var(--edge)/2)); }
.f-left{ transform:rotateY(-90deg) translateZ(calc(var(--edge)/2)); }
.f-top{ transform:rotateX(90deg) translateZ(calc(var(--edge)/2)); }
.f-bottom{ transform:rotateX(-90deg) translateZ(calc(var(--edge)/2)); }
.cell3d__label{
  position:absolute;inset-block-end:2%;inset-inline:0;z-index:3;
  text-align:center;font-family:var(--font-display);
  font-size:.7rem;font-weight:700;letter-spacing:.22em;color:var(--text-soft);
}
@keyframes cell3d-spin{
  from{ transform:rotateX(-24deg) rotateY(0deg); }
  to{ transform:rotateX(-24deg) rotateY(360deg); }
}
/* Domain physics: deform the whole cell (non-animated wrapper) so it doesn't fight the spin */
.mdp[data-active="air"] .cell3d{ transform:skewX(-5deg) scale(1.02); }      /* thermal / flow shear */
.mdp[data-active="land"] .cell3d{ transform:scaleY(.86) scaleX(1.06); }     /* stress compression */
.mdp[data-active="sea"] .cell3d{ transform:rotate(6deg) scale(1.01); }      /* hydrodynamic torsion */
.mdp[data-active="infra"] .cell3d{ transform:scale(.95); }                  /* load redistribution */
.mdp:not([data-active=""]) .cell3d__face{ opacity:.8; }
.mdp[data-active="air"] .cell3d__cube{ animation-duration:10s; }
.mdp[data-active="sea"] .cell3d__cube{ animation-duration:16s; }
@media (prefers-reduced-motion: reduce){
  .cell3d__cube{ animation:none; transform:rotateX(-24deg) rotateY(32deg); }
}

/* ============================================================================
   PANEL POLISH v3 — hero contrast · table hierarchy · panel view-transition
   ========================================================================== */

/* 1a · Localized readability veil behind the hero text column (guarantees contrast
   over the wireframe film, independent of the full-stage scrim). backdrop-filter is
   progressive enhancement; the gradient alone already meets contrast on its own. */
.hero__inner::before{
  content:"";position:absolute;z-index:-1;
  inset:-1rem -1.75rem;
  border-radius:var(--radius-lg);
  background:linear-gradient(
    105deg,
    color-mix(in srgb, var(--bg) 84%, transparent) 0%,
    color-mix(in srgb, var(--bg) 62%, transparent) 52%,
    transparent 100%
  );
}
html[dir="rtl"] .hero__inner::before{ transform:scaleX(-1); }
@supports ((backdrop-filter:blur(3px)) or (-webkit-backdrop-filter:blur(3px))){
  .hero__inner::before{
    -webkit-backdrop-filter:blur(3px);
    backdrop-filter:blur(3px);
    background:linear-gradient(
      105deg,
      color-mix(in srgb, var(--bg) 68%, transparent) 0%,
      color-mix(in srgb, var(--bg) 44%, transparent) 52%,
      transparent 100%
    );
  }
}

/* 1b · 会社概要 table hierarchy — labels muted, values primary (Japanese trust-table
   convention). Borders/collapse/padding already set on .kaisha th,td above. */
.kaisha-table th{ color:var(--text-soft); font-weight:600; }
.kaisha-table .th-ja{ color:var(--text-muted); }
.kaisha-table td{ color:var(--text); font-weight:600; }

/* 3 · Same-document View Transition for the map info panel (Air/Land/Sea/Infra).
   Named so only the panel animates (root stays put → no CLS); ~300ms cross-fade.
   min-height keeps idle vs active heights close so surrounding layout doesn't jump. */
.mdp__panel{ view-transition-name: mdp-panel; }
.mdp__panel{ min-height:15rem; }
::view-transition-group(mdp-panel),
::view-transition-old(mdp-panel),
::view-transition-new(mdp-panel){
  animation-duration:.3s;animation-timing-function:var(--ease);
}
@media (prefers-reduced-motion: reduce){
  .mdp__panel{ view-transition-name: none; }
}

/* S2a · Lock "unlock" micro-interaction on the controlled-access buttons */
.btn--gateway__shackle{
  transform-box:fill-box;transform-origin:center bottom;
  transition:transform var(--dur) var(--ease);
}
.btn--gateway:hover .btn--gateway__shackle,
.btn--gateway:focus-visible .btn--gateway__shackle{ transform:translateY(-2.5px) rotate(-14deg); }
@media (prefers-reduced-motion: reduce){
  .btn--gateway__shackle{ transition:none; }
  .btn--gateway:hover .btn--gateway__shackle,
  .btn--gateway:focus-visible .btn--gateway__shackle{ transform:none; }
}

/* S2b · Abstract Integration Roadmap */
.roadmap{ list-style:none;margin:var(--sp-5) 0 0;padding:0;display:grid;gap:1rem;grid-template-columns:1fr; }
.roadmap__phase{
  position:relative;border:1px solid var(--inst-border);border-radius:var(--radius-institutional);
  background:var(--inst-value-bg);padding:1.4rem 1.15rem 1.1rem;
}
.roadmap__idx{ position:absolute;inset-block-start:.6rem;inset-inline-end:.75rem;font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--accent); }
.roadmap__mark{ display:inline-flex;color:var(--accent);margin-block-end:.55rem; }
.roadmap__title{ margin:0 0 .35rem;font-size:.95rem;font-weight:700;line-height:1.3;color:var(--text); }
html[data-locale="ja"] .roadmap__title{ letter-spacing:.02em; }
.roadmap__body{ margin:0;font-size:.82rem;line-height:1.55;color:var(--text-muted); }
@media (min-width:820px){
  .roadmap{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .roadmap__phase:not(:last-child)::after{
    content:"";position:absolute;inset-inline-end:-.6rem;inset-block-start:2.4rem;
    width:.6rem;height:1px;background:var(--accent);opacity:.55;
  }
}

/* S4 · Lattice parallax — cursor/scroll shift the 3D perspective origin (no transform
   conflict with the cube spin or domain deform). JS sets --cell-px / --cell-py. */
.cell3d{ perspective-origin: calc(50% + var(--cell-px, 0px)) calc(50% + var(--cell-py, 0px)); }
@media (prefers-reduced-motion: reduce){
  .cell3d{ perspective-origin:50% 50%; }
}

/* ============================================================================
   PANEL POLISH v5 — early institutional seal bar (trust signals under the hero)
   ========================================================================== */
.trust-bar{
  display:block;background:var(--bg-elevated);
  border-block-end:1px solid var(--line-soft);
}
.trust-bar__inner{
  display:grid;grid-template-columns:1fr;gap:.75rem;
  padding-block:1rem;
}
.seal{
  display:flex;align-items:center;gap:.7rem;
  padding:.7rem .9rem;
  border:1px solid var(--inst-border);
  border-radius:var(--radius-institutional);
  background:var(--inst-value-bg);
  position:relative;
}
.seal::before{ /* institutional accent tab */
  content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;
  background:var(--accent);opacity:.65;
}
.seal__ring{
  flex:none;display:grid;place-items:center;width:2.4rem;height:2.4rem;
  border-radius:50%;color:var(--accent);
  border:1.5px solid color-mix(in srgb, var(--accent) 45%, var(--inst-border));
  background:color-mix(in srgb, var(--accent) 8%, transparent);
}
.seal__text{ display:flex;flex-direction:column;line-height:1.25;min-width:0; }
.seal__label{ font-family:var(--font-display);font-weight:700;font-size:.86rem;letter-spacing:.03em;color:var(--text); }
html[data-locale="ja"] .seal__label{ font-family:var(--font-jp);letter-spacing:.02em; }
.seal__sub{ font-family:var(--font-mono);font-size:.7rem;letter-spacing:.02em;color:var(--text-muted);margin-block-start:.15rem; }
html[data-locale="ja"] .seal__sub{ font-family:var(--font-jp); }
@media (min-width:720px){
  .trust-bar__inner{ grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem; }
}

/* ============================================================================
   PANEL POLISH v6 — compliance-first seal · low-barrier CTA nudge (keigo)
   ========================================================================== */

/* Export-control seal leads the trust bar (compliance officer sees it first) */
.seal--primary{
  border-color:color-mix(in srgb, var(--accent) 55%, var(--inst-border));
  background:color-mix(in srgb, var(--accent) 7%, var(--inst-value-bg));
}
.seal--primary::before{ opacity:1; width:4px; }
.seal--primary .seal__ring{
  color:var(--accent-strong);
  border-color:color-mix(in srgb, var(--accent) 60%, var(--inst-border));
  background:color-mix(in srgb, var(--accent) 14%, transparent);
}

/* Low-barrier reassurance nudge beneath the controlled-access CTA */
.restricted-notice__reassure,
.pathway-cta + .restricted-notice__reassure{
  margin:.6rem 0 0;
  font-size:.78rem;line-height:1.5;color:var(--text-muted);
  display:flex;align-items:flex-start;gap:.4rem;
}
.restricted-notice__reassure::before{
  content:"";flex:none;margin-block-start:.15rem;
  width:.85rem;height:.85rem;border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, transparent 46%, var(--accent) 47%, var(--accent) 60%, transparent 61%),
    linear-gradient(45deg, transparent 46%, var(--accent) 46%, var(--accent) 54%, transparent 54%);
  /* subtle "verified" dot */
  background:color-mix(in srgb, var(--accent) 20%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);
}

/* S2.1 · Outcome micro-copy beneath the reassurance nudge */
.restricted-notice__outcome{
  margin:.35rem 0 0;
  font-size:.82rem;line-height:1.5;font-weight:600;color:var(--text-soft);
  display:flex;align-items:flex-start;gap:.4rem;
}
.restricted-notice__outcome::before{
  content:"→";flex:none;color:var(--accent);font-weight:700;
}

/* ============================================================================
   PANEL POLISH v8 — progressive disclosure on capability groups (S2.A2)
   ========================================================================== */
.cap-disclose{
  margin-block-start:.7rem;border-block-start:1px solid var(--line-soft);padding-block-start:.6rem;
}
.cap-disclose > summary{
  cursor:pointer;list-style:none;
  display:flex;align-items:center;gap:.4rem;
  font-family:var(--font-mono);font-size:.74rem;font-weight:700;letter-spacing:.04em;
  color:var(--accent);
  min-height:32px;
}
html[data-locale="ja"] .cap-disclose > summary{ font-family:var(--font-jp); }
.cap-disclose > summary::-webkit-details-marker{ display:none; }
.cap-disclose > summary::before{
  content:"";flex:none;width:.5rem;height:.5rem;
  border-inline-end:1.5px solid currentColor;border-block-end:1.5px solid currentColor;
  transform:rotate(-45deg);transition:transform var(--dur) var(--ease);
}
.cap-disclose[open] > summary::before{ transform:rotate(45deg); }
.cap-disclose > summary:focus-visible{ outline:2px solid var(--focus);outline-offset:3px;border-radius:2px; }
.cap-disclose p{
  margin:.5rem 0 0;font-size:.82rem;line-height:1.6;color:var(--text-muted);
}
@media (prefers-reduced-motion: reduce){
  .cap-disclose > summary::before{ transition:none; }
}

/* ============================================================================
   PANEL AUDIT v9 — post-submit expectations (C-2) · document-currency stamp (D-2)
   ========================================================================== */

/* C-2 · "What happens after you submit" institutional note */
.engage-expect{
  margin:var(--sp-5) 0;padding:1.1rem 1.2rem;
  border:1px solid var(--inst-border);border-radius:var(--radius-institutional);
  background:color-mix(in srgb, var(--accent) 4%, var(--inst-value-bg));
  border-inline-start:3px solid var(--accent);
}
.engage-expect__title{
  margin:0 0 .7rem;font-family:var(--font-display);font-size:.95rem;letter-spacing:.04em;
  display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:baseline;
}
html[data-locale="ja"] .engage-expect__title{letter-spacing:.02em}
.engage-expect__title-ja{font-size:.8rem;color:var(--text-muted);font-weight:600}
.engage-expect__list{margin:0;padding-inline-start:1.4rem;display:grid;gap:.4rem}
.engage-expect__list li{font-size:.88rem;line-height:1.55;color:var(--text-soft)}
.engage-expect__list li::marker{color:var(--accent);font-family:var(--font-mono);font-weight:700}
.engage-expect__note{margin:.8rem 0 0;font-size:.78rem;line-height:1.5;color:var(--text-muted)}

/* D-2 · Document-currency stamp in the footer legal row */
.footer__updated{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}
.footer__updated time{color:var(--text-soft)}

/* ============================================================================
   PANEL v10 — keigo gateway modal (native <dialog>, accessible, CSP-safe)
   ========================================================================== */
.gw-modal{
  border:1px solid var(--inst-border);border-radius:var(--radius-lg);
  padding:0;max-width:min(34rem,92vw);width:100%;
  background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow);
}
.gw-modal::backdrop{ background:color-mix(in srgb, #04070c 62%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px); }
.gw-modal__inner{ padding:1.5rem 1.6rem 1.35rem; }
.gw-modal__title{
  margin:0 0 .75rem;font-family:var(--font-display);font-size:1.05rem;letter-spacing:.03em;
  display:flex;flex-wrap:wrap;gap:.3rem .55rem;align-items:baseline;
  border-inline-start:3px solid var(--accent);padding-inline-start:.7rem;
}
html[data-locale="ja"] .gw-modal__title{ letter-spacing:.02em; }
.gw-modal__title-ja{ font-size:.85rem;color:var(--text-muted);font-weight:600; }
.gw-modal__body{ margin:0 0 .7rem;font-size:.86rem;line-height:1.65;color:var(--text-soft); }
.gw-modal__body--ja{ color:var(--text-muted);font-size:.83rem; }
.gw-modal__actions{ display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end;margin-block-start:1.1rem; }
.gw-modal__actions .btn{ flex-direction:column;line-height:1.15;gap:.1rem;min-height:auto;padding-block:.55rem; }
.gw-modal__btn-ja{ font-size:.68rem;opacity:.85;font-weight:600; }
@media (prefers-reduced-motion: no-preference){
  .gw-modal[open]{ animation:gw-in .2s var(--ease); }
  @keyframes gw-in{ from{ opacity:0;transform:translateY(6px) scale(.99); } to{ opacity:1;transform:none; } }
}
@media (min-width:720px){}
@media (min-width:1040px){}

/* ============================================================================
   PANEL v13 — STRICT PER-LOCALE RENDERING (S1)
   JA mode = Japanese only; every other locale = no Japanese labels.
   EN halves carry .l-en (or __en); JA halves are matched by [data-i18n$="Ja"] + __ja.
   ========================================================================== */
/* Hide Japanese halves outside JA */
html:not([data-locale="ja"]) [data-i18n$="Ja"],
html:not([data-locale="ja"]) .th-ja,
html:not([data-locale="ja"]) .page-title__ja,
html:not([data-locale="ja"]) .pathway__ja,
html:not([data-locale="ja"]) .btn--gateway__ja,
html:not([data-locale="ja"]) .restricted-notice__ja,
html:not([data-locale="ja"]) .inst-infra__title-ja,
html:not([data-locale="ja"]) .kaisha-anchor__tag-ja,
html:not([data-locale="ja"]) .engage-expect__title-ja,
html:not([data-locale="ja"]) .gw-modal__title-ja,
html:not([data-locale="ja"]) .gw-modal__body--ja,
html:not([data-locale="ja"]) .gw-modal__btn-ja{ display:none !important; }

/* Hide English halves inside JA */
html[data-locale="ja"] .l-en,
html[data-locale="ja"] .btn--gateway__en,
html[data-locale="ja"] .pathway__en,
html[data-locale="ja"] .restricted-notice__en,
html[data-locale="ja"] p[lang="en"][data-i18n$="En"]{ display:none !important; }

/* ============================================================================
   PANEL v13 — symbolic equation panel (S4) + honest terminal drawer (S4)
   ========================================================================== */

/* Symbolic governing-form caption in the map panel (abstract, no values) */
.mdp__equation{margin:.6rem 0 0;padding:.6rem .7rem;border:1px dashed var(--inst-border);border-radius:var(--radius-institutional);background:color-mix(in srgb, var(--accent) 4%, transparent)}
.mdp__equation-cap{display:block;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-block-end:.25rem}
html[data-locale="ja"] .mdp__equation-cap{text-transform:none;letter-spacing:.02em}
.mdp__equation-form{font-family:var(--font-mono);font-size:.95rem;color:var(--accent-strong);letter-spacing:.02em}

/* Terminal drawer — slides up from the bottom; keeps <dialog> a11y (focus trap, Esc) */
/* V11: the fake secure-terminal modal chrome was removed — see site.js. */
}
}

/* ============================================================
   Mission #10246 — Space-first components (self-hosted, CSP-safe)
   ============================================================ */

/* --- Space hero (SVG/CSS field) --- */
.hero--space{position:relative;overflow:hidden;background:var(--bg);border-bottom:1px solid var(--line-soft)}
.hero--space .hero__stage{position:relative}
.hero--space .hero__field{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero--space .hero__field-svg{width:100%;height:100%;display:block}
.hero--space .hero__scrim{position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,var(--bg) 0%,var(--bg) 34%,rgba(0,0,0,0) 82%)}
.hero--space .hero__inner{position:relative;z-index:1;padding-block:clamp(3rem,9vw,6.5rem);max-width:760px}
.hero--space.hero--sub .hero__inner{padding-block:clamp(2.25rem,6vw,4.5rem)}
.hero--space h1{margin:.35em 0 .4em;font-size:clamp(2rem,5vw,3.1rem);line-height:1.08}
.hero--space .lead{max-width:60ch}
.hero--space .hero__rule{height:1px;background:var(--line);margin-top:var(--sp-6)}
@media (prefers-reduced-motion: no-preference){
  .hero__arcs path{stroke-dasharray:1600;stroke-dashoffset:1600;animation:heroDraw 2.4s var(--ease) forwards}
  .hero__arcs path:nth-child(2){animation-delay:.18s}
  .hero__arcs path:nth-child(3){animation-delay:.36s}
  .hero__arcs path:nth-child(4){animation-delay:.54s}
  .hero__motes circle{animation:heroTwinkle 4.5s ease-in-out infinite}
  .hero__motes circle:nth-child(even){animation-delay:1.6s}
  @keyframes heroDraw{to{stroke-dashoffset:0}}
  @keyframes heroTwinkle{0%,100%{opacity:.35}50%{opacity:.9}}
}

/* --- Generic section helpers --- */
.section__lead{max-width:70ch;color:var(--text-soft)}
.section--hero-lite{padding-top:clamp(2.5rem,6vw,4.5rem)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-5)}
.fineprint{margin-top:var(--sp-4);font-size:.86rem;color:var(--text-muted);max-width:74ch}

/* --- Dual-pathway selector --- */
.pathsel__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);margin-top:var(--sp-6)}
@media (min-width:860px){.pathsel__grid{grid-template-columns:6fr 4fr}} /* asymmetric 60/40, Space first */
@media (max-width:640px){.pathsel__grid{grid-template-columns:1fr}}
.pathcard{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-panel);text-decoration:none;color:var(--text);transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.pathcard:hover,.pathcard:focus-visible{border-color:var(--accent);box-shadow:var(--shadow)}
.pathcard--primary{background:linear-gradient(160deg,var(--bg-panel),var(--map-fill));border-color:var(--accent)}
.pathcard__badge{align-self:flex-start;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.2rem .7rem}
.pathcard__icon{width:44px;height:44px;color:var(--accent);margin:var(--sp-2) 0}
.pathcard__label{font-family:var(--font-display);font-size:1.28rem;font-weight:600;line-height:1.15}
.pathcard--primary .pathcard__label{font-size:1.5rem}
.pathcard__desc{color:var(--text-soft);font-size:.95rem}
.pathcard__cta{margin-top:auto;padding-top:var(--sp-3);color:var(--accent);font-weight:600}
.pathcard__cta::after{content:" →"}
.pathsel__note{margin-top:var(--sp-5);padding:var(--sp-4);border-inline-start:3px solid var(--muted-red);background:var(--bg-elevated);border-radius:var(--radius);color:var(--text-soft);font-size:.92rem}

/* --- Card grids --- */
.card-grid{display:grid;gap:var(--sp-4);margin-top:var(--sp-5)}
.card-grid--2{grid-template-columns:repeat(2,1fr)}
.card-grid--3{grid-template-columns:repeat(3,1fr)}
.card-grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.card-grid--3,.card-grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.card-grid--2,.card-grid--3,.card-grid--4{grid-template-columns:1fr}}
.mini-card{padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-panel)}
.mini-card h3{margin:0 0 .4em;font-size:1.05rem;color:var(--text)}
.mini-card p{margin:0;color:var(--text-soft);font-size:.93rem}

/* --- feature list --- */
.feature-list{list-style:none;padding:0;margin:var(--sp-5) 0;display:grid;gap:var(--sp-2)}
.feature-list li{position:relative;padding-inline-start:1.6rem;color:var(--text-soft)}
.feature-list li::before{content:"";position:absolute;inset-inline-start:0;top:.55em;width:8px;height:8px;background:var(--accent);border-radius:2px;transform:rotate(45deg)}

/* --- context / evidence badges --- */
.ctx-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .7rem;border-radius:var(--radius-pill);border:1px solid var(--line);margin-bottom:var(--sp-3)}
.ctx-badge--lit{color:var(--graphite);background:var(--inst-label-bg)}
.ctx-badge--uax{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
.ctx-badge--lit::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--graphite)}
.ctx-badge--uax::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--accent-ink)}

/* --- callouts --- */
.callout{margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-soft);max-width:80ch}
.callout--explicit{border-inline-start:3px solid var(--muted-red);background:var(--bg-panel);color:var(--text)}
.callout--disclaimer{border-inline-start:3px solid var(--muted-red);font-size:.9rem}
.jp-invest{margin-top:var(--sp-6)}
.jp-invest__title{margin-top:var(--sp-2)}
.tag{display:inline-block;font-size:.78rem;font-weight:600;padding:.25rem .7rem;border-radius:var(--radius);margin:var(--sp-2) 0}
.tag--defence{color:var(--muted-red);border:1px solid var(--muted-red)}

/* --- split (text + diagram) --- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:center;margin-top:var(--sp-5)}
@media (max-width:820px){.split{grid-template-columns:1fr}}
.numbered{list-style:none;counter-reset:n;padding:0;margin:0;display:grid;gap:var(--sp-4)}
.numbered li{counter-increment:n;position:relative;padding-inline-start:2.4rem}
.numbered li::before{content:counter(n);position:absolute;inset-inline-start:0;top:0;width:1.7rem;height:1.7rem;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:.85rem;font-weight:700}
.numbered h3{margin:0 0 .2em;font-size:1rem}
.numbered p{margin:0;color:var(--text-soft);font-size:.92rem}
.diagram{margin:0;padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-panel)}
.diagram__svg{width:100%;height:auto;display:block}
.diagram__lbl{fill:var(--text-soft);font-family:var(--font-body)}
.diagram__cap{margin-top:var(--sp-2);font-size:.8rem;color:var(--text-muted);text-align:center}
@media (prefers-reduced-motion: no-preference){
  .diagram__glass{transform-box:fill-box;transform-origin:center top;animation:glassFlow 3.6s ease-in-out infinite}
  @keyframes glassFlow{0%,100%{opacity:.35;transform:scaleY(.82)}50%{opacity:.7;transform:scaleY(1)}}
}

/* --- link cards (defence domain hub) --- */
.link-card{display:flex;flex-direction:column;gap:.4rem;padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-panel);text-decoration:none;color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.link-card:hover,.link-card:focus-visible{border-color:var(--accent);box-shadow:var(--shadow)}
.link-card h3{margin:0;font-size:1.1rem}
.link-card__lines{margin:0;color:var(--text-muted);font-family:var(--font-mono);font-size:.82rem;letter-spacing:.03em}
.link-card__cta{margin-top:var(--sp-2);color:var(--accent);font-weight:600;font-size:.9rem}
.link-card__cta::after{content:" →"}

/* Dark-theme contrast fixes (Panel 1 findings 1-3): keep badges/text >= AA 4.5:1 */
html[data-theme="dark"] .ctx-badge--lit{color:var(--text-soft);background:var(--bg-elevated);border-color:var(--line)}
html[data-theme="dark"] .ctx-badge--lit::before{background:var(--text-soft)}

/* WCAG 2.2.2 (Pause, Stop, Hide) — Panel 1 finding 4: the decorative unit-cell cube
   no longer auto-plays continuous motion. It rests static and animates only while the
   user engages the domain map (hover/focus). Reduced-motion already disables it entirely. */
.cell3d__cube{animation-play-state:paused}
#map:hover .cell3d__cube,#map:focus-within .cell3d__cube{animation-play-state:running}

/* Legacy email route retained as an accessible alternative to the online form. */
.contact-block{margin-top:var(--sp-5);padding:var(--sp-6);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-panel)}
.contact-block__label{margin:0 0 var(--sp-2);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted)}
.contact-block__cta{margin:0 0 var(--sp-4)}
.contact-block__lead{margin:0 0 var(--sp-4);color:var(--text-soft);max-width:74ch}
.contact-block__points{margin:0 0 var(--sp-4);padding-inline-start:1.2rem;display:grid;gap:var(--sp-2);color:var(--text-soft);font-size:.92rem;max-width:74ch}
.contact-block__legal{margin:0;font-size:.86rem;color:var(--text-muted)}
.contact-block__legal a{color:var(--accent)}

/* v7 — investor / collaboration additions (mission 102557) */
.jp-invest__sub{margin-block-start:var(--sp-6)}
.jp-invest__subtitle{font-family:var(--font-display);font-size:1.15rem;line-height:1.25;margin:0 0 var(--sp-3);color:var(--text)}
.gate-list{margin:var(--sp-4) 0 0;padding-inline-start:1.25rem;display:grid;gap:.5rem}
.gate-list li{color:var(--text-soft);line-height:1.5}
.mini-card__list{margin:.6rem 0 0;padding-inline-start:1.1rem;display:grid;gap:.4rem}
.mini-card__list li{color:var(--text-muted);font-size:.92rem;line-height:1.45}
.mini-card__mech{margin-block-start:.55rem;padding-block-start:.55rem;border-block-start:1px solid var(--line-soft);color:var(--text-muted);font-size:.9rem;line-height:1.45}
.decouple{margin:var(--sp-5) 0 var(--sp-6)}
.decouple__title{font-family:var(--font-display);font-size:1.2rem;margin:0 0 var(--sp-2);color:var(--text)}
.callout--status{border-inline-start:3px solid var(--accent);font-size:.9rem}

/* ============================================================================
   v8 components
   ========================================================================== */

/* Audience router — sorts visitors by role before the subject pathways.
   Flat institutional cells, no card chrome: this is an index, not a feature grid. */
.section--tight{padding-block:var(--sp-6)}
.audience__title{font-family:var(--font-display);font-size:clamp(1.15rem,3.2vw,1.5rem);letter-spacing:.01em;margin:0 0 var(--sp-5)}
html[data-locale="ja"] .audience__title{text-transform:none;letter-spacing:0}
.audience__grid{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.audience-card{position:relative;background:var(--bg-elevated);padding:1.35rem 1.25rem 1.15rem;display:flex;flex-direction:column;gap:.5rem}
.audience-card__idx{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;color:var(--text-muted)}
.audience-card__title{font-family:var(--font-display);font-size:.98rem;line-height:1.35;margin:0;color:var(--text)}
.audience-card__body{font-size:.86rem;line-height:1.6;color:var(--text-muted);margin:0;flex:1}
.audience-card__cta{
  margin-block-start:.35rem;align-self:flex-start;
  font-family:var(--font-display);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);text-decoration:none;border-block-end:1px solid currentColor;padding-block-end:2px;
}
html[data-locale="ja"] .audience-card__cta{text-transform:none;letter-spacing:.02em}
.audience-card__cta::after{content:" \2192"}
html[dir="rtl"] .audience-card__cta::after{content:" \2190"}
.audience-card__cta:hover,.audience-card__cta:focus-visible{color:var(--text)}
.audience__note{margin:var(--sp-4) 0 0;font-size:.78rem;line-height:1.6;color:var(--text-muted);max-width:70ch}

/* Maturity position — the plain-language "what we do NOT claim" block */
.maturity{
  margin-block-start:var(--sp-6);
  border:1px solid var(--line);border-inline-start:3px solid var(--accent);
  border-radius:var(--radius-institutional);
  background:var(--bg-elevated);padding:1.25rem 1.35rem;
}
.maturity__title{font-family:var(--font-display);font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 .55rem;color:var(--text)}
html[data-locale="ja"] .maturity__title{text-transform:none;letter-spacing:0}
.maturity__lead{margin:0 0 .8rem;font-size:.88rem;line-height:1.65;color:var(--text-soft);max-width:78ch}
.maturity__list{margin:0;padding-inline-start:1.1rem;display:grid;gap:.5rem}
.maturity__list li{font-size:.85rem;line-height:1.6;color:var(--text-muted);max-width:78ch}

/* End-user / end-use policy statement */
.enduse{
  margin-block:var(--sp-5) var(--sp-4);
  border:1px solid var(--line);border-radius:var(--radius-institutional);
  background:var(--bg-elevated);padding:1.2rem 1.3rem;
}
.enduse__title{font-family:var(--font-display);font-size:.92rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 .5rem;color:var(--text)}
html[data-locale="ja"] .enduse__title{text-transform:none;letter-spacing:0}
.enduse p{font-size:.86rem;line-height:1.7;color:var(--text-muted);max-width:80ch;margin:0}
.enduse__link{margin-block-start:.7rem !important}
.enduse__link a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:.15em}

/* Engagement page: stated response window + Japanese-language enquiry route */
.contact-block__sla{
  margin:.85rem 0 0;font-size:.82rem;line-height:1.6;color:var(--text-soft);
  border-inline-start:2px solid var(--accent);padding-inline-start:.75rem;max-width:70ch;
}
.contact-block__ja{
  margin-block-start:1.15rem;padding:1rem 1.1rem;
  border:1px solid var(--line);border-radius:var(--radius-institutional);background:var(--bg);
}
.contact-block__ja-title{font-family:var(--font-jp);font-size:.9rem;font-weight:700;margin:0 0 .45rem;color:var(--text)}
.contact-block__ja p{font-family:var(--font-jp);font-size:.84rem;line-height:1.85;color:var(--text-muted);margin:0}

/* No-JS notice: the i18n binder, theme toggle and domain map are all script-driven */
.noscript-note{
  margin:0;padding:.85rem var(--gutter);
  background:var(--bg-elevated);border-block-end:1px solid var(--line);
  font-size:.8rem;line-height:1.6;color:var(--text-muted);text-align:center;
}

/* Legal notices — real documents now, with site chrome and clause structure */
.legal-page-wrap{display:block}
.legal-page__meta{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;
  color:var(--text-muted);margin:.65rem 0 0;
}
.legal-page__langnote{
  margin:1rem 0 0;padding:.7rem .85rem;font-size:.78rem;line-height:1.6;
  color:var(--text-muted);background:var(--bg-elevated);
  border:1px solid var(--line);border-radius:var(--radius-institutional);
}
.legal-clause{margin-block-start:var(--sp-6)}
.legal-clause h2{
  font-family:var(--font-display);font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;
  margin:0 0 .7rem;color:var(--text);
  padding-block-end:.4rem;border-block-end:1px solid var(--line);
}
html[data-locale="ja"] .legal-clause h2{text-transform:none;letter-spacing:0}
.legal-clause p{font-size:.9rem;line-height:1.8;color:var(--text-soft);margin:0 0 .85rem;max-width:74ch}
.legal-clause p:last-child{margin-block-end:0}
.legal-page__contact{margin-block-start:var(--sp-6);font-size:.85rem;color:var(--text-muted)}
.legal-page__nav{margin-block-start:var(--sp-4);font-size:.85rem}
.legal-page__nav a{color:var(--accent);text-decoration:underline;text-underline-offset:.15em}

/* Inline SVG padlock replaces the emoji used in v7's restricted-category table */
svg.lock-badge{vertical-align:-2px;margin-inline-end:.3rem;color:var(--accent);flex:none}

@media (min-width:640px){
  .audience__grid{grid-template-columns:repeat(3,1fr)}
}

/* Further-reading strip + cross-page "Continue" list. Same flat institutional cells as the
   audience router: this is an index, not a feature grid. */
.further__title,.alsoin__title{font-family:var(--font-display);font-size:clamp(1.05rem,2.8vw,1.35rem);text-transform:uppercase;letter-spacing:.03em;margin:0 0 var(--sp-4)}
html[data-locale="ja"] .further__title,html[data-locale="ja"] .alsoin__title{text-transform:none;letter-spacing:0}
.alsoin{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.alsoin__item{background:var(--bg-elevated)}
.alsoin__item a{
  display:flex;flex-direction:column;gap:.3rem;
  padding:1.1rem 1.2rem;text-decoration:none;color:inherit;height:100%;
  transition:background var(--dur) var(--ease);
}
.alsoin__item a:hover,.alsoin__item a:focus-visible{background:var(--bg);outline:none}
.alsoin__item a:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}
.alsoin__label{
  font-family:var(--font-display);font-size:.92rem;font-weight:700;color:var(--accent);
  line-height:1.35;
}
.alsoin__label::after{content:" \2192";font-weight:400}
html[dir="rtl"] .alsoin__label::after{content:" \2190"}
.alsoin__desc{font-size:.82rem;line-height:1.6;color:var(--text-muted)}

@media (min-width:640px){
  .alsoin--3{grid-template-columns:repeat(3,1fr)}
  .alsoin{grid-template-columns:repeat(2,1fr)}
  .alsoin--3{grid-template-columns:repeat(3,1fr)}
}

/* Disclosure rationale, stated inside the corporate table rather than far below it */
.kaisha-rationale{
  margin:var(--sp-4) 0 0;padding:.95rem 1.1rem;
  border:1px solid var(--line);border-inline-start:3px solid var(--accent);
  border-radius:var(--radius-institutional);background:var(--bg);
  display:grid;gap:.55rem;
}
.kaisha-rationale .l-en{font-size:.84rem;line-height:1.7;color:var(--text-soft);max-width:80ch}
.kaisha-rationale__ja{font-family:var(--font-jp);font-size:.8rem;line-height:1.85;color:var(--text-muted);max-width:60ch}

/* Investor request list: same four mailto routes, demoted from four competing ghost buttons
   so the section's primary CTA stays dominant. */
.cta-ladder__list{margin:.9rem 0 0;padding-inline-start:1.35rem;display:grid;gap:.55rem}
.cta-ladder__list li{font-size:.88rem;line-height:1.6;color:var(--text-muted)}
.cta-ladder__list a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:.15em}
.cta-ladder__list a:hover,.cta-ladder__list a:focus-visible{color:var(--text)}

/* Maturity note repeated wherever portfolio codenames appear */
.callout--maturity{
  border-inline-start:3px solid var(--accent);
  font-size:.84rem;line-height:1.7;color:var(--text-muted);max-width:82ch;
}
.callout--maturity a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:.15em}

/* Section headings introduced in v9 to close h1->h3 skips on the promoted pages.
   Styled to match .further__title so the pages read the same as before the fix. */
.horizons-grid__title,.roadmap__heading{
  font-family:var(--font-display);font-size:clamp(1.05rem,2.8vw,1.3rem);
  text-transform:uppercase;letter-spacing:.03em;margin:var(--sp-6) 0 var(--sp-4);
}
html[data-locale="ja"] .horizons-grid__title,html[data-locale="ja"] .roadmap__heading{text-transform:none;letter-spacing:0}

/* Controlled Due-Diligence Datapack — inline SVG (v9). Replaces a 590 KB raster that was
   English-only, carried the wrong logo mark, and was 74% of the homepage's wire cost.
   Themed through the existing custom properties, so it follows light/dark automatically. */
.infographic--svg{margin:var(--sp-6) 0;border:1px solid var(--line);border-radius:var(--radius-institutional);background:var(--bg-elevated);padding:1.1rem .6rem .4rem}
.dd{display:block;width:100%;height:auto}
.dd__hex{fill:var(--map-fill);stroke:var(--accent);stroke-width:1.4}
.dd__icon{fill:none;stroke:var(--accent);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dd__arrow{fill:none;stroke:var(--line);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* RTL: mirror the flow arrows only — the hexagons and their labels stay upright. */
html[dir="rtl"] .dd__arrow{transform:scaleX(-1);transform-origin:center;transform-box:view-box}

/* Gate labels live in HTML, not in the SVG: <text> cannot wrap, and several locales are far
   longer than English ("Kompartimentierung", "Sınırlandırılmış açıklama"). A grid keeps each
   label under its own hexagon and lets it wrap to as many lines as it needs. */
.dd-legend{list-style:none;margin:.15rem 0 0;padding:0 24px;display:grid;grid-template-columns:repeat(5,1fr);gap:.25rem}
.dd-legend__item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.15rem;padding:0 .2rem}
.dd-legend__num{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;color:var(--text-muted)}
.dd-legend__label{font-family:var(--font-display);font-size:.82rem;font-weight:700;line-height:1.3;color:var(--text);hyphens:auto;overflow-wrap:anywhere}
html[data-locale="ja"] .dd-legend__label{font-family:var(--font-jp);font-size:.78rem}
.dd-foot{margin:.9rem 0 0;text-align:center;font-family:var(--font-display);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
html[data-locale="ja"] .dd-foot{text-transform:none;letter-spacing:.02em;font-family:var(--font-jp)}
/* Narrow viewports: five columns become a stacked list and the arrows stop meaning anything,
   so the marks row is dropped rather than squeezed. */
@media (max-width:640px){
  .dd-fig .dd{display:none}
  .dd-legend{grid-template-columns:1fr;gap:.5rem;padding:0}
  .dd-legend__item{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:.6rem;text-align:start;
    border-block-end:1px solid var(--line-soft);padding-block-end:.45rem}
  .dd-legend__label{font-size:.9rem}
}

/* ============================================================================
   Print (v9, WI-15)
   This audience prints. A ministry desk officer attaches a printout to an internal
   note, and until now that printout carried the navigation, the theme toggle and the
   language menu. Print rules force the light palette (dark backgrounds waste toner and
   render grey), drop interactive furniture, and expose link targets so the paper copy
   stays traceable back to the source.
   ========================================================================== */
@media print {
  /* Force the institutional light palette regardless of the reader's chosen theme. */
  :root, html[data-theme="dark"], html[data-theme="light"] {
    --bg:#fff; --bg-elevated:#fff; --bg-panel:#fff; --bg-header:#fff;
    --text:#000; --text-soft:#1a1a1a; --text-muted:#333;
    --accent:#1a3a5c; --accent-strong:#0f2740; --accent-ink:#fff;
    --line:#999; --line-soft:#ccc; --shadow:none;
    --map-stroke:#676767; --map-fill:#f0f0f0; --map-core:#1a3a5c; --map-active:#1a3a5c;
    --inst-border:#999; --inst-label-bg:#f4f4f4; --inst-value-bg:#fff;
  }
  html, body { background:#fff !important; color:#000 !important; }

  /* Interactive furniture has no meaning on paper. */
  .site-header, .primary-nav, .nav-toggle, .theme-toggle, .lang-switch,
  .header__actions, .skip-link, .noscript-note, .mdp__chips, .mdp-canvas,
  .cell3d, .gw-modal, .contact-reveal__btn, .btn--cta,
  .hero__field, .hero__scrim, .footer__nav { display:none !important; }

  /* Buttons become plain text: a printed "button" is a lie. */
  .btn, .btn--primary, .btn--ghost, .btn--gateway {
    background:none !important; border:0 !important; color:#000 !important;
    padding:0 !important; font-weight:700; text-decoration:underline;
  }

  /* Make the paper copy traceable: expose the URL behind every content link. */
  main a[href^="http"]::after { content:" <" attr(href) ">"; font-size:9pt; color:#444; word-break:break-all; }
  main a[href^="#"]::after, main a[href^="/"]::after { content:""; }
  /* mailto: is deliberately NOT expanded. attr(href) would print the whole URL-encoded
     string — "<mailto:…?subject=Unclassified%20Investor%20Brief%20request>" — after each of
     the four request links. The engagement page prints the address as link text anyway. */

  /* The hero reserves ~736px of viewport height for a decorative field that print hides,
     which cost most of the first sheet. Collapse it to its text. */
  .hero, .hero--sub, .hero--space { min-height:0 !important; }
  .hero__stage { min-height:0 !important; display:block !important; }
  .hero__inner { min-height:0 !important; padding-block:0 !important; max-width:none; }
  .hero__rule { display:none; }
  .page-hero { padding-block:0 !important; }

  /* Typography for paper, not screens. Component rules such as `.hero h1` outrank a bare
     `h1` selector, so these overrides have to be explicit or they simply do not apply. */
  body { font-size:10.5pt; line-height:1.45; }
  h1, .page-title, .hero h1 { font-size:20pt !important; line-height:1.2 !important; }
  h2, .mdp__title, .further__title, .alsoin__title,
  .horizons-grid__title, .roadmap__heading { font-size:14pt !important; }
  h3, .legal-clause h2 { font-size:11.5pt !important; }
  .lead, .hero .lead, .lede, .section__lead { font-size:10.5pt !important; line-height:1.5 !important; }
  .section { padding-block:0.6rem !important; }
  .container, .container--wide { max-width:none; padding-inline:0; }

  /* Nothing that reads as a unit should break across a page. */
  .kaisha-table tr, .kaisha-rationale, .mini-card, .audience-card, .maturity,
  .enduse, .legal-clause, .roadmap__phase, .inst-infra__cell, .collab-cell,
  .dd-legend__item, .restricted-notice, .safety, .callout, figure {
    break-inside:avoid; page-break-inside:avoid;
  }
  h1, h2, h3 { break-after:avoid; page-break-after:avoid; }

  /* The corporate table is the page most likely to be printed and filed. */
  .kaisha-scroll { overflow:visible !important; }
  .kaisha-table { width:100%; border-collapse:collapse; }
  .kaisha-table th, .kaisha-table td { border:1px solid #999 !important; padding:4pt 6pt; }

  /* Grids collapse to a readable column count on A4. */
  .audience__grid, .alsoin, .alsoin--3, .card-grid--3, .card-grid--4 { grid-template-columns:1fr 1fr !important; }
  .horizons-grid, .cap-groups { grid-template-columns:1fr 1fr !important; }

  /* .audience__grid and .alsoin draw their hairlines with `gap:1px` over a tinted container
     background. On paper --line is a solid grey, so any cell the grid does not fill prints
     as a large grey rectangle. Swap the technique for real borders. */
  .audience__grid, .alsoin { background:none !important; border:0 !important; gap:0 !important; }
  .audience-card, .alsoin__item { border:1px solid #999 !important; background:none !important; }
  .audience-card + .audience-card, .alsoin__item + .alsoin__item { border-inline-start:0 !important; }

  /* The interactive map is meaningless on paper; its text panel is not. */
  .mdp__svg { max-width:11cm; }

  /* Every printed page should carry the source domain and the capability-level caveat. */
  .site-footer { border-top:1px solid #999; padding-top:6pt; }
  /* The footer contact button is interactive and hidden in print, which would leave a printed
     page with no address on it. Print the engagement address as static text instead. */
  .contact-reveal::after { content:"engagement@uax.com.tr"; font-size:9pt; color:#333; }
  .footer__legal-row, .ref-note { font-size:8.5pt; color:#333 !important; }
}

/* Contextual note beside 設立年 (Panel 2, G5): quieter than the value it qualifies. */
.kaisha-table td .kaisha-note,.kaisha-note{display:inline-block;margin-block-start:.3rem;font-family:var(--font-body);font-size:.76rem;font-weight:400;line-height:1.55;color:var(--text-muted);letter-spacing:0;max-width:56ch}
html[data-locale="ja"] .kaisha-note{font-family:var(--font-jp);font-size:.74rem;line-height:1.75}

/* Roadmap: what each phase asks of the counterparty, and how the site's three numbered
   sequences relate. Quieter than the phase title it qualifies. */
.roadmap__req{margin:.45rem 0 0;font-size:.8rem;line-height:1.6;color:var(--text-muted);max-width:46ch}
.roadmap-recon{margin-block-start:var(--sp-6);border:1px solid var(--line);border-inline-start:3px solid var(--accent);border-radius:var(--radius-institutional);background:var(--bg-elevated);padding:1.2rem 1.3rem}
.roadmap-recon .roadmap__heading{margin-block-start:0}
.roadmap-recon__body{font-size:.88rem;line-height:1.75;color:var(--text-soft);max-width:80ch;margin:0}
.roadmap-recon__links{margin:.85rem 0 0;font-size:.84rem}
.roadmap-recon__links a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:.15em}


/* ============================================================================
   V11 — conversion layer
   Proof tiles, the operating-principles bar (which replaced the certification-
   like "seals"), provenance labels, status tags, the status matrix and the
   clipboard row on the intake pages. Light-first, tokenised, no new colours.
   ========================================================================== */

/* Proof before restriction: three checkable tiles directly under the hero. */
.proofbar{ padding:var(--sp-6) 0 var(--sp-2); }
.proofbar__title{ margin:0 0 var(--sp-4); }
.proofbar__grid{
  list-style:none; margin:0; padding:0;
  display:grid; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.prooftile{
  background:var(--bg-elevated);
  padding:1.25rem 1.15rem 1.1rem;
  display:flex; flex-direction:column; gap:.5rem;
}
.prooftile__label{
  margin:0; font-family:var(--font-display); font-size:1rem; font-weight:700;
  letter-spacing:.01em; color:var(--text);
}
.prooftile__body{ margin:0; color:var(--text-soft); font-size:.92rem; line-height:1.5; }
.prooftile__link{ margin-block-start:auto; padding-block-start:.6rem; font-weight:600; }
.prooftile__link::after{ content:" →"; }

/* Operating principles. Deliberately NOT a medallion: a seal read as a certificate
   the company does not hold, which is exactly the impression to avoid. */
.principles{
  border-block:1px solid var(--line);
  background:var(--bg-elevated);
  padding:var(--sp-5) 0;
}
.principles__label{
  margin:0 0 var(--sp-3);
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--text-muted);
}
.principles__list{
  list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-3);
}
.principles__list li{
  position:relative; padding-inline-start:1.1rem;
  color:var(--text); font-size:.95rem; line-height:1.45;
}
.principles__list li::before{
  content:""; position:absolute; inset-inline-start:0; inset-block-start:.55em;
  width:.42rem; height:.42rem; border:1px solid var(--accent); border-radius:1px;
}
.principles__note{
  margin:var(--sp-4) 0 0; max-width:80ch;
  color:var(--text-muted); font-size:.85rem; line-height:1.5;
}

/* Provenance labels — the claim taxonomy made visible on cards, rows and captions. */
.prov{
  display:inline-block; margin:0 0 .5rem;
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.07em;
  text-transform:uppercase; padding:.16rem .5rem;
  border:1px solid var(--line); border-radius:var(--radius-institutional);
  color:var(--text-muted); background:var(--bg);
}
.prov--uax{ border-color:var(--accent); color:var(--accent); }
.prov--published{ border-color:var(--graphite); color:var(--text-soft); }
.prov--third{ border-color:var(--accent-strong); color:var(--accent-strong); }
.prov--process{ border-style:dashed; }
.prov--illustrative{ border-style:dotted; }

.evcard{ display:flex; flex-direction:column; }
.evcard h3{ font-size:1.02rem; line-height:1.3; }
.evcard__cta{ margin-block-start:auto; padding-block-start:var(--sp-3); font-weight:600; }

.depth{ margin-block-start:var(--sp-6); }
.depth__title{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--text-muted); margin:0 0 var(--sp-3);
}
.corp-links{ margin-block-start:var(--sp-5); }

/* Status tags. Four states, visually distinct without any of them reading as a badge
   of achievement: "not claimed" must not look like a certification mark. */
.status-tag{
  display:inline-block;
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.05em;
  padding:.18rem .55rem; border-radius:var(--radius-institutional);
  border:1px solid var(--line); color:var(--text-soft); background:var(--bg);
  white-space:nowrap;
}
.status-tag--held{ border-color:var(--accent); color:var(--accent); }
.status-tag--applied{ border-style:dashed; white-space:normal; }
.status-tag--stated{ border-style:dotted; }
.status-tag--not-held,
.status-tag--not-claimed{ border-color:var(--status-negative); color:var(--status-negative); }
.status-tag--n-a{ color:var(--text-muted); }
.status-tag--gated{ border-style:dashed; color:var(--text-muted); white-space:normal; }

/* Status matrix / source annex tables. */
.sm-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.statusmatrix{
  width:100%; border-collapse:collapse; margin-block-start:var(--sp-4);
  font-size:.9rem;
}
.statusmatrix th,
.statusmatrix td{
  border:1px solid var(--inst-border); padding:.6rem .7rem;
  text-align:start; vertical-align:top; line-height:1.45;
}
.statusmatrix thead th{
  background:var(--inst-label-bg); color:var(--text-soft);
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em;
  text-transform:uppercase; font-weight:600; white-space:nowrap;
}
.statusmatrix tbody th{ background:var(--inst-label-bg); font-weight:600; color:var(--text); }
.statusmatrix tbody td{ background:var(--inst-value-bg); color:var(--text-soft); }
.sm__note{ display:block; margin-block-start:.35rem; color:var(--text-muted); font-size:.82rem; }
.sm__legend{ margin-block-start:var(--sp-4); color:var(--text-muted); font-size:.86rem; max-width:80ch; }

.provlist{ margin:var(--sp-4) 0 0; }
.provlist dt{ margin-block-start:var(--sp-4); }
.provlist dd{ margin:.35rem 0 0; color:var(--text-soft); max-width:80ch; }

.pubfacts td{ font-size:.85rem; }

/* Clipboard row. Present wherever the intake is offered, because institutional webmail
   frequently ignores mailto: and used to make that route a dead end. */
.copy-row{
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-3);
  margin-block-start:var(--sp-4);
}
.btn--sm{ font-size:.82rem; padding:.42rem .8rem; }
.copy-row__status{
  font-family:var(--font-mono); font-size:.78rem; color:var(--accent);
}
.copy-row__manual{
  flex-basis:100%; margin:var(--sp-3) 0 0; padding:var(--sp-3);
  border:1px solid var(--line); border-radius:var(--radius);
  background:var(--bg-elevated); color:var(--text);
  font-family:var(--font-mono); font-size:.8rem; line-height:1.6;
  white-space:pre-wrap; overflow-x:auto;
}

/* Audience-route furniture. */
.fitlist li{ max-width:80ch; }
.needlist li{ font-family:var(--font-mono); font-size:.88rem; }
.offer__cta{ margin-block-start:var(--sp-5); }
.otherroutes{ margin-block-start:var(--sp-6); }
.otherroutes h3{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--text-muted); margin:0 0 var(--sp-2);
}
.otherroutes ul{ margin:0; padding-inline-start:1.1rem; }
.otherroutes li{ margin-block-end:.3rem; }
.pathcard__offer{
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.02em;
  color:var(--text-muted); padding-block-start:var(--sp-2);
}
.nextstep__cta{ display:flex; flex-wrap:wrap; gap:var(--sp-3); margin-block-start:var(--sp-5); }
.nextstep__tertiary{ margin-block-start:var(--sp-3); }
.contact-block__sla--lead{ margin-block-end:var(--sp-4); font-weight:600; color:var(--text); }
.legal-page__links{ margin-block-start:var(--sp-6); font-size:.9rem; }
.footer__head{
  font-family:var(--font-display); font-size:.95rem; font-weight:700;
  margin:0 0 var(--sp-3);
}

/* The reference sections re-parented under the engagement page's "full detail" heading. */
.subsection{ padding-block:var(--sp-6); }

@media (min-width:640px){
  .proofbar__grid{ grid-template-columns:repeat(3,1fr); }
  .principles__list{ grid-template-columns:repeat(3,1fr); gap:var(--sp-5); }
}
@media (min-width:900px){
  .alsoin--4{ grid-template-columns:repeat(4,1fr); }
  .footer__grid--4{ grid-template-columns:1.3fr 1fr 1fr 1fr; }
}

/* ==========================================================================
   V12 components — intake form, progressive-disclosure, accountable-person card
   ========================================================================== */

/* Same-origin intake form. Progressive enhancement over a plain POST. */
.intake-form{
  border:1px solid var(--line-soft);border-radius:var(--radius-lg);
  background:var(--bg-panel);padding:clamp(1rem,3vw,1.5rem);margin-block-end:var(--sp-4);
}
.intake-form__title{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.1rem;color:var(--text)}
.intake-form__lead{margin:0 0 var(--sp-4);color:var(--text-muted);font-size:.94rem;line-height:1.6}
.intake-form__grid{display:grid;grid-template-columns:1fr;gap:.85rem}
@media (min-width:620px){ .intake-form__grid{grid-template-columns:1fr 1fr} }
.intake-form__field{margin:0;display:flex;flex-direction:column;gap:.3rem}
.intake-form__field--full{grid-column:1 / -1}
.intake-form__field label{font-size:.82rem;font-weight:600;color:var(--text-soft)}
.intake-form__consent label{display:flex;align-items:flex-start;gap:.7rem;font-weight:500;line-height:1.45}
.intake-form__consent input[type="checkbox"]{width:1.15rem;height:1.15rem;margin-top:.15rem;flex:0 0 auto}
.intake-form input,.intake-form select{
  font:inherit;font-size:.95rem;color:var(--text);background:var(--bg);
  border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .7rem;min-height:44px;
  width:100%;box-sizing:border-box;
}
.intake-form input:focus-visible,.intake-form select:focus-visible{
  outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);
}
/* Honeypot — visually and functionally hidden from real users. */
.intake-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.intake-form__actions{margin:var(--sp-4) 0 0}
.intake-form__status{margin:var(--sp-3) 0 0;padding:.7rem .85rem;border-radius:var(--radius);font-size:.92rem;line-height:1.55}
.intake-form__status.is-pending{background:var(--bg-elevated);color:var(--text-muted)}
.intake-form__status.is-ok{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--text);border:1px solid var(--accent)}
.intake-form__status.is-error{background:color-mix(in srgb, var(--muted-red,#a33) 12%, var(--bg));color:var(--text);border:1px solid var(--muted-red,#a33)}
.contact-block__cta--alt{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-block:var(--sp-3);color:var(--text-muted);font-size:.9rem}

/* Progressive disclosure for the controlled-access reference detail. */
.disclosure{border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--bg-elevated);margin:0 0 var(--sp-4);overflow:hidden}
.disclosure > .subsection,.disclosure > *:not(summary){padding-block-start:var(--sp-4)}
.disclosure__summary{
  cursor:pointer;list-style:none;padding:1rem 1.15rem;font-family:var(--font-display);
  font-weight:700;color:var(--text);display:flex;align-items:center;gap:.6rem;min-height:44px;
}
.disclosure__summary::-webkit-details-marker{display:none}
.disclosure__summary::before{content:"▸";color:var(--accent);transition:transform var(--dur) var(--ease)}
.disclosure[open] > .disclosure__summary::before{transform:rotate(90deg)}
.disclosure__summary:hover{color:var(--accent)}
.disclosure__summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* Accountable-person card (homepage corporate section + evidence). */
.founder{
  display:grid;gap:1rem;border:1px solid var(--inst-border,var(--line-soft));
  border-radius:var(--radius-lg);background:var(--inst-value-bg,var(--bg-panel));
  padding:clamp(1rem,3vw,1.5rem);margin-block-start:var(--sp-4);
}
@media (min-width:720px){ .founder{grid-template-columns:auto 1fr;align-items:start;gap:1.4rem} }
.founder__id{min-width:9rem}
.founder__name{margin:0;font-family:var(--font-display);font-size:1.15rem;color:var(--text)}
.founder__role{margin:.2rem 0 0;color:var(--accent);font-size:.9rem;font-weight:600}
.founder__bio{margin:0 0 .8rem;color:var(--text-soft);line-height:1.65}
.founder__verify{margin:0;padding:0;list-style:none;display:grid;gap:.4rem}
.founder__verify li{position:relative;padding-inline-start:1.2rem;color:var(--text-muted);font-size:.9rem;line-height:1.5}
.founder__verify li::before{content:"✓";position:absolute;inset-inline-start:0;color:var(--accent);font-weight:700}
.founder__note{margin:.9rem 0 0;font-size:.82rem;color:var(--text-muted);line-height:1.55}

/* ============================================================================
   V15 ART-DIRECTION LAYER  —  "Technical High-Contrast Minimalist & Secure Defense"
   Binding source: DESIGN.md. This block overrides V14 component aesthetics that the
   token retune alone cannot reach. Appended last so it wins on equal specificity.
   ============================================================================ */

/* ---- 1 · Reading measure + rhythm for legally dense prose (65–70ch, breathing lh) ---- */
p{ max-width: var(--measure); line-height: 1.7; }
html[data-locale="ja"] p{ line-height: 1.75; }
/* Prose that must span its container keeps full width. */
.hero .lead, .kaisha-table p, .locked-pack p, td p, th p, li p{ max-width:none; }

/* ---- 2 · Classified-document hierarchy: uppercase, wide-tracked H2/H3 (Latin only) ---- */
h1{ font-family:var(--font-display); letter-spacing:-0.01em; line-height:1.1; }
h2, h3{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; }
html[data-locale="ja"] h1,
html[data-locale="ja"] h2,
html[data-locale="ja"] h3{ text-transform:none; letter-spacing:0.02em; }

/* ---- 3 · Sharp geometry everywhere (0–2px). Retire remaining circles/soft radii. ---- */
.step__num{ border-radius:var(--radius-institutional); }
.lang-switch__menu li{ border-radius:var(--radius-institutional); }
.pathcard__badge{ border-radius:var(--radius-institutional); }

/* ---- 4 · Depth from borders, not blur: strip soft shadows off content cards ---- */
.mini-card, .cap-group, .line-card, .audience-card, .step, .callout, .maturity{
  border-radius:var(--radius-institutional);
  box-shadow:none;
}
.pathcard{
  border-radius:var(--radius-institutional);
  box-shadow:none;
  background:var(--bg-panel);
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.pathcard--primary{
  background:var(--bg-panel);
  border-color:var(--line);
  border-block-start:2px solid var(--accent);   /* structural cue for the primary Space pathway */
}
.pathcard:hover, .pathcard:focus-visible{
  border-color:var(--accent);
  box-shadow:inset 0 0 0 1px var(--accent);
  transform:none;
}

/* ---- 5 · Technical monospace = data points, portfolio names, disclaimers (secure terminal) ---- */
.cap-group__lines, .line-card__code, .link-card__lines, .domain-page__codes,
.audience-card__idx, .dd-legend__num, .prov, .status-tag,
.footer__updated time, .founder__verify li,
code, kbd, samp{
  font-family:var(--font-mono);
}
.cap-group__lines, .link-card__lines, .domain-page__codes{ letter-spacing:0.08em; }
/* Export-control / legal disclaimers in mono, kept airy so density stays readable. */
.ref-note, .callout--disclaimer, .fineprint{
  font-family:var(--font-mono);
  letter-spacing:0;
  line-height:1.65;
}

/* ---- 6 · Aggressive negative space between major sections (8px rhythm, up to 128px) ---- */
.section{ padding-block:clamp(3.5rem, 8vw, 7rem); }
.section--dense{ padding-block:clamp(2rem, 5vw, 3.5rem); }
.section__head{ margin-block-end:var(--sp-6); }
/* Space vs Defence pathways: give the split real air. */
.pathsel{ padding-block:clamp(4rem, 9vw, 8rem); }
.pathsel__grid{ gap:var(--sp-6); }
@media (min-width:900px){ .pathsel__grid{ gap:var(--sp-7); } }

/* ---- 7 · Buttons: one amber signal, mechanical/tactile, crisp .15s ---- */
.btn{
  border-radius:var(--radius);
  transition:all var(--dur) var(--ease);
  letter-spacing:0.02em;
}
.btn--primary{
  background:var(--signal);
  color:var(--signal-ink);
  border-color:var(--signal);
}
.btn--primary:hover{
  background:var(--signal-strong);
  border-color:var(--signal-strong);
  color:var(--signal-ink);
  filter:none;
}
.btn--primary:active{ transform:translateY(1px); }
.btn--ghost{ border-color:var(--line); color:var(--text); }
.btn--ghost:hover{ border-color:var(--accent); color:var(--text); background:color-mix(in srgb, var(--accent) 8%, transparent); }
.btn:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }

/* ---- 8 · Controlled-engagement = secure system portal ---- */
/* Verification gateway: the ONE lit action, amber on obsidian. */
.btn--gateway{
  background:var(--signal);
  border:1px solid var(--signal);
  color:var(--signal-ink);
  border-radius:var(--radius);
  transition:all var(--dur) var(--ease);
}
.btn--gateway:hover{
  background:var(--signal-strong);
  border-color:var(--signal-strong);
  color:var(--signal-ink);
  transform:none;
}
.btn--gateway__en, .btn--gateway__ja, .btn--gateway__chev{ color:var(--signal-ink); }
.btn--gateway:focus-visible{ outline:2px solid var(--focus); outline-offset:3px; }
/* Numbered verification steps → console cells: square, monospaced, bordered. */
.step{ border-radius:var(--radius-institutional); background:var(--bg-elevated); }
.step__num{
  border-radius:var(--radius-institutional);
  background:var(--bg-panel);
  color:var(--accent);
  border:1px solid var(--line);
  font-family:var(--font-mono);
  font-weight:700;
}
/* Restricted datapack → terminal manifest. */
.locked-pack{ border-radius:var(--radius-institutional); }
.locked-pack__status .l-en{ font-family:var(--font-mono); letter-spacing:0.03em; }
.locked-pack__cat{ border-inline-start:2px solid var(--line); }
/* Progressive-disclosure accordion reads as a portal boundary, not a toy. */
.disclosure{ border:1px solid var(--line); border-radius:var(--radius-institutional); background:var(--bg-elevated); }
.disclosure__summary{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:0.05em; }
html[data-locale="ja"] .disclosure__summary{ text-transform:none; letter-spacing:0.02em; }
/* Dense-page accordions on japan/supplier: give the expanded content room to breathe. */
.jp-details{ margin-block:var(--sp-5); padding:0 var(--sp-5) var(--sp-2); }
.jp-details > .disclosure__summary{ padding-block:var(--sp-4); cursor:pointer; }
.jp-details[open] > .disclosure__summary{ border-block-end:1px solid var(--line); margin-block-end:var(--sp-5); }

/* V15 per-line lead-capture CTA inside each portfolio line card. */
.line-card__fit{ margin-block-start:var(--sp-4); padding-block-start:var(--sp-4); border-block-start:1px solid var(--line-soft); }
.line-card__fit .btn{ width:100%; }
@media (min-width:600px){ .line-card__fit .btn{ width:auto; } }

/* ---- 9 · Institutional data table: crisp compartment grid, mono values ---- */
.kaisha-table, .pubfacts{ border:1px solid var(--line); }
.kaisha-table th, .kaisha-table td{ border-block-end:1px solid var(--line-soft); }

/* ---- 10 · Status tags: rectangular chips, not pills ---- */
.status-tag{ border-radius:var(--radius-institutional); letter-spacing:0.02em; }

/* ---- 11 · Motion discipline ---- */
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

/* ============================================================================
   Visual enrichment (fork) — hero video, story stills, footer process strip
   Media is atmosphere under a scrim. Text and the amber action stay on top.
   ============================================================================ */
.hero__video{
  position:absolute;inset:0;z-index:0;
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.7) contrast(1.06) brightness(.55);
}
.hero--space .hero__field-svg{position:relative;z-index:0}
.hero--space .hero__scrim{z-index:1}
.hero--space .hero__inner{z-index:2}

/* Subpage film hero (replaces .page-hero / .section--hero-lite on enriched pages) */
.hero--page{
  position:relative;overflow:hidden;
  border-block-end:1px solid var(--line-soft);
  background:var(--bg);
}
.hero--page .hero__stage{
  position:relative;
  min-height:clamp(16rem,46vh,26rem);
  display:grid;align-items:stretch;
}
.hero--page .hero__field{
  position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
}
.hero--page .hero__scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(
      105deg,
      color-mix(in srgb, var(--bg) 92%, transparent) 0%,
      color-mix(in srgb, var(--bg) 78%, transparent) 42%,
      color-mix(in srgb, var(--bg) 40%, transparent) 72%,
      color-mix(in srgb, var(--bg) 22%, transparent) 100%
    ),
    linear-gradient(to top, color-mix(in srgb, var(--bg) 70%, transparent) 0%, transparent 48%);
}
html[data-theme="light"] .hero--page .hero__scrim{
  background:
    linear-gradient(
      105deg,
      color-mix(in srgb, var(--bg) 94%, transparent) 0%,
      color-mix(in srgb, var(--bg) 84%, transparent) 48%,
      color-mix(in srgb, var(--bg) 45%, transparent) 78%,
      color-mix(in srgb, var(--bg) 25%, transparent) 100%
    );
}
.hero--page .hero__inner{
  position:relative;z-index:2;
  padding-block:clamp(2rem,6vw,3.75rem);
  max-width:46rem;
}
.hero--page .hero__inner::before{
  content:"";position:absolute;z-index:-1;
  inset:-.75rem -1.5rem;
  background:linear-gradient(105deg, color-mix(in srgb, var(--bg) 78%, transparent) 0%, transparent 100%);
}
.hero--subtle .hero__video{
  filter:saturate(.35) contrast(1.02) brightness(.32);
  opacity:.55;
}
.hero--legal{
  border-block-end:1px solid var(--line-soft);
}
.hero--legal .hero__stage{min-height:clamp(7rem,22vh,11rem)}
.hero--legal .hero__field{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
}
.hero--legal .hero__video{opacity:.28;filter:saturate(.25) brightness(.4)}
.story--solo{max-width:44rem;margin-block:var(--sp-6) 0}
.story video{
  width:100%;aspect-ratio:16/9;object-fit:cover;display:block;
}

.story-pair{
  display:grid;gap:var(--sp-5);
  margin-block-start:var(--sp-7);
}
@media (min-width:720px){
  .story-pair{grid-template-columns:1fr 1fr}
}
.story{
  margin:0;
  border:1px solid var(--line);
  background:var(--bg-panel);
  border-radius:var(--radius-institutional);
  overflow:hidden;
}
.story img{
  width:100%;height:auto;display:block;
  aspect-ratio:16/9;object-fit:cover;
}
.story figcaption{
  font-family:var(--font-mono);
  font-size:.72rem;line-height:1.5;letter-spacing:.03em;
  color:var(--text-muted);
  padding:.65rem .9rem;
  border-block-start:1px solid var(--line-soft);
  max-width:none;text-transform:none;
}

.proc-strip{
  position:relative;
  height:clamp(7rem,18vw,12rem);
  overflow:hidden;
  border-block-start:1px solid var(--line-soft);
  background-color:var(--bg);
  background-image:var(--proc-poster, none);
  background-size:cover;background-position:center;
}
.proc-strip video{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.55) contrast(1.08) brightness(.42);
}
.proc-strip__scrim{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 25%, transparent) 45%, color-mix(in srgb, var(--bg) 62%, transparent) 100%);
}
.proc-strip__label{
  position:absolute;z-index:1;
  inset-inline-start:var(--gutter);inset-block-end:.75rem;
  margin:0;max-width:none;
  font-family:var(--font-mono);
  font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-muted);
}
html[data-locale="ja"] .proc-strip__label{text-transform:none;letter-spacing:.04em}

@media (prefers-reduced-motion:reduce){
  .hero__video, .proc-strip video{display:none}
}

html[data-theme="light"] .hero__video{
  filter:saturate(.55) contrast(1.02) brightness(.7);
}
html[data-theme="light"] .proc-strip video{
  filter:saturate(.4) contrast(1.05) brightness(.65);
}
html[data-theme="light"] .proc-strip__scrim{
  background:
    linear-gradient(180deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 40%, transparent) 50%, color-mix(in srgb, var(--bg) 70%, transparent) 100%);
}

@media print{
  .hero__video, .proc-strip, .story-pair, .story{display:none !important}
}

