: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-project .nav [data-page="project"]::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); }
.page-index .ticker + .intro { padding-top: clamp(68px,7vw,98px); }
.page-index .intro-aside { display: block; min-height: 0; }
.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 picture,
.activity-card picture { display:block; width:100%; height:100%; }
.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); }
.form-status[data-state="error"] { color:#b12d2d; }
.form-status[data-state="success"] { color:#057a48;font-weight:750; }
.form-honeypot {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
}
.privacy-consent {
  display:flex;
  align-items:flex-start;
  gap:11px;
  margin:0 0 20px;
  color:#334b42;
  font-size:12px;
  line-height:1.7;
  cursor:pointer;
}
.privacy-consent input {
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:1px 0 0;
  accent-color:var(--green-dark);
}
.contact-form[aria-busy="true"] { cursor:wait; }
.contact-form .btn:disabled { cursor:wait;opacity:.58;box-shadow:none; }
.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/subpage-world-map.png") 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/subpage-world-map.png") 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/subpage-world-map.png") 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;
}
/* 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/subpage-world-map.png") 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:-9%;
  top:-10%;
  width:76%;
  height:105%;
  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:-13%;
  top:-11%;
  width:83%;
  height:107%;
  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:-12%;
    top:-9%;
    width:79%;
    height:104%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-16%;
    top:-10%;
    width:86%;
    height:106%;
  }
  .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:-20%;
    top:-5%;
    width:86%;
    height:92%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-24%;
    top:-6%;
    width:93%;
    height:94%;
  }
  .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;
  }
}

/* RELEASE 32 — premium 404 recovery experience and Service process accents. */
.delivery-steps li > div > p:first-of-type {
  color:var(--green-dark);
  font-weight:850;
  letter-spacing:.035em;
}

