
#khv4-root {
  --ink: #122c3e; --navy:#071a28; --navy-2:#122d42;
  --cream:#f7f7f3; --white:#f8fafb; --line:rgba(230,238,244,.27);
  --page-gutter: clamp(25px,5.6vw,104px);
  --sans: "Noto Sans CJK JP","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  --serif: "Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-family:var(--sans); font-size:16px; line-height:normal;
  box-sizing:border-box; color:#fff; background:#101e2a;
  margin:0 calc(50% - 50vw) !important;
  width:100vw !important; max-width:100vw !important;
  padding:0 !important; border:0 !important; border-radius:0 !important;
  isolation:isolate;
}
#khv4-root *, #khv4-root *::before, #khv4-root *::after { box-sizing:border-box; }
#khv4-root a { text-decoration:none; }
#khv4-root a:focus-visible, #khv4-root button:focus-visible {outline:3px solid #e8bd7f; outline-offset:4px;}
#khv4-root .khv4-hidden {display:none !important;}

#khv4-root {
  --ink: #122c3e;
  --navy: #071a28;
  --navy-2: #122d42;
  --cream: #f7f7f3;
  --white: #f8fafb;
  --line: rgba(230, 238, 244, .27);
  --page-gutter: clamp(25px, 5.6vw, 104px);
  --sans: "Noto Sans CJK JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --serif: "Noto Serif CJK JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}
