:root {
  --paper:#faf8f4;
  --ink:#393a35;
  --muted:#6e6b62;
  --line:#d6d0c6;
  --brown:#685444;
  --wash:#eeeae2;
  --serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:28px}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-size:16px;
  line-height:2}
a {
  color:inherit;
  text-decoration:none}
a:focus-visible {
  outline:3px solid #90785a;
  outline-offset:6px}
p,h1,h2,h3 {
  margin:0}
p+p {
  margin-top:24px}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:500}
h2 {
  font-size:clamp(27px,3vw,38px);
  line-height:1.7;
  letter-spacing:.06em}
h3 {
  font-size:22px;
  line-height:1.8}
.header {
  max-width:1320px;
  margin:auto;
  padding:25px 48px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line)}
.logo {
  font:italic 30px Georgia,serif;
  letter-spacing:.015em}
.logo span {
  display:block;
  font:11px/1.8 sans-serif;
  letter-spacing:.16em;
  margin-top:7px}
.header nav {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:13px}
.header-cta {
  border:1px solid var(--brown);
  padding:8px 23px}
.hero {
  max-width:1240px;
  margin:auto;
  padding:65px 48px 60px;
  display:grid;
  grid-template-columns:1.08fr 1fr;
  gap:45px}
.eyebrow {
  font-size:12px;
  letter-spacing:.17em;
  font-weight:500;
  color:var(--brown);
  line-height:1.8}
.hero h1 {
  font-size:clamp(32px,3.25vw,46px);
  line-height:1.7;
  letter-spacing:.04em;
  margin:25px 0}
.hero-lead {
  line-height:2.15}
.hero-event {
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid var(--line);
  max-width:395px}
.hero-event p {
  font-size:14px}
.hero-event strong {
  font:500 23px/1.9 var(--serif)}
.date {
  font:32px/1.4 Georgia,serif!important;
  letter-spacing:.025em}
.date span {
  font:12px sans-serif;
  margin-left:8px}
.date small {
  display:block;
  font:14px/2 sans-serif;
  letter-spacing:.07em;
  margin-top:7px}
.hero-event .date {
  margin-top:14px}
.button {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:15px 25px;
  background:var(--brown);
  color:#fff;
  letter-spacing:.045em;
  font-size:15px;
  line-height:1.8;
  text-align:center;
  transition:background .2s}