.page-not-found {
  min-width:0;
  background:#f5f8f2;
}
.page-not-found .site-header {
  border-bottom:0;
  background:var(--lime);
  box-shadow:none;
  backdrop-filter:none;
}
.page-not-found .site-header.is-compact {
  background:var(--lime);
  box-shadow:none;
  backdrop-filter:none;
}
.not-found-hero {
  position:relative;
  min-width:0;
  min-height:100svh;
  overflow:hidden;
  padding:clamp(132px,14vh,180px) 0 clamp(66px,8vh,100px);
  background:
    radial-gradient(circle at 82% 20%,rgba(202,255,74,.2),transparent 26%),
    radial-gradient(circle at 70% 68%,rgba(32,214,107,.13),transparent 34%),
    linear-gradient(135deg,#f8f9f4 0 43%,#edf8f1 72%,#e2f4e8 100%);
  isolation:isolate;
}
.not-found-hero::before {
  content:"";
  position:absolute;
  z-index:-1;
  width:min(920px,72vw);
  aspect-ratio:1;
  right:-21%;
  top:-42%;
  border:1px solid rgba(0,155,78,.12);
  border-radius:50%;
  box-shadow:
    0 0 0 9vw rgba(255,255,255,.18),
    0 0 0 18vw rgba(0,155,78,.025);
}
.not-found-hero::after {
  content:"404";
  position:absolute;
  z-index:-1;
  left:-.045em;
  bottom:-.31em;
  color:transparent;
  font-family:var(--font-latin);
  font-size:clamp(240px,36vw,620px);
  font-weight:950;
  line-height:.8;
  letter-spacing:-.12em;
  -webkit-text-stroke:1px rgba(8,21,18,.045);
}
.not-found-grid {
  position:absolute;
  z-index:-1;
  inset:0;
  opacity:.7;
  background-image:
    linear-gradient(rgba(8,21,18,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(8,21,18,.035) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.82) 56%,transparent 100%);
}
.not-found-layout {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(480px,1.1fr);
  gap:clamp(48px,8vw,120px);
  align-items:center;
}
.not-found-copy {
  min-width:0;
  max-width:650px;
}
.not-found-copy .eyebrow {
  margin-bottom:24px;
}
.not-found-copy h1 {
  margin:0;
  font-weight:900;
}
.not-found-number {
  display:block;
  margin:0 0 18px;
  color:var(--green-dark);
  font-family:var(--font-latin);
  font-size:clamp(84px,9.3vw,148px);
  font-weight:950;
  line-height:.72;
  letter-spacing:-.09em;
}
.not-found-heading {
  display:block;
  font-family:var(--font-jp);
  font-size:clamp(42px,4.8vw,70px);
  font-weight:720;
  line-height:1.12;
  letter-spacing:-.065em;
}
.not-found-lead {
  max-width:570px;
  margin:34px 0 0;
  color:var(--muted);
  font-size:15px;
  line-height:2;
}
.not-found-actions {
  display:flex;
  align-items:center;
  gap:32px;
  margin-top:34px;
}
.not-found-actions .btn {
  min-width:180px;
}
.not-found-shortcuts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  max-width:620px;
  margin-top:46px;
  border-top:1px solid var(--line);
}
.not-found-shortcuts a {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  align-items:center;
  min-width:0;
  padding:15px 14px 15px 0;
  color:var(--muted);
  font-size:11px;
  font-weight:750;
  text-decoration:none;
  transition:color .3s,translate .35s var(--ease);
}
.not-found-shortcuts a + a {
  padding-left:14px;
  border-left:1px solid var(--line);
}
.not-found-shortcuts a:hover {
  color:var(--ink);
  translate:3px 0;
}
.not-found-shortcuts span {
  color:var(--green-dark);
  font-family:var(--font-mono);
  font-size:8px;
}
.not-found-visual {
  position:relative;
  min-width:0;
  min-height:580px;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(0,155,78,.12);
  border-radius:49% 51% 46% 54% / 54% 44% 56% 46%;
  background:
    radial-gradient(circle at 48% 43%,rgba(255,255,255,.96) 0 4%,rgba(223,251,233,.86) 5% 34%,rgba(178,235,199,.52) 55%,rgba(255,255,255,.45) 76%),
    linear-gradient(145deg,rgba(255,255,255,.75),rgba(210,244,222,.82));
  box-shadow:0 42px 100px rgba(0,86,49,.12),inset 0 1px rgba(255,255,255,.92);
}
.not-found-radar {
  position:absolute;
  inset:0;
  overflow:hidden;
}
.not-found-radar::before {
  content:"";
  position:absolute;
  inset:12%;
  border-radius:50%;
  background:radial-gradient(circle at center,rgba(202,255,74,.2),transparent 46%);
}
.not-found-orbit {
  position:absolute;
  left:50%;
  top:47%;
  translate:-50% -50%;
  border:1px solid rgba(0,122,70,.2);
  border-radius:50%;
  animation:notFoundOrbit 24s linear infinite;
}
.not-found-orbit::after {
  content:"";
  position:absolute;
  width:8px;
  height:8px;
  left:12%;
  top:9%;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 6px rgba(32,214,107,.1),0 0 20px rgba(0,155,78,.4);
}
.not-found-orbit.orbit-a {
  width:78%;
  height:42%;
  rotate:-13deg;
}
.not-found-orbit.orbit-b {
  width:56%;
  height:70%;
  rotate:31deg;
  animation-direction:reverse;
  animation-duration:31s;
}
.not-found-orbit.orbit-c {
  width:34%;
  height:34%;
  border-style:dashed;
  animation-duration:18s;
}
.not-found-route {
  position:absolute;
  left:18%;
  top:53%;
  width:64%;
  height:1px;
  rotate:-13deg;
  transform-origin:center;
  background:linear-gradient(90deg,transparent,var(--green-dark) 11% 89%,transparent);
}
.not-found-route::before,
.not-found-route::after {
  content:"";
  position:absolute;
  top:50%;
  width:11px;
  height:11px;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--green-dark);
  translate:0 -50%;
  box-shadow:0 0 0 7px rgba(0,155,78,.1);
}
.not-found-route::before { left:0; }
.not-found-route::after { right:0; background:var(--lime); }
.not-found-route-pulse {
  position:absolute;
  z-index:5;
  left:21%;
  top:51%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 5px rgba(202,255,74,.18),0 0 22px var(--lime);
  animation:notFoundRoute 4.8s var(--ease) infinite;
}
.not-found-node {
  position:absolute;
  z-index:4;
  display:grid;
  grid-template-columns:10px auto;
  gap:1px 9px;
  align-items:center;
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.88);
  border-radius:17px;
  background:rgba(255,255,255,.72);
  box-shadow:0 15px 34px rgba(0,90,51,.09);
  backdrop-filter:blur(12px);
}
.not-found-node i {
  grid-row:1 / 3;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 4px rgba(32,214,107,.12);
}
.not-found-node b {
  font-family:var(--font-mono);
  font-size:8px;
  line-height:1.2;
  letter-spacing:.12em;
}
.not-found-node small {
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:5.5px;
  line-height:1.2;
  letter-spacing:.1em;
}
.node-request { left:9%;top:29%; }
.node-request i { background:#a7b1ad;box-shadow:0 0 0 4px rgba(97,113,108,.1); }
.node-home { right:8%;top:27%; }
.node-support { right:13%;bottom:24%; }
.not-found-radar-code {
  position:absolute;
  left:50%;
  top:48%;
  translate:-50% -50%;
  color:rgba(0,116,66,.11);
  font-family:var(--font-latin);
  font-size:clamp(126px,13vw,210px);
  font-weight:950;
  line-height:1;
  letter-spacing:-.11em;
}
.not-found-status {
  position:absolute;
  left:50%;
  bottom:16%;
  translate:-50% 0;
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  color:#096b43;
  font-family:var(--font-mono);
  font-size:7px;
  font-weight:800;
  letter-spacing:.16em;
}
.not-found-status i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--lime);
  box-shadow:0 0 0 5px rgba(202,255,74,.14),0 0 14px rgba(126,185,0,.5);
  animation:notFoundPulse 2.2s ease-in-out infinite;
}
.not-found-visual figcaption {
  position:absolute;
  z-index:6;
  left:10%;
  right:10%;
  bottom:7%;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:22px;
  padding-top:15px;
  border-top:1px solid rgba(8,21,18,.12);
}
.not-found-visual figcaption span {
  color:var(--green-dark);
  font-family:var(--font-mono);
  font-size:7px;
  font-weight:800;
  letter-spacing:.16em;
}
.not-found-visual figcaption strong {
  max-width:260px;
  font-family:var(--font-jp);
  font-size:18px;
  font-weight:650;
  line-height:1.35;
  text-align:right;
}
@keyframes notFoundOrbit {
  to { rotate:347deg; }
}
@keyframes notFoundRoute {
  0%,12% { left:21%;top:51%;opacity:0; }
  22% { opacity:1; }
  76% { opacity:1; }
  88%,100% { left:75%;top:38%;opacity:0; }
}
@keyframes notFoundPulse {
  50% { opacity:.45;scale:.72; }
}