#khv4-root *, #khv4-root *::before, #khv4-root *::after { box-sizing: border-box; }
#khv4-root a { color: inherit; text-decoration: none; }
#khv4-root a:focus-visible, #khv4-root button:focus-visible { outline: 3px solid #e8bd7f; outline-offset: 4px; }
#khv4-root button { font: inherit; }
#khv4-root img { display:block; max-width:100%; }
#khv4-root .mobile-break { display:none; }
#khv4-root .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#khv4-root { isolation:isolate; position:relative; width:100%; min-height:800px; min-height:max(800px, 100svh); color:#fff; display:flex; flex-direction:column; overflow:hidden; background:#101e2a; }
#khv4-root .hero-background, #khv4-root .hero-background img, #khv4-root .hero-scrim, #khv4-root .hero-grain { position:absolute; inset:0; width:100%; height:100%; }
#khv4-root .hero-background { z-index:-3; overflow:hidden; }
#khv4-root .hero-background img { object-fit:cover; object-position: 53% 45%; filter: saturate(.81) contrast(1.04) brightness(.89); transform:scale(1); transform-origin: 50% 45%; }
#khv4-root .hero-scrim { z-index:-2; background:
  linear-gradient(90deg, rgba(3,18,30,.96) 0%,rgba(5,22,36,.90) 27%,rgba(6,24,40,.75) 40%,rgba(7,26,41,.32) 61%,rgba(7,22,35,.16) 82%,rgba(8,24,36,.23) 100%),
  linear-gradient(0deg,rgba(3,17,28,.99) 0%,rgba(3,17,28,.70) 14%,rgba(5,20,34,.17) 38%, transparent 62%),
  linear-gradient(180deg,rgba(3,15,26,.62),transparent 17%);
}
#khv4-root .hero-grain { z-index:-1; opacity:.18; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.09'/%3E%3C/svg%3E"); pointer-events:none; }
#khv4-root .site-header { position:absolute; z-index:30; top:0; left:0; right:0; display:flex; align-items:center; gap:clamp(20px,3vw,44px); height:100px; padding:0 var(--page-gutter); border-bottom:1px solid rgba(255,255,255,.23); color:#fff; }
#khv4-root .site-brand { display:flex; flex-direction:column; white-space:nowrap; line-height:1.25; letter-spacing:.05em; min-width:175px; }
#khv4-root .site-brand-qual { font-size:12px; font-weight:400; letter-spacing:.18em; color:#d4dfe8; }
#khv4-root .site-brand-name { font-family:var(--serif); font-size:22px; font-weight:700; line-height:1.4; letter-spacing:.1em; }
#khv4-root .site-nav { display:flex; margin-left:auto; gap:clamp(22px,2.3vw,36px); align-items:center; white-space:nowrap; }
#khv4-root .site-nav a { font-size:13px; font-weight:500; color:rgba(255,255,255,.89); transition:color .24s ease; padding:10px 0; }
#khv4-root .site-nav a:hover { color:white; }
#khv4-root .nav-contact { display:inline-flex; align-items:center; justify-content:space-between; gap:25px; color:#fff; border:1px solid rgba(255,255,255,.63); padding:13px 17px; min-height:47px; white-space:nowrap; font-size:13px; font-weight:600; letter-spacing:.02em; transition: background .25s ease, color .25s ease; }
#khv4-root .nav-contact:hover { background:#fff; color:#132d42; }
#khv4-root .nav-contact span { font-size:17px; font-weight:400; }
#khv4-root .menu-button { display:none; align-items:center; justify-content:center; flex-direction:column; gap:7px; width:44px; height:44px; border:0; color:inherit; background:transparent; cursor:pointer; }
#khv4-root .menu-button span { display:block; width:25px; height:1px; background:currentColor; transition:transform .28s; }
#khv4-root .menu-button[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }
#khv4-root .menu-button[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }
#khv4-root .mobile-nav[hidden] { display:none !important; }
#khv4-root .mobile-nav { position:absolute; z-index:31; right:0; left:0; top:100%; display:flex; flex-direction:column; padding:16px var(--page-gutter) 27px; background:rgba(4,22,36,.98); box-shadow:0 20px 34px rgba(0,0,0,.15); border-bottom:1px solid rgba(255,255,255,.14); }
#khv4-root .mobile-nav a { display:flex; justify-content:space-between; padding:17px 2px; font-size:15px; border-bottom:1px solid rgba(255,255,255,.14); }
#khv4-root .hero-inner { position:relative; z-index:1; flex:1; width:100%; display:flex; align-items:center; padding:145px var(--page-gutter) 235px; }
#khv4-root .hero-content { width:min(100%, 825px); padding-top:20px; }
#khv4-root .hero-eyebrow { display:flex; align-items:center; gap:15px; margin:0 0 36px; color:#e2e8eb; font-weight:500; font-size:14px; letter-spacing:.18em; }
#khv4-root .hero-eyebrow-rule { width:34px; height:1px; background:#cfb188; flex-shrink:0; }
#khv4-root .hero-heading { margin:0; font-family:var(--serif); font-size:clamp(48px, 5.1vw, 79px); line-height:1.37; letter-spacing:-.053em; font-weight:650; color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.07); }
#khv4-root .heading-line { display:block; overflow:hidden; padding:0 0 .12em; margin-bottom:-.12em; }
#khv4-root .heading-ink { display:inline-block; }
#khv4-root .hero-description { margin-top:39px; width:min(90%, 580px); color:#e3ebef; }
#khv4-root .hero-description p { margin:0; font-size:clamp(15px,1.1vw,17px); line-height:2.02; letter-spacing:.027em; font-weight:400; }
#khv4-root .hero-actions { display:flex; align-items:center; gap:27px; margin-top:35px; }
#khv4-root .action { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:57px; font-size:14px; font-weight:700; white-space:nowrap; transition:background .3s, color .3s, transform .3s; }
#khv4-root .action:hover { transform:translateY(-2px); }
#khv4-root .action--primary { min-width:264px; padding:14px 19px 14px 24px; background:#fbfcfd; color:#122b40; }
#khv4-root .action--primary:hover { background:#e3ebf0; }
#khv4-root .action-arrow { font-size:22px; line-height:1; font-weight:300; }
#khv4-root .action--secondary { border-bottom:1px solid rgba(255,255,255,.7); padding:7px 1px; min-height:auto; font-weight:500; color:rgba(255,255,255,.95); }
#khv4-root .action--secondary:hover { color:#fff; border-color:#fff; }
#khv4-root .hero-bottom { position:absolute; bottom:0; left:var(--page-gutter); right:var(--page-gutter); z-index:4; display:grid; grid-template-columns:minmax(205px,.9fr) minmax(0,2.7fr); align-items:start; gap:35px; padding:22px 0 47px; border-top:1px solid rgba(247,248,249,.42); }
#khv4-root .hero-bottom-heading { display:flex; flex-direction:column; gap:11px; padding:10px 0 0; }
#khv4-root .hero-bottom-kicker { font-family:var(--serif); font-weight:600; font-size:17px; letter-spacing:.12em; }
#khv4-root .hero-bottom-meta { font-size:12px; color:rgba(231,236,241,.7); letter-spacing:.05em; }
#khv4-root .hero-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
#khv4-root .metric { padding:0 clamp(17px,2.6vw,42px); border-left:1px solid rgba(239,243,248,.28); }
#khv4-root .metric:first-child { border-left:0; padding-left:0; }
#khv4-root .metric-figure { display:flex; align-items:baseline; gap:5px; line-height:1.18; white-space:nowrap; }
#khv4-root .metric-number { font-family:var(--serif); font-size:clamp(37px, 3.6vw, 58px); font-weight:480; letter-spacing:-.05em; font-variant-numeric: tabular-nums lining-nums; }
#khv4-root .metric-unit { font-size:clamp(13px,1.2vw,17px); letter-spacing:.04em; }
#khv4-root .metric-label { margin:7px 0 0; color:#e8eff3; font-size:13px; font-weight:500; letter-spacing:.07em; }
#khv4-root .hero-stat-note { position:absolute; right:0; bottom:17px; font-size:10px; color:rgba(235,239,242,.65); letter-spacing:.035em; }
#khv4-root .scroll-cue { position:absolute; z-index:3; right:var(--page-gutter); top:50%; display:flex; flex-direction:column; align-items:center; gap:16px; transform:translateY(-15%); font-size:10px; letter-spacing:.24em; color:rgba(255,255,255,.79); writing-mode:vertical-rl; }
#khv4-root .scroll-cue-line { position:relative; display:block; overflow:hidden; width:1px; height:70px; background:rgba(255,255,255,.3); }
#khv4-root .scroll-cue-line::before { content:""; position:absolute; top:-45px; left:0; width:1px; height:45px; background:white; animation:khv4-scroll-mark 2.5s ease-in-out infinite; }
@keyframes khv4-hero-image-in { from { transform:scale(1.1); filter:saturate(.75) contrast(1.09) brightness(.77); } to { transform:scale(1); filter:saturate(.81) contrast(1.04) brightness(.89); } }
@keyframes khv4-fade-slide { from { opacity:0; transform:translateY(17px); } to { opacity:1; transform:translateY(0); } }
@keyframes khv4-heading-up { from { transform:translateY(117%); } to { transform:translateY(0); } }
@keyframes khv4-scroll-mark { 0% { transform:translateY(0); } 68%,100% { transform:translateY(120px); } }
#khv4-root.khv4-motion .hero-background img { animation:khv4-hero-image-in 2.2s cubic-bezier(.16,1,.3,1) both; }
#khv4-root.khv4-motion .heading-line:nth-child(1) .heading-ink { animation:khv4-heading-up 1.1s .32s cubic-bezier(.21,.95,.3,1) both; }
#khv4-root.khv4-motion .heading-line:nth-child(2) .heading-ink { animation:khv4-heading-up 1.1s .55s cubic-bezier(.21,.95,.3,1) both; }
#khv4-root.khv4-motion .entrance { animation:khv4-fade-slide .9s cubic-bezier(.22,.7,.25,1) both; }
#khv4-root.khv4-motion .entrance--one { animation-delay:.16s; }
#khv4-root.khv4-motion .entrance--two { animation-delay:1s; }
#khv4-root.khv4-motion .entrance--three { animation-delay:1.22s; }
#khv4-root.khv4-motion .entrance--four { animation-delay:1.35s; }
@media (min-width: 1650px) {
#khv4-root .hero-inner { padding-left:max(var(--page-gutter),calc((100vw - 1540px)/2)); }
}
@media (max-width:1150px) {
#khv4-root .site-header { gap:22px; }
#khv4-root .site-nav { gap:18px; }
#khv4-root .site-nav a, #khv4-root .nav-contact { font-size:12px; }
#khv4-root .hero-content { width:min(100%,740px); }
#khv4-root .hero-heading { font-size:clamp(45px,5.4vw,66px); }
#khv4-root .hero-bottom { grid-template-columns: minmax(160px,.55fr) minmax(0,2.5fr); gap:15px; }
#khv4-root .metric { padding:0 23px; }
#khv4-root .scroll-cue { display:none; }
}
@media (max-width:860px) {
#khv4-root { --page-gutter:clamp(22px,5vw,40px); }
#khv4-root .site-header { height:82px; }
#khv4-root .site-nav, #khv4-root .nav-contact { display:none; }
#khv4-root .menu-button { display:flex; margin-left:auto; }
#khv4-root { min-height:860px; min-height:max(860px,100svh); }
#khv4-root .hero-inner { padding-top:135px; padding-bottom:235px; }
#khv4-root .hero-content { width:700px; }
#khv4-root .hero-heading { font-size:clamp(44px,6.8vw,62px); }
#khv4-root .hero-bottom { grid-template-columns:1fr; padding-bottom:41px; gap:13px; }
#khv4-root .hero-bottom-heading { flex-direction:row; align-items:center; gap:20px; padding-top:0; }
#khv4-root .hero-metrics { width:100%; }
#khv4-root .metric:first-child { padding-left:0; }
#khv4-root .metric { padding:0 20px; }
#khv4-root .hero-stat-note { bottom:13px; }
}
@media (max-width:600px) {
#khv4-root { --page-gutter:23px; }
#khv4-root .site-header { height:72px; border-color:rgba(255,255,255,.3); }
#khv4-root .site-brand { min-width:0; }
#khv4-root .site-brand-qual { font-size:10px; }
#khv4-root .site-brand-name { font-size:18px; }
#khv4-root { min-height:860px; min-height:max(860px,100svh); }
#khv4-root .hero-background img { object-fit:cover; object-position:52% 17%; height:56%; filter:saturate(.92) brightness(.94); }
#khv4-root .hero-scrim { background:
    linear-gradient(180deg,rgba(5,21,33,.55) 0%,rgba(4,19,32,.0) 13%,rgba(4,19,32,.05) 26%, rgba(4,19,32,.69) 32%,#061a2a 43%,#061a2a 100%),
    linear-gradient(90deg,rgba(4,19,30,.17),transparent 75%); }
#khv4-root .hero-inner { align-items:initial; padding:318px var(--page-gutter) 195px; }
#khv4-root .hero-content { width:100%; padding-top:0; }
#khv4-root .hero-eyebrow { font-size:11px; margin-bottom:17px; gap:10px; letter-spacing:.12em; }
#khv4-root .hero-eyebrow-rule { width:23px; }
#khv4-root .hero-heading { font-size:clamp(29px,8.3vw,40px); line-height:1.4; letter-spacing:-.06em; }
#khv4-root .hero-description { width:100%; margin-top:15px; }
#khv4-root .hero-description p { font-size:13.5px; line-height:1.85; letter-spacing:-.01em; }
#khv4-root .desktop-break { display:none; }
#khv4-root .hero-actions { flex-direction:column; align-items:stretch; gap:15px; margin-top:22px; }
#khv4-root .action--primary { width:100%; padding:13px 18px; min-height:50px; }
#khv4-root .action--secondary { width:max-content; min-height:32px; font-size:13px; }
#khv4-root .hero-bottom { left:var(--page-gutter);right:var(--page-gutter); padding:17px 0 35px; gap:18px; }
#khv4-root .hero-bottom-heading { display:flex; align-items:center; gap:11px; }
#khv4-root .hero-bottom-kicker { font-size:13px; }
#khv4-root .hero-bottom-meta { font-size:11px; }
#khv4-root .hero-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
#khv4-root .metric { border-left:1px solid rgba(239,243,248,.28); padding:0 8px 0 12px; }
#khv4-root .metric:first-child { padding-left:0; }
#khv4-root .metric-number { font-size:clamp(27px, 7.3vw, 36px); }
#khv4-root .metric-unit { font-size:11px; }
#khv4-root .metric-figure { gap:2px; }
#khv4-root .metric-label { margin-top:5px; font-size:11px; letter-spacing:0; }
#khv4-root .hero-stat-note { right:0; bottom:9px; font-size:10px; }
#khv4-root .mobile-break { display:initial; }
}
@media (max-width:360px) {
#khv4-root { min-height:895px; }
#khv4-root .hero-inner { padding-top:320px; }
#khv4-root .hero-heading { font-size:27px; }
#khv4-root .hero-description p { font-size:12.8px; }
#khv4-root .metric-number { font-size:25px; }
#khv4-root .metric-unit { font-size:10px; }
}
@media (prefers-reduced-motion: reduce) {
#khv4-root *, #khv4-root *::before, #khv4-root *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
#khv4-root .hero-background img { transform:none !important; }
}
/* Hide legacy header and duplicate metrics only after the new hero was inserted. */
html.khv270-live [data-khv270-hidden="1"] { display:none !important; }
#khv4-root .mobile-nav[hidden] { display:none !important; }
#khv4-root .khv4-after { display:block; height:0; }


