:root {
  --ink: #10100f;
  --paper: #f7f7f5;
  --white: #ffffff;
  --line: #d8d8d2;
  --muted: #66665f;
  --soft: #ecece7;
  --dark: #181817;
  --max: 1440px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, "Noto Sans JP", sans-serif;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 20; padding: .75rem 1rem; background: var(--ink); color: white; }
.skip-link:focus { top: 1rem; }

.site-header {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 76px;
  max-width: var(--max);
  margin: auto;
  padding: 0 32px;
  border-bottom: 1px solid var(--line);
}
.wordmark { font-weight: 600; letter-spacing: -.04em; font-size: 1.3rem; }
nav { display: flex; gap: 32px; font-size: .82rem; }
nav a, footer a { transition: opacity .2s ease; }
nav a:hover, footer a:hover { opacity: .5; }
.menu-button, .mobile-nav { display: none; }

.hero {
  min-height: calc(100vh - 76px);
  max-width: var(--max);
  margin: auto;
  padding: clamp(80px, 12vw, 180px) 32px 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.eyebrow { margin: 0; font-size: .73rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.hero h1 {
  max-width: 1100px;
  margin: 40px 0 48px;
  font-size: clamp(3.6rem, 8.1vw, 8.5rem);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.065em;
}
.hero-profile { display: grid; grid-template-columns: 1fr minmax(320px, 500px); gap: clamp(48px, 8vw, 120px); align-items: end; margin: 0 0 88px; }
.hero-copy { max-width: 660px; margin: 0; font-size: clamp(1.2rem, 2vw, 1.75rem); line-height: 1.55; letter-spacing: -.025em; }
.portrait { margin: 0; }
.portrait img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 22%; background: white; }
.portrait figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 12px; color: var(--muted); font-size: .7rem; }
.hero-meta { display: flex; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 20px; font-size: .82rem; }
.social-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 28px; }

.statement {
  min-height: 78vh;
  display: grid;
  place-content: center;
  gap: 56px;
  padding: 120px 32px;
  color: white;
  background: var(--dark);
}
.statement blockquote { margin: 0; font-size: clamp(2.6rem, 6vw, 6.2rem); font-weight: 400; line-height: 1.18; letter-spacing: -.055em; }
.statement p { max-width: 580px; margin: 0 0 0 auto; color: #bcbcb4; font-size: 1.05rem; }

.section { max-width: var(--max); margin: auto; padding: 120px 32px 160px; display: grid; grid-template-columns: 1fr 3fr; gap: 64px; }
.section-label { display: flex; align-items: baseline; gap: 14px; }
.section-label span { color: var(--muted); font-size: .7rem; }
.section-label h2 { margin: 0; font-size: .82rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.section-content { max-width: 960px; }
.section-content > h3 { margin: 0 0 32px; font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 400; letter-spacing: -.04em; }

.featured { padding-top: 140px; padding-bottom: 180px; }
.featured-lead { margin-bottom: 80px; }
.featured-lead h3 { margin: 40px 0 0; font-size: clamp(2.5rem, 5vw, 5.5rem); line-height: 1.08; font-weight: 400; letter-spacing: -.055em; }
.featured-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.feature-card { min-height: 300px; padding: 28px 28px 28px 0; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; transition: background .2s ease, padding .2s ease; }
.feature-card:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line); }
.feature-card:hover { background: var(--white); padding-left: 28px; }
.feature-card.primary { grid-column: 1 / -1; min-height: 440px; }
.feature-card.primary h3 { max-width: 850px; font-size: clamp(2rem, 4.5vw, 4.7rem); }
.card-meta { color: var(--muted); font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; }
.feature-card h3 { max-width: 520px; margin: auto 0 32px; font-size: clamp(1.5rem, 2.6vw, 2.7rem); line-height: 1.25; font-weight: 400; letter-spacing: -.04em; }
.card-link { font-size: .75rem; }