@media (max-width:1100px) {
  .not-found-hero {
    padding-top:126px;
  }
  .not-found-layout {
    grid-template-columns:1fr;
    max-width:820px;
  }
  .not-found-copy {
    max-width:720px;
  }
  .not-found-visual {
    min-height:520px;
  }
  .not-found-hero::before {
    right:-48%;
    top:-18%;
  }
}

@media (max-width:760px) {
  .not-found-hero {
    min-height:100svh;
    padding:112px 0 58px;
  }
  .not-found-hero::after {
    bottom:-.08em;
    font-size:250px;
  }
  .not-found-grid {
    background-size:30px 30px;
    mask-image:linear-gradient(#000 0 62%,transparent 100%);
  }
  .not-found-layout {
    gap:50px;
  }
  .not-found-number {
    margin-bottom:14px;
    font-size:82px;
  }
  .not-found-heading {
    font-size:clamp(38px,11.7vw,48px);
    line-height:1.12;
  }
  .not-found-lead {
    margin-top:25px;
    font-size:14px;
    line-height:1.9;
  }
  .not-found-actions {
    align-items:stretch;
    flex-direction:column;
    gap:20px;
    margin-top:28px;
  }
  .not-found-actions .btn {
    width:100%;
  }
  .not-found-actions .text-link {
    width:max-content;
  }
  .not-found-shortcuts {
    grid-template-columns:1fr;
    margin-top:35px;
  }
  .not-found-shortcuts a,
  .not-found-shortcuts a + a {
    padding:12px 0;
    border-left:0;
    border-bottom:1px solid var(--line);
  }
  .not-found-visual {
    min-height:400px;
    border-radius:42% 58% 50% 50% / 51% 45% 55% 49%;
  }
  .not-found-radar-code {
    font-size:128px;
  }
  .not-found-node {
    padding:8px 10px;
  }
  .node-request { left:4%;top:26%; }
  .node-home { right:3%;top:25%; }
  .node-support { right:7%;bottom:27%; }
  .not-found-status {
    bottom:18%;
    font-size:6px;
  }
  .not-found-visual figcaption {
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
    left:8%;
    right:8%;
    bottom:7%;
  }
  .not-found-visual figcaption strong {
    max-width:100%;
    font-size:14px;
    text-align:left;
    white-space:nowrap;
  }
}

html[data-motion="reduced"] .not-found-orbit,
html[data-motion="reduced"] .not-found-route-pulse,
html[data-motion="reduced"] .not-found-status i {
  animation:none;
}

/* ==========================================================================
   RELEASE 34 — canonical Project route and shared visual consistency
   ========================================================================== */

/* The same relief map strength is used on every inner page. This selector is
   intentionally after the older Privacy-specific cascade. */
.js .inner-japan-network {
  opacity:.86;
}

/* HOME: make Japan the unmistakable focal point without moving it off-canvas. */
.hero-fusion-stage .fusion-japan-map {
  right:-6%;
  top:-13%;
  width:84%;
  height:113%;
}
.hero-fusion-stage .fusion-map-echo {
  right:-10%;
  top:-14%;
  width:91%;
  height:115%;
}

@media (max-width:1100px) {
  .js .inner-japan-network {
    opacity:.7;
  }
  .hero-fusion-stage .fusion-japan-map {
    right:-9%;
    top:-12%;
    width:86%;
    height:112%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-13%;
    top:-13%;
    width:93%;
    height:114%;
  }
}

@media (max-width:760px) {
  .js .inner-japan-network {
    opacity:.4;
  }
  .hero-fusion-stage .fusion-japan-map {
    right:-12%;
    top:-8%;
    width:94%;
    height:100%;
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-16%;
    top:-9%;
    width:101%;
    height:102%;
  }
}

/* ==========================================================================
   CURRENT PRODUCTION — mobile-safe Japan map and richer mint illustrations
   ========================================================================== */

/* Keep the Privacy illustration in the light brand family while restoring
   enough depth and contrast for the vault, labels and animated routes. */
.privacy-vault--mint {
  background:
    radial-gradient(circle at 67% 45%,rgba(202,255,74,.23),transparent 21%),
    linear-gradient(135deg,#d7eee1 0%,#afd7c0 50%,#79b993 100%);
  box-shadow:0 40px 92px rgba(14,93,61,.2),inset 0 1px rgba(255,255,255,.9);
}
.privacy-vault--mint:hover {
  box-shadow:0 49px 104px rgba(14,93,61,.25),inset 0 1px rgba(255,255,255,.92);
}
.privacy-vault--mint .privacy-vault-scene::before {
  background:
    radial-gradient(circle at 64% 57%,rgba(202,255,74,.53),transparent 19%),
    radial-gradient(circle at 43% 35%,rgba(255,255,255,.64),transparent 36%),
    linear-gradient(135deg,rgba(222,242,229,.97),rgba(117,184,145,.94));
}
.privacy-vault--mint .privacy-vault-scene::after,
.privacy-vault--mint .vault-orbit {
  border-color:rgba(0,105,68,.34);
}
.privacy-vault--mint .vault-packet {
  border-color:rgba(0,91,59,.15);
  background:rgba(250,255,251,.94);
  box-shadow:0 12px 30px rgba(7,83,55,.16);
}

/* Contact access illustration: the same pale-mint family, with stronger map
   relief and a clearly legible Shibuya location marker. */
.access-map-relief {
  background:
    radial-gradient(circle at 69% 48%,rgba(202,255,74,.4),transparent 17%),
    radial-gradient(circle at 47% 46%,rgba(255,255,255,.3),transparent 38%),
    linear-gradient(145deg,#d3ecdd 0%,#9dceb0 53%,#73b48c 100%);
  box-shadow:inset 0 0 88px rgba(4,83,54,.08);
}
.access-map-relief::before {
  opacity:.96;
  filter:
    saturate(1.28)
    contrast(1.08)
    brightness(.96)
    drop-shadow(0 19px 23px rgba(4,82,52,.22));
}
.access-grid {
  opacity:.31;
}
.access-contour {
  border-color:rgba(4,91,59,.28);
}
.access-route {
  opacity:.72;
}

/* The source artwork includes transparent breathing room. On iPhone we size
   it by height, preserve the native aspect ratio and remove the rotation that
   could clip Hokkaido or Okinawa at the stage edge. */
@media (max-width:760px) {
  .hero-fusion-stage .fusion-japan-map {
    right:-9%;
    top:-13%;
    width:auto;
    max-width:none;
    height:120%;
    object-fit:contain;
    transform:rotate(0deg) scale(1);
  }
  .hero-fusion-stage .fusion-map-echo {
    right:-13%;
    top:-15%;
    width:auto;
    max-width:none;
    height:124%;
    object-fit:contain;
    transform:rotate(0deg) scale(1.015);
  }
  .hero-fusion-stage.is-visible .fusion-japan-map {
    animation:currentMobileJapanPresence 10.5s ease-in-out infinite;
  }
}

@keyframes currentMobileJapanPresence {
  0%,100% {
    transform:translate3d(0,0,0) scale(1);
    filter:drop-shadow(0 18px 22px rgba(0,25,18,.27)) drop-shadow(0 0 13px rgba(202,255,74,.2));
  }
  50% {
    transform:translate3d(-2px,-2px,0) scale(1.008);
    filter:drop-shadow(0 24px 28px rgba(0,25,18,.23)) drop-shadow(0 0 20px rgba(202,255,74,.3));
  }
}

html[data-motion="reduced"] .hero-fusion-stage .fusion-japan-map,
html[data-motion="reduced"] .hero-fusion-stage .fusion-map-echo {
  animation:none!important;
}

@media (max-width: 900px) {
  #project-support {
    padding-top: 56px !important;
    padding-bottom: 72px !important;
  }

  #project-support > .wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 36px !important;
  }

  #project-support > .wrap > .consultation-board {
    order: 2 !important;
    width: 100% !important;
    margin: 0 !important;
  }

  #project-support > .wrap > :not(.consultation-board) {
    order: 1 !important;
  }
}

