:root {
  --ink: #081512;
  --paper: #f7f8f2;
  --white: #ffffff;
  --green: #20d66b;
  --green-dark: #009b4e;
  --lime: #caff4a;
  --mint: #dffbe9;
  --blue: #1749d2;
  --muted: #61716c;
  --line: rgba(8, 21, 18, .14);
  --radius: 28px;
  --wrap: 1320px;
  --ease: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-weight: 600;
  line-height: 1.8;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
.wrap { width: min(var(--wrap), calc(100% - 80px)); margin-inline: auto; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 200; padding: 12px 18px; color: #fff; background: var(--ink); border-radius: 10px; }
.skip-link:focus { top: 16px; }

/* Header */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: 94px;
  color: var(--ink);
  transition: height .4s var(--ease), transform .45s var(--ease), background .4s, box-shadow .4s;
}
.site-header.is-compact { height: 76px; background: rgba(247,248,242,.9); backdrop-filter: blur(18px); box-shadow: 0 1px 0 var(--line); }
.site-header.is-hidden { transform: translateY(-110%); }
.header-wrap { width: min(1500px, calc(100% - 48px)); height: 100%; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; position: relative; z-index: 102; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--ink); color: var(--lime); font-size: 17px; font-weight: 950; letter-spacing: -.08em; transform: rotate(-5deg); }
.brand-copy { display: flex; flex-direction: column; line-height: 1.05; }
.brand-copy strong { font-size: 17px; font-weight: 900; letter-spacing: -.03em; }
.brand-copy small { font-size: 9px; letter-spacing: .2em; margin-top: 5px; color: var(--muted); }
.nav { display: flex; align-items: center; gap: 34px; }
.nav a { text-decoration: none; font-size: 12px; line-height: 1; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; position: relative; }
.nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -10px; height: 2px; background: var(--green-dark); transition: right .35s var(--ease); }
.nav a:hover::after,
.page-index .nav [data-page="index"]::after,
.page-service .nav [data-page="service"]::after,
.page-global .nav [data-page="global"]::after,
.page-company .nav [data-page="company"]::after,
.page-activity .nav [data-page="activity"]::after,
.page-contact .nav [data-page="contact"]::after,
.page-privacy .nav [data-page="privacy"]::after { right: 0; }
.nav .nav-cta { color: #fff; background: var(--ink); padding: 15px 20px; border-radius: 999px; }
.nav .nav-cta::after { display: none; }
.menu-toggle { display: none; position: relative; z-index: 102; width: 52px; height: 52px; border: 0; border-radius: 50%; background: var(--ink); align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
.menu-toggle span { display: block; width: 22px; height: 2px; background: var(--lime); border-radius: 3px; transition: .35s var(--ease); }
.menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Type and shared components */
.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 20px; color: var(--green-dark); font-size: 11px; font-weight: 900; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 6px rgba(32,214,107,.13); }
.display { font-size: clamp(52px, 7.2vw, 112px); line-height: .93; letter-spacing: -.075em; font-weight: 900; margin: 0; }
.display .outline { color: transparent; -webkit-text-stroke: 1.5px var(--ink); }
.section { padding: 140px 0; position: relative; }
.section-head { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: end; margin-bottom: 70px; }
.section-head h2 { margin: 0; font-size: clamp(38px, 5vw, 72px); line-height: 1.02; letter-spacing: -.055em; font-weight: 900; }
.section-head .lead { max-width: 620px; margin: 0 0 5px auto; color: var(--muted); font-size: 17px; line-height: 2; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 62px; padding: 0 30px; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: #fff; text-decoration: none; font-size: 13px; font-weight: 850; letter-spacing: .05em; translate: var(--mag-x,0px) var(--mag-y,0px); transition: translate .45s var(--ease), box-shadow .4s, background .3s, color .3s; }
.btn::after { content: "↗"; font-size: 17px; }
.btn:hover { box-shadow: 0 16px 34px rgba(8,21,18,.18); }
.btn.light { background: #fff; color: var(--ink); border-color: #fff; }
.btn.ghost { color: var(--ink); background: transparent; }
.text-link { display: inline-flex; gap: 18px; align-items: center; text-decoration: none; font-size: 13px; font-weight: 900; border-bottom: 1px solid var(--ink); padding-bottom: 5px; }
.text-link::after { content: "→"; transition: transform .3s; }
.text-link:hover::after { transform: translateX(6px); }
.tag { display: inline-flex; padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

/* Home hero */
.home-hero { position: relative; min-height: 900px; height: 100svh; max-height: 1080px; padding-top: 94px; overflow: hidden; background: var(--paper); }
.home-hero::before { content: ""; position: absolute; left: -8%; bottom: -24%; width: 58vw; height: 58vw; border: 1px solid rgba(8,21,18,.1); border-radius: 50%; box-shadow: 0 0 0 10vw rgba(8,21,18,.025), 0 0 0 20vw rgba(8,21,18,.02); }
.hero-grid { position: relative; z-index: 2; height: 100%; width: min(1500px, calc(100% - 80px)); margin: auto; display: grid; grid-template-columns: 1.07fr .93fr; align-items: center; gap: 70px; }
.hero-copy { padding-top: 30px; }
.hero-copy h1 { font-size: clamp(60px, 7.6vw, 122px); line-height: .85; letter-spacing: -.08em; font-weight: 950; margin: 0 0 40px; }
.hero-copy h1 .jp { display: block; font-size: .38em; line-height: 1.2; letter-spacing: -.04em; margin-bottom: 18px; }
.hero-copy h1 .accent { color: var(--green-dark); }
.hero-bottom { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; max-width: 720px; }
.hero-bottom p { margin: 0; max-width: 520px; color: #42534d; font-size: 15px; line-height: 2; }
.hero-scroll { position: absolute; left: 26px; bottom: 38px; writing-mode: vertical-rl; font-size: 9px; letter-spacing: .25em; text-transform: uppercase; }
.hero-scroll::after { content: ""; display: inline-block; height: 72px; width: 1px; background: var(--ink); margin-top: 12px; animation: scrollline 2.2s infinite; transform-origin: top; }
@keyframes scrollline { 0% { transform: scaleY(0); transform-origin: top; } 45% { transform: scaleY(1); transform-origin: top; } 55% { transform: scaleY(1); transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

.japan-stage { position: relative; height: min(70vh, 690px); min-height: 580px; border-radius: 48% 48% 42% 58% / 56% 40% 60% 44%; background: var(--ink); color: #fff; overflow: hidden; transform: translate3d(var(--stage-x,0px),calc(var(--stage-scroll,0px) + var(--stage-hover-y,0px)),0) rotate(calc(2deg + var(--stage-rotate,0deg))); box-shadow: 0 50px 90px rgba(8,21,18,.18); transition: transform .8s var(--ease), border-radius 1.1s var(--ease); will-change: transform; }
.japan-stage::before, .japan-stage::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; }
.japan-stage::before { width: 520px; height: 520px; right: -70px; top: -40px; box-shadow: 0 0 0 90px rgba(255,255,255,.025), 0 0 0 180px rgba(255,255,255,.02); }
.japan-stage::after { width: 180px; height: 180px; left: 12%; bottom: 9%; }
.stage-label { position: absolute; left: 44px; top: 42px; z-index: 3; font-size: 10px; letter-spacing: .25em; color: var(--lime); }
.stage-coordinate { position: absolute; left: 44px; bottom: 38px; z-index: 3; font-family: monospace; font-size: 11px; line-height: 1.8; color: rgba(255,255,255,.55); }
.archipelago { position: absolute; inset: 0; z-index: 2; transform: rotate(-10deg) scale(.94); }
.land { position: absolute; display: block; background: linear-gradient(145deg, var(--lime), var(--green)); box-shadow: 0 0 28px rgba(202,255,74,.28); }
.land.hokkaido { width: 88px; height: 76px; right: 16%; top: 11%; border-radius: 58% 42% 65% 35%; transform: rotate(30deg); }
.land.honshu { width: 370px; height: 75px; right: 18%; top: 39%; transform: rotate(42deg); clip-path: polygon(0 40%,14% 8%,35% 26%,57% 0,80% 31%,100% 16%,92% 72%,70% 64%,47% 100%,21% 72%); }
.land.shikoku { width: 98px; height: 36px; right: 49%; top: 67%; border-radius: 70% 34%; transform: rotate(28deg); }
.land.kyushu { width: 78px; height: 104px; right: 64%; top: 68%; transform: rotate(20deg); clip-path: polygon(25% 0,91% 10%,73% 45%,100% 72%,52% 100%,8% 79%,25% 46%,0 23%); }
.signal { position: absolute; z-index: 4; width: 10px; height: 10px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 10px rgba(255,255,255,.1), 0 0 24px #fff; }
.signal::after { content: ""; position: absolute; inset: -2px; border: 1px solid #fff; border-radius: 50%; animation: signal 2.5s infinite; }
.signal.tokyo { right: 24%; top: 48%; }.signal.osaka { right: 48%; top: 61%; }.signal.fukuoka { right: 68%; top: 72%; }
.signal.tokyo::after { animation-delay: 0s; }.signal.osaka::after { animation-delay: .7s; }.signal.fukuoka::after { animation-delay: 1.4s; }
@keyframes signal { to { transform: scale(7); opacity: 0; } }
.route { position: absolute; z-index: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent); transform-origin: left; }
.route.r1 { width: 420px; right: -80px; top: 53%; transform: rotate(37deg); }.route.r2 { width: 360px; left: 5%; top: 64%; transform: rotate(-22deg); }

.ticker { overflow: hidden; background: var(--lime); border-block: 1px solid var(--ink); padding: 16px 0; transform: rotate(-1deg) scale(1.02); }
.ticker-track { display: flex; width: max-content; animation: ticker 24s linear infinite; }
.ticker span { display: inline-flex; align-items: center; gap: 28px; padding-right: 28px; white-space: nowrap; font-size: 12px; font-weight: 950; letter-spacing: .16em; text-transform: uppercase; }
.ticker span::after { content: "✦"; }
@keyframes ticker { to { transform: translateX(-50%); } }

/* Home sections */
.intro { background: var(--paper); }
.intro-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 10vw; }
.intro-aside { display: flex; flex-direction: column; justify-content: space-between; min-height: 420px; }
.intro-aside .index { font-size: 110px; line-height: 1; letter-spacing: -.08em; color: transparent; -webkit-text-stroke: 1px rgba(8,21,18,.28); }
.intro-copy h2 { font-size: clamp(42px, 5.3vw, 78px); line-height: 1.16; letter-spacing: -.06em; margin: 0 0 40px; }
.intro-copy p { max-width: 720px; margin: 0; font-size: 17px; line-height: 2.1; color: var(--muted); }
.intro-copy strong { color: var(--ink); }
.services { background: var(--ink); color: #fff; overflow: hidden; }
.services::before { content: "SERVICES"; position: absolute; right: -2vw; top: 20px; font-size: 17vw; font-weight: 950; letter-spacing: -.08em; color: rgba(255,255,255,.025); line-height: 1; }
.services .eyebrow { color: var(--lime); }.services .eyebrow::before { background: var(--lime); }
.services .section-head .lead { color: rgba(255,255,255,.62); }
.service-stack { border-top: 1px solid rgba(255,255,255,.18); }
.service-row { display: grid; grid-template-columns: 90px 1fr 1.1fr auto; gap: 36px; align-items: center; padding: 36px 10px; border-bottom: 1px solid rgba(255,255,255,.18); text-decoration: none; transition: padding .4s var(--ease), background .3s; }
.service-row:hover { padding-inline: 28px; background: rgba(255,255,255,.045); }
.service-row .no { color: var(--lime); font-family: monospace; font-size: 12px; }
.service-row h3 { font-size: clamp(25px, 3vw, 42px); line-height: 1.15; margin: 0; letter-spacing: -.04em; }
.service-row p { margin: 0; color: rgba(255,255,255,.62); font-size: 13px; }
.service-row .arrow { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; transition: transform .35s, background .35s, color .35s; }
.service-row:hover .arrow { transform: rotate(45deg); background: var(--lime); color: var(--ink); }
.global-section { background: var(--white); }
.global-grid { display: grid; grid-template-columns: 1.06fr .94fr; gap: 80px; align-items: stretch; }
.global-visual { min-height: 620px; background: var(--blue); border-radius: var(--radius); position: relative; overflow: hidden; color: #fff; }
.global-visual::before { content: "PROJECT\A READY"; white-space: pre; position: absolute; left: 40px; bottom: 36px; font-size: clamp(70px,9vw,142px); font-weight: 950; line-height: .76; letter-spacing: -.08em; color: rgba(255,255,255,.11); }
.globe { position: absolute; width: 430px; height: 430px; right: -30px; top: -30px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; box-shadow: inset 0 0 0 72px rgba(255,255,255,.03), inset 0 0 0 144px rgba(255,255,255,.03); }
.globe::before, .globe::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; }
.globe::before { transform: scaleX(.38); }.globe::after { transform: scaleY(.38); }
.globe-label { position: absolute; right: 34px; top: 420px; width: 240px; font-family: monospace; font-size: 11px; color: rgba(255,255,255,.7); }
.global-content { padding: 34px 0; }
.global-content h2 { font-size: clamp(42px, 5vw, 70px); line-height: 1.08; letter-spacing: -.055em; margin: 0 0 30px; }
.global-content > p { color: var(--muted); font-size: 16px; margin: 0 0 48px; }
.solution-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.solution-item { display: grid; grid-template-columns: 48px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.solution-item b { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--mint); color: var(--green-dark); font-size: 11px; }
.solution-item h3 { margin: 0 0 4px; font-size: 17px; }.solution-item p { margin: 0; color: var(--muted); font-size: 13px; }
.numbers { background: var(--lime); border-block: 1px solid var(--ink); }
.numbers-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.number { padding: 74px 28px; border-right: 1px solid var(--ink); }
.number:first-child { border-left: 1px solid var(--ink); }
.number strong { display: block; font-size: clamp(56px,6vw,86px); line-height: 1; letter-spacing: -.07em; }
.number span { display: block; margin-top: 18px; font-size: 13px; }
.philosophy { background: var(--paper); overflow: hidden; }
.statement { font-size: clamp(45px, 7vw, 108px); line-height: 1.06; letter-spacing: -.065em; font-weight: 950; margin: 0; max-width: 1200px; }
.statement span { color: var(--green-dark); }
.statement small { display: block; font-size: .19em; line-height: 1.8; letter-spacing: .04em; font-weight: 700; color: var(--muted); max-width: 600px; margin: 42px 0 0 auto; }
.cta-block { background: var(--green); padding: 0; }
.cta-link { min-height: 380px; display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: center; text-decoration: none; }
.cta-link .eyebrow { color: var(--ink); }
.cta-link h2 { margin: 0; font-size: clamp(56px, 8vw, 120px); line-height: .9; letter-spacing: -.075em; }
.cta-link .circle { display: grid; place-items: center; width: 150px; height: 150px; border-radius: 50%; background: var(--ink); color: var(--lime); font-size: 44px; transition: transform .45s var(--ease); }
.cta-link:hover .circle { transform: rotate(45deg) scale(1.07); }

/* Inner pages */
.page-hero { min-height: 610px; padding: 190px 0 90px; position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.page-hero::after { content: attr(data-word); position: absolute; right: -3vw; bottom: -4vw; font-size: clamp(140px,22vw,350px); line-height: .7; letter-spacing: -.09em; font-weight: 950; color: transparent; -webkit-text-stroke: 1px rgba(8,21,18,.12); pointer-events: none; }
.page-hero-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 70px; align-items: end; }
.page-hero h1 { margin: 0; font-size: clamp(74px, 11vw, 170px); line-height: .8; letter-spacing: -.085em; font-weight: 950; }
.page-hero h1 small { display: block; margin-bottom: 24px; font-size: 13px; line-height: 1; letter-spacing: .2em; color: var(--green-dark); }
.page-hero-copy { position: relative; z-index: 2; max-width: 520px; margin-left: auto; padding-left: 30px; border-left: 1px solid var(--ink); }
.page-hero-copy p { margin: 0; font-size: 18px; line-height: 2; }
.breadcrumb { margin-top: 52px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }.breadcrumb a { text-decoration: none; color: var(--muted); }
.content-dark { background: var(--ink); color: #fff; }.content-dark .eyebrow { color: var(--lime); }.content-dark .eyebrow::before { background: var(--lime); }
.content-dark .section-head .lead { color: rgba(255,255,255,.65); }

.service-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.service-card { min-height: 390px; padding: 38px; border: 1px solid rgba(255,255,255,.2); border-radius: 24px; display: flex; flex-direction: column; position: relative; overflow: hidden; transform: perspective(900px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transition: transform .5s var(--ease), translate .5s var(--ease), background .35s, color .35s; }
.service-card::after { content: attr(data-no); position: absolute; right: 24px; top: 12px; font-size: 100px; line-height: 1; font-weight: 950; letter-spacing: -.08em; color: rgba(255,255,255,.05); }
.service-card:hover { translate: 0 -8px; background: var(--lime); color: var(--ink); }
.service-card:hover::after { color: rgba(8,21,18,.08); }
.service-card .mini { font-family: monospace; color: var(--lime); font-size: 11px; }.service-card:hover .mini { color: var(--green-dark); }
.service-card h2 { font-size: clamp(28px,3.2vw,46px); line-height: 1.15; letter-spacing: -.04em; margin: auto 0 20px; }
.service-card p { margin: 0; max-width: 490px; color: rgba(255,255,255,.62); font-size: 14px; }.service-card:hover p { color: #33443f; }
.flow { counter-reset: flow; border-top: 1px solid var(--line); }
.flow-item { counter-increment: flow; display: grid; grid-template-columns: 120px .7fr 1.3fr; gap: 36px; align-items: start; padding: 34px 0; border-bottom: 1px solid var(--line); }
.flow-item::before { content: "0" counter(flow); font-family: monospace; color: var(--green-dark); }
.flow-item h3 { margin: 0; font-size: 24px; }.flow-item p { margin: 0; color: var(--muted); }

.company-message { display: grid; grid-template-columns: .78fr 1.22fr; gap: 9vw; align-items: start; }
.company-message .mono-art { min-height: 560px; border-radius: var(--radius); background: var(--green); position: sticky; top: 110px; overflow: hidden; }
.mono-art::before { content: "IF"; position: absolute; inset: auto -2% -11%; font-size: 390px; line-height: .72; letter-spacing: -.15em; font-weight: 950; color: var(--ink); }
.mono-art::after { content: "TOKYO / JAPAN / 2017"; position: absolute; left: 28px; top: 28px; font-family: monospace; font-size: 11px; letter-spacing: .14em; }
.message-copy h2 { margin: 0 0 45px; font-size: clamp(40px,5vw,70px); line-height: 1.25; letter-spacing: -.055em; }
.message-copy p { color: var(--muted); font-size: 16px; line-height: 2.2; }
.message-sign { margin-top: 48px; padding-top: 25px; border-top: 1px solid var(--line); text-align: right; }
.company-table { border-top: 1px solid var(--ink); }
.company-table dl { margin: 0; }.company-table dl > div { display: grid; grid-template-columns: 260px 1fr; border-bottom: 1px solid var(--line); }
.company-table dt, .company-table dd { margin: 0; padding: 30px 8px; }.company-table dt { font-size: 12px; letter-spacing: .12em; color: var(--green-dark); }.company-table dd { font-size: 16px; }

.activity-feature { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 540px; background: var(--white); border-radius: var(--radius); overflow: hidden; }
.activity-feature img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .5s, transform .7s var(--ease); }.activity-feature:hover img { filter: grayscale(0); transform: scale(1.025); }
.activity-feature-copy { padding: 58px; display: flex; flex-direction: column; justify-content: flex-end; }
.activity-feature-copy h2 { font-size: clamp(35px,4vw,58px); line-height: 1.12; letter-spacing: -.05em; margin: 20px 0; }
.activity-feature-copy p { color: var(--muted); }
.activity-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 22px; }
.activity-card { background: var(--white); border-radius: 20px; overflow: hidden; }
.activity-card figure { aspect-ratio: 4/3; margin: 0; overflow: hidden; background: #dfe5df; }.activity-card img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.85); transition: transform .6s var(--ease), filter .5s; }.activity-card:hover img { transform: scale(1.05); filter: grayscale(0); }
.activity-card .body { padding: 26px; }.activity-card h3 { margin: 10px 0 8px; font-size: 21px; }.activity-card p { color: var(--muted); font-size: 13px; margin: 0; }

.contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items: start; }
.contact-intro { position: sticky; top: 120px; }.contact-intro h2 { margin: 0 0 26px; font-size: clamp(42px,5vw,70px); line-height: 1.05; letter-spacing: -.06em; }.contact-intro p { color: var(--muted); }.contact-info { margin-top: 42px; padding-top: 30px; border-top: 1px solid var(--line); }.contact-info a { text-decoration: none; font-size: 18px; }
.contact-form { background: var(--white); border-radius: var(--radius); padding: 52px; box-shadow: 0 30px 80px rgba(8,21,18,.07); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }.field.full { grid-column: 1/-1; }
.field label { display: block; margin-bottom: 8px; font-size: 11px; font-weight: 850; letter-spacing: .1em; }.field label span { color: var(--green-dark); margin-left: 5px; }
.field input, .field textarea, .field select { width: 100%; border: 0; border-bottom: 1px solid #aab5b1; border-radius: 0; padding: 15px 2px; background: transparent; outline: none; transition: border .3s; }.field textarea { min-height: 150px; resize: vertical; }.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--green-dark); border-bottom-width: 2px; }
.form-note { color: var(--muted); font-size: 11px; margin: 30px 0; }.form-note a { color: var(--ink); }
.form-status { min-height: 1.6em; font-size: 12px; color: var(--green-dark); }
.faq { display: grid; grid-template-columns: .7fr 1.3fr; gap: 80px; }.faq-list { border-top: 1px solid var(--line); }.faq details { border-bottom: 1px solid var(--line); padding: 25px 0; }.faq summary { cursor: pointer; list-style: none; font-size: 17px; display: flex; justify-content: space-between; gap: 20px; }.faq summary::after { content: "+"; color: var(--green-dark); font-size: 24px; }.faq details[open] summary::after { content: "−"; }.faq details p { color: var(--muted); font-size: 14px; }
.policy { max-width: 900px; margin: auto; }.policy-intro { font-size: 20px; line-height: 2; margin-bottom: 70px; }.policy section { padding: 34px 0; border-top: 1px solid var(--line); }.policy h2 { font-size: 26px; }.policy p { color: var(--muted); }

/* Footer */
.site-footer { padding: 90px 0 30px; background: var(--ink); color: #fff; }
.footer-top { display: grid; grid-template-columns: 1.4fr .6fr .8fr; gap: 70px; padding-bottom: 70px; }
.footer-brand .brand-mark { background: var(--lime); color: var(--ink); }.footer-brand .brand-copy small { color: rgba(255,255,255,.45); }
.footer-intro { max-width: 480px; margin-top: 28px; color: rgba(255,255,255,.54); font-size: 13px; }
.footer-col h3 { margin: 0 0 20px; color: var(--lime); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }.footer-col a, .footer-col p { display: block; margin: 8px 0; color: rgba(255,255,255,.67); text-decoration: none; font-size: 13px; }.footer-col a:hover { color: var(--lime); }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.4); font-size: 10px; letter-spacing: .08em; }

/* Reveal: independent translate/animation preserves component hover transforms. */
@keyframes revealUp { from { opacity: 0; translate: 0 56px; } to { opacity: 1; translate: 0 0; } }
@keyframes revealLeft { from { opacity: 0; translate: -72px 0; } to { opacity: 1; translate: 0 0; } }
.reveal,.reveal-left,.stagger > * { opacity: 1; }
.js .reveal,.js .reveal-left,.js .stagger > * { opacity: 0; }
.reveal.is-visible { animation: revealUp .9s var(--ease) both; }
.reveal-left.is-visible { animation: revealLeft 1s var(--ease) both; }
.stagger.is-visible > * { animation: revealUp .78s var(--ease) both; }
.stagger.is-visible > *:nth-child(2){animation-delay:.09s}.stagger.is-visible > *:nth-child(3){animation-delay:.18s}.stagger.is-visible > *:nth-child(4){animation-delay:.27s}.stagger.is-visible > *:nth-child(5){animation-delay:.36s}.stagger.is-visible > *:nth-child(6){animation-delay:.45s}

@media (max-width: 1100px) {
  .wrap { width: min(var(--wrap), calc(100% - 48px)); }
  .menu-toggle { display: flex; }
  .nav { position: fixed; inset: 0; z-index: 101; padding: 120px 7vw 50px; background: var(--lime); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; visibility: hidden; opacity: 0; clip-path: circle(0 at calc(100% - 48px) 48px); transition: clip-path .65s var(--ease), opacity .35s, visibility .65s; }
  .nav.open { visibility: visible; opacity: 1; clip-path: circle(150% at calc(100% - 48px) 48px); }
  .nav a { width: 100%; padding: 13px 0; border-bottom: 1px solid rgba(8,21,18,.2); font-size: clamp(30px,7vw,58px); line-height: 1; letter-spacing: -.04em; text-transform: none; }
  .nav a::after { display: none; }.nav .nav-cta { padding: 13px 0; background: transparent; color: var(--ink); border-radius: 0; }
  .hero-grid { width: min(100% - 48px, 900px); grid-template-columns: 1fr; align-content: center; gap: 50px; padding: 120px 0 70px; }
  .home-hero { height: auto; min-height: 1100px; max-height: none; }
  .hero-copy h1 { font-size: clamp(64px,13vw,110px); }.hero-bottom { max-width: none; }
  .japan-stage { width: min(100%,720px); height: 600px; justify-self: end; }
  .section-head, .intro-grid, .global-grid, .company-message, .contact-layout, .faq { grid-template-columns: 1fr; gap: 50px; }
  .section-head .lead { margin-left: 0; }.intro-aside { min-height: 180px; flex-direction: row; align-items: end; }.intro-aside .index { font-size: 80px; }
  .service-row { grid-template-columns: 60px 1fr auto; }.service-row p { display: none; }
  .numbers-grid { grid-template-columns: repeat(2,1fr); }.number:nth-child(3) { border-left: 1px solid var(--ink); border-top: 1px solid var(--ink); }.number:nth-child(4) { border-top: 1px solid var(--ink); }
  .page-hero-grid { grid-template-columns: 1fr; }.page-hero-copy { margin-left: 0; }
  .company-message .mono-art, .contact-intro { position: relative; top: 0; }.company-message .mono-art { min-height: 420px; }
  .activity-feature { grid-template-columns: 1fr; }.activity-feature figure { height: 420px; margin: 0; }
  .activity-grid { grid-template-columns: repeat(2,1fr); }
  .footer-top { grid-template-columns: 1fr 1fr; }.footer-top > :first-child { grid-column: 1/-1; }
}

@media (max-width: 680px) {
  .wrap { width: calc(100% - 32px); }.header-wrap { width: calc(100% - 28px); }.site-header { height: 76px; }
  .brand-copy strong { font-size: 15px; }.brand-copy small { display: none; }.brand-mark { width: 39px; height: 39px; }
  .home-hero { min-height: 950px; padding-top: 76px; }.hero-grid { width: calc(100% - 32px); padding: 80px 0 45px; gap: 45px; }.hero-copy { padding-top: 0; }.hero-copy h1 { font-size: clamp(55px,18vw,82px); margin-bottom: 28px; }.hero-copy h1 .jp { font-size: .34em; margin-bottom: 12px; }.hero-bottom { grid-template-columns: 1fr; }.hero-bottom .btn { width: 100%; }.hero-scroll { display: none; }
  .japan-stage { height: 430px; min-height: 0; border-radius: 36px; transform: none; }.archipelago { transform: rotate(-10deg) scale(.72); transform-origin: center; }.stage-label { left: 24px; top: 24px; }.stage-coordinate { left: 24px; bottom: 22px; }.globe-label { display: none; }
  .section { padding: 90px 0; }.section-head { margin-bottom: 46px; }.section-head h2 { font-size: 41px; }.section-head .lead { font-size: 15px; }.intro-aside { min-height: 100px; }.intro-aside .index { font-size: 58px; }.intro-copy h2 { font-size: 39px; }.intro-copy p { font-size: 15px; }
  .service-row { grid-template-columns: 42px 1fr auto; gap: 12px; padding: 27px 0; }.service-row h3 { font-size: 22px; }.service-row .arrow { width: 42px; height: 42px; }
  .global-visual { min-height: 430px; }.globe { width: 320px; height: 320px; }.global-content h2 { font-size: 42px; }
  .numbers-grid { grid-template-columns: 1fr 1fr; }.number { padding: 42px 16px; }.number strong { font-size: 50px; }.number span { font-size: 11px; }
  .statement { font-size: 44px; }.statement small { font-size: 14px; margin-top: 30px; }.cta-link { min-height: 320px; grid-template-columns: 1fr; padding-block: 70px; }.cta-link h2 { font-size: 58px; }.cta-link .circle { width: 100px; height: 100px; }
  .page-hero { min-height: 500px; padding: 150px 0 70px; }.page-hero h1 { font-size: 76px; }.page-hero-copy { padding-left: 18px; }.page-hero-copy p { font-size: 15px; }.page-hero::after { font-size: 170px; }
  .service-cards, .activity-grid { grid-template-columns: 1fr; }.service-card { min-height: 340px; padding: 28px; }.flow-item { grid-template-columns: 54px 1fr; gap: 14px; }.flow-item p { grid-column: 2; }
  .mono-art::before { font-size: 280px; }.message-copy h2 { font-size: 39px; }.company-table dl > div { grid-template-columns: 1fr; }.company-table dt { padding-bottom: 0; }.company-table dd { padding-top: 10px; }
  .activity-feature figure { height: 300px; }.activity-feature-copy { padding: 30px; }.activity-feature-copy h2 { font-size: 34px; }
  .contact-form { padding: 28px 20px; }.form-grid { grid-template-columns: 1fr; }.field.full { grid-column: auto; }.contact-intro h2 { font-size: 42px; }
  .footer-top { grid-template-columns: 1fr; gap: 45px; }.footer-top > :first-child { grid-column: auto; }.footer-bottom { flex-direction: column; }
}

html[data-motion="reduced"] *,html[data-motion="reduced"] *::before,html[data-motion="reduced"] *::after { scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important; }
html[data-motion="reduced"] .reveal,html[data-motion="reduced"] .reveal-left,html[data-motion="reduced"] .stagger > * { opacity:1!important;translate:none!important;animation:none!important; }

/* Motion system v3 — scroll-triggered motion only; navigation itself is immediate. */

.scroll-progress { position: fixed; z-index: 150; left: 0; top: 0; width: 100%; height: 3px; background: var(--lime); transform: scaleX(var(--progress,0)); transform-origin: left; will-change: transform; }

.motion-cursor { position: fixed; z-index: 180; left: -20px; top: -20px; width: 40px; height: 40px; border: 1px solid rgba(8,21,18,.38); border-radius: 50%; pointer-events: none; opacity: 0; transition: opacity .25s, width .35s var(--ease), height .35s var(--ease), border-color .25s, background .25s; mix-blend-mode: difference; }
.motion-cursor i { position: absolute; width: 4px; height: 4px; left: 50%; top: 50%; translate: -50% -50%; border-radius: 50%; background: #fff; }
.motion-cursor.is-on { opacity: 1; }.motion-cursor.is-active { width: 66px; height: 66px; border-color: #fff; background: rgba(255,255,255,.12); }

.hero-copy { transform: translate3d(0,calc(var(--hero-scroll,0px) * -1),0); transition: transform .15s linear; will-change: transform; }
.hero-copy .hero-line { display: block; }
.js .hero-copy .eyebrow,.js .hero-line,.js .hero-bottom,.js .japan-stage { opacity: 0; }
.js .hero-line { clip-path: inset(0 0 100% 0); translate: 0 1.15em; }
.js.is-ready .hero-copy .eyebrow { animation: heroMeta .65s var(--ease) .62s both; }
.js.is-ready .hero-line { animation: heroLine .88s var(--ease) both; }
.js.is-ready .hero-line:nth-child(1){animation-delay:.68s}.js.is-ready .hero-line:nth-child(2){animation-delay:.76s}.js.is-ready .hero-line:nth-child(3){animation-delay:.84s}.js.is-ready .hero-line:nth-child(4){animation-delay:.92s}.js.is-ready .hero-line:nth-child(5){animation-delay:1s}
.js.is-ready .hero-bottom { animation: heroMeta .75s var(--ease) 1.13s both; }
.js.is-ready .japan-stage { animation: stageIn 1.25s var(--ease) .72s both; }
@keyframes heroLine { from { opacity:0; clip-path:inset(0 0 100% 0); translate:0 1.15em; } to { opacity:1; clip-path:inset(0); translate:0 0; } }
@keyframes heroMeta { from { opacity:0; translate:0 24px; } to { opacity:1; translate:0 0; } }
@keyframes stageIn { from { opacity:0; clip-path:polygon(0 0,0 0,0 100%,0 100%); scale:.92; } to { opacity:1; clip-path:polygon(0 0,100% 0,100% 100%,0 100%); scale:1; } }

.archipelago { animation: archipelagoDrift 7s ease-in-out infinite alternate; }
@keyframes archipelagoDrift { from { translate: -7px 5px; } to { translate: 8px -7px; } }
.land { animation: landGlow 2.8s ease-in-out infinite alternate; }
.land.honshu { animation-delay:.25s }.land.shikoku { animation-delay:.55s }.land.kyushu { animation-delay:.8s }
@keyframes landGlow { from { filter:brightness(.92); box-shadow:0 0 18px rgba(202,255,74,.18); } to { filter:brightness(1.18); box-shadow:0 0 44px rgba(202,255,74,.48); } }
.route { scale: 0 1; animation: routeDraw 2.1s var(--ease) 1.5s forwards; }
.route.r2 { animation-delay:1.9s }
@keyframes routeDraw { to { scale:1 1; } }
.japan-stage::before { animation: orbitRing 18s linear infinite; }.japan-stage::after { animation: orbitRing 12s linear infinite reverse; }
@keyframes orbitRing { to { rotate:360deg; } }

.page-hero h1,.page-hero-copy,.breadcrumb { opacity: 1; }
.js .page-hero h1,.js .page-hero-copy,.js .breadcrumb { opacity: 0; }
.js.is-ready .page-hero h1 { animation: pageTitleIn 1s var(--ease) .62s both; }
.js.is-ready .page-hero-copy { animation: revealLeft .85s var(--ease) .84s both; }
.js.is-ready .breadcrumb { animation: heroMeta .7s var(--ease) 1.02s both; }
.page-hero::after { animation: ghostWord 8s ease-in-out infinite alternate; }
@keyframes pageTitleIn { from { opacity:0; clip-path:inset(0 0 100% 0); translate:0 70px; } to { opacity:1; clip-path:inset(0); translate:0 0; } }
@keyframes ghostWord { from { translate:0 10px; } to { translate:-28px -10px; } }

.mask-reveal { opacity:1; }
.js .mask-reveal { opacity:0; clip-path:inset(0 0 100% 0); translate:0 55px; }
.mask-reveal.is-visible { animation: maskText .95s var(--ease) both; }
@keyframes maskText { to { opacity:1; clip-path:inset(0); translate:0 0; } }
.clip-reveal { opacity:1; }
.js .clip-reveal { opacity:0; clip-path:polygon(0 0,0 0,0 100%,0 100%); }
.clip-reveal.is-visible { animation: clipOpen 1.15s var(--ease) both; }
@keyframes clipOpen { to { opacity:1; clip-path:polygon(0 0,100% 0,100% 100%,0 100%); } }
.clip-reveal img { scale:1.12; transition:scale 1.5s var(--ease); }.clip-reveal.is-visible img { scale:1; }

.row-reveal,.slide-reveal { opacity:1; }
.js .row-reveal { opacity:0; translate:-65px 0; }
.js .row-reveal:nth-child(even) { translate:65px 0; }
.row-reveal.is-visible { animation:rowIn .85s var(--ease) both; }
@keyframes rowIn { to { opacity:1; translate:0 0; } }
.js .slide-reveal { opacity:0; translate:0 34px; }
.slide-reveal.is-visible { animation:revealUp .75s var(--ease) both; }
.row-reveal::before,.flow-item::after,.company-table dl > div::after { transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease) .15s; }

.section-head { position:relative; }
.section-head::after { content:""; position:absolute; left:0; right:0; bottom:-28px; height:1px; background:currentColor; opacity:.18; scale:0 1; transform-origin:left; transition:scale 1.1s var(--ease) .25s; }
.section-head.is-visible::after { scale:1 1; }
.globe { animation:globeFloat 6s ease-in-out infinite alternate; }.globe::before { animation:globeSpin 8s linear infinite; }.globe::after { animation:globeSpin 11s linear infinite reverse; }
@keyframes globeFloat { to { translate:-18px 24px; } } @keyframes globeSpin { to { rotate:360deg; } }

.numbers-grid.is-visible .number { animation:numberRise .8s var(--ease) both; }.numbers-grid.is-visible .number:nth-child(2){animation-delay:.09s}.numbers-grid.is-visible .number:nth-child(3){animation-delay:.18s}.numbers-grid.is-visible .number:nth-child(4){animation-delay:.27s}
@keyframes numberRise { from { opacity:0; translate:0 42px; } to { opacity:1; translate:0 0; } }
.number strong { font-variant-numeric:tabular-nums; }
.ticker:hover .ticker-track { animation-play-state:paused; }
.cta-link .circle { translate:var(--mag-x,0px) var(--mag-y,0px); transition:translate .45s var(--ease), rotate .45s var(--ease), scale .45s var(--ease); }
.cta-link:hover .circle { transform:none; rotate:45deg; scale:1.07; }
.cta-block { position:relative; overflow:hidden; }.cta-block::before { content:""; position:absolute; width:460px; height:460px; border:1px solid rgba(8,21,18,.25); border-radius:50%; right:-140px; top:-260px; animation:ctaOrbit 8s linear infinite; }.cta-block::after { content:""; position:absolute; width:120px; height:120px; background:var(--lime); border-radius:50%; left:7%; bottom:-75px; animation:ctaFloat 4s ease-in-out infinite alternate; }
@keyframes ctaOrbit { to { rotate:360deg; } } @keyframes ctaFloat { to { translate:60px -28px; } }

@media (max-width:680px) {
  .motion-cursor { display:none; }
  .japan-stage { transform:translate3d(0,var(--stage-scroll,0px),0); }
  .js.is-ready .hero-line { animation-duration:.65s; }
  .archipelago { animation-duration:5s; }
}

html[data-motion="reduced"].js:not(.is-ready) { overflow:auto; }
html[data-motion="reduced"].js body::before,html[data-motion="reduced"].js body::after,html[data-motion="reduced"] .scroll-progress,html[data-motion="reduced"] .motion-cursor { display:none!important; }
html[data-motion="reduced"] .hero-copy,html[data-motion="reduced"] .japan-stage { transform:none!important; }
html[data-motion="reduced"] .hero-copy .eyebrow,html[data-motion="reduced"] .hero-line,html[data-motion="reduced"] .hero-bottom,html[data-motion="reduced"] .japan-stage,html[data-motion="reduced"] .page-hero h1,html[data-motion="reduced"] .page-hero-copy,html[data-motion="reduced"] .breadcrumb,html[data-motion="reduced"] .mask-reveal,html[data-motion="reduced"] .clip-reveal,html[data-motion="reduced"] .row-reveal,html[data-motion="reduced"] .slide-reveal,html[data-motion="reduced"] .numbers-grid .number { opacity:1!important;clip-path:none!important;translate:none!important;scale:1!important;animation:none!important; }

/* Motion/layout v4: menu isolation, readable Japanese typography, CSS illustration gallery. */
.site-header.is-compact { backdrop-filter: none; background: rgba(247,248,242,.98); }
h1,h2,h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.section-head h2,.intro-copy h2,.message-copy h2,.global-content h2 { word-break: keep-all; overflow-wrap: normal; }
.section-head .lead { line-break: strict; word-break: auto-phrase; }
.keep { white-space: nowrap; }

.idea-lab { background: #f0f1e9; overflow: hidden; }
.illustration-grid { display: grid; grid-template-columns: 1.12fr .88fr; grid-template-rows: repeat(2,minmax(290px,1fr)); gap: 22px; }
.illustration-panel { position: relative; min-height: 290px; border-radius: 30px; overflow: hidden; transform: perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transition: transform .55s var(--ease), translate .5s var(--ease), box-shadow .5s; box-shadow: 0 18px 50px rgba(8,21,18,.07); isolation: isolate; }
.illustration-panel:hover { translate: 0 -7px; box-shadow: 0 28px 70px rgba(8,21,18,.14); }
.panel-people { grid-row: 1 / 3; min-height: 640px; background: #f2c4ba; }
.panel-data { background: #a8c6ff; }.panel-global { background: #f1c27d; }
.art-scene { position: absolute; inset: 0; overflow: hidden; }
.illustration-copy { position: absolute; z-index: 10; left: 30px; right: 30px; bottom: 28px; color: var(--ink); }
.illustration-copy h3 { margin: 13px 0 5px; font-size: clamp(24px,3vw,42px); line-height: 1; letter-spacing: -.045em; }.illustration-copy p { max-width: 440px; margin: 0; font-size: 13px; line-height: 1.65; }
.illustration-panel .tag { background: rgba(255,255,255,.58); border-color: rgba(8,21,18,.2); backdrop-filter: blur(8px); }

/* People / workflow illustration */
.art-people .art-blob { position:absolute; width:72%; height:64%; left:14%; top:8%; border-radius:42% 58% 64% 36% / 48% 38% 62% 52%; background:linear-gradient(135deg,#f6df8a,#e7a357); rotate:-7deg; animation:blobMorph 8s ease-in-out infinite alternate; }
.orbit-line { position:absolute; z-index:1; border:1px solid rgba(23,73,210,.35); border-radius:50%; animation:orbitRing 15s linear infinite; }.orbit-line.o1 { width:380px;height:240px;left:8%;top:13%;rotate:22deg }.orbit-line.o2 { width:260px;height:390px;right:3%;top:2%;rotate:-26deg;animation-direction:reverse;animation-duration:19s }
.profile-chip { position:absolute; z-index:4; width:108px; height:78px; border-radius:14px; background:#fff; box-shadow:0 14px 28px rgba(8,21,18,.12); animation:chipFloat 4s ease-in-out infinite alternate; }.profile-chip b { position:absolute; width:28px;height:28px;left:13px;top:13px;border-radius:50%;background:var(--blue) }.profile-chip em,.profile-chip::after { content:""; position:absolute; left:52px; right:12px; height:7px; border-radius:5px; background:#d8e1f7 }.profile-chip em{top:19px}.profile-chip::after{top:36px;width:38px}.chip-a{left:7%;top:13%}.chip-b{right:6%;top:25%;animation-delay:.8s}.chip-c{left:25%;top:52%;animation-delay:1.5s;scale:.8}
.css-person { position:absolute; z-index:6; display:block; width:130px; height:230px; animation:personBob 3.4s ease-in-out infinite alternate; }.css-person i { position:absolute;display:block }.css-person .head { width:48px;height:48px;border-radius:50%;background:#e49258;left:42px;top:0 }.css-person .body { width:92px;height:125px;border-radius:44px 44px 24px 24px;left:20px;top:42px;background:#1749d2 }.css-person .arm { width:30px;height:118px;border-radius:20px;background:#1749d2;top:55px;transform-origin:top }.css-person .arm-a{left:16px;rotate:35deg}.css-person .arm-b{right:14px;rotate:-52deg}.person-a{left:18%;top:22%}.person-b{right:15%;top:15%;scale:.86;animation-delay:.8s}.person-b .body,.person-b .arm{background:#0e7c4e}.person-b .head{background:#c87548}

/* Data illustration */
.data-board { position:absolute; width:62%;height:62%;left:12%;top:8%;border-radius:24px;background:rgba(255,255,255,.68);rotate:-5deg;box-shadow:0 20px 35px rgba(23,73,210,.14) }.bar { position:absolute; z-index:2; bottom:42%; width:9%; border-radius:9px 9px 0 0; background:linear-gradient(#20d66b,#009b4e); transform-origin:bottom; scale:1 0 }.illustration-panel.is-visible .bar { animation:barGrow 1s var(--ease) forwards }.bar.b1{height:18%;left:21%;animation-delay:.2s!important}.bar.b2{height:29%;left:32%;animation-delay:.35s!important}.bar.b3{height:40%;left:43%;animation-delay:.5s!important}.bar.b4{height:52%;left:54%;animation-delay:.65s!important}.trend-line { position:absolute;z-index:3;width:42%;height:3px;left:20%;top:29%;background:var(--blue);rotate:-15deg;transform-origin:left;scale:0 1 }.illustration-panel.is-visible .trend-line{animation:routeDraw 1.2s var(--ease) .75s forwards}.analyst{right:9%;top:16%;scale:.62}.analyst .body,.analyst .arm{background:#081512}.magnifier{position:absolute;z-index:7;width:72px;height:72px;border:9px solid #081512;border-radius:50%;right:18%;top:27%;rotate:-22deg;animation:magnify 3.5s ease-in-out infinite alternate}.magnifier::after{content:"";position:absolute;width:52px;height:9px;background:#081512;border-radius:8px;right:-43px;bottom:-22px;rotate:48deg}

/* Global illustration */
.mini-globe { position:absolute;width:230px;height:230px;border-radius:50%;left:8%;top:3%;background:radial-gradient(circle at 62% 35%,var(--lime) 0 10%,transparent 11%),radial-gradient(circle at 30% 55%,#20d66b 0 14%,transparent 15%),#1749d2;box-shadow:inset 0 0 0 28px rgba(255,255,255,.08);animation:globeFloat 5s ease-in-out infinite alternate }.mini-globe::before,.mini-globe::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.45);border-radius:50%}.mini-globe::before{transform:scaleX(.38)}.mini-globe::after{transform:scaleY(.4)}
.global-route { position:absolute;z-index:4;height:2px;background:#fff;transform-origin:left;scale:0 1 }.global-route::after{content:"";position:absolute;right:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--lime)}.illustration-panel.is-visible .global-route{animation:routeDraw 1.4s var(--ease) forwards}.route-a{width:170px;left:27%;top:25%;rotate:18deg;animation-delay:.4s!important}.route-b{width:190px;left:24%;top:43%;rotate:-16deg;animation-delay:.7s!important}.map-pin{position:absolute;z-index:5;width:18px;height:18px;border:4px solid #fff;border-radius:50% 50% 50% 0;rotate:-45deg;animation:pinPulse 2s ease-in-out infinite}.pin-a{left:20%;top:22%}.pin-b{left:48%;top:48%;animation-delay:.8s}.navigator{right:6%;top:7%;scale:.72}.navigator .body,.navigator .arm{background:#081512}.navigator .leg{width:28px;height:108px;background:#fff;border-radius:18px;top:145px;transform-origin:top}.navigator .leg-a{left:40px;rotate:13deg}.navigator .leg-b{left:71px;rotate:-26deg}

@keyframes blobMorph { to { border-radius:58% 42% 36% 64% / 38% 55% 45% 62%; rotate:4deg; scale:1.04 } }
@keyframes chipFloat { to { translate:10px -16px; rotate:3deg } }
@keyframes personBob { to { translate:0 -12px } }
@keyframes barGrow { to { scale:1 1 } }
@keyframes magnify { to { translate:-28px 18px; rotate:-8deg } }
@keyframes pinPulse { 50% { scale:1.3; filter:drop-shadow(0 0 12px #fff) } }

.activity-card { transform:perspective(900px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transition:transform .5s var(--ease),translate .5s var(--ease),box-shadow .5s; }.activity-card:hover{translate:0 -6px;box-shadow:0 22px 50px rgba(8,21,18,.12)}
.motion-switch { position:fixed;z-index:190;left:18px;bottom:18px;min-height:40px;padding:0 15px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(8,21,18,.88);color:#fff;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(10px) }
.motion-switch::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;background:var(--green);box-shadow:0 0 9px var(--green)}.motion-switch.is-off::before{background:#9aa39f;box-shadow:none}

@media (max-width:1280px) {
  .section-head { grid-template-columns:1fr; gap:30px; }
  .section-head .lead { margin-left:0; max-width:760px; }
  .section-head h2 { max-width:18ch; }
}

@media (max-width:1100px) {
  body.menu-open .site-header { height:100dvh!important; min-height:100dvh; transform:none!important; background:var(--lime)!important; backdrop-filter:none!important; overflow:visible; }
  body.menu-open .header-wrap { align-items:flex-start; padding-top:12px; }
  .nav { position:absolute; inset:0; width:100%; height:100dvh; min-height:100dvh; padding:120px max(28px,6vw) 42px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:center; align-items:center; column-gap:7vw; overflow-y:auto; overscroll-behavior:contain; counter-reset:navitem; background:var(--lime); }
  .nav a { counter-increment:navitem; position:relative; width:100%; min-height:72px; padding:17px 0 14px 42px; font-size:clamp(34px,5.4vw,64px); line-height:.9; white-space:nowrap; }
  .nav a::before { content:"0" counter(navitem); position:absolute; left:0; top:19px; font-family:monospace; font-size:10px; letter-spacing:.06em; color:var(--green-dark); }
  .nav.open a { animation:menuItemIn .72s var(--ease) both; }.nav.open a:nth-child(2){animation-delay:.05s}.nav.open a:nth-child(3){animation-delay:.1s}.nav.open a:nth-child(4){animation-delay:.15s}.nav.open a:nth-child(5){animation-delay:.2s}.nav.open a:nth-child(6){animation-delay:.25s}.nav.open a:nth-child(7){animation-delay:.3s}
  .nav .nav-cta { min-height:72px; padding:17px 0 14px 42px; }
  .illustration-grid { grid-template-columns:1fr; grid-template-rows:auto; }.panel-people{grid-row:auto;min-height:560px}.panel-data,.panel-global{min-height:390px}
}
@keyframes menuItemIn { from { opacity:0; translate:0 38px; clip-path:inset(0 0 100% 0) } to { opacity:1; translate:0 0; clip-path:inset(0) } }

@media (max-width:680px) {
  body.menu-open .header-wrap { width:calc(100% - 28px); }
  .nav { grid-template-columns:1fr; align-content:start; gap:0; padding:94px 22px max(30px,env(safe-area-inset-bottom)); }
  .nav a,.nav .nav-cta { min-height:55px; padding:10px 0 9px 32px; font-size:clamp(30px,10vw,43px); line-height:.88; }
  .nav a::before { top:14px; font-size:8px; }
  .illustration-panel,.panel-people,.panel-data,.panel-global { min-height:430px; border-radius:22px; }
  .illustration-copy { left:22px;right:22px;bottom:22px }.illustration-copy h3{font-size:31px}.art-people{scale:.82;transform-origin:center top}.art-data,.art-global{scale:.88;transform-origin:center top}
  .motion-switch { left:12px;bottom:12px; }
}

html[data-motion="reduced"] .art-blob,html[data-motion="reduced"] .orbit-line,html[data-motion="reduced"] .profile-chip,html[data-motion="reduced"] .css-person,html[data-motion="reduced"] .magnifier,html[data-motion="reduced"] .mini-globe,html[data-motion="reduced"] .map-pin,html[data-motion="reduced"] .illustration-panel,html[data-motion="reduced"] .activity-card { animation:none!important;transition:none!important; }

/* Release v7 — refined typography, viewport-safe navigation and editorial artwork. */
:root {
  --font-latin: "Segoe UI Variable Display", "Segoe UI Variable Text", "Segoe UI", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --font-jp: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", Meiryo, sans-serif;
  --font-ui: "Segoe UI Variable Display", "Segoe UI Variable Text", "Segoe UI", "Avenir Next", "Helvetica Neue", Arial, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", Meiryo, sans-serif;
  --font-mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
  --type-body: clamp(15px, 14.4px + .18vw, 17px);
  --type-lead: clamp(15px, 14px + .35vw, 18px);
  --type-jp-title: clamp(38px, 4.55vw, 70px);
}

html,body { max-width:100%; overflow-x:hidden; }
@supports (overflow:clip) { html,body { overflow-x:clip; } }
site-header,site-footer { display:block; }
body { font-family:var(--font-ui); font-size:var(--type-body); font-weight:400; line-height:1.82; letter-spacing:.01em; font-kerning:normal; font-optical-sizing:auto; }
:is(h1,h2,h3,strong,b) { font-synthesis:none; }
:is(p,li,dd,summary) { font-weight:400; }
.section { overflow-x:clip; }
.wrap,.section-head > *,.company-message > *,.service-row > *,.page-hero-grid > * { min-width:0; }

/* Header never inherits the width of overflowing page content. */
.site-header { width:100%; max-width:100vw; }
.header-wrap { position:relative; max-width:100%; }
.brand { min-width:0; flex:0 1 auto; }
.brand-copy { min-width:0; }
.brand-copy strong { font-family:var(--font-jp); font-weight:700; white-space:nowrap; }
.brand-copy small { font-family:var(--font-latin); font-weight:600; }
.menu-toggle { flex:0 0 52px; min-width:52px; margin-left:auto; }

/* Japanese and Latin are intentionally paired instead of forced into one face. */
:is(.hero-copy h1,.page-hero h1,.display,.statement,.service-row h3,.flow-item h3,.illustration-copy h3,.activity-card h3,.story-copy h3,.culture-canvas-copy h3,.faq-title) {
  font-family:var(--font-latin); font-weight:800; letter-spacing:-.05em;
}
:is(.hero-copy h1 .jp,.section-head h2,.intro-copy h2,.global-content h2,.message-copy h2,.service-card h2,.activity-feature-copy h2,.contact-intro h2,.policy h2,.cta-link h2:not([lang="en"])) {
  font-family:var(--font-jp); font-weight:650; letter-spacing:-.018em; line-break:strict; word-break:normal; overflow-wrap:anywhere; font-feature-settings:"palt" 1;
}
:is(.section-head h2,.intro-copy h2,.global-content h2,.activity-feature-copy h2,.contact-intro h2) { font-size:var(--type-jp-title); line-height:1.16; }
.hero-copy h1 { line-height:.89; letter-spacing:-.062em; font-weight:800; }
.hero-copy h1 .jp { line-height:1.34; letter-spacing:-.008em; font-weight:650; }
.page-hero h1 { line-height:.84; letter-spacing:-.062em; font-weight:800; }
.page-hero h1 small { font-family:var(--font-jp); font-weight:600; line-height:1.5; letter-spacing:.1em; }
.message-copy h2 { font-size:clamp(38px,3.8vw,54px); line-height:1.26; letter-spacing:-.012em; }
.service-card h2 { font-weight:650; line-height:1.22; letter-spacing:-.012em; }
.statement { line-height:1.08; letter-spacing:-.035em; }
.statement small { font-family:var(--font-jp); font-weight:400; letter-spacing:.012em; }
.cta-link h2:not([lang="en"]) { font-size:clamp(52px,7vw,104px); line-height:1.08; letter-spacing:-.024em; }
.cta-link h2[lang="en"] { font-family:var(--font-latin); font-weight:800; line-height:.91; letter-spacing:-.06em; }
.faq-title { margin:0; font-size:clamp(42px,5vw,72px); line-height:.95; }
:is(.section-head .lead,.page-hero-copy p,.message-copy p,.activity-feature-copy p,.global-content > p) { font-size:var(--type-lead); font-weight:400; line-height:1.9; letter-spacing:.012em; }
.nav a,.btn,.text-link { font-family:var(--font-latin); font-weight:700; }
.eyebrow { font-family:var(--font-latin); font-weight:800; letter-spacing:.18em; }
:is(.stage-coordinate,.service-row .no,.service-card .mini,.flow-item::before,.nav a::before,.mono-art::after) { font-family:var(--font-mono); }
.section-head h2,.intro-copy h2,.message-copy h2,.global-content h2 { word-break:normal; overflow-wrap:anywhere; }

/* Company IF artwork: one reveal system, stable desktop width, no sticky clipping. */
.company-message { grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr); gap:clamp(56px,8vw,118px); }
.company-message .mono-art { position:relative; top:auto; width:100%; min-width:0; min-height:clamp(500px,44vw,620px); border-radius:34px; isolation:isolate; background:linear-gradient(145deg,#20d66b 0 58%,#caff4a 100%); box-shadow:0 30px 70px rgba(8,21,18,.11); }
.mono-art::before { z-index:1; inset:auto auto -5% 3%; font-family:var(--font-latin); font-size:clamp(255px,27vw,390px); line-height:.7; letter-spacing:-.13em; font-weight:900; white-space:nowrap; }
.mono-art::after { z-index:5; left:30px; top:28px; font-size:10px; letter-spacing:.16em; }
.mono-orbit { position:absolute; z-index:2; width:74%; aspect-ratio:1; right:-30%; top:5%; border:1px solid rgba(8,21,18,.28); border-radius:50%; box-shadow:0 0 0 56px rgba(8,21,18,.035),0 0 0 112px rgba(8,21,18,.025); animation:monoOrbit 14s linear infinite; }
.mono-axis { position:absolute; z-index:2; width:70%; height:1px; right:-8%; top:39%; background:rgba(8,21,18,.42); rotate:-28deg; transform-origin:left; }
.mono-node { position:absolute; z-index:4; width:12px; height:12px; border-radius:50%; background:var(--paper); box-shadow:0 0 0 9px rgba(247,248,242,.2),0 0 24px rgba(247,248,242,.85); animation:monoNode 2.6s ease-in-out infinite; }
.mono-node-a { right:22%; top:27%; }.mono-node-b { right:9%; top:49%; animation-delay:.8s; }
@keyframes monoOrbit { to { rotate:360deg; } }
@keyframes monoNode { 50% { scale:1.35; box-shadow:0 0 0 18px rgba(247,248,242,0),0 0 30px rgba(247,248,242,.9); } }

/* Original code-native artwork for Company. */
.studio-section { background:#fff; }
.studio-visual-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:22px; }
.story-visual { position:relative; min-height:540px; overflow:hidden; border-radius:32px; isolation:isolate; box-shadow:0 24px 60px rgba(8,21,18,.08); transform:perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transition:transform .5s var(--ease),translate .5s var(--ease),box-shadow .5s; }
.story-visual:hover { translate:0 -7px; box-shadow:0 34px 80px rgba(8,21,18,.15); }
.story-engineer { background:#b9cef8; }.story-architecture { background:#efc77f; }
.story-art { position:absolute; inset:0; overflow:hidden; }
.story-copy { position:absolute; z-index:20; left:34px; right:34px; bottom:30px; }
.story-copy .tag,.culture-canvas-copy .tag { background:rgba(255,255,255,.64); border-color:rgba(8,21,18,.18); backdrop-filter:blur(8px); }
.story-copy h3 { margin:14px 0 5px; font-size:clamp(34px,4vw,56px); line-height:.95; }
.story-copy p { max-width:450px; margin:0; font-size:14px; line-height:1.7; }
.work-backdrop { position:absolute; width:66%; height:57%; left:8%; top:8%; border-radius:42% 58% 59% 41% / 48% 37% 63% 52%; background:#a9e18d; rotate:-7deg; animation:blobMorph 8s ease-in-out infinite alternate; }
.work-screen { position:absolute; z-index:5; left:22%; top:11%; width:245px; height:170px; border-radius:18px; background:#1749d2; rotate:7deg; box-shadow:0 22px 40px rgba(23,73,210,.22); }
.work-screen::after { content:""; position:absolute; left:-28px; right:-28px; bottom:-20px; height:25px; border-radius:4px 4px 18px 18px; background:#e9efff; transform:skewX(-24deg); }
.work-screen i { position:absolute; inset:25px 28px; border-radius:9px; background:linear-gradient(120deg,transparent 0 24%,#caff4a 25% 31%,transparent 32% 46%,#20d66b 47% 55%,transparent 56%),rgba(255,255,255,.12); }
.work-person { position:absolute; z-index:8; right:8%; top:14%; width:190px; height:300px; animation:personBob 3.8s ease-in-out infinite alternate; }
.work-person i { position:absolute; display:block; }
.work-head { width:58px; height:58px; right:48px; top:0; border-radius:50%; background:linear-gradient(145deg,#d37a43 0 65%,#1749d2 66%); }
.work-body { width:126px; height:142px; right:18px; top:50px; border-radius:58px 38px 34px 34px; background:#0a244d; rotate:-7deg; }
.work-arm { width:34px; height:126px; left:35px; top:64px; border-radius:22px; background:#c96e3c; rotate:58deg; transform-origin:top; }
.work-leg { width:46px; height:150px; top:168px; border-radius:24px; background:#1749d2; transform-origin:top; }.work-leg-a{right:70px;rotate:52deg}.work-leg-b{right:35px;rotate:27deg}
.work-chip { position:absolute; z-index:9; padding:8px 13px; border-radius:999px; background:#fff; color:#1749d2; font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; box-shadow:0 12px 24px rgba(8,21,18,.1); animation:chipFloat 4s ease-in-out infinite alternate; }.work-chip-a{left:7%;top:17%}.work-chip-b{right:7%;top:9%;animation-delay:1s}
.signal-sun { position:absolute; width:155px; height:155px; right:8%; top:8%; border-radius:50%; background:var(--lime); box-shadow:0 0 0 26px rgba(202,255,74,.17); animation:pinPulse 3s ease-in-out infinite; }
.signal-tower { position:absolute; z-index:5; bottom:0; background:var(--ink); border-radius:18px 18px 0 0; }.signal-tower::before { content:""; position:absolute; inset:25px 15px; background:repeating-linear-gradient(0deg,var(--lime) 0 8px,transparent 8px 25px); opacity:.86; }
.tower-one{width:96px;height:62%;left:10%}.tower-two{width:118px;height:78%;left:33%}.tower-three{width:86px;height:48%;right:13%}
.signal-bridge { position:absolute; z-index:7; left:7%; right:8%; top:42%; height:12px; border-radius:12px; background:#1749d2; rotate:-8deg; box-shadow:0 16px 0 rgba(23,73,210,.22); }
.signal-route { position:absolute; z-index:8; height:2px; background:#fff; transform-origin:left; scale:0 1; animation:routeDraw 1.6s var(--ease) forwards; }.route-one{width:58%;left:14%;top:27%;rotate:18deg;animation-delay:.35s}.route-two{width:48%;left:31%;top:35%;rotate:-23deg;animation-delay:.7s}

/* Culture landscape inspired by connection, activity and Tokyo. */
.culture-canvas-section { background:#eef4f0; }
.culture-canvas { display:grid; grid-template-columns:1.28fr .72fr; min-height:560px; overflow:hidden; border-radius:32px; background:#c7e9f1; box-shadow:0 25px 70px rgba(8,21,18,.09); }
.culture-town-art { position:relative; min-height:560px; overflow:hidden; }
.culture-canvas-copy { display:flex; flex-direction:column; justify-content:flex-end; padding:52px; background:#1749d2; color:#fff; }
.culture-canvas-copy h3 { margin:18px 0 16px; font-size:clamp(42px,5vw,76px); line-height:.92; }
.culture-canvas-copy p { margin:0; color:rgba(255,255,255,.76); font-size:14px; line-height:1.9; }
.town-sky-orbit { position:absolute; width:360px; height:360px; right:-80px; top:-100px; border:1px solid rgba(23,73,210,.25); border-radius:50%; box-shadow:0 0 0 55px rgba(23,73,210,.035),0 0 0 110px rgba(23,73,210,.025); animation:orbitRing 18s linear infinite; }
.town-island { position:absolute; width:76%; height:58%; left:10%; top:20%; border-radius:50% 46% 54% 40% / 55% 42% 58% 45%; background:#74cb6b; rotate:-7deg; box-shadow:0 28px 0 rgba(23,73,210,.12); }
.town-road { position:absolute; z-index:3; width:74%; height:58px; left:7%; top:45%; border-radius:50%; border:18px solid rgba(255,255,255,.82); rotate:-12deg; }
.town-building { position:absolute; z-index:6; bottom:24%; border-radius:9px 9px 2px 2px; box-shadow:inset 0 0 0 5px rgba(255,255,255,.18); animation:personBob 4s ease-in-out infinite alternate; }.town-building::after{content:"";position:absolute;inset:18px 9px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.8) 0 6px,transparent 6px 17px)}
.town-building-a{width:70px;height:150px;left:18%;background:#1749d2}.town-building-b{width:86px;height:190px;left:39%;background:#f1c54e;animation-delay:.6s}.town-building-c{width:64px;height:128px;right:20%;background:#20d66b;animation-delay:1.1s}
.town-tree { position:absolute; z-index:8; width:42px; height:68px; border-radius:50% 50% 42% 42%; background:#08713e; }.town-tree::after{content:"";position:absolute;width:8px;height:28px;background:#7e4d2d;left:17px;bottom:-17px}.town-tree-a{left:12%;top:27%}.town-tree-b{right:13%;top:34%;scale:.8}
.town-person { position:absolute; z-index:10; width:26px; height:62px; border-radius:14px 14px 8px 8px; background:#0a244d; animation:chipFloat 3.4s ease-in-out infinite alternate; }.town-person::before{content:"";position:absolute;width:22px;height:22px;border-radius:50%;left:2px;top:-18px;background:#d37a43}.town-person::after{content:"";position:absolute;width:52px;height:12px;border-radius:10px;background:#1749d2;left:-13px;top:29px;rotate:-12deg}.town-person-a{left:31%;top:38%}.town-person-b{right:27%;top:53%;scale:.78;animation-delay:.8s}

@media (max-width:1100px) {
  .menu-toggle { position:absolute; right:0; top:50%; translate:0 -50%; }
  body.menu-open .menu-toggle { top:12px; translate:0 0; }
  .company-message { grid-template-columns:1fr; gap:54px; }
  .company-message .mono-art { min-height:500px; }
  .studio-visual-grid { grid-template-columns:1fr; }
  .story-visual { min-height:520px; }
  .culture-canvas { grid-template-columns:1fr; }
  .culture-town-art { min-height:480px; }
  .culture-canvas-copy { min-height:330px; }
}

@media (max-width:680px) {
  :root { --type-body:15px; --type-lead:15px; --type-jp-title:clamp(33px,9.4vw,42px); }
  body { line-height:1.78; }
  .header-wrap { padding-right:0; }
  .menu-toggle { flex-basis:52px; min-width:52px; }
  .hero-copy h1 { letter-spacing:-.05em; }
  .page-hero h1 { font-size:clamp(64px,20vw,82px); }
  .message-copy h2 { font-size:clamp(34px,9.3vw,42px); line-height:1.24; }
  .cta-link h2:not([lang="en"]) { font-size:clamp(46px,13vw,62px); line-height:1.1; }
  .faq-title { font-size:clamp(40px,13vw,58px); line-height:.96; }
  .company-message .mono-art { min-height:430px; border-radius:24px; }
  .mono-art::before { font-size:clamp(250px,82vw,315px); bottom:-3%; left:2%; }
  .mono-art::after { left:24px; top:23px; font-size:9px; }
  .studio-visual-grid { gap:16px; }
  .story-visual { min-height:480px; border-radius:24px; }
  .story-copy { left:24px; right:24px; bottom:24px; }.story-copy h3{font-size:40px}.story-copy p{font-size:13px}
  .work-screen { left:15%; scale:.78; transform-origin:left top; }.work-person{right:-2%;scale:.72;transform-origin:right top}.work-backdrop{width:82%;left:6%}.work-chip-b{display:none}
  .signal-sun { width:120px; height:120px; }.tower-one{left:7%}.tower-two{left:35%;width:104px}.tower-three{right:7%}
  .culture-canvas { border-radius:24px; }.culture-town-art{min-height:410px}.culture-canvas-copy{min-height:310px;padding:32px 26px}.culture-canvas-copy h3{font-size:47px}.town-island{width:90%;left:3%}.town-building-a{left:11%}.town-building-b{left:38%}.town-building-c{right:10%}.town-person-b{right:18%}
}

html[data-motion="reduced"] :is(.mono-orbit,.mono-node,.work-backdrop,.work-person,.work-chip,.signal-sun,.signal-route,.town-sky-orbit,.town-building,.town-person,.story-visual) { animation:none!important; transition:none!important; }

/* Release v9 — descender-safe display type and materialize-from-void motion. */
.hero-copy h1 { line-height:.96; }
.hero-copy .hero-line { box-sizing:border-box; padding-bottom:.14em; margin-bottom:-.14em; }
.page-hero h1 { line-height:.94; padding-bottom:.12em; margin-bottom:-.12em; }
.js .page-hero h1 { clip-path:none; }
@keyframes pageTitleIn {
  from { opacity:0; filter:blur(16px); translate:0 58px; scale:.94; }
  to { opacity:1; filter:blur(0); translate:0 0; scale:1; }
}

.emerge-reveal,.void-pop,.emerge-piece { opacity:1; }
.js .emerge-reveal { opacity:0; clip-path:circle(0 at var(--emerge-x,50%) var(--emerge-y,50%)); filter:blur(18px); scale:.82; }
.emerge-reveal.is-visible { animation:emergeFromVoid 1.35s var(--ease) both; }
.js .void-pop { opacity:0; filter:blur(12px); scale:.72; translate:0 36px; }
.void-pop.is-visible { animation:voidMaterialize .95s var(--ease) both; }
.js .emerge-piece { opacity:0; scale:.2; filter:blur(12px); }
.emerge-reveal.is-visible .emerge-piece { animation:pieceMaterialize .82s var(--ease) .45s both; }
.emerge-reveal.is-visible .emerge-piece:nth-child(2){animation-delay:.52s}.emerge-reveal.is-visible .emerge-piece:nth-child(3){animation-delay:.59s}.emerge-reveal.is-visible .emerge-piece:nth-child(4){animation-delay:.66s}.emerge-reveal.is-visible .emerge-piece:nth-child(5){animation-delay:.73s}.emerge-reveal.is-visible .emerge-piece:nth-child(6){animation-delay:.8s}.emerge-reveal.is-visible .emerge-piece:nth-child(7){animation-delay:.87s}.emerge-reveal.is-visible .emerge-piece:nth-child(8){animation-delay:.94s}.emerge-reveal.is-visible .emerge-piece:nth-child(9){animation-delay:1.01s}.emerge-reveal.is-visible .emerge-piece:nth-child(10){animation-delay:1.08s}
@keyframes emergeFromVoid { 0%{opacity:0;clip-path:circle(0 at var(--emerge-x,50%) var(--emerge-y,50%));filter:blur(18px);scale:.82} 52%{opacity:1} 100%{opacity:1;clip-path:circle(150% at var(--emerge-x,50%) var(--emerge-y,50%));filter:blur(0);scale:1} }
@keyframes voidMaterialize { 0%{opacity:0;filter:blur(12px);scale:.72;translate:0 36px;rotate:-2deg} 65%{opacity:1;scale:1.025} 100%{opacity:1;filter:blur(0);scale:1;translate:0 0;rotate:0deg} }
@keyframes pieceMaterialize { 0%{opacity:0;scale:.2;filter:blur(12px);rotate:-14deg} 70%{opacity:1;scale:1.08;filter:blur(0)} 100%{opacity:1;scale:1;filter:blur(0);rotate:0deg} }

/* Home: HTML-native foreigner solution desk with original CSS artwork. */
.japan-entry { background:#edf5f0; }
.entry-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(44px,7vw,105px); align-items:stretch; }
.entry-solutions { display:flex; flex-direction:column; gap:14px; }
.entry-card { display:grid; grid-template-columns:54px 1fr; gap:18px; padding:25px 24px; border:1px solid rgba(8,21,18,.16); border-radius:20px; background:rgba(255,255,255,.78); box-shadow:0 15px 35px rgba(8,21,18,.045); }
.entry-no { display:grid; place-items:center; width:43px; height:43px; border-radius:50%; background:var(--ink); color:var(--lime); font-family:var(--font-mono); font-size:11px; }
.entry-en { margin:0 0 5px; color:var(--green-dark); font-family:var(--font-latin); font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.entry-card h3 { margin:0 0 7px; font-family:var(--font-jp); font-size:clamp(20px,2vw,27px); font-weight:650; line-height:1.35; letter-spacing:-.012em; }
.entry-card p:last-child { margin:0; color:var(--muted); font-size:13px; line-height:1.85; }
.entry-note { margin:9px 0 0; padding-left:14px; border-left:2px solid var(--green); color:var(--muted); font-size:11px; line-height:1.8; }
.entry-solutions > p:last-child { margin:5px 0 0; }
.crossborder-art { position:relative; min-height:650px; margin:0; overflow:hidden; border-radius:36px; background:linear-gradient(145deg,#b8d0ff 0 52%,#f0c3b8 52% 100%); box-shadow:0 28px 75px rgba(8,21,18,.11); isolation:isolate; transform:perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transition:transform .5s var(--ease),translate .5s var(--ease),box-shadow .5s; }
.crossborder-art:hover { translate:0 -7px; box-shadow:0 38px 90px rgba(8,21,18,.17); }
.bridge-scene { position:absolute; inset:0; overflow:hidden; }
.bridge-orbit { position:absolute; width:520px; height:520px; left:50%; top:45%; translate:-50% -50%; border:1px solid rgba(23,73,210,.26); border-radius:50%; box-shadow:0 0 0 62px rgba(23,73,210,.035),0 0 0 124px rgba(23,73,210,.025); animation:orbitRing 18s linear infinite; }
.bridge-zone { position:absolute; width:245px; height:245px; border-radius:50%; box-shadow:inset 0 0 0 24px rgba(255,255,255,.11),0 22px 45px rgba(8,21,18,.14); }
.bridge-zone::after { position:absolute; left:50%; top:50%; translate:-50% -50%; color:#fff; font-family:var(--font-latin); font-size:15px; font-weight:800; letter-spacing:.15em; }
.zone-global { left:7%; top:12%; background:#1749d2; }.zone-global::after{content:"CLIENT"}
.zone-japan { right:7%; bottom:16%; background:#0b8f50; }.zone-japan::after{content:"PROJECT"}
.bridge-line { position:absolute; z-index:3; width:66%; height:18px; left:17%; top:48%; border-radius:20px; background:#fff; rotate:18deg; box-shadow:0 14px 0 rgba(255,255,255,.25); }
.bridge-line::before,.bridge-line::after{content:"";position:absolute;width:18px;height:70px;bottom:0;background:#fff;border-radius:10px}.bridge-line::before{left:18%}.bridge-line::after{right:18%}
.bridge-person { position:absolute; z-index:7; width:62px; height:128px; border-radius:30px 30px 18px 18px; background:var(--ink); animation:personBob 3.7s ease-in-out infinite alternate; }
.bridge-person::before { content:""; position:absolute; width:45px; height:45px; left:8px; top:-35px; border-radius:50%; background:#d37a43; }
.bridge-person::after { content:""; position:absolute; width:88px; height:20px; left:-13px; top:45px; border-radius:14px; background:#1749d2; rotate:-14deg; }
.person-global { left:22%; top:32%; }.person-japan { right:21%; bottom:24%; scale:.88; animation-delay:.8s; }.person-japan::after{background:var(--lime)}
.handoff-ticket { position:absolute; z-index:9; display:grid; place-items:center; width:118px; height:72px; border-radius:14px; background:#fff; color:var(--blue); font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; box-shadow:0 16px 32px rgba(8,21,18,.13); animation:chipFloat 4s ease-in-out infinite alternate; }
.ticket-context{left:7%;bottom:18%}.ticket-ux{left:44%;top:17%;animation-delay:.7s}.ticket-ops{right:6%;top:20%;animation-delay:1.4s}
.bridge-signal { position:absolute; z-index:8; width:12px; height:12px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 10px rgba(202,255,74,.18),0 0 28px var(--lime); animation:pinPulse 2.4s ease-in-out infinite; }.signal-one{left:42%;top:45%}.signal-two{right:35%;top:54%;animation-delay:.8s}
.crossborder-art figcaption { position:absolute; z-index:15; left:30px; right:30px; bottom:26px; display:flex; justify-content:space-between; gap:20px; align-items:end; color:var(--ink); }
.crossborder-art figcaption span { font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }.crossborder-art figcaption strong { max-width:330px; font-family:var(--font-latin); font-size:clamp(27px,3vw,43px); line-height:.96; letter-spacing:-.04em; text-align:right; }

/* Global page: visible project route and a second original artwork. */
.blueprint-section { background:#fff; }
.blueprint-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(45px,7vw,100px); align-items:stretch; }
.blueprint-steps { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.blueprint-steps li { display:grid; grid-template-columns:52px 1fr; gap:22px; padding:25px 0; border-bottom:1px solid var(--line); }
.blueprint-steps li > span { padding-top:4px; color:var(--green-dark); font-family:var(--font-mono); font-size:11px; }
.blueprint-steps h3 { margin:0 0 6px; font-family:var(--font-latin); font-size:clamp(23px,2.3vw,33px); line-height:1.05; letter-spacing:-.035em; }
.blueprint-steps p { margin:0; color:var(--muted); font-size:13px; line-height:1.85; }
.blueprint-visual { position:relative; min-height:620px; margin:0; overflow:hidden; border-radius:34px; background:#081512; color:#fff; box-shadow:0 30px 80px rgba(8,21,18,.15); }
.blueprint-art { position:absolute; inset:0; overflow:hidden; }
.blueprint-sheet { position:absolute; width:72%; height:72%; left:14%; top:10%; border-radius:26px; background:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),#1749d2; background-size:28px 28px; rotate:-5deg; box-shadow:0 22px 50px rgba(0,0,0,.24); }
.blueprint-route { position:absolute; z-index:3; width:64%; height:4px; left:18%; top:46%; background:var(--lime); rotate:-12deg; transform-origin:left; box-shadow:0 0 18px rgba(202,255,74,.52); }
.blueprint-node { position:absolute; z-index:5; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; border:3px solid var(--lime); background:var(--ink); color:var(--lime); font-family:var(--font-mono); font-size:12px; box-shadow:0 0 0 9px rgba(202,255,74,.1); animation:pinPulse 3s ease-in-out infinite; }
.bp-one{left:16%;top:49%}.bp-two{left:36%;top:39%;animation-delay:.5s}.bp-three{right:34%;top:31%;animation-delay:1s}.bp-four{right:14%;top:21%;animation-delay:1.5s}
.blueprint-card { position:absolute; z-index:6; padding:10px 14px; border-radius:999px; background:#fff; color:var(--blue); font-family:var(--font-mono); font-size:9px; letter-spacing:.08em; box-shadow:0 12px 26px rgba(0,0,0,.2); animation:chipFloat 4s ease-in-out infinite alternate; }.bp-context{left:9%;top:18%}.bp-build{right:10%;top:47%;animation-delay:.8s}.bp-ops{left:23%;bottom:14%;animation-delay:1.4s}
.blueprint-person { position:absolute; z-index:7; width:115px; height:190px; right:12%; bottom:5%; border-radius:54px 54px 28px 28px; background:#fff; rotate:7deg; }.blueprint-person::before{content:"";position:absolute;width:58px;height:58px;border-radius:50%;left:27px;top:-42px;background:linear-gradient(145deg,#d37a43 0 65%,var(--green) 66%)}.blueprint-person::after{content:"";position:absolute;width:36px;height:132px;left:-12px;top:30px;border-radius:22px;background:#d37a43;rotate:54deg;transform-origin:top}
.blueprint-visual figcaption { position:absolute; z-index:12; left:28px; bottom:24px; font-family:var(--font-mono); font-size:9px; letter-spacing:.13em; color:rgba(255,255,255,.65); text-transform:uppercase; }

@media (max-width:1100px) {
  .entry-grid,.blueprint-grid { grid-template-columns:1fr; }
  .crossborder-art,.blueprint-visual { min-height:600px; }
  .entry-solutions { order:2; }.crossborder-art { order:1; }
}

@media (max-width:680px) {
  .hero-copy h1 { line-height:.99; }
  .hero-copy .hero-line { padding-bottom:.16em; margin-bottom:-.16em; }
  .page-hero h1 { line-height:.98; padding-bottom:.14em; margin-bottom:-.14em; }
  .entry-card { grid-template-columns:42px 1fr; gap:13px; padding:21px 17px; }.entry-no{width:36px;height:36px}.entry-card h3{font-size:21px}.entry-card p:last-child{font-size:12px}
  .crossborder-art,.blueprint-visual { min-height:520px; border-radius:24px; }
  .bridge-zone { width:175px; height:175px; }.zone-global{left:-3%;top:10%}.zone-japan{right:-3%;bottom:19%}.bridge-line{width:78%;left:11%;top:45%}.bridge-person{scale:.72}.person-global{left:13%;top:28%}.person-japan{right:11%;bottom:24%;scale:.65}.handoff-ticket{width:92px;height:58px}.ticket-context{left:4%;bottom:11%}.ticket-ux{left:39%;top:20%}.ticket-ops{right:4%;top:29%}.crossborder-art figcaption{left:22px;right:22px;bottom:20px}.crossborder-art figcaption span{display:none}.crossborder-art figcaption strong{font-size:30px;text-align:left}
  .blueprint-steps li { grid-template-columns:40px 1fr; gap:12px; padding:21px 0; }.blueprint-steps h3{font-size:25px}
  .blueprint-sheet{width:88%;height:72%;left:6%}.blueprint-route{width:76%;left:12%}.bp-one{left:9%}.bp-two{left:31%}.bp-three{right:28%}.bp-four{right:7%}.blueprint-person{scale:.72;transform-origin:right bottom;right:5%}
}

html[data-motion="reduced"] :is(.emerge-reveal,.void-pop,.emerge-piece) { opacity:1!important; clip-path:none!important; filter:none!important; scale:1!important; translate:none!important; rotate:0deg!important; animation:none!important; }

/* Release v10 — original brand lockup, Japan network heroes, and service delivery story. */
.brand { gap:11px; }
.brand-mark,.footer-brand .brand-mark {
  display:block; width:44px; height:44px; flex:0 0 44px; overflow:hidden;
  border:1px solid rgba(8,21,18,.12); border-radius:9px; background:#fff;
  color:inherit; transform:none; box-shadow:0 8px 22px rgba(8,21,18,.09);
}
.brand-mark img { width:100%; height:100%; object-fit:cover; }
.brand-copy { line-height:1.08; }
.brand-copy strong { font-size:16px; font-weight:700; letter-spacing:-.025em; }
.brand-copy small,.footer-brand .brand-copy small {
  display:block; margin-top:5px; color:var(--muted); font-family:var(--font-latin);
  font-size:7.6px; font-weight:700; line-height:1.1; letter-spacing:.035em; white-space:nowrap;
}
.footer-brand .brand-copy small { color:rgba(255,255,255,.58); }

/* Inner-page hero: an original HTML/CSS Japan map, not a raster or AI image. */
.page-hero {
  min-height:650px; isolation:isolate;
  background:
    radial-gradient(circle at 84% 34%,rgba(202,255,74,.2),transparent 22%),
    radial-gradient(circle at 72% 72%,rgba(32,214,107,.15),transparent 31%),
    linear-gradient(112deg,#f9faf5 0 47%,#e6f6ed 100%);
}
.page-hero::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.48;
  background-image:linear-gradient(rgba(8,21,18,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(8,21,18,.045) 1px,transparent 1px);
  background-size:44px 44px; mask-image:linear-gradient(90deg,transparent 0,#000 42%,#000 100%);
}
.page-hero::after { z-index:1; opacity:.52; }
.page-hero > .wrap { position:relative; z-index:4; }
.page-hero-grid { grid-template-columns:minmax(0,1fr) minmax(320px,.58fr); }
.page-hero-copy {
  padding:24px 26px; border-left:2px solid var(--green-dark); border-radius:0 20px 20px 0;
  background:rgba(247,248,242,.76); box-shadow:0 18px 45px rgba(8,21,18,.06); backdrop-filter:blur(12px);
}
.inner-japan-network {
  position:absolute; z-index:0; width:min(760px,58vw); height:500px; right:-2.5vw; top:96px;
  opacity:1; pointer-events:none; filter:drop-shadow(0 28px 35px rgba(0,90,50,.12));
}
.js .inner-japan-network { opacity:0; }
.js.is-ready .inner-japan-network { animation:networkMapIn 1.35s var(--ease) .45s both; }
.inner-japan-network::before {
  content:""; position:absolute; inset:-20% -8% -15% -22%; z-index:-2;
  background:radial-gradient(ellipse at 58% 50%,rgba(255,255,255,.76),rgba(255,255,255,0) 66%);
}
.jp-island {
  position:absolute; display:block; background:linear-gradient(145deg,#26db72 0%,#068c50 62%,#045c3a 100%);
  border:1px solid rgba(255,255,255,.9); box-shadow:inset 0 0 18px rgba(255,255,255,.22),0 8px 18px rgba(3,93,54,.28);
}
.jp-hokkaido { width:118px; height:91px; right:4%; top:2%; rotate:12deg; clip-path:polygon(18% 0,60% 8%,72% 25%,100% 32%,83% 56%,91% 89%,55% 81%,30% 100%,18% 66%,0 43%); }
.jp-tohoku { width:82px; height:146px; right:19%; top:18%; rotate:-22deg; border-radius:45% 36% 56% 30%; clip-path:polygon(31% 0,70% 8%,83% 30%,65% 47%,91% 71%,60% 100%,20% 89%,30% 59%,0 37%); }
.jp-kanto { width:106px; height:76px; right:25%; top:46%; rotate:-16deg; clip-path:polygon(0 15%,45% 0,68% 16%,100% 21%,80% 50%,88% 100%,49% 71%,13% 88%); }
.jp-chubu { width:142px; height:82px; right:38%; top:52%; rotate:-11deg; clip-path:polygon(0 29%,31% 7%,52% 18%,72% 0,100% 23%,85% 55%,54% 49%,31% 89%,8% 100%); }
.jp-kansai { width:125px; height:63px; right:53%; top:61%; rotate:-7deg; clip-path:polygon(0 25%,27% 4%,54% 14%,75% 0,100% 22%,84% 58%,58% 50%,33% 100%,8% 80%); }
.jp-chugoku { width:133px; height:49px; right:67%; top:65%; rotate:5deg; clip-path:polygon(0 22%,30% 0,57% 18%,80% 4%,100% 38%,75% 76%,47% 62%,20% 100%); }
.jp-shikoku { width:102px; height:39px; right:55%; top:75%; rotate:-11deg; clip-path:polygon(0 29%,36% 4%,63% 13%,100% 39%,80% 82%,42% 100%,13% 78%); }
.jp-kyushu { width:91px; height:105px; left:3%; bottom:5%; rotate:16deg; clip-path:polygon(21% 0,72% 8%,100% 39%,73% 61%,82% 100%,40% 81%,10% 94%,18% 54%,0 29%); }
.jp-islet { position:absolute; width:9px; height:9px; border-radius:50%; background:var(--green-dark); box-shadow:0 0 0 4px rgba(32,214,107,.13); }
.islet-a { left:20%; bottom:6%; }.islet-b { left:26%; bottom:2%; scale:.7; }.islet-c { left:31%; bottom:-2%; scale:.48; }
.map-orbit { position:absolute; z-index:-1; border:1px solid rgba(5,132,76,.22); border-radius:50%; }
.orbit-a { width:590px; height:310px; right:-12%; top:20%; rotate:-8deg; }
.orbit-b { width:720px; height:210px; right:-2%; top:36%; rotate:17deg; }
.orbit-c { width:470px; height:470px; right:9%; top:-5%; }
.map-link { position:absolute; z-index:4; height:1px; transform-origin:left; background:linear-gradient(90deg,rgba(255,255,255,.15),#fff,rgba(202,255,74,.55)); box-shadow:0 0 12px rgba(255,255,255,.8); }
.link-a { width:29%; right:25%; top:49%; rotate:-37deg; }.link-b { width:31%; right:44%; top:62%; rotate:7deg; }.link-c { width:25%; right:59%; top:68%; rotate:23deg; }
.map-node { position:absolute; z-index:8; width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 0 0 7px rgba(255,255,255,.18),0 0 28px 9px var(--lime); animation:mapNodePulse 2.8s ease-in-out infinite; }
.node-sapporo { right:8%; top:14%; }.node-tokyo { right:29%; top:51%; animation-delay:.5s; }.node-osaka { right:55%; top:67%; animation-delay:1s; }.node-fukuoka { left:10%; bottom:18%; animation-delay:1.5s; }
.map-caption { position:absolute; right:5%; bottom:2%; color:#075b3c; font-family:var(--font-mono); font-size:9px; font-weight:800; letter-spacing:.16em; }
@keyframes networkMapIn { from{opacity:0;translate:90px 26px;scale:.88;filter:blur(14px) drop-shadow(0 28px 35px rgba(0,90,50,0))} to{opacity:1;translate:0 0;scale:1;filter:blur(0) drop-shadow(0 28px 35px rgba(0,90,50,.12))} }
@keyframes mapNodePulse { 0%,100%{scale:.82;box-shadow:0 0 0 5px rgba(255,255,255,.16),0 0 18px 5px var(--lime)} 50%{scale:1.18;box-shadow:0 0 0 11px rgba(255,255,255,.04),0 0 38px 12px var(--lime)} }

/* Service capabilities get a less generic, more editorial visual treatment. */
.page-service .content-dark {
  overflow:hidden; background:
    radial-gradient(circle at 82% 12%,rgba(32,214,107,.2),transparent 28%),
    linear-gradient(145deg,#061713,#0a2a21 72%,#071b17);
}
.page-service .content-dark::before { content:"SERVICE / SYSTEM / CLOUD / SECURITY"; position:absolute; left:-2%; top:4%; color:rgba(255,255,255,.025); font-family:var(--font-latin); font-size:clamp(70px,12vw,190px); font-weight:900; line-height:.8; letter-spacing:-.08em; white-space:nowrap; }
.page-service .service-card { min-height:360px; border-color:rgba(255,255,255,.16); border-radius:34px 10px 34px 10px; background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.018)); backdrop-filter:blur(8px); }
.page-service .service-card:hover { border-radius:10px 34px 10px 34px; }

/* Customer request → team delivery → satisfaction animation. */
.delivery-journey { overflow:hidden; background:#f0f2ea; }
.delivery-layout { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(42px,7vw,100px); align-items:stretch; }
.delivery-steps { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.delivery-steps li { display:grid; grid-template-columns:48px 1fr; gap:18px; padding:24px 0; border-bottom:1px solid var(--line); }
.delivery-steps li > span { padding-top:5px; color:var(--green-dark); font-family:var(--font-mono); font-size:10px; }
.delivery-steps li p { margin:0; color:var(--muted); font-size:12px; line-height:1.8; }
.delivery-steps li p[lang="en"] { margin-bottom:4px; color:var(--green-dark); font-family:var(--font-latin); font-size:9px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.delivery-steps h3 { margin:0 0 7px; font-family:var(--font-jp); font-size:clamp(20px,2vw,27px); font-weight:650; line-height:1.35; letter-spacing:-.015em; }
.delivery-art { position:relative; min-height:690px; margin:0; overflow:hidden; border-radius:44px; background:var(--ink); color:#fff; box-shadow:0 30px 80px rgba(8,21,18,.18); isolation:isolate; transform:perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transition:transform .5s var(--ease),translate .5s var(--ease),box-shadow .5s; }
.delivery-art:hover { translate:0 -7px; box-shadow:0 42px 95px rgba(8,21,18,.25); }
.delivery-artboard { position:absolute; inset:0 0 86px; overflow:hidden; }
.delivery-grid-lines { position:absolute; inset:0; opacity:.3; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:32px 32px; mask-image:radial-gradient(circle at 52% 46%,#000,transparent 76%); }
.customer-dock,.result-dock { position:absolute; z-index:6; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; }
.customer-dock { width:185px; height:250px; left:5%; top:25%; padding:26px 22px; border-radius:32px 32px 7px 32px; background:#1749d2; box-shadow:0 22px 45px rgba(0,0,0,.25); }
.dock-kicker { margin-bottom:3px; color:#c6d7ff; font-family:var(--font-mono); font-size:8px; letter-spacing:.14em; }
.customer-dock > strong { font-family:var(--font-latin); font-size:26px; line-height:1; letter-spacing:-.04em; }
.delivery-person { position:absolute; width:72px; height:105px; left:29px; top:32px; border-radius:35px 35px 18px 18px; background:#f1c6a1; }
.delivery-person::before { content:""; position:absolute; width:47px; height:47px; left:13px; top:-22px; border-radius:50%; background:linear-gradient(145deg,#d27643 0 72%,var(--lime) 73%); }
.delivery-person i { position:absolute; width:75px; height:25px; right:-49px; top:39px; border-radius:20px; background:#f1c6a1; rotate:-22deg; }
.delivery-person b { position:absolute; width:30px; height:30px; right:-61px; top:17px; border-radius:8px; background:var(--lime); rotate:13deg; }
.brief-sheet { position:absolute; right:17px; top:28px; width:55px; height:73px; padding:17px 9px; border-radius:7px; background:#fff; box-shadow:0 10px 20px rgba(0,0,0,.18); rotate:7deg; }
.brief-sheet i { display:block; height:4px; margin:6px 0; border-radius:4px; background:#1749d2; opacity:.72; }
.journey-rail { position:absolute; z-index:2; width:68%; height:210px; left:16%; top:31%; border:2px solid transparent; border-top-color:rgba(202,255,74,.5); border-radius:50%; rotate:3deg; }
.journey-rail::after { content:""; position:absolute; right:2%; top:16px; width:16px; height:16px; border-top:3px solid var(--lime); border-right:3px solid var(--lime); rotate:42deg; }
.team-core { position:absolute; z-index:8; width:228px; height:228px; left:50%; top:48%; translate:-50% -50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.22); border-radius:50%; background:radial-gradient(circle at 45% 38%,#20d66b,#087844 65%,#06432f 100%); box-shadow:0 0 0 18px rgba(32,214,107,.08),0 32px 55px rgba(0,0,0,.28); text-align:center; }
.team-core > strong { z-index:4; font-family:var(--font-latin); font-size:24px; line-height:.88; letter-spacing:-.045em; }
.team-core > small { position:absolute; left:0; right:0; bottom:47px; z-index:4; font-family:var(--font-mono); font-size:7px; letter-spacing:.12em; opacity:.7; }
.core-ring { position:absolute; inset:-20px; border:1px dashed rgba(202,255,74,.55); border-radius:50%; animation:coreOrbit 16s linear infinite; }.core-ring.ring-b { inset:23px; border-style:solid; border-color:rgba(255,255,255,.22); animation-direction:reverse; animation-duration:9s; }
.core-person { position:absolute; z-index:3; width:25px; height:43px; border-radius:14px 14px 8px 8px; background:#fff; }.core-person::before { content:""; position:absolute; width:18px; height:18px; left:3px; top:-13px; border-radius:50%; background:#f1c6a1; }.core-a{left:34px;top:42px;rotate:-28deg}.core-b{right:35px;top:40px;rotate:30deg}.core-c{left:103px;bottom:18px;rotate:180deg;background:var(--lime)}
.result-dock { width:190px; height:260px; right:4.5%; top:24%; padding:27px 20px; border-radius:32px 32px 32px 7px; background:var(--lime); color:var(--ink); box-shadow:0 25px 55px rgba(0,0,0,.24); text-align:center; align-items:center; }
.result-halo { position:absolute; width:130px; height:130px; left:30px; top:23px; border:1px solid rgba(8,21,18,.28); border-radius:50%; box-shadow:0 0 0 16px rgba(8,21,18,.05),0 0 0 32px rgba(8,21,18,.03); animation:resultHalo 3.2s ease-in-out infinite; }
.delivery-check { position:absolute; z-index:3; display:grid; place-items:center; width:78px; height:78px; left:56px; top:50px; border-radius:50%; background:var(--ink); color:var(--lime); font-size:39px; font-weight:900; box-shadow:0 13px 25px rgba(8,21,18,.23); animation:satisfactionPop 3.2s var(--ease) infinite; }
.result-dock strong { font-family:var(--font-latin); font-size:20px; letter-spacing:-.03em; }.result-dock small { font-family:var(--font-mono); font-size:7px; letter-spacing:.11em; }.result-stars { margin-top:8px; color:var(--green-dark); font-size:13px; letter-spacing:.18em; }
.task-packet { position:absolute; z-index:12; left:16%; top:47%; padding:7px 10px; border-radius:999px; background:#fff; color:#1749d2; font-family:var(--font-mono); font-size:7px; font-weight:900; letter-spacing:.1em; box-shadow:0 8px 20px rgba(0,0,0,.2); opacity:0; }
.delivery-art.is-visible .task-packet { animation:taskTransit 6.6s var(--ease) infinite; }.delivery-art.is-visible .packet-b { animation-delay:-2.2s; background:#b8d0ff; }.delivery-art.is-visible .packet-c { animation-delay:-4.4s; background:#fff0b8; color:#7c5600; }
.feedback-loop { position:absolute; z-index:5; left:50%; bottom:8%; translate:-50% 0; padding:9px 16px; border:1px solid rgba(255,255,255,.25); border-radius:999px; color:var(--lime); font-family:var(--font-mono); font-size:8px; letter-spacing:.14em; background:rgba(8,21,18,.72); }
.delivery-art figcaption { position:absolute; z-index:20; left:0; right:0; bottom:0; min-height:86px; display:flex; justify-content:space-between; gap:24px; align-items:center; padding:22px 28px; border-top:1px solid rgba(255,255,255,.13); background:#06110f; }
.delivery-art figcaption strong { font-family:var(--font-latin); font-size:12px; letter-spacing:.02em; }.delivery-art figcaption span { max-width:330px; color:rgba(255,255,255,.58); font-size:10px; line-height:1.7; text-align:right; }
@keyframes coreOrbit { to{rotate:360deg} }
@keyframes taskTransit { 0%,7%{left:16%;top:47%;opacity:0;rotate:-9deg} 17%{opacity:1} 43%{left:43%;top:38%;opacity:1;rotate:3deg} 64%{left:56%;top:39%;opacity:1} 86%{left:79%;top:45%;opacity:1;rotate:8deg} 100%{left:82%;top:45%;opacity:0;rotate:12deg} }
@keyframes resultHalo { 0%,100%{scale:.78;opacity:.45} 50%{scale:1.08;opacity:1} }
@keyframes satisfactionPop { 0%,60%,100%{scale:1;rotate:0deg} 72%{scale:1.16;rotate:-6deg} 84%{scale:.96;rotate:3deg} }

@media (max-width:1100px) {
  .brand-copy small { font-size:7px; }
  .inner-japan-network { width:720px; right:-18%; opacity:.72; }
  .page-hero-grid { grid-template-columns:1fr; }
  .page-hero-copy { max-width:560px; margin-left:0; }
  .delivery-layout { grid-template-columns:1fr; }
  .delivery-art { order:-1; min-height:650px; }
}

@media (max-width:680px) {
  .brand { gap:8px; }
  .brand-mark,.footer-brand .brand-mark { width:38px; height:38px; flex-basis:38px; border-radius:7px; }
  .brand-copy strong { font-size:13px; }
  .brand-copy small,.footer-brand .brand-copy small { display:block; margin-top:3px; font-size:6.1px; letter-spacing:.015em; }
  .page-hero { min-height:570px; padding-top:140px; background:linear-gradient(155deg,#f9faf5 0 46%,#e4f5eb 100%); }
  .page-hero-copy { padding:19px 18px; background:rgba(247,248,242,.82); }
  .inner-japan-network { width:690px; height:450px; right:-18%; top:102px; opacity:.48; scale:.84; transform-origin:center; }
  .map-caption { display:none; }
  .delivery-steps li { grid-template-columns:40px 1fr; gap:12px; padding:21px 0; }
  .delivery-art { min-height:555px; border-radius:26px; }
  .delivery-artboard { inset:0 0 92px; }
  .customer-dock { width:122px; height:174px; left:4%; top:8%; padding:17px 14px; border-radius:22px 22px 5px 22px; }
  .customer-dock > strong { font-size:17px; }.dock-kicker{font-size:6px}.delivery-person{scale:.63;transform-origin:left top;left:18px;top:25px}.brief-sheet{scale:.68;transform-origin:right top;right:8px;top:18px}
  .team-core { width:158px; height:158px; left:50%; top:50%; }.team-core > strong{font-size:18px}.team-core > small{bottom:31px;font-size:5px}.core-person{scale:.68}.core-a{left:18px;top:27px}.core-b{right:18px;top:27px}.core-c{left:68px;bottom:8px}.core-ring{inset:-12px}
  .result-dock { width:128px; height:184px; right:4%; top:56%; padding:19px 12px; border-radius:22px 22px 22px 5px; }.result-halo{width:86px;height:86px;left:21px;top:15px}.delivery-check{width:54px;height:54px;left:37px;top:33px;font-size:27px}.result-dock strong{font-size:13px}.result-dock small{font-size:5px}.result-stars{font-size:9px}
  .journey-rail { width:76%; height:240px; left:12%; top:27%; rotate:31deg; }.feedback-loop{bottom:6%;font-size:6px}.task-packet{font-size:5px;padding:5px 7px}
  .delivery-art figcaption { min-height:92px; padding:17px 19px; align-items:flex-start; flex-direction:column; gap:4px; }.delivery-art figcaption strong{font-size:9px}.delivery-art figcaption span{font-size:8px;text-align:left}
}

html[data-motion="reduced"] :is(.inner-japan-network,.map-node,.core-ring,.result-halo,.delivery-check,.task-packet) { opacity:1!important; animation:none!important; translate:none!important; scale:1!important; rotate:0deg!important; filter:none!important; }
html[data-motion="reduced"] .task-packet { display:none; }

/* ==========================================================================\
   Product release 17 — v.5 visual refinement (the v.5 motion system remains).\
   ========================================================================== */

/* Visiting-card mint is deliberately scoped to the home hero grid only. */
.hero-grid { padding:52px clamp(28px,3.6vw,58px) 44px; isolation:isolate; }
.hero-grid::before {
  content:""; position:absolute; z-index:-2; inset:42px 0 34px; border:1px solid rgba(19,117,74,.14);
  border-radius:42px 14px 42px 14px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.82),rgba(255,255,255,.22) 46%,transparent 68%),
    linear-gradient(135deg,#f8fbf7 0%,#e7f4ea 48%,#c8e6d1 100%);
  box-shadow:0 38px 90px rgba(14,86,56,.12),inset 0 1px #fff;
}
.hero-grid::after {
  content:"if"; position:absolute; z-index:-1; right:2%; bottom:0; color:rgba(20,120,78,.055);
  font-family:var(--font-latin); font-size:clamp(240px,35vw,520px); font-weight:900; line-height:.64; letter-spacing:-.17em;
}
.hero-copy,.japan-stage { position:relative; z-index:2; }

/* Oval world projection: deep green, not black; Japan remains the luminous hub. */
.japan-stage {
  height:clamp(560px,66vh,680px); min-height:560px; border:1px solid rgba(255,255,255,.48);
  border-radius:50% / 45%;
  background:
    radial-gradient(circle at 72% 29%,rgba(202,255,74,.25),transparent 14%),
    radial-gradient(circle at 47% 54%,rgba(32,214,107,.14),transparent 34%),
    linear-gradient(145deg,#0a3a2a 0%,#0d5538 52%,#167247 100%);
  box-shadow:0 45px 95px rgba(8,73,48,.23),inset 0 1px rgba(255,255,255,.28),inset 0 -45px 90px rgba(3,43,30,.24);
}
.japan-stage:hover { border-radius:47% 53% 49% 51% / 47% 44% 56% 53%; }
.japan-stage::before { width:74%; height:112%; right:13%; top:-6%; box-shadow:none; border-color:rgba(255,255,255,.14); }
.japan-stage::after { width:112%; height:45%; left:-6%; bottom:27%; border-color:rgba(255,255,255,.13); }
.stage-label { display:flex; align-items:center; gap:9px; top:68px; left:72px; color:#eaff9b; }
.stage-label i { width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 16px var(--lime);animation:statusPulse 2s ease-in-out infinite; }
.stage-coordinate { left:46px; bottom:32px; color:rgba(255,255,255,.62); }
.world-projection { position:absolute; inset:8% 5% 14%; z-index:1; overflow:hidden; border-radius:50%; }
.world-projection::before { content:"";position:absolute;inset:8% 4%;border:1px dashed rgba(255,255,255,.13);border-radius:50%; }
.world-grid { position:absolute;inset:0;border:1px solid rgba(255,255,255,.14);border-radius:50%; }
.grid-latitude { scale:1 .44; }.grid-longitude { scale:.42 1; }
.continent { position:absolute;display:block;background:linear-gradient(145deg,rgba(196,241,208,.58),rgba(35,176,106,.72));border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 1px rgba(255,255,255,.34); }
.north-america{width:27%;height:28%;left:6%;top:17%;clip-path:polygon(0 24%,17% 2%,48% 8%,65% 0,100% 19%,80% 37%,73% 62%,52% 55%,39% 100%,17% 72%)}
.south-america{width:16%;height:31%;left:26%;top:49%;clip-path:polygon(17% 0,76% 7%,100% 30%,70% 52%,59% 100%,30% 75%,8% 40%)}
.europe-africa{width:20%;height:40%;left:49%;top:27%;clip-path:polygon(0 10%,34% 0,74% 11%,100% 30%,75% 42%,69% 76%,46% 100%,25% 75%,20% 43%)}
.asia{width:31%;height:28%;right:7%;top:18%;clip-path:polygon(0 20%,22% 0,47% 10%,66% 2%,100% 27%,85% 50%,67% 48%,55% 88%,38% 66%,19% 100%,12% 57%)}
.oceania{width:13%;height:13%;right:13%;bottom:15%;clip-path:polygon(0 23%,36% 0,75% 10%,100% 48%,70% 88%,29% 100%,8% 70%)}
.world-route { position:absolute;z-index:4;width:41%;height:28%;border:1px solid transparent;border-top-color:rgba(234,255,155,.84);border-radius:50%;transform-origin:center; }
.route-pacific{left:23%;top:27%;rotate:-12deg}.route-asia{right:9%;top:32%;rotate:17deg;border-top-color:rgba(255,255,255,.68)}
.world-packet { position:absolute;z-index:6;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.11),0 0 20px var(--lime); }
.packet-pacific{left:27%;top:38%;animation:worldPacketPacific 5.8s var(--ease) infinite}.packet-asia{right:22%;top:45%;animation:worldPacketAsia 4.8s var(--ease) -2.1s infinite}
.world-hub { position:absolute;z-index:7;display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.73);font-family:var(--font-mono);font-size:6px;letter-spacing:.12em; }
.world-hub b{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 17px var(--lime)}
.hub-tokyo{right:16%;top:37%;color:#fff}.hub-global{left:12%;top:36%}.hub-global b{background:#fff;box-shadow:0 0 16px #fff}
.japan-stage .archipelago { z-index:5; transform:rotate(-10deg) scale(.34); transform-origin:75% 43%; opacity:.96; }
.japan-stage .land { border:1px solid rgba(255,255,255,.82); }
.japan-stage .route { z-index:4; }
@keyframes worldPacketPacific { 0%,8%{translate:0 52px;opacity:0} 18%{opacity:1} 52%{translate:118px -12px} 86%{opacity:1} 100%{translate:228px 18px;opacity:0} }
@keyframes worldPacketAsia { 0%,8%{translate:-20px 40px;opacity:0} 18%{opacity:1} 55%{translate:-92px -8px} 100%{translate:-175px 21px;opacity:0} }

/* Industrial signal rail: rough frame, perfectly horizontal readable type. */
.ticker { position:relative;height:76px;padding:0;transform:none;isolation:isolate;color:#efffe4;background:#083d2b;border:0;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent); }
.ticker::before,.ticker::after{content:"";position:absolute;z-index:3;left:-2%;right:-2%;height:8px;background:var(--lime);border:1px solid #061d16;transform:skewX(-28deg)}
.ticker::before{top:0}.ticker::after{bottom:0;transform:skewX(28deg)}
.ticker-track{height:100%;display:flex;align-items:center;width:max-content;animation:ticker 28s linear infinite;will-change:transform;}
.ticker-group{display:flex;align-items:center;flex:0 0 auto;height:100%;}
.ticker span{height:100%;display:inline-flex;align-items:center;gap:13px;padding:0 34px;border-right:1px solid rgba(202,255,74,.22);font-size:11px;letter-spacing:.17em;color:#f1ffe8;}
.ticker span b{display:grid;place-items:center;min-width:28px;height:28px;border:1px solid rgba(202,255,74,.65);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);color:var(--lime);font-family:var(--font-mono);font-size:7px;letter-spacing:.04em}
.ticker span::after{content:"◆";color:var(--lime);font-size:8px;margin-left:16px;}
@keyframes ticker{to{transform:translate3d(-50%,0,0)}}

/* Corporate cartoons: the illustration and copy occupy separate rows. */
.illustration-grid{grid-template-rows:repeat(2,minmax(380px,1fr));}
.illustration-panel{display:grid;grid-template-rows:minmax(0,1fr) auto;}
.panel-people{min-height:782px}.panel-data,.panel-global{min-height:380px}
.art-scene{position:relative;inset:auto;min-height:0;overflow:hidden;}
.illustration-copy{position:relative;left:auto;right:auto;bottom:auto;padding:20px 28px 25px;background:rgba(255,255,255,.72);border-top:1px solid rgba(8,21,18,.08);backdrop-filter:blur(10px)}
.illustration-copy h3{font-size:clamp(25px,2.7vw,39px)}
.scene-caption{position:absolute;z-index:15;left:22px;top:20px;padding:7px 10px;border:1px solid rgba(8,21,18,.14);border-radius:999px;background:rgba(255,255,255,.74);font-family:var(--font-mono);font-size:7px;letter-spacing:.1em;box-shadow:0 9px 20px rgba(8,21,18,.08)}
.art-people .art-blob{width:74%;height:70%;left:13%;top:10%}
.art-people .person-a{left:8%;top:30%;scale:.72}.art-people .person-b{right:6%;top:23%;scale:.7}
.request-card,.result-card{position:absolute;z-index:9;width:118px;padding:13px;border-radius:15px;background:#fff;box-shadow:0 16px 30px rgba(8,21,18,.13);font-family:var(--font-mono);font-size:8px;letter-spacing:.08em}
.request-card{left:7%;top:15%;rotate:-4deg}.request-card i{display:block;height:5px;margin-top:6px;border-radius:4px;background:#dce6f9}.request-card i:nth-of-type(2){width:76%}.request-card i:nth-of-type(3){width:56%}
.result-card{right:7%;top:58%;display:flex;align-items:center;justify-content:space-between;color:#08633e}.result-card i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green);font-style:normal;font-size:19px;color:#fff}
.workflow-lane{position:absolute;z-index:8;left:22%;right:22%;top:54%;height:82px;border:2px solid rgba(23,73,210,.34);border-radius:999px;background:rgba(255,255,255,.3)}
.workflow-lane::before{content:"";position:absolute;left:8%;right:8%;top:39px;height:3px;background:linear-gradient(90deg,var(--blue),var(--green))}
.flow-stop{position:absolute;z-index:2;top:25px;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#fff;color:var(--blue);font-family:var(--font-mono);font-size:8px;font-style:normal;box-shadow:0 7px 15px rgba(8,21,18,.13)}
.stop-request{left:5%}.stop-align{left:34%}.stop-build{left:63%}.stop-done{right:5%;background:var(--green);color:#fff}
.moving-task{position:absolute;z-index:4;left:7%;top:-18px;padding:6px 9px;border-radius:8px;background:var(--ink);color:var(--lime);font-family:var(--font-mono);font-size:7px;letter-spacing:.09em}
.illustration-panel.is-visible .moving-task{animation:workflowTask 5.6s var(--ease) infinite}
@keyframes workflowTask{0%,9%{left:7%;opacity:0}16%{opacity:1}36%{left:34%}59%{left:63%}82%{left:83%;opacity:1}100%{left:83%;opacity:0}}
.raw-data{position:absolute;z-index:4;left:4%;top:28%;display:grid;grid-template-columns:repeat(2,34px);gap:8px}.raw-data i{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.78);color:var(--blue);font-family:var(--font-mono);font-size:8px;font-style:normal;box-shadow:0 8px 15px rgba(23,73,210,.09)}
.data-funnel{position:absolute;z-index:5;left:18%;top:31%;width:58px;height:74px;background:linear-gradient(145deg,#fff,#cfe0ff);clip-path:polygon(0 0,100% 0,64% 43%,64% 100%,36% 100%,36% 43%);rotate:-90deg}
.art-data .data-board{width:54%;height:70%;left:29%;top:9%}.art-data .bar{bottom:27%}.art-data .b1{left:39%}.art-data .b2{left:49%}.art-data .b3{left:59%}.art-data .b4{left:69%}.art-data .trend-line{left:37%;width:38%}.art-data .analyst{right:0;top:19%;scale:.48}.art-data .magnifier{right:10%;top:36%;scale:.68}
.decision-badge{position:absolute;z-index:8;right:5%;top:10%;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:var(--ink);color:#fff;font-family:var(--font-mono);font-size:7px}.decision-badge b{color:var(--lime)}
.art-global .mini-globe{width:175px;height:175px;left:7%;top:17%}.art-global .navigator{right:1%;top:17%;scale:.5}.art-global .route-a{width:42%;left:30%;top:39%}.art-global .route-b{width:40%;left:29%;top:53%}
.route-packet{position:absolute;z-index:9;left:36%;top:29%;padding:7px 9px;border-radius:9px;background:#fff;color:var(--blue);font-family:var(--font-mono);font-size:7px;box-shadow:0 10px 20px rgba(8,21,18,.12)}
.illustration-panel.is-visible .route-packet{animation:handoffPacket 4.8s var(--ease) infinite}
.location-label,.sync-status{position:absolute;z-index:8;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.8);font-family:var(--font-mono);font-size:6px;letter-spacing:.08em}.global-label{left:8%;bottom:10%}.tokyo-label{right:25%;bottom:10%}.sync-status{right:3%;top:12%;color:#07633e}.sync-status b{color:var(--green-dark)}
@keyframes handoffPacket{0%,10%{translate:0 14px;opacity:0}20%{opacity:1}75%{translate:130px 28px;opacity:1}100%{translate:170px 42px;opacity:0}}

/* Inner-page Japan network v2: translucent cartography plate and clear corridor. */
.inner-japan-network{width:min(780px,59vw);height:510px;right:-1.5vw;top:92px;filter:drop-shadow(0 28px 45px rgba(0,90,50,.11));mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 100%)}
.network-plate{position:absolute;inset:2% 0 4% 9%;z-index:-3;border:1px solid rgba(255,255,255,.88);border-radius:44px 14px 44px 14px;background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(202,235,213,.46));box-shadow:inset 0 1px #fff,0 28px 60px rgba(21,102,68,.08);transform:skewX(-3deg)}
.network-grid{position:absolute;inset:5% 1% 7% 12%;z-index:-2;opacity:.38;background-image:linear-gradient(rgba(4,106,64,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(4,106,64,.12) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(90deg,transparent,#000 24%,#000)}
.network-horizon{position:absolute;z-index:-1;left:13%;right:2%;top:48%;height:1px;background:linear-gradient(90deg,transparent,var(--green-dark),transparent);box-shadow:0 0 26px rgba(32,214,107,.3)}
.inner-japan-network .jp-island{filter:saturate(.9);box-shadow:inset 9px 8px 18px rgba(255,255,255,.18),0 10px 20px rgba(3,93,54,.2)}
.map-corridor{position:absolute;z-index:5;width:84%;height:63%;right:4%;top:13%;border:2px solid transparent;border-top-color:rgba(202,255,74,.72);border-radius:50%;rotate:28deg;filter:drop-shadow(0 0 8px rgba(202,255,74,.45))}
.network-packet{position:absolute;z-index:12;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.12),0 0 18px var(--lime)}
.inner-japan-network .network-packet.packet-a{right:10%;top:18%;animation:networkPacketA 5.5s var(--ease) infinite}.inner-japan-network .network-packet.packet-b{right:31%;top:47%;animation:networkPacketB 5.5s var(--ease) -2.75s infinite}
.city-label{position:absolute;z-index:10;color:#075b3c;font-family:var(--font-mono);font-size:6px;font-weight:800;letter-spacing:.1em}.label-sapporo{right:6%;top:9%}.label-tokyo{right:27%;top:44%}.label-osaka{right:53%;top:62%}.label-fukuoka{left:5%;bottom:13%}
.network-chip{position:absolute;z-index:12;left:15%;top:9%;display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid rgba(6,112,67,.14);border-radius:999px;background:rgba(255,255,255,.76);color:#075b3c;font-family:var(--font-mono);font-size:7px;font-weight:800;letter-spacing:.11em;box-shadow:0 12px 26px rgba(8,65,44,.08)}
.network-chip i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}
.map-caption{right:4%;bottom:5%;font-size:7px}
@keyframes networkMapIn{from{opacity:0;translate:70px 18px;scale:.92}to{opacity:1;translate:0 0;scale:1}}
@keyframes networkPacketA{0%,8%{translate:0 0;opacity:0}18%{opacity:1}55%{translate:-205px 175px}100%{translate:-455px 280px;opacity:0}}
@keyframes networkPacketB{0%,8%{translate:0 0;opacity:0}18%{opacity:1}60%{translate:-180px 105px}100%{translate:-330px 170px;opacity:0}}

@media (max-width:1100px){
  .site-header,.site-header.is-hidden{transform:none!important}
  .menu-toggle{display:flex!important;position:fixed!important;right:18px!important;top:20px!important;translate:0!important;transform:none!important;visibility:visible!important;opacity:1!important;z-index:130}
  body.menu-open .menu-toggle{top:20px!important}
  .hero-grid{padding-inline:35px;gap:38px}.hero-grid::before{inset:30px 0 25px}.japan-stage{height:560px;min-height:520px}.world-hub{display:none}
  .illustration-grid{grid-template-columns:1fr;grid-template-rows:auto}.panel-people{grid-row:auto;min-height:660px}.panel-data,.panel-global{min-height:430px}.art-scene{min-height:270px}
  .inner-japan-network{width:680px;right:-13%;opacity:.72}
}
@media (max-width:760px){
  .home-hero{min-height:1070px;height:auto;max-height:none;padding-bottom:36px}.hero-grid{height:auto;min-height:1030px;padding:125px 18px 46px;grid-template-columns:1fr;gap:32px}.hero-grid::before{inset:90px 4px 10px;border-radius:28px 10px 28px 10px}.hero-grid::after{font-size:290px;bottom:5%}.hero-copy{padding-top:0}.hero-copy h1{font-size:clamp(49px,15vw,72px);margin-bottom:30px}.hero-bottom{grid-template-columns:1fr;gap:20px}.japan-stage{width:100%;height:430px;min-height:430px;border-radius:50% / 43%}.stage-label{left:45px;top:48px;font-size:7px}.stage-coordinate{left:39px;bottom:43px;font-size:7px}.japan-stage .archipelago{transform:rotate(-10deg) scale(.31);transform-origin:75% 42%}
  .ticker{height:68px}.ticker span{padding-inline:23px;font-size:9px;letter-spacing:.12em}.ticker span b{min-width:24px;height:24px;font-size:6px}
  .illustration-panel,.panel-people,.panel-data,.panel-global{min-height:500px}.art-scene{min-height:330px}.illustration-copy{padding:18px 21px 22px}.art-people{scale:1;transform:none}.art-data,.art-global{scale:1;transform:none}.art-people .person-a{left:-1%;scale:.55}.art-people .person-b{right:-3%;scale:.52}.request-card{left:3%;scale:.78}.result-card{right:3%;scale:.78}.workflow-lane{left:12%;right:12%;top:56%}.scene-caption{left:16px;top:15px;font-size:5.5px}.raw-data{scale:.72;transform-origin:left}.data-funnel{left:16%;scale:.7}.art-data .data-board{left:23%;width:58%}.art-data .analyst{right:-8%;scale:.4}.art-data .magnifier{right:4%;scale:.52}.art-global .mini-globe{width:165px;height:165px;left:3%}.art-global .navigator{right:-8%;scale:.43}.location-label,.sync-status{font-size:5px}
  .inner-japan-network{width:520px;height:360px;right:-18%;top:172px;opacity:.55;scale:.82;transform-origin:right center;mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 100%)}.network-chip,.city-label{display:none}.map-caption{display:none}
}
@media (max-width:1100px) and (max-height:620px) and (orientation:landscape){
  .nav{align-content:start;padding-top:82px;padding-bottom:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.nav a,.nav .nav-cta{min-height:48px;padding-block:9px;font-size:clamp(26px,5vw,42px)}
}
html[data-motion="reduced"] :is(.world-packet,.stage-label i,.moving-task,.route-packet,.network-packet,.ticker-track){animation:none!important}
html[data-motion="reduced"] :is(.bar,.trend-line,.global-route){scale:1 1!important;opacity:1!important}
html[data-motion="reduced"] .ticker-group[aria-hidden="true"]{display:none}

/* Privacy — secure vault, principles, lifecycle and tracked sticky index. */
.page-privacy .privacy-hero{min-height:880px}
.page-privacy .privacy-hero .page-hero-grid{min-height:620px;grid-template-columns:minmax(340px,.72fr) minmax(540px,1.28fr);grid-template-rows:1fr auto;align-items:center;gap:34px 58px}
.page-privacy .privacy-hero h1{grid-column:1;grid-row:1;align-self:end;z-index:8}
.page-privacy .privacy-hero .page-hero-copy{grid-column:1;grid-row:2;align-self:start;z-index:8}
.page-privacy .inner-japan-network{opacity:.13;right:-10%;filter:none}
.privacy-vault{grid-column:2;grid-row:1 / 3;position:relative;z-index:9;min-height:560px;margin:0;overflow:hidden;color:#fff;border:1px solid rgba(255,255,255,.66);border-radius:54px 18px 54px 18px;background:radial-gradient(circle at 62% 36%,rgba(202,255,74,.22),transparent 29%),linear-gradient(145deg,#09281f 0%,#0c4c35 58%,#0b3428 100%);box-shadow:0 48px 105px rgba(8,65,44,.26),inset 0 1px rgba(255,255,255,.2);transform:perspective(1200px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));transition:transform .55s var(--ease),translate .55s var(--ease),box-shadow .55s}
.privacy-vault:hover{translate:0 -7px;box-shadow:0 60px 120px rgba(8,65,44,.33),inset 0 1px rgba(255,255,255,.24)}
.privacy-vault-scene{position:absolute;inset:0 0 92px;overflow:hidden;perspective:900px}
.privacy-vault-scene::before{content:"";position:absolute;inset:0;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(circle at 54% 47%,#000,transparent 78%)}
.vault-floor{position:absolute;left:-8%;right:-8%;bottom:-22%;height:54%;transform:perspective(500px) rotateX(67deg);transform-origin:center bottom;background-image:linear-gradient(rgba(202,255,74,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(202,255,74,.18) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to top,#000,transparent 92%)}
.vault-halo{position:absolute;width:390px;height:390px;left:50%;top:50%;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,rgba(202,255,74,.28),rgba(32,214,107,.07) 42%,transparent 70%);filter:blur(5px);animation:vaultHalo 4.8s ease-in-out infinite alternate}
.vault-orbit{position:absolute;left:50%;top:48%;translate:-50% -50%;border:1px solid rgba(255,255,255,.31);border-radius:50%;box-shadow:0 0 30px rgba(202,255,74,.08)}
.vault-orbit.orbit-one{width:420px;height:240px;rotate:14deg;animation:vaultOrbit 20s linear infinite}.vault-orbit.orbit-two{width:330px;height:390px;rotate:-28deg;animation:vaultOrbit 16s linear infinite reverse}.vault-orbit.orbit-three{width:220px;height:220px;border-style:dashed;border-color:rgba(202,255,74,.5);animation:vaultOrbit 12s linear infinite}
.vault-shell{position:absolute;z-index:6;width:210px;height:245px;left:50%;top:47%;translate:-50% -50%;clip-path:polygon(50% 0,89% 15%,95% 59%,77% 82%,50% 100%,23% 82%,5% 59%,11% 15%);background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(157,237,191,.62) 38%,rgba(16,139,82,.78) 75%,rgba(3,62,43,.92));box-shadow:inset 18px 16px 35px rgba(255,255,255,.48),inset -20px -22px 34px rgba(0,52,35,.3),0 32px 62px rgba(0,0,0,.38);filter:drop-shadow(0 18px 30px rgba(0,0,0,.24))}
.vault-shell::before{content:"";position:absolute;inset:9px;clip-path:inherit;border:1px solid rgba(255,255,255,.58);background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(8,88,58,.25))}
.vault-core{position:absolute;z-index:3;width:112px;height:112px;left:49px;top:57px;border-radius:50%;background:radial-gradient(circle at 35% 29%,#fff 0 5%,#eaff9c 7%,var(--lime) 31%,var(--green) 64%,#04673f 100%);box-shadow:0 0 0 15px rgba(255,255,255,.11),0 0 48px rgba(202,255,74,.62),inset -14px -18px 24px rgba(0,87,52,.23)}
.vault-keyhole{position:absolute;z-index:5;width:24px;height:44px;left:93px;top:92px;background:#071a15;border-radius:50% 50% 10px 10px;clip-path:polygon(15% 0,85% 0,100% 34%,68% 53%,80% 100%,20% 100%,32% 53%,0 34%);box-shadow:0 0 13px rgba(255,255,255,.25)}
.vault-glass{position:absolute;z-index:6;width:70px;height:180px;left:35px;top:18px;rotate:16deg;border-radius:50%;background:linear-gradient(90deg,rgba(255,255,255,.42),transparent)}
.vault-packet{position:absolute;z-index:8;padding:8px 12px;border:1px solid rgba(255,255,255,.38);border-radius:999px;color:var(--lime);background:rgba(7,25,20,.78);box-shadow:0 12px 28px rgba(0,0,0,.24);font-family:var(--font-mono);font-size:7px;font-weight:800;letter-spacing:.13em;backdrop-filter:blur(8px)}
.packet-input{left:7%;top:25%}.packet-purpose{right:6%;top:23%}.packet-control{right:10%;bottom:16%}.privacy-vault.is-visible .vault-packet{animation:vaultPacket 5.6s ease-in-out infinite alternate}.privacy-vault.is-visible .packet-purpose{animation-delay:-1.8s}.privacy-vault.is-visible .packet-control{animation-delay:-3.4s}
.vault-beam{position:absolute;z-index:4;left:50%;top:48%;width:39%;height:1px;transform-origin:left;background:linear-gradient(90deg,#fff,var(--lime),transparent);box-shadow:0 0 14px rgba(255,255,255,.82)}.beam-one{rotate:-29deg}.beam-two{rotate:28deg}.privacy-vault.is-visible .vault-beam{animation:vaultBeam 2.2s var(--ease) .55s both}
.vault-status{position:absolute;z-index:9;left:25px;bottom:18px;display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.68);font-family:var(--font-mono);font-size:7px;letter-spacing:.14em}.vault-status i{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 15px var(--lime);animation:statusPulse 2s ease-in-out infinite}
.privacy-vault figcaption{position:absolute;z-index:12;left:0;right:0;bottom:0;min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 25px;border-top:1px solid rgba(255,255,255,.13);background:rgba(4,16,13,.92)}
.privacy-vault figcaption span{max-width:220px;color:rgba(255,255,255,.52);font-family:var(--font-mono);font-size:7px;letter-spacing:.13em}.privacy-vault figcaption strong{font-family:var(--font-latin);font-size:24px;line-height:.9;letter-spacing:-.04em;text-align:right}
@keyframes vaultHalo{to{scale:1.13;opacity:.72;filter:blur(9px)}}@keyframes vaultOrbit{to{rotate:360deg}}@keyframes vaultPacket{from{translate:0 -5px}to{translate:13px 12px}}@keyframes vaultBeam{from{opacity:0;scale:0 1;filter:blur(8px)}to{opacity:1;scale:1 1;filter:blur(0)}}@keyframes statusPulse{50%{scale:1.45;opacity:.55}}

.privacy-overview{background:linear-gradient(145deg,#f5f7f1,#eaf3ed)}
#privacy-overview-title,#privacy-lifecycle-title,#privacy-detail-title,#privacy-contact-title{scroll-margin-top:112px}
.privacy-principle-grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:0;padding:0}
.privacy-principle-card{position:relative;min-height:330px;padding:28px;overflow:hidden;border:1px solid rgba(255,255,255,.9);border-radius:30px 12px 30px 12px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(223,251,233,.72));box-shadow:0 24px 58px rgba(8,21,18,.07),inset 0 1px #fff;transition:translate .45s var(--ease),border-radius .45s var(--ease),box-shadow .45s}
.privacy-principle-card:hover{translate:0 -8px;border-radius:12px 30px 12px 30px;box-shadow:0 34px 72px rgba(8,21,18,.13),inset 0 1px #fff}.privacy-principle-card::after{content:"";position:absolute;width:190px;height:190px;right:-100px;top:-96px;border:1px solid rgba(0,155,78,.15);border-radius:50%;box-shadow:0 0 0 28px rgba(32,214,107,.025),0 0 0 58px rgba(32,214,107,.018)}
.principle-index{color:var(--green-dark);font-family:var(--font-mono);font-size:9px;letter-spacing:.14em}.principle-symbol{display:grid;place-items:center;width:72px;height:72px;margin:36px 0 34px;border-radius:22px 8px 22px 8px;background:linear-gradient(145deg,var(--lime),var(--green));color:var(--ink);font-family:var(--font-latin);font-size:30px;box-shadow:0 18px 30px rgba(0,143,76,.18),inset 0 1px rgba(255,255,255,.65)}
.privacy-principle-card h3{margin:0 0 10px;font-family:var(--font-jp);font-size:22px;line-height:1.35}.privacy-principle-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.9}

.privacy-lifecycle{overflow:hidden;color:#fff;background:radial-gradient(circle at 78% 24%,rgba(32,214,107,.18),transparent 27%),linear-gradient(145deg,#061713,#0a2b22 70%,#071713)}
.privacy-lifecycle::before{content:"PRIVACY / CONTROL / REVIEW";position:absolute;left:-2%;bottom:-2%;color:rgba(255,255,255,.026);font-family:var(--font-latin);font-size:clamp(80px,14vw,215px);font-weight:900;line-height:.72;letter-spacing:-.08em;white-space:nowrap}
.privacy-lifecycle-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,7vw,110px);align-items:center}.privacy-lifecycle-copy{position:relative;z-index:3}.privacy-lifecycle-copy .eyebrow{color:var(--lime)}.privacy-lifecycle-copy .eyebrow::before{background:var(--lime)}
.privacy-lifecycle-copy h2{margin:0 0 28px;font-family:var(--font-jp);font-size:clamp(43px,5.4vw,72px);font-weight:650;line-height:1.08;letter-spacing:-.025em}.privacy-lifecycle-copy>p{margin:0 0 36px;color:rgba(255,255,255,.64);font-size:14px;line-height:2}
.lifecycle-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.16)}.lifecycle-list li{display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.16)}.lifecycle-list li>span{color:var(--lime);font-family:var(--font-mono);font-size:9px}.lifecycle-list strong{display:block;font-family:var(--font-latin);font-size:16px;line-height:1.2}.lifecycle-list small{display:block;margin-top:3px;color:rgba(255,255,255,.52);font-size:10px}
.privacy-flow-art{position:relative;min-height:680px;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:52px 18px 52px 18px;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.015));box-shadow:0 38px 95px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.16);backdrop-filter:blur(8px);transform:perspective(1100px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));transition:transform .55s var(--ease),translate .55s var(--ease),box-shadow .55s}
.privacy-flow-art:hover{translate:0 -7px;box-shadow:0 48px 110px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.18)}.privacy-flow-scene{position:absolute;inset:0 0 88px;overflow:hidden}.flow-grid{position:absolute;inset:0;opacity:.28;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(circle at 50% 46%,#000,transparent 79%)}
.flow-portal{position:absolute;width:410px;height:410px;left:50%;top:49%;translate:-50% -50%;border:1px solid rgba(202,255,74,.35);border-radius:50%;box-shadow:inset 0 0 0 70px rgba(32,214,107,.022),inset 0 0 0 140px rgba(32,214,107,.018),0 0 55px rgba(32,214,107,.1);animation:flowPortal 8s ease-in-out infinite alternate}
.data-route{position:absolute;z-index:2;left:13%;top:47%;width:74%;height:44%;border:1px solid transparent;border-top-color:rgba(202,255,74,.54);border-radius:50%;rotate:-5deg}.data-route.route-return{top:31%;rotate:177deg;border-top-color:rgba(255,255,255,.22)}
.data-node{position:absolute;z-index:6;display:flex;flex-direction:column;justify-content:flex-end;width:132px;height:145px;padding:18px;border:1px solid rgba(255,255,255,.58);border-radius:28px 9px 28px 9px;background:linear-gradient(145deg,rgba(255,255,255,.3),rgba(32,214,107,.1));box-shadow:0 24px 40px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.48);backdrop-filter:blur(10px)}.data-node i{position:absolute;left:18px;top:17px;color:var(--lime);font-family:var(--font-mono);font-size:9px;font-style:normal}.data-node b{color:#fff;font-family:var(--font-latin);font-size:14px;letter-spacing:.04em;text-shadow:0 2px 10px rgba(0,0,0,.32)}.data-collect{left:7%;top:15%}.data-use{right:8%;top:14%}.data-protect{right:8%;bottom:10%}.data-review{left:7%;bottom:10%}
.flow-core{position:absolute;z-index:9;width:190px;height:190px;left:50%;top:48%;translate:-50% -50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:radial-gradient(circle at 37% 29%,#eaff9b,var(--lime) 23%,var(--green) 57%,#05683f 100%);color:var(--ink);box-shadow:0 0 0 20px rgba(202,255,74,.06),0 30px 55px rgba(0,0,0,.28),inset -18px -22px 28px rgba(0,80,47,.22)}.flow-core::before{content:"";position:absolute;inset:-24px;border:1px dashed rgba(202,255,74,.62);border-radius:50%;animation:vaultOrbit 17s linear infinite}.flow-core i{position:absolute;width:58px;height:58px;top:31px;border-radius:50%;background:rgba(255,255,255,.72);box-shadow:inset -9px -11px 16px rgba(0,128,69,.17)}.flow-core b{padding-top:42px;font-family:var(--font-latin);font-size:23px;line-height:1}.flow-core small{position:absolute;bottom:32px;font-family:var(--font-mono);font-size:6px;letter-spacing:.15em}
.data-packet{position:absolute;z-index:12;left:13%;top:48%;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 7px rgba(255,255,255,.1),0 0 25px 8px var(--lime);opacity:0}.privacy-flow-art.is-visible .data-packet{animation:dataCircuit 7.2s var(--ease) infinite}.privacy-flow-art.is-visible .packet-two{animation-delay:-2.4s}.privacy-flow-art.is-visible .packet-three{animation-delay:-4.8s}
.privacy-flow-art figcaption{position:absolute;left:0;right:0;bottom:0;min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 27px;border-top:1px solid rgba(255,255,255,.13);background:rgba(4,15,12,.82)}.privacy-flow-art figcaption strong{font-family:var(--font-latin);font-size:13px}.privacy-flow-art figcaption span{max-width:340px;color:rgba(255,255,255,.55);font-size:9px;line-height:1.7;text-align:right}
@keyframes flowPortal{to{scale:1.08;rotate:5deg;opacity:.72}}@keyframes dataCircuit{0%,6%{left:13%;top:48%;opacity:0;scale:.5}13%{opacity:1}28%{left:40%;top:29%;opacity:1;scale:1}50%{left:82%;top:46%;opacity:1}73%{left:58%;top:74%;opacity:1}91%{left:14%;top:55%;opacity:1}100%{left:13%;top:48%;opacity:0;scale:.5}}

.privacy-detail{background:#f7f8f2}.policy-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:clamp(55px,8vw,125px);align-items:start}.policy-rail{position:sticky;top:110px;padding:25px;border:1px solid rgba(255,255,255,.92);border-radius:28px 10px 28px 10px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(229,247,236,.84));box-shadow:0 24px 58px rgba(8,21,18,.07),inset 0 1px #fff}.policy-rail-label{margin:0 0 17px;color:var(--green-dark);font-family:var(--font-mono);font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.policy-nav{display:grid;border-top:1px solid var(--line)}.policy-nav a{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:13px 2px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;text-decoration:none;transition:color .3s,padding .35s var(--ease)}.policy-nav a span{color:var(--green-dark);font-family:var(--font-mono);font-size:8px}.policy-nav a:hover,.policy-nav a.is-current{padding-left:9px;color:var(--ink)}.policy-nav a.is-current{font-weight:750}.policy-nav a.is-current::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(32,214,107,.12)}.policy-rail-note{margin:18px 0 0;color:var(--muted);font-size:10px}
.policy-content{max-width:none;margin:0}.policy-intro{max-width:780px;margin:0 0 60px;font-size:20px;line-height:2}.policy-content>section{scroll-margin-top:125px;padding:46px 0;border-top:1px solid var(--line);outline:0}.policy-content>section:last-child{border-bottom:1px solid var(--line)}.policy-content h2{margin:15px 0 17px;font-size:clamp(27px,3.3vw,42px);line-height:1.25}.policy-content p{max-width:780px;margin:0;color:var(--muted);font-size:15px;line-height:2.05}.policy-section-head{display:flex;align-items:center;gap:14px}.policy-section-head>span:last-child{color:var(--green-dark);font-family:var(--font-mono);font-size:8px;font-weight:800;letter-spacing:.14em}

.privacy-contact-section{overflow:hidden;background:linear-gradient(145deg,#20d66b,#11b75d)}.privacy-contact-section::before{content:"";position:absolute;width:660px;height:660px;right:-200px;top:-360px;border:1px solid rgba(8,21,18,.21);border-radius:50%;box-shadow:0 0 0 75px rgba(8,21,18,.025),0 0 0 155px rgba(8,21,18,.018);animation:privacyLens 15s linear infinite}@keyframes privacyLens{to{rotate:360deg}}
.privacy-contact-card{display:grid;grid-template-columns:1.2fr .8fr auto;gap:clamp(35px,5vw,75px);align-items:end;padding:65px;border:1px solid rgba(255,255,255,.58);border-radius:44px 15px 44px 15px;background:linear-gradient(145deg,rgba(255,255,255,.2),rgba(255,255,255,.07));box-shadow:0 35px 90px rgba(0,80,43,.18),inset 0 1px rgba(255,255,255,.72);backdrop-filter:blur(10px)}.privacy-contact-card .eyebrow{color:var(--ink)}.privacy-contact-card h2{margin:0 0 18px;font-family:var(--font-jp);font-size:clamp(38px,5vw,67px);font-weight:650;line-height:1.1;letter-spacing:-.025em}.privacy-contact-card>div>p:last-child{max-width:560px;margin:0;font-size:13px}.privacy-contact-card address{display:flex;flex-direction:column;gap:7px;font-style:normal;font-size:11px;line-height:1.75}.privacy-contact-card address strong{font-size:14px}.privacy-contact-card address a{width:max-content;font-family:var(--font-latin);font-weight:700;text-decoration-thickness:1px;text-underline-offset:4px}.privacy-contact-card .btn{white-space:nowrap}

@media(max-width:1100px){.privacy-principle-grid{grid-template-columns:repeat(2,1fr)}.page-privacy .privacy-hero{min-height:1020px}.page-privacy .privacy-hero .page-hero-grid{grid-template-columns:minmax(0,.68fr) minmax(430px,1.32fr)}.privacy-vault{min-height:530px}.privacy-lifecycle-grid{grid-template-columns:1fr}.privacy-flow-art{min-height:650px}.privacy-lifecycle-copy{max-width:780px}.policy-layout{grid-template-columns:250px minmax(0,1fr);gap:50px}.privacy-contact-card{grid-template-columns:1fr 1fr}.privacy-contact-card .btn{width:max-content}}
@media(max-width:760px){.page-privacy .privacy-hero{min-height:1090px;padding-bottom:54px}.page-privacy .privacy-hero .page-hero-grid{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:25px;min-height:auto}.page-privacy .privacy-hero h1{grid-column:1;grid-row:1;align-self:auto}.page-privacy .privacy-hero .page-hero-copy{grid-column:1;grid-row:2}.page-privacy .inner-japan-network{display:none}.privacy-vault{grid-column:1;grid-row:3;min-height:430px;border-radius:32px 12px 32px 12px}.privacy-vault-scene{inset:0 0 80px}.privacy-vault figcaption{min-height:80px;padding:15px 18px}.privacy-vault figcaption span{font-size:5.5px}.privacy-vault figcaption strong{font-size:19px}.vault-shell{scale:.76}.vault-orbit.orbit-one{width:340px;height:190px}.vault-orbit.orbit-two{width:250px;height:310px}.vault-orbit.orbit-three{width:170px;height:170px}.vault-halo{width:310px;height:310px}.vault-packet{font-size:5.5px;padding:6px 8px}.vault-status{left:18px;bottom:13px;font-size:5.5px}.privacy-principle-grid{grid-template-columns:1fr}.privacy-principle-card{min-height:270px;padding:25px}.principle-symbol{margin:27px 0 25px}.privacy-lifecycle-grid{gap:48px}.privacy-flow-art{min-height:540px;border-radius:30px 12px 30px 12px}.privacy-flow-scene{inset:0 0 92px}.privacy-flow-art figcaption{min-height:92px;align-items:flex-start;flex-direction:column;gap:5px;padding:17px 19px}.privacy-flow-art figcaption span{text-align:left;font-size:8px}.flow-portal{width:285px;height:285px}.flow-core{width:145px;height:145px}.flow-core i{width:44px;height:44px;top:22px}.flow-core b{font-size:18px;padding-top:31px}.flow-core small{bottom:22px}.data-node{width:93px;height:105px;padding:12px;border-radius:20px 7px 20px 7px}.data-node i{left:12px;top:11px;font-size:6px}.data-node b{font-size:9px}.data-collect{left:3%;top:13%}.data-use{right:3%;top:13%}.data-protect{right:3%;bottom:8%}.data-review{left:3%;bottom:8%}.policy-layout{grid-template-columns:1fr;gap:42px}.policy-rail{position:relative;top:auto;padding:19px}.policy-nav{grid-template-columns:repeat(2,1fr);gap:0 12px}.policy-nav a{grid-template-columns:26px 1fr;font-size:10px}.policy-nav a.is-current::after{display:none}.policy-rail-note{display:none}.policy-intro{font-size:17px;margin-bottom:44px}.policy-content>section{padding:36px 0;scroll-margin-top:96px}.policy-content h2{font-size:27px}.policy-content p{font-size:14px}.privacy-contact-card{grid-template-columns:1fr;align-items:start;padding:34px 25px;border-radius:30px 10px 30px 10px}.privacy-contact-card h2{font-size:39px}.privacy-contact-card .btn{width:100%}}
html[data-motion="reduced"] :is(.vault-halo,.vault-orbit,.vault-packet,.vault-beam,.vault-status i,.flow-portal,.flow-core::before,.data-packet,.privacy-contact-section::before){animation:none!important;transition:none!important}html[data-motion="reduced"] :is(.privacy-vault,.privacy-flow-art){transform:none!important}html[data-motion="reduced"] .data-packet{display:none!important}

/* ========================================================================== 
   RELEASE 18 — one navigation, visible motion, atlas stage and mint vault
   This final layer intentionally owns selectors that older release layers used.
   ========================================================================== */

/* One stable navigation geometry on every route. */
.site-header,
.site-header.is-compact {
  height:88px;
  color:var(--ink);
  background:rgba(247,248,242,.86);
  border-bottom:1px solid rgba(7,93,61,.09);
  box-shadow:0 8px 34px rgba(8,73,48,.045);
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  transform:none;
}
.site-header.is-compact { box-shadow:0 12px 38px rgba(8,73,48,.075); }
.site-header.is-hidden { transform:none; }
.header-wrap {
  position:relative;
  width:min(1520px,calc(100% - 40px));
  height:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:0;
}
.brand { flex:0 0 auto; gap:11px; }
.brand-mark {
  width:44px;
  height:44px;
  border-radius:8px;
  background:transparent;
  transform:none;
  overflow:hidden;
}
.brand-copy strong { font-size:16px; line-height:1; }
.brand-copy small { margin-top:5px; font-size:7px; letter-spacing:.08em; }
.nav {
  position:absolute;
  left:50%;
  top:50%;
  translate:-50% -50%;
  display:flex;
  align-items:center;
  gap:3px;
  padding:6px;
  border:1px solid rgba(7,93,61,.11);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 14px 38px rgba(8,73,48,.075),inset 0 1px #fff;
  white-space:nowrap;
}
.nav a {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 14px;
  border-radius:999px;
  font-size:10px;
  line-height:1;
  letter-spacing:.08em;
  transition:color .3s,background .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease);
}
.nav a::after {
  left:50%;
  right:auto;
  bottom:5px;
  width:4px;
  height:4px;
  border-radius:50%;
  opacity:0;
  transform:translateX(-50%) scale(0);
  transition:opacity .3s,transform .35s var(--ease);
}
.nav a:hover { color:#075d3d; background:rgba(223,251,233,.62); transform:translateY(-1px); }
.nav a:hover::after,
.nav a[aria-current="page"]::after { right:auto; opacity:1; transform:translateX(-50%) scale(1); }
.nav a[aria-current="page"]:not(.nav-cta) {
  color:#064b35;
  background:linear-gradient(145deg,#edfff3,#d8f5e2);
  box-shadow:inset 0 0 0 1px rgba(7,113,70,.09),0 7px 18px rgba(8,89,58,.07);
}
.nav .nav-cta {
  min-height:40px;
  margin-left:4px;
  padding:0 18px;
  color:#fff;
  background:#07271e;
  box-shadow:inset 0 1px rgba(255,255,255,.13);
}
.nav .nav-cta:hover,
.nav .nav-cta[aria-current="page"] {
  color:#fff;
  background:#087149;
  box-shadow:0 0 0 4px rgba(32,214,107,.13),inset 0 1px rgba(255,255,255,.15);
}
.nav .nav-cta::after { display:none; }
.js:not(.is-ready) .site-header .brand,
.js:not(.is-ready) .site-header .nav { opacity:0; }
.js.is-ready .site-header .brand { animation:headerBrandIn .72s var(--ease) .12s both; }
@media (min-width:1101px) {
  .js.is-ready .site-header .nav { animation:headerNavIn .72s var(--ease) .2s both; }
  .js.is-ready .site-header .nav a { animation:headerLinkIn .55s var(--ease) both; }
  .js.is-ready .site-header .nav a:nth-child(1){animation-delay:.3s}
  .js.is-ready .site-header .nav a:nth-child(2){animation-delay:.34s}
  .js.is-ready .site-header .nav a:nth-child(3){animation-delay:.38s}
  .js.is-ready .site-header .nav a:nth-child(4){animation-delay:.42s}
  .js.is-ready .site-header .nav a:nth-child(5){animation-delay:.46s}
  .js.is-ready .site-header .nav a:nth-child(6){animation-delay:.5s}
  .js.is-ready .site-header .nav a:nth-child(7){animation-delay:.54s}
}
@keyframes headerBrandIn { from{opacity:0;translate:-20px 0} to{opacity:1;translate:0 0} }
@keyframes headerNavIn { from{opacity:0;scale:.96} to{opacity:1;scale:1} }
@keyframes headerLinkIn { from{opacity:0;translate:0 -8px} to{opacity:1;translate:0 0} }

/* OS reduced-motion becomes gentle: reveals remain, large pointer motion is JS-disabled. */
html[data-motion="gentle"] .motion-cursor { display:none!important; }
html[data-motion="gentle"] .ticker-track { animation-duration:43s; }
html[data-motion="gentle"] .world-packet { animation-duration:8s; }
html[data-motion="gentle"] .network-packet { animation-duration:7.5s; }
html[data-motion="gentle"] .vault-packet { animation-duration:9s; }
html[data-motion="gentle"] .data-packet { animation-duration:10s; }

/* Home atlas stage — light enterprise cartography with a contained oval map. */
.japan-stage {
  contain:paint;
  height:clamp(520px,62vh,620px);
  min-height:520px;
  color:#063c2c;
  border:1px solid rgba(7,105,65,.2);
  border-radius:44px 14px 44px 14px;
  background:
    linear-gradient(rgba(7,105,65,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(7,105,65,.045) 1px,transparent 1px),
    radial-gradient(circle at 76% 25%,rgba(202,255,74,.4),transparent 22%),
    linear-gradient(138deg,#fcfff9 0%,#edf8f0 48%,#d7eee0 100%);
  background-size:42px 42px,42px 42px,auto,auto;
  box-shadow:0 38px 90px rgba(9,92,59,.16),inset 0 1px rgba(255,255,255,.98),inset 0 -30px 60px rgba(39,174,104,.07);
}
.japan-stage:hover { border-radius:36px 22px 50px 16px; }
.japan-stage::before,
.japan-stage::after { border-color:rgba(7,105,65,.14); }
.world-projection {
  inset:9% 5% 16%;
  border:1px solid rgba(7,105,65,.15);
  border-radius:50% / 44%;
  background:radial-gradient(circle at 68% 43%,rgba(202,255,74,.24),transparent 17%),rgba(255,255,255,.28);
  box-shadow:inset 0 0 70px rgba(27,178,101,.07),0 20px 50px rgba(8,83,54,.08);
}
.world-projection::before { border-color:rgba(7,105,65,.17); }
.world-projection::after {
  content:"";
  position:absolute;
  z-index:8;
  inset:-20% auto -20% -32%;
  width:18%;
  opacity:0;
  rotate:15deg;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.82),transparent);
  filter:blur(5px);
  pointer-events:none;
}
.world-grid { border-color:rgba(7,105,65,.14); }
.continent {
  background:linear-gradient(145deg,#c5efd3,#42ca81 64%,#0b945a);
  border-color:rgba(255,255,255,.9);
  box-shadow:0 13px 28px rgba(7,105,65,.13),inset 0 1px rgba(255,255,255,.72);
}
.world-route { border-top-color:rgba(8,132,79,.58); }
.route-pacific { border-top-color:rgba(139,207,35,.95); }
.stage-label {
  z-index:10;
  top:32px;
  left:32px;
  padding:9px 13px;
  border:1px solid rgba(7,105,65,.13);
  border-radius:999px;
  color:#075d3d;
  background:rgba(255,255,255,.8);
  box-shadow:0 12px 30px rgba(8,83,54,.08);
  backdrop-filter:blur(10px);
}
.stage-coordinate { z-index:10; left:32px; bottom:26px; color:rgba(5,65,46,.61); }
.world-hub,.hub-tokyo,.hub-global { color:#064a34; }
.hub-global b { background:#0d9f60; box-shadow:0 0 16px rgba(13,159,96,.6); }
.japan-stage .land { border-color:rgba(255,255,255,.9); box-shadow:0 12px 26px rgba(3,98,59,.18); }
.japan-stage .route { background:linear-gradient(90deg,transparent,rgba(6,115,71,.44),transparent); }
.js.is-ready .japan-stage.reveal { animation:none; }
.js.is-ready .japan-stage.reveal.is-visible { animation:japanStageReveal 1.15s var(--ease) .08s both; }
.japan-stage:not(.is-visible) :is(.archipelago,.land,.route,.world-packet,.stage-label i),
.japan-stage:not(.is-visible) .signal::after,
.japan-stage:not(.is-visible)::before,
.japan-stage:not(.is-visible)::after { animation-play-state:paused; }
.japan-stage.is-visible .world-projection { animation:atlasLayerIn .95s var(--ease) .35s both; }
.japan-stage.is-visible .stage-label { animation:atlasMetaIn .7s var(--ease) .6s both; }
.japan-stage.is-visible .stage-coordinate { animation:atlasMetaIn .7s var(--ease) .82s both; }
.japan-stage.is-visible .world-projection::after { animation:atlasScan 6.4s ease-in-out 1.3s infinite; }
@keyframes japanStageReveal {
  0%{opacity:0;translate:0 42px;scale:.955;clip-path:inset(10% 12% round 36px);filter:blur(11px) saturate(.7)}
  62%{opacity:1;filter:blur(0) saturate(1.04)}
  100%{opacity:1;translate:0 0;scale:1;clip-path:inset(0);filter:none}
}
@keyframes atlasLayerIn { from{opacity:0;scale:.94;filter:blur(8px)} to{opacity:1;scale:1;filter:none} }
@keyframes atlasMetaIn { from{opacity:0;translate:0 14px} to{opacity:1;translate:0 0} }
@keyframes atlasScan { 0%,58%,100%{translate:0 0;opacity:0} 66%{opacity:.6} 82%{translate:760% 0;opacity:0} }

/* Mint systems pipeline — crisp copy, repeat-safe motion, no broken edge text. */
.ticker {
  position:relative;
  height:84px;
  padding:0;
  overflow:hidden;
  color:#073d2c;
  border-block:1px solid rgba(6,82,53,.42);
  background:repeating-linear-gradient(90deg,transparent 0 89px,rgba(7,105,65,.055) 89px 90px),linear-gradient(90deg,#e1f2e6,#f7fbf5 48%,#dcefe2);
  box-shadow:inset 0 7px #bdf343,inset 0 -7px #0a563b;
  mask-image:none;
  -webkit-mask-image:none;
}
.ticker::before,
.ticker::after {
  content:"";
  position:absolute;
  z-index:5;
  top:0;
  bottom:0;
  width:clamp(34px,6vw,100px);
  height:auto;
  border:0;
  transform:none;
  pointer-events:none;
}
.ticker::before { left:0; right:auto; background:linear-gradient(90deg,#e2f2e6 15%,transparent); }
.ticker::after { left:auto; right:0; background:linear-gradient(270deg,#dcefe2 15%,transparent); }
.ticker-track { height:100%;display:flex;align-items:center;width:max-content;animation:ticker 32s linear infinite;will-change:transform; }
.ticker-group { display:flex;flex:0 0 auto;align-items:center;gap:12px;height:100%;padding-right:12px; }
.ticker span {
  display:inline-flex;
  align-items:center;
  gap:13px;
  height:52px;
  padding:0 20px 0 8px;
  border:1px solid rgba(7,105,65,.14);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  box-shadow:0 9px 24px rgba(8,83,54,.07),inset 0 1px #fff;
  color:#073d2c;
  font-size:12px;
  font-weight:900;
  letter-spacing:.13em;
}
.ticker span b {
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  border:0;
  border-radius:10px;
  clip-path:none;
  color:#d6ff63;
  background:#075139;
  font-size:8px;
  box-shadow:inset 0 1px rgba(255,255,255,.18);
}
.ticker span::after { content:"";width:5px;height:5px;margin-left:8px;border-radius:50%;background:#43cf78;box-shadow:0 0 0 5px rgba(67,207,120,.1); }
.ticker:is(:hover,:focus-within) .ticker-track { animation-play-state:paused; }
@keyframes ticker { to{transform:translate3d(-50%,0,0)} }

/* Privacy vault — pale mint glass, based on the supplied reference. */
.privacy-vault--mint {
  color:#123d30;
  border-color:rgba(255,255,255,.96);
  background:linear-gradient(135deg,#e8f6ee 0%,#d6ecdf 46%,#c7e2d2 100%);
  box-shadow:0 38px 88px rgba(25,103,71,.14),inset 0 1px #fff;
}
.privacy-vault--mint:hover { box-shadow:0 48px 100px rgba(25,103,71,.18),inset 0 1px #fff; }
.privacy-vault--mint .privacy-vault-scene::before {
  z-index:0;
  opacity:1;
  background:radial-gradient(circle at 64% 57%,rgba(202,255,74,.43),transparent 18%),radial-gradient(circle at 45% 38%,rgba(255,255,255,.72),transparent 38%),linear-gradient(135deg,rgba(235,248,241,.96),rgba(194,224,207,.86));
  mask-image:none;
}
.privacy-vault--mint .privacy-vault-scene::after {
  content:"";
  position:absolute;
  z-index:1;
  width:620px;
  height:310px;
  right:-23%;
  bottom:-21%;
  border:1px solid rgba(0,115,76,.23);
  border-radius:50%;
  rotate:7deg;
  box-shadow:0 0 0 78px rgba(255,255,255,.045);
}
.privacy-vault--mint .vault-floor { display:none; }
.privacy-vault--mint .vault-halo { z-index:2;width:330px;height:330px;left:64%;top:63%;background:radial-gradient(circle,rgba(202,255,74,.32),rgba(32,214,107,.09) 39%,transparent 69%);animation:none; }
.privacy-vault--mint.is-visible .vault-halo { animation:vaultHalo 5.8s ease-in-out infinite alternate; }
.privacy-vault--mint .vault-orbit { z-index:2;left:64%;top:66%;border-color:rgba(0,116,76,.25);box-shadow:none;animation:none; }
.privacy-vault--mint .vault-orbit.orbit-one { width:540px;height:220px;rotate:8deg; }
.privacy-vault--mint .vault-orbit.orbit-two { width:360px;height:430px;rotate:-24deg; }
.privacy-vault--mint .vault-orbit.orbit-three { width:205px;height:205px;border-color:rgba(0,126,80,.26); }
.js .privacy-vault--mint .vault-orbit,
.js .privacy-vault--mint .vault-shell { opacity:0; }
.privacy-vault--mint.is-visible .orbit-one { animation:vaultMintRingIn .8s var(--ease) .46s both,vaultOrbit 28s linear 1.3s infinite; }
.privacy-vault--mint.is-visible .orbit-two { animation:vaultMintRingIn .8s var(--ease) .55s both,vaultOrbit 34s linear 1.4s infinite reverse; }
.privacy-vault--mint.is-visible .orbit-three { animation:vaultMintRingIn .8s var(--ease) .64s both,vaultOrbit 22s linear 1.5s infinite; }
.privacy-vault--mint .vault-shell {
  width:210px;
  height:245px;
  left:64%;
  top:auto;
  bottom:0;
  translate:-50% 0;
  clip-path:none;
  border:1px solid rgba(255,255,255,.96);
  border-radius:0;
  background:linear-gradient(145deg,rgba(255,255,255,.67),rgba(184,235,207,.37));
  box-shadow:10px 9px 0 rgba(0,91,61,.42),inset 0 1px rgba(255,255,255,.98),inset -18px -20px 30px rgba(0,111,70,.09),0 26px 55px rgba(22,105,72,.18);
  filter:none;
}
.privacy-vault--mint .vault-shell::before { inset:9px;clip-path:none;border-color:rgba(255,255,255,.7);background:linear-gradient(135deg,rgba(255,255,255,.24),rgba(13,143,88,.06)); }
.privacy-vault--mint.is-visible .vault-shell { animation:vaultMintShellIn .9s var(--ease) .48s both,vaultMintFloat 5.2s ease-in-out 1.45s infinite alternate; }
.privacy-vault--mint .vault-core { background:radial-gradient(circle at 35% 27%,#fff 0 5%,#efffb5 7%,#caff4a 28%,#20d66b 62%,#08794f 100%);box-shadow:0 0 0 16px rgba(255,255,255,.14),0 0 48px rgba(163,255,96,.45),inset -14px -18px 24px rgba(0,87,52,.2); }
.privacy-vault--mint .vault-keyhole { background:#07543b;box-shadow:0 0 12px rgba(255,255,255,.34); }
.privacy-vault--mint .vault-packet { color:#08734d;border-color:rgba(0,103,67,.1);background:rgba(255,255,255,.9);box-shadow:0 10px 28px rgba(35,109,78,.1); }
.privacy-vault--mint.is-visible .vault-packet { animation:vaultMintPacket 7.4s ease-in-out infinite alternate; }
.privacy-vault--mint .vault-beam { background:linear-gradient(90deg,rgba(255,255,255,.8),rgba(0,125,80,.58),transparent);box-shadow:none; }
.privacy-vault--mint .beam-one { left:52%;top:46%;width:43%;rotate:-28deg; }
.privacy-vault--mint .beam-two { left:64%;top:55%;width:38%;rotate:18deg; }
.privacy-vault--mint .vault-status { color:#17694d; }
.privacy-vault--mint .vault-status i { background:#caff4a;box-shadow:0 0 13px rgba(127,239,85,.58); }
.privacy-vault--mint figcaption { color:#123d30;border-top-color:rgba(10,94,62,.1);background:rgba(255,255,255,.94); }
.privacy-vault--mint figcaption span { color:#557b6d; }
.privacy-vault--mint figcaption strong { color:#143c30; }
@keyframes vaultMintRingIn { from{opacity:0;scale:.74;filter:blur(9px)} to{opacity:1;scale:1;filter:blur(0)} }
@keyframes vaultMintShellIn { from{opacity:0;filter:blur(13px);transform:translateY(28px)} to{opacity:1;filter:blur(0);transform:translateY(0)} }
@keyframes vaultMintFloat { to{transform:translateY(-7px)} }
@keyframes vaultMintPacket { from{translate:0 -3px} to{translate:7px 7px} }

/* One authoritative tablet/mobile menu; all earlier conflicting layers end here. */
@media (max-width:1100px) {
  .site-header,.site-header.is-compact { height:82px; }
  .header-wrap { width:calc(100% - 32px);display:flex;align-items:center;padding:0; }
  .menu-toggle {
    display:flex!important;
    position:fixed!important;
    z-index:130;
    right:16px!important;
    top:15px!important;
    width:52px;
    height:52px;
    margin:0!important;
    translate:0!important;
    transform:none!important;
    visibility:visible!important;
    opacity:1!important;
  }
  body.menu-open .site-header { height:82px!important;min-height:82px;transform:none!important;background:transparent!important;border:0;box-shadow:none;backdrop-filter:none!important;overflow:visible; }
  body.menu-open .header-wrap { width:calc(100% - 32px);height:82px;padding:0;align-items:center; }
  .nav {
    position:fixed!important;
    inset:0!important;
    z-index:101;
    width:100%!important;
    height:100dvh!important;
    min-height:100dvh!important;
    padding:112px max(26px,6vw) 36px!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-content:center;
    align-items:center;
    gap:0 7vw;
    overflow-y:auto;
    border:0;
    border-radius:0;
    background:radial-gradient(circle at 82% 14%,rgba(255,255,255,.52),transparent 24%),linear-gradient(145deg,#d8ff61,#bff04a 58%,#a6df34);
    box-shadow:none;
    translate:0 0;
    visibility:hidden;
    opacity:0;
    clip-path:circle(0 at calc(100% - 42px) 41px);
    transition:clip-path .65s var(--ease),opacity .28s,visibility .65s;
  }
  .nav.open { visibility:visible;opacity:1;clip-path:circle(155% at calc(100% - 42px) 41px); }
  .nav a,
  .nav .nav-cta {
    counter-increment:navitem;
    position:relative;
    justify-content:flex-start;
    width:100%;
    min-height:68px;
    margin:0;
    padding:15px 0 13px 38px;
    border:0;
    border-bottom:1px solid rgba(8,21,18,.19);
    border-radius:0;
    color:var(--ink);
    background:transparent;
    box-shadow:none;
    font-size:clamp(32px,5.2vw,58px);
    line-height:.92;
    letter-spacing:-.035em;
    text-transform:none;
    transform:none;
  }
  .nav a::before { content:"0" counter(navitem);position:absolute;left:0;top:20px;color:#087149;font-family:var(--font-mono);font-size:9px;letter-spacing:.06em; }
  .nav a::after { display:none; }
  .nav a:hover,
  .nav a[aria-current="page"],
  .nav .nav-cta:hover,
  .nav .nav-cta[aria-current="page"] { padding-left:48px;color:var(--ink);background:transparent;box-shadow:none; }
  .nav a[aria-current="page"]::before { color:#fff;text-shadow:0 0 12px #087149; }
  .nav.open a { animation:menuItemIn .7s var(--ease) both; }
  .japan-stage { height:540px;min-height:520px; }
}
@media (max-width:560px) {
  .site-header,.site-header.is-compact { height:76px; }
  .header-wrap { width:calc(100% - 28px); }
  .brand-mark { width:42px;height:42px; }
  .brand-copy strong { font-size:14px; }
  .brand-copy small { display:none; }
  .menu-toggle { right:14px!important;top:12px!important; }
  body.menu-open .site-header { height:76px!important;min-height:76px; }
  body.menu-open .header-wrap { width:calc(100% - 28px);height:76px; }
  .nav { grid-template-columns:1fr;padding:86px 20px max(24px,env(safe-area-inset-bottom))!important;align-content:start; }
  .nav a,.nav .nav-cta { min-height:55px;padding:10px 0 9px 31px;font-size:clamp(29px,9.6vw,42px); }
  .nav a::before { top:14px;font-size:8px; }
  .nav a:hover,.nav a[aria-current="page"],.nav .nav-cta:hover,.nav .nav-cta[aria-current="page"] { padding-left:40px; }
  .japan-stage { height:440px;min-height:440px;border-radius:28px 9px 28px 9px; }
  .world-projection { inset:13% 3% 18%; }
  .stage-label { top:20px;left:18px;padding:7px 10px;font-size:6px; }
  .stage-coordinate { left:18px;right:18px;bottom:17px;font-size:6px; }
  .ticker { height:72px;box-shadow:inset 0 6px #bdf343,inset 0 -6px #0a563b; }
  .ticker::before,.ticker::after { width:28px; }
  .ticker-group { gap:8px;padding-right:8px; }
  .ticker span { height:46px;padding:0 15px 0 7px;font-size:9px;letter-spacing:.1em; }
  .ticker span b { min-width:29px;height:29px;border-radius:8px; }
  .privacy-vault--mint .vault-shell { left:58%; }
  .privacy-vault--mint .vault-halo,
  .privacy-vault--mint .vault-orbit { left:58%; }
  .privacy-vault--mint .beam-one { left:43%;width:50%; }
  .privacy-vault--mint .beam-two { left:58%;width:40%; }
}
html[data-motion="reduced"] .ticker { overflow-x:auto;scrollbar-width:none; }
html[data-motion="reduced"] .ticker::-webkit-scrollbar { display:none; }
html[data-motion="reduced"] .ticker::before,
html[data-motion="reduced"] .ticker::after { display:none; }
html[data-motion="reduced"] .privacy-vault--mint :is(.vault-halo,.vault-orbit,.vault-shell,.vault-packet,.vault-beam,.vault-status i) { animation:none!important;transition:none!important;opacity:1!important;filter:none!important; }
html[data-motion="reduced"] .privacy-vault--mint .vault-shell { translate:-50% 0!important;transform:none!important; }
html[data-motion="reduced"] .privacy-vault--mint .vault-orbit { translate:-50% -50%!important; }

/* ========================================================================== 
   RELEASE 19 — borderless dark stage, signal stream and calm inner heroes
   ========================================================================== */

/* Home: remove the rectangular card and let the dark world float organically. */
.hero-grid::before { display:none; }
.japan-stage {
  contain:paint;
  isolation:isolate;
  height:clamp(560px,66vh,680px);
  min-height:560px;
  color:#fff;
  border:0;
  border-radius:49% 51% 45% 55% / 56% 44% 56% 44%;
  background:
    radial-gradient(circle at 78% 24%,rgba(202,255,74,.2),transparent 18%),
    radial-gradient(ellipse at 47% 55%,rgba(24,188,108,.14),transparent 48%),
    linear-gradient(145deg,#07110e 0%,#091a14 54%,#020806 100%);
  box-shadow:0 48px 100px rgba(2,14,10,.26),inset 0 -55px 100px rgba(0,0,0,.28);
}
.japan-stage:hover { border-radius:46% 54% 50% 50% / 52% 47% 53% 48%; }
.japan-stage::before {
  width:68%;height:72%;right:-4%;top:-7%;
  border:0;border-radius:50%;
  background:radial-gradient(circle,rgba(56,236,139,.11),transparent 68%);
  box-shadow:none;filter:blur(14px);
}
.japan-stage::after {
  width:36%;height:36%;left:7%;bottom:4%;
  border:0;border-radius:50%;
  background:radial-gradient(circle,rgba(202,255,74,.07),transparent 70%);
  box-shadow:none;filter:blur(10px);
}
.world-projection {
  inset:7% 4% 13%;overflow:hidden;
  border:0;border-radius:50%;background:transparent;box-shadow:none;
}
.world-projection::before { display:none; }
.world-grid { border:0;opacity:.12; }
.continent {
  border:0;
  background:linear-gradient(145deg,rgba(202,255,74,.92),rgba(34,212,110,.86) 55%,rgba(4,115,70,.92));
  box-shadow:0 14px 32px rgba(0,0,0,.24);
}
.world-route { border-top-color:rgba(202,255,74,.48); }
.route-pacific { border-top-color:rgba(202,255,74,.82); }
.stage-label {
  top:58px;left:86px;padding:0;
  border:0;border-radius:0;color:#caff4a;background:transparent;
  box-shadow:none;backdrop-filter:none;text-shadow:0 0 18px rgba(202,255,74,.22);
}
.stage-coordinate { left:68px;bottom:48px;color:rgba(255,255,255,.56); }
.world-hub,.hub-tokyo,.hub-global { color:rgba(255,255,255,.72); }
.hub-global b { background:#fff;box-shadow:0 0 18px rgba(255,255,255,.8); }
.japan-stage .land { border:0;box-shadow:0 10px 28px rgba(0,0,0,.28); }
.japan-stage .route { background:linear-gradient(90deg,transparent,rgba(202,255,74,.38),transparent); }
.js.is-ready .japan-stage.reveal { animation:none; }
.js.is-ready .japan-stage.reveal.is-visible { animation:japanStageDarkReveal 1.25s var(--ease) .08s both; }
.japan-stage.is-visible .world-projection { animation:darkWorldIn 1s var(--ease) .34s both; }
@keyframes japanStageDarkReveal {
  0%{opacity:0;translate:0 34px;scale:.965;clip-path:circle(0 at 76% 30%);filter:blur(13px) brightness(.65)}
  58%{opacity:1;filter:blur(0) brightness(1.08)}
  100%{opacity:1;translate:0 0;scale:1;clip-path:circle(145% at 76% 30%);filter:none}
}
@keyframes darkWorldIn {
  from{opacity:0;scale:.92;filter:blur(9px)}
  to{opacity:1;scale:1;filter:none}
}

/* Home: a continuous signal stream — no cards, pills, rails or outlined boxes. */
.ticker {
  position:relative;
  height:82px;
  padding:0;
  overflow:hidden;
  isolation:isolate;
  color:#f5fff8;
  border:0;
  border-radius:0;
  background:
    radial-gradient(circle at 18% 50%,rgba(114,255,160,.14),transparent 24%),
    radial-gradient(circle at 76% 50%,rgba(194,255,74,.09),transparent 22%),
    linear-gradient(96deg,#061913 0%,#0a3d2c 46%,#07251c 100%);
  box-shadow:none;
  mask-image:none;
  -webkit-mask-image:none;
}
.ticker::before,.ticker::after {
  content:"";position:absolute;z-index:5;top:0;bottom:0;
  width:clamp(34px,7vw,112px);height:auto;border:0;transform:none;pointer-events:none;
}
.ticker::before { left:0;right:auto;background:linear-gradient(90deg,#061913 8%,rgba(6,25,19,.88) 36%,transparent); }
.ticker::after { left:auto;right:0;background:linear-gradient(270deg,#07251c 8%,rgba(7,37,28,.88) 36%,transparent); }
.ticker-track {
  display:flex;align-items:center;width:max-content;height:100%;
  animation:tickerSignalFlow 34s linear infinite;will-change:transform;
}
.ticker-group { display:flex;flex:0 0 auto;align-items:center;gap:0;height:100%;padding:0; }
.ticker span {
  display:inline-flex;align-items:center;gap:15px;height:auto;
  padding:0 clamp(30px,3.8vw,68px);
  border:0;border-radius:0;background:transparent;box-shadow:none;
  color:rgba(245,255,248,.93);font-size:12px;font-weight:850;
  letter-spacing:.16em;line-height:1;text-transform:uppercase;
  text-shadow:0 0 22px rgba(120,255,164,.1);white-space:nowrap;
}
.ticker span::before {
  content:"";flex:0 0 auto;width:5px;height:5px;border-radius:50%;
  background:#c2ff4a;box-shadow:0 0 0 5px rgba(194,255,74,.08),0 0 18px rgba(194,255,74,.56);
}
.ticker span::after {
  content:"";flex:0 0 auto;width:clamp(34px,4vw,72px);height:1px;margin-left:8px;
  border:0;border-radius:0;background:linear-gradient(90deg,rgba(194,255,74,.62),transparent);box-shadow:none;
}
.ticker span b {
  display:inline;min-width:0;width:auto;height:auto;
  border:0;border-radius:0;clip-path:none;color:#c2ff4a;background:transparent;box-shadow:none;
  font-family:var(--font-mono);font-size:8px;font-variant-numeric:tabular-nums;letter-spacing:.08em;
}
.ticker:is(:hover,:focus-within) .ticker-track { animation-play-state:paused; }
@keyframes tickerSignalFlow { to{transform:translate3d(-50%,0,0)} }

/* Inner pages: copy stays below its h1 while the simplified Japan map floats right. */
.page-hero:not([data-word="404"]) .page-hero-grid {
  grid-template-columns:minmax(0,.82fr) minmax(480px,1.18fr);
  grid-template-rows:auto auto;
  align-content:center;
  align-items:start;
  gap:0 clamp(44px,6vw,92px);
  min-height:470px;
}
.page-hero:not([data-word="404"]) h1 { grid-column:1;grid-row:1;align-self:end; }
.page-hero:not([data-word="404"]) .page-hero-copy {
  grid-column:1;grid-row:2;align-self:start;
  width:calc(100% - 28px);max-width:540px;margin:clamp(28px,3.5vw,44px) 0 0;
}
.inner-japan-network {
  right:clamp(18px,2.8vw,54px);
  filter:drop-shadow(0 22px 38px rgba(0,90,50,.08));
  mask-image:linear-gradient(90deg,transparent 0,#000 10%,#000 100%);
}
.inner-japan-network .jp-island { border:0;box-shadow:inset 8px 7px 16px rgba(255,255,255,.14),0 10px 20px rgba(3,93,54,.16); }
.network-grid { opacity:.18; }
.network-horizon { opacity:.5;box-shadow:none; }
.network-chip {
  padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}

/* Privacy now uses the same hero composition; its figure begins below the hero. */
.page-privacy .privacy-hero { min-height:650px; }
.page-privacy .privacy-hero .page-hero-grid {
  min-height:470px;
  grid-template-columns:minmax(0,.82fr) minmax(480px,1.18fr);
  grid-template-rows:auto auto;
  align-items:start;
  gap:0 clamp(44px,6vw,92px);
}
.page-privacy .privacy-hero h1 { grid-column:1;grid-row:1;align-self:end;z-index:8; }
.page-privacy .privacy-hero .page-hero-copy { grid-column:1;grid-row:2;align-self:start;z-index:8; }
.page-privacy .inner-japan-network {
  opacity:1;right:clamp(18px,2.8vw,54px);
  filter:drop-shadow(0 22px 38px rgba(0,90,50,.08));
}
.privacy-vault-section {
  position:relative;
  overflow:hidden;
  padding:clamp(72px,9vw,128px) 0;
  background:radial-gradient(circle at 76% 12%,rgba(202,255,74,.13),transparent 28%),#f5f8f2;
}
.privacy-vault-section .privacy-vault {
  grid-column:auto;grid-row:auto;
  width:min(1040px,100%);min-height:560px;margin:0 auto;
}

@media (max-width:1100px) {
  .page-hero:not([data-word="404"]) .page-hero-grid,
  .page-privacy .privacy-hero .page-hero-grid {
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
    min-height:500px;
  }
  .inner-japan-network,
  .page-privacy .inner-japan-network { right:-4%;opacity:.42; }
  .page-privacy .privacy-hero { min-height:690px; }
}

@media (max-width:760px) {
  .japan-stage { height:430px;min-height:430px;border-radius:50% / 43%; }
  .stage-label { top:31px;left:31px;padding:0;font-size:7px; }
  .stage-coordinate { left:31px;right:25px;bottom:29px;font-size:7px; }
  .ticker { height:68px;box-shadow:none; }
  .ticker::before,.ticker::after { width:28px; }
  .ticker-group { gap:0;padding:0; }
  .ticker span { height:auto;padding:0 24px;gap:11px;font-size:9px;letter-spacing:.12em; }
  .ticker span b { min-width:0;width:auto;height:auto;border-radius:0;font-size:7px; }
  .ticker span::after { width:30px;margin-left:4px; }
  .page-hero:not([data-word="404"]) .page-hero-grid,
  .page-privacy .privacy-hero .page-hero-grid { min-height:430px; }
  .inner-japan-network,
  .page-privacy .inner-japan-network {
    width:590px;height:390px;right:-9%;top:170px;opacity:.22;scale:.82;
  }
  .page-hero:not([data-word="404"]) .page-hero-copy { max-width:92%;background:rgba(247,248,242,.94); }
  .page-privacy .privacy-hero { min-height:570px;padding-bottom:54px; }
  .privacy-vault-section { padding:56px 0; }
  .privacy-vault-section .privacy-vault { grid-column:auto;grid-row:auto;min-height:430px; }
}

html[data-motion="gentle"] .ticker-track { animation-duration:48s; }
html[data-motion="reduced"] .ticker-track { animation:none!important;transform:none;will-change:auto; }

/* ==========================================================================
   RELEASE 20 — immediate navigation, factual Japanese copy and crisp diagrams
   ========================================================================== */

html {
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

/* Page changes are immediate. Only below-the-fold IntersectionObserver reveals remain. */
.js:not(.is-ready) { overflow:auto; }
.js body::before,
.js body::after { display:none!important; }
.js:not(.is-ready) .site-header .brand,
.js:not(.is-ready) .site-header .nav,
.js .hero-copy .eyebrow,
.js .hero-line,
.js .hero-bottom,
.js .japan-stage,
.js .page-hero h1,
.js .page-hero-copy,
.js .breadcrumb,
.js .inner-japan-network {
  opacity:1;
}
.js .hero-line,
.js .page-hero h1,
.js .page-hero-copy,
.js .breadcrumb,
.js .inner-japan-network {
  clip-path:none;
  translate:0;
  scale:1;
  filter:none;
}
.js.is-ready .site-header .brand,
.js.is-ready .site-header .nav,
.js.is-ready .site-header .nav a,
.js.is-ready .hero-copy .eyebrow,
.js.is-ready .hero-line,
.js.is-ready .hero-bottom,
.js.is-ready .japan-stage,
.js.is-ready .page-hero h1,
.js.is-ready .page-hero-copy,
.js.is-ready .breadcrumb,
.js.is-ready .inner-japan-network,
.js.is-ready .japan-stage.reveal,
.js.is-ready .japan-stage.reveal.is-visible,
.japan-stage.is-visible .world-projection {
  animation:none!important;
}

/* Home systems landscape: smooth native geometry, no scaled polygon map. */
.japan-stage {
  contain:paint;
  isolation:isolate;
  height:clamp(560px,66vh,680px);
  min-height:560px;
  overflow:hidden;
  opacity:1!important;
  color:#f7fff9;
  border:0;
  border-radius:50% / 46%;
  background:
    radial-gradient(circle at 77% 24%,rgba(199,255,88,.18),transparent 17%),
    radial-gradient(circle at 37% 54%,rgba(35,218,118,.12),transparent 35%),
    linear-gradient(145deg,#071813 0%,#0a2a20 58%,#06150f 100%);
  box-shadow:0 38px 82px rgba(5,37,27,.22),inset 0 0 0 1px rgba(255,255,255,.08),inset 0 -45px 90px rgba(0,0,0,.2);
  transform:none;
  transition:none;
  will-change:auto;
  backface-visibility:hidden;
}
.japan-stage:hover { border-radius:50% / 46%; }
.japan-stage::before {
  content:"";
  position:absolute;
  width:430px;
  height:430px;
  right:-72px;
  top:-112px;
  border:0;
  border-radius:50%;
  background:radial-gradient(circle,rgba(70,230,137,.13),transparent 68%);
  box-shadow:none;
  filter:none;
  animation:none;
}
.japan-stage::after {
  content:"";
  position:absolute;
  width:540px;
  height:260px;
  left:8%;
  bottom:16%;
  border:1px solid rgba(208,255,120,.13);
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  filter:none;
  rotate:-8deg;
  animation:none;
}
.stage-label {
  z-index:20;
  top:54px;
  left:62px;
  padding:0;
  border:0;
  border-radius:0;
  color:#d7ff77;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  font-family:var(--font-jp);
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  text-shadow:none;
}
.stage-label i { animation:statusPulse 2.6s ease-in-out infinite; }
.stage-coordinate {
  z-index:20;
  left:62px;
  right:52px;
  bottom:39px;
  color:rgba(238,255,245,.62);
  font-family:var(--font-jp);
  font-size:9px;
  line-height:1.85;
  letter-spacing:.08em;
}
.systems-field { position:absolute;inset:92px 40px 84px;z-index:5; }
.systems-grid {
  position:absolute;
  inset:0;
  opacity:.22;
  background-image:linear-gradient(rgba(195,255,218,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(195,255,218,.12) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(ellipse at 58% 43%,#000 24%,transparent 78%);
}
.systems-orbit {
  position:absolute;
  border:1px solid rgba(201,255,119,.2);
  border-radius:50%;
  pointer-events:none;
}
.systems-orbit.orbit-a { width:70%;height:42%;right:1%;top:7%;rotate:-13deg; }
.systems-orbit.orbit-b { width:55%;height:70%;right:9%;top:-9%;rotate:22deg;border-color:rgba(255,255,255,.12); }
.systems-core {
  position:absolute;
  z-index:8;
  left:7%;
  top:25%;
  width:172px;
  height:172px;
  display:grid;
  place-content:center;
  gap:8px;
  border-radius:50%;
  color:#effff4;
  text-align:center;
  background:radial-gradient(circle at 38% 30%,#1abf70,#087149 58%,#052c20);
  box-shadow:0 22px 48px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.16),0 0 0 18px rgba(56,218,127,.035);
}
.systems-core b {
  color:#d3ff67;
  font-family:var(--font-latin);
  font-size:45px;
  font-weight:900;
  line-height:.8;
  letter-spacing:-.08em;
}
.systems-core span { font-size:13px;font-weight:700;line-height:1.45;letter-spacing:.08em; }
.japan-service-mark { position:absolute;z-index:7;width:54%;height:46%;right:3%;top:10%; }
.jp-form {
  position:absolute;
  display:block;
  border-radius:999px;
  background:linear-gradient(135deg,#d3ff67 0%,#4fe180 42%,#08a75f 100%);
  box-shadow:0 10px 28px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.34);
  backface-visibility:hidden;
}
.jp-hokkaido-form { width:68px;height:51px;right:3%;top:0;border-radius:48% 52% 44% 56%;rotate:18deg; }
.jp-honshu-form { width:250px;height:35px;right:10%;top:42%;rotate:18deg;border-radius:70% 30% 64% 36% / 55% 45% 55% 45%; }
.jp-shikoku-form { width:69px;height:20px;right:37%;top:64%;rotate:8deg; }
.jp-kyushu-form { width:53px;height:67px;left:3%;bottom:1%;border-radius:52% 48% 57% 43%;rotate:19deg; }
.tokyo-hub {
  position:absolute;
  z-index:9;
  right:11%;
  top:48%;
  display:flex;
  align-items:center;
  gap:7px;
  color:#fff;
  font-family:var(--font-mono);
  font-size:7px;
  letter-spacing:.12em;
}
.tokyo-hub i {
  width:10px;
  height:10px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 7px rgba(255,255,255,.1),0 0 24px #caff4a;
}
.systems-flow {
  position:absolute;
  z-index:10;
  left:4%;
  right:4%;
  bottom:3%;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid rgba(211,255,103,.24);
}
.systems-flow li { position:relative;padding:17px 16px 0 0;min-height:72px; }
.systems-flow li:not(:last-child)::after {
  content:"";
  position:absolute;
  right:15px;
  top:26px;
  width:34px;
  height:1px;
  background:linear-gradient(90deg,rgba(211,255,103,.72),transparent);
}
.systems-flow b { color:#d3ff67;font-family:var(--font-mono);font-size:7px;letter-spacing:.08em; }
.systems-flow span { display:block;margin-top:5px;font-size:11px;font-weight:750;letter-spacing:.08em; }
.systems-flow small { display:block;margin-top:3px;color:rgba(238,255,245,.5);font-size:7px;letter-spacing:.08em; }
.systems-signal {
  position:absolute;
  z-index:14;
  left:8%;
  bottom:66px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 5px rgba(255,255,255,.08),0 0 18px #caff4a;
  opacity:0;
  will-change:translate,opacity;
  animation:systemsSignal 6.6s var(--ease) infinite;
}
.systems-signal.signal-b { animation-delay:-3.3s; }
@keyframes systemsSignal {
  0%,7%{translate:0 0;opacity:0}
  15%{opacity:1}
  48%{translate:245px 0;opacity:1}
  84%{translate:490px 0;opacity:1}
  100%{translate:520px 0;opacity:0}
}

/* Enterprise workflow artwork: role avatars, structured inputs and explicit outcomes. */
.illustration-panel {
  transform:none!important;
  transition:translate .45s var(--ease),box-shadow .45s var(--ease);
  border:0;
  box-shadow:0 22px 60px rgba(7,72,47,.09);
}
.illustration-panel:hover { translate:0 -5px;box-shadow:0 30px 72px rgba(7,72,47,.13); }
.panel-people {
  min-height:760px;
  background:linear-gradient(145deg,#f5faf5 0%,#e3f3e8 50%,#ccebd7 100%);
}
.panel-data { background:linear-gradient(145deg,#eef9f1,#d7efe0); }
.panel-global { background:linear-gradient(145deg,#e6f6ec,#c6e9d2); }
.illustration-copy {
  padding:22px 29px 27px;
  border:0;
  background:rgba(250,253,249,.96);
  backdrop-filter:none;
}
.illustration-copy .tag { color:#087149;font-family:var(--font-jp);font-size:9px;letter-spacing:.08em; }
.illustration-copy h3 { font-family:var(--font-jp);font-weight:730;letter-spacing:-.03em; }
.illustration-copy p { margin-top:8px;color:#50655c;font-size:12px;line-height:1.8; }
.scene-caption {
  left:26px;
  top:24px;
  padding:0;
  border:0;
  border-radius:0;
  color:#087149;
  background:transparent;
  box-shadow:none;
  font-family:var(--font-jp);
  font-size:9px;
  font-weight:700;
  letter-spacing:.07em;
}
.art-workflow,.art-requirements,.art-delivery { position:relative;min-height:100%; }
.art-workflow::before,.art-requirements::before,.art-delivery::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.25;
  background-image:linear-gradient(rgba(7,113,73,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(7,113,73,.11) 1px,transparent 1px);
  background-size:36px 36px;
  mask-image:radial-gradient(circle at 55% 43%,#000,transparent 78%);
}
.actor-node {
  position:absolute;
  z-index:8;
  display:grid;
  grid-template-columns:66px 1fr;
  grid-template-rows:auto auto;
  column-gap:13px;
  align-items:center;
  width:230px;
  padding:17px 19px;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:0 19px 42px rgba(7,80,51,.12);
}
.actor-avatar { position:relative;grid-row:1 / 3;width:66px;height:66px;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,#d7ff77,#64df8d); }
.actor-avatar i { position:absolute;width:24px;height:24px;left:21px;top:11px;border-radius:50%;background:#f2b382; }
.actor-avatar b { position:absolute;width:52px;height:31px;left:7px;bottom:-6px;border-radius:50% 50% 24% 24%;background:#07543b; }
.actor-node small { align-self:end;color:#6e8179;font-size:8px;letter-spacing:.08em; }
.actor-node strong { align-self:start;margin-top:3px;font-size:12px;line-height:1.35; }
.actor-client { left:7%;top:15%; }
.actor-resistif { right:7%;bottom:11%; }
.actor-resistif .actor-avatar { background:linear-gradient(145deg,#caff4a,#20d66b); }
.actor-resistif .actor-avatar b { background:#0a244d; }
.workflow-steps {
  position:absolute;
  z-index:6;
  left:16%;
  right:16%;
  top:47%;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin:0;
  padding:0;
  list-style:none;
  border-top:2px solid rgba(7,113,73,.28);
}
.workflow-steps li { position:relative;padding:29px 8px 0;color:#23463a;font-size:10px;font-weight:700;text-align:center; }
.workflow-steps li::before {
  content:"";
  position:absolute;
  width:18px;
  height:18px;
  left:50%;
  top:-10px;
  translate:-50% 0;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 5px rgba(32,214,107,.1),0 8px 18px rgba(7,80,51,.13);
}
.workflow-steps li:last-child::before { background:#20d66b; }
.workflow-steps b { display:block;margin-bottom:5px;color:#087149;font-family:var(--font-mono);font-size:7px; }
.workflow-signal {
  position:absolute;
  z-index:9;
  left:17%;
  top:calc(47% - 6px);
  width:12px;
  height:12px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 7px rgba(202,255,74,.13),0 0 22px rgba(7,113,73,.45);
  animation:workflowSignal 5.4s var(--ease) infinite;
  will-change:translate,opacity;
}
@keyframes workflowSignal { 0%,8%{translate:0;opacity:0}17%{opacity:1}82%{translate:390px;opacity:1}100%{translate:410px;opacity:0} }

.requirement-inputs { position:absolute;z-index:6;left:7%;top:31%;display:grid;gap:10px; }
.requirement-inputs span {
  display:grid;
  place-items:center;
  width:88px;
  height:38px;
  border-radius:999px;
  color:#07543b;
  background:#fff;
  box-shadow:0 10px 23px rgba(7,80,51,.1);
  font-size:9px;
  font-weight:750;
}
.spec-board {
  position:absolute;
  z-index:7;
  left:35%;
  top:19%;
  width:48%;
  min-height:174px;
  padding:22px;
  border-radius:25px;
  color:#effff4;
  background:linear-gradient(145deg,#0b6144,#073e2e);
  box-shadow:0 24px 45px rgba(6,70,45,.2);
}
.spec-board small { color:#caff4a;font-size:7px;letter-spacing:.12em; }
.spec-board strong { display:block;margin:7px 0 17px;font-size:16px; }
.spec-board ul { display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:0;padding:0;list-style:none; }
.spec-board li { padding:8px;border-radius:9px;background:rgba(255,255,255,.09);font-size:8px;text-align:center; }
.spec-status {
  position:absolute;
  z-index:9;
  right:6%;
  top:11%;
  display:flex;
  align-items:center;
  gap:7px;
  color:#07543b;
  font-size:8px;
  font-weight:750;
}
.spec-status i { width:8px;height:8px;border-radius:50%;background:#20d66b;box-shadow:0 0 0 5px rgba(32,214,107,.12); }
.requirement-signal {
  position:absolute;
  z-index:10;
  left:26%;
  top:49%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 16px #20d66b;
  animation:requirementSignal 4.8s var(--ease) infinite;
  will-change:translate,opacity;
}
@keyframes requirementSignal { 0%,10%{translate:0;opacity:0}22%{opacity:1}78%{translate:115px;opacity:1}100%{translate:140px;opacity:0} }

.art-delivery .actor-node { width:178px;grid-template-columns:49px 1fr;padding:13px 14px;border-radius:20px; }
.art-delivery .actor-avatar { width:49px;height:49px; }
.art-delivery .actor-avatar i { width:19px;height:19px;left:15px;top:7px; }
.art-delivery .actor-avatar b { width:39px;height:25px;left:5px; }
.actor-overseas { left:5%;top:34%; }
.actor-tokyo { right:5%;top:34%; }
.actor-tokyo .actor-avatar { background:linear-gradient(145deg,#caff4a,#20d66b); }
.delivery-route {
  position:absolute;
  z-index:4;
  left:35%;
  right:35%;
  top:49%;
  height:2px;
  background:linear-gradient(90deg,#20d66b,#caff4a);
}
.delivery-route::after {
  content:"";
  position:absolute;
  right:-1px;
  top:-4px;
  width:9px;
  height:9px;
  border-top:2px solid #caff4a;
  border-right:2px solid #caff4a;
  rotate:45deg;
}
.delivery-packet {
  position:absolute;
  z-index:8;
  left:42%;
  top:35%;
  padding:8px 11px;
  border-radius:999px;
  color:#074d37;
  background:#fff;
  box-shadow:0 11px 24px rgba(7,80,51,.12);
  font-size:7px;
  font-weight:750;
  animation:deliveryPacket 4.8s var(--ease) infinite;
  will-change:translate,opacity;
}
@keyframes deliveryPacket { 0%,10%{translate:-25px 0;opacity:0}22%{opacity:1}78%{translate:52px 0;opacity:1}100%{translate:74px 0;opacity:0} }
.delivery-note {
  position:absolute;
  z-index:8;
  left:10%;
  right:10%;
  bottom:10%;
  color:#3d6354;
  font-size:8px;
  font-weight:700;
  letter-spacing:.06em;
  text-align:center;
}

@media (max-width:1100px) {
  .japan-stage { height:540px;min-height:520px; }
  .systems-field { inset:84px 31px 82px; }
  .systems-core { width:148px;height:148px;left:4%; }
  .japan-service-mark { width:58%;right:0; }
  .jp-honshu-form { width:220px; }
  .systems-flow li:not(:last-child)::after { width:20px; }
  @keyframes systemsSignal { 0%,7%{translate:0;opacity:0}15%{opacity:1}48%{translate:190px;opacity:1}84%{translate:380px;opacity:1}100%{translate:410px;opacity:0} }
  .panel-people { min-height:680px; }
}

@media (max-width:760px) {
  .hero-grid { padding-top:125px; }
  .japan-stage { height:430px;min-height:430px;border-radius:50% / 46%; }
  .stage-label { top:31px;left:34px;right:30px;font-size:7px; }
  .stage-coordinate { left:34px;right:31px;bottom:24px;font-size:6.5px; }
  .systems-field { inset:64px 19px 68px; }
  .systems-core { width:105px;height:105px;left:1%;top:24%; }
  .systems-core b { font-size:31px; }
  .systems-core span { font-size:9px; }
  .japan-service-mark { width:63%;height:39%;right:-2%;top:9%; }
  .jp-hokkaido-form { width:40px;height:31px; }
  .jp-honshu-form { width:145px;height:24px;right:8%; }
  .jp-shikoku-form { width:43px;height:13px; }
  .jp-kyushu-form { width:34px;height:43px; }
  .tokyo-hub { font-size:5px; }
  .tokyo-hub i { width:7px;height:7px; }
  .systems-flow { left:2%;right:2%;bottom:0; }
  .systems-flow li { min-height:59px;padding:13px 7px 0 0; }
  .systems-flow li:not(:last-child)::after { display:none; }
  .systems-flow span { font-size:8px; }
  .systems-flow small { font-size:5px; }
  .systems-signal { display:none; }
  .ticker span { font-size:9px; }

  .illustration-panel,
  .panel-people,
  .panel-data,
  .panel-global { min-height:520px; }
  .art-scene { min-height:340px; }
  .actor-node { width:176px;grid-template-columns:50px 1fr;padding:12px 13px;border-radius:18px; }
  .actor-avatar { width:50px;height:50px; }
  .actor-avatar i { width:19px;height:19px;left:15px;top:8px; }
  .actor-avatar b { width:40px;height:25px;left:5px; }
  .actor-client { left:4%;top:18%; }
  .actor-resistif { right:4%;bottom:9%; }
  .workflow-steps { left:9%;right:9%;top:49%;grid-template-columns:repeat(2,1fr);border-top:0;gap:8px; }
  .workflow-steps li { padding:10px 6px;border-radius:11px;background:rgba(255,255,255,.74); }
  .workflow-steps li::before,.workflow-signal { display:none; }
  .requirement-inputs { left:5%;top:29%; }
  .requirement-inputs span { width:72px;height:33px;font-size:8px; }
  .spec-board { left:31%;top:20%;width:63%;min-height:171px;padding:17px; }
  .spec-status { right:6%;top:12%; }
  .requirement-signal { display:none; }
  .art-delivery .actor-node { width:145px;grid-template-columns:42px 1fr;padding:11px; }
  .art-delivery .actor-avatar { width:42px;height:42px; }
  .art-delivery .actor-avatar i { width:16px;height:16px;left:13px;top:6px; }
  .art-delivery .actor-avatar b { width:34px;height:22px;left:4px; }
  .actor-overseas { left:3%;top:30%; }
  .actor-tokyo { right:3%;top:51%; }
  .delivery-route { left:31%;right:31%;top:49%;rotate:24deg; }
  .delivery-packet { left:37%;top:39%; }
  .delivery-note { left:5%;right:5%;bottom:8%;font-size:7px; }
}

html[data-motion="reduced"] :is(.stage-label i,.systems-signal,.workflow-signal,.requirement-signal,.delivery-packet) {
  animation:none!important;
}
html[data-motion="reduced"] :is(.systems-signal,.workflow-signal,.requirement-signal) { display:none!important; }

/* ==========================================================================
   RELEASE 21 — factual project consultation and production UI polish
   ========================================================================== */

/* Plain desktop navigation: text links, one active underline, one Contact CTA. */
@media (min-width:1101px) {
  .site-header .nav {
    gap:clamp(16px,1.55vw,30px);
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .site-header .nav a:not(.nav-cta) {
    min-height:44px;
    padding:0;
    border-radius:0;
    color:var(--ink);
    background:transparent;
    box-shadow:none;
    transform:none;
  }
  .site-header .nav a:not(.nav-cta):hover,
  .site-header .nav a[aria-current="page"]:not(.nav-cta) {
    color:#075d3d;
    background:transparent;
    box-shadow:none;
    transform:none;
  }
  .site-header .nav a:not(.nav-cta)::after {
    display:block;
    left:0;
    right:100%;
    bottom:2px;
    width:auto;
    height:2px;
    border-radius:0;
    opacity:1;
    transform:none;
    background:#16b769;
    transition:right .32s var(--ease);
  }
  .site-header .nav a:not(.nav-cta):hover::after,
  .site-header .nav a[aria-current="page"]:not(.nav-cta)::after { right:0; }
  .site-header .nav .nav-cta {
    min-height:42px;
    margin-left:2px;
    padding:0 20px;
    border-radius:999px;
  }
}

/* The ticker uses the luminous green from the company mark and 2D motion so
   glyphs stay crisp while the strip moves. */
.ticker {
  height:70px;
  color:#061f16;
  background:linear-gradient(94deg,#43d72c 0%,#72ee3a 48%,#4cdd2e 100%);
}
.ticker::before {
  background:linear-gradient(90deg,#43d72c 8%,rgba(67,215,44,.9) 40%,transparent);
}
.ticker::after {
  background:linear-gradient(270deg,#4cdd2e 8%,rgba(76,221,46,.9) 40%,transparent);
}
.ticker-track {
  animation:tickerLogoFlow 40s linear infinite;
  will-change:auto;
}
.ticker span {
  gap:12px;
  padding:0 clamp(28px,3.5vw,58px);
  color:#061f16;
  font-family:var(--font-jp);
  font-size:11px;
  font-weight:780;
  letter-spacing:.09em;
  text-shadow:none;
  font-feature-settings:"palt" 1;
}
.ticker span::before {
  width:5px;
  height:5px;
  background:#075d3d;
  box-shadow:0 0 0 5px rgba(7,93,61,.1);
}
.ticker span::after {
  width:clamp(26px,3.2vw,52px);
  background:linear-gradient(90deg,rgba(5,74,48,.48),transparent);
}
.ticker span b { color:#075d3d; }
@keyframes tickerLogoFlow { to { transform:translateX(-50%); } }

/* Project Consultation replaces unverified overseas positioning. */
.project-page-title > span { display:block; }
.project-page-title > span:first-of-type { line-height:.8; }
.project-page-title > span:last-of-type {
  margin-top:.08em;
  font-size:.46em;
  line-height:.95;
  letter-spacing:-.055em;
}
.project-collaboration-visual {
  color:#f3fff7;
  background:
    radial-gradient(circle at 72% 24%,rgba(211,255,103,.17),transparent 24%),
    linear-gradient(145deg,#0b6346 0%,#087149 52%,#064331 100%);
}
.project-collaboration-visual::before {
  content:"PROJECT\A READY";
  left:34px;
  bottom:28px;
  color:rgba(255,255,255,.085);
}
.service-experience-visual::before { content:"TECHNICAL\A EXPERIENCE"; }
.collaboration-map { position:absolute;inset:48px 38px 90px; }
.collaboration-map::before,
.collaboration-map::after {
  content:"";
  position:absolute;
  left:50%;
  top:48%;
  translate:-50% -50%;
  width:82%;
  height:52%;
  border:1px solid rgba(218,255,228,.22);
  border-radius:50%;
  rotate:-12deg;
}
.collaboration-map::after {
  width:58%;
  height:86%;
  rotate:25deg;
  border-color:rgba(211,255,103,.18);
}
.collaboration-core {
  position:absolute;
  z-index:6;
  left:50%;
  top:48%;
  translate:-50% -50%;
  width:174px;
  height:174px;
  display:grid;
  place-content:center;
  gap:8px;
  border-radius:50%;
  color:#07271e;
  text-align:center;
  background:radial-gradient(circle at 34% 28%,#e7ff9f,#b9ff56 50%,#58df31);
  box-shadow:0 25px 50px rgba(2,35,23,.3),0 0 0 18px rgba(211,255,103,.06);
}
.collaboration-core b {
  font-family:var(--font-latin);
  font-size:23px;
  line-height:1;
  letter-spacing:-.035em;
}
.collaboration-core small {
  font-family:var(--font-mono);
  font-size:6px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.collaboration-role {
  position:absolute;
  z-index:8;
  min-width:126px;
  padding:13px 16px;
  border-radius:999px;
  color:#07543b;
  background:rgba(249,255,250,.93);
  box-shadow:0 16px 34px rgba(3,45,29,.16);
  font-family:var(--font-latin);
  font-size:9px;
  font-weight:800;
  letter-spacing:.06em;
  text-align:center;
}
.collab-customer { left:1%;top:13%; }
.collab-user { right:2%;top:17%; }
.collab-development { left:3%;bottom:10%; }
.collab-operation { right:0;bottom:12%; }
.collaboration-path {
  position:absolute;
  z-index:4;
  left:13%;
  right:13%;
  top:48%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(225,255,234,.74),transparent);
  rotate:19deg;
}
.collaboration-path.path-b { rotate:-21deg; }
.collaboration-packet {
  position:absolute;
  z-index:9;
  left:10%;
  top:32%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 7px rgba(255,255,255,.09),0 0 22px #d3ff67;
  animation:collaborationPacketA 5.6s var(--ease) infinite;
}
.collaboration-packet.packet-two {
  left:78%;
  top:72%;
  animation:collaborationPacketB 5.6s var(--ease) -2.8s infinite;
}
@keyframes collaborationPacketA {
  0%,8%{translate:0 0;opacity:0}
  18%{opacity:1}
  54%{translate:150px 104px;opacity:1}
  100%{translate:320px 194px;opacity:0}
}
@keyframes collaborationPacketB {
  0%,8%{translate:0 0;opacity:0}
  18%{opacity:1}
  54%{translate:-130px -85px;opacity:1}
  100%{translate:-286px -178px;opacity:0}
}
.project-collaboration-visual .globe-label {
  z-index:12;
  top:auto;
  right:34px;
  bottom:30px;
  width:auto;
  color:rgba(239,255,245,.72);
  letter-spacing:.12em;
}

/* Stakeholder art: four real project roles around one shared delivery flow. */
.art-stakeholders {
  position:relative;
  min-height:100%;
  background:
    radial-gradient(circle at 50% 48%,rgba(211,255,103,.2),transparent 30%),
    linear-gradient(145deg,#e8f7ed,#cfeeda);
}
.art-stakeholders::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.3;
  background-image:linear-gradient(rgba(7,113,73,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(7,113,73,.1) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:radial-gradient(circle at 50% 50%,#000,transparent 78%);
}
.stakeholder-orbit {
  position:absolute;
  z-index:2;
  left:50%;
  top:51%;
  translate:-50% -50%;
  width:76%;
  height:66%;
  border:1px solid rgba(7,113,73,.26);
  border-radius:50%;
  rotate:-9deg;
}
.stakeholder-core {
  position:absolute;
  z-index:7;
  left:50%;
  top:52%;
  translate:-50% -50%;
  width:112px;
  height:112px;
  display:grid;
  place-content:center;
  gap:5px;
  border-radius:50%;
  color:#effff4;
  text-align:center;
  background:linear-gradient(145deg,#0ba564,#07543b);
  box-shadow:0 20px 40px rgba(7,80,51,.2),0 0 0 12px rgba(32,214,107,.08);
}
.stakeholder-core b { font-family:var(--font-latin);font-size:17px;letter-spacing:-.03em; }
.stakeholder-core small { font-family:var(--font-mono);font-size:5px;letter-spacing:.08em; }
.stakeholder-role {
  position:absolute;
  z-index:8;
  width:132px;
  min-height:58px;
  display:grid;
  grid-template-columns:25px 1fr;
  grid-template-rows:auto auto;
  column-gap:6px;
  align-content:center;
  padding:10px 12px;
  border-radius:18px;
  color:#073f2d;
  background:rgba(255,255,255,.94);
  box-shadow:0 13px 28px rgba(7,80,51,.12);
  font-style:normal;
}
.stakeholder-role small {
  grid-row:1 / 3;
  align-self:center;
  color:#0a8a55;
  font-family:var(--font-mono);
  font-size:7px;
}
.stakeholder-role strong { font-family:var(--font-latin);font-size:10px;line-height:1.1; }
.stakeholder-role em { margin-top:3px;color:#5c7268;font-size:7px;font-style:normal; }
.stakeholder-customer { left:5%;top:24%; }
.stakeholder-user { right:5%;top:18%; }
.stakeholder-development { left:6%;bottom:12%; }
.stakeholder-operation { right:5%;bottom:15%; }
.stakeholder-signal {
  position:absolute;
  z-index:10;
  left:17%;
  top:47%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 6px rgba(202,255,74,.12),0 0 18px #20d66b;
  animation:stakeholderSignal 5.2s var(--ease) infinite;
}
@keyframes stakeholderSignal {
  0%,8%{translate:0 0;opacity:0}
  18%{opacity:1}
  50%{translate:115px 8px;opacity:1}
  82%{translate:240px -9px;opacity:1}
  100%{translate:280px 0;opacity:0}
}

/* Existing consultation artwork now describes roles, not borders. */
.crossborder-art {
  background:linear-gradient(145deg,#d7efe0 0 52%,#edf5e9 52% 100%);
}
.zone-global { background:#07543b; }
.zone-japan { background:#21c66d; }
.zone-global::after { content:"CLIENT"; }
.zone-japan::after { content:"PROJECT"; }
.ticket-ux { font-size:7px;letter-spacing:.035em; }

/* Keep the 2017 company story below its artwork so towers never cover copy. */
.story-architecture {
  display:grid;
  grid-template-rows:minmax(360px,1fr) auto;
  min-height:540px;
}
.story-architecture .story-art {
  position:relative;
  inset:auto;
  min-height:360px;
}
.story-architecture .story-copy {
  position:relative;
  left:auto;
  right:auto;
  bottom:auto;
  padding:24px 30px 28px;
  background:rgba(255,249,235,.98);
  border-top:1px solid rgba(8,21,18,.08);
}
.story-architecture .story-copy h3 {
  margin:12px 0 8px;
  font-family:var(--font-jp);
  font-size:clamp(28px,3vw,43px);
  line-height:1.16;
  letter-spacing:-.025em;
}
.story-architecture .story-copy p { max-width:none; }

/* Compact, clearly grouped contact form with stable focus geometry. */
.contact-layout {
  width:min(1120px,100%);
  grid-template-columns:minmax(270px,.72fr) minmax(0,720px);
  gap:clamp(38px,6vw,82px);
  justify-content:space-between;
}
.contact-intro { max-width:440px; }
.contact-form {
  width:100%;
  padding:clamp(30px,3vw,42px);
  border:1px solid rgba(8,83,54,.09);
  border-radius:28px;
  background:linear-gradient(145deg,#fff 0%,#f5faf6 100%);
  box-shadow:0 24px 64px rgba(8,72,48,.08);
}
.form-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:29px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
}
.form-head .eyebrow { margin-bottom:10px; }
.form-head h2 {
  margin:0;
  font-family:var(--font-jp);
  font-size:clamp(25px,2.5vw,34px);
  line-height:1.2;
  letter-spacing:-.025em;
}
.form-head > p {
  margin:0 0 4px;
  color:#667971;
  font-size:10px;
  white-space:nowrap;
}
.form-head > p span { color:#07834f;font-weight:800; }
.form-grid { gap:19px 24px; }
.field label {
  margin-bottom:7px;
  color:#19372d;
  font-size:10px;
  letter-spacing:.08em;
}
.field input,
.field select,
.field textarea {
  width:100%;
  border:1px solid #cddbd3;
  border-radius:12px;
  padding:12px 14px;
  color:var(--ink);
  background:#fff;
  box-shadow:inset 0 1px 2px rgba(7,68,44,.025);
  outline:0;
  transition:border-color .25s,box-shadow .25s,background .25s;
}
.field input,
.field select { min-height:50px; }
.field textarea { min-height:128px;resize:vertical;line-height:1.75; }
.field input::placeholder,
.field textarea::placeholder { color:#84958e;opacity:1; }
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color:#0a9a5b;
  border-width:1px;
  background:#fbfffc;
  box-shadow:0 0 0 4px rgba(22,183,105,.11),inset 0 1px 2px rgba(7,68,44,.025);
}
.form-footer {
  margin-top:22px;
  padding-top:19px;
  border-top:1px solid var(--line);
}
.form-note { margin:0 0 17px;line-height:1.75; }
.form-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.form-status { flex:1;margin:0; }
.contact-form .btn { min-height:54px;white-space:nowrap; }

/* Service packets share one explicit box and no longer inherit map packet CSS. */
.delivery-artboard > .task-packet {
  box-sizing:border-box;
  display:grid;
  place-items:center;
  width:56px;
  height:28px;
  padding:0;
  right:auto;
  bottom:auto;
  white-space:nowrap;
}
.delivery-art.is-visible .task-packet.packet-b {
  background:#b8d0ff;
  color:#1749d2;
}
.delivery-art.is-visible .task-packet.packet-c {
  background:#fff0b8;
  color:#7c5600;
}

@media (max-width:1100px) {
  .contact-layout {
    width:min(820px,100%);
    grid-template-columns:1fr;
    gap:38px;
  }
  .contact-intro {
    position:relative;
    top:auto;
    max-width:650px;
  }
  .contact-form { max-width:none;justify-self:stretch; }
}

@media (max-width:760px) {
  .ticker { height:62px; }
  .ticker span { padding-inline:22px;font-size:9px; }
  .project-page-title > span:last-of-type { font-size:.43em; }
  .collaboration-map { inset:37px 20px 70px; }
  .collaboration-core { width:126px;height:126px; }
  .collaboration-core b { font-size:17px; }
  .collaboration-role { min-width:101px;padding:10px 11px;font-size:7px; }
  .collab-customer { left:0;top:13%; }
  .collab-user { right:0;top:17%; }
  .collab-development { left:0;bottom:9%; }
  .collab-operation { right:0;bottom:11%; }
  .project-collaboration-visual .globe-label { right:22px;bottom:20px;font-size:7px; }
  .stakeholder-role { width:111px;min-height:52px;padding:8px 9px;grid-template-columns:21px 1fr; }
  .stakeholder-role strong { font-size:8px; }
  .stakeholder-role em { font-size:6px; }
  .stakeholder-core { width:88px;height:88px; }
  .stakeholder-core b { font-size:13px; }
  .stakeholder-signal { display:none; }
  .story-architecture { grid-template-rows:310px auto;min-height:0; }
  .story-architecture .story-art { min-height:310px; }
  .story-architecture .story-copy { padding:21px 23px 24px; }
  .contact-form { padding:25px 19px;border-radius:23px; }
  .form-head { align-items:start;flex-direction:column;gap:8px;margin-bottom:23px;padding-bottom:17px; }
  .form-head > p { margin:0; }
  .form-grid { grid-template-columns:1fr;gap:17px; }
  .field.full { grid-column:auto; }
  .field input,
  .field select,
  .field textarea { font-size:16px; }
  .form-actions { align-items:stretch;flex-direction:column;gap:12px; }
  .contact-form .btn { width:100%; }
  .delivery-artboard > .task-packet { width:46px;height:24px;padding:0;font-size:6px; }
}

html[data-motion="reduced"] :is(.collaboration-packet,.stakeholder-signal) { animation:none!important; }

/* ==========================================================================
   RELEASE 22 — truthful diagrams, high-resolution map and quieter navigation
   ========================================================================== */

/* The 180px source logo is rendered at 44–64px. No raster mark is enlarged. */
.systems-core {
  width:138px;
  height:138px;
  gap:10px;
  background:linear-gradient(145deg,rgba(17,151,88,.96),rgba(4,67,46,.98));
  box-shadow:0 24px 54px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.2),0 0 0 14px rgba(68,232,139,.045);
}
.systems-core img {
  display:block;
  width:58px;
  height:58px;
  margin:0 auto;
  object-fit:contain;
  border-radius:10px;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.14));
}
.systems-core span { font-size:11px;line-height:1.55;letter-spacing:.08em; }
.japan-stage {
  border-radius:48% 52% 46% 54% / 49% 45% 55% 51%;
  background:
    radial-gradient(circle at 78% 22%,rgba(202,255,74,.13),transparent 17%),
    radial-gradient(ellipse at 42% 52%,rgba(32,214,107,.11),transparent 37%),
    linear-gradient(145deg,#061a14 0%,#092d21 56%,#04110d 100%);
  box-shadow:0 42px 92px rgba(4,34,24,.22),inset 0 0 0 1px rgba(231,255,238,.08),inset 0 -50px 90px rgba(0,0,0,.18);
}
.japan-stage:hover { border-radius:48% 52% 46% 54% / 49% 45% 55% 51%; }
.japan-stage::before {
  width:390px;
  height:390px;
  right:-32px;
  top:-74px;
  background:radial-gradient(circle,rgba(74,229,140,.105),transparent 68%);
}
.japan-stage::after {
  width:64%;
  height:34%;
  left:23%;
  bottom:30%;
  border-color:rgba(211,255,103,.14);
  rotate:-9deg;
}
.systems-field { inset:90px 42px 82px; }
.systems-grid {
  opacity:.16;
  background-size:34px 34px;
  mask-image:radial-gradient(ellipse at 58% 44%,#000 20%,transparent 76%);
}
.systems-orbit.orbit-a { width:61%;height:38%;right:2%;top:9%; }
.systems-orbit.orbit-b { width:48%;height:63%;right:9%;top:-5%; }
.japan-service-mark { width:51%;height:42%;right:3%;top:12%;filter:drop-shadow(0 18px 24px rgba(0,0,0,.18)); }
.jp-form {
  background:linear-gradient(135deg,#caff4a 0%,#55de76 48%,#09945a 100%);
  box-shadow:inset 0 1px rgba(255,255,255,.35);
  transform:translateZ(0);
}
.jp-honshu-form { height:30px; }
.tokyo-hub { right:10%;top:49%; }
.systems-flow { left:5%;right:5%;bottom:2%; }
.systems-flow li { padding-top:15px; }
.systems-flow span { font-size:10px; }

/* Company-summary lime, lower height, text-only 2D ticker. */
.ticker {
  height:54px;
  color:#061f16;
  background:var(--lime);
  border:0;
  box-shadow:inset 0 1px rgba(8,21,18,.12),inset 0 -1px rgba(8,21,18,.12);
}
.ticker::before { background:linear-gradient(90deg,var(--lime) 12%,rgba(202,255,74,.9) 42%,transparent); }
.ticker::after { background:linear-gradient(270deg,var(--lime) 12%,rgba(202,255,74,.9) 42%,transparent); }
.ticker span {
  gap:10px;
  padding:0 clamp(24px,3vw,48px);
  color:#06261b;
  font-size:10px;
  letter-spacing:.075em;
}
.ticker span::before { width:4px;height:4px;background:#087149;box-shadow:0 0 0 4px rgba(8,113,73,.1); }
.ticker span::after { width:clamp(22px,2.8vw,44px);background:linear-gradient(90deg,rgba(8,113,73,.44),transparent); }
.ticker span b { color:#087149; }

/* A 1899×828 local source is always rendered below its native dimensions. */
.inner-japan-network,
.page-privacy .inner-japan-network {
  display:block!important;
  width:min(960px,59vw);
  height:420px;
  right:clamp(8px,2vw,34px);
  top:118px;
  opacity:.66;
  filter:none;
  mask-image:linear-gradient(90deg,transparent 0,#000 13%,#000 88%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 13%,#000 88%,transparent 100%);
}
.inner-japan-network::before {
  inset:-9% -4% -8% -10%;
  background:radial-gradient(ellipse at 58% 48%,rgba(255,255,255,.42),transparent 72%);
}
.world-relief-map {
  position:absolute;
  inset:0;
  display:block;
  background:
    linear-gradient(90deg,rgba(247,248,242,.72),rgba(247,248,242,.08) 22%,rgba(247,248,242,.04) 78%,rgba(247,248,242,.56)),
    url("../img/world-embossed-3d.webp") center / contain no-repeat;
  opacity:.55;
  filter:saturate(.58) contrast(.84) brightness(1.1);
  mix-blend-mode:multiply;
  mask-image:radial-gradient(ellipse at 56% 48%,#000 26%,rgba(0,0,0,.9) 58%,transparent 86%);
  -webkit-mask-image:radial-gradient(ellipse at 56% 48%,#000 26%,rgba(0,0,0,.9) 58%,transparent 86%);
}
.map-origin {
  position:absolute;
  z-index:3;
  right:8%;
  top:13%;
  display:flex;
  align-items:center;
  gap:9px;
  color:#087149;
  font-family:var(--font-mono);
  font-size:7px;
  font-weight:800;
  letter-spacing:.16em;
}
.map-origin i { width:7px;height:7px;border-radius:50%;background:#28cc72;box-shadow:0 0 0 5px rgba(40,204,114,.09); }
.inner-japan-network .map-caption {
  right:7%;
  bottom:8%;
  color:rgba(5,93,61,.72);
  font-size:7px;
  letter-spacing:.12em;
}
.page-hero:not([data-word="404"]) .page-hero-grid,
.page-privacy .privacy-hero .page-hero-grid { position:relative;z-index:5; }
.page-hero:not([data-word="404"]) .page-hero-copy { backdrop-filter:blur(7px); }

/* Project Consultation title breathes on both lines. */
.project-page-title { letter-spacing:-.055em!important; }
.project-page-title small { margin-bottom:clamp(18px,2vw,28px);letter-spacing:.08em; }
.project-page-title > span:first-of-type { line-height:.88; }
.project-page-title > span:last-of-type {
  margin-top:.24em;
  font-size:.43em;
  line-height:1.08;
  letter-spacing:-.035em;
}

/* A factual consultation swimlane replaces the repeated role orbit. */
.project-collaboration-visual {
  min-height:640px;
  background:
    linear-gradient(rgba(226,255,235,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(226,255,235,.055) 1px,transparent 1px),
    radial-gradient(circle at 72% 19%,rgba(202,255,74,.13),transparent 24%),
    linear-gradient(145deg,#075b40,#087149 54%,#053d2d);
  background-size:34px 34px,34px 34px,auto,auto;
}
.project-collaboration-visual::before { content:"PROJECT\A CONSULTATION"; }
.consultation-board {
  position:absolute;
  inset:50px 42px 92px;
  display:grid;
  grid-template-columns:minmax(120px,.78fr) minmax(180px,1.18fr) minmax(145px,.9fr);
  grid-template-rows:1fr auto;
  align-items:center;
  gap:28px 22px;
}
.consult-party {
  min-height:126px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:24px 20px;
  border-top:1px solid rgba(239,255,245,.46);
  border-bottom:1px solid rgba(239,255,245,.16);
  color:#f0fff5;
  background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.035));
}
.consult-party small,
.consultation-result small {
  margin-bottom:10px;
  color:#caff4a;
  font-family:var(--font-mono);
  font-size:7px;
  letter-spacing:.11em;
}
.consult-party strong { font-family:var(--font-jp);font-size:14px;line-height:1.55;letter-spacing:.035em; }
.consultation-process {
  position:relative;
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.consultation-process::before {
  content:"";
  position:absolute;
  left:15px;
  top:18px;
  bottom:18px;
  width:1px;
  background:linear-gradient(#caff4a,rgba(202,255,74,.12));
}
.consultation-process li {
  position:relative;
  display:grid;
  grid-template-columns:32px 1fr;
  align-items:center;
  gap:12px;
  min-height:72px;
  color:#effff4;
  border-bottom:1px solid rgba(235,255,242,.12);
}
.consultation-process li:last-child { border-bottom:0; }
.consultation-process span {
  z-index:2;
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border-radius:50%;
  color:#062c20;
  background:#caff4a;
  font-family:var(--font-mono);
  font-size:7px;
  box-shadow:0 0 0 6px rgba(202,255,74,.07);
}
.consultation-process b { font-family:var(--font-jp);font-size:12px;letter-spacing:.04em; }
.consultation-result {
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  color:#06261b;
  background:#caff4a;
}
.consultation-result small { margin:0;color:#087149; }
.consultation-result strong { font-family:var(--font-jp);font-size:14px;letter-spacing:.05em; }

/* Responsibility matrix: deliberately unlike the consultation swimlane. */
.art-stakeholders {
  position:relative;
  background:linear-gradient(145deg,#edf8f0,#d6efde);
}
.art-stakeholders::before {
  opacity:.2;
  background-size:32px 32px;
  mask-image:linear-gradient(#000,transparent 84%);
}
.stakeholder-matrix-grid {
  position:absolute;
  z-index:4;
  left:24px;
  right:24px;
  top:67px;
  bottom:92px;
  display:grid;
  grid-template-rows:34px repeat(4,1fr);
  border-top:1px solid rgba(7,82,54,.22);
  border-bottom:1px solid rgba(7,82,54,.22);
  background:rgba(252,255,252,.62);
}
.stakeholder-matrix-head,
.stakeholder-row { display:grid;align-items:center; }
.stakeholder-matrix-head {
  grid-template-columns:1fr 1.35fr 50px;
  gap:12px;
  padding:0 12px 0 46px;
  color:#5b7168;
  border-bottom:1px solid rgba(7,82,54,.12);
  font-family:var(--font-jp);
  font-size:7px;
  font-weight:700;
  letter-spacing:.08em;
}
.stakeholder-row {
  grid-template-columns:32px 1fr 1.35fr 50px;
  gap:12px;
  padding:0 12px;
  color:#083c2b;
  border-bottom:1px solid rgba(7,82,54,.1);
}
.stakeholder-row:last-child { border-bottom:0; }
.stakeholder-row i {
  color:#07834f;
  font-family:var(--font-mono);
  font-size:7px;
  font-style:normal;
}
.stakeholder-row strong { font-family:var(--font-jp);font-size:11px;letter-spacing:.03em; }
.stakeholder-row span { color:#4f665d;font-family:var(--font-jp);font-size:8px; }
.stakeholder-row b { color:#07834f;font-family:var(--font-jp);font-size:7px;text-align:right; }
.stakeholder-output {
  position:absolute;
  z-index:5;
  left:24px;
  right:24px;
  bottom:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:52px;
  padding:10px 15px;
  color:#effff4;
  background:#07543b;
}
.stakeholder-output small { color:#bcecca;font-size:7px;letter-spacing:.08em; }
.stakeholder-output strong { font-family:var(--font-jp);font-size:11px;letter-spacing:.035em; }

/* Project brief artwork: no rough people, floating chips or country zones. */
.consultation-dossier {
  min-height:650px;
  border-radius:38px;
  background:
    linear-gradient(rgba(7,113,73,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(7,113,73,.055) 1px,transparent 1px),
    linear-gradient(145deg,#e9f7ed,#cdebd7);
  background-size:34px 34px,34px 34px,auto;
}
.dossier-scene {
  inset:0 0 90px;
  display:grid;
  grid-template-columns:1.28fr .48fr .88fr;
  align-items:center;
  gap:24px;
  padding:44px 38px;
}
.consultation-document {
  position:relative;
  z-index:4;
  min-height:410px;
  padding:30px 26px;
  color:#0a3326;
  background:#fffdf6;
  box-shadow:0 24px 50px rgba(5,72,47,.13);
  rotate:-1.5deg;
}
.consultation-document::after {
  content:"";
  position:absolute;
  right:-10px;
  top:16px;
  bottom:-12px;
  width:10px;
  background:rgba(5,93,61,.12);
  transform:skewY(35deg);
  transform-origin:left top;
}
.consultation-document header {
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-bottom:24px;
  padding-bottom:17px;
  border-bottom:2px solid #087149;
}
.consultation-document header small { color:#087149;font-family:var(--font-mono);font-size:7px;letter-spacing:.14em; }
.consultation-document header strong { font-family:var(--font-jp);font-size:18px;letter-spacing:.015em; }
.consultation-document dl { margin:0; }
.consultation-document dl div {
  display:grid;
  grid-template-columns:34px 1fr;
  gap:12px;
  align-items:center;
  min-height:59px;
  border-bottom:1px solid rgba(5,93,61,.13);
}
.consultation-document dt { color:#087149;font-family:var(--font-mono);font-size:8px; }
.consultation-document dd { margin:0;font-family:var(--font-jp);font-size:12px;font-weight:650; }
.consultation-review {
  position:relative;
  z-index:3;
  display:grid;
  gap:30px;
  margin:0;
  padding:0;
  list-style:none;
}
.consultation-review::before {
  content:"";
  position:absolute;
  left:8px;
  top:12px;
  bottom:12px;
  width:1px;
  background:#087149;
}
.consultation-review li {
  position:relative;
  padding-left:26px;
  color:#07543b;
  font-family:var(--font-jp);
  font-size:9px;
  font-weight:750;
  letter-spacing:.06em;
}
.consultation-review li::before {
  content:"";
  position:absolute;
  z-index:2;
  left:4px;
  top:4px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 4px rgba(8,113,73,.14);
}
.consultation-response {
  position:relative;
  z-index:4;
  min-height:252px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:28px 24px;
  color:#f0fff5;
  background:linear-gradient(145deg,#087149,#063f2e);
  box-shadow:0 24px 52px rgba(4,69,45,.18);
}
.consultation-response::before {
  content:"✓";
  position:absolute;
  left:24px;
  top:24px;
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:50%;
  color:#063f2e;
  background:#caff4a;
  font-size:25px;
  font-weight:900;
}
.consultation-response small { margin-bottom:10px;color:#caff4a;font-size:7px;letter-spacing:.1em; }
.consultation-response strong { font-family:var(--font-jp);font-size:17px;line-height:1.55; }
.consultation-dossier figcaption {
  color:#effff4;
  background:#061f17;
}
.consultation-dossier figcaption span { color:#a9d7b8; }
.consultation-dossier figcaption strong { font-family:var(--font-jp);font-size:clamp(23px,2.5vw,35px);line-height:1.16;letter-spacing:-.025em; }

/* Technical delivery schematic: explicit Japanese phases and deliverables. */
.blueprint-visual {
  background:linear-gradient(145deg,#061812,#08271d);
}
.delivery-blueprint {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:62px 38px 106px;
}
.blueprint-grid-plane {
  position:absolute;
  inset:0;
  opacity:.18;
  background-image:linear-gradient(rgba(198,255,218,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(198,255,218,.12) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:radial-gradient(ellipse at 50% 46%,#000,transparent 78%);
}
.blueprint-track {
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin:0 0 54px;
  padding:0;
  list-style:none;
}
.blueprint-track::before {
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:30px;
  height:2px;
  background:linear-gradient(90deg,#caff4a,#38d57a);
  box-shadow:0 0 18px rgba(202,255,74,.28);
  transform-origin:left;
}
.blueprint-track li {
  position:relative;
  z-index:2;
  min-height:142px;
  padding:0 13px;
  text-align:center;
}
.blueprint-track li > span {
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  margin:0 auto 19px;
  border:2px solid #caff4a;
  border-radius:50%;
  color:#caff4a;
  background:#071c15;
  font-family:var(--font-mono);
  font-size:10px;
  box-shadow:0 0 0 8px rgba(202,255,74,.05);
}
.blueprint-track small {
  display:block;
  margin-bottom:7px;
  color:#58de8b;
  font-family:var(--font-jp);
  font-size:8px;
  font-weight:800;
  letter-spacing:.1em;
}
.blueprint-track strong {
  display:block;
  color:#f0fff5;
  font-family:var(--font-jp);
  font-size:11px;
  line-height:1.5;
  letter-spacing:.03em;
}
.blueprint-artifacts {
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(208,255,222,.2);
  border-bottom:1px solid rgba(208,255,222,.2);
}
.blueprint-artifacts span {
  padding:14px 12px;
  color:#bbd8c5;
  border-right:1px solid rgba(208,255,222,.12);
  border-bottom:1px solid rgba(208,255,222,.12);
  font-family:var(--font-jp);
  font-size:8px;
  letter-spacing:.05em;
  text-align:center;
}
.blueprint-artifacts span:nth-child(3n) { border-right:0; }
.blueprint-artifacts span:nth-last-child(-n+3) { border-bottom:0; }
.blueprint-visual figcaption {
  right:28px;
  max-width:520px;
  color:rgba(224,248,231,.72);
  font-family:var(--font-jp);
  font-size:10px;
  line-height:1.7;
  letter-spacing:.035em;
  text-transform:none;
}

/* Readable contact headline and realistic company-summary labels. */
.contact-layout { width:min(1320px,100%);grid-template-columns:minmax(450px,530px) minmax(0,720px); }
.contact-intro { max-width:530px; }
.contact-intro h2 {
  font-size:clamp(54px,5vw,72px);
  line-height:1.14;
  letter-spacing:-.045em;
  word-break:keep-all;
}
.contact-headline-keep {
  display:block;
  font-size:.64em;
  line-height:1.35;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.number-word strong {
  font-size:clamp(46px,5.2vw,76px);
  letter-spacing:-.055em;
}

/* Mobile menu: no item numbers and no footer brand bleeding above the overlay. */
.footer-brand { z-index:auto; }
@media (max-width:1100px) {
  .nav { z-index:200; }
  .site-header .brand { z-index:210; }
  .menu-toggle { z-index:220; }
  .nav a::before { display:none!important;content:none!important; }
  .nav a,
  .nav .nav-cta,
  .nav a:hover,
  .nav a[aria-current="page"],
  .nav .nav-cta:hover,
  .nav .nav-cta[aria-current="page"] { padding-left:0!important; }
  body.menu-open main,
  body.menu-open site-footer { visibility:hidden; }
  .project-collaboration-visual { min-height:600px; }
  .contact-layout { width:min(820px,100%);grid-template-columns:1fr; }
  .contact-intro { max-width:640px; }
  .inner-japan-network,
  .page-privacy .inner-japan-network {
    width:min(820px,76vw);
    height:360px;
    right:-7%;
    top:156px;
    opacity:.44;
  }
}

@media (max-width:760px) {
  .japan-stage { height:430px;min-height:430px;border-radius:48% / 44%; }
  .systems-field { inset:62px 19px 69px; }
  .systems-core { left:4%;top:27%;width:105px;height:105px;gap:6px; }
  .systems-core img { width:42px;height:42px;border-radius:7px; }
  .systems-core span { font-size:8px; }
  .japan-service-mark { width:55%;height:39%;right:1%;top:16%;scale:.82;transform-origin:right top; }
  .systems-flow { left:5%;right:5%;bottom:0; }
  .systems-flow li { min-height:65px;padding:13px 7px 0 0; }
  .systems-flow span { font-size:8px; }
  .systems-flow small { font-size:6px; }
  .systems-flow li:not(:last-child)::after { width:21px;right:5px; }
  .ticker { height:48px; }
  .ticker span { padding-inline:20px;font-size:8px;letter-spacing:.07em; }
  .ticker span::after { width:22px; }
  .inner-japan-network,
  .page-privacy .inner-japan-network {
    display:block!important;
    width:560px;
    height:244px;
    right:-36%;
    top:238px;
    opacity:.3;
    scale:1;
    mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 92%);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 92%);
  }
  .map-origin { right:9%;top:11%;font-size:5.5px; }
  .inner-japan-network .map-caption { display:none; }
  .page-privacy .privacy-hero { min-height:640px; }
  .page-privacy .privacy-hero .page-hero-grid { min-height:470px; }
  .project-page-title { font-size:clamp(62px,18vw,88px)!important;line-height:.94!important; }
  .project-page-title small { margin-bottom:16px;font-size:11px!important; }
  .project-page-title > span:first-of-type { line-height:.92; }
  .project-page-title > span:last-of-type { margin-top:.28em;font-size:.4em;line-height:1.16;letter-spacing:-.025em; }
  .project-collaboration-visual { min-height:610px; }
  .consultation-board {
    inset:34px 24px 78px;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto;
    align-content:center;
    gap:16px;
  }
  .consult-party { min-height:82px;padding:16px 17px; }
  .consultation-process { grid-template-columns:repeat(3,1fr);gap:7px; }
  .consultation-process::before { left:12%;right:12%;top:15px;bottom:auto;width:auto;height:1px; }
  .consultation-process li { grid-template-columns:1fr;gap:7px;min-height:82px;border:0;text-align:center; }
  .consultation-process span { width:30px;height:30px;margin:auto; }
  .consultation-process b { font-size:8px; }
  .consultation-result { grid-column:1;padding:14px 16px; }
  .consultation-result strong { font-size:11px; }
  .stakeholder-matrix-grid { left:16px;right:16px;top:62px;bottom:84px; }
  .stakeholder-matrix-head { grid-template-columns:.9fr 1.25fr 38px;padding-left:34px;gap:7px; }
  .stakeholder-row { grid-template-columns:24px .9fr 1.25fr 38px;gap:7px;padding:0 7px; }
  .stakeholder-row strong { font-size:8px; }
  .stakeholder-row span,.stakeholder-row b { font-size:6px; }
  .stakeholder-output { left:16px;right:16px;bottom:15px;min-height:50px;padding:9px 11px; }
  .stakeholder-output strong { font-size:9px; }
  .consultation-dossier { min-height:660px;border-radius:28px; }
  .dossier-scene {
    inset:0 0 92px;
    grid-template-columns:1fr .52fr;
    grid-template-rows:1fr auto;
    gap:17px 14px;
    padding:25px 20px;
  }
  .consultation-document { grid-column:1 / -1;min-height:350px;padding:23px 20px; }
  .consultation-document header { margin-bottom:15px;padding-bottom:13px; }
  .consultation-document header strong { font-size:16px; }
  .consultation-document dl div { min-height:48px; }
  .consultation-review { gap:22px; }
  .consultation-response { min-height:155px;padding:18px 15px; }
  .consultation-response::before { left:15px;top:14px;width:38px;height:38px;font-size:19px; }
  .consultation-response strong { font-size:12px; }
  .consultation-dossier figcaption { left:19px;right:19px; }
  .consultation-dossier figcaption span { display:block;font-size:6px; }
  .consultation-dossier figcaption strong { font-size:18px;text-align:right; }
  .blueprint-visual { min-height:590px; }
  .delivery-blueprint { padding:42px 20px 104px; }
  .blueprint-track { grid-template-columns:repeat(2,1fr);gap:24px 8px;margin-bottom:34px; }
  .blueprint-track::before { display:none; }
  .blueprint-track li { min-height:115px;padding:0 5px; }
  .blueprint-track li > span { width:47px;height:47px;margin-bottom:12px; }
  .blueprint-track strong { font-size:9px; }
  .blueprint-artifacts span { padding:11px 5px;font-size:7px; }
  .blueprint-visual figcaption { left:20px;right:20px;bottom:20px;font-size:8px; }
  .contact-intro h2 { font-size:clamp(45px,12.5vw,58px);line-height:1.17; }
  .contact-headline-keep { font-size:.56em;line-height:1.5;letter-spacing:-.02em; }
}

html[data-motion="reduced"] :is(.consultation-board,.stakeholder-matrix,.consultation-dossier,.delivery-blueprint) {
  animation:none!important;
  transform:none!important;
}

/* RELEASE 31 — readable Privacy line and balanced Contact introduction. */
.privacy-overview .section-head h2 {
  font-size:clamp(38px,4.3vw,64px);
  line-height:1.08;
  letter-spacing:-.06em;
  word-break:keep-all;
  overflow-wrap:normal;
}
.privacy-title-keep {
  display:inline-block;
  max-width:100%;
  white-space:nowrap;
}
.page-contact .contact-layout {
  width:min(1320px,calc(100% - 80px));
  margin-inline:auto;
}
.page-contact .contact-intro h2 {
  font-size:clamp(50px,4.45vw,66px);
  line-height:1.12;
  letter-spacing:-.055em;
}
.contact-title-line {
  display:block;
  white-space:nowrap;
}
.page-contact .contact-intro > p:not(.eyebrow) {
  max-width:31em;
  line-height:2;
}

@media (max-width:1100px) {
  .page-contact .contact-layout {
    width:min(820px,calc(100% - 48px));
  }
}

@media (max-width:760px) {
  .privacy-overview .section-head h2 {
    font-size:clamp(32px,10vw,41px);
    line-height:1.12;
    letter-spacing:-.065em;
  }
  .page-contact .contact-layout {
    width:calc(100% - 32px);
  }
  .page-contact .contact-intro h2 {
    font-size:clamp(40px,11.4vw,49px);
    line-height:1.14;
  }
  .page-contact .contact-intro > p:not(.eyebrow) {
    line-height:1.9;
  }
}

/* Service delivery uses legible professional modules instead of rough figures. */
.customer-dock { justify-content:flex-end; }
.request-document {
  position:absolute;
  left:32px;
  top:29px;
  width:78px;
  height:92px;
  padding:20px 15px;
  border-radius:10px;
  background:#f8fbff;
  box-shadow:0 14px 28px rgba(0,0,0,.18);
  rotate:-4deg;
}
.request-document::before {
  content:"REQUEST";
  display:block;
  margin-bottom:14px;
  color:#1749d2;
  font-family:var(--font-mono);
  font-size:6px;
  font-weight:900;
  letter-spacing:.1em;
}
.request-document i {
  display:block;
  height:4px;
  margin:8px 0;
  border-radius:4px;
  background:#8eabf6;
}
.request-document i:nth-child(2) { width:78%; }
.request-document i:nth-child(3) { width:55%; }
.core-modules {
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
}
.core-modules i {
  position:absolute;
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  border:1px solid rgba(255,255,255,.36);
  border-radius:50%;
  color:#effff4;
  background:rgba(3,68,44,.72);
  font-family:var(--font-jp);
  font-size:7px;
  font-style:normal;
  font-weight:750;
  box-shadow:0 10px 22px rgba(0,0,0,.13);
}
.core-modules i:nth-child(1) { left:21px;top:37px; }
.core-modules i:nth-child(2) { right:21px;top:37px; }
.core-modules i:nth-child(3) { left:50%;bottom:17px;translate:-50% 0; }
.team-core > strong { z-index:5;margin-top:-3px; }
.team-core > small { z-index:5; }

@media (max-width:760px) {
  .request-document { left:22px;top:25px;width:66px;height:80px;padding:17px 12px; }
  .core-modules i { width:36px;height:36px;font-size:6px; }
  .core-modules i:nth-child(1) { left:15px;top:31px; }
  .core-modules i:nth-child(2) { right:15px;top:31px; }
  .core-modules i:nth-child(3) { bottom:12px; }
}

/* Direction-aware header: clean edge, hide down, reveal up. */
.site-header,
.site-header.is-compact {
  border-bottom:0;
  box-shadow:none;
  transition:height .36s var(--ease),transform .42s var(--ease),background .36s;
  backface-visibility:hidden;
  will-change:transform;
}
.site-header.is-hidden { transform:translate3d(0,calc(-100% - 2px),0)!important; }
body.menu-open .site-header { transform:none!important; }

/* ==========================================================================
   RELEASE 23 — embossed cartography, clear editorial diagrams and factual art
   ========================================================================== */

/* Desktop navigation follows the clean, right-aligned reference geometry. */
@media (min-width:1101px) {
  .site-header,
  .site-header.is-compact { height:92px; }
  .header-wrap {
    width:min(1540px,calc(100% - 96px));
    justify-content:flex-start;
    gap:36px;
  }
  .site-header .nav {
    position:static;
    inset:auto;
    translate:none;
    margin-left:auto;
    gap:clamp(24px,2.2vw,38px);
  }
  .site-header .nav a:not(.nav-cta) {
    padding:10px 0;
    font-size:11px;
    letter-spacing:.09em;
  }
  .site-header .nav .nav-cta { padding:15px 23px; }
}

/* Logo-lime ticker: compact, text-led, and deliberately number-free. */
.ticker {
  height:44px;
  color:#06261b;
  background:var(--lime);
  box-shadow:none;
}
.ticker-track { height:100%; }
.ticker span {
  gap:12px;
  padding:0 clamp(22px,2.7vw,42px);
  color:#06261b;
  font-family:var(--font-jp);
  font-size:10px;
  font-weight:880;
  letter-spacing:.065em;
}
.ticker span::before {
  width:5px;
  height:5px;
  background:#079158;
  box-shadow:0 0 0 4px rgba(7,145,88,.12);
}
.ticker span::after {
  width:clamp(26px,3vw,48px);
  height:1px;
  background:linear-gradient(90deg,rgba(7,113,73,.48),transparent);
}

/* Public-domain Natural Earth relief, generated locally at 2400 × 1100. */
.inner-japan-network,
.page-privacy .inner-japan-network {
  width:min(1100px,64vw);
  height:500px;
  right:clamp(0px,1.8vw,30px);
  top:106px;
  opacity:.82;
  filter:none;
  mask-image:linear-gradient(90deg,transparent 0,#000 10%,#000 94%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10%,#000 94%,transparent 100%);
}
.inner-japan-network::before {
  inset:-10% -4% -12% -12%;
  background:
    radial-gradient(ellipse at 64% 48%,rgba(118,230,160,.2),transparent 52%),
    radial-gradient(ellipse at 58% 50%,rgba(255,255,255,.82),transparent 75%);
}
.world-relief-map {
  inset:0;
  background:url("../img/world-embossed-3d.webp") center / contain no-repeat;
  opacity:.96;
  filter:drop-shadow(0 22px 28px rgba(4,82,52,.12));
  mix-blend-mode:normal;
  mask-image:linear-gradient(90deg,transparent 0,#000 11%,#000 96%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 11%,#000 96%);
}
.map-origin {
  right:9%;
  top:17%;
  color:#087149;
  font-size:7px;
}
.inner-japan-network .map-caption {
  right:8%;
  bottom:8%;
  color:rgba(5,93,61,.64);
}
.page-hero:not([data-word="404"]) .page-hero-copy {
  background:rgba(247,248,242,.88);
  backdrop-filter:blur(10px);
}

/* Home hero: layered Japan flow, not a globe and not a global-network claim. */
.hero-flow-art {
  position:relative;
  min-height:630px;
  height:min(72vh,720px);
  overflow:hidden;
  border:1px solid rgba(134,239,173,.2);
  border-radius:42% 58% 46% 54% / 52% 41% 59% 48%;
  background:
    radial-gradient(circle at 76% 34%,rgba(202,255,74,.17),transparent 15%),
    linear-gradient(145deg,#073c2d 0%,#05291f 42%,#031a14 100%);
  box-shadow:0 40px 88px rgba(3,54,36,.19),inset 0 0 0 1px rgba(255,255,255,.05);
  transform:translate3d(var(--stage-x,0px),calc(var(--stage-scroll,0px) + var(--stage-hover-y,0px)),0) rotate(calc(.8deg + var(--stage-rotate,0deg)));
}
.hero-flow-art:hover { border-radius:42% 58% 46% 54% / 52% 41% 59% 48%; }
.hero-flow-art::before,
.hero-flow-art::after {
  content:"";
  position:absolute;
  pointer-events:none;
  border:0;
  border-radius:50%;
}
.hero-flow-art::before {
  z-index:1;
  width:66%;
  height:54%;
  right:-8%;
  top:-14%;
  background:radial-gradient(circle,rgba(110,237,154,.25),rgba(16,144,88,.06) 46%,transparent 69%);
  box-shadow:none;
}
.hero-flow-art::after {
  z-index:2;
  width:86%;
  height:42%;
  left:5%;
  bottom:12%;
  border:1px solid rgba(199,255,79,.18);
  background:transparent;
  rotate:-8deg;
}
.hero-flow-field {
  position:absolute;
  z-index:3;
  inset:54px 30px 70px;
  overflow:hidden;
  border-radius:39% 61% 48% 52% / 54% 44% 56% 46%;
  background:
    radial-gradient(circle at 73% 37%,rgba(202,255,74,.13),transparent 19%),
    linear-gradient(145deg,rgba(5,70,48,.6),rgba(3,28,21,.92));
}
.flow-surface,
.flow-rim,
.flow-contour,
.japan-dot-map,
.tokyo-beacon,
.flow-star { position:absolute; }
.flow-surface { display:block;will-change:transform; }
.flow-surface-a {
  z-index:1;
  width:92%;
  height:58%;
  right:-22%;
  top:-19%;
  border-radius:38% 62% 52% 48% / 57% 39% 61% 43%;
  background:linear-gradient(138deg,rgba(205,255,226,.15),rgba(55,204,113,.74) 42%,rgba(3,92,58,.25) 78%);
  rotate:12deg;
}
.flow-surface-b {
  z-index:2;
  width:105%;
  height:42%;
  left:-27%;
  top:34%;
  border-radius:56% 44% 62% 38% / 49% 56% 44% 51%;
  background:linear-gradient(105deg,rgba(227,255,235,.08),rgba(139,243,170,.42) 34%,rgba(202,255,74,.92) 58%,rgba(21,189,98,.68) 77%,rgba(2,69,45,.12));
  box-shadow:0 0 0 1px rgba(239,255,242,.09);
  rotate:-14deg;
}
.flow-surface-c {
  z-index:3;
  width:94%;
  height:54%;
  right:-29%;
  bottom:-22%;
  border-radius:51% 49% 38% 62% / 47% 57% 43% 53%;
  background:linear-gradient(148deg,rgba(9,113,72,.78),rgba(2,37,27,.94) 58%);
  rotate:-9deg;
}
.flow-rim {
  z-index:5;
  left:1%;
  right:-6%;
  top:51%;
  height:2px;
  border-radius:50%;
  background:linear-gradient(90deg,transparent,#d4ff62 34%,#69eb8d 67%,transparent);
  rotate:-12deg;
  box-shadow:0 0 18px rgba(202,255,74,.28);
}
.flow-contour {
  z-index:4;
  border:1px solid rgba(210,255,225,.18);
  border-radius:50%;
}
.contour-a { width:68%;height:39%;right:2%;top:18%;rotate:7deg; }
.contour-b { width:52%;height:62%;right:11%;top:5%;rotate:-15deg; }
.contour-c { width:71%;height:31%;left:4%;bottom:18%;rotate:-11deg; }
.japan-dot-map {
  z-index:7;
  right:5%;
  top:2%;
  width:44%;
  height:78%;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 0 12px rgba(202,255,74,.34));
  transform:rotate(-5deg);
}
.tokyo-beacon {
  z-index:10;
  right:12%;
  top:52%;
  display:flex;
  align-items:center;
  gap:7px;
  color:#f4ffe8;
  font-family:var(--font-mono);
  font-size:7px;
  font-weight:850;
  letter-spacing:.16em;
}
.tokyo-beacon i {
  width:8px;
  height:8px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 5px rgba(202,255,74,.19),0 0 22px #caff4a;
}
.flow-star {
  z-index:8;
  color:#caff4a;
  font-size:18px;
  font-weight:300;
}
.star-a { left:14%;top:26%; }
.star-b { left:39%;bottom:25%;font-size:12px; }
.star-c { right:4%;bottom:19%;font-size:11px; }
.hero-process-summary {
  position:absolute;
  z-index:11;
  left:6%;
  right:6%;
  bottom:4%;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:0;
  padding:14px 0 0;
  color:#effff4;
  border-top:1px solid rgba(217,255,229,.22);
  list-style:none;
}
.hero-process-summary li { display:grid;gap:4px; }
.hero-process-summary small {
  color:#caff4a;
  font-family:var(--font-mono);
  font-size:6px;
  letter-spacing:.14em;
}
.hero-process-summary strong {
  font-family:var(--font-jp);
  font-size:10px;
  font-weight:750;
  letter-spacing:.05em;
}
.hero-flow-art .stage-label {
  z-index:20;
  left:34px;
  top:26px;
  color:#e7ffd2;
  font-size:8px;
  letter-spacing:.13em;
}
.hero-flow-art .stage-coordinate {
  z-index:20;
  left:34px;
  right:auto;
  bottom:24px;
  color:rgba(225,255,235,.64);
  font-size:6px;
  line-height:1.65;
  letter-spacing:.08em;
}

/* Four perspectives converge into one shared, maintainable specification. */
.shared-spec-art {
  position:relative;
  min-height:390px;
  background:
    radial-gradient(circle at 58% 50%,rgba(202,255,74,.21),transparent 20%),
    linear-gradient(145deg,#e6f6eb,#ccebd7);
}
.shared-spec-art::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.28;
  background-image:linear-gradient(rgba(7,113,73,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(7,113,73,.08) 1px,transparent 1px);
  background-size:30px 30px;
  mask-image:radial-gradient(ellipse at 53% 50%,#000,transparent 84%);
}
.shared-spec-art .scene-caption { z-index:9; }
.spec-source-list {
  position:absolute;
  z-index:7;
  inset:66px auto 28px 22px;
  width:36%;
  display:grid;
  grid-template-rows:repeat(4,1fr);
  gap:9px;
  margin:0;
  padding:0;
  list-style:none;
}
.spec-source-list li {
  position:relative;
  display:grid;
  grid-template-columns:24px 1fr;
  grid-template-rows:auto auto;
  align-content:center;
  min-height:56px;
  padding:9px 13px;
  color:#073f2c;
  border-radius:17px;
  background:rgba(251,255,251,.85);
  box-shadow:0 10px 24px rgba(6,74,49,.06);
}
.spec-source-list i {
  grid-row:1 / 3;
  align-self:center;
  color:#079158;
  font-family:var(--font-mono);
  font-size:7px;
  font-style:normal;
}
.spec-source-list strong { font-family:var(--font-jp);font-size:10px; }
.spec-source-list small { color:#60756c;font-size:7px; }
.spec-ribbon {
  position:absolute;
  z-index:3;
  left:34%;
  width:31%;
  height:18%;
  border-radius:999px 26% 26% 999px;
  transform-origin:left center;
  opacity:.73;
}
.ribbon-client { top:21%;background:linear-gradient(90deg,#8de3b2,rgba(141,227,178,.06));rotate:11deg; }
.ribbon-user { top:37%;background:linear-gradient(90deg,#caff4a,rgba(202,255,74,.04));rotate:4deg; }
.ribbon-development { top:53%;background:linear-gradient(90deg,#35cf7a,rgba(53,207,122,.05));rotate:-5deg; }
.ribbon-operation { top:69%;background:linear-gradient(90deg,#0b8e58,rgba(11,142,88,.04));rotate:-12deg; }
.spec-artifact {
  position:absolute;
  z-index:8;
  left:53%;
  top:50%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:170px;
  aspect-ratio:1;
  padding:28px;
  translate:-50% -50%;
  color:#effff4;
  border-radius:46% 54% 51% 49% / 52% 44% 56% 48%;
  background:linear-gradient(145deg,#079158,#05583e);
  box-shadow:0 20px 48px rgba(4,86,55,.21),0 0 0 12px rgba(7,145,88,.08);
}
.spec-artifact small { color:#caff4a;font-size:7px;letter-spacing:.1em; }
.spec-artifact strong { margin:10px 0;font-family:var(--font-jp);font-size:17px;line-height:1.35; }
.spec-artifact span { color:#bfe8ce;font-size:7px; }
.spec-continuity {
  position:absolute;
  z-index:7;
  right:22px;
  top:50%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:29%;
  min-height:124px;
  padding:24px 20px 24px 42px;
  translate:0 -50%;
  color:#063d2b;
  border-radius:999px 24px 24px 999px;
  background:rgba(248,255,249,.82);
}
.spec-continuity small { color:#078b54;font-size:7px;letter-spacing:.1em; }
.spec-continuity strong { margin-top:7px;font-family:var(--font-jp);font-size:12px;line-height:1.45; }
.continuity-pulse {
  position:absolute;
  left:17px;
  top:50%;
  width:12px;
  height:12px;
  translate:0 -50%;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 9px rgba(202,255,74,.18),0 0 24px rgba(7,145,88,.22);
}

/* Consultation synthesis: source facts, technical review, then a bounded answer. */
.consultation-synthesis {
  min-height:610px;
  border-radius:38px;
  background:
    radial-gradient(circle at 50% 46%,rgba(202,255,74,.2),transparent 22%),
    linear-gradient(145deg,#e7f5eb,#c8e8d4);
  transform:none;
}
.consultation-synthesis:hover { translate:0 -5px; }
.consultation-synthesis-art {
  position:absolute;
  inset:0 0 94px;
  overflow:hidden;
}
.consultation-synthesis-art::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.3;
  background-image:linear-gradient(rgba(7,113,73,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(7,113,73,.07) 1px,transparent 1px);
  background-size:33px 33px;
  mask-image:radial-gradient(ellipse,#000,transparent 82%);
}
.synthesis-input,
.synthesis-core,
.synthesis-output,
.synthesis-checkpoints { position:absolute;z-index:5; }
.synthesis-input {
  left:6%;
  top:50%;
  width:29%;
  translate:0 -50%;
  color:#073c2b;
}
.synthesis-input small {
  display:block;
  margin-bottom:14px;
  color:#078b54;
  font-size:7px;
  font-weight:800;
  letter-spacing:.11em;
}
.synthesis-input ul { display:grid;gap:12px;margin:0;padding:0;list-style:none; }
.synthesis-input li {
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-jp);
  font-size:11px;
  font-weight:690;
}
.synthesis-input li::before { content:"";width:18px;height:1px;background:#079158; }
.synthesis-path {
  position:absolute;
  z-index:2;
  left:27%;
  right:24%;
  height:34%;
  border:1px solid rgba(7,113,73,.26);
  border-radius:50%;
}
.path-upper { top:24%;rotate:-7deg; }
.path-lower { bottom:20%;rotate:8deg; }
.synthesis-core {
  left:54%;
  top:50%;
  width:200px;
  aspect-ratio:1;
  translate:-50% -50%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  color:#effff4;
  text-align:center;
  border-radius:50%;
  background:linear-gradient(145deg,#087149,#04412e);
  box-shadow:0 22px 52px rgba(5,88,56,.2),0 0 0 14px rgba(7,145,88,.08);
}
.synthesis-core small { color:#caff4a;font-size:7px;letter-spacing:.1em; }
.synthesis-core strong { margin-top:10px;font-family:var(--font-jp);font-size:15px;line-height:1.45; }
.core-layer {
  position:absolute;
  inset:12%;
  border:1px solid rgba(222,255,232,.15);
  border-radius:50%;
}
.core-layer.layer-two { inset:22%; }
.core-layer.layer-three { inset:32%; }
.synthesis-checkpoints {
  left:37%;
  right:30%;
  bottom:10%;
  display:flex;
  justify-content:space-between;
  margin:0;
  padding:0;
  color:#07543b;
  list-style:none;
}
.synthesis-checkpoints li { font-size:7px;font-weight:750;letter-spacing:.07em; }
.synthesis-checkpoints li::before {
  content:"";
  display:block;
  width:7px;
  height:7px;
  margin:0 auto 7px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 5px rgba(7,145,88,.12);
}
.synthesis-output {
  right:5%;
  top:50%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:24%;
  min-height:190px;
  padding:28px 22px;
  translate:0 -50%;
  color:#effff4;
  border-radius:46% 54% 51% 49% / 55% 44% 56% 45%;
  background:linear-gradient(145deg,#0a9860,#056040);
  box-shadow:0 20px 44px rgba(3,83,52,.16);
}
.synthesis-output::before {
  content:"✓";
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  margin-bottom:18px;
  border-radius:50%;
  color:#063c2b;
  background:#caff4a;
  font-size:19px;
  font-weight:900;
}
.synthesis-output small { color:#ccf2d8;font-size:7px;letter-spacing:.1em; }
.synthesis-output strong { margin-top:8px;font-family:var(--font-jp);font-size:14px;line-height:1.45; }
.consultation-synthesis figcaption {
  color:#effff4;
  background:#06251b;
}
.consultation-synthesis figcaption span { color:#b8dec5; }
.consultation-synthesis figcaption strong { font-family:var(--font-jp);font-size:clamp(22px,2.5vw,34px);line-height:1.17; }

@keyframes r23FlowDrift {
  0%,100% { transform:translate3d(0,0,0); }
  50% { transform:translate3d(12px,-8px,0); }
}
@keyframes r23JapanPulse {
  0%,100% { filter:drop-shadow(0 0 9px rgba(202,255,74,.28));opacity:.9; }
  50% { filter:drop-shadow(0 0 18px rgba(202,255,74,.52));opacity:1; }
}
.japan-stage.is-visible .flow-surface-a { animation:r23FlowDrift 10s ease-in-out infinite; }
.japan-stage.is-visible .flow-surface-b { animation:r23FlowDrift 12s ease-in-out -3s infinite reverse; }
.japan-stage.is-visible .japan-dot-map { animation:r23JapanPulse 4.8s ease-in-out infinite; }
.illustration-panel.is-visible .continuity-pulse,
.consultation-synthesis.is-visible .synthesis-output::before { animation:signalPulse 2.8s ease-in-out infinite; }

/* Service delivery: proportional people frame a precise five-step flow. */
.delivery-art {
  background:
    radial-gradient(circle at 54% 34%,rgba(35,206,112,.2),transparent 28%),
    linear-gradient(145deg,#062b20,#041a14);
}
.delivery-artboard {
  inset:0 0 90px;
  background:linear-gradient(155deg,rgba(255,255,255,.025),transparent 42%);
}
.delivery-workspace-surface {
  position:absolute;
  inset:22px;
  border-radius:34px;
  background:
    linear-gradient(rgba(214,255,227,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(214,255,227,.045) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:radial-gradient(ellipse at 50% 50%,#000,transparent 82%);
}
.delivery-visual-kicker {
  position:absolute;
  z-index:8;
  left:34px;
  top:28px;
  margin:0;
  color:#caff4a;
  font-family:var(--font-jp);
  font-size:9px;
  font-weight:760;
  letter-spacing:.08em;
}
.delivery-person {
  position:absolute;
  z-index:9;
  width:110px;
  height:282px;
  border-radius:0;
  background:none;
  animation:none;
}
.delivery-person::before { display:none;content:none; }
.delivery-person span { position:absolute;display:block; }
.delivery-person .person-head {
  z-index:5;
  left:35px;
  top:0;
  width:43px;
  height:48px;
  border-radius:48% 52% 47% 53% / 44% 44% 56% 56%;
  background:linear-gradient(145deg,#d98a55,#b85e33);
  box-shadow:inset -8px 6px rgba(105,50,28,.12);
}
.delivery-person .person-neck {
  z-index:3;
  left:48px;
  top:42px;
  width:19px;
  height:23px;
  border-radius:8px;
  background:#c87040;
}
.delivery-person .person-torso {
  z-index:4;
  left:21px;
  top:58px;
  width:72px;
  height:112px;
  border-radius:28px 28px 17px 17px;
  background:linear-gradient(145deg,#e9f7ed,#a8d7b8);
}
.delivery-person .person-arm {
  z-index:3;
  top:72px;
  width:23px;
  height:104px;
  border-radius:16px;
  transform-origin:50% 10%;
}
.delivery-person .person-arm-front {
  left:19px;
  background:linear-gradient(#dcefe2 0 67%,#c87040 68%);
  rotate:21deg;
}
.delivery-person .person-arm-back {
  right:16px;
  background:linear-gradient(#b9ddc5 0 67%,#bd6338 68%);
  rotate:-25deg;
}
.delivery-person .person-leg {
  z-index:2;
  top:159px;
  width:27px;
  height:111px;
  border-radius:15px;
  transform-origin:50% 8%;
}
.delivery-person .person-leg-front {
  left:28px;
  background:linear-gradient(#123c31 0 83%,#d8eee0 84%);
  rotate:5deg;
}
.delivery-person .person-leg-back {
  right:24px;
  background:linear-gradient(#0a2c23 0 83%,#cae5d3 84%);
  rotate:-5deg;
}
.delivery-person .person-shadow {
  left:4px;
  right:4px;
  bottom:1px;
  height:15px;
  border-radius:50%;
  background:rgba(0,0,0,.2);
  filter:blur(5px);
}
.delivery-person .person-role {
  left:50%;
  top:176px;
  width:max-content;
  padding:7px 11px;
  translate:-50% 0;
  color:#063e2d;
  border-radius:999px;
  background:#f4fff6;
  font-family:var(--font-jp);
  font-size:7px;
  font-weight:750;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
}
.delivery-person-client { left:4.5%;top:96px; }
.delivery-person-engineer { right:4.5%;top:92px; }
.delivery-person-engineer .person-torso {
  background:linear-gradient(145deg,#1bc873,#087149);
}
.delivery-person-engineer .person-arm-front {
  background:linear-gradient(#15b86a 0 67%,#c87040 68%);
  rotate:28deg;
}
.delivery-person-engineer .person-arm-back {
  background:linear-gradient(#087149 0 67%,#b85f34 68%);
  rotate:-18deg;
}
.delivery-person-engineer .person-leg-front { background:linear-gradient(#eaf8ed 0 83%,#caff4a 84%); }
.delivery-person-engineer .person-leg-back { background:linear-gradient(#cce9d4 0 83%,#b9ef45 84%); }
.delivery-request-sheet {
  position:absolute;
  z-index:12;
  left:14%;
  top:80px;
  display:flex;
  flex-direction:column;
  width:112px;
  min-height:142px;
  padding:25px 18px 18px;
  color:#073f2d;
  border-radius:9px;
  background:#fff;
  box-shadow:0 20px 42px rgba(0,0,0,.18);
  rotate:-4deg;
}
.delivery-request-sheet::before {
  content:"REQUEST";
  margin-bottom:13px;
  color:#087149;
  font-family:var(--font-mono);
  font-size:6px;
  font-weight:850;
  letter-spacing:.12em;
}
.delivery-request-sheet i { height:3px;margin:5px 0;border-radius:3px;background:#9ac9aa; }
.delivery-request-sheet i:nth-child(2) { width:75%; }
.delivery-request-sheet i:nth-child(3) { width:54%; }
.delivery-request-sheet strong { margin-top:auto;font-family:var(--font-jp);font-size:10px; }
.delivery-process-flow {
  position:absolute;
  z-index:8;
  left:15%;
  right:15%;
  bottom:72px;
  min-height:180px;
}
.delivery-flow-line {
  position:absolute;
  left:4%;
  right:4%;
  top:52px;
  height:2px;
  background:linear-gradient(90deg,#80dda2,#caff4a 45%,#31d57c);
  box-shadow:0 0 16px rgba(202,255,74,.18);
}
.delivery-process-stages {
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}
.delivery-stage {
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:0;
  color:#effff4;
  text-align:center;
}
.delivery-stage span {
  z-index:3;
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  margin:31px 0 16px;
  color:#063c2a;
  border:3px solid #caff4a;
  border-radius:50%;
  background:#f3fff4;
  font-family:var(--font-mono);
  font-size:7px;
  font-weight:900;
  box-shadow:0 0 0 7px rgba(202,255,74,.08);
}
.delivery-stage strong { font-family:var(--font-jp);font-size:10px;line-height:1.35; }
.delivery-stage small { margin-top:5px;color:#a9d4b8;font-size:6px;line-height:1.4; }
.delivery-status-panel {
  position:absolute;
  z-index:11;
  right:14%;
  top:72px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:142px;
  min-height:154px;
  padding:24px 20px;
  color:#063526;
  border-radius:44% 56% 46% 54% / 51% 43% 57% 49%;
  background:linear-gradient(145deg,#caff4a,#6ee889);
  box-shadow:0 22px 45px rgba(0,0,0,.17);
}
.delivery-status-panel .status-signal {
  width:8px;
  height:8px;
  margin-bottom:13px;
  border-radius:50%;
  background:#078c55;
  box-shadow:0 0 0 6px rgba(7,140,85,.12);
}
.delivery-status-panel small { font-size:7px;line-height:1.5; }
.delivery-status-panel strong { margin-top:7px;font-family:var(--font-jp);font-size:14px; }
.delivery-status-panel > i {
  position:absolute;
  right:17px;
  top:14px;
  color:#07543b;
  font-size:21px;
  font-style:normal;
  font-weight:900;
}
.delivery-art.is-visible .delivery-stage span { animation:deliveryStagePulse 5s ease-in-out infinite; }
.delivery-art.is-visible .delivery-stage:nth-child(2) span { animation-delay:.7s; }
.delivery-art.is-visible .delivery-stage:nth-child(3) span { animation-delay:1.4s; }
.delivery-art.is-visible .delivery-stage:nth-child(4) span { animation-delay:2.1s; }
.delivery-art.is-visible .delivery-stage:nth-child(5) span { animation-delay:2.8s; }
@keyframes deliveryStagePulse {
  0%,12%,100% { transform:translateY(0);box-shadow:0 0 0 7px rgba(202,255,74,.08); }
  6% { transform:translateY(-7px);box-shadow:0 0 0 12px rgba(202,255,74,.03),0 0 24px rgba(202,255,74,.2); }
}

/* Company artwork: consistent art/copy rows and natural figure proportions. */
.studio-visual-grid { align-items:stretch; }
.story-visual {
  display:grid;
  grid-template-rows:390px auto;
  min-height:670px;
  border-radius:34px;
}
.story-engineer { background:#dcefe3; }
.story-architecture { background:#e7f4eb; }
.story-art {
  position:relative;
  inset:auto;
  min-height:390px;
}
.story-copy {
  position:relative;
  z-index:20;
  left:auto;
  right:auto;
  bottom:auto;
  padding:30px 32px 34px;
  color:#082119;
  background:rgba(250,252,247,.92);
}
.story-copy h3 { margin:14px 0 10px;font-size:clamp(32px,3.6vw,52px); }
.story-copy p { max-width:none;font-size:13px;line-height:1.85; }
.engineer-art,
.architecture-art {
  background:
    radial-gradient(circle at 72% 22%,rgba(202,255,74,.17),transparent 23%),
    linear-gradient(145deg,#dff3e6,#b8dfc7);
}
.engineer-art-grid,
.architecture-art-grid {
  position:absolute;
  inset:0;
  opacity:.34;
  background-image:linear-gradient(rgba(7,113,73,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(7,113,73,.09) 1px,transparent 1px);
  background-size:30px 30px;
  mask-image:radial-gradient(ellipse at 52% 48%,#000,transparent 80%);
}
.engineer-workstation {
  position:absolute;
  z-index:4;
  left:8%;
  top:17%;
  width:58%;
  height:64%;
}
.engineer-display {
  position:absolute;
  left:4%;
  top:0;
  width:72%;
  height:68%;
  padding:24px 25px;
  border-radius:18px;
  background:linear-gradient(145deg,#0a5b40,#06392b);
  box-shadow:0 24px 45px rgba(4,72,47,.2);
}
.display-label {
  display:block;
  margin-bottom:18px;
  color:#caff4a;
  font-family:var(--font-mono);
  font-size:7px;
  letter-spacing:.13em;
}
.code-line {
  display:block;
  height:5px;
  margin:11px 0;
  border-radius:5px;
  background:linear-gradient(90deg,#a4e9bc,rgba(164,233,188,.1));
}
.code-line-a { width:74%; }
.code-line-b { width:56%; }
.code-line-c { width:86%; }
.code-line-d { width:42%; }
.display-stand { position:absolute;left:31%;top:68%;width:10%;height:16%;background:#0a513a; }
.display-stand::after { content:"";position:absolute;left:-115%;right:-115%;bottom:0;height:8px;border-radius:8px;background:#0a513a; }
.engineer-keyboard {
  position:absolute;
  left:6%;
  bottom:3%;
  width:65%;
  height:12%;
  border-radius:8px;
  background:repeating-linear-gradient(90deg,#d9eee0 0 9px,#b9d8c4 10px 11px);
  transform:skewX(-18deg);
}
.engineer-desk { position:absolute;left:0;right:0;bottom:0;height:8px;border-radius:8px;background:#079158; }
.engineer-figure,
.architect-figure {
  position:absolute;
  z-index:8;
  width:120px;
  height:315px;
}
.engineer-figure { right:5%;top:14%; }
.engineer-figure span,
.architect-figure span { position:absolute;display:block; }
.engineer-head,
.architect-head {
  z-index:6;
  left:39px;
  top:0;
  width:44px;
  height:49px;
  border-radius:48% 52% 46% 54% / 42% 44% 56% 58%;
  background:linear-gradient(145deg,#da8752,#b75c32);
}
.engineer-neck,
.architect-neck { z-index:4;left:51px;top:42px;width:20px;height:26px;border-radius:7px;background:#c96c3e; }
.engineer-torso,
.architect-torso {
  z-index:5;
  left:22px;
  top:60px;
  width:78px;
  height:124px;
  border-radius:30px 30px 18px 18px;
  background:linear-gradient(145deg,#087149,#04503a);
}
.engineer-arm,
.architect-arm {
  z-index:6;
  left:20px;
  top:76px;
  width:24px;
  height:122px;
  border-radius:18px;
  background:linear-gradient(#086c4d 0 70%,#c66a3c 71%);
  rotate:46deg;
  transform-origin:50% 8%;
}
.engineer-hand,
.architect-hand { z-index:8;left:-9px;top:171px;width:28px;height:22px;border-radius:50%;background:#c86a3c; }
.engineer-leg,
.architect-leg { z-index:3;top:174px;width:29px;height:124px;border-radius:17px;background:#11392e;transform-origin:top; }
.engineer-leg-front,
.architect-leg-front { left:31px;rotate:7deg; }
.engineer-leg-back,
.architect-leg-back { right:28px;rotate:-7deg;background:#082b22; }
.engineer-shoe,
.architect-shoe { z-index:7;bottom:6px;width:44px;height:18px;border-radius:16px 16px 6px 6px;background:#061c16; }
.engineer-shoe-front,
.architect-shoe-front { left:25px; }
.engineer-shoe-back,
.architect-shoe-back { right:11px; }
.engineer-process {
  position:absolute;
  z-index:9;
  left:6%;
  right:6%;
  bottom:18px;
  display:flex;
  justify-content:space-between;
  margin:0;
  padding:13px 0 0;
  border-top:1px solid rgba(7,113,73,.2);
  list-style:none;
}
.engineer-process li { display:flex;align-items:center;gap:8px; }
.engineer-process small { color:#078b54;font-family:var(--font-mono);font-size:6px; }
.engineer-process strong { color:#074832;font-family:var(--font-jp);font-size:8px; }
.architecture-board {
  position:absolute;
  z-index:5;
  left:6%;
  top:11%;
  width:68%;
  height:73%;
  padding:24px;
  border-radius:24px;
  color:#effff4;
  background:linear-gradient(145deg,#087149,#064432);
  box-shadow:0 24px 48px rgba(5,77,51,.18);
}
.architecture-board-title { margin:0 0 20px;color:#caff4a;font-family:var(--font-jp);font-size:10px;font-weight:750; }
.architecture-flow { display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:0;padding:0;list-style:none; }
.architecture-flow li { position:relative;display:grid;justify-items:center;gap:7px;min-width:0; }
.architecture-flow li:not(:last-child)::after { content:"";position:absolute;left:64%;right:-36%;top:14px;height:1px;background:rgba(202,255,74,.42); }
.architecture-flow small {
  z-index:2;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  color:#063c2a;
  background:#caff4a;
  font-family:var(--font-mono);
  font-size:6px;
}
.architecture-flow strong { font-family:var(--font-jp);font-size:7px;white-space:nowrap; }
.architecture-layers { display:grid;gap:8px;margin-top:28px; }
.architecture-layer {
  display:block;
  padding:11px 14px;
  color:#063c2a;
  font-family:var(--font-jp);
  font-size:8px;
  font-weight:750;
  box-shadow:0 8px 18px rgba(0,0,0,.12);
}
.layer-application { width:84%;background:#e8f7ed; }
.layer-platform { width:72%;margin-left:8%;background:#9ae3b4; }
.layer-operation { width:60%;margin-left:16%;background:#caff4a; }
.architect-figure { right:3%;top:16%; }
.architect-torso { background:linear-gradient(145deg,#eaf7ed,#b9ddc5); }
.architect-arm { left:10px;top:73px;background:linear-gradient(#dcefe2 0 70%,#c66a3c 71%);rotate:64deg; }
.architect-hand { left:-21px;top:174px; }
.architecture-review-note {
  position:absolute;
  z-index:10;
  right:6%;
  bottom:18px;
  margin:0;
  color:#07543b;
  font-family:var(--font-jp);
  font-size:8px;
  font-weight:800;
  letter-spacing:.1em;
}

.career-history {
  display:grid;
  grid-template-columns:minmax(230px,.55fr) 1.45fr;
  gap:clamp(36px,7vw,110px);
  margin-top:clamp(48px,7vw,92px);
  padding-top:clamp(36px,5vw,60px);
  border-top:1px solid rgba(8,83,56,.17);
}
.career-history-heading h3 {
  margin:18px 0 0;
  font-family:var(--font-jp);
  font-size:clamp(32px,4vw,55px);
  line-height:1.16;
  letter-spacing:-.035em;
}
.career-timeline { position:relative;margin:0;padding:0;list-style:none; }
.career-timeline::before { content:"";position:absolute;left:99px;top:14px;bottom:18px;width:1px;background:rgba(7,113,73,.25); }
.career-entry {
  position:relative;
  display:grid;
  grid-template-columns:88px 1fr;
  gap:34px;
  padding:0 0 30px;
}
.career-entry::before {
  content:"";
  position:absolute;
  left:95px;
  top:10px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 5px rgba(7,145,88,.12);
}
.career-entry time { color:#07543b;font-family:var(--font-mono);font-size:10px;font-weight:800;line-height:1.8; }
.career-entry p { margin:0;color:#536a61;font-size:13px;line-height:1.9; }

@media (max-width:1100px) {
  .inner-japan-network,
  .page-privacy .inner-japan-network {
    width:min(940px,86vw);
    height:420px;
    right:-11%;
    top:132px;
    opacity:.68;
  }
  .hero-flow-art { min-height:590px;height:620px; }
  .shared-spec-art { min-height:420px; }
  .consultation-synthesis { min-height:590px; }
  .delivery-art { min-height:700px; }
  .delivery-person-client { left:5%; }
  .delivery-person-engineer { right:5%; }
  .studio-visual-grid { grid-template-columns:1fr; }
  .story-visual { grid-template-rows:410px auto;min-height:650px; }
  .story-art { min-height:410px; }
}

@media (max-width:760px) {
  .ticker { height:40px; }
  .ticker span { padding-inline:19px;font-size:8px;font-weight:850;letter-spacing:.055em; }
  .ticker span::after { width:22px; }
  .inner-japan-network,
  .page-privacy .inner-japan-network {
    display:block!important;
    width:610px;
    height:280px;
    right:-55%;
    top:252px;
    opacity:.42;
    scale:1;
    mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 96%);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 96%);
  }
  .world-relief-map {
    background-size:contain;
    opacity:.94;
    mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 96%);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 96%);
  }
  .hero-flow-art {
    min-height:470px;
    height:470px;
    border-radius:44% 56% 47% 53% / 50% 44% 56% 50%;
  }
  .hero-flow-art:hover { border-radius:44% 56% 47% 53% / 50% 44% 56% 50%; }
  .hero-flow-field { inset:58px 16px 62px; }
  .flow-surface-a { width:110%;right:-43%;top:-10%; }
  .flow-surface-b { width:123%;left:-45%;top:36%; }
  .flow-surface-c { width:120%;right:-54%;bottom:-18%; }
  .japan-dot-map { right:0;top:2%;width:55%;height:74%; }
  .tokyo-beacon { right:8%;top:49%;font-size:5.5px; }
  .hero-process-summary { left:5%;right:5%;gap:5px;padding-top:10px; }
  .hero-process-summary strong { font-size:8px; }
  .hero-flow-art .stage-label { left:22px;top:23px;font-size:6px; }
  .hero-flow-art .stage-coordinate { left:22px;bottom:19px;font-size:5px; }
  .star-c { display:none; }

  .shared-spec-art { min-height:580px; }
  .spec-source-list {
    inset:64px 16px auto;
    width:auto;
    grid-template-columns:repeat(2,1fr);
    grid-template-rows:repeat(2,1fr);
    gap:8px;
  }
  .spec-source-list li { min-height:64px;padding:10px; }
  .spec-ribbon { display:none; }
  .spec-artifact {
    left:30%;
    top:72%;
    width:132px;
    padding:22px;
  }
  .spec-artifact strong { font-size:13px; }
  .spec-continuity {
    right:13px;
    top:72%;
    width:45%;
    min-height:110px;
    padding:18px 13px 18px 34px;
  }
  .spec-continuity strong { font-size:10px; }
  .continuity-pulse { left:12px; }

  .consultation-synthesis { min-height:590px;border-radius:28px; }
  .consultation-synthesis-art { inset:0 0 96px; }
  .synthesis-input {
    left:7%;
    right:7%;
    top:58px;
    width:auto;
    translate:0;
  }
  .synthesis-input ul { grid-template-columns:repeat(2,1fr);gap:10px 8px; }
  .synthesis-input li { font-size:8px; }
  .synthesis-input li::before { width:10px; }
  .synthesis-core { left:30%;top:61%;width:132px; }
  .synthesis-core strong { font-size:11px; }
  .synthesis-output { right:4%;top:62%;width:42%;min-height:155px;padding:20px 16px; }
  .synthesis-output::before { width:32px;height:32px;margin-bottom:12px;font-size:15px; }
  .synthesis-output strong { font-size:11px; }
  .synthesis-checkpoints { display:none; }
  .synthesis-path { left:24%;right:12%;height:28%; }
  .consultation-synthesis figcaption { left:19px;right:19px;bottom:19px; }
  .consultation-synthesis figcaption span { display:block;font-size:6px; }
  .consultation-synthesis figcaption strong { font-size:18px;text-align:right; }

  .delivery-art { min-height:650px;border-radius:28px; }
  .delivery-artboard { inset:0 0 98px; }
  .delivery-workspace-surface { inset:14px;border-radius:22px; }
  .delivery-visual-kicker { left:20px;top:20px;font-size:7px; }
  .delivery-person { scale:.62;transform-origin:top center; }
  .delivery-person-client { left:1%;top:76px; }
  .delivery-person-engineer { right:0;top:73px; }
  .delivery-request-sheet { left:21%;top:79px;width:84px;min-height:112px;padding:19px 13px 13px; }
  .delivery-status-panel { right:19%;top:72px;width:108px;min-height:118px;padding:18px 14px; }
  .delivery-status-panel strong { font-size:10px; }
  .delivery-status-panel > i { right:12px;top:9px;font-size:16px; }
  .delivery-process-flow { left:4%;right:4%;bottom:53px;min-height:235px; }
  .delivery-flow-line { left:5%;right:5%;top:66px; }
  .delivery-process-stages { gap:2px; }
  .delivery-stage span { width:34px;height:34px;margin:49px 0 13px;border-width:2px; }
  .delivery-stage strong { font-size:7px; }
  .delivery-stage small { font-size:5px; }
  .delivery-art figcaption { min-height:98px; }

  .story-visual { grid-template-rows:330px auto;min-height:640px;border-radius:25px; }
  .story-art { min-height:330px; }
  .story-copy { padding:25px 23px 29px; }
  .story-copy h3 { font-size:38px; }
  .story-copy p { font-size:12px;line-height:1.8; }
  .engineer-workstation { left:3%;top:18%;width:68%;height:61%; }
  .engineer-display { padding:18px 17px; }
  .engineer-figure { right:-3%;top:8%;scale:.78;transform-origin:top right; }
  .engineer-process { left:5%;right:5%; }
  .engineer-process strong { font-size:7px; }
  .architecture-board { left:4%;top:10%;width:75%;height:72%;padding:19px 15px; }
  .architecture-flow strong { font-size:6px; }
  .architecture-flow small { width:23px;height:23px; }
  .architecture-layers { margin-top:20px; }
  .architecture-layer { padding:9px 10px;font-size:7px; }
  .architect-figure { right:-5%;top:10%;scale:.72;transform-origin:top right; }
  .career-history { grid-template-columns:1fr;gap:28px;margin-top:54px; }
  .career-history-heading h3 { font-size:36px; }
  .career-timeline::before { left:78px; }
  .career-entry { grid-template-columns:68px 1fr;gap:25px;padding-bottom:27px; }
  .career-entry::before { left:74px; }
  .career-entry time { font-size:8px; }
  .career-entry p { font-size:12px;line-height:1.8; }
}

html[data-motion="reduced"] :is(
  .flow-surface,
  .japan-dot-map,
  .continuity-pulse,
  .delivery-stage span,
  .engineer-figure,
  .architect-figure
) {
  animation:none!important;
  transform:none!important;
  transition:none!important;
}
html[data-motion="reduced"] .synthesis-output::before {
  animation:none!important;
  transform:none!important;
  transition:none!important;
}

/* ==========================================================================
   RELEASE 24 — clean relief, Japanese process motion and production polish
   ========================================================================== */

/* The shared inner-page relief is intentionally quiet: no plotting specks,
   grid, routes or decorative network claims. */
.inner-japan-network,
.page-privacy .inner-japan-network {
  width:min(1120px,65vw);
  height:510px;
  right:clamp(-10px,1vw,18px);
  top:104px;
  opacity:.86;
  filter:none;
  isolation:isolate;
  mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 96%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 96%,transparent 100%);
}
.inner-japan-network::before {
  inset:0;
  opacity:1;
  background:
    radial-gradient(ellipse at 61% 49%,rgba(119,228,157,.16),transparent 55%),
    linear-gradient(90deg,transparent 0,rgba(255,255,255,.72) 26%,rgba(231,248,236,.46) 100%);
}
.world-relief-map {
  inset:2% 0 0;
  opacity:.98;
  background:url("../img/world-embossed-3d.webp") center / contain no-repeat;
  filter:drop-shadow(0 18px 20px rgba(4,82,52,.11));
  mix-blend-mode:normal;
  mask-image:none;
  -webkit-mask-image:none;
}
.inner-japan-network .map-origin {
  right:8%;
  top:15%;
  padding:7px 11px;
  color:#087149;
  border-radius:999px;
  background:rgba(247,251,246,.78);
  font-size:6px;
  letter-spacing:.13em;
}
.inner-japan-network .map-caption {
  right:8%;
  bottom:7%;
  color:rgba(5,93,61,.58);
  font-size:6px;
  letter-spacing:.12em;
}
.page-privacy .inner-japan-network { opacity:.78; }

/* HOME: a precise, asymmetric Japan technology plate. */
.japan-stage.hero-flow-art {
  height:clamp(590px,69vh,700px);
  min-height:590px;
  overflow:hidden;
  border:1px solid rgba(187,244,207,.2);
  border-radius:52px 20px 52px 20px;
  background:
    radial-gradient(circle at 79% 24%,rgba(202,255,74,.16),transparent 17%),
    linear-gradient(145deg,#074332 0%,#052b22 47%,#031b16 100%);
  box-shadow:
    0 42px 90px rgba(4,63,43,.2),
    inset 0 1px rgba(255,255,255,.09),
    inset 0 -60px 110px rgba(0,18,13,.14);
  transform:translate3d(var(--stage-x,0px),calc(var(--stage-scroll,0px) + var(--stage-hover-y,0px)),0);
}
.japan-stage.hero-flow-art:hover { border-radius:52px 20px 52px 20px; }
.japan-stage.hero-flow-art::before {
  z-index:1;
  width:60%;
  height:90%;
  right:-20%;
  top:-16%;
  border:1px solid rgba(216,255,229,.1);
  border-radius:50%;
  background:radial-gradient(circle,rgba(70,211,126,.13),transparent 67%);
  box-shadow:0 0 0 70px rgba(143,238,177,.025);
}
.japan-stage.hero-flow-art::after {
  z-index:2;
  left:30px;
  right:30px;
  bottom:76px;
  width:auto;
  height:1px;
  border:0;
  border-radius:0;
  background:linear-gradient(90deg,rgba(202,255,74,.12),rgba(202,255,74,.62),rgba(205,255,224,.08));
  rotate:0deg;
}
.hero-flow-field {
  inset:50px 26px 78px;
  overflow:hidden;
  border:1px solid rgba(225,255,235,.08);
  border-radius:36px 12px 36px 12px;
  background:
    linear-gradient(rgba(226,255,235,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(226,255,235,.035) 1px,transparent 1px),
    linear-gradient(145deg,rgba(9,82,57,.65),rgba(3,29,22,.91));
  background-size:52px 52px,52px 52px,auto;
}
.hero-flow-field::before {
  content:"";
  position:absolute;
  z-index:4;
  left:5%;
  right:5%;
  top:12%;
  bottom:16%;
  border:1px solid rgba(205,255,224,.12);
  border-radius:50%;
  rotate:-9deg;
}
.flow-surface {
  filter:saturate(.92);
  will-change:transform;
}
.flow-surface-a {
  width:79%;
  height:35%;
  right:-14%;
  top:5%;
  border-radius:70% 30% 58% 42% / 47% 65% 35% 53%;
  background:linear-gradient(120deg,rgba(177,246,201,.04),rgba(42,194,104,.62),rgba(5,86,57,.08));
  rotate:8deg;
}
.flow-surface-b {
  width:111%;
  height:30%;
  left:-36%;
  top:38%;
  border-radius:58% 42% 62% 38% / 49% 60% 40% 51%;
  background:linear-gradient(102deg,rgba(228,255,237,.04),rgba(119,228,154,.25) 30%,rgba(202,255,74,.82) 54%,rgba(28,202,104,.54) 78%,transparent);
  box-shadow:0 1px rgba(238,255,243,.08);
  rotate:-10deg;
}
.flow-surface-c {
  width:90%;
  height:34%;
  right:-24%;
  bottom:2%;
  border-radius:46% 54% 37% 63% / 53% 41% 59% 47%;
  background:linear-gradient(142deg,rgba(5,104,68,.7),rgba(2,39,29,.9));
  rotate:-5deg;
}
.flow-rim {
  left:5%;
  right:1%;
  top:52%;
  height:1px;
  background:linear-gradient(90deg,transparent,#d8ff73 28%,#7bed9c 72%,transparent);
  rotate:-10deg;
  box-shadow:0 0 15px rgba(202,255,74,.22);
}
.flow-contour { border-color:rgba(214,255,227,.14); }
.contour-a { width:67%;height:42%;right:3%;top:16%; }
.contour-b { width:48%;height:62%;right:16%;top:6%; }
.contour-c { width:67%;height:30%;left:4%;bottom:18%; }
.japan-relief-map {
  position:absolute;
  z-index:8;
  right:5%;
  top:2%;
  width:45%;
  height:80%;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 18px 19px rgba(0,24,17,.3)) drop-shadow(0 0 14px rgba(202,255,74,.12));
  transform:rotate(-7deg);
  transform-origin:55% 50%;
}
.flow-route {
  position:absolute;
  z-index:12;
  display:flex;
  align-items:center;
  gap:8px;
  color:#effff3;
  font-family:var(--font-jp);
  font-size:7px;
  font-weight:780;
  letter-spacing:.09em;
}
.flow-route::after {
  content:"";
  width:clamp(44px,7vw,92px);
  height:1px;
  background:linear-gradient(90deg,rgba(202,255,74,.68),transparent);
}
.flow-route i {
  width:8px;
  height:8px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 5px rgba(202,255,74,.08),0 0 18px rgba(202,255,74,.3);
}
.route-requirements { left:8%;top:24%; }
.route-build { left:12%;top:47%; }
.route-operation { left:20%;top:68%; }
.hero-flow-art .stage-label {
  left:33px;
  top:24px;
  color:#dcffc8;
  font-size:7px;
  letter-spacing:.14em;
}
.hero-flow-art .stage-coordinate {
  left:34px;
  bottom:24px;
  color:rgba(222,255,232,.58);
  font-size:6px;
}
.hero-process-summary {
  left:5%;
  right:5%;
  bottom:3%;
  padding-top:12px;
  border-top:0;
}
.hero-process-summary li { position:relative;padding-left:12px; }
.hero-process-summary li::before {
  content:"";
  position:absolute;
  left:0;
  top:2px;
  bottom:2px;
  width:1px;
  background:linear-gradient(#caff4a,rgba(202,255,74,.08));
}
.hero-process-summary strong { font-size:9px; }

@keyframes r24StageReveal {
  from { opacity:0;clip-path:inset(12% 7% 9% 13% round 54px); }
  to { opacity:1;clip-path:inset(0 round 0); }
}
@keyframes r24ReliefBreathe {
  0%,100% { transform:rotate(-7deg) translate3d(0,0,0);filter:drop-shadow(0 18px 19px rgba(0,24,17,.3)) drop-shadow(0 0 11px rgba(202,255,74,.1)); }
  50% { transform:rotate(-7deg) translate3d(0,-8px,0);filter:drop-shadow(0 23px 23px rgba(0,24,17,.28)) drop-shadow(0 0 19px rgba(202,255,74,.2)); }
}
@keyframes r24RouteSignal {
  0%,100% { opacity:.68;transform:translateX(0); }
  50% { opacity:1;transform:translateX(6px); }
}
.js.is-ready .japan-stage.reveal,
.js.is-ready .japan-stage.reveal.is-visible { animation:none; }
.js.is-ready .japan-stage.reveal.is-visible { animation:r24StageReveal 1.05s var(--ease) .08s both; }
.japan-stage.is-visible .japan-relief-map { animation:r24ReliefBreathe 7s ease-in-out 1.1s infinite; }
.japan-stage.is-visible .flow-route { animation:r24RouteSignal 3.4s ease-in-out infinite; }
.japan-stage.is-visible .route-build { animation-delay:-1.1s; }
.japan-stage.is-visible .route-operation { animation-delay:-2.2s; }

/* HOME consultation: inputs enter, review orbits, checkpoints light and the
   bounded next step resolves. All information stays selectable HTML. */
.consultation-synthesis {
  min-height:660px;
  overflow:hidden;
  border:1px solid rgba(9,121,75,.1);
  border-radius:44px;
  background:
    radial-gradient(circle at 53% 46%,rgba(202,255,74,.22),transparent 21%),
    linear-gradient(145deg,#edf9f0,#cfead9 74%,#c5e5d1);
  box-shadow:0 28px 76px rgba(5,91,58,.1),inset 0 1px rgba(255,255,255,.78);
}
.consultation-synthesis:hover { translate:0 -4px; }
.consultation-synthesis-art { inset:0 0 108px; }
.consultation-synthesis-art::before {
  opacity:.42;
  background-image:
    linear-gradient(rgba(7,113,73,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(7,113,73,.045) 1px,transparent 1px);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse at 53% 48%,#000,transparent 80%);
}
.synthesis-input {
  left:5%;
  top:49%;
  width:29%;
}
.synthesis-input small {
  margin-bottom:20px;
  font-size:8px;
  letter-spacing:.13em;
}
.synthesis-input ul { gap:14px; }
.synthesis-input li {
  min-height:38px;
  padding:8px 13px;
  border:1px solid rgba(7,113,73,.1);
  border-radius:12px;
  background:rgba(250,255,251,.62);
  font-size:10px;
  box-shadow:0 7px 17px rgba(5,91,58,.035);
}
.synthesis-input li::before { width:13px;background:#079158; }
.synthesis-path {
  left:25%;
  right:21%;
  height:37%;
  border-color:rgba(7,113,73,.27);
}
.path-upper { top:22%;rotate:-8deg; }
.path-lower { bottom:17%;rotate:9deg; }
.synthesis-path::after {
  content:"";
  position:absolute;
  width:8px;
  height:8px;
  left:20%;
  top:50%;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 5px rgba(7,145,88,.11),0 0 17px rgba(202,255,74,.42);
}
.synthesis-core {
  left:55%;
  width:216px;
  background:linear-gradient(145deg,#079158,#04523a);
  box-shadow:0 25px 56px rgba(5,88,56,.22),0 0 0 15px rgba(7,145,88,.07);
}
.synthesis-core small { font-size:7px; }
.synthesis-core strong { font-size:15px;line-height:1.48; }
.core-layer { border-color:rgba(226,255,235,.19); }
.synthesis-checkpoints {
  left:39%;
  right:27%;
  bottom:8%;
}
.synthesis-checkpoints li { font-size:7px; }
.synthesis-output {
  right:4%;
  width:24%;
  min-height:210px;
  padding:30px 23px;
  border:1px solid rgba(225,255,235,.15);
  border-radius:32px 12px 32px 12px;
  background:linear-gradient(145deg,#078b57,#046541);
}
.synthesis-output strong { font-size:14px; }
.consultation-synthesis figcaption {
  min-height:108px;
  padding:24px 28px;
  background:linear-gradient(100deg,#05271d,#07392a);
}
.consultation-synthesis figcaption span {
  color:#b7dfc5;
  font-family:var(--font-mono);
  font-size:7px;
  letter-spacing:.09em;
}
.consultation-synthesis figcaption strong { font-size:clamp(21px,2.2vw,32px); }

@keyframes r24InputResolve {
  from { opacity:0;transform:translate3d(-18px,0,0); }
  to { opacity:1;transform:translate3d(0,0,0); }
}
@keyframes r24CoreReview {
  0%,100% { transform:scale(1);box-shadow:0 25px 56px rgba(5,88,56,.22),0 0 0 15px rgba(7,145,88,.07); }
  50% { transform:scale(1.025);box-shadow:0 29px 64px rgba(5,88,56,.2),0 0 0 21px rgba(7,145,88,.045); }
}
@keyframes r24CoreOrbit {
  to { rotate:360deg; }
}
@keyframes r24Checkpoint {
  0%,14%,100% { background:#a9d6b8;box-shadow:0 0 0 4px rgba(7,145,88,.06); }
  6% { background:#caff4a;box-shadow:0 0 0 7px rgba(202,255,74,.13),0 0 18px rgba(202,255,74,.35); }
}
@keyframes r24OutputResolve {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-5px); }
}
.consultation-synthesis.is-visible .synthesis-input li { animation:r24InputResolve .62s var(--ease) both; }
.consultation-synthesis.is-visible .synthesis-input li:nth-child(1) { animation-delay:.18s; }
.consultation-synthesis.is-visible .synthesis-input li:nth-child(2) { animation-delay:.3s; }
.consultation-synthesis.is-visible .synthesis-input li:nth-child(3) { animation-delay:.42s; }
.consultation-synthesis.is-visible .synthesis-input li:nth-child(4) { animation-delay:.54s; }
.consultation-synthesis.is-visible .synthesis-core { animation:r24CoreReview 5.8s ease-in-out 1s infinite; }
.consultation-synthesis.is-visible .core-layer.layer-one { animation:r24CoreOrbit 18s linear infinite; }
.consultation-synthesis.is-visible .core-layer.layer-two { animation:r24CoreOrbit 13s linear infinite reverse; }
.consultation-synthesis.is-visible .synthesis-checkpoints li::before { animation:r24Checkpoint 4.5s ease-in-out infinite; }
.consultation-synthesis.is-visible .synthesis-checkpoints li:nth-child(2)::before { animation-delay:-1.5s; }
.consultation-synthesis.is-visible .synthesis-checkpoints li:nth-child(3)::before { animation-delay:-3s; }
.consultation-synthesis.is-visible .synthesis-output { animation:r24OutputResolve 4s ease-in-out 1.1s infinite; }

/* SERVICE: restore the preferred request → team → operation motion, recolored
   in the current deep-green identity. */
.delivery-art {
  min-height:690px;
  background:
    radial-gradient(circle at 52% 43%,rgba(41,214,118,.19),transparent 30%),
    linear-gradient(145deg,#063529,#031c16);
}
.delivery-artboard {
  inset:0 0 90px;
  background:linear-gradient(155deg,rgba(255,255,255,.025),transparent 45%);
}
.delivery-grid-lines {
  opacity:.17;
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse at 50% 48%,#000,transparent 76%);
}
.customer-dock {
  width:185px;
  height:250px;
  left:5%;
  top:25%;
  padding:26px 22px;
  border-radius:32px 32px 8px 32px;
  background:linear-gradient(145deg,#0c9b61,#056641);
  box-shadow:0 24px 52px rgba(0,0,0,.23),inset 0 1px rgba(255,255,255,.16);
}
.dock-kicker { color:#c4efd2;font-family:var(--font-jp); }
.customer-dock > strong { font-family:var(--font-jp);font-size:24px; }
.request-document {
  border:1px solid rgba(7,113,73,.08);
  box-shadow:0 18px 36px rgba(0,29,20,.18);
}
.request-document::before { color:#087149; }
.request-document i { background:#73cf94; }
.journey-rail { border-top-color:rgba(202,255,74,.56); }
.team-core {
  width:228px;
  height:228px;
  background:radial-gradient(circle at 43% 37%,#21d676,#07844e 62%,#054331);
}
.team-core > strong { font-family:var(--font-jp);font-size:22px;letter-spacing:0; }
.core-modules i {
  color:#06442f;
  background:#effff2;
}
.core-modules i:nth-child(2) { background:#caff4a; }
.result-dock {
  width:190px;
  height:260px;
  right:4.5%;
  top:24%;
  padding:27px 20px;
  border-radius:32px 32px 32px 8px;
  background:linear-gradient(145deg,#d2ff69,#9af05e);
}
.result-dock strong { font-family:var(--font-jp);font-size:18px; }
.delivery-artboard > .task-packet {
  width:58px;
  height:30px;
  color:#057149;
  background:#f5fff7;
  border:1px solid rgba(7,113,73,.09);
}
.delivery-art.is-visible .task-packet.packet-b { color:#06583e;background:#ccefd8; }
.delivery-art.is-visible .task-packet.packet-c { color:#06412e;background:#dfff8f; }
.delivery-art figcaption strong { font-family:var(--font-jp); }

/* COMPANY career typography: editorial weight with safe Japanese wrapping. */
.career-history-heading h3 {
  position:relative;
  max-width:10em;
  margin:20px 0 0;
  padding-bottom:24px;
  font-family:var(--font-jp);
  font-size:clamp(37px,4.4vw,62px);
  font-weight:820;
  line-height:1.12;
  letter-spacing:-.055em;
  text-wrap:balance;
  word-break:keep-all;
}
.career-history-heading h3::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:76px;
  height:3px;
  background:linear-gradient(90deg,#079158,#caff4a);
}
.career-history-heading h3 span { display:block; }

/* CULTURE: refine the Japanese scene without external imagery. */
.culture-canvas {
  grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr);
  min-height:620px;
  border-radius:40px 14px 40px 14px;
  background:#dff2e7;
  box-shadow:0 30px 76px rgba(7,76,51,.1);
}
.culture-town-art.culture-scene {
  min-height:620px;
  overflow:hidden;
  background:linear-gradient(155deg,#e6f7f0 0%,#d4edf0 48%,#c8e3ef 100%)!important;
}
.culture-canvas-copy {
  min-width:0;
  padding:clamp(38px,4vw,62px);
  background:linear-gradient(155deg,#0a6c4a,#064331);
}
.culture-canvas-copy .tag {
  width:max-content;
  color:#074832;
  background:#dfffee;
}
.culture-canvas-copy h3 {
  margin:20px 0 18px;
  font-family:var(--font-jp);
  font-size:clamp(40px,4.7vw,68px);
  font-weight:780;
  line-height:1.08;
  letter-spacing:-.045em;
  text-wrap:balance;
  word-break:keep-all;
}
.culture-canvas-copy p {
  color:rgba(239,255,244,.75);
  font-size:13px;
  line-height:1.9;
}
.culture-person {
  filter:drop-shadow(0 13px 12px rgba(10,36,77,.11));
  transform-origin:50% 100%;
}
.culture-table { filter:drop-shadow(0 14px 15px rgba(7,67,48,.08)); }
@keyframes r24CultureGather {
  0%,100% { translate:0 0; }
  50% { translate:0 -5px; }
}
@keyframes r24CultureOrbit {
  to { rotate:360deg; }
}
.culture-canvas.is-visible .culture-person-dialogue,
.culture-canvas.is-visible .culture-person-work { animation:r24CultureGather 5.2s ease-in-out infinite; }
.culture-canvas.is-visible .culture-person-learning,
.culture-canvas.is-visible .culture-person-music { animation:r24CultureGather 5.2s ease-in-out -2.6s infinite; }
.culture-canvas.is-visible .culture-ground-ring { animation:r24CultureOrbit 26s linear infinite; }

/* PRIVACY: keep the legal action phrase as one readable unit. */
.privacy-contact-card h2 {
  max-width:11em;
  font-weight:760;
  line-height:1.06;
  text-wrap:balance;
  word-break:keep-all;
}
.privacy-rights-term,
.privacy-rights-follow { display:block; }
.privacy-rights-term { white-space:nowrap; }

/* CONTACT: privacy-friendly visual preview plus the official universal Maps
   link; no tracking iframe is loaded on the page. */
.access-section {
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#f7f8f2,#edf6ef);
}
.access-panel {
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(420px,1.28fr);
  min-height:540px;
  overflow:hidden;
  border:1px solid rgba(7,113,73,.12);
  border-radius:44px 14px 44px 14px;
  background:#f9fcf8;
  box-shadow:0 32px 80px rgba(7,82,54,.1);
}
.access-copy {
  z-index:3;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(36px,5vw,72px);
}
.access-copy h2 {
  margin:15px 0 18px;
  font-family:var(--font-jp);
  font-size:clamp(47px,6vw,84px);
  font-weight:810;
  line-height:1;
  letter-spacing:-.06em;
}
.access-copy > p:not(.eyebrow) {
  max-width:500px;
  color:#5a7067;
  font-size:13px;
  line-height:1.9;
}
.access-address {
  display:flex;
  flex-direction:column;
  gap:9px;
  margin:27px 0;
  padding-top:24px;
  border-top:1px solid rgba(7,113,73,.16);
  color:#143c30;
  font-style:normal;
  font-size:12px;
  line-height:1.9;
}
.access-address strong { font-size:15px; }
.access-map-link { width:max-content; }
.access-map-relief {
  position:relative;
  min-height:540px;
  overflow:hidden;
  background:
    radial-gradient(circle at 68% 48%,rgba(202,255,74,.22),transparent 15%),
    linear-gradient(145deg,#dff3e6,#b7dfc6);
}
.access-map-relief::before {
  content:"";
  position:absolute;
  inset:7%;
  opacity:.78;
  background:url("../img/world-embossed-3d.webp") center / contain no-repeat;
  filter:drop-shadow(0 17px 20px rgba(4,82,52,.13));
}
.access-map-relief::after {
  content:"SHIBUYA / TOKYO";
  position:absolute;
  right:28px;
  bottom:25px;
  color:rgba(5,93,61,.72);
  font-family:var(--font-mono);
  font-size:7px;
  font-weight:850;
  letter-spacing:.14em;
}
.access-grid {
  position:absolute;
  inset:0;
  opacity:.25;
  background-image:
    linear-gradient(rgba(7,113,73,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(7,113,73,.08) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(ellipse,#000,transparent 82%);
}
.access-contour {
  position:absolute;
  z-index:2;
  border:1px solid rgba(7,113,73,.2);
  border-radius:50%;
}
.access-contour-a { width:67%;height:37%;left:11%;top:24%;rotate:-8deg; }
.access-contour-b { width:51%;height:62%;right:7%;top:14%;rotate:13deg; }
.access-contour-c { width:78%;height:44%;left:6%;bottom:13%;rotate:7deg; }
.access-route {
  position:absolute;
  z-index:3;
  height:1px;
  transform-origin:left center;
  background:linear-gradient(90deg,transparent,#caff4a,transparent);
}
.access-route-a { left:13%;top:39%;width:66%;rotate:-6deg; }
.access-route-b { left:25%;top:57%;width:59%;rotate:9deg; }
.access-route-c { left:38%;top:28%;width:44%;rotate:28deg; }
.access-pin {
  position:absolute;
  z-index:8;
  right:16%;
  top:41%;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50% 50% 50% 8px;
  background:#079158;
  box-shadow:0 0 0 14px rgba(202,255,74,.1),0 18px 28px rgba(5,90,57,.18);
  rotate:-45deg;
}
.access-pin-core {
  width:11px;
  height:11px;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 15px rgba(202,255,74,.75);
}
.access-pin-label {
  position:absolute;
  z-index:9;
  right:6%;
  top:54%;
  padding:11px 14px;
  color:#064a33;
  border:1px solid rgba(7,113,73,.1);
  border-radius:12px;
  background:rgba(249,255,250,.82);
  font-family:var(--font-jp);
  font-size:9px;
  font-weight:750;
  line-height:1.55;
  box-shadow:0 12px 25px rgba(5,90,57,.08);
}
@keyframes r24AccessPulse {
  0%,100% { box-shadow:0 0 0 12px rgba(202,255,74,.08),0 18px 28px rgba(5,90,57,.18); }
  50% { box-shadow:0 0 0 21px rgba(202,255,74,.025),0 20px 32px rgba(5,90,57,.15); }
}
.access-panel.is-visible .access-pin { animation:r24AccessPulse 3.5s ease-in-out infinite; }

@media (max-width:1100px) {
  .inner-japan-network,
  .page-privacy .inner-japan-network {
    width:min(960px,87vw);
    right:-12%;
    opacity:.7;
  }
  .japan-stage.hero-flow-art { height:610px;min-height:590px; }
  .culture-canvas { grid-template-columns:1fr; }
  .culture-town-art.culture-scene { min-height:620px; }
  .culture-canvas-copy { min-height:330px; }
  .access-panel { grid-template-columns:1fr; }
  .access-map-relief { min-height:440px; }
}

@media (max-width:760px) {
  .inner-japan-network,
  .page-privacy .inner-japan-network {
    display:block!important;
    width:600px;
    height:270px;
    right:-57%;
    top:255px;
    opacity:.4;
  }
  .inner-japan-network .map-origin,
  .inner-japan-network .map-caption { display:none; }

  .japan-stage.hero-flow-art {
    height:480px;
    min-height:480px;
    border-radius:32px 12px 32px 12px;
  }
  .japan-stage.hero-flow-art:hover { border-radius:32px 12px 32px 12px; }
  .hero-flow-field { inset:54px 14px 69px;border-radius:24px 8px 24px 8px; }
  .flow-surface-a { width:104%;right:-40%; }
  .flow-surface-b { width:132%;left:-53%;top:39%; }
  .flow-surface-c { width:116%;right:-51%; }
  .japan-relief-map { right:-1%;top:3%;width:57%;height:75%; }
  .flow-route { font-size:5.5px;gap:6px; }
  .flow-route::after { width:31px; }
  .flow-route i { width:6px;height:6px; }
  .route-requirements { left:7%;top:25%; }
  .route-build { left:9%;top:47%; }
  .route-operation { left:15%;top:67%; }
  .hero-process-summary { gap:3px; }
  .hero-process-summary li { padding-left:8px; }
  .hero-process-summary strong { font-size:7px; }
  .hero-flow-art .stage-label { left:20px;top:22px;font-size:5.7px; }
  .hero-flow-art .stage-coordinate { left:20px;bottom:18px;font-size:4.8px; }

  .consultation-synthesis { min-height:650px;border-radius:29px; }
  .consultation-synthesis-art { inset:0 0 104px; }
  .synthesis-input { left:7%;right:7%;top:48px;width:auto;translate:0; }
  .synthesis-input small { margin-bottom:13px; }
  .synthesis-input ul { grid-template-columns:repeat(2,1fr);gap:8px; }
  .synthesis-input li { min-height:42px;padding:8px;font-size:7px; }
  .synthesis-input li::before { width:8px; }
  .synthesis-core { left:30%;top:63%;width:138px; }
  .synthesis-core strong { font-size:10px; }
  .synthesis-output {
    right:4%;
    top:63%;
    width:43%;
    min-height:165px;
    padding:21px 15px;
    border-radius:23px 8px 23px 8px;
  }
  .synthesis-output::before { width:34px;height:34px;margin-bottom:12px;font-size:16px; }
  .synthesis-output strong { font-size:10px; }
  .synthesis-checkpoints { display:none; }
  .synthesis-path { left:23%;right:10%;height:27%; }
  .consultation-synthesis figcaption { min-height:104px;padding:18px 20px; }
  .consultation-synthesis figcaption strong { font-size:17px; }

  .delivery-art { min-height:590px;border-radius:28px; }
  .delivery-artboard { inset:0 0 98px; }
  .customer-dock {
    width:126px;
    height:184px;
    left:4%;
    top:8%;
    padding:18px 14px;
    border-radius:23px 23px 6px 23px;
  }
  .customer-dock > strong { font-size:16px; }
  .request-document { left:17px;top:22px;width:68px;height:84px;padding:18px 12px; }
  .team-core { width:158px;height:158px;left:50%;top:49%; }
  .team-core > strong { font-size:16px; }
  .team-core > small { bottom:29px; }
  .core-modules i { width:36px;height:36px;font-size:6px; }
  .core-modules i:nth-child(1) { left:15px;top:31px; }
  .core-modules i:nth-child(2) { right:15px;top:31px; }
  .core-modules i:nth-child(3) { bottom:12px; }
  .result-dock {
    width:132px;
    height:190px;
    right:4%;
    top:57%;
    padding:19px 12px;
    border-radius:23px 23px 23px 6px;
  }
  .result-halo { width:88px;height:88px;left:22px;top:16px; }
  .delivery-check { width:56px;height:56px;left:38px;top:34px;font-size:28px; }
  .result-dock strong { font-size:13px; }
  .journey-rail { width:76%;height:240px;left:12%;top:27%;rotate:31deg; }
  .delivery-artboard > .task-packet { width:48px;height:25px;font-size:6px; }

  .career-history-heading h3 { max-width:9em;font-size:39px; }
  .culture-canvas { border-radius:28px 10px 28px 10px; }
  .culture-town-art.culture-scene { min-height:540px; }
  .culture-canvas-copy { min-height:300px;padding:32px 25px; }
  .culture-canvas-copy h3 { font-size:42px; }
  .culture-canvas-copy p { font-size:12px; }

  .privacy-contact-card h2 { max-width:none;font-size:clamp(32px,11vw,43px); }
  .privacy-rights-term { font-size:.9em; }

  .access-panel { border-radius:28px 10px 28px 10px; }
  .access-copy { padding:34px 24px 40px; }
  .access-copy h2 { font-size:55px; }
  .access-map-relief { min-height:360px; }
  .access-map-relief::before { inset:9% 3%;background-size:cover; }
  .access-map-relief::after { right:17px;bottom:17px; }
  .access-pin { right:13%;top:39%; }
  .access-pin-label { right:4%;top:56%;font-size:7px; }
}

html[data-motion="reduced"] :is(
  .japan-relief-map,
  .flow-route,
  .synthesis-input li,
  .synthesis-core,
  .core-layer,
  .synthesis-checkpoints li::before,
  .synthesis-output,
  .culture-person,
  .culture-ground-ring,
  .access-pin
) {
  animation:none!important;
  transition:none!important;
}

/* ==========================================================================
   RELEASE 27 — hybrid Japan stage and flat-vector consultation
   Built on the pre-Release25 baseline; no Release25/26 layout layer is reused.
   ========================================================================== */

/* HOME: the oval brand hub from the first reference is composed inside the
   structured Japan process panel from the second reference. Both maps are
   locally generated, non-AI Natural Earth derivatives. */
.japan-stage.hero-flow-art.hero-fusion-stage {
  height:clamp(610px,71vh,720px);
  min-height:610px;
  overflow:hidden;
  border:1px solid rgba(202,255,74,.2);
  border-radius:96px 34px 96px 34px;
  background:
    radial-gradient(circle at 73% 30%,rgba(202,255,74,.17),transparent 17%),
    linear-gradient(145deg,#06422f 0%,#032b22 48%,#021c17 100%);
  box-shadow:
    0 44px 96px rgba(4,61,43,.22),
    inset 0 1px rgba(255,255,255,.08),
    inset 0 -80px 130px rgba(0,16,12,.16);
  isolation:isolate;
  transform:translate3d(var(--stage-x,0px),calc(var(--stage-scroll,0px) + var(--stage-hover-y,0px)),0);
}
.japan-stage.hero-flow-art.hero-fusion-stage:hover {
  border-radius:96px 34px 96px 34px;
  box-shadow:
    0 48px 102px rgba(4,61,43,.24),
    inset 0 1px rgba(255,255,255,.08),
    inset 0 -80px 130px rgba(0,16,12,.16);
}
.japan-stage.hero-flow-art.hero-fusion-stage::before {
  content:"";
  position:absolute;
  z-index:1;
  inset:48px 25px 75px;
  width:auto;
  height:auto;
  border:1px solid rgba(220,255,230,.1);
  border-radius:48% 52% 45% 55% / 52% 43% 57% 48%;
  background:
    radial-gradient(ellipse at 55% 49%,rgba(22,139,82,.11),transparent 60%);
  box-shadow:0 0 0 54px rgba(119,228,154,.018);
  transform:rotate(-3deg);
}
.japan-stage.hero-flow-art.hero-fusion-stage::after {
  content:"";
  position:absolute;
  z-index:13;
  left:7%;
  right:7%;
  bottom:83px;
  width:auto;
  height:1px;
  border:0;
  border-radius:0;
  background:linear-gradient(90deg,rgba(202,255,74,.08),rgba(202,255,74,.5),rgba(221,255,231,.08));
  rotate:0deg;
}
.hero-fusion-stage .hero-flow-field {
  inset:46px 25px 78px;
  overflow:hidden;
  border:1px solid rgba(223,255,233,.075);
  border-radius:72px 22px 72px 22px;
  background:
    linear-gradient(rgba(223,255,233,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(223,255,233,.025) 1px,transparent 1px);
  background-size:48px 48px;
}
.hero-fusion-stage .hero-flow-field::before {
  content:"";
  position:absolute;
  z-index:1;
  inset:7% 5% 12%;
  border:1px solid rgba(215,255,227,.12);
  border-radius:50%;
  transform:rotate(-8deg);
}
.hero-fusion-stage .fusion-ribbon,
.hero-fusion-stage .fusion-orbit,
.hero-fusion-stage .fusion-node {
  position:absolute;
  display:block;
  pointer-events:none;
}
.hero-fusion-stage .fusion-ribbon {
  z-index:2;
  will-change:transform;
}
.hero-fusion-stage .ribbon-a {
  width:72%;
  height:31%;
  right:-8%;
  top:4%;
  border-radius:43% 57% 49% 51% / 57% 43% 57% 43%;
  background:linear-gradient(121deg,rgba(193,242,207,.05),rgba(49,180,103,.61) 55%,rgba(2,65,44,.08));
  rotate:7deg;
}
.hero-fusion-stage .ribbon-b {
  width:112%;
  height:27%;
  left:-24%;
  top:38%;
  border-radius:59% 41% 62% 38% / 52% 58% 42% 48%;
  background:linear-gradient(104deg,rgba(238,255,243,.02),rgba(135,220,159,.2) 24%,#caff4a 49%,#37d47d 72%,rgba(5,76,52,.04));
  box-shadow:0 1px rgba(239,255,244,.11),0 16px 30px rgba(0,25,18,.08);
  rotate:-10deg;
}
.hero-fusion-stage .ribbon-c {
  width:88%;
  height:34%;
  right:-17%;
  bottom:0;
  border-radius:48% 52% 39% 61% / 52% 42% 58% 48%;
  background:linear-gradient(142deg,rgba(12,119,73,.68),rgba(2,48,36,.93) 64%,rgba(154,231,176,.09));
  rotate:-4deg;
}
.hero-fusion-stage .fusion-orbit {
  z-index:5;
  border:1px solid rgba(218,255,228,.15);
  border-radius:50%;
}
.hero-fusion-stage .orbit-a { width:68%;height:41%;right:1%;top:20%;rotate:-9deg; }
.hero-fusion-stage .orbit-b { width:48%;height:66%;right:14%;top:6%;rotate:7deg; }
.hero-fusion-stage .orbit-c { width:68%;height:32%;left:5%;bottom:17%;rotate:12deg; }
.hero-fusion-stage .flow-rim {
  z-index:7;
  left:25%;
  right:3%;
  top:55%;
  height:1px;
  background:linear-gradient(90deg,transparent,#e1ff8d 32%,#77e899 72%,transparent);
  rotate:-10deg;
  box-shadow:0 0 14px rgba(202,255,74,.2);
}
.hero-fusion-stage .fusion-logo-hub {
  position:absolute;
  z-index:11;
  left:6%;
  top:33%;
  display:flex;
  width:168px;
  aspect-ratio:1;
  padding:24px 18px 17px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#f1fff5;
  text-align:center;
  border:1px solid rgba(221,255,231,.26);
  border-radius:50%;
  background:linear-gradient(145deg,rgba(12,157,91,.94),rgba(4,82,57,.97));
  box-shadow:0 0 0 14px rgba(16,175,97,.09),0 22px 40px rgba(0,28,20,.22),inset 0 1px rgba(255,255,255,.14);
}
.fusion-logo-frame {
  display:grid;
  width:66px;
  height:66px;
  margin-bottom:10px;
  place-items:center;
  overflow:hidden;
  border-radius:15px 5px 15px 5px;
  background:#f7f9f3;
  box-shadow:0 11px 22px rgba(0,36,25,.16);
}
.fusion-logo-frame img { display:block;width:62px;height:62px;object-fit:contain; }
.fusion-logo-hub strong {
  font-family:var(--font-jp);
  font-size:12px;
  font-weight:760;
  line-height:1.45;
  letter-spacing:.025em;
}
.hero-fusion-stage .fusion-map-echo,
.hero-fusion-stage .fusion-japan-map {
  position:absolute;
  object-fit:contain;
  object-position:center;
  pointer-events:none;
  transform-origin:53% 51%;
}
.hero-fusion-stage .fusion-map-echo {
  z-index:8;
  right:4%;
  top:3%;
  width:47%;
  height:78%;
  opacity:.23;
  filter:drop-shadow(0 0 16px rgba(202,255,74,.24));
  transform:rotate(-7deg) scale(1.05);
}
.hero-fusion-stage .fusion-japan-map {
  z-index:10;
  right:8%;
  top:4%;
  width:40%;
  height:76%;
  opacity:.96;
  filter:drop-shadow(0 18px 20px rgba(0,28,20,.27)) drop-shadow(0 0 15px rgba(202,255,74,.22));
  transform:rotate(-7deg);
}
.hero-fusion-stage .fusion-node {
  z-index:12;
  width:8px;
  height:8px;
  border:1px solid rgba(247,255,249,.88);
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 6px rgba(202,255,74,.1),0 0 18px rgba(202,255,74,.36);
}
.hero-fusion-stage .node-a { left:40%;top:31%; }
.hero-fusion-stage .node-b { right:12%;top:30%; }
.hero-fusion-stage .node-c { right:31%;bottom:22%; }
.hero-fusion-stage .tokyo-beacon {
  z-index:14;
  right:8%;
  top:47%;
  color:#f4fff6;
  font-size:7px;
  letter-spacing:.15em;
  text-shadow:0 2px 8px rgba(0,28,20,.42);
}
.hero-fusion-stage .tokyo-beacon i {
  width:8px;
  height:8px;
  background:#f8fff9;
  box-shadow:0 0 0 5px rgba(202,255,74,.18),0 0 22px rgba(202,255,74,.52);
}
.hero-fusion-stage .flow-route {
  z-index:13;
  display:flex;
  align-items:center;
  gap:7px;
  color:rgba(239,255,243,.8);
  font-size:6px;
  letter-spacing:.09em;
  text-shadow:0 2px 8px rgba(0,27,19,.42);
}
.hero-fusion-stage .flow-route::after {
  width:34px;
  height:1px;
  background:linear-gradient(90deg,rgba(202,255,74,.7),transparent);
}
.hero-fusion-stage .flow-route i { width:6px;height:6px; }
.hero-fusion-stage .route-requirements { left:45%;top:25%; }
.hero-fusion-stage .route-build { left:43%;top:48%; }
.hero-fusion-stage .route-operation { left:46%;top:69%; }
.hero-fusion-stage .hero-process-summary {
  z-index:15;
  left:7%;
  right:7%;
  bottom:3%;
  gap:0;
  padding-top:13px;
  border-top:0;
  color:#f2fff5;
}
.hero-fusion-stage .hero-process-summary li { padding-left:11px; }
.hero-fusion-stage .hero-process-summary li::before {
  content:"";
  position:absolute;
  left:0;
  top:2px;
  bottom:2px;
  width:1px;
  background:linear-gradient(#caff4a,rgba(202,255,74,.07));
}
.hero-fusion-stage .hero-process-summary small { color:#caff4a; }
.hero-fusion-stage .hero-process-summary strong { color:#f2fff5;font-size:8px; }
.hero-fusion-stage .stage-label {
  z-index:20;
  left:34px;
  top:25px;
  color:#ddffc9;
  font-size:7px;
  letter-spacing:.14em;
}
.hero-fusion-stage .stage-coordinate {
  z-index:20;
  left:34px;
  bottom:24px;
  color:rgba(222,255,232,.58);
  font-size:6px;
}

@keyframes r27StageReveal {
  from { opacity:0;clip-path:inset(8% 5% 8% 12% round 96px 34px 96px 34px); }
  to { opacity:1;clip-path:inset(0 round 0); }
}
@keyframes r27FusionDrift {
  0%,100% { transform:translate3d(0,0,0) scale(1); }
  50% { transform:translate3d(var(--r27-x,7px),var(--r27-y,-6px),0) scale(1.012); }
}
@keyframes r27JapanBreathe {
  0%,100% { opacity:.9;filter:drop-shadow(0 16px 18px rgba(0,28,20,.27)) drop-shadow(0 0 11px rgba(202,255,74,.18)); }
  50% { opacity:1;filter:drop-shadow(0 23px 24px rgba(0,28,20,.23)) drop-shadow(0 0 21px rgba(202,255,74,.36)); }
}
@keyframes r27NodePulse {
  0%,100% { box-shadow:0 0 0 5px rgba(202,255,74,.12),0 0 14px rgba(202,255,74,.3); }
  50% { box-shadow:0 0 0 10px rgba(202,255,74,.025),0 0 24px rgba(202,255,74,.56); }
}
.js.is-ready .japan-stage.hero-fusion-stage.reveal,
.js.is-ready .japan-stage.hero-fusion-stage.reveal.is-visible { animation:none; }
.js.is-ready .japan-stage.hero-fusion-stage.reveal.is-visible { animation:r27StageReveal 1.05s var(--ease) .08s both; }
.hero-fusion-stage.is-visible .fusion-ribbon { animation:r27FusionDrift 14s ease-in-out infinite; }
.hero-fusion-stage.is-visible .ribbon-a { --r27-x:-7px;--r27-y:7px;animation-duration:15s; }
.hero-fusion-stage.is-visible .ribbon-b { --r27-x:10px;--r27-y:-5px;animation-duration:13s;animation-delay:-4s; }
.hero-fusion-stage.is-visible .ribbon-c { --r27-x:-5px;--r27-y:-8px;animation-duration:16s;animation-delay:-8s; }
.hero-fusion-stage.is-visible .fusion-japan-map,
.hero-fusion-stage.is-visible .fusion-map-echo { animation:r27JapanBreathe 5.2s ease-in-out infinite; }
.hero-fusion-stage.is-visible .fusion-map-echo { animation-delay:-2.6s; }
.hero-fusion-stage.is-visible :is(.fusion-node,.tokyo-beacon i) { animation:r27NodePulse 2.8s ease-in-out infinite; }
.hero-fusion-stage.is-visible .node-b { animation-delay:-.9s; }
.hero-fusion-stage.is-visible .node-c { animation-delay:-1.8s; }

/* HOME consultation: three proportional flat-vector roles make the actual
   handoff explicit — customer input, technical review, then the next step. */
.consultation-synthesis {
  min-height:720px;
  overflow:hidden;
  border:1px solid rgba(9,121,75,.1);
  border-radius:46px;
  background:
    radial-gradient(circle at 53% 43%,rgba(202,255,74,.18),transparent 22%),
    linear-gradient(145deg,#eff9f2 0%,#d9f0e1 54%,#cbe9d6 100%);
  box-shadow:0 30px 78px rgba(5,91,58,.1),inset 0 1px rgba(255,255,255,.82);
}
.consultation-synthesis:hover { translate:0 -4px; }
.consultation-synthesis .consultation-synthesis-art {
  inset:0;
  overflow:hidden;
}
.consultation-people-stage::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.34;
  background-image:
    linear-gradient(rgba(7,113,73,.043) 1px,transparent 1px),
    linear-gradient(90deg,rgba(7,113,73,.043) 1px,transparent 1px);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse at 53% 44%,#000,transparent 82%);
  -webkit-mask-image:radial-gradient(ellipse at 53% 44%,#000,transparent 82%);
}
.consultation-synthesis .synthesis-input {
  left:5%;
  top:8%;
  width:29%;
  padding:17px 18px;
  translate:0;
  border:1px solid rgba(7,113,73,.1);
  border-radius:18px;
  background:rgba(252,255,252,.78);
  box-shadow:0 12px 26px rgba(5,91,58,.05);
}
.consultation-synthesis .synthesis-input small { margin-bottom:12px;font-size:7px; }
.consultation-synthesis .synthesis-input ul {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 11px;
}
.consultation-synthesis .synthesis-input li {
  gap:7px;
  min-width:0;
  font-size:7px;
  line-height:1.45;
}
.consultation-synthesis .synthesis-input li::before { flex:0 0 9px;width:9px; }
.consultation-synthesis .synthesis-path {
  z-index:2;
  left:13%;
  right:10%;
  height:26%;
  border-color:rgba(7,113,73,.18);
}
.consultation-synthesis .path-upper { top:31%;rotate:-6deg; }
.consultation-synthesis .path-lower { bottom:24%;rotate:7deg; }
.consultation-handoff {
  position:absolute;
  z-index:5;
  left:13%;
  right:12%;
  top:53%;
  height:54px;
}
.handoff-track {
  position:absolute;
  left:0;
  right:0;
  top:22px;
  height:10px;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  box-shadow:0 9px 20px rgba(5,91,58,.08),inset 0 -2px rgba(7,113,73,.04);
}
.handoff-track::after {
  content:"";
  position:absolute;
  right:26%;
  top:-17px;
  width:9px;
  height:44px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
}
.handoff-point {
  position:absolute;
  z-index:2;
  top:20px;
  width:13px;
  height:13px;
  border:2px solid rgba(247,255,249,.94);
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 7px rgba(202,255,74,.1),0 0 18px rgba(202,255,74,.3);
}
.handoff-point.point-a { left:11%; }
.handoff-point.point-b { left:50%; }
.handoff-point.point-c { right:10%; }
.handoff-brief {
  position:absolute;
  z-index:4;
  left:13%;
  top:0;
  width:48px;
  height:58px;
  padding:16px 10px 8px;
  border:1px solid rgba(7,113,73,.1);
  border-radius:10px 4px 10px 4px;
  background:#fff;
  box-shadow:0 12px 22px rgba(5,78,52,.12);
}
.handoff-brief::before {
  content:"相談";
  position:absolute;
  left:9px;
  top:7px;
  color:#1b58c9;
  font-family:var(--font-jp);
  font-size:6px;
  font-weight:800;
  letter-spacing:.08em;
}
.handoff-brief i {
  display:block;
  height:3px;
  margin:5px 0;
  border-radius:999px;
  background:#8eb2f4;
}
.consultation-person {
  position:absolute;
  z-index:8;
  width:112px;
  height:210px;
  color:#073c2b;
  transform-origin:50% 100%;
}
.consultation-person > small {
  position:absolute;
  z-index:9;
  left:50%;
  top:-12px;
  min-width:68px;
  padding:7px 10px;
  translate:-50% 0;
  color:#076443;
  text-align:center;
  border:1px solid rgba(7,113,73,.09);
  border-radius:999px;
  background:rgba(252,255,252,.88);
  box-shadow:0 8px 18px rgba(5,91,58,.05);
  font-family:var(--font-jp);
  font-size:7px;
  font-weight:760;
  letter-spacing:.05em;
}
.client-person { left:13%;top:30%; }
.engineer-person { left:45%;top:27%; }
.operation-person { right:11%;top:30%; }
.person-shadow {
  position:absolute;
  z-index:0;
  left:16px;
  right:16px;
  bottom:0;
  height:15px;
  border-radius:50%;
  background:rgba(4,81,54,.12);
  filter:blur(4px);
}
.person-head {
  position:absolute;
  z-index:5;
  left:36px;
  top:20px;
  width:42px;
  height:46px;
  border-radius:48% 52% 46% 54% / 44% 46% 54% 56%;
  background:linear-gradient(145deg,#f1a06e,#d9703e);
  box-shadow:inset -5px -4px rgba(166,74,38,.07);
}
.person-head::before {
  content:"";
  position:absolute;
  left:-2px;
  right:4px;
  top:-2px;
  height:15px;
  border-radius:56% 44% 62% 38% / 68% 56% 44% 32%;
  background:#073c2b;
  transform:rotate(-5deg);
}
.person-head::after {
  content:"";
  position:absolute;
  right:8px;
  top:25px;
  width:3px;
  height:3px;
  border-radius:50%;
  background:#6c321f;
}
.person-body {
  position:absolute;
  z-index:4;
  left:24px;
  top:60px;
  width:66px;
  height:86px;
  border-radius:27px 27px 14px 14px;
  background:linear-gradient(145deg,#1559d6,#163b9b);
  box-shadow:inset -8px -6px rgba(0,28,78,.07);
}
.person-arm {
  position:absolute;
  z-index:3;
  top:69px;
  width:16px;
  height:72px;
  border-radius:999px;
  transform-origin:50% 9px;
}
.person-arm::after {
  content:"";
  position:absolute;
  left:1px;
  bottom:-4px;
  width:14px;
  height:18px;
  border-radius:50%;
  background:#e58a57;
}
.person-arm.arm-a { left:18px;background:#1553c5;transform:rotate(28deg); }
.person-arm.arm-b { right:18px;background:#1553c5;transform:rotate(-30deg); }
.person-leg {
  position:absolute;
  z-index:2;
  top:134px;
  width:19px;
  height:68px;
  border-radius:0 0 999px 999px;
  background:#f5f8f3;
}
.person-leg.leg-a { left:31px;transform:rotate(5deg); }
.person-leg.leg-b { right:31px;transform:rotate(-5deg); }
.person-document {
  position:absolute;
  z-index:8;
  left:4px;
  top:69px;
  width:42px;
  height:54px;
  border:1px solid rgba(7,113,73,.1);
  border-radius:9px 3px 9px 3px;
  background:
    linear-gradient(#86aaf0 0 0) 10px 16px / 23px 3px no-repeat,
    linear-gradient(#86aaf0 0 0) 10px 24px / 18px 3px no-repeat,
    linear-gradient(#86aaf0 0 0) 10px 32px / 21px 3px no-repeat,
    #fff;
  box-shadow:0 9px 18px rgba(6,65,45,.11);
  transform:rotate(-7deg);
}
.engineer-person .person-body {
  background:linear-gradient(145deg,#098f58,#04613f);
}
.engineer-person .person-arm.arm-a,
.engineer-person .person-arm.arm-b { background:#07834f; }
.person-screen {
  position:absolute;
  z-index:8;
  left:63px;
  top:72px;
  width:58px;
  height:48px;
  border:4px solid #f8fff9;
  border-radius:10px 3px 10px 3px;
  background:
    linear-gradient(#caff4a 0 0) 10px 28px / 8px 10px no-repeat,
    linear-gradient(#6ed996 0 0) 23px 20px / 8px 18px no-repeat,
    linear-gradient(#13ae68 0 0) 36px 11px / 8px 27px no-repeat,
    #dff4e6;
  box-shadow:0 12px 22px rgba(5,77,51,.12);
  transform:rotate(4deg);
}
.operation-person .person-body {
  background:linear-gradient(145deg,#caff4a,#53d982);
  box-shadow:inset -8px -6px rgba(6,103,57,.06);
}
.operation-person .person-arm.arm-a,
.operation-person .person-arm.arm-b { background:#6de292; }
.operation-person .person-leg { background:#073c2b; }
.person-check {
  position:absolute;
  z-index:8;
  right:-2px;
  top:71px;
  display:grid;
  width:50px;
  height:50px;
  place-items:center;
  color:#082f23;
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 11px rgba(202,255,74,.13),0 15px 25px rgba(5,75,50,.11);
  font-size:25px;
  font-weight:900;
}
.consultation-synthesis .synthesis-core {
  z-index:3;
  left:50%;
  top:48%;
  width:188px;
  opacity:.34;
  background:linear-gradient(145deg,#0a9a5e,#044a34);
  box-shadow:0 0 0 16px rgba(7,145,88,.06);
}
.consultation-synthesis .synthesis-core > :is(small,strong) { opacity:0; }
.consultation-synthesis .core-layer { border-color:rgba(234,255,241,.27); }
.consultation-synthesis .synthesis-output {
  right:5%;
  top:9%;
  width:27%;
  min-height:117px;
  padding:21px 19px 18px 72px;
  translate:0;
  justify-content:center;
  border:1px solid rgba(7,113,73,.1);
  border-radius:20px;
  color:#06452f;
  background:rgba(252,255,252,.78);
  box-shadow:0 12px 26px rgba(5,91,58,.05);
}
.consultation-synthesis .synthesis-output::before {
  position:absolute;
  left:18px;
  top:50%;
  width:40px;
  height:40px;
  margin:0;
  translate:0 -50%;
}
.consultation-synthesis .synthesis-output small { color:#078653;font-size:7px; }
.consultation-synthesis .synthesis-output strong { color:#06452f;font-size:12px; }
.consultation-synthesis .synthesis-checkpoints {
  z-index:16;
  left:24%;
  right:7%;
  bottom:15%;
  align-items:end;
  padding-bottom:16px;
}
.consultation-synthesis .synthesis-checkpoints::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,rgba(7,113,73,.16),rgba(7,113,73,.38),rgba(7,113,73,.12));
}
.consultation-synthesis .synthesis-checkpoints li {
  position:relative;
  z-index:2;
  min-width:60px;
  text-align:center;
  font-size:7px;
}
.consultation-synthesis .synthesis-checkpoints li::before {
  width:8px;
  height:8px;
  margin-bottom:8px;
}
.consultation-synthesis figcaption {
  z-index:19;
  left:6%;
  right:6%;
  bottom:3.5%;
  min-height:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  align-items:end;
  color:#073c2b;
  background:transparent;
}
.consultation-synthesis figcaption span {
  color:rgba(6,83,55,.58);
  font-size:7px;
  letter-spacing:.08em;
  text-align:center;
}
.consultation-synthesis figcaption strong {
  max-width:none;
  color:#073c2b;
  font-family:var(--font-jp);
  font-size:clamp(22px,2.4vw,34px);
  line-height:1.15;
  letter-spacing:-.04em;
  text-align:center;
}
.synthesis-conclusion { white-space:nowrap; }

@keyframes r27BriefHandoff {
  0% { opacity:0;transform:translate3d(0,0,0) rotate(-2deg); }
  12%,82% { opacity:1; }
  100% { opacity:0;transform:translate3d(var(--handoff-distance,380px),0,0) rotate(2deg); }
}
@keyframes r27PeopleConsult {
  0%,100% { transform:translate3d(0,0,0) rotate(0deg); }
  50% { transform:translate3d(0,-5px,0) rotate(var(--person-turn,1deg)); }
}
@keyframes r27OutcomePulse {
  0%,100% { box-shadow:0 0 0 9px rgba(202,255,74,.1),0 12px 22px rgba(5,75,50,.1); }
  50% { box-shadow:0 0 0 16px rgba(202,255,74,.025),0 17px 28px rgba(5,75,50,.13); }
}
.consultation-synthesis.is-visible .handoff-brief { animation:r27BriefHandoff 6.8s var(--ease) infinite; }
.consultation-synthesis.is-visible .consultation-person { animation:r27PeopleConsult 5.4s ease-in-out infinite; }
.consultation-synthesis.is-visible .engineer-person { --person-turn:-1deg;animation-delay:-1.8s; }
.consultation-synthesis.is-visible .operation-person { animation-delay:-3.6s; }
.consultation-synthesis.is-visible .person-check,
.consultation-synthesis.is-visible .synthesis-output::before {
  animation:r27OutcomePulse 2.9s ease-in-out infinite;
}

/* Exact editorial lines requested to stay visually unbroken. */
.trust-line { display:inline-block;white-space:nowrap; }
.trust-accent { color:var(--green-dark); }
.privacy-address-street { display:block;white-space:nowrap; }

@media (max-width:1100px) {
  .japan-stage.hero-flow-art.hero-fusion-stage { height:620px;min-height:600px; }
  .hero-fusion-stage .fusion-logo-hub { left:5%;width:154px; }
  .hero-fusion-stage .fusion-japan-map { right:6%;width:42%; }
  .hero-fusion-stage .fusion-map-echo { right:2%;width:49%; }
  .consultation-synthesis { min-height:700px; }
  .client-person { left:11%; }
  .engineer-person { left:44%; }
  .operation-person { right:8%; }
}

@media (max-width:760px) {
  .japan-stage.hero-flow-art.hero-fusion-stage {
    height:490px;
    min-height:490px;
    border-radius:48px 16px 48px 16px;
  }
  .japan-stage.hero-flow-art.hero-fusion-stage:hover { border-radius:48px 16px 48px 16px; }
  .hero-fusion-stage .hero-flow-field { inset:49px 13px 69px;border-radius:34px 10px 34px 10px; }
  .hero-fusion-stage .hero-flow-field::before { inset:8% 0 13%; }
  .hero-fusion-stage .ribbon-a { width:86%;right:-20%; }
  .hero-fusion-stage .ribbon-b { width:132%;left:-36%;top:39%; }
  .hero-fusion-stage .ribbon-c { width:104%;right:-30%; }
  .hero-fusion-stage .fusion-logo-hub {
    left:3%;
    top:35%;
    width:104px;
    padding:13px 8px 10px;
  }
  .fusion-logo-frame { width:43px;height:43px;margin-bottom:7px;border-radius:10px 3px 10px 3px; }
  .fusion-logo-frame img { width:41px;height:41px; }
  .fusion-logo-hub strong { font-size:8px; }
  .hero-fusion-stage .fusion-japan-map { right:-1%;top:5%;width:47%;height:73%; }
  .hero-fusion-stage .fusion-map-echo { right:-5%;top:5%;width:54%;height:75%; }
  .hero-fusion-stage .fusion-orbit.orbit-c,
  .hero-fusion-stage .node-a { display:none; }
  .hero-fusion-stage .tokyo-beacon { right:2%;top:47%;font-size:5px; }
  .hero-fusion-stage .flow-route { font-size:5px; }
  .hero-fusion-stage .route-requirements { left:37%;top:26%; }
  .hero-fusion-stage .route-build { left:36%;top:49%; }
  .hero-fusion-stage .route-operation { left:38%;top:68%; }
  .hero-fusion-stage .hero-process-summary { left:5%;right:5%;bottom:4%; }
  .hero-fusion-stage .hero-process-summary li { padding-left:7px; }
  .hero-fusion-stage .hero-process-summary strong { font-size:6.5px; }
  .hero-fusion-stage .stage-label { left:19px;top:21px;font-size:5.5px; }
  .hero-fusion-stage .stage-coordinate { display:none; }

  .trust-line { font-size:.68em;letter-spacing:-.065em; }

  .consultation-synthesis { min-height:720px;border-radius:30px; }
  .consultation-synthesis .synthesis-input {
    left:5%;
    top:5%;
    width:43%;
    padding:13px;
  }
  .consultation-synthesis .synthesis-input ul { grid-template-columns:1fr;gap:5px; }
  .consultation-synthesis .synthesis-input li { font-size:6px; }
  .consultation-synthesis .synthesis-output {
    right:5%;
    top:5%;
    width:39%;
    min-height:133px;
    padding:15px 10px 13px 53px;
  }
  .consultation-synthesis .synthesis-output::before { left:10px;width:32px;height:32px;font-size:16px; }
  .consultation-synthesis .synthesis-output strong { font-size:9px; }
  .consultation-handoff { left:8%;right:7%;top:53%;--handoff-distance:205px; }
  .consultation-person { scale:.72; }
  .client-person { left:1%;top:31%; }
  .engineer-person { left:34%;top:29%; }
  .operation-person { right:-1%;top:31%; }
  .consultation-synthesis .synthesis-core { left:50%;top:49%;width:142px; }
  .consultation-synthesis .synthesis-checkpoints {
    left:14%;
    right:6%;
    bottom:16%;
    padding-bottom:13px;
  }
  .consultation-synthesis .synthesis-checkpoints li { min-width:48px;font-size:5.5px; }
  .consultation-synthesis figcaption { left:4%;right:4%;bottom:4%;gap:4px; }
  .consultation-synthesis figcaption span { font-size:5.5px; }
  .consultation-synthesis figcaption strong { font-size:15px;letter-spacing:-.05em; }
  .synthesis-conclusion { white-space:nowrap; }

  .privacy-address-street {
    font-size:clamp(9px,2.85vw,11px);
    letter-spacing:-.02em;
  }
}

html[data-motion="reduced"] :is(
  .fusion-ribbon,
  .fusion-japan-map,
  .fusion-map-echo,
  .fusion-node,
  .fusion-logo-hub,
  .tokyo-beacon i,
  .handoff-brief,
  .consultation-person,
  .person-check
) {
  animation:none!important;
  transition:none!important;
}
html[data-motion="reduced"] .synthesis-output::before {
  animation:none!important;
  transition:none!important;
}
html[data-motion="gentle"] :is(
  .fusion-ribbon,
  .fusion-japan-map,
  .fusion-map-echo,
  .fusion-node,
  .fusion-logo-hub,
  .tokyo-beacon i,
  .handoff-brief,
  .consultation-person,
  .person-check
) {
  animation-duration:18s!important;
}
html[data-motion="gentle"] .synthesis-output::before {
  animation-duration:9s!important;
}
html[data-motion="reduced"] .handoff-brief { display:none!important; }

/* --------------------------------------------------------------------------
   RELEASE 28 — restrained premium refinement for the HOME fusion visual.
   The repeated logo medallion is replaced by a quiet project-flow signature;
   Japan becomes the dominant subject and the former TOKYO tag becomes the
   company signal. All supporting motion is slow, decorative and optional.
   -------------------------------------------------------------------------- */
.hero-fusion-stage .fusion-logo-hub {
  left:5.5%;
  top:39%;
  width:124px;
  min-height:82px;
  aspect-ratio:auto;
  padding:15px 17px 14px;
  align-items:flex-start;
  justify-content:center;
  text-align:left;
  border:0;
  border-left:1px solid rgba(202,255,74,.68);
  border-radius:0 22px 22px 0;
  background:
    linear-gradient(90deg,rgba(9,101,67,.48),rgba(9,101,67,.15) 72%,transparent);
  box-shadow:none;
  backdrop-filter:blur(6px);
}
.fusion-hub-label,
.fusion-hub-meta {
  display:block;
  font-family:var(--font-mono);
  text-transform:uppercase;
}
.fusion-hub-label {
  margin-bottom:8px;
  color:#caff4a;
  font-size:6px;
  font-weight:800;
  letter-spacing:.2em;
}
.fusion-logo-hub strong {
  font-size:10.5px;
  font-weight:680;
  line-height:1.55;
  letter-spacing:.035em;
}
.fusion-hub-meta {
  margin-top:8px;
  color:rgba(226,255,235,.48);
  font-size:5px;
  letter-spacing:.14em;
}
.hero-fusion-stage .fusion-map-echo {
  right:-2%;
  top:-6%;
  width:62%;
  height:94%;
  opacity:.1;
  filter:drop-shadow(0 0 18px rgba(202,255,74,.18));
  transform:rotate(-5deg) scale(1.035);
}
.japan-stage.hero-flow-art.hero-fusion-stage::after { display:none; }
.hero-fusion-stage .fusion-japan-map {
  right:1%;
  top:-5%;
  width:55%;
  height:92%;
  opacity:.99;
  filter:
    drop-shadow(0 23px 26px rgba(0,25,18,.28))
    drop-shadow(0 0 13px rgba(202,255,74,.18));
  transform:rotate(-5deg) scale(1.025);
}
.hero-fusion-stage .fusion-scanline {
  position:absolute;
  z-index:11;
  right:1%;
  top:17%;
  display:block;
  width:57%;
  height:1px;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(90deg,transparent,rgba(223,255,232,.14) 20%,#caff4a 53%,rgba(119,232,153,.24) 76%,transparent);
  filter:drop-shadow(0 0 7px rgba(202,255,74,.5));
  transform:translate3d(0,0,0) rotate(-5deg);
  transform-origin:70% 50%;
}
.hero-fusion-stage .fusion-node {
  width:5px;
  height:5px;
  border-color:rgba(245,255,248,.68);
  background:#dfffa1;
  box-shadow:0 0 0 5px rgba(202,255,74,.07),0 0 13px rgba(202,255,74,.28);
}
.hero-fusion-stage .node-a { left:38%;top:29%; }
.hero-fusion-stage .node-b { right:9%;top:27%; }
.hero-fusion-stage .node-c { right:29%;bottom:25%; }
.hero-fusion-stage .tokyo-beacon {
  right:4%;
  top:46%;
  display:flex;
  align-items:center;
  gap:8px;
  color:#f4fff6;
  text-shadow:0 2px 8px rgba(0,28,20,.42);
}
.hero-fusion-stage .tokyo-beacon i {
  flex:0 0 auto;
  width:7px;
  height:7px;
  background:#caff4a;
  box-shadow:0 0 0 5px rgba(202,255,74,.13),0 0 18px rgba(202,255,74,.42);
}
.hero-fusion-stage .tokyo-beacon span {
  display:grid;
  gap:2px;
}
.hero-fusion-stage .tokyo-beacon b {
  color:#f5fff7;
  font-family:var(--font-en);
  font-size:7px;
  font-weight:780;
  letter-spacing:.18em;
  white-space:nowrap;
}
.hero-fusion-stage .tokyo-beacon small {
  color:rgba(226,255,235,.48);
  font-family:var(--font-mono);
  font-size:4px;
  font-weight:700;
  letter-spacing:.11em;
  white-space:nowrap;
}
.hero-fusion-stage .flow-route {
  gap:6px;
  color:rgba(239,255,243,.58);
  font-size:5.5px;
  letter-spacing:.12em;
}
.hero-fusion-stage .flow-route::after {
  width:28px;
  opacity:.55;
}
.hero-fusion-stage .route-requirements { left:36%;top:23%; }
.hero-fusion-stage .route-build { left:34%;top:50%; }
.hero-fusion-stage .route-operation { left:38%;top:72%; }
.hero-fusion-stage .stage-coordinate {
  left:6.5%;
  bottom:111px;
  color:rgba(222,255,232,.42);
  font-size:5px;
  line-height:1.75;
  letter-spacing:.1em;
}
.hero-fusion-stage .hero-process-summary {
  left:6.5%;
  right:6.5%;
  bottom:23px;
  gap:28px;
  padding-top:17px;
}
.hero-fusion-stage .hero-process-summary::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg,rgba(202,255,74,.13),rgba(202,255,74,.46),rgba(119,232,153,.2));
}
.hero-fusion-stage .hero-process-summary li {
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:
    "number title"
    ". note";
  column-gap:10px;
  row-gap:4px;
  padding:0;
}
.hero-fusion-stage .hero-process-summary li::before {
  top:-20px;
  bottom:auto;
  width:6px;
  height:6px;
  border:1px solid rgba(236,255,242,.72);
  border-radius:50%;
  background:#caff4a;
  box-shadow:0 0 0 5px rgba(202,255,74,.07);
}
.hero-fusion-stage .hero-process-summary li::after {
  content:"";
  position:absolute;
  top:-17px;
  left:13px;
  width:calc(100% - 26px);
  height:1px;
  background:linear-gradient(90deg,rgba(202,255,74,.72),transparent);
  transform:scaleX(.12);
  transform-origin:left center;
  opacity:.55;
}
.hero-fusion-stage .hero-process-summary small {
  grid-area:number;
  align-self:center;
  color:#caff4a;
  font-size:6.5px;
  letter-spacing:.12em;
}
.hero-fusion-stage .hero-process-summary strong {
  grid-area:title;
  color:#f2fff5;
  font-size:10px;
  font-weight:680;
  letter-spacing:.035em;
}
.hero-fusion-stage .hero-process-summary span {
  grid-area:note;
  color:rgba(222,255,232,.46);
  font-family:var(--font-mono);
  font-size:5px;
  letter-spacing:.09em;
}

@keyframes r28JapanPresence {
  0%,100% {
    transform:rotate(-5deg) translate3d(0,0,0) scale(1.025);
    filter:drop-shadow(0 23px 26px rgba(0,25,18,.28)) drop-shadow(0 0 13px rgba(202,255,74,.18));
  }
  50% {
    transform:rotate(-5deg) translate3d(-2px,-3px,0) scale(1.033);
    filter:drop-shadow(0 29px 30px rgba(0,25,18,.24)) drop-shadow(0 0 20px rgba(202,255,74,.26));
  }
}
@keyframes r28MapEcho {
  0%,100% { opacity:.07;transform:rotate(-5deg) scale(1.025); }
  50% { opacity:.13;transform:rotate(-5deg) scale(1.055); }
}
@keyframes r28ScanSweep {
  0%,16% { opacity:0;transform:translate3d(0,-34px,0) rotate(-5deg); }
  34%,66% { opacity:.42; }
  84%,100% { opacity:0;transform:translate3d(0,265px,0) rotate(-5deg); }
}
@keyframes r28OrbitPresence {
  0%,100% { opacity:.22;transform:scale(1); }
  50% { opacity:.48;transform:scale(1.025); }
}
@keyframes r28HubSettle {
  from { opacity:0;transform:translate3d(-16px,0,0); }
  to { opacity:1;transform:translate3d(0,0,0); }
}
@keyframes r28ProcessTrace {
  0%,15% { transform:scaleX(.12);opacity:.2; }
  46%,75% { transform:scaleX(1);opacity:.72; }
  100% { transform:scaleX(.12);opacity:.2; }
}
.hero-fusion-stage.is-visible :is(
  .fusion-ribbon,
  .fusion-map-echo,
  .fusion-orbit,
  .fusion-node
) { animation:none; }
.hero-fusion-stage.is-visible .ribbon-b {
  --r27-x:4px;
  --r27-y:-3px;
  animation:r27FusionDrift 18s ease-in-out infinite;
}
.hero-fusion-stage.is-visible .fusion-japan-map {
  animation:r28JapanPresence 10.5s ease-in-out infinite;
}
.hero-fusion-stage.is-visible .fusion-scanline {
  animation:r28ScanSweep 11.5s cubic-bezier(.4,0,.2,1) infinite;
}
.hero-fusion-stage.is-visible .fusion-logo-hub {
  animation:r28HubSettle .9s var(--ease) .32s both;
}
.hero-fusion-stage.is-visible .hero-process-summary li::after {
  animation:r28ProcessTrace 8.4s ease-in-out infinite;
}
.hero-fusion-stage.is-visible .hero-process-summary li:nth-child(2)::after { animation-delay:-5.6s; }
.hero-fusion-stage.is-visible .hero-process-summary li:nth-child(3)::after { animation-delay:-2.8s; }
.hero-fusion-stage.is-visible .tokyo-beacon i { animation:r27NodePulse 4.8s ease-in-out infinite; }

@media (max-width:1100px) {
  .hero-fusion-stage .fusion-logo-hub {
    left:4.5%;
    width:108px;
    min-height:76px;
    padding:13px 14px;
  }
  .hero-fusion-stage .fusion-japan-map { right:-1%;width:59%;height:92%; }
  .hero-fusion-stage .fusion-map-echo { right:-4%;width:65%;height:94%; }
  .hero-fusion-stage .hero-process-summary { gap:18px; }
}

@media (max-width:760px) {
  .hero-fusion-stage .fusion-logo-hub {
    left:4%;
    top:38%;
    width:82px;
    min-height:62px;
    padding:10px 10px 9px;
    border-radius:0 15px 15px 0;
  }
  .fusion-hub-label { margin-bottom:5px;font-size:4.3px; }
  .fusion-logo-hub strong { font-size:7px;line-height:1.5; }
  .fusion-hub-meta { margin-top:5px;font-size:3.5px; }
  .hero-fusion-stage .fusion-japan-map {
    right:-9%;
    top:-1%;
    width:68%;
    height:81%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-13%;
    top:-2%;
    width:75%;
    height:83%;
  }
  .hero-fusion-stage .fusion-scanline { right:-3%;top:17%;width:67%; }
  .hero-fusion-stage .tokyo-beacon { right:1%;top:45%;gap:5px; }
  .hero-fusion-stage .tokyo-beacon i { width:5px;height:5px; }
  .hero-fusion-stage .tokyo-beacon b { font-size:5px;letter-spacing:.13em; }
  .hero-fusion-stage .tokyo-beacon small { font-size:3px;letter-spacing:.07em; }
  .hero-fusion-stage .flow-route { display:none; }
  .hero-fusion-stage .stage-coordinate { display:none; }
  .hero-fusion-stage .hero-process-summary {
    left:6%;
    right:6%;
    bottom:18px;
    gap:8px;
    padding-top:14px;
  }
  .hero-fusion-stage .hero-process-summary li {
    column-gap:5px;
    row-gap:3px;
  }
  .hero-fusion-stage .hero-process-summary li::before {
    top:-17px;
    width:5px;
    height:5px;
  }
  .hero-fusion-stage .hero-process-summary li::after { top:-15px;left:10px;width:calc(100% - 14px); }
  .hero-fusion-stage .hero-process-summary small { font-size:5px; }
  .hero-fusion-stage .hero-process-summary strong { font-size:7.2px; }
  .hero-fusion-stage .hero-process-summary span { font-size:4.5px;letter-spacing:.04em; }
}

@media (prefers-reduced-motion:reduce) {
  .hero-fusion-stage :is(
    .fusion-japan-map,
    .fusion-map-echo,
    .fusion-scanline,
    .fusion-orbit,
    .fusion-logo-hub
  ),
  .hero-fusion-stage .hero-process-summary li::after {
    animation:none!important;
  }
}
html[data-motion="reduced"] .hero-fusion-stage :is(
  .fusion-japan-map,
  .fusion-map-echo,
  .fusion-scanline,
  .fusion-orbit,
  .fusion-logo-hub
),
html[data-motion="reduced"] .hero-fusion-stage .hero-process-summary li::after {
  animation:none!important;
  transition:none!important;
}
html[data-motion="gentle"] .hero-fusion-stage :is(
  .fusion-japan-map,
  .fusion-map-echo,
  .fusion-scanline,
  .fusion-orbit
) {
  animation-duration:20s!important;
}
html[data-motion="gentle"] .hero-fusion-stage .fusion-logo-hub {
  animation:none!important;
}

/* RELEASE 29 — clearer hero hierarchy and a slightly stronger Japan focal point. */
.hero-fusion-stage .fusion-japan-map {
  right:-1%;
  top:-7%;
  width:59%;
  height:96%;
}
.hero-fusion-stage .fusion-map-echo {
  right:-4%;
  top:-8%;
  width:66%;
  height:98%;
}

@media (max-width:1100px) {
  .hero-fusion-stage .fusion-japan-map {
    right:-3%;
    top:-6%;
    width:63%;
    height:95%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-6%;
    top:-7%;
    width:69%;
    height:97%;
  }
}

@media (max-width:760px) {
  .hero-fusion-stage .fusion-japan-map {
    right:-11%;
    top:-2%;
    width:72%;
    height:84%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-15%;
    top:-3%;
    width:79%;
    height:86%;
  }
}

/* RELEASE 30 — dominant Japan signal and clear Japanese context for Privacy. */
.hero-fusion-stage .hero-flow-field::after {
  content:"";
  position:absolute;
  z-index:3;
  right:-24%;
  top:3%;
  width:86%;
  height:82%;
  pointer-events:none;
  border-radius:58% 42% 63% 37% / 44% 58% 42% 56%;
  background:
    radial-gradient(ellipse at 24% 30%,rgba(224,255,232,.16),transparent 36%),
    linear-gradient(145deg,rgba(18,133,83,.18),rgba(2,40,31,.08) 48%,rgba(202,255,74,.09));
  box-shadow:
    inset 1px 0 rgba(229,255,236,.11),
    inset 0 -30px 70px rgba(0,24,18,.16);
  transform:rotate(8deg);
}
.hero-fusion-stage .ribbon-a {
  background:
    linear-gradient(121deg,rgba(222,255,231,.06),rgba(47,184,105,.66) 54%,rgba(2,65,44,.08));
  box-shadow:inset 0 1px rgba(234,255,239,.09),0 22px 42px rgba(0,25,18,.08);
}
.hero-fusion-stage .ribbon-b {
  background:
    linear-gradient(104deg,rgba(238,255,243,.02),rgba(135,220,159,.18) 22%,#d7ff61 48%,#3edb82 72%,rgba(5,76,52,.04));
  box-shadow:
    inset 0 1px rgba(247,255,249,.23),
    inset 0 -22px 36px rgba(5,83,55,.09),
    0 18px 34px rgba(0,25,18,.11);
}
.hero-fusion-stage .ribbon-c {
  background:
    linear-gradient(142deg,rgba(16,132,80,.74),rgba(2,44,34,.95) 64%,rgba(154,231,176,.1));
  box-shadow:inset 0 1px rgba(219,255,229,.08),0 -18px 38px rgba(0,22,17,.11);
}
.hero-fusion-stage .fusion-japan-map {
  right:-7%;
  top:-8%;
  width:72%;
  height:101%;
  filter:
    drop-shadow(0 28px 31px rgba(0,25,18,.29))
    drop-shadow(0 0 18px rgba(202,255,74,.24));
}
.hero-fusion-stage .fusion-map-echo {
  right:-11%;
  top:-9%;
  width:79%;
  height:103%;
  opacity:.13;
}
.hero-fusion-stage .tokyo-beacon { right:3%;top:47%; }
.hero-fusion-stage .fusion-scanline { right:-4%;width:69%; }

.privacy-vault-section {
  padding:clamp(82px,10vw,142px) 0;
}
.privacy-vault-intro {
  width:min(1040px,100%);
  margin:0 auto clamp(38px,5vw,68px);
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.72fr);
  align-items:end;
  gap:clamp(42px,7vw,96px);
}
.privacy-vault-intro .eyebrow {
  margin-bottom:18px;
  color:#0b9d60;
}
.privacy-vault-intro h2 {
  margin:0;
  color:#061d16;
  font-family:var(--font-jp);
  font-size:clamp(38px,4.35vw,58px);
  font-weight:720;
  line-height:1.16;
  letter-spacing:-.06em;
}
.privacy-vault-intro > p {
  margin:0;
  padding:4px 0 5px clamp(22px,3vw,38px);
  color:#4d665d;
  border-left:1px solid #0ca767;
  font-size:clamp(14px,1.35vw,17px);
  line-height:2;
}
.privacy-vault--mint .vault-packet,
.privacy-vault--mint .vault-status,
.privacy-vault--mint figcaption span {
  font-family:var(--font-jp);
  font-weight:700;
  letter-spacing:.08em;
}
.privacy-vault--mint figcaption strong {
  font-family:var(--font-jp);
  font-size:clamp(20px,2.2vw,28px);
  font-weight:650;
  line-height:1.22;
  letter-spacing:-.035em;
}

@media (max-width:1100px) {
  .hero-fusion-stage .fusion-japan-map {
    right:-10%;
    top:-7%;
    width:75%;
    height:100%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-14%;
    top:-8%;
    width:82%;
    height:102%;
  }
  .hero-fusion-stage .tokyo-beacon { right:0; }
}

@media (max-width:760px) {
  .hero-fusion-stage .hero-flow-field::after {
    right:-33%;
    top:8%;
    width:96%;
    height:74%;
  }
  .hero-fusion-stage .fusion-japan-map {
    right:-18%;
    top:-3%;
    width:82%;
    height:88%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-22%;
    top:-4%;
    width:89%;
    height:90%;
  }
  .hero-fusion-stage .fusion-scanline { right:-12%;width:78%; }
  .hero-fusion-stage .tokyo-beacon { right:-1%;top:46%; }
  .privacy-vault-section { padding:68px 0 72px; }
  .privacy-vault-intro {
    grid-template-columns:1fr;
    gap:24px;
    margin-bottom:38px;
  }
  .privacy-vault-intro h2 {
    font-size:clamp(29px,8.1vw,35px);
    line-height:1.16;
    letter-spacing:-.065em;
  }
  .privacy-vault-intro > p {
    padding:2px 0 2px 18px;
    font-size:14px;
    line-height:1.9;
  }
  .privacy-vault--mint figcaption {
    gap:10px;
  }
  .privacy-vault--mint figcaption span {
    max-width:46%;
    line-height:1.45;
  }
  .privacy-vault--mint figcaption strong {
    max-width:54%;
    font-size:17px;
    line-height:1.28;
  }
}