/* v2.7.1: keep the presenter fully in frame and restore unmistakable navigation. */
#khv4-root { overflow: hidden !important; }
#khv4-root .hero-background {
  inset: 100px 0 0 !important;
  width:100% !important;
  height:auto !important;
  overflow:hidden;
}
#khv4-root .hero-background img {
  object-position:53% 11% !important;
}
#khv4-root #khv4-site-header {
  position:absolute !important;
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  z-index:900 !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  min-height:100px;
  background:rgba(6,22,35,.91);
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
  isolation:isolate;
}
#khv4-root #khv4-site-header .site-nav {
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
}
#khv4-root #khv4-site-header .site-brand,
#khv4-root #khv4-site-header .nav-contact { display:flex !important; visibility:visible !important; opacity:1 !important; }
/* Slow, sustained motion after the opening animation: no sudden looping text. */
@keyframes khv271-idle-photo {
  from { transform:scale(1); }
  to { transform:scale(1.038); }
}
#khv4-root.khv4-motion .hero-background {
  animation:khv271-idle-photo 16s ease-in-out 2.25s infinite alternate;
  transform-origin:53% 18%;
}
@media (max-width: 860px) {
  #khv4-root .hero-background { inset:82px 0 0 !important; }
  #khv4-root #khv4-site-header { min-height:82px; }
  #khv4-root #khv4-site-header .site-nav,
  #khv4-root #khv4-site-header .nav-contact { display:none !important; }
  #khv4-root #khv4-site-header .menu-button { display:flex !important; }
}
@media (max-width:600px) {
  #khv4-root .hero-background { inset:72px 0 0 !important; }
  #khv4-root .hero-background img { object-position:53% 8% !important; }
  #khv4-root #khv4-site-header { min-height:72px; }
  #khv4-root .hero-inner { padding-top:330px; }
}
@media (prefers-reduced-motion:reduce) {
  #khv4-root.khv4-motion .hero-background { animation:none !important; transform:none !important; }
}