/* Privacy security visual — vivid green color treatment */
.privacy-vault-mint .privacy-vault-scene {
  background:
    radial-gradient(
      circle at 62% 55%,
      rgba(205, 255, 45, 0.72) 0%,
      rgba(84, 228, 103, 0.34) 22%,
      transparent 46%
    ),
    radial-gradient(
      circle at 18% 18%,
      rgba(224, 255, 112, 0.78) 0%,
      rgba(107, 229, 102, 0.25) 32%,
      transparent 58%
    ),
    linear-gradient(
      135deg,
      #b8ef58 0%,
      #47d873 34%,
      #13b46c 68%,
      #007a50 100%
    ) !important;
}

.privacy-vault-mint .privacy-vault-scene::before {
  background:
    radial-gradient(
      circle at 64% 57%,
      rgba(207, 255, 52, 0.9),
      transparent 25%
    ),
    radial-gradient(
      circle at 38% 30%,
      rgba(255, 255, 255, 0.62),
      transparent 42%
    ) !important;
  opacity: 1 !important;
}

.privacy-vault-mint .vault-core {
  background:
    radial-gradient(
      circle at 34% 25%,
      #ffffff 0 5%,
      #efff9f 8%,
      #c8ff28 29%,
      #32d55f 57%,
      #008e58 80%,
      #005c3e 100%
    ) !important;

  box-shadow:
    0 0 22px rgba(205, 255, 52, 0.88),
    0 0 64px rgba(43, 220, 101, 0.62),
    inset -18px -20px 30px rgba(0, 82, 54, 0.32) !important;
}

