:root {
  --black: #080707;
  --black-soft: #121011;
  --panel: #191415;
  --red: #da2d24;
  --red-dark: #8c1511;
  --white: #f8f4f0;
  --muted: #b9ada7;
  --line: rgba(255,255,255,.12);
  --gold: #d2a348;
  --max: 1240px;
  color: var(--white);
  background: var(--black);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  scroll-behavior: smooth;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at 78% 8%, rgba(125,16,13,.3), transparent 30%), var(--black); overflow-x: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.section { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; padding-block: 110px; }
.site-header { position: fixed; z-index: 50; top: 0; left: 0; right: 0; height: 92px; padding-inline: max(24px, calc((100vw - var(--max)) / 2)); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.08); background: linear-gradient(90deg, rgba(6,5,5,.94), rgba(48,10,9,.88), rgba(7,6,6,.94)); backdrop-filter: blur(16px); transition: .25s; }
.site-header.scrolled { height: 76px; box-shadow: 0 12px 35px rgba(0,0,0,.34); }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand img { width: 58px; height: 58px; object-fit: contain; filter: drop-shadow(0 6px 12px #000); transition: .25s; }
.scrolled .brand img { width: 48px; height: 48px; }
.brand strong, .brand small { display: block; }.brand strong { font: 700 1.08rem/1 Georgia, serif; letter-spacing: .13em; }.brand small { margin-top: 5px; color: var(--muted); font-size: .65rem; letter-spacing: .08em; }
nav { display: flex; align-items: center; gap: 32px; }
nav a { position: relative; padding-block: 10px; color: #d4cac6; text-decoration: none; font-size: .82rem; font-weight: 700; }
nav a::after { content: ""; position: absolute; left: 0; bottom: 2px; width: 0; height: 2px; background: var(--red); transition: width .2s; } nav a:hover::after { width: 100%; }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 7px; background: #1b1314; }
.menu-toggle span { display: block; width: 19px; height: 2px; margin: 4px auto; background: #fff; }

.hero { position: relative; min-height: 100svh; padding: 170px max(24px, calc((100vw - var(--max)) / 2)) 80px; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 75% 45%, rgba(222,45,36,.38), transparent 26%), linear-gradient(120deg, #070606 0%, #170a0a 52%, #5f0d0a 100%); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(105deg, transparent 0 90px, rgba(255,255,255,.018) 91px 92px); }
.hero-glow { position: absolute; width: 420px; height: 420px; border-radius: 50%; right: 12%; top: 28%; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 0 0 45px rgba(255,255,255,.018), 0 0 0 90px rgba(255,255,255,.012); }
.hero-kanji { position: absolute; z-index: -1; right: 3%; top: 11%; width: min(34vw, 470px); opacity: .13; mix-blend-mode: screen; -webkit-mask-image: linear-gradient(#000 58%, transparent 100%); mask-image: linear-gradient(#000 58%, transparent 100%); }
.hero-content { position: relative; z-index: 2; max-width: 760px; }
.kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; color: #dfc9c3; font-size: .76rem; font-weight: 800; letter-spacing: .14em; }.kicker span { width: 38px; height: 2px; background: var(--red); }
h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; }
h1 { margin: 0; font-size: clamp(3.7rem, 7vw, 7.4rem); line-height: .91; letter-spacing: -.045em; }
h1 em { color: var(--red); font-style: normal; text-shadow: 0 10px 35px rgba(218,45,36,.22); }
.hero-lead { max-width: 650px; margin: 30px 0 0; color: #d2c6c1; font-size: clamp(1.05rem, 1.5vw, 1.28rem); line-height: 1.7; }
.hero-actions { margin-top: 38px; display: flex; flex-wrap: wrap; gap: 12px; }
.button { min-height: 52px; padding: 0 21px; border: 1px solid var(--line); border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; color: #fff; text-decoration: none; font-size: .88rem; font-weight: 800; transition: transform .2s, border-color .2s, background .2s; }.button:hover { transform: translateY(-2px); }
.button-primary { border-color: #e33b31; background: linear-gradient(135deg, #e5362d, #a61712 65%, #76100d); box-shadow: 0 10px 28px rgba(218,45,36,.25); }.button-primary:hover { background: linear-gradient(135deg, #f04439, #bd1d17 65%, #86120f); }
.button-ghost { background: rgba(16,12,12,.55); backdrop-filter: blur(8px); }.button-ghost:hover { border-color: rgba(255,255,255,.35); }
.hero-mark { position: relative; justify-self: end; z-index: 2; }.hero-mark img { width: min(38vw, 480px); filter: drop-shadow(0 35px 40px rgba(0,0,0,.56)); }
.hero-foot { position: absolute; left: max(24px, calc((100vw - var(--max)) / 2)); right: max(24px, calc((100vw - var(--max)) / 2)); bottom: 30px; display: flex; align-items: center; justify-content: space-between; color: rgba(255,255,255,.43); }.hero-foot span { font: 1.35rem serif; letter-spacing: .18em; }.hero-foot p { font-size: .66rem; letter-spacing: .13em; }

.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; }.section-heading h2, .intro h2 { margin: 0; font-size: clamp(2.8rem, 5vw, 5.4rem); line-height: .98; letter-spacing: -.035em; }
.intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px 90px; }.intro-copy { align-self: end; }.intro-copy p, .sensei-copy > p, .leader-copy > p, .journey-copy > p { color: var(--muted); font-size: 1.05rem; line-height: 1.82; }.intro-copy p:first-child { margin-top: 0; color: #e2d8d4; font-size: 1.22rem; }
.principles { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.principles article { padding: 34px; border-right: 1px solid var(--line); }.principles article:last-child { border-right: 0; }.principles b { color: var(--red); font-size: .78rem; }.principles h3 { margin: 42px 0 12px; font: 500 1.7rem Georgia, serif; }.principles p { margin: 0; color: var(--muted); line-height: 1.6; }

.sensei-band { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }.sensei-visual { position: relative; height: 630px; overflow: hidden; border: 1px solid var(--line); background: linear-gradient(145deg,#080707,#42110f); }.sensei-visual > img { width: 100%; height: 100%; object-fit: cover; opacity: .36; mix-blend-mode: screen; }.future-photo { position: absolute; inset: 34px; border: 1px dashed rgba(255,255,255,.26); display: grid; place-items: center; text-align: center; color: rgba(255,255,255,.5); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.sensei-copy h2, .leader-copy h2, .journey-copy h2 { margin: 0; font-size: clamp(3rem, 5.4vw, 6rem); line-height: .92; letter-spacing: -.035em; }.role { color: #fff !important; font-weight: 800; line-height: 1.55 !important; }.signature { margin-top: 38px; color: var(--red); font: 3.2rem serif; }.signature small { margin-left: 10px; color: var(--muted); font: 700 .72rem Inter, sans-serif; letter-spacing: .2em; }

.leadership { display: grid; grid-template-columns: .78fr 1.22fr; gap: 80px; align-items: center; }.leader-copy { padding-left: 24px; }.leader-seal { margin-top: 34px; display: flex; align-items: center; gap: 14px; }.leader-seal img { width: 58px; height: 58px; object-fit: contain; }.leader-seal span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .12em; line-height: 1.5; }
.leader-photo { position: relative; margin: 0; overflow: hidden; }.leader-photo::before { content: ""; position: absolute; z-index: 2; inset: 0; box-shadow: inset 0 -150px 100px rgba(0,0,0,.55); pointer-events: none; }.leader-photo img { width: 100%; aspect-ratio: 1/1; object-fit: cover; filter: saturate(.82) contrast(1.04); transition: transform .7s; }.leader-photo:hover img { transform: scale(1.025); }.leader-photo figcaption { position: absolute; z-index: 3; left: 30px; right: 30px; bottom: 25px; display: flex; justify-content: space-between; align-items: end; }.leader-photo strong, .leader-photo span { display: block; }.leader-photo strong { font: 1.35rem Georgia,serif; }.leader-photo span { color: #cbbfba; font-size: .75rem; }

.media-section { border-top: 1px solid var(--line); }.media-section .section-heading { margin-bottom: 50px; }.video-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }.video-card { border: 1px solid var(--line); background: linear-gradient(145deg,#191314,#0d0b0b); }.video-frame { aspect-ratio: 16/9; overflow: hidden; background: #000; }.video-frame video { width: 100%; height: 100%; object-fit: contain; }.video-card > div:last-child { position: relative; min-height: 160px; padding: 28px 30px; }.video-card > div > span { position: absolute; right: 25px; top: 24px; color: var(--red); font-weight: 800; }.video-card h3 { margin: 0 45px 9px 0; font: 500 1.65rem Georgia,serif; }.video-card p { margin: 0; color: var(--muted); line-height: 1.6; }

.journey { display: grid; grid-template-columns: 1fr .8fr; gap: 80px; align-items: center; }.journey-image { margin: 0; max-height: 800px; overflow: hidden; }.journey-image img { width: 100%; height: 100%; object-fit: cover; object-position: top; }.journey-copy blockquote { margin: 40px 0 0; padding: 25px 0 25px 25px; border-left: 3px solid var(--red); color: #fff; font: italic 1.45rem/1.5 Georgia,serif; }
.closing { padding-block: 120px; text-align: center; border-top: 1px solid var(--line); background: radial-gradient(circle at 50% 45%,rgba(148,23,18,.24),transparent 40%); }.closing img { width: 110px; margin: 0 auto 30px; }.closing .kicker { justify-content: center; }.closing h2 { margin: 0; font-size: clamp(3rem,6vw,6.4rem); line-height: .95; }.closing > p:not(.kicker) { max-width: 560px; margin: 25px auto 30px; color: var(--muted); font-size: 1.05rem; line-height: 1.7; }
footer { min-height: 130px; padding-inline: max(24px, calc((100vw - var(--max)) / 2)); border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 30px; color: var(--muted); background: #060505; font-size: .76rem; }.footer-brand { display: flex; align-items: center; gap: 12px; }.footer-brand img { width: 48px; }.footer-brand strong,.footer-brand small { display:block; }.footer-brand strong { color:#fff; letter-spacing:.1em; }.footer-brand small { margin-top:4px; }.footer-brand + p { margin-left:auto; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }.reveal.is-visible { opacity: 1; transform: none; }
@media (max-width: 900px) {
  .site-header { height: 78px; }.brand img { width:48px;height:48px; }.menu-toggle { display:block; }.site-header nav { position:absolute; top:100%; left:0; right:0; padding:18px 24px 24px; display:none; flex-direction:column; align-items:stretch; gap:4px; border-bottom:1px solid var(--line); background:rgba(10,7,7,.98); }.site-header nav.open { display:flex; }.site-header nav a { padding:12px; }
  .hero { grid-template-columns:1fr; min-height:auto; padding-top:140px; padding-bottom:110px; }.hero-mark { position:absolute; right:-8%; bottom:10%; opacity:.28; }.hero-mark img { width:55vw; }.hero-content { max-width:760px; }.hero-kanji { width:55vw; right:-5%; }.hero-foot { bottom:22px; }.hero-foot p { display:none; }
  .intro,.sensei-band,.leadership,.journey { grid-template-columns:1fr; gap:45px; }.principles { grid-template-columns:1fr; }.principles article { border-right:0; border-bottom:1px solid var(--line); }.principles article:last-child { border-bottom:0; }.sensei-visual { height:520px; }.leader-copy { padding-left:0; }.leadership .leader-photo { grid-row:1; }.video-grid { grid-template-columns:1fr; }.journey-image { max-height:720px; }
}
@media (max-width: 600px) {
  .section { width:min(100% - 30px,var(--max)); padding-block:76px; }.site-header { padding-inline:15px; }.brand strong { font-size:.9rem; }.brand small { font-size:.55rem; }.hero { padding-inline:15px; }.hero h1 { font-size:clamp(3rem,16vw,4.8rem); }.hero-lead { font-size:1rem; }.hero-actions { display:grid; }.button { width:100%; }.hero-foot { left:15px;right:15px; }.section-heading { display:block; }.section-heading h2,.intro h2 { font-size:2.75rem; }.sensei-visual { height:440px; }.sensei-copy h2,.leader-copy h2,.journey-copy h2 { font-size:3.25rem; }.leader-photo figcaption { left:18px;right:18px;bottom:16px; display:block; }.leader-photo figcaption span { margin-top:4px; }.video-card > div:last-child { padding:22px; }.video-card h3 { font-size:1.4rem; }.closing { width:100%; padding-inline:18px; }.closing h2 { font-size:3.2rem; } footer { padding-block:28px; flex-direction:column; align-items:flex-start; }.footer-brand + p { margin-left:0; }
}
@media (prefers-reduced-motion: reduce) { :root { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } .reveal { opacity:1; transform:none; } }