.roles { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); margin-bottom: 120px; }
.roles article { padding: 24px 24px 80px 0; border-bottom: 1px solid var(--line); }
.roles article + article { padding-left: 24px; border-left: 1px solid var(--line); }
.roles p { margin: 0; font-size: .93rem; }
.role-org { min-height: 64px; margin-bottom: 36px !important; color: var(--muted); font-size: .75rem !important; }
.roles span { color: var(--muted); }
.clean-list, .lined-list, .project-list { margin: 0 0 120px; padding: 0; list-style: none; }
.credentials { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.credentials li { min-height: 190px; padding: 24px; background: var(--white); display: flex; flex-direction: column; justify-content: space-between; }
.credentials strong { font-size: 1.05rem; font-weight: 500; }
.credentials span { color: var(--muted); font-size: .76rem; }
.lined-list li { display: grid; grid-template-columns: 1fr 1.7fr; gap: 32px; padding: 20px 0; border-top: 1px solid var(--line); }
.lined-list li:last-child { border-bottom: 1px solid var(--line); }
.lined-list span { color: var(--muted); font-size: .82rem; }
.lined-list strong { font-weight: 400; }

.section.dark { max-width: none; background: var(--dark); color: white; }
.section.dark > *:first-child { margin-left: max(0px, calc((100vw - var(--max)) / 2)); }
.section.dark > *:last-child { margin-right: max(0px, calc((100vw - var(--max)) / 2)); }
.dark .section-label span, .dark .year { color: #85857e; }
.timeline article { display: grid; grid-template-columns: 140px 1fr; gap: 40px; padding: 0 0 80px; margin-bottom: 80px; border-bottom: 1px solid #383836; }
.timeline article:last-child { margin-bottom: 0; }
.year { padding-top: 8px; font-size: .75rem; }
.timeline h3 { margin: 0 0 24px; font-size: clamp(1.7rem, 3.2vw, 3.3rem); font-weight: 400; letter-spacing: -.045em; }
.timeline p { max-width: 720px; color: #bcbcb4; }
.career-intro { display: grid; grid-template-columns: 140px 1fr; gap: 20px 40px; margin-bottom: 96px; }
.career-intro .eyebrow { padding-top: 12px; }
.career-intro h3 { margin: 0; font-size: clamp(2.5rem, 5vw, 5rem); line-height: 1.08; font-weight: 400; letter-spacing: -.055em; }
.career-intro > p:last-child { grid-column: 2; max-width: 680px; margin: 16px 0 0; color: var(--muted); }
.timeline { border-top: 1px solid var(--ink); }
.timeline article { grid-template-columns: 120px minmax(220px, .9fr) minmax(280px, 1.2fr); gap: 28px; padding: 28px 0; margin: 0; border-bottom: 1px solid var(--line); }
.timeline .year { padding-top: 3px; color: var(--muted); }
.career-heading h3 { margin: 0 0 9px; font-size: 1.2rem; line-height: 1.45; font-weight: 500; letter-spacing: -.02em; }
.career-role { margin: 0; color: var(--ink) !important; font-size: .85rem; line-height: 1.55; }
.career-note { margin: 0; color: var(--muted) !important; font-size: .94rem !important; line-height: 1.75 !important; }
.career-current .year::after { content: "Current"; display: block; width: max-content; margin-top: 8px; padding: 2px 7px; border: 1px solid var(--ink); color: var(--ink); font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; }

.large-copy { max-width: 900px; margin: 0 0 96px; font-size: clamp(1.8rem, 3.8vw, 4rem); line-height: 1.32; letter-spacing: -.045em; }
.expertise-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.expertise-grid article { min-height: 330px; padding: 24px 24px 32px 0; display: flex; flex-direction: column; }
.expertise-grid article + article { padding-left: 24px; border-left: 1px solid var(--line); }
.expertise-grid span { color: var(--muted); font-size: .7rem; }
.expertise-grid h3 { margin: auto 0 24px; font-size: 1.25rem; font-weight: 500; }
.expertise-grid p { margin: 0; color: var(--muted); font-size: .84rem; }

.section.soft { max-width: none; background: var(--soft); }
.section.soft > *:first-child { margin-left: max(0px, calc((100vw - var(--max)) / 2)); }
.section.soft > *:last-child { margin-right: max(0px, calc((100vw - var(--max)) / 2)); }
.project-list li { display: grid; grid-template-columns: 120px 1fr 1.4fr; gap: 24px; padding: 18px 0; border-top: 1px solid #c8c8c1; align-items: baseline; }
.project-list li:last-child { border-bottom: 1px solid #c8c8c1; }
.project-list span { color: var(--muted); font-size: .72rem; }
.project-list p { margin: 0; }
.project-list strong { font-weight: 400; color: var(--muted); }
.speaking { margin-top: 160px; padding: 80px; color: white; background: var(--dark); }
.speaking h3 { max-width: 700px; margin: 56px 0 48px; font-size: clamp(2.5rem, 5vw, 5.5rem); line-height: 1.06; font-weight: 400; letter-spacing: -.055em; }
.speaking > p:last-child { max-width: 680px; margin-left: auto; color: #bcbcb4; }
.selected-links { margin-top: 160px; }
.link-groups { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 48px; border-top: 1px solid #c8c8c1; }
.link-groups article { min-height: 260px; padding: 28px 28px 48px 0; border-bottom: 1px solid #c8c8c1; display: flex; flex-direction: column; align-items: flex-start; }
.link-groups article:nth-child(even) { padding-left: 28px; border-left: 1px solid #c8c8c1; }
.link-groups h3 { margin: 0 0 auto; font-size: 1.2rem; font-weight: 500; }
.link-groups a { margin-top: 12px; color: var(--muted); font-size: .8rem; border-bottom: 1px solid transparent; }
.link-groups a:hover { color: var(--ink); border-color: var(--ink); }

.closing { min-height: 75vh; max-width: var(--max); margin: auto; padding: 160px 32px 48px; display: flex; flex-direction: column; }
.closing h2 { max-width: 1000px; margin: auto 0; font-size: clamp(3rem, 7.6vw, 8rem); line-height: 1; font-weight: 400; letter-spacing: -.06em; }
.closing a { align-self: flex-end; padding-bottom: 8px; border-bottom: 1px solid var(--ink); font-size: .9rem; }
.closing a span { margin-left: 24px; }
footer { max-width: var(--max); margin: auto; padding: 24px 32px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; font-size: .72rem; }
.footer-copy { display: grid; gap: 7px; max-width: 760px; }
.footer-disclaimer { color: var(--muted); font-size: .62rem; line-height: 1.5; }
footer > a { flex: 0 0 auto; align-self: flex-start; margin-left: 24px; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { display: none; }
  .menu-button { display: block; border: 0; background: none; color: var(--ink); opacity: 1; font: inherit; font-size: .78rem; cursor: pointer; }
  .mobile-nav { position: absolute; top: 76px; left: 0; right: 0; padding: 24px 32px; background: var(--paper); border-bottom: 1px solid var(--line); }
  .mobile-nav:not([hidden]) { display: grid; gap: 18px; }
  .hero { min-height: 800px; }
  .hero-profile { grid-template-columns: 1fr 40%; }
  .section { grid-template-columns: 1fr; gap: 72px; }
  .roles, .credentials, .expertise-grid { grid-template-columns: 1fr; }
  .featured-grid, .link-groups { grid-template-columns: 1fr; }
  .feature-card:nth-child(even), .link-groups article:nth-child(even) { padding-left: 0; border-left: 0; }
  .feature-card.primary { grid-column: auto; }
  .roles article, .roles article + article { min-height: 0; padding: 24px 0 48px; border-left: 0; }
  .role-org { min-height: 0; margin-bottom: 20px !important; }
  .credentials li { min-height: 150px; }
  .expertise-grid article, .expertise-grid article + article { min-height: 220px; padding: 24px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .speaking { padding: 56px 32px; }
  .career-intro { grid-template-columns: 1fr; }
  .career-intro > p:last-child { grid-column: 1; }
  .timeline article { grid-template-columns: 110px 1fr; }
  .career-note { grid-column: 2; }
}

@media (max-width: 600px) {
  .site-header, .hero, .section, .closing, footer { padding-left: 20px; padding-right: 20px; }
  .hero { min-height: calc(100svh - 76px); padding-top: 72px; }
  .hero h1 { font-size: clamp(3rem, 15vw, 5rem); }
  .hero-profile { grid-template-columns: 1fr; gap: 40px; margin-bottom: 64px; }
  .hero-copy { margin: 0; }
  .portrait { width: calc(100% + 40px); margin-left: -20px; }
  .portrait figcaption { padding-left: 20px; padding-right: 20px; }
  .hero-meta { gap: 16px; align-items: flex-end; }
  .social-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    width: 100%;
    gap: 8px 16px;
    text-align: left;
  }
  .social-links a {
    display: flex;
    align-items: center;
    min-width: 0;
    height: 100%;
    white-space: nowrap;
  }
  .statement { padding: 100px 20px; }
  .section { padding-top: 88px; padding-bottom: 112px; }
  .lined-list li, .timeline article, .project-list li { grid-template-columns: 1fr; gap: 6px; }
  .timeline article { gap: 20px; }
  .career-note { grid-column: 1; }
  .project-list strong { margin-top: 4px; }
  .speaking { margin-left: -20px; margin-right: -20px; padding: 64px 20px; }
  .closing { min-height: 620px; padding-top: 100px; }
}

@media (max-width: 320px) {
  .social-links { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* SB OAI Japan inspired — light profile edition */
:root {
  --ink: #0a1830;
  --paper: #ffffff;
  --white: #ffffff;
  --line: #d9e1eb;
  --muted: #607087;
  --soft: #f3f7fb;
  --dark: #07162d;
  --blue: #1668e8;
  --cyan: #22b8e6;
}

body {
  background: var(--paper);
  color: var(--ink);
  overflow-x: hidden;
}

.site-header {
  position: sticky;
  top: 0;
  max-width: none;
  min-height: 72px;
  padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px));
  padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px));
  background: rgba(255, 255, 255, .82);
  border-color: rgba(10, 24, 48, .12);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.wordmark {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #07162d 0 48%, #1c7df0 48% 72%, #21c1df 72%);
  font-size: .78rem;
  letter-spacing: -.02em;
}

nav { gap: 34px; }
nav a { position: relative; color: #263b58; }
nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -9px;
  width: 100%;
  height: 1px;
  background: var(--blue);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s ease;
}
nav a:hover { opacity: 1; }
nav a:hover::after { transform: scaleX(1); transform-origin: left; }

.hero {
  position: relative;
  isolation: isolate;
  max-width: none;
  min-height: calc(100vh - 72px);
  padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px));
  padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px));
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0) 70%, #fff 100%),
    linear-gradient(115deg, #fff 0 48%, #f3f9ff 78%, #eefaff 100%);
}

.hero::before,
.hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  filter: blur(4px);
  pointer-events: none;
}

.hero::before {
  width: min(58vw, 900px);
  aspect-ratio: 1;
  top: -28%;
  right: -10%;
  background: radial-gradient(circle at 38% 42%, rgba(255,255,255,.95) 0 10%, rgba(48,199,232,.55) 28%, rgba(40,111,239,.24) 48%, rgba(255,255,255,0) 70%);
}

.hero::after {
  width: min(35vw, 520px);
  aspect-ratio: 1;
  right: 26%;
  bottom: 0;
  background: radial-gradient(circle, rgba(72,136,255,.16), rgba(255,255,255,0) 68%);
}

.hero > * { position: relative; }
.hero .eyebrow { color: var(--blue); }
.hero h1 {
  max-width: 1180px;
  color: #08162c;
  font-size: clamp(3.6rem, 7.4vw, 7.8rem);
  line-height: 1.03;
  letter-spacing: -.07em;
}

.hero-profile { grid-template-columns: minmax(0, 1fr) minmax(300px, 460px); }
.hero-copy { max-width: 590px; color: #334861; }
.portrait { position: relative; padding: 10px; background: rgba(255,255,255,.7); box-shadow: 0 28px 80px rgba(22,104,232,.14); }
.portrait::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  background: linear-gradient(135deg, rgba(22,104,232,.5), rgba(34,184,230,.12) 48%, rgba(255,255,255,.8));
}
.portrait figcaption { padding: 13px 3px 3px; }
.hero-meta { border-color: #cdd9e8; }
.social-links a { color: var(--blue); }

.statement {
  position: relative;
  min-height: 88vh;
  color: var(--ink);
  background: #f3f8fd;
  overflow: hidden;
}
.statement::before {
  content: "Philosophy";
  position: absolute;
  top: 48px;
  left: 32px;
  color: var(--blue);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.statement::after {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  left: -180px;
  bottom: -260px;
  border: 1px solid rgba(22,104,232,.15);
  border-radius: 50%;
  box-shadow: 0 0 0 72px rgba(22,104,232,.035), 0 0 0 144px rgba(34,184,230,.025);
}
.statement blockquote { position: relative; z-index: 1; color: #0a1c37; }
.statement p { position: relative; z-index: 1; color: #556a82; }

.section { position: relative; }
.section-label span { color: var(--blue); }
.section-label h2 { color: #213a59; }
.section-content > h3 { color: #0a1c37; }
.featured { max-width: none; background: #fff; }
.featured > *:first-child { margin-left: max(0px, calc((100vw - var(--max)) / 2)); }
.featured > *:last-child { margin-right: max(0px, calc((100vw - var(--max)) / 2)); }
.featured-lead .eyebrow { color: var(--blue); }
.feature-card { position: relative; overflow: hidden; }
.feature-card::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -100px;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(35,172,232,.18), rgba(255,255,255,0) 67%);
  opacity: 0;
  transition: opacity .3s ease;
}
.feature-card:hover { background: #f7fbff; }
.feature-card:hover::after { opacity: 1; }
.card-meta, .card-link { color: var(--blue); }

#about { background: #f6f9fc; max-width: none; }
#about > *:first-child { margin-left: max(0px, calc((100vw - var(--max)) / 2)); }
#about > *:last-child { margin-right: max(0px, calc((100vw - var(--max)) / 2)); }
.credentials li { border: 1px solid #dce6f1; box-shadow: 0 12px 40px rgba(34,67,110,.05); }

.section.dark {
  background:
    radial-gradient(circle at 78% 10%, rgba(31,115,236,.22), transparent 35%),
    #07162d;
}
.dark .section-label h2 { color: #fff; }
.dark .section-label span { color: #68c9f1; }
.timeline h3 { color: #fff; }
.timeline p { color: #b8c7d9; }
.timeline article { border-color: rgba(255,255,255,.16); }

#expertise { background: #fff; }
.large-copy { color: #0a1c37; }
.expertise-grid article { border-color: #dbe5ef; }
.expertise-grid span { color: var(--blue); }

.section.soft { background: #eef5fb; }
.project-list li, .link-groups, .link-groups article { border-color: #cdd9e6; }
.speaking {
  background:
    radial-gradient(circle at 82% 20%, rgba(34,184,230,.24), transparent 32%),
    linear-gradient(135deg, #081a34, #0c2853);
  box-shadow: 0 28px 90px rgba(7,32,71,.18);
}
.speaking .eyebrow { color: #66d7f5; }
.link-groups a:hover { color: var(--blue); border-color: var(--blue); }

.closing {
  position: relative;
  max-width: none;
  padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px));
  padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px));
  background: linear-gradient(135deg, #fff 25%, #edf8ff 100%);
  overflow: hidden;
}
.closing::after {
  content: "";
  position: absolute;
  right: -180px;
  bottom: -240px;
  width: 620px;
  height: 620px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(33,173,230,.25), rgba(43,106,233,.08) 43%, transparent 70%);
}
.closing > * { position: relative; z-index: 1; }
.closing .eyebrow { color: var(--blue); }
.closing a { color: var(--blue); border-color: var(--blue); }
footer { max-width: none; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }

@media (max-width: 900px) {
  .site-header { padding-left: 24px; padding-right: 24px; }
  .mobile-nav { top: 72px; background: rgba(255,255,255,.97); }
  .hero { padding-left: 24px; padding-right: 24px; }
  .hero::before { width: 780px; right: -430px; top: -180px; }
  .hero-profile { grid-template-columns: 1fr 42%; }
  .featured > *:first-child, .featured > *:last-child,
  #about > *:first-child, #about > *:last-child { margin: 0; }
}

@media (max-width: 600px) {
  .site-header { padding-left: 20px; padding-right: 20px; }
  .hero { padding-left: 20px; padding-right: 20px; }
  .hero h1 { font-size: clamp(3rem, 14vw, 4.8rem); }
  .hero-profile { grid-template-columns: 1fr; }
  .portrait { width: calc(100% + 20px); margin-left: -10px; }
  .statement::before { left: 20px; }
  .closing, footer { padding-left: 20px; padding-right: 20px; }
}

/* Compact first view */
.hero {
  min-height: calc(100svh - 72px);
  padding-top: clamp(44px, 6vh, 72px);
  padding-bottom: 24px;
  justify-content: flex-start;
}
.hero-heading { display: grid; grid-template-columns: 1fr 3fr; gap: 48px; align-items: start; }
.hero-heading .eyebrow { padding-top: 10px; }
.hero h1 {
  max-width: 900px;
  margin: 0 0 clamp(36px, 5vh, 64px);
  font-size: clamp(3rem, 5.7vw, 6.1rem);
  line-height: 1.04;
}
.hero-profile {
  grid-template-columns: minmax(0, 1.3fr) minmax(260px, 390px);
  gap: clamp(40px, 7vw, 96px);
  margin: 0 0 28px;
  align-items: stretch;
}
.hero-overview { display: grid; grid-template-columns: 1fr 1.2fr; align-content: start; gap: 24px 40px; padding-top: 10px; border-top: 1px solid #cdd9e8; }
.hero-name { display: flex; flex-direction: column; gap: 2px; }
.hero-name strong { font-size: clamp(1.55rem, 2.3vw, 2.4rem); font-weight: 500; letter-spacing: -.04em; }
.hero-name span { color: var(--muted); font-size: .76rem; }
.hero-current-roles { display: grid; gap: 12px; }
.hero-current-roles p { margin: 0; padding-bottom: 11px; border-bottom: 1px solid var(--line); line-height: 1.45; }
.hero-current-roles span { display: block; margin-bottom: 2px; color: var(--muted); font-size: .72rem; }
.hero-current-roles strong { display: block; color: var(--ink); font-size: .82rem; font-weight: 500; }
.hero-current-roles .hero-role-ja,
.hero-current-roles .hero-role-en { margin: 0; color: inherit; font-size: inherit; line-height: 1.4; }
.hero-copy { grid-column: 1 / -1; max-width: 620px; font-size: clamp(1rem, 1.45vw, 1.28rem); line-height: 1.55; }
.hero-credentials { grid-column: 1 / -1; }
.hero-credentials-label { margin: 0 0 9px; color: var(--muted); font-size: .7rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.hero-tags { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; border: 0; }
.hero-tags li { min-height: 72px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 0; color: var(--muted); background: #f7f7f7; font-size: .68rem; line-height: 1.4; letter-spacing: .01em; }
.hero-tags strong { display: block; margin-top: 5px; color: var(--ink); font-size: .86rem; font-weight: 500; }
.portrait { max-width: 390px; justify-self: end; }
.portrait img { max-height: 310px; aspect-ratio: 4 / 3; object-position: 50% 20%; }
.hero-meta { margin-top: auto; }

@media (max-width: 900px) {
  .hero-heading { grid-template-columns: 1fr; gap: 14px; }
  .hero-heading .eyebrow { padding-top: 0; }
  .hero-profile { grid-template-columns: 1fr 38%; gap: 36px; }
  .hero-overview { grid-template-columns: 1fr; gap: 18px; }
  .hero-copy, .hero-credentials { grid-column: 1; }
  .hero-tags { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .hero { min-height: auto; padding-top: 42px; }
  .hero h1 { margin-bottom: 36px; font-size: clamp(2.8rem, 13vw, 4.2rem); }
  .hero-profile { grid-template-columns: 1fr; gap: 28px; }
  .hero-overview { grid-template-columns: 1fr 1fr; gap: 18px; }
  .hero-copy, .hero-credentials { grid-column: 1 / -1; }
  .portrait { width: 100%; max-width: none; margin: 0; }
  .portrait img { max-height: none; }
  .hero-meta { margin-top: 28px; }
}

/* Final minimal direction */
:root {
  --ink: #111111;
  --paper: #ffffff;
  --line: #d9d9d9;
  --muted: #666666;
  --soft: #ffffff;
  --dark: #111111;
  --blue: #111111;
  --cyan: #111111;
}

body,
.hero,
.statement,
.featured,
#about,
.section.dark,
#expertise,
.section.soft,
.closing {
  color: var(--ink);
  background: #fff;
}

.site-header {
  background: rgba(255,255,255,.96);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.wordmark {
  width: auto;
  height: auto;
  display: block;
  color: var(--ink);
  background: none;
  font-size: .9rem;
  letter-spacing: .02em;
}

nav a,
.hero .eyebrow,
.featured-lead .eyebrow,
.card-meta,
.card-link,
.social-links a,
.section-label span,
.section-label h2,
.closing .eyebrow,
.closing a {
  color: var(--ink);
}

nav a::after { background: var(--ink); }

.hero {
  background: #fff;
}
.hero::before,
.hero::after,
.statement::after,
.feature-card::after,
.closing::after {
  display: none;
}
.hero h1,
.section-content > h3,
.featured-lead h3,
.large-copy,
.timeline h3,
.closing h2 {
  color: var(--ink);
}
.hero-copy,
.hero-current-roles span,
.hero-name span,
.portrait figcaption,
.statement p,
.timeline p,
.project-list strong,
.link-groups a {
  color: var(--muted);
}
.hero-current-roles strong { color: var(--ink); }
.portrait {
  padding: 0;
  background: #fff;
  box-shadow: none;
}
.portrait::before { display: none; }
.portrait img { background: #f5f5f5; }
.hero-tags li { color: #444; border-color: var(--line); }

.statement {
  min-height: 72vh;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.statement::before { color: var(--ink); }
.statement blockquote { color: var(--ink); }

.feature-card:hover { background: #f7f7f7; }
.credentials li {
  border: 1px solid var(--line);
  box-shadow: none;
}

.section.dark .section-label h2,
.section.dark .section-label span,
.dark .section-label h2,
.dark .section-label span,
.timeline h3 {
  color: var(--ink);
}
.timeline article { border-color: var(--line); }
.dark .year { color: var(--muted); }

.expertise-grid article,
.project-list li,
.link-groups,
.link-groups article {
  border-color: var(--line);
}

.speaking {
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: none;
}
.speaking .eyebrow,
.speaking h3 { color: var(--ink); }
.speaking > p:last-child { color: var(--muted); }
.link-groups a:hover { color: var(--ink); border-color: var(--ink); }
.closing { border-top: 1px solid var(--line); }
.closing a { border-color: var(--ink); }

@media (max-width: 900px) {
  .mobile-nav { background: #fff; }
}

/* Japanese typesetting */
:lang(ja),
body {
  line-break: strict;
  word-break: auto-phrase;
  overflow-wrap: break-word;
  hanging-punctuation: allow-end;
}

h1,
h2,
h3,
blockquote,
.large-copy,
.hero-copy,
.speaking p,
.timeline p {
  text-wrap: pretty;
}

.hero h1,
.statement blockquote,
.featured-lead h3,
.speaking h3,
.closing h2 {
  text-wrap: balance;
}

.roles p,
.lined-list strong,
.project-list strong,
.feature-card h3,
.credentials li,
.link-groups a {
  line-break: strict;
  word-break: auto-phrase;
}

/* Readability scale */
body { font-size: 17px; line-height: 1.78; }
nav { font-size: .9rem; }
.eyebrow { font-size: .82rem; line-height: 1.5; }
.section-label span { font-size: .78rem; }
.section-label h2 { font-size: .92rem; }

.hero h1 { font-size: clamp(3.2rem, 5.9vw, 6.3rem); }
.hero-name strong { font-size: clamp(1.75rem, 2.5vw, 2.55rem); }
.hero-name span { font-size: .86rem; }
.hero-current-roles span { font-size: .78rem; }
.hero-current-roles strong { font-size: .9rem; line-height: 1.55; }
.hero-copy { font-size: clamp(1.08rem, 1.5vw, 1.32rem); line-height: 1.7; }
.hero-tags li { padding: 14px 16px; border: 1px solid var(--line); border-radius: 0; font-size: .78rem; }
.hero-meta { font-size: .9rem; }
.portrait figcaption { font-size: .8rem; }

.statement p { font-size: 1.12rem; line-height: 1.9; }
.section-content > h3 { font-size: clamp(2rem, 3.1vw, 3.1rem); }
.roles p { font-size: 1rem; line-height: 1.75; }
.role-org { font-size: .86rem !important; }
.credentials strong { font-size: 1.12rem; line-height: 1.6; }
.credentials span { font-size: .86rem; line-height: 1.7; }
.lined-list span { font-size: .9rem; }
.lined-list strong { font-size: 1rem; }

.card-meta { font-size: .8rem; }
.feature-card h3 { font-size: clamp(1.65rem, 2.7vw, 2.8rem); line-height: 1.35; }
.card-link { font-size: .86rem; }
.year { font-size: .85rem; }
.timeline p { font-size: 1.02rem; line-height: 1.9; }
.expertise-grid span { font-size: .8rem; }
.expertise-grid h3 { font-size: 1.35rem; }
.expertise-grid p { font-size: .94rem; line-height: 1.8; }

.project-list span { font-size: .82rem; }
.project-list p,
.project-list strong { font-size: .96rem; }
.speaking > p:last-child { font-size: 1.02rem; line-height: 1.9; }
.link-groups h3 { font-size: 1.3rem; }
.link-groups a { font-size: .92rem; line-height: 1.65; }
.closing a { font-size: 1rem; }
footer { font-size: .82rem; }

@media (max-width: 600px) {
  body { font-size: 16px; }
  .hero h1 { font-size: clamp(2.8rem, 13vw, 4.2rem); }
  .section-content > h3 { font-size: clamp(1.8rem, 8vw, 2.5rem); }
  .timeline p, .speaking > p:last-child { font-size: 1rem; }
}

/* Minimal credentials strip */
.hero-credentials-label { margin-bottom: 10px; }
.hero-tags {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.hero-tags li {
  min-height: 82px;
  padding: 13px 16px 13px 0;
  border: 0;
  background: transparent;
}
.hero-tags li + li {
  padding-left: 16px;
  border-left: 1px solid var(--line);
}
.hero-tags strong { margin-top: 4px; }

@media (max-width: 900px) {
  .hero-tags { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-tags li:nth-child(3) { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .hero-tags li:nth-child(4) { border-top: 1px solid var(--line); }
}

@media (max-width: 600px) {
  .hero-tags { grid-template-columns: 1fr; }
  .hero-tags li,
  .hero-tags li + li,
  .hero-tags li:nth-child(3),
  .hero-tags li:nth-child(4) {
    min-height: 0;
    padding: 12px 0;
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .hero-tags li:first-child { border-top: 0; }
}

/* Featured video */
.video-feature {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(0, 1.7fr);
  gap: 48px;
  padding: 40px 0;
  border-bottom: 1px solid var(--line);
}
.video-copy { display: flex; flex-direction: column; align-items: flex-start; }
.video-copy h3 { margin: auto 0 28px; font-size: clamp(1.65rem, 2.8vw, 3rem); line-height: 1.3; font-weight: 400; letter-spacing: -.04em; }
.video-frame { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #111; }
.video-frame img { width: 100%; height: 100%; display: block; object-fit: cover; transition: opacity .2s ease; }
.video-frame:hover img { opacity: .86; }
.play-button { position: absolute; inset: 50% auto auto 50%; width: 58px; height: 58px; display: grid; place-items: center; padding-left: 4px; color: #fff; background: rgba(0,0,0,.78); border-radius: 50%; transform: translate(-50%, -50%); font-size: 1rem; }

@media (max-width: 900px) {
  .video-feature { grid-template-columns: 1fr; gap: 28px; }
  .video-copy h3 { margin: 32px 0 20px; }
}

/* Compact featured cards */
.featured { padding-top: 104px; padding-bottom: 120px; }
.featured-lead { margin-bottom: 48px; }
.featured-lead h3 { margin-top: 24px; font-size: clamp(2rem, 3.5vw, 3.8rem); }
.featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 22px; border-top: 0; }
.feature-card,
.feature-card:nth-child(even),
.feature-card.primary {
  min-height: 0;
  padding: 0 0 20px;
  border: 0;
  border-bottom: 1px solid var(--line);
}
.feature-card:hover,
.feature-card:nth-child(even):hover { padding: 0 0 20px; background: transparent; }
.feature-card::after { display: none; }
.feature-thumb {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  margin-bottom: 18px;
  overflow: hidden;
  background: #f1f1f1;
}
.feature-thumb:empty { display: none; }
.feature-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease, opacity .2s ease; }
.feature-card:hover .feature-thumb img { transform: scale(1.025); opacity: .9; }
.feature-card .card-meta { display: block; margin-bottom: 9px; font-size: .7rem; }
.feature-card h3 { min-height: 3.1em; margin: 0 0 16px; font-size: clamp(1rem, 1.35vw, 1.25rem); line-height: 1.55; letter-spacing: -.025em; }
.feature-card .card-link { margin-top: auto; font-size: .76rem; }
.feature-thumb .play-button { width: 46px; height: 46px; font-size: .78rem; }

/* First-view contact */
.hero-contact {
  grid-column: 1 / -1;
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 28px;
  padding: 12px 0 10px;
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  font-size: .92rem;
  line-height: 1.4;
  font-weight: 600;
  transition: gap .2s ease, color .2s ease, border-color .2s ease;
}
.hero-contact:hover { gap: 36px; color: var(--blue); border-color: var(--blue); }

.closing-links { align-self: flex-end; display: flex; align-items: center; gap: 30px; }
.closing .closing-links a { align-self: auto; }
.closing .contact-link { font-weight: 600; }
.hero-bottom-contact { display: inline-flex; align-items: center; gap: 22px; font-weight: 600; }
.hero-bottom-contact:hover { color: var(--blue); }
.hero-tags a { position: relative; display: block; height: 100%; color: inherit; }
.hero-tags a > span { position: absolute; top: 0; right: 0; color: var(--muted); font-size: .72rem; transition: color .2s ease, transform .2s ease; }
.hero-tags a:hover > span { color: var(--ink); transform: translate(2px, -2px); }
.hero-tags a:hover strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.career-detail { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.career-detail > * { grid-column: 1; }
.timeline-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.timeline-links a { position: relative; min-width: 0; display: flex; flex-direction: column; padding: 0; overflow: hidden; border: 1px solid #383836; color: #f5f5ef; }
.timeline-links a::after { content: "↗"; position: absolute; right: 12px; bottom: 12px; color: #85857e; font-size: .72rem; }
.timeline-links img { width: 100%; aspect-ratio: 16 / 9; display: block; object-fit: cover; background: #262624; }
.timeline-links span { width: 100%; min-width: 0; min-height: 44px; display: flex; align-items: center; padding: 10px 32px 10px 12px; color: #f5f5ef; font-size: .72rem; line-height: 1.3; font-weight: 500; white-space: nowrap; }
.timeline-links strong { display: block; margin-top: 3px; color: #f5f5ef; font-size: .72rem; line-height: 1.4; font-weight: 500; }
.timeline-links a:hover { border-color: #85857e; }
.activities-heading { display: flex; justify-content: space-between; gap: 32px; align-items: flex-end; margin-bottom: 30px; }
.activities-heading h3 { margin: 0; }
.activities-heading a { flex: 0 0 auto; padding-bottom: 7px; border-bottom: 1px solid var(--ink); font-size: .88rem; font-weight: 600; }

@media (max-width: 600px) {
  .timeline-links { grid-template-columns: 1fr; }
  .activities-heading { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 600px) {
  .closing-links { width: 100%; align-items: flex-start; flex-direction: column; gap: 18px; }
  .hero-meta { align-items: flex-start; flex-direction: column; }
}

/* Scannable expertise */
#expertise .large-copy { max-width: 820px; margin-bottom: 64px; font-size: clamp(1.65rem, 3vw, 3rem); line-height: 1.4; }
.expertise-grid { gap: 18px; border-top: 0; }
.expertise-grid article,
.expertise-grid article + article {
  min-height: 0;
  padding: 24px;
  border: 1px solid var(--line);
  background: #fafafa;
}
.expertise-grid span { color: var(--muted); font-size: .68rem; font-weight: 600; letter-spacing: .08em; }
.expertise-grid h3 { margin: 28px 0 22px; font-size: 1.28rem; line-height: 1.4; }
.expertise-grid ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.expertise-grid li { padding: 6px 10px; border: 1px solid var(--line); background: var(--paper); color: #555; font-size: .78rem; line-height: 1.45; }
.expertise-activities {
  margin-top: 42px;
  padding-top: 30px;
  border-top: 1px solid var(--line);
}
.expertise-activities > p {
  max-width: 780px;
  margin: 0 0 24px;
  color: var(--muted);
  font-size: .96rem;
  line-height: 1.85;
}
.expertise-activities ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.expertise-activities li {
  position: relative;
  padding-left: 16px;
  color: var(--ink);
  font-size: .9rem;
  line-height: 1.65;
}
.expertise-activities li::before {
  content: "";
  position: absolute;
  top: .78em;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--muted);
}

/* Current roles: corporate and public responsibilities */
.roles {
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.roles article,
.roles article + article {
  min-height: 188px;
  padding: 24px;
  border: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.role-org { min-height: 52px; margin-bottom: 24px !important; }
.about-intro {
  max-width: 820px;
  margin: 0 0 64px;
}
.about-en h4 {
  max-width: none;
  margin: 0 0 12px;
  color: var(--ink);
  font-size: clamp(1.1rem, 2.2vw, 2rem);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.025em;
  white-space: nowrap;
}
.about-intro p {
  margin: 0;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 2;
}
.about-intro p + p { margin-top: 18px; }
.about-intro .about-position {
  margin-bottom: 32px;
  color: var(--ink);
  font-size: clamp(1.08rem, 1.7vw, 1.35rem);
  font-weight: 500;
  line-height: 1.55;
}
.about-position .about-position-entry { margin: 0; }
.about-position .about-position-entry-compact { line-height: 1.32; }
.about-position .about-position-entry-compact > strong { display: block; }
.about-position .about-position-entry + .about-position-entry { margin-top: 20px; }
.about-position .about-position-org,
.about-position .about-position-ja-title,
.about-position .about-position-en { display: block; }
.about-position .about-position-credentials {
  margin: 24px 0 0;
  color: var(--ink);
  font-size: .78em;
  font-weight: 600;
  line-height: 1.8;
}
.about-position-credential-line { display: block; color: var(--ink); }
.about-position-credential-line + .about-position-credential-line { margin-top: .7em; }
.about-position-en { margin-left: 0; }
.about-position span { color: var(--muted); font-size: .86em; font-weight: 400; }
.about-position strong { color: var(--ink); font-weight: 600; }
.about-position .about-position-org { color: var(--ink); font-size: .82em; font-weight: 600; }
.about-position strong span,
.about-position .about-position-credentials span,
.about-position .about-position-credentials strong { color: inherit; font-size: inherit; font-weight: inherit; }
.about-intro .about-focus-summary {
  margin: 0 0 24px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-size: 1.08rem;
  line-height: 1.8;
}
.about-ja {
  margin-top: 0;
}
.about-kicker {
  margin: 0 0 18px !important;
  color: var(--ink) !important;
  font-size: .74rem !important;
  font-weight: 400;
  line-height: 1.4 !important;
  letter-spacing: .09em;
}
.roles-heading {
  margin: 0 0 18px;
  color: var(--ink);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .08em;
}
.role-link { position: relative; display: block; height: 100%; color: inherit; }
.role-arrow { position: absolute; top: 0; right: 0; color: var(--muted); font-size: .78rem; transition: transform .2s ease, color .2s ease; }
.role-link:hover .role-arrow { color: var(--ink); transform: translate(2px, -2px); }
.role-link:hover > p:last-child { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.role-split-links { display: grid; gap: 8px; }
.role-split-links a { display: flex; justify-content: space-between; gap: 12px; color: var(--ink); font-size: .9rem; line-height: 1.45; }
.role-split-links a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.roles { margin-bottom: 96px; }
.main-activities { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.activities-heading { order: 0; }
.education-activity { order: 1; }
.enterprise-activity { order: 2; }
.activities-heading {
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 18px;
  max-width: none;
  padding: 64px 0 56px;
}
.activities-heading h3 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.32rem, 3.8vw, 3.1rem);
  font-weight: 450;
  line-height: 1.25;
  letter-spacing: -.05em;
  white-space: nowrap;
}
.activities-heading > p {
  margin: 0;
  max-width: 800px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.9;
}
.activity-domain {
  display: grid;
  grid-template-columns: minmax(250px, .5fr) minmax(0, 1.5fr);
  gap: 36px;
  padding: 38px 0 48px;
  border-top: 1px solid var(--line);
}
.activity-domain.education-activity,
.activity-domain.enterprise-activity { grid-template-columns: 1fr; }
.activity-domain-heading { display: flex; gap: 18px; align-items: baseline; }
.activity-domain-heading span {
  color: var(--muted);
  font-size: .68rem;
  letter-spacing: .08em;
}
.activity-domain-heading h4 {
  margin: 0;
  color: var(--ink);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.activity-domain-body { min-width: 0; }
.education-activity-visual {
  width: 88%;
  margin: 0 auto 36px;
}
.education-activity-visual img {
  display: block;
  width: 100%;
  height: auto;
}
.activity-domain-body > p {
  max-width: 720px;
  margin: 0;
  color: var(--muted);
  line-height: 1.9;
}
.education-activity .ongoing-activities { margin: 0; }
.education-activity .project-list { margin: 0; }
.agile-activity-links {
  margin-top: 4px;
}
.agile-activity-list { margin: 0; }
.about-hero-visual {
  width: 84%;
  margin: 0 auto 56px;
  overflow: hidden;
  border: 1px solid var(--line);
}
.section-content > .about-main-heading {
  margin: 0 0 28px;
  color: var(--ink);
  font-size: clamp(1.6rem, 3.4vw, 3rem);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -.035em;
}
.about-hero-visual img {
  display: block;
  width: 100%;
  height: auto;
}
.agile-card-group { display: grid; gap: 8px; }
.agile-card-group + .agile-card-group { margin-top: 24px; }
.agile-card-group h5 {
  margin: 0;
  color: var(--ink);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.5;
}
.agile-card-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.agile-activity-links .activity-link-copy { display: grid; gap: 4px; }
.agile-activity-links .activity-link-copy small { color: var(--muted); font-size: .62rem; line-height: 1.35; }
.agile-activity-links .activity-link-copy strong { color: var(--ink); font-size: .76rem; font-weight: 550; line-height: 1.45; }
.domain-activity-more { margin-top: 30px; }
.domain-activity-more summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  font-size: .88rem;
  font-weight: 600;
}
.domain-activity-more summary::-webkit-details-marker { display: none; }
.domain-activity-more summary span { color: currentColor; font-size: 1.25rem; line-height: 1; transition: transform .2s ease; }
.domain-activity-more[open] summary span { transform: rotate(45deg); }
.domain-activity-more .project-list { margin: 12px 0 0; }
.domain-activity-more .project-list li > span,
.domain-activity-more .project-list li > p,
.domain-activity-more .project-list li > strong { display: block; min-width: 0; }
.domain-activity-more .project-list li > p { color: var(--ink); font-weight: 600; }
.domain-activity-more .project-list li > strong { color: var(--muted); font-weight: 400; }

@media (max-width: 1100px) {
  .activity-domain { grid-template-columns: 1fr; gap: 24px; }
  .activity-domain-heading h4 { max-width: 100%; }
}
.about-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: -72px 0 104px; }
.lined-list + .about-related { margin-top: 28px; margin-bottom: 0; }
.about-related a { display: grid; grid-template-columns: 106px 1fr; gap: 14px; align-items: center; padding: 10px; border: 1px solid var(--line); color: var(--ink); }
.about-related img { width: 106px; aspect-ratio: 16 / 9; display: block; object-fit: cover; background: #f2f2f2; }
.about-related span { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.about-related strong { display: block; margin-top: 4px; color: var(--ink); font-size: .78rem; line-height: 1.4; font-weight: 500; }
.about-related a:hover { border-color: var(--ink); }
.credentials li { position: relative; }
.credentials li > a { position: relative; display: block; height: 100%; padding-right: 24px; color: inherit; }
.credentials li i { position: absolute; top: 0; right: 0; color: var(--muted); font-size: .76rem; font-style: normal; transition: transform .2s ease, color .2s ease; }
.credentials li > a:hover i { color: var(--ink); transform: translate(2px, -2px); }
.credentials li > a:hover strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }

@media (max-width: 900px) {
  #about { gap: 28px; }
  .about-intro { margin-bottom: 48px; }
  .about-intro p { font-size: .96rem; line-height: 1.9; }
  .roles { grid-template-columns: 1fr; }
  .roles article,
  .roles article + article { min-height: 0; padding: 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .role-org { min-height: 0; margin-bottom: 14px !important; }
  .about-related { grid-template-columns: 1fr; margin-top: -56px; }
  .lined-list + .about-related { margin-top: 24px; }
  .activity-domain { gap: 24px; }
  .about-hero-visual { width: 92%; margin-right: auto; margin-bottom: 44px; margin-left: auto; }
}

@media (max-width: 600px) {
  .expertise-activities { margin-top: 30px; padding-top: 24px; }
  .expertise-activities > p { margin-bottom: 20px; font-size: .92rem; }
  .expertise-activities ul { grid-template-columns: 1fr; gap: 8px; }
  .education-activity-visual { width: 100%; margin-bottom: 28px; }
  .about-hero-visual { width: 100%; margin-bottom: 28px; }
  .about-en h4 { font-size: .78rem; letter-spacing: -.035em; }
  .about-intro { margin-bottom: 52px; }
  .about-position .about-position-credentials { font-size: .72em; line-height: 1.85; }
  .roles { margin-bottom: 72px; }
  .activities-heading { padding: 48px 0 40px; }
  .activities-heading h3 { font-size: clamp(1.32rem, 5.4vw, 2rem); }
  .activities-heading > p { font-size: .92rem; line-height: 1.82; }
  .activity-domain { gap: 20px; padding: 30px 0 38px; }
  .activity-domain-heading { gap: 12px; }
  .domain-activity-more .project-list li { gap: 7px; padding: 20px 0; }
  .agile-activity-links { grid-template-columns: 1fr; }
}

/* Responsive career timeline */
@media (max-width: 900px) {
  .timeline article { grid-template-columns: 92px minmax(0, 1fr); gap: 18px 24px; }
  .timeline .career-detail { grid-column: 2; min-width: 0; }
  .timeline-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline-links { gap: 10px; margin-top: 14px; }
  .timeline-links a { min-height: 0; padding: 0; }
  .timeline-links img { width: 100%; }
  .timeline-links span { font-size: .68rem; }
}

@media (max-width: 600px) {
  .career-intro { gap: 14px; margin-bottom: 56px; }
  .career-intro .eyebrow { padding-top: 0; }
  .career-intro h3 { font-size: clamp(2.15rem, 10.5vw, 3.2rem); line-height: 1.16; }
  .career-intro > p:last-child { margin-top: 8px; font-size: .94rem; line-height: 1.8; }
  .timeline article { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 26px 0 30px; }
  .timeline .year { display: flex; align-items: center; gap: 10px; padding: 0; font-size: .76rem; }
  .timeline .year::before { content: ""; width: 18px; height: 1px; background: #85857e; }
  .timeline .career-heading,
  .timeline .career-detail { grid-column: 1; min-width: 0; }
  .career-heading h3 { margin-bottom: 6px; font-size: 1.14rem; line-height: 1.5; overflow-wrap: anywhere; }
  .career-role { font-size: .8rem; line-height: 1.6; }
  .career-note { font-size: .9rem !important; line-height: 1.78 !important; }
  .timeline-links { grid-template-columns: 1fr; gap: 9px; margin-top: 14px; }
  .timeline-links a { min-height: 0; padding: 0; }
  .timeline-links img { width: 100%; }
  .timeline-links span { font-size: .61rem; }
  .timeline-links strong { font-size: .73rem; overflow-wrap: anywhere; }
  .career-current .year::after { margin: 0; }
}

/* Progressive disclosure */
.featured-more { grid-column: 1 / -1; }
.featured-more summary,
.career-archive summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  list-style: none;
  font-size: .84rem;
  font-weight: 600;
}
.featured-more summary::-webkit-details-marker,
.career-archive summary::-webkit-details-marker { display: none; }
.featured-more summary span,
.career-archive summary span {
  color: currentColor;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  opacity: 1;
  transition: transform .2s ease;
}
.featured-more[open] summary span,
.career-archive[open] summary span { transform: rotate(45deg); }
.featured-more-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 22px; padding-top: 28px; }
.career-archive { grid-column: 1 / -1; }
.career-archive summary {
  padding-right: 14px;
  padding-left: 14px;
  color: #111;
  background: #fff;
  border-color: #b8b8b8;
  font-size: .94rem;
  font-weight: 700;
  letter-spacing: .01em;
}
.career-archive summary span { color: #111; }
.career-archive-list { padding-top: 4px; }

.social-activities-more { margin-top: 48px; }
.support-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  margin-top: 48px;
  padding: 24px 0 28px;
  border-top: 1px solid var(--line);
}
.support-overview p { margin: 0; }
.support-title { margin: 0; color: var(--ink); font-size: clamp(1.55rem, 2.5vw, 2.15rem); font-weight: 500; line-height: 1.35; letter-spacing: -.025em; }
.support-content { width: 100%; min-width: 0; }
.support-description { margin-top: 18px !important; color: var(--muted); line-height: 1.9; }
.support-label { color: var(--ink); font-size: clamp(1.1rem, 1.55vw, 1.3rem); font-weight: 600; line-height: 1.5; letter-spacing: -.01em; }
.no-break { white-space: nowrap; }
.support-overview + .social-activities-more { margin-top: 0; }
.social-activities-more summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  font-size: .94rem;
  font-weight: 600;
}

@media (max-width: 600px) {
  .support-overview { grid-template-columns: 1fr; gap: 12px; padding: 22px 0 24px; }
  .support-title { margin-bottom: 8px; }
  .support-description { line-height: 1.8; }
}
.social-activities-more summary::-webkit-details-marker { display: none; }
.social-activities-more summary span {
  color: currentColor;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  opacity: 1;
  transition: transform .2s ease;
}
.social-activities-more[open] summary span { transform: rotate(45deg); }
.social-activities-more .lined-list { margin-top: 0; }
.social-activities-more h4 {
  margin: 36px 0 12px;
  color: var(--ink);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .06em;
}
.social-activities-more .lined-list,
.social-activities-more .project-list { margin-bottom: 0; }
.ongoing-activities { margin-top: 52px; }
.ongoing-activities h4 {
  margin: 0 0 12px;
  color: var(--ink);
  font-size: .88rem;
  font-weight: 650;
  letter-spacing: .04em;
}
.ongoing-activities .project-list { margin-bottom: 0; }
.activity-link-tile {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 54px;
  margin-top: 4px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  text-decoration: none;
}
.activity-link-group {
  grid-column: 2 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  margin-top: 4px;
}
.project-list > li > .activity-link-tile { grid-column: 2 / -1; }
.project-list .activity-link-thumb {
  display: grid;
  place-items: center;
  align-self: stretch;
  padding: 8px;
  background: #f4f5f6;
  color: var(--ink);
  font-size: .64rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-align: center;
}
.project-list .activity-link-copy { min-width: 0; color: var(--ink); font-size: .82rem; line-height: 1.45; writing-mode: horizontal-tb; word-break: normal; overflow-wrap: anywhere; }
.project-list .activity-link-arrow { padding-right: 14px; color: var(--ink); font-size: .85rem; }
.activity-link-image { width: 96px; height: 64px; display: block; object-fit: cover; }
.activity-link-image.activity-link-logo { padding: 8px; background: #fff; object-fit: contain; }
.activity-link-tile:has(.activity-link-image),
.activity-link-video { grid-template-columns: 96px minmax(0, 1fr) auto; }
.activity-link-tile:not(:has(.activity-link-image)) { grid-template-columns: minmax(0, 1fr) auto; padding-left: 14px; }
.activity-link-tile:hover { border-color: var(--ink); }

@media (max-width: 900px) {
  .featured-more-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .featured-more-grid { grid-template-columns: 1fr; gap: 26px; }
  .featured-more summary,
  .career-archive summary { padding: 18px 0; font-size: .9rem; }
  .social-activities-more { margin-top: 36px; }
  .ongoing-activities { margin-top: 36px; }
  .social-activities-more summary { padding: 16px 0; font-size: .9rem; }
  .activity-link-group { grid-column: 1; grid-template-columns: 1fr; margin-top: 10px; }
  .project-list > li > .activity-link-tile { grid-column: 1; margin-top: 10px; }
}

/* Talks page */
.talks-section { background: #fff; }
.talks-intro { margin-bottom: 58px; }
.talks-intro h3 { margin: 14px 0 20px; font-size: clamp(2rem, 4vw, 4rem); line-height: 1.15; font-weight: 400; letter-spacing: -.05em; }
.talks-intro > p:last-child { max-width: 680px; color: var(--muted); }
.talk-item { display: grid; grid-template-columns: minmax(210px, .75fr) minmax(280px, 1.25fr) minmax(210px, .75fr); gap: 32px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.talk-item > * { min-width: 0; }
.talk-photo { aspect-ratio: 16 / 10; overflow: hidden; background: #f1f1f1; }
.talk-photo:empty { display: none; }
.talk-item:not(:has(.talk-photo img)) { grid-template-columns: minmax(280px, 1.25fr) minmax(210px, .75fr); }
.talk-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.talk-photo.logo-display { display: grid; place-items: center; padding: 28px; background: #fff; border: 1px solid var(--line); }
.talk-photo.logo-display img { height: auto; object-fit: contain; }
.talk-photo.techno-event-visual { padding: 0; background: #fff; }
.talk-photo.techno-event-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.talk-photo.portrait-crop img { object-position: 50% 55%; }
.talk-photo.poster-crop img { object-position: 50% 19%; }
.talk-placeholder { display: grid; place-items: center; color: var(--muted); font-size: .72rem; letter-spacing: .12em; }
.talk-year { color: var(--muted); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.talk-main h3 { margin: 12px 0 14px; font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.4; font-weight: 500; letter-spacing: -.03em; }
.talk-main p { margin: 0; color: var(--muted); font-size: .88rem; }
.talk-item dl { margin: 0; }
.talk-item dl > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding: 9px 0; border-top: 1px solid var(--line); }
.talk-item dt { color: var(--muted); font-size: .7rem; }
.talk-item dd { min-width: 0; margin: 0; font-size: .78rem; line-height: 1.5; overflow-wrap: anywhere; }
.talk-item dd a { border-bottom: 1px solid var(--ink); }
.talks-more summary { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); cursor: pointer; list-style: none; font-size: .84rem; font-weight: 600; }
.talks-more summary::-webkit-details-marker { display: none; }
.talks-more summary span {
  color: currentColor;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  opacity: 1;
  transition: transform .2s ease;
}
.talks-more[open] summary span { transform: rotate(45deg); }

@media (max-width: 1100px) {
  .talk-item { grid-template-columns: 180px minmax(0, 1fr); }
  .talk-item:not(:has(.talk-photo img)) { grid-template-columns: minmax(0, 1fr) minmax(210px, .75fr); }
  .talk-item dl { grid-column: 2; }
}

@media (max-width: 600px) {
  .talk-item { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
  .talk-item:not(:has(.talk-photo img)) { grid-template-columns: 1fr; }
  .talk-item dl { grid-column: 1; }
  .talk-main h3 { font-size: 1.28rem; }
  .talks-more summary { padding: 16px 0; font-size: .8rem; }
}

/* Final mobile containment */
@media (max-width: 600px) {
  html, body { max-width: 100%; overflow-x: clip; }
  .statement {
    width: 100%;
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
    place-content: center stretch;
    padding-right: 20px;
    padding-left: 20px;
  }
  .career-intro {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
  }
  .career-intro > * { width: 100%; max-width: 100%; min-width: 0; }
  .section,
  .section.dark,
  .section.soft,
  #about,
  #expertise,
  .talks-section { width: 100%; max-width: 100%; padding-left: 20px; padding-right: 20px; overflow: hidden; }
  .section > *,
  .section-content,
  .section.dark > *:first-child,
  .section.dark > *:last-child,
  .section.soft > *:first-child,
  .section.soft > *:last-child,
  #about > *:first-child,
  #about > *:last-child { width: 100%; max-width: 100%; min-width: 0; margin-left: 0; margin-right: 0; }
  .hero-overview { grid-template-columns: 1fr; }
  .hero-name,
  .hero-current-roles,
  .hero-copy,
  .hero-credentials { grid-column: 1; }
  .hero-current-roles { margin-top: 4px; }
  .statement blockquote,
  .statement p { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
}

@media (max-width: 900px) {
  .expertise-grid { grid-template-columns: 1fr; }
  .expertise-grid article,
  .expertise-grid article + article { padding: 22px; border: 1px solid var(--line); }
}

@media (max-width: 900px) {
  .featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .feature-card:nth-child(even) { padding-left: 0; border-left: 0; }
}

@media (max-width: 600px) {
  .featured { padding-top: 80px; padding-bottom: 88px; }
  .featured-grid { grid-template-columns: 1fr; gap: 26px; }
  .feature-card h3 { min-height: 0; font-size: 1.08rem; }
}

/* Final readability refinements */
.timeline-links a {
  min-height: 0;
  padding: 0;
  border-color: var(--line);
  color: var(--ink);
  background: #fff;
}
.timeline-links img { width: 100%; background: #f2f4f7; }
.timeline-links span { min-height: 44px; color: var(--ink); font-size: .72rem; }
.timeline-links strong { color: var(--ink); font-size: .82rem; }
.timeline-links a:hover { border-color: var(--ink); }

.event-visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
}
.event-visual strong { font-size: clamp(1.35rem, 2.5vw, 2.25rem); line-height: 1; letter-spacing: -.04em; }
.event-visual small { font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.agile-japan-visual { color: #fff; background: radial-gradient(circle at 50% 120%, #274c9b, #071a4a 68%); }
.techno-frontier-visual { color: #172267; background: #fff; border: 1px solid var(--line); }
.techno-frontier-visual strong { font-weight: 800; letter-spacing: -.065em; }
.techno-frontier-visual strong span { color: #e4aa00; }
.techno-frontier-visual small { color: #68728a; }

@media (max-width: 900px) {
  .timeline-links a { min-height: 0; padding: 0; }
  .timeline-links img { width: 100%; }
}

@media (max-width: 600px) {
  .hero { padding-top: 44px; }
  .hero h1 { margin: 20px 0 28px; font-size: clamp(2.3rem, 10.5vw, 3.15rem); line-height: 1.04; }
  .hero-profile { gap: 22px; margin-bottom: 36px; }
  .hero-overview { gap: 14px; }
  .hero-current-roles { gap: 8px; }
  .hero-current-roles p { padding-bottom: 8px; }
  .hero-copy { font-size: 1rem; line-height: 1.65; }
  .hero-tags { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-tags li,
  .hero-tags li + li,
  .hero-tags li:nth-child(3),
  .hero-tags li:nth-child(4) {
    padding: 10px 10px 10px 0;
    border-top: 1px solid var(--line);
  }
  .hero-tags li:nth-child(2),
  .hero-tags li:nth-child(4) { padding-left: 10px; border-left: 1px solid var(--line); }
  .hero-tags li:first-child,
  .hero-tags li:nth-child(2) { border-top: 0; }
  .hero-tags li { font-size: .68rem; }
  .hero-tags strong { font-size: .78rem; }
  .portrait { width: 210px; max-width: 60vw; justify-self: end; }
  .portrait img { aspect-ratio: 1 / 1; object-position: 50% 18%; }
  .hero-meta { margin-top: 18px; }
  .timeline-links a { min-height: 0; padding: 0; }
  .timeline-links img { width: 100%; }
  .timeline-links span { font-size: .68rem; }
  .timeline-links strong { font-size: .8rem; }
}

/* Career links: consistent horizontal cards across desktop and mobile */
.timeline article {
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 18px 28px;
}

/* Profile layout: keep credentials readable and the portrait visually balanced */
@media (max-width: 900px) {
  .hero-profile {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
  }
  .hero-overview {
    width: 100%;
  }
  .hero-copy,
  .hero-credentials {
    grid-column: 1 / -1;
  }
  .hero-credentials {
    justify-self: stretch;
  }
  .portrait {
    width: min(260px, 62vw);
    max-width: 260px;
    margin: 0 auto;
    justify-self: center;
  }
}

@media (max-width: 600px) {
  .hero-credentials-label {
    margin-bottom: 12px;
  }
  .portrait {
    width: min(230px, 62vw);
    max-width: 230px;
    margin: 8px auto 0;
    justify-self: center;
  }
}
.timeline .year { grid-row: 1 / span 2; }
.timeline .career-heading,
.timeline .career-detail { grid-column: 2; min-width: 0; }
.timeline-links a {
  display: grid;
  grid-template-columns: minmax(88px, 34%) minmax(0, 1fr);
  align-items: center;
  min-height: 76px;
  padding: 8px;
  overflow: hidden;
}
.timeline-links a::after {
  right: 10px;
  bottom: 50%;
  transform: translateY(50%);
}
.timeline-links img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.timeline-links span {
  width: auto;
  min-height: 0;
  padding: 0 24px 0 10px;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 900px) {
  .timeline article { grid-template-columns: 92px minmax(0, 1fr); gap: 18px 24px; }
}

@media (max-width: 600px) {
  .timeline article { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .timeline .year { grid-row: auto; }
  .timeline .career-heading,
  .timeline .career-detail { grid-column: 1; }
  .timeline-links a { grid-template-columns: 104px minmax(0, 1fr); min-height: 76px; padding: 9px; }
  .timeline-links span { padding-left: 10px; font-size: .68rem; }
}

/* Slightly tighter page rhythm without changing section interiors */
.featured { padding-bottom: 100px; }
#about,
#career,
#talks,
#expertise { padding-bottom: 132px; }

@media (max-width: 600px) {
  .featured { padding-bottom: 74px; }
  #about,
  #career,
  #talks,
  #expertise { padding-bottom: 94px; }
}

/* Tighter rhythm across the final page sequence */
.statement { min-height: 74vh; }
#expertise { padding-bottom: 110px; }
.closing { min-height: 62vh; }

@media (max-width: 600px) {
  .statement { min-height: 74vh; }
  #expertise { padding-bottom: 78px; }
  .closing { min-height: 62vh; }
}