.privacy-vault-mint .vault-halo {
  background:
    radial-gradient(
      circle,
      rgba(210, 255, 65, 0.64) 0%,
      rgba(62, 223, 105, 0.38) 42%,
      transparent 72%
    ) !important;
  opacity: 1 !important;
}

.privacy-vault-mint .vault-orbit {
  border-color: rgba(0, 91, 59, 0.58) !important;
}

.privacy-vault-mint .vault-shell,
.privacy-vault-mint .vault-glass {
  border-color: rgba(255, 255, 255, 0.96) !important;
  box-shadow:
    12px 16px 0 rgba(0, 92, 58, 0.28),
    0 0 36px rgba(198, 255, 57, 0.24) !important;
}

.privacy-vault-mint .vault-keyhole {
  background: #003d2d !important;
}

.privacy-vault-mint .vault-packet {
  color: #00543a !important;
  border-color: rgba(0, 105, 68, 0.24) !important;
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 13px 30px rgba(0, 91, 58, 0.2) !important;
}

.privacy-vault-mint .vault-status {
  color: #003f2e !important;
  background: #c8ff32 !important;
  box-shadow: 0 0 20px rgba(196, 255, 47, 0.68) !important;
}


/* Privacy visual — stronger green palette */
.privacy-vault--mint .privacy-vault-scene {
  background:
    radial-gradient(
      circle at 64% 57%,
      rgba(205, 255, 45, 0.78) 0%,
      rgba(56, 220, 103, 0.48) 23%,
      transparent 48%
    ),
    radial-gradient(
      circle at 20% 18%,
      rgba(220, 255, 100, 0.78) 0%,
      rgba(76, 213, 105, 0.35) 34%,
      transparent 60%
    ),
    linear-gradient(
      135deg,
      #a8e85a 0%,
      #39cf75 35%,
      #0ead68 68%,
      #00764d 100%
    ) !important;
}