/* v2.7.2: preserve source photo composition and avoid head clipping. */
html.khv272-server [data-khv270-hidden="1"],
html.khv270-live [data-khv270-hidden="1"] {display:none!important}
#khv4-root .hero-background img {object-position:52% 0% !important}
@media(max-width:860px){#khv4-root .hero-background img {object-position:52% 0% !important}}
@media(max-width:600px){#khv4-root .hero-background img {object-position:53% 0% !important}}

/* v2.7.3: legibility polish, without changing the approved composition. */
#khv4-root .site-brand-qual {font-size:13px;}
#khv4-root .site-nav a,
#khv4-root .nav-contact {font-size:15px;}
#khv4-root .hero-eyebrow {font-size:16px;}
#khv4-root .hero-description p {font-size:clamp(17px,1.3vw,19px);line-height:1.88;}
#khv4-root .action {font-size:16px;}
#khv4-root .hero-bottom-meta {font-size:14px;}
#khv4-root .metric-label {font-size:15px;}
#khv4-root .metric-unit {font-size:clamp(14px,1.3vw,18px);}
#khv4-root .hero-stat-note {font-size:12px;bottom:12px;}
#khv4-root .scroll-cue {font-size:12px;}
@media(max-width:1150px) and (min-width:861px) {
  #khv4-root .site-nav {gap:14px;}
  #khv4-root .site-nav a,
  #khv4-root .nav-contact {font-size:14px;}
  #khv4-root .nav-contact {gap:12px;padding-inline:12px;}
}
@media(max-width:600px) {
  #khv4-root .site-brand-qual {font-size:11px;}
  #khv4-root .site-brand-name {font-size:19px;}
  #khv4-root .hero-eyebrow {font-size:13px;}
  #khv4-root .hero-description p {font-size:15px;line-height:1.82;}
  #khv4-root .action {font-size:15px;}
  #khv4-root .hero-bottom-kicker {font-size:14px;}
  #khv4-root .hero-bottom-meta {font-size:12px;}
  #khv4-root .metric-label {font-size:12px;}
  #khv4-root .metric-unit {font-size:12px;}
  #khv4-root .hero-stat-note {font-size:11px;bottom:8px;}
}
@media(max-width:360px) {
  #khv4-root .hero-description p {font-size:14px;}
  #khv4-root .metric-label {font-size:11.5px;}
  #khv4-root .metric-unit {font-size:11px;}
}