.button:hover {
  background:#4d4036}
.hero-event .button {
  margin-top:22px}
.hero-visual {
  position:relative;
  padding:0 27px 40px 0;
  margin-top:6px;
  align-self:stretch}
.photo {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e4ded3;
  color:#726b5e;
  overflow:hidden;
  text-align:center;
  min-width:0}
.photo:before {
  content:"";
  position:absolute;
  inset:15px;
  border:1px solid #c9c0b2;
  pointer-events:none}
.photo>div {
  padding:25px;
  z-index:1}
.photo p {
  font-size:14px;
  letter-spacing:.08em}
.photo small {
  font-size:12px}
.photo-mark {
  display:block;
  font:32px/1.5 var(--serif);
  color:#9b8b75;
  margin-bottom:10px}
.photo-index {
  position:absolute;
  top:32px;
  left:32px;
  font:11px sans-serif;
  letter-spacing:.15em}
.photo-bottom {
  position:absolute;
  bottom:33px;
  font:11px sans-serif;
  letter-spacing:.18em}
.hero-photo {
  height:100%;
  min-height:550px;
  border-radius:48% 48% 0 0}
.hero-photo .photo-index {
  top:auto;
  bottom:65px;
  left:auto}
.hero-photo:before {
  border-radius:48% 48% 0 0}
.vertical-caption {
  position:absolute;
  right:-9px;
  top:60px;
  writing-mode:vertical-rl;
  letter-spacing:.25em;
  font-family:var(--serif);
  font-size:15px}
.visual-caption {
  position:absolute;
  bottom:0;
  right:35px;
  font:italic 24px Georgia,serif;
  color:#8c7d69}
.section {
  padding:100px 24px}
.container {
  max-width:1060px;
  margin:0 auto}
.narrow {
  max-width:660px;
  margin:auto}
.intro {
  padding-top:70px;
  padding-bottom:100px}
.statement {
  font-family:var(--serif);
  font-size:29px;
  line-height:1.9;
  letter-spacing:.05em}
.intro .statement {
  margin-top:36px}
.section-heading {
  margin-bottom:48px}
.section-heading h2 {
  margin-top:15px}
.section-heading>p:last-child:not(.eyebrow) {
  margin-top:16px}
.empathy {
  background:var(--wash)}
.pain-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px 60px}
.pain-grid article {
  position:relative;
  padding:22px 0 30px 43px;
  border-top:1px solid #c9c1b4}
.small-number {
  position:absolute;
  left:0;
  top:22px;
  font:italic 20px Georgia,serif;
  color:#867660}
.pain-grid p {
  font-size:14px}
.pain-grid h3 {
  margin-top:15px}
.section-close {
  text-align:center;
  margin-top:46px;
  line-height:2.2}
.section-close em {
  font-style:normal;
  font-family:var(--serif);
  font-size:24px}
.cases {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px}
.cases article {
  border-top:1px solid var(--line);
  padding-top:20px}
.cases article>p:not(.eyebrow) {
  font-size:14px;
  min-height:64px;
  margin-top:18px}
.cases h3 {
  font-size:19px}
.case-line {
  display:block;
  height:30px;
  width:1px;
  background:#aa9a84;
  margin:10px 0 18px 4px;
  position:relative}
.case-line:after {
  content:"";
  position:absolute;
  bottom:0;
  width:7px;
  height:7px;
  border-bottom:1px solid #aa9a84;
  border-right:1px solid #aa9a84;
  transform:translateX(-3px) rotate(45deg)}
.voices {
  margin-top:55px;
  background:#f0ede7;
  padding:30px 40px}
.voices blockquote {
  font-family:var(--serif);
  font-size:18px;
  margin:15px 0}
.result-note {
  margin-top:45px}
.brand {
  background:#e9e4da}
.brand-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px}
.brand h2 {
  margin-top:15px}
.dialogue-photo {
  margin-top:32px;
  aspect-ratio:4/3}
.brand-copy {
  padding-top:45px}
.brand-copy p {
  font-size:15px}
.materials {
  line-height:2.4}
.questions {
  border-left:1px solid #a89981;
  padding-left:20px;
  margin-top:30px;
  font-family:var(--serif)}
.questions p {
  font-size:19px;
  margin-top:10px}
.brand-definition {
  text-align:center;
  border-top:1px solid #c9c0b2;
  padding-top:50px;
  margin-top:65px}
.brand-definition h2 {
  margin:20px 0}
.steps {
  max-width:880px;
  margin:auto}
.step {
  display:grid;
  grid-template-columns:150px 1fr;
  gap:35px;
  padding:40px 0;
  border-top:1px solid var(--line)}
.step:last-child {
  border-bottom:1px solid var(--line)}
.step-label {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  color:var(--brown)}
.step-label span {
  font-size:12px;
  letter-spacing:.15em}
.step-label b {
  font:64px/1.3 Georgia,serif}
.step h3 {
  font-size:27px;
  margin-bottom:20px}
.step p {
  font-size:15px}
.center-cta {
  max-width:370px;
  margin:45px auto 0;
  text-align:center}
.center-cta p {
  font-size:12px;
  margin-top:12px;
  letter-spacing:.1em}
.for-you {
  background:#f0ede7}
.audience-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:60px}
.audience-grid h2 {
  margin:15px 0 24px}
.audience-grid>div>p:not(.eyebrow) {
  font-size:15px}
.check-list {
  list-style:none;
  margin:0;
  padding:0}
.check-list li {
  position:relative;
  padding:18px 0 18px 30px;
  border-bottom:1px solid var(--line);
  font-size:15px}
.check-list li:first-child {
  padding-top:0}
.check-list li:before {
  content:"✓";
  position:absolute;
  left:0;
  color:#7c6b54}
.audience-note {
  margin-top:30px}
.closing-message {
  max-width:670px;
  margin:auto}
.closing-message h2 {
  font-size:30px;
  margin:20px 0 36px}
.closing-message .statement {
  margin:36px 0}
.host {
  max-width:670px;
  margin:55px auto 70px;
  display:flex;
  gap:28px;
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:30px}
.host-photo {
  width:140px;
  aspect-ratio:1;
  flex-shrink:0}
.host-photo:before {
  inset:8px}
.host-photo>div {
  padding:12px}
.host-photo .photo-mark {
  margin:0;
  font-size:22px}
.host-photo p {
  font-size:12px}
.host h3 {
  margin-top:7px}
.host>div>p:last-child:not(.eyebrow) {
  font-size:13px;
  margin-top:8px}
.entry-panel {
  max-width:800px;
  padding:55px 70px;
  margin:auto;
  border:1px solid #c3b7a7;
  background:#f0ece4;
  text-align:center}
.entry-panel>.eyebrow+p {
  margin-top:23px;
  font-size:14px}
.entry-panel h2 {
  font-size:30px;
  margin-top:5px}
.entry-panel .date {
  margin-top:26px;
  font-size:40px!important}
.event-details {
  text-align:left;
  margin:32px 0}
.event-details>div {
  display:grid;
  grid-template-columns:120px 1fr;
  padding:12px 0;
  border-bottom:1px solid #d0c7b9;
  font-size:14px}
.event-details dd {
  margin:0;
  color:var(--muted)}
.application-status {
  font-size:12px;
  line-height:1.9;
  margin-top:15px;
  color:#665e51;
  scroll-margin-top:30px}
.application-status:focus {
  outline:1px solid var(--brown);
  outline-offset:6px}
footer {
  max-width:1200px;
  margin:auto;
  padding:35px 48px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--line)}
footer p,footer>a:last-child {
  font-size:11px;
  letter-spacing:.07em}
.mobile-break,.mobile-cta {
  display:none}
.skip {
  position:fixed;
  top:-100px;
  left:20px;
  background:#fff;
  padding:12px;
  z-index:10}
.skip:focus {
  top:10px}
.photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0}
.photo.has-image:before {
  display:none}

@media(min-width:1500px) {
  .hero {
  padding-top:85px;
  padding-bottom:80px}
}

@media(max-width:760px) {
  .header {
  padding:18px 22px}
.logo {
  font-size:25px}
.logo span {
  font-size:10px}
.header nav {
  gap:0}
.nav-program {
  display:none}
.header-cta {
  font-size:11px;
  padding:8px 12px}
.hero {
  padding:38px 24px 0;
  display:flex;
  flex-direction:column;
  gap:30px}
.eyebrow {
  font-size:11px;
  letter-spacing:.14em}
.hero h1 {
  font-size:34px;
  margin:20px 0;
  line-height:1.65}
.mobile-break {
  display:block}
.hero-lead {
  font-size:14px;
  line-height:2}
.hero-event {
  margin-top:25px;
  padding-top:20px;
  max-width:none;
  display:grid;
  grid-template-columns:1fr auto;
  column-gap:12px;
  align-items:center}
.hero-event p {
  font-size:11px}
.hero-event strong {
  font-size:18px}
.hero-event .date {
  font-size:23px!important;
  margin:0}
.date span {
  font-size:10px;
  margin-left:3px}
.date small {
  font-size:11px;
  letter-spacing:0;
  margin-top:3px}
.hero-event .button {
  grid-column:1/-1;
  margin-top:18px}
.hero-visual {
  width:100%;
  padding:0 24px 28px 0;
  margin-top:5px}
.hero-photo {
  min-height:0;
  height:340px;
  border-radius:46% 46% 0 0}
.hero-photo:before {
  border-radius:46% 46% 0 0}
.vertical-caption {
  right:-6px;
  top:45px;
  font-size:12px;
  letter-spacing:.15em}
.visual-caption {
  font-size:19px;
  right:28px}
.section {
  padding:68px 24px}
.intro {
  padding-top:55px}
.intro p {
  font-size:15px}
.intro .statement {
  font-size:26px}
.desktop-break {
  display:none}
.section-heading {
  margin-bottom:30px}
h2 {
  font-size:28px}
.pain-grid {
  grid-template-columns:1fr;
  gap:0}
.pain-grid article {
  padding-top:22px;
  padding-bottom:25px}
.pain-grid h3 {
  font-size:21px}
.section-close {
  font-size:15px;
  margin-top:25px}
.section-close em {
  font-size:22px}
.cases {
  grid-template-columns:1fr 1fr;
  gap:30px 20px}
.cases h3 {
  font-size:17px}
.cases article>p:not(.eyebrow) {
  font-size:13px;
  min-height:78px}
.voices {
  margin-top:35px;
  padding:24px 22px}
.voices blockquote {
  font-size:16px;
  margin:20px 0}
.result-note p {
  font-size:15px}
.brand-grid {
  grid-template-columns:1fr;
  gap:0}
.dialogue-photo {
  margin-top:24px;
  aspect-ratio:4/3}
.brand-copy {
  padding-top:30px}
.brand-definition {
  text-align:left;
  margin-top:40px;
  padding-top:30px}
.brand-definition>p {
  font-size:14px}
.brand-definition h2 {
  font-size:25px;
  letter-spacing:.02em}
.step {
  grid-template-columns:64px 1fr;
  gap:18px;
  padding:28px 0}
.step-label span {
  font-size:10px;
  letter-spacing:.03em}
.step-label b {
  font-size:45px}
.step h3 {
  font-size:21px;
  line-height:1.8}
.step p {
  font-size:14px;
  line-height:2}
.step p+p {
  margin-top:18px}
.audience-grid {
  grid-template-columns:1fr;
  gap:25px}
.audience-grid h2 {
  margin-bottom:15px}
.closing-message h2 {
  font-size:25px;
  letter-spacing:0}
.closing-message p {
  font-size:15px}
.closing-message .statement {
  font-size:26px}
.host {
  gap:20px;
  margin:38px 0 45px}
.host-photo {
  width:104px}
.entry-panel {
  padding:32px 20px;
  margin:0 -6px}
.entry-panel h2 {
  font-size:24px;
  letter-spacing:0}
.entry-panel .date {
  font-size:35px!important}
.entry-panel .date small {
  font-size:14px}
.event-details>div {
  grid-template-columns:90px 1fr;
  font-size:13px}
.entry-panel .button {
  font-size:14px;
  padding:15px 10px}
.application-status {
  font-size:11px}
.mobile-cta {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#faf8f4f5;
  border-top:1px solid var(--line);
  padding:10px 18px calc(10px + env(safe-area-inset-bottom));
  z-index:5}
.mobile-cta>span {
  font:23px Georgia,serif;
  white-space:nowrap}
.mobile-cta small {
  display:block;
  font:10px/1.8 sans-serif}
.mobile-cta .button {
  min-height:46px;
  font-size:13px;
  flex:1;
  max-width:220px;
  padding:10px}
body {
  padding-bottom:85px}
footer {
  padding:28px 24px;
  flex-wrap:wrap;
  gap:20px}
footer p {
  display:none}
html {
  scroll-padding-top:18px}
}

@media(max-width:360px) {
  .hero-event {
  grid-template-columns:1fr}
.hero-event .date {
  margin-top:12px}
.hero h1 {
  font-size:30px}
.header {
  padding:15px 18px}
.step {
  grid-template-columns:1fr;
  gap:12px}
.step-label {
  flex-direction:row;
  align-items:center;
  gap:10px}
.step-label b {
  font-size:32px}
.entry-panel h2 {
  font-size:21px}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
.button {
  transition:none}
}

/* Final refinement: positive narrative, larger body text, shorter rhythm. */
.hero h1 {
  font-size:clamp(29px,3vw,42px);
  line-height:1.65;
  letter-spacing:.015em}
.hero h1 span {
  display:block}
.hero-lead {
  font-family:var(--serif);
  font-size:18px}
.hero-photo,.hero-photo:before {
  border-radius:180px 180px 3px 3px}
.hero-photo {
  min-height:500px}
.section {
  padding-top:78px;
  padding-bottom:78px}
.empathy-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center}
.empathy-layout h2 {
  margin:14px 0 24px}
.empathy-layout p:not(.eyebrow) {
  font-size:16px}
.empathy-question {
  font-family:var(--serif);
  font-size:20px}
.check-list li,.step p,.brand-copy p,.result-note p,.closing-message p,.audience-grid>div>p:not(.eyebrow) {
  font-size:16px}
.cases article>p:not(.eyebrow) {
  font-size:16px;
  min-height:70px}
.cases {
  gap:25px}
.cases h3 {
  font-size:20px}
.brand-copy {
  padding-top:20px}
.questions p {
  font-size:20px}
.brand-definition {
  margin-top:45px;
  padding-top:35px}
.result-note {
  max-width:700px}
.profile {
  background:#f9f7f2}
.profile-layout {
  display:grid;
  grid-template-columns:300px 1fr;
  gap:65px;
  align-items:center;
  max-width:900px}
.profile .host-photo {
  width:100%;
  aspect-ratio:4/5}
.profile h2 {
  font-size:30px;
  margin:14px 0 23px}
.profile h3 {
  font-size:25px;
  margin-bottom:18px}
.profile p[data-setting] {
  font-size:14px;
  color:var(--muted);
  margin-top:14px;
  white-space:pre-line}
.closing {
  background:#eee8de}
.closing-message {
  margin-bottom:45px}
.closing-message h2 {
  font-size:34px}
.closing-questions {
  border-left:1px solid #b8a68e;
  padding-left:22px;
  margin:25px 0;
  font-family:var(--serif)}
.closing-questions p {
  font-size:23px}
.closing-questions p+p {
  margin-top:16px}
.entry-panel {
  background:var(--paper);
  border-color:#c8bca9}
.application-status {
  font-size:14px}
.event-details>div {
  font-size:16px}
.photo.has-image {
  border-radius:3px}
.photo.has-image img {
  object-fit:contain}
.hero-event .date small {
  font-size:14px}
.entry-panel {
  scroll-margin-top:24px}
.header-cta {
  font-size:14px}
.step-label span,.eyebrow {
  font-size:12px}
.header nav {
  font-size:14px}
footer>a:last-child {
  font-size:14px}
.button {
  font-size:16px}
.hero-copy,.brand-copy,.profile-layout>div,.audience-grid>div {
  min-width:0}

@media(max-width:1000px) and (min-width:761px) {
  .hero {
  padding-left:30px;
  padding-right:30px;
  gap:24px}
.hero h1 {
  font-size:30px}
.brand-grid {
  gap:40px}
.cases {
  grid-template-columns:1fr 1fr}
.profile-layout {
  gap:35px;
  grid-template-columns:240px 1fr}
.hero-photo {
  min-height:480px}
}

@media(max-width:760px) {
  .section {
  padding:54px 24px}
.hero {
  padding-top:30px;
  gap:24px}
.hero h1 {
  font-size:clamp(24px,6.5vw,34px);
  line-height:1.7;
  margin:18px 0}
.hero-lead {
  font-size:16px}
.hero-event {
  display:block;
  margin-top:20px;
  padding-top:18px}
.hero-event p {
  font-size:14px}
.hero-event strong {
  font-size:23px}
.hero-event .date {
  margin-top:14px;
  font-size:28px!important}
.hero-event .date small {
  font-size:14px}
.hero-event .button {
  margin-top:16px}
.hero-visual {
  padding-bottom:30px}
.hero-photo {
  height:290px;
  min-height:0}
.hero-photo,.hero-photo:before {
  border-radius:130px 130px 2px 2px}
.hero-photo.has-image {
  border-radius:2px}
.hero {
  padding-bottom:30px}
.empathy-layout {
  grid-template-columns:1fr;
  gap:28px}
.empathy-layout h2 {
  font-size:28px;
  margin-bottom:18px}
.empathy-layout p+p {
  margin-top:16px}
.empathy-question {
  font-size:19px}
.check-list li {
  padding-top:15px;
  padding-bottom:15px;
  font-size:16px}
.cases {
  grid-template-columns:1fr;
  gap:0}
.cases article {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  column-gap:20px;
  padding:22px 0}
.cases .eyebrow {
  grid-column:1/-1;
  margin-bottom:10px}
.cases article>p:not(.eyebrow) {
  font-size:15px;
  min-height:0;
  margin:0;
  align-self:center}
.cases h3 {
  font-size:18px;
  align-self:center;
  border-left:1px solid #c6b69e;
  padding-left:16px}
.case-line {
  display:none}
.voices {
  margin-top:16px;
  padding:24px 20px}
.voices blockquote {
  font-size:17px}
.result-note {
  margin-top:26px}
.brand-copy {
  padding-top:26px}
.questions {
  padding-left:14px}
.questions p {
  font-size:18px}
.brand-definition h2 {
  font-size:25px}
.step {
  grid-template-columns:1fr;
  gap:15px;
  padding:26px 0}
.step-label {
  flex-direction:row;
  gap:10px;
  align-items:center}
.step-label b {
  font-size:33px}
.step-label span {
  font-size:12px}
.step h3 {
  font-size:23px;
  margin-bottom:14px}
.step p {
  font-size:16px}
.step p+p {
  margin-top:14px}
.center-cta {
  margin-top:30px}
.center-cta p {
  font-size:14px}
.profile-layout {
  grid-template-columns:1fr;
  gap:26px}
.profile .host-photo {
  width:70%;
  max-width:280px;
  aspect-ratio:4/4.5}
.profile h2 {
  font-size:25px;
  margin-bottom:15px}
.profile p[data-setting] {
  font-size:14px}
.closing-message h2 {
  font-size:clamp(22px,5.9vw,28px);
  margin-bottom:24px;
  letter-spacing:0}
.closing-questions {
  padding-left:14px}
.closing-questions p {
  font-size:20px}
.entry-panel {
  padding:30px 18px}
.entry-panel h2 {
  font-size:23px}
.event-details>div {
  font-size:15px;
  grid-template-columns:86px 1fr}
.application-status {
  font-size:13px}
.entry-panel .button {
  font-size:15px}
.mobile-cta .button {
  font-size:14px}
.mobile-cta small {
  font-size:11px}
.header-cta {
  font-size:12px;
  padding:8px 10px}
.section-heading {
  margin-bottom:27px}
}

@media(max-width:360px) {
  .hero,.section {
  padding-left:20px;
  padding-right:20px}
.hero h1 {
  font-size:24px}
.hero-event strong {
  font-size:21px}
.cases article {
  gap:10px}
.cases h3 {
  font-size:17px;
  padding-left:12px}
.entry-panel h2 {
  font-size:21px}
.brand-definition h2 {
  font-size:23px}
.profile h2 {
  font-size:23px}
.mobile-cta {
  padding-left:12px;
  padding-right:12px;
  gap:8px}
.mobile-cta .button {
  font-size:13px}
.header-cta {
  font-size:11px}
}

/* Nine-section edition: concise brand definition and separate event overview. */
.brand-grid {
  align-items:center}
.brand-copy {
  padding-top:0}
.brand-grid>div:first-child>h2 {
  font-size:32px;
  letter-spacing:.025em}
.brand-definition {
  text-align:left;
  margin-top:30px;
  padding-top:25px}
.brand-definition h2 {
  font-size:29px;
  letter-spacing:.01em;
  margin-bottom:0}
.overview {
  background:#eee8de}
.overview-heading {
  max-width:800px;
  margin:0 auto 28px}
.overview-heading h2 {
  margin-top:12px}
.profile {
  background:var(--paper)}
.closing {
  background:#eee8de}
.closing-message {
  max-width:700px}
.closing-questions .closing-and {
  font-family:"Yu Gothic",Meiryo,sans-serif;
  font-size:16px}
.final-action {
  max-width:520px;
  margin:40px auto 0;
  padding-top:28px;
  border-top:1px solid #c6b9a7}
.final-action .date {
  margin-top:18px}
.final-action .date small {
  font-size:15px}
.final-action .button {
  margin-top:24px}
.final-status {
  font-size:14px;
  margin-top:12px;
  text-align:center;
  color:var(--muted)}
.profile .host-photo p {
  font-size:14px}
.profile .host-photo .photo-mark {
  font-size:32px;
  margin-bottom:10px}

@media(max-width:760px) {
  .brand-grid>div:first-child>h2 {
  font-size:26px}
.brand-copy {
  padding-top:26px}
.brand-definition h2 {
  font-size:25px}
.brand-definition {
  margin-top:25px;
  padding-top:25px}
.profile .host-photo {
  width:100%;
  max-width:none;
  aspect-ratio:4/3}
.final-action .date {
  font-size:32px!important}
.final-action .button {
  font-size:15px}
.closing-message {
  margin-bottom:25px}
.overview-heading {
  margin-bottom:24px}
.overview .entry-panel {
  margin:0}
.overview .entry-panel h2 {
  font-size:22px}
.hero-photo {
  height:320px}
.hero-event .button {
  min-height:54px}
.closing-questions p {
  font-size:19px}
.entry-panel .application-status {
  overflow-wrap:anywhere}
}

@media(max-width:360px) {
  .brand-grid>div:first-child>h2 {
  font-size:24px}
.brand-definition h2 {
  font-size:22px}
.overview .entry-panel {
  padding-left:14px;
  padding-right:14px}
.overview .entry-panel h2 {
  font-size:20px}
}

/* Brand palette & typography — adjust these tokens for future brand changes. */
:root {
  --paper: #fffefc;
  --ink: #343c3d;
  --muted: #697172;
  --line: #e6e2e1;
  --rose: #9e5f72;
  --rose-hover: #8c5063;
  --rose-soft: #f7f0f2;
  --emerald: #187b69;
  --emerald-line: #a5cec3;
  --brown: var(--emerald);
  --wash: #faf6f7;
  --sans: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --latin: "Helvetica Neue", Arial, sans-serif;
  --serif: var(--sans);
}
body { font-family: var(--sans); font-weight: 400; line-height: 1.95; }
h1,h2,h3 { font-family: var(--sans); color: var(--ink); font-weight: 500; }
h2 { letter-spacing: .025em; line-height: 1.65; }
h3 { letter-spacing: .015em; }
.hero h1 { font-weight: 500; letter-spacing: .015em; line-height: 1.65; }
.hero h1 span:last-child { color: var(--rose); }
.hero-lead { font-family: var(--sans); font-weight: 400; color: var(--muted); }
.hero-event strong { font-family: var(--sans); font-weight: 500; }
.logo { font-family: var(--latin); font-style: normal; font-weight: 300; letter-spacing: -.04em; color: var(--ink); }
.logo span { font-family: var(--sans); color: var(--muted); letter-spacing: .12em; }
.eyebrow,.step-label,.photo-index,.photo-bottom { font-family: var(--latin); font-weight: 400; letter-spacing: .16em; }
.eyebrow,.step-label,.small-number { color: var(--emerald); }
.step-label b { font-family: var(--latin); font-weight: 300; letter-spacing: -.045em; }
.date { font-family: var(--latin)!important; font-weight: 300!important; letter-spacing: .005em; color: var(--ink); }
.date span,.date small { font-family: var(--latin); }
.button { background: var(--rose); color: #fff; font-weight: 500; letter-spacing: .04em; }
.button:hover { background: var(--rose-hover); }
.header-cta { border-color: #c795a4; color: #945a6b; }
.header-cta:hover { background: var(--rose-soft); }
a:focus-visible { outline-color: var(--emerald); }
.empathy,.for-you { background: var(--paper); }
.brand,.voices { background: var(--rose-soft); }
.overview { background: #fcf9fa; }
.closing { background: var(--rose-soft); }
.entry-panel { background: #fff; border-color: #e5d4da; }
.photo { background: #f0e4e8; color: #79666d; }
.photo:before { border-color: #d9bfc8; }
.photo-mark { color: #aa7b8a; font-family: var(--latin); font-weight: 300; }
.photo-index,.photo-bottom { color: #79666d; }
.visual-caption { color: var(--emerald); font-family: var(--latin); font-size: 19px; font-style: normal; font-weight: 300; letter-spacing: .07em; }
.vertical-caption { color: var(--muted); font-family: var(--sans); letter-spacing: .16em; }
.empathy-question,.questions,.voices blockquote,.closing-questions { font-family: var(--sans); }
.empathy-question { color: var(--ink); font-weight: 500; }
.questions { border-color: var(--emerald-line); }
.questions p { font-weight: 500; }
.brand-definition { border-color: #decbd2; }
.brand-definition h2 { color: var(--rose); font-weight: 500; }
.case-line { background: var(--emerald-line); }
.case-line:after { border-color: var(--emerald); }
.cases h3 { color: var(--ink); font-weight: 500; border-color: var(--emerald-line); }
.check-list li:before { color: var(--emerald); }
.voices blockquote { font-weight: 400; line-height: 1.9; }
.closing-questions { border-color: #c896a7; }
.closing-questions p { font-weight: 500; }
.closing-questions .closing-and { font-family: var(--sans); font-weight: 400; }
.final-action,.event-details>div { border-color: #e3d6db; }
.application-status { color: var(--muted); }
.application-status:focus { outline-color: var(--emerald); }
.mobile-cta { background: #fffefcf5; border-color: #eadce1; }
.mobile-cta>span { font-family: var(--latin); font-weight: 300; }
.mobile-cta small { font-family: var(--latin); }
@media(max-width:760px) {
  .hero h1 { font-size: clamp(23px,6.2vw,33px); letter-spacing: 0; line-height: 1.65; }
  .hero-event strong { font-size: 22px; }
  h2 { letter-spacing: .015em; }
  .brand-definition h2 { font-size: clamp(21px,5.8vw,25px); letter-spacing: 0; }
  .step h3 { font-size: 22px; line-height: 1.7; }
  .cases h3 { font-size: 17px; border-color: var(--emerald-line); }
  .visual-caption { font-size: 15px; }
  .closing-message h2 { font-size: clamp(21px,5.5vw,27px); }
  .closing-questions p { font-size: 18px; }
  .overview .entry-panel h2 { font-size: clamp(19px,5.3vw,23px); }
}
@media(max-width:360px) {
  .hero-event strong { font-size: 20px; }
  .step h3 { font-size: 20px; }
  .cases h3 { font-size: 16px; }
}
/* Contemporary typography: readable Japanese, airy sans-serif numerals. */
body { font-family: var(--sans); font-weight: 400; }
h1,h2,h3 { font-family: var(--sans); font-weight: 500; }
.hero h1 { letter-spacing: .015em; line-height: 1.75; }
.brand-grid>div:first-child>h2,.brand-definition h2,.closing-message h2 { line-height: 1.75; }
.hero-copy>.eyebrow,.entry-panel>.eyebrow,.final-action>.eyebrow {
  font-family: var(--latin); font-size: 12px; font-weight: 400; letter-spacing: .2em;
}
.visual-caption { font-family: var(--latin); font-size: 18px; font-weight: 300; letter-spacing: .08em; }
.step { grid-template-columns: minmax(0,1fr); gap: 26px; padding-block: 38px; }
.step-label { display: flex; flex-direction: row; align-items: center; gap: 25px; min-width: 0; }
.step-label .step-word {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.step-label b {
  font-family: var(--latin); font-size: 70px; line-height: 1; font-weight: 300;
  letter-spacing: .035em; font-variant-numeric: lining-nums tabular-nums; color: var(--rose);
}
.type-rule { display: block; width: 1px; height: 36px; flex: 0 0 1px; background: var(--emerald-line); }
.step-label .step-name {
  font-family: var(--latin); font-size: 14px; line-height: 1.5; letter-spacing: .18em;
  font-weight: 400; color: var(--emerald);
}
.step h3 { font-family: var(--sans); font-weight: 500; font-size: 27px; line-height: 1.8; margin-bottom: 22px; }
.cases .case-label { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.case-number {
  font-family: var(--latin); font-size: 36px; line-height: 1; font-weight: 300;
  letter-spacing: .04em; font-variant-numeric: lining-nums tabular-nums; color: var(--rose);
}
.case-word { font-family: var(--latin); font-size: 11px; font-weight: 400; letter-spacing: .18em; }
.case-label .type-rule { height: 22px; }
@media(max-width:760px) {
  .hero h1 { font-size: clamp(23px,6.2vw,33px); line-height: 1.75; letter-spacing: 0; }
  .step { gap: 22px; padding-block: 30px; }
  .step-label { gap: 20px; }
  .step-label b { font-size: 56px; }
  .step-label .step-name { font-size: 13px; letter-spacing: .15em; }
  .step-label .type-rule { height: 30px; }
  .step h3 { font-size: 23px; margin-bottom: 18px; }
  .cases .case-label { margin-bottom: 16px; }
  .case-number { font-size: 32px; }
  .visual-caption { font-size: 15px; }
}
@media(max-width:360px) {
  .step-label { gap: 16px; }
  .step-label b { font-size: 50px; }
  .step-label .step-name { font-size: 12px; }
  .step h3 { font-size: 21px; }
}
/* Shorter reading rhythm; preserve brand typography and case layouts. */
.voices { margin-top: 24px; padding: 20px 26px; }
.voices blockquote { font-size: 16px; line-height: 1.85; margin: 9px 0 0; }
.voices>.eyebrow { font-family: var(--sans); letter-spacing: .06em; }
.brand-copy .materials { line-height: 2; }
.brand-copy .questions { margin-top: 18px; }
.brand-copy .questions p+p { margin-top: 8px; }
.brand-definition { margin-top: 24px; padding-top: 22px; }
.closing-message { margin-bottom: 0; }
.closing-message h2 { margin-bottom: 0; }
.final-action { margin-top: 28px; }
@media(max-width:760px) {
  .empathy.section,.results.section,.brand.section,.profile.section,.closing.section { padding-block: 44px; }
  .empathy-layout { gap: 22px; }
  .voices { margin-top: 16px; padding: 18px 20px; }
  .voices blockquote { margin-top: 10px; }
  .brand-copy { padding-top: 22px; }
  .brand-definition h2 { margin-top: 12px; }
  .dialogue-photo { aspect-ratio: 3/2; }
}
/* Photography: five distinct roles with quiet white space between portraits. */
.button { background: var(--emerald); }
.button:hover { background: #126453; }
.step-label b { color: var(--emerald); }
.hero-visual { align-self: center; }
.hero-photo,.hero-photo.has-image { height: 560px; min-height: 0; border-radius: 3px; }
.hero-photo img { object-fit: cover; object-position: 50% 60%; }
.photo.has-image img { object-fit: cover; }
.photo.has-image { background: #f8f5f5; }
.stories-detail { display: grid; grid-template-columns: 260px 1fr; gap: 38px; align-items: center; margin-top: 38px; }
.conversation-photo { aspect-ratio: 4/5; }
.conversation-photo img { object-position: 50% 30%; }
.stories-detail .voices { margin: 0; padding: 22px 28px; }
.dialogue-photo { aspect-ratio: 3/2; }
.program .section-heading { display: grid; grid-template-columns: 1fr 300px; column-gap: 40px; align-items: center; }
.program .section-heading>.eyebrow,.program .section-heading>h2 { grid-column: 1; }
.notebook-photo { grid-column: 2; grid-row: 1/3; aspect-ratio: 3/2; }
.profile .host-photo { aspect-ratio: 4/5; }
.profile .host-photo img { object-position: 55% 40%; }
.overview .entry-panel .date small { font-size: 18px; }
@media(max-width:760px) {
  .hero-photo,.hero-photo.has-image { height: 370px; }
  .hero-photo img { object-position: 50% 65%; }
  .hero-visual { max-width: 460px; margin-inline: auto; }
  .stories-detail { grid-template-columns: 1fr; gap: 20px; margin-top: 24px; }
  .conversation-photo { width: 76%; max-width: 290px; aspect-ratio: 4/5; }
  .stories-detail .voices { padding: 18px 20px; }
  .program .section-heading { display: block; }
  .notebook-photo { width: 72%; max-width: 300px; margin: 22px 0 0 auto; }
  .profile .host-photo { width: 100%; max-width: 400px; aspect-ratio: 4/3; }
  .profile .host-photo img { object-position: 55% 40%; }
}
/* Photo selection revision: preserve full scenery and natural body framing. */
.hero-photo,.hero-photo.has-image { width: 100%; height: auto; aspect-ratio: 2/3; max-height: none; }
.hero-visual { max-width: 395px; width: 100%; justify-self: center; }
.dialogue-photo { aspect-ratio: 2/3; width: 100%; max-width: 310px; margin-top: 28px; }
.conversation-photo { aspect-ratio: 900/1586; max-width: 220px; width: 100%; }
.stories-detail { grid-template-columns: 220px minmax(0,1fr); }
.notebook-photo { aspect-ratio: 3/2; }
.profile .host-photo { aspect-ratio: 3/2; }
.profile-layout { grid-template-columns: 340px minmax(0,1fr); gap: 45px; }
@media(max-width:760px) {
 .hero-visual { max-width: 370px; }
 .hero-photo,.hero-photo.has-image { height: auto; aspect-ratio: 2/3; }
 .dialogue-photo { max-width: 260px; margin-inline: auto; aspect-ratio: 2/3; }
 .stories-detail { grid-template-columns: 1fr; }
 .conversation-photo { max-width: 210px; width: 68%; }
 .notebook-photo { width: 85%; max-width: 320px; aspect-ratio: 3/2; }
 .profile-layout { grid-template-columns: 1fr; gap: 26px; }
 .profile .host-photo { aspect-ratio: 3/2; max-width: 380px; }
}
/* A wide editorial pause after the three steps; keep the full left-side space. */
.brand-mood-photo {
  width: 100%;
  max-width: 960px;
  aspect-ratio: 3/2;
  margin: 48px auto 0;
}
.brand-mood-photo.has-image img { object-fit: contain; object-position: center; }
@media(max-width:760px) {
  .brand-mood-photo { width: 100%; margin-top: 32px; aspect-ratio: 3/2; }
}
/* Three selectable sessions: restrained date rows using the existing palette. */
.session-dates { max-width: 390px; margin: 26px auto; text-align: left; }
.session-dates .schedule-year { font-size: 14px; color: var(--muted); letter-spacing: .08em; margin: 0 0 10px; }
.session-dates ul { list-style: none; margin: 0; padding: 0; }
.session-dates li { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 17px; font-variant-numeric: tabular-nums; }
.session-dates time { white-space: nowrap; font-weight: 500; }
.session-dates li>span { white-space: nowrap; font-size: 15px; }
.session-dates-compact { margin: 18px 0 0; }
.session-dates-compact li { font-family: var(--latin); font-size: 19px; padding: 6px 0; }
.session-dates-compact time span { font-size: 11px; font-weight: 400; margin-left: 7px; letter-spacing: .08em; }
.fee { display: flex; flex-wrap: wrap; gap: 10px; align-items: baseline; }
.fee del { font-size: 14px; color: var(--muted); }
.fee strong { color: var(--emerald); font-size: 23px; font-weight: 500; }
.capacity-note { display: block; font-size: 14px; line-height: 1.8; margin-top: 6px; }
@media(max-width:760px) {
 .session-dates { margin-block: 20px; }
 .session-dates li { font-size: 15px; gap: 10px; }
 .session-dates li>span { font-size: 14px; }
 .session-dates-compact { margin: 16px 0 0; }
 .session-dates-compact li { font-size: 18px; }
 .session-dates-compact .schedule-year { font-size: 13px; }
 .mobile-cta>span { font-family: var(--sans); font-size: 15px; }
 .capacity-note { font-size: 13px; }
}
/* Additional information, using the existing palette and type scale. */
.next-year { background: var(--paper); }
.next-year-inner { max-width: 760px; text-align: center; }
.next-year-inner h2 { margin-bottom: 30px; }
.next-year-inner>p:not(.eyebrow) { font-size: 16px; line-height: 2; margin-top: 18px; }
.next-year-inner .year-key { color: var(--emerald); font-weight: 500; }
.faq-inner { max-width: 850px; }
.faq-list { margin-top: 30px; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; align-items: baseline; gap: 14px; padding: 22px 0; cursor: pointer; list-style: none; font-size: 16px; font-weight: 500; line-height: 1.8; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; margin-left: auto; color: var(--emerald); flex-shrink: 0; font-size: 22px; font-weight: 400; }
.faq details[open] summary::after { content: '−'; }
.faq summary:focus-visible { outline: 2px solid var(--emerald); outline-offset: 5px; }
.faq-q,.faq-a { color: var(--emerald); flex-shrink: 0; }
.faq-answer { display: flex; gap: 14px; padding: 0 30px 24px 0; font-size: 16px; line-height: 1.9; }
.faq-answer p { margin: 0; }
.faq-answer p+p { margin-top: 16px; }
.profile-layout { align-items: start; }
.profile .profile-name { margin: 12px 0; font-size: 30px; }
.profile-role { color: var(--emerald); font-size: 16px; margin-bottom: 24px; }
.profile-body { font-size: 16px; line-height: 2; }
.profile-body p { margin: 0 0 22px; }
.profile-body ul { padding-left: 1.3em; margin: 0 0 18px; }
.profile-body li { margin-bottom: 10px; }
@media(max-width:760px) {
 .next-year.section,.faq.section,.for-you.section { padding-block: 44px; }
 .next-year-inner h2 { font-size: 26px; line-height: 1.65; margin-bottom: 24px; }
 .next-year-inner>p:not(.eyebrow) { font-size: 15px; }
 .faq summary { gap: 10px; padding: 18px 0; }
 .faq-answer { gap: 10px; padding-right: 0; }
 .profile-role { font-size: 15px; }
}
/* Keep intermediate portrait photos compact without changing their framing. */
.dialogue-photo { max-width: 240px; }
.conversation-photo { max-width: 175px; }
@media(max-width:760px) {
 .dialogue-photo { width: 60%; max-width: 180px; margin-inline: auto; }
 .conversation-photo { width: 50%; max-width: 150px; margin-inline: auto; }
}
/* Explicit bounds prevent portrait frames from stretching in grid layouts. */
.photo.dialogue-photo,
.photo.conversation-photo {
  flex: none;
  align-self: start;
  justify-self: center;
  min-height: 0;
  margin-inline: auto;
}
.photo.dialogue-photo { width: 210px; max-width: 100%; height: 315px; max-height: 315px; }
.photo.conversation-photo { width: 160px; max-width: 100%; height: 282px; max-height: 282px; }
.photo.dialogue-photo img,
.photo.conversation-photo img {
  width: 100%;
  height: 100%;
  max-height: inherit;
  object-fit: contain;
}
@media(max-width:760px) {
  .photo.dialogue-photo { width: min(60vw, 170px); height: 255px; max-height: 255px; }
  .photo.conversation-photo { width: min(60vw, 150px); height: 264px; max-height: 264px; }
}
/* Only the mobile first-view photo: retain the full portrait in a compact frame. */
@media(max-width:760px) {
  .hero-visual { width: min(100%, 220px); max-width: 220px; margin-inline: auto; }
  .hero-photo,.hero-photo.has-image { width: 100%; height: auto; max-height: 330px; aspect-ratio: 2/3; }
}