.privacy-vault--mint .privacy-vault-scene::before {
  background:
    radial-gradient(
      circle at 64% 57%,
      rgba(213, 255, 48, 0.88),
      transparent 28%
    ),
    radial-gradient(
      circle at 34% 28%,
      rgba(255, 255, 255, 0.38),
      transparent 43%
    ) !important;
  opacity: 1 !important;
}

.privacy-vault--mint .privacy-vault-scene::after {
  background:
    linear-gradient(
      135deg,
      rgba(198, 255, 92, 0.18),
      rgba(0, 135, 79, 0.25)
    ) !important;
  opacity: 1 !important;
}

.privacy-vault--mint .vault-core {
  background:
    radial-gradient(
      circle at 34% 25%,
      #ffffff 0 5%,
      #efff9f 8%,
      #caff28 28%,
      #2bd55e 58%,
      #008d58 82%,
      #00553b 100%
    ) !important;

  box-shadow:
    0 0 24px rgba(205, 255, 48, 0.9),
    0 0 68px rgba(38, 220, 100, 0.7),
    inset -18px -20px 30px rgba(0, 76, 49, 0.36) !important;
}

.privacy-vault--mint .vault-halo {
  opacity: 1 !important;
  filter: saturate(1.45) contrast(1.08) !important;
}

.privacy-vault--mint .vault-orbit {
  border-color: rgba(0, 92, 59, 0.62) !important;
}

.privacy-vault--mint .vault-keyhole {
  background: #003c2b !important;
}


.privacy-vault--mint {
  background: #07965c !important;
}

