/* Kansai MIST 30 / Scientific editorial edition. */
:root {
  --ink: #102d49;
  --blue: #064394;
  --deep: #082d61;
  --mint: #99e1cb;
  --muted: #536777;
  --line: #d6e1e6;
  --paper: #f2f7f8;
  --font: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;
  --latin: "Barlow", sans-serif;
  --serif: "Cormorant Garamond", Georgia, serif;
  --page: 1280px;
  --gutter: clamp(24px, 5vw, 80px);
  --header: 92px;
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header) + 24px); }
body { margin: 0; color: var(--ink); background: #fff; font: 400 16px/1.85 var(--font); -webkit-font-smoothing: antialiased; overflow-wrap: anywhere; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
figure, blockquote, p, dl, dd, h1, h2, h3, h4 { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--mint); color: var(--deep); }
:focus-visible { outline: 3px solid #147658; outline-offset: 5px; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: calc(var(--header) + 24px); }
.skip-link { position: fixed; top: 10px; left: 16px; transform: translateY(-180%); z-index: 200; padding: 12px 20px; background: #fff; color: var(--deep); }
.skip-link:focus { transform: none; }
.container { max-width: calc(var(--page) + var(--gutter)*2); padding-inline: var(--gutter); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); }
.site-header[data-scrolled="true"] { box-shadow: 0 4px 24px #082d6108; }
.header-inner { max-width: 1600px; min-height: var(--header); padding: 15px 3.2vw; margin: auto; display: flex; align-items: center; gap: clamp(16px,2vw,32px); }
.brand { flex: 0 0 auto; }
.brand-text { display: flex; flex-direction: column; }
.brand-en { font: 500 12px/1.5 var(--latin); color: var(--muted); letter-spacing: .035em; }
.brand-ja { font-size: 18px; font-weight: 700; letter-spacing: .04em; }
.header-jasmist { order: 3; width: 82px; flex: 0 0 82px; }
.header-jasmist img { width: 100%; height: auto; }
.primary-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(20px,2.2vw,36px); }
.primary-nav a { position: relative; padding-block: 10px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.nav-label { display: flex; flex-direction: column; line-height: 1.5; }
.nav-label small { font: 400 12px/1.5 var(--latin); color: var(--muted); }
.primary-nav a::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.primary-nav a:hover::after, .primary-nav a[aria-current="location"]::after { transform: scaleX(1); }
.header-cta { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 11px 18px; color: #fff; background: var(--deep); font-size: 14px; white-space: nowrap; }
.header-cta:hover { background: var(--blue); }
.nav-toggle { display: none; border: 1px solid var(--line); background: transparent; width: 46px; height: 46px; padding: 12px; }
.nav-toggle span { display: block; height: 1px; background: var(--ink); margin: 5px 0; transition: transform .2s; }
.nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:last-child { transform: translateY(-6px) rotate(-45deg); }
.mobile-nav { background: #fff; padding: 16px var(--gutter) 28px; overflow-y: auto; max-height: calc(100dvh - var(--header)); border-top: 1px solid var(--line); }
.mobile-nav a { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 17px; }
.mobile-nav a span { font: 400 14px var(--latin); color: var(--muted); padding-right: 20px; }
.mobile-nav .mobile-cta { margin-top: 20px; padding-inline: 20px; background: var(--deep); color: #fff; }
.hero { position: relative; display: grid; grid-template-columns: 59% 41%; min-height: 720px; background: #f7fafb; border-bottom: 1px solid var(--line); }
.hero-inner { grid-column: 1; grid-row: 1; padding: clamp(48px,5vw,80px) 3.8vw 66px var(--gutter); min-width: 0; }
.hero-eyebrow { display: flex; gap: 14px; align-items: center; font: 500 13px/1.6 var(--latin); letter-spacing: .045em; color: var(--blue); margin-bottom: 30px; }
.eyebrow-mark { width: 26px; height: 2px; background: var(--blue); flex: 0 0 26px; }
.hero-title { font-weight: 700; letter-spacing: -.025em; line-height: 1.4; }
.title-line-1 { display: block; font-size: 20px; font-weight: 500; letter-spacing: .06em; margin-bottom: 9px; }
.title-line-1 em { font: 600 24px var(--latin); font-style: normal; margin-inline: 3px; }
.title-line-2 { display: block; font-size: clamp(32px,3.55vw,58px); white-space: nowrap; }
.hero-theme { margin-top: 32px; }
.theme-label { display: inline-block; color: var(--blue); font: 500 12px var(--latin); text-transform: uppercase; letter-spacing: .12em; margin-bottom: 12px; }
.theme-jp { font-size: clamp(24px,2.55vw,40px); font-weight: 500; line-height: 1.6; letter-spacing: .01em; }
.theme-en { margin-top: 14px; font: 400 clamp(19px,1.7vw,26px)/1.35 var(--serif); color: var(--muted); }
.hero-meta { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 20px; padding-block: 25px; margin-top: 32px; border-block: 1px solid var(--line); }
.hero-meta dt { font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.hero-meta dd { font-size: 14px; font-weight: 500; line-height: 1.8; }
.meta-sub { display: block; font-size: 13px; font-weight: 400; color: var(--muted); }
.hero-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.btn { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 24px; padding: 13px 23px; font-size: 14px; font-weight: 500; line-height: 1.5; border: 1px solid transparent; transition: background .2s, color .2s, border-color .2s; }
.btn-primary { background: var(--deep); color: #fff; border-color: var(--deep); }
.btn-primary:hover { background: var(--blue); border-color: var(--blue); }
.btn-ghost { border-color: #9ab0bf; background: transparent; color: var(--deep); }
.btn-ghost:hover { background: #e6f1f3; border-color: var(--blue); }
.hero-access-link { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; min-height: 44px; border-bottom: 1px solid transparent; }
.hero-access-link:hover { border-bottom-color: var(--ink); }
.hero-visual { grid-column: 2; grid-row: 1; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; padding: 42px clamp(28px,4vw,60px); background: var(--deep); color: #fff; }
.hero-visual::before { content: ""; position: absolute; width: 700px; height: 700px; border: 1px solid #8fd9ce44; border-radius: 50%; left: -40%; top: -36%; pointer-events: none; }
.hero-visual::after { content: ""; position: absolute; width: 700px; height: 700px; border: 1px solid #8fd9ce44; border-radius: 50%; left: -20%; top: -20%; pointer-events: none; }
.hero-edition { position: absolute; top: 42px; font: 400 13px/1.5 var(--latin); letter-spacing: .14em; z-index: 1; }
.hero-number { position: relative; z-index: 1; display: block; font: 500 clamp(200px,25vw,390px)/.86 var(--latin); letter-spacing: -.09em; margin: 72px 0 24px -10px; }
.hero-number > span { font-size: .18em; letter-spacing: -.04em; color: var(--mint); vertical-align: top; display: inline-block; margin-top: .5em; }
.hero-visual-caption { position: relative; z-index: 1; font: 400 clamp(16px,1.65vw,25px)/1.25 var(--latin); letter-spacing: .02em; margin-bottom: 38px; color: var(--mint); }
.hero-journal { width: calc(100% + 120px); max-width: none; align-self: center; height: auto; opacity: .65; mix-blend-mode: luminosity; }
.hero-place { display: flex; justify-content: space-between; gap: 24px; margin-top: 30px; padding-top: 20px; border-top: 1px solid #ffffff40; font: 400 13px var(--latin); letter-spacing: .1em; }
.hero-scroll { display: none; }
.section { padding-block: clamp(72px,8vw,124px); }
.section-header { position: relative; margin-bottom: 46px; padding-top: 24px; border-top: 1px solid var(--line); }
.section-num { display: block; color: var(--muted); font: 400 12px var(--latin); letter-spacing: .08em; margin-bottom: 16px; }
.section-title { display: flex; align-items: baseline; gap: 26px; flex-wrap: wrap; line-height: 1.15; }
.title-en { font: 400 clamp(44px,5.6vw,80px)/1.05 var(--serif); letter-spacing: -.025em; }
.title-jp { font-size: 17px; font-weight: 500; letter-spacing: .08em; }
.section-lede { max-width: 800px; margin-top: 24px; color: var(--muted); font-size: 15px; line-height: 1.9; }
.greeting-grid { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: clamp(40px,7vw,110px); }
.portrait-frame { position: relative; background: var(--paper); }
.portrait-frame img { width: 100%; height: auto; }
.portrait-tag { display: none; }
.greeting-portrait figcaption { display: flex; flex-direction: column; margin-top: 20px; }
.portrait-role { font-size: 12px; color: var(--muted); }
.portrait-name { font-size: 28px; font-weight: 500; letter-spacing: .13em; margin: 3px 0; }
.portrait-name-en { font: 400 14px var(--latin); color: var(--muted); }
.portrait-affil { margin-top: 16px; font-size: 13px; }
.portrait-bio { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); }
.portrait-bio li { margin-bottom: 16px; line-height: 1.8; }
.portrait-bio span { display: block; font-size: 12px; color: var(--muted); }
.portrait-bio strong { font-size: 13px; font-weight: 400; }
.greeting-pull { position: relative; padding: 0 0 28px 22px; margin-bottom: 32px; border-bottom: 1px solid var(--line); border-left: 3px solid var(--mint); }
.quote-mark { display: none; }
.greeting-pull p { font-size: clamp(22px,2.5vw,34px); font-weight: 500; line-height: 1.6; letter-spacing: .015em; }
.greeting-pull cite { display: block; font-size: 13px; font-style: normal; margin-top: 18px; color: var(--muted); }
.greeting-text { font-size: 16px; line-height: 2.1; }
.greeting-text p + p { margin-top: 22px; }
.greeting-h3 { margin-block: 28px 8px; font-size: 18px; font-weight: 500; }
.greeting-text strong { font-weight: 500; }
.greeting-text mark { color: inherit; background: linear-gradient(transparent 65%,#d8f3ea 65%); }
.pillars { background: var(--deep); color: #fff; }
.pillars .section-header { border-color: #ffffff44; }
.pillars .section-num, .pillars .section-lede { color: #c1d4e2; }
.pillars-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #ffffff44; }
.pillars-grid li { min-width: 0; }
.pillar { display: flex; flex-direction: column; height: 100%; padding: 26px 28px 26px 0; border-bottom: 1px solid #ffffff44; transition: background .2s; }
.pillars-grid li:not(:nth-child(3n+1)) .pillar { padding-left: 28px; border-left: 1px solid #ffffff44; }
.pillar:hover { background: #ffffff08; }
.pillar-num { font: 400 15px var(--latin); color: var(--mint); }
.pillar-title { font-size: 23px; font-weight: 500; margin-block: 24px 18px; }
.pillar-title span { display: block; font: 400 16px var(--serif); color: #c1d4e2; margin-top: 7px; }
.pillar-text { color: #d1dfea; font-size: 14px; line-height: 1.9; margin-bottom: 22px; }
.pillar-tag { display: flex; justify-content: space-between; margin-top: auto; font: 400 13px var(--latin); color: var(--mint); }
.pillar-tag em { font-style: normal; }
.pillars-footer { font-size: 14px; color: #c1d4e2; margin-top: 26px; }
.pillars :focus-visible { outline-color: var(--mint); }
.overview-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--line); }
.overview-card { padding: 24px; border-left: 1px solid var(--line); }
.overview-card:first-child { padding-left: 0; border: 0; }
.card-label { font: 500 12px var(--latin); letter-spacing: .12em; color: var(--blue); }
.card-headline { margin-top: 20px; font-size: 21px; font-weight: 500; line-height: 1.6; }
.card-sub { margin-top: 14px; font-size: 13px; color: var(--muted); line-height: 1.9; }
.overview-card--wide { grid-column: 1/-1; border-left: 0; border-top: 1px solid var(--line); padding: 22px 0; display: grid; grid-template-columns: 100px 1fr; align-items: baseline; }
.overview-card--wide .card-headline { margin: 0; font-size: 19px; }
.overview-card--wide .card-sub { grid-column: 2; margin-top: 4px; }
.date-y { display: block; font: 400 20px var(--latin); margin-top: 18px; }
.date-md { font: 500 58px/1.1 var(--latin); letter-spacing: -.04em; }
.date-d { font: 500 14px var(--latin); margin-left: 10px; }
.schedule-summary { margin-top: 60px; }
.schedule-title { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; margin-bottom: 24px; }
.schedule-title span { font: 400 32px var(--serif); }
.schedule-title em { font: 400 13px var(--latin); font-style: normal; color: var(--muted); }
.schedule-row { display: grid; grid-template-columns: 76px 160px 150px 1fr 22px; align-items: center; gap: 20px; padding: 22px 18px; border-top: 1px solid var(--line); }
.schedule-row:last-child { border-bottom: 1px solid var(--line); }
.schedule-row:hover { background: var(--paper); }
.row-tag { font-size: 12px; color: var(--blue); }
.row-time { font: 500 18px var(--latin); white-space: nowrap; }
.row-name { font-size: 15px; font-weight: 500; }
.row-desc { font-size: 13px; color: var(--muted); }
.program { background: var(--paper); }
.program .section-header { padding-right: 340px; }
.program .section-header > .section-lede + .section-lede { position: absolute; right: 0; top: 18px; }
.program .section-header > p:last-child { position: absolute; right: 0; top: 108px; color: var(--muted); font-size: 13px; }
.program-index { display: flex; flex-wrap: wrap; border-top: 1px solid #acbdc8; border-bottom: 1px solid #acbdc8; margin-bottom: 48px; }
.program-index a { font-size: 14px; min-height: 52px; display: flex; align-items: center; gap: 10px; padding: 10px 22px; border-right: 1px solid var(--line); }
.program-index a:first-child { padding-left: 0; }
.program-index a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 6px; }
.program-index span { font: 400 13px var(--latin); color: var(--blue); }
.room-header { display: flex; align-items: center; gap: 28px; padding-bottom: 24px; border-bottom: 2px solid var(--ink); }
.room-mark { display: flex; align-items: center; gap: 13px; }
.mark-num { font: 400 48px/1 var(--serif); color: var(--blue); }
.mark-line { width: 24px; height: 1px; background: var(--blue); }
.mark-tag { font: 500 12px var(--latin); letter-spacing: .08em; }
.room-title { font-size: 20px; font-weight: 500; }
.room-subtitle { margin-left: auto; font: 500 18px var(--latin); white-space: nowrap; }
.timeline-item { display: grid; grid-template-columns: 170px minmax(0,1fr); gap: 30px; padding-block: 36px; border-bottom: 1px solid #cbd9df; }
.time { font: 500 20px/1.5 var(--latin); white-space: nowrap; padding-top: 4px; }
.entry { min-width: 0; }
.entry-title { font-size: 23px; font-weight: 500; line-height: 1.6; }
.entry-theme { font-size: 18px; font-weight: 500; margin-top: 8px; }
.entry-meta { margin-top: 16px; font-size: 14px; color: #344e62; }
.entry-note { margin-top: 10px; font-size: 13px; color: var(--muted); }
.entry-tag { display: inline-block; font: 500 12px/1.5 var(--latin); text-transform: uppercase; letter-spacing: .06em; padding: 4px 10px; border: 1px solid #8fa7b8; color: var(--deep); margin-bottom: 14px; }
.entry-tag--gold { font-family: var(--font); font-size: 12px; letter-spacing: 0; }
.timeline-item--break { padding-block: 20px; color: var(--muted); }
.timeline-item--break .entry-title { font-size: 15px; }
.timeline-item--small .entry-title { font-size: 20px; }
.timeline-item--small .entry-meta { margin-top: 4px; }
.speaker-list { margin-top: 30px; }
.speaker-list li { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 6px 22px; padding: 22px 0; border-top: 1px solid var(--line); }
.speaker-name { grid-column: 1; grid-row: 1; font-size: 19px; font-weight: 500; }
.speaker-affil { grid-column: 1; grid-row: 2; font-size: 13px; color: var(--muted); line-height: 1.75; }
.speaker-title { grid-column: 2; grid-row: 1/span 2; align-self: center; font-size: 17px; font-weight: 500; line-height: 1.8; }
.timeline-item:is(#special-1,#special-2) { margin-top: 28px; padding: 34px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--blue); grid-template-columns: 136px minmax(0,1fr); }
#special-2 { border-top-color: #32806e; }
.entry-credits { margin-top: 24px; padding: 16px 20px; background: #edf6f4; border-left: 2px solid #6bae9b; }
.entry-credits-title { font-size: 13px; }
.entry-credits-title strong { margin-left: 12px; }
.entry-credits-list { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; }
.entry-credits-list li { display: flex; align-items: baseline; gap: 8px; font-size: 12px; color: #355b51; }
.entry-credit-code { font: 600 14px var(--latin); }
.entry-sponsor { padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.rooms-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; margin-top: 64px; }
.rooms-grid .room-header { flex-wrap: wrap; gap: 12px 22px; }
.rooms-grid .room-mark { flex: 1 0 100%; }
.rooms-grid .room-title { font-size: 18px; }
.rooms-grid .room-subtitle { font-size: 16px; margin-left: 0; }
.room-body { padding-top: 28px; }
.room-session { font-size: 20px; font-weight: 500; }
.room-meta, .hands-meta { margin-top: 12px; font-size: 14px; color: var(--muted); }
.room-text { margin-top: 20px; font-size: 15px; }
.hands-card { display: grid; grid-template-columns: 28px 1fr; gap: 14px; padding-block: 0 24px; }
.hands-card + .hands-card { padding-top: 24px; border-top: 1px solid var(--line); }
.hands-title { font-size: 17px; font-weight: 500; }
.hands-num { color: var(--blue); font-size: 20px; }
.hands-sponsor { font-size: 13px; margin-top: 8px; color: var(--muted); }
.speakers-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 36px; }
.sp-card { padding-block: 25px; border-top: 1px solid var(--line); }
.sp-tag { font-size: 12px; color: var(--blue); }
.sp-name { font-size: 25px; font-weight: 500; letter-spacing: .08em; margin-block: 10px; }
.sp-affil { font-size: 13px; color: var(--muted); line-height: 1.85; }
.sp-card--chair { border-top: 2px solid var(--blue); }
.partners { padding-top: 0; }
.partners-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 36px; }
.partner-group { border-top: 1px solid var(--line); padding-top: 24px; }
.partner-cat { font-size: 15px; font-weight: 500; }
.partner-cat-sub { font-size: 12px; color: var(--muted); margin-block: 8px 24px; min-height: 44px; }
.partner-list { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 17px; }
.access { background: #edf4f5; }
.access-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 60px; }
.access-eyebrow { font: 500 12px var(--latin); color: var(--blue); letter-spacing: .12em; }
.access-name { font-size: 30px; font-weight: 500; margin-top: 20px; }
.access-name > span { display: block; font-size: 18px; }
.access-name strong { font: 500 34px var(--latin); margin-left: 12px; }
.access-address { font-size: 14px; color: var(--muted); margin-top: 24px; }
.access-routes { margin-top: 26px; }
.access-routes li { display: flex; align-items: baseline; gap: 14px; padding-block: 12px; border-bottom: 1px solid var(--line); }
.route-tag { min-width: 48px; font-size: 12px; color: var(--blue); }
.route-text { font-size: 14px; }
.access-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 28px; }
.btn-route { background: var(--deep); color: #fff; }
.btn-route:hover { background: var(--blue); }
.access-map-link, .access-official { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 13px; text-decoration: underline; text-underline-offset: 5px; }
.access-official { margin-top: 16px; }
.access-map { align-self: stretch; display: flex; flex-direction: column; background: #fff; border: 1px solid #c1d2db; }
.map-heading { display: flex; justify-content: space-between; padding: 16px 22px; font-size: 12px; }
.map-heading span:first-child { font-family: var(--latin); letter-spacing: .1em; }
.map-frame { min-height: 380px; flex: 1; display: flex; }
.map-frame iframe { width: 100%; height: 100%; min-height: 420px; border: 0; }
.map-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding: 14px 22px; font-size: 12px; color: var(--muted); }
.registration { background: var(--deep); color: #fff; position: relative; }
.registration-card { position: relative; }
.registration-eyebrow { font: 400 18px var(--serif); color: var(--mint); }
.registration-title { font-size: clamp(26px,3.7vw,50px); font-weight: 500; line-height: 1.6; letter-spacing: -.02em; margin-top: 20px; }
.registration-title em { font-style: normal; color: var(--mint); }
.registration-text { color: #c1d4e2; font-size: 15px; margin-top: 24px; }
.registration-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 32px; }
.registration .btn-primary { background: var(--mint); color: var(--deep); border-color: var(--mint); }
.registration .btn-primary:hover { background: #c8f1e4; }
.registration .btn-ghost { color: #fff; border-color: #aac0d1; }
.registration .btn-ghost:hover { background: #ffffff14; }
.registration :focus-visible { outline-color: var(--mint); }
.registration-meta { display: flex; gap: 60px; border-top: 1px solid #ffffff44; padding-top: 28px; margin-top: 48px; }
.registration-meta > div { display: flex; flex-direction: column; gap: 8px; }
.registration-meta span { font-size: 12px; color: #c1d4e2; }
.registration-meta strong { font: 500 24px var(--latin); }
.site-footer { padding: 64px var(--gutter) 24px; max-width: calc(var(--page) + var(--gutter)*2); margin: auto; }
.footer-inner { display: grid; grid-template-columns: 1fr 1.2fr .8fr; gap: 40px; }
.footer-brand { display: flex; flex-direction: column; }
.footer-en { font: 400 23px/1.2 var(--serif); }
.footer-ja { font-size: 14px; font-weight: 500; margin-top: 16px; }
.footer-theme { font-size: 14px; font-weight: 500; }
.footer-date, .footer-chair { font-size: 12px; color: var(--muted); margin-top: 10px; }
.next-label { font: 400 14px var(--serif); color: var(--blue); }
.next-name { font-size: 15px; margin-top: 10px; }
.next-chair { font-size: 13px; color: var(--muted); margin-top: 8px; }
.footer-jasmist { display: flex; align-items: center; gap: 28px; margin-top: 48px; padding-block: 28px; border-block: 1px solid var(--line); }
.footer-jasmist-logo { flex: 0 0 100px; width: 100px; }
.footer-jasmist-logo img { width: 100%; height: auto; }
.footer-jasmist-label { display: none; }
.footer-jasmist-text p { font-size: 13px; }
.footer-jasmist-en { font: 400 13px var(--latin); color: var(--muted); display: block; }
.footer-jasmist-link, .footer-top { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; font-size: 12px; }
.footer-jasmist-link:hover, .footer-top:hover { text-decoration: underline; text-underline-offset: 5px; }
.footer-top { margin-left: auto; }
.footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 24px; color: var(--muted); }
.footer-base small { font: 400 12px/1.6 var(--latin); }
@media (prefers-reduced-motion: no-preference) {
  .hero-inner { animation: enter .65s both; }
  .hero-number { animation: enter .9s .12s both; }
  @keyframes enter { from { opacity: .2; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}
@media (min-width: 1700px) { .hero-inner { padding-left: max(var(--gutter), calc((100vw - 1440px)/2)); } }
@media (max-width: 1120px) {
  :root { --header: 80px; }
  .header-inner { padding-inline: var(--gutter); }
  .primary-nav { display: none; }
  .header-jasmist { margin-left: auto; order: 0; width: 72px; flex-basis: 72px; }
  .nav-toggle { display: block; }
  .hero { grid-template-columns: 61% 39%; }
  .hero-inner { padding-right: 30px; }
  .hero-meta { grid-template-columns: 1fr 1fr; gap: 18px 20px; }
  .hero-meta > div:last-child { display: flex; grid-column: 1/-1; align-items: baseline; gap: 18px; }
  .hero-meta > div:last-child .meta-sub { display: inline; margin-left: 12px; }
  .hero-number { font-size: 26vw; }
  .hero-number > span { position: relative; top: auto; right: auto; }
  .hero-visual { padding-inline: 30px; }
  .overview-grid { grid-template-columns: repeat(2,1fr); }
  .overview-card:nth-child(3) { border-left: 0; padding-left: 0; }
  .overview-card:nth-child(n+3):not(:last-child) { border-top: 1px solid var(--line); }
  .schedule-row { grid-template-columns: 64px 148px 140px 1fr 16px; gap: 12px; padding-inline: 0; }
  .greeting-grid { grid-template-columns: 240px minmax(0,1fr); gap: 48px; }
  .program .section-header { padding-right: 290px; }
  .timeline-item { grid-template-columns: 150px minmax(0,1fr); gap: 24px; }
  .timeline-item:is(#special-1,#special-2) { padding: 28px; grid-template-columns: 1fr; gap: 18px; }
  .access-grid { gap: 32px; }
  .partners-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  :root { --gutter: 24px; --header: 76px; }
  .brand-ja { font-size: 16px; }
  .brand-en { font-size: 11px; }
  .header-inner { gap: 16px; padding-block: 10px; }
  .header-cta { display: none; }
  .header-jasmist { width: 65px; flex-basis: 65px; }
  .hero { display: flex; flex-direction: column; min-height: auto; }
  .hero-inner { order: 0; padding: 36px var(--gutter) 38px; }
  .hero-eyebrow { font-size: 12px; margin-bottom: 26px; gap: 12px; }
  .eyebrow-mark { width: 20px; flex-basis: 20px; }
  .title-line-1 { font-size: 16px; margin-bottom: 5px; }
  .title-line-1 em { font-size: 21px; }
  .title-line-2 { font-size: clamp(27px,6.6vw,46px); }
  .hero-theme { margin-top: 28px; }
  .theme-jp { font-size: clamp(24px,5.5vw,34px); }
  .theme-en { font-size: 20px; }
  .hero-meta { margin-top: 25px; padding-block: 20px; }
  .hero-meta dd { font-size: 14px; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 24px; }
  .hero-actions .btn { padding: 13px 10px; gap: 9px; font-size: 13px; }
  .hero-access-link { grid-column: 1/-1; justify-self: start; }
  .hero-visual { order: 1; padding: 30px var(--gutter); min-height: 230px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
  .hero-visual::before { width: 450px; height: 450px; top: -140px; left: -25%; }
  .hero-visual::after { width: 450px; height: 450px; top: -120px; left: 10%; }
  .hero-edition { top: 28px; right: var(--gutter); font-size: 11px; text-align: right; }
  .hero-number { grid-column: 1; margin: 10px 0 0; font-size: clamp(136px,28vw,205px); }
  .hero-number > span { top: 0; right: auto; position: relative; font-size: .18em; }
  .hero-visual-caption { grid-column: 2; font-size: 13px; justify-self: end; align-self: end; margin: 0 0 10px; text-align: right; }
  .hero-journal { display: none; }
  .hero-place { grid-column: 1/-1; margin-top: 25px; padding-top: 14px; font-size: 11px; }
  .section { padding-block: 64px; }
  .section-header { margin-bottom: 32px; padding-top: 18px; }
  .section-num { margin-bottom: 12px; }
  .section-title { align-items: flex-start; flex-direction: column; gap: 9px; }
  .title-en { font-size: 46px; }
  .title-jp { font-size: 16px; }
  .section-lede { font-size: 14px; margin-top: 20px; }
  .section-lede br { display: none; }
  .greeting-grid { display: flex; flex-direction: column; gap: 32px; }
  .greeting-portrait figure { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 20px; align-items: center; }
  .greeting-portrait figcaption { margin-top: 0; }
  .portrait-name { font-size: 24px; }
  .portrait-role { font-size: 11px; }
  .portrait-name-en { font-size: 12px; }
  .portrait-affil { font-size: 12px; margin-top: 10px; }
  .portrait-bio { grid-column: 1/-1; margin-top: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }
  .portrait-bio li { margin: 0; }
  .portrait-bio li:last-child { grid-column: 1/-1; }
  .portrait-bio strong { font-size: 12px; }
  .greeting-pull { padding-left: 16px; margin-bottom: 24px; }
  .greeting-pull p { font-size: 23px; }
  .greeting-text { font-size: 16px; line-height: 2; }
  .greeting-h3 { font-size: 17px; }
  .pillars-grid { grid-template-columns: 1fr 1fr; }
  .pillars-grid li:not(:nth-child(3n+1)) .pillar { padding-left: 0; border-left: 0; }
  .pillars-grid li:nth-child(even) .pillar { padding-left: 20px; border-left: 1px solid #ffffff44; }
  .pillar { padding: 22px 16px 22px 0; }
  .pillar-title { font-size: 19px; margin-top: 18px; }
  .pillar-title span { font-size: 15px; }
  .pillar-text { font-size: 13px; }
  .pillars-footer { font-size: 13px; }
  .overview-card { padding: 20px; }
  .card-headline { font-size: 18px; }
  .date-md { font-size: 46px; }
  .card-sub { font-size: 12px; }
  .overview-card--wide { display: block; padding-inline: 0; }
  .overview-card--wide .card-headline { margin-block: 14px 8px; font-size: 17px; }
  .schedule-summary { margin-top: 38px; }
  .schedule-title span { font-size: 28px; }
  .schedule-title em { font-size: 12px; }
  .schedule-row { grid-template-columns: 65px 1fr 22px; gap: 5px 14px; padding: 20px 0; }
  .row-time { grid-column: 2; grid-row: 1; }
  .row-name { grid-column: 2; grid-row: 2; }
  .row-desc { grid-column: 2; grid-row: 3; font-size: 12px; }
  .row-arrow { grid-column: 3; grid-row: 1/span 3; }
  .program .section-header { padding-right: 0; }
  .program .section-header > .section-lede + .section-lede { position: static; margin-top: 22px; }
  .program .section-header > p:last-child { position: static; margin-top: 8px; }
  .program-index { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 36px; }
  .program-index a { padding: 12px 14px; border-bottom: 1px solid var(--line); border-right: 0; font-size: 13px; }
  .program-index a:first-child { padding-left: 14px; }
  .program-index a:nth-child(odd) { border-right: 1px solid var(--line); }
  .program-index a:last-child { border-bottom: 0; }
  .room-header { flex-wrap: wrap; gap: 12px 18px; }
  .room-mark { flex: 1 0 100%; }
  .mark-num { font-size: 42px; }
  .room-title { font-size: 18px; }
  .room-subtitle { font-size: 16px; margin-left: 0; }
  .timeline-item { grid-template-columns: 1fr; gap: 16px; padding-block: 28px; }
  .time { font-size: 19px; color: var(--blue); }
  .entry-title { font-size: 21px; }
  .entry-theme { font-size: 17px; }
  .entry-meta { font-size: 14px; }
  .entry-note { font-size: 14px; }
  .speaker-list { margin-top: 24px; }
  .speaker-list li { grid-template-columns: 1fr; gap: 8px; padding-block: 20px; }
  .speaker-name { grid-row: 2; font-size: 17px; }
  .speaker-affil { grid-row: 3; font-size: 14px; }
  .speaker-affil br { display: none; }
  .speaker-title { grid-column: 1; grid-row: 1; font-size: 17px; margin-bottom: 8px; }
  .timeline-item:is(#special-1,#special-2) { margin-inline: -10px; padding: 24px 18px; gap: 18px; }
  .entry-credits { padding: 14px; }
  .entry-credits-list { display: grid; gap: 8px; }
  .rooms-grid { grid-template-columns: 1fr; gap: 44px; margin-top: 44px; }
  .speakers-grid { grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .sp-card { padding-block: 20px; }
  .sp-name { font-size: 22px; }
  .sp-tag, .sp-affil { font-size: 12px; }
  .partners { padding-top: 0; }
  .partners-grid { gap: 28px; }
  .partner-cat { font-size: 14px; }
  .partner-list { font-size: 16px; }
  .access-grid { grid-template-columns: 1fr; }
  .access-name { font-size: 27px; }
  .map-frame, .map-frame iframe { min-height: 360px; height: 360px; }
  .registration-title { font-size: 28px; }
  .registration-text { font-size: 14px; }
  .registration-meta { gap: 28px; flex-wrap: wrap; margin-top: 36px; }
  .registration-meta strong { font-size: 21px; }
  .site-footer { padding-top: 48px; }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; }
  .footer-jasmist { gap: 20px; flex-wrap: wrap; margin-top: 32px; }
  .footer-jasmist-logo { width: 75px; flex-basis: 75px; }
  .footer-jasmist-text { flex: 1; }
  .footer-jasmist-text p, .footer-jasmist-en { font-size: 12px; }
  .footer-top { flex: 1 0 100%; justify-content: flex-end; }
}
@media (max-width: 370px) {
  :root { --gutter: 18px; }
  .header-inner { gap: 10px; }
  .brand-en { font-size: 10px; }
  .brand-ja { font-size: 15px; }
  .header-jasmist { width: 54px; flex-basis: 54px; }
  .hero-actions { grid-template-columns: 1fr; }
  .hero-actions .btn { font-size: 14px; }
  .hero-meta { gap: 16px 10px; }
  .hero-meta > div:first-child, .hero-meta > div:nth-child(2) { grid-column: 1/-1; display: flex; align-items: baseline; gap: 10px; }
  .hero-meta > div:first-child dt, .hero-meta > div:nth-child(2) dt { min-width: 48px; }
  .hero-meta time { white-space: nowrap; }
  .hero-meta > div:last-child { gap: 10px; }
  .hero-meta > div:last-child .meta-sub { margin-left: 8px; }
  .pillar-title { font-size: 17px; }
  .title-en { font-size: 40px; }
  .greeting-pull p { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  :root { --header: 0px; --gutter: 0; }
  .site-header, .hero-visual, .hero-actions, .hero-scroll, .program-index, .skip-link, .access-map { display: none; }
  .hero { display: block; min-height: 0; }
  .hero-inner { padding: 20px 0; }
  .section { padding-block: 30px; }
  body, .pillars, .registration { background: #fff; color: #111; }
  .pillars :is(.section-lede,.section-num,.pillar-text,.pillar-num,.pillar-tag,.pillar-title span,.pillars-footer), .registration :is(.registration-text,.registration-title em,.registration-eyebrow) { color: #333; }
  .timeline-item, .sp-card { break-inside: avoid; }
  .site-footer { padding: 20px 0; }
}