.privacy-vault--mint .privacy-vault-scene {
  background:
    radial-gradient(circle at 64% 54%,
      rgba(208, 255, 42, 0.95) 0%,
      rgba(51, 223, 91, 0.65) 22%,
      transparent 47%
    ),
    radial-gradient(circle at 18% 12%,
      rgba(190, 255, 70, 0.9) 0%,
      rgba(68, 211, 91, 0.55) 36%,
      transparent 62%
    ),
    linear-gradient(
      135deg,
      #9ee83e 0%,
      #30ce68 35%,
      #08a961 67%,
      #006c49 100%
    ) !important;
}

.privacy-vault--mint .vault-floor {
  background:
    linear-gradient(
      135deg,
      rgba(143, 238, 65, 0.72) 0%,
      rgba(26, 196, 94, 0.72) 48%,
      rgba(0, 112, 73, 0.88) 100%
    ) !important;

  opacity: 0.78 !important;
  filter: saturate(1.65) contrast(1.12) !important;
}

.privacy-vault--mint .privacy-vault-scene::before {
  background:
    radial-gradient(
      circle at 64% 57%,
      rgba(214, 255, 36, 0.85),
      transparent 29%
    ) !important;
  opacity: 0.85 !important;
}

.privacy-vault--mint .privacy-vault-scene::after {
  background: linear-gradient(
    135deg,
    rgba(177, 255, 66, 0.12),
    rgba(0, 99, 65, 0.28)
  ) !important;
  opacity: 1 !important;
}


/* Common world-map background for subpage heroes */
.page-hero:not([data-word="404"]) {
  background-image:
    linear-gradient(
      90deg,
      rgba(247, 248, 242, 1) 0%,
      rgba(247, 248, 242, 0.98) 38%,
      rgba(247, 248, 242, 0.42) 58%,
      rgba(247, 248, 242, 0.08) 100%
    ),
    url("../img/subpage-world-map.png") !important;

  background-repeat: no-repeat, no-repeat !important;
  background-position: center, right center !important;
  background-size: 100% 100%, 62% auto !important;
}

@media (max-width: 900px) {
  .page-hero:not([data-word="404"]) {
    background-position: center, center bottom !important;
    background-size: 100% 100%, auto 58% !important;
  }
}

/* Keep only one world map in subpage hero */
.page-hero:not([data-word="404"]) {
  background-image:
    linear-gradient(
      155deg,
      #f9faf5 0%,
      #f9faf5 46%,
      #e4f5eb 100%
    ) !important;
  background-size: 100% 100% !important;
  background-position: center !important;
}

.inner-japan-network .world-relief-map {
  background-image: url("../img/subpage-world-map.png") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: 1 !important;
}

.inner-japan-network .map-origin,
.inner-japan-network .map-caption {
  display: none !important;
}

/* Blend subpage world map naturally into the hero background */
.inner-japan-network {
  overflow: hidden !important;
  isolation: isolate !important;
}

.inner-japan-network::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  background:
    linear-gradient(
      90deg,
      rgba(249, 250, 245, 0.98) 0%,
      rgba(249, 250, 245, 0.72) 14%,
      rgba(249, 250, 245, 0.12) 36%,
      rgba(249, 250, 245, 0.05) 68%,
      rgba(228, 245, 235, 0.5) 100%
    ),
    linear-gradient(
      180deg,
      rgba(249, 250, 245, 0.22) 0%,
      transparent 58%,
      rgba(219, 244, 230, 0.72) 100%
    ) !important;
}

.inner-japan-network .world-relief-map {
  inset: -2% -1% -3% -1% !important;
  opacity: 0.82 !important;
  filter:
    saturate(0.82)
    contrast(0.94)
    brightness(1.04)
    drop-shadow(0 18px 28px rgba(22, 120, 76, 0.08)) !important;

  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,0.5) 10%,
      #000 25%,
      #000 83%,
      rgba(0,0,0,0.55) 94%,
      transparent 100%
    ),
    linear-gradient(
      180deg,
      transparent 0%,
      #000 10%,
      #000 84%,
      transparent 100%
    ) !important;

  -webkit-mask-composite: source-in !important;
  mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0,0,0,0.5) 10%,
      #000 25%,
      #000 83%,
      rgba(0,0,0,0.55) 94%,
      transparent 100%
    ),
    linear-gradient(
      180deg,
      transparent 0%,
      #000 10%,
      #000 84%,
      transparent 100%
    ) !important;

  mask-composite: intersect !important;
}

@media (max-width: 900px) {
  .inner-japan-network .world-relief-map {
    opacity: 0.72 !important;
    filter:
      saturate(0.76)
      contrast(0.92)
      brightness(1.06) !important;
  }
}


.inner-japan-network::before {
  opacity: 0.72 !important;
}

.inner-japan-network .world-relief-map {
  opacity: 0.9 !important;
  filter:
    saturate(0.92)
    contrast(0.98)
    brightness(1.02)
    drop-shadow(0 18px 28px rgba(22, 120, 76, 0.1)) !important;
}


@media (max-width: 900px) {
  .page-hero:not([data-word="404"]) {
    min-height: auto !important;
    padding-top: 110px !important;
    padding-bottom: 72px !important;
    overflow: hidden !important;
  }

  .page-hero .page-hero-grid {
    position: relative !important;
    z-index: 5 !important;
  }

  .page-hero h1,
  .page-hero .page-hero-copy,
  .page-hero .breadcrumb {
    position: relative !important;
    z-index: 8 !important;
  }

  .inner-japan-network {
    position: absolute !important;
    top: 125px !important;
    right: -105px !important;
    width: 480px !important;
    height: 330px !important;
    opacity: 0.42 !important;
    pointer-events: none !important;
  }

  .inner-japan-network::before {
    opacity: 0.82 !important;
  }

  .inner-japan-network .world-relief-map {
    inset: 0 !important;
    background-position: center !important;
    background-size: contain !important;
    opacity: 0.68 !important;
    filter: saturate(0.78) brightness(1.08) !important;
  }

  .page-hero-copy {
    max-width: calc(100vw - 40px) !important;
    margin-left: 0 !important;
    backdrop-filter: blur(8px) !important;
  }
}

@media (max-width: 900px) {
  .inner-japan-network {
    opacity: 0.72 !important;
    top: 118px !important;
    right: -72px !important;
    width: 520px !important;
    height: 350px !important;
  }

  .inner-japan-network::before {
    opacity: 0.42 !important;
  }

  .inner-japan-network .world-relief-map {
    opacity: 0.88 !important;
    filter:
      saturate(0.92)
      contrast(0.98)
      brightness(1.02) !important;
  }
}

@media (max-width: 900px) {
  .inner-japan-network {
    top: 105px !important;
    right: -28px !important;
    width: 560px !important;
    height: 365px !important;
    opacity: 0.76 !important;
  }

  .inner-japan-network .world-relief-map {
    background-position: 43% center !important;
    background-size: contain !important;
    opacity: 0.9 !important;
  }
}

@media (max-width: 900px) {
  .page-hero:not([data-word="404"]) {
    padding-bottom: 42px !important;
  }

  .page-hero-copy {
    margin-bottom: 24px !important;
  }

  .page-hero .breadcrumb {
    margin-top: 24px !important;
  }
}

@media (max-width: 900px) {
  .page-hero .page-hero-grid {
    min-height: 0 !important;
    height: auto !important;
    grid-template-rows: auto auto auto !important;
    align-content: start !important;
    row-gap: 24px !important;
  }

  .page-hero .breadcrumb {
    align-self: start !important;
    margin-top: 0 !important;
  }
}

@media (max-width: 900px) {
  .page-hero:not([data-word="404"]) {
    padding-top: 135px !important;
  }
}


@media (max-width: 900px) {
  .page-hero .page-hero-grid {
    transform: translateY(24px) !important;
  }
}


@media (max-width: 900px) {
  .inner-japan-network {
    right: 10px !important;
  }

  .inner-japan-network .world-relief-map {
    background-position: 38% center !important;
  }
}


