/* Homepage sections; shared theme and navigation are in site.css. */
.home-page .info-card dt { font-size: var(--text-small); }
.home-page .recruit-media span, .home-page .recruit-list a > span { font-size: var(--text-meta); }
.home-page .recruit-list small { font-size: var(--text-small); }
/* Hero: full-bleed background video (HLS via js/hero-video.js) with the copy laid over it. */
.home-page .hero { padding: 0; background: var(--paper); }
.hero-video-stage { position: relative; isolation: isolate; display: grid; grid-template-rows: 1fr auto; min-height: min(86svh, 780px); padding: clamp(48px, 7vw, 96px) 0 20px; color: white; background: var(--ink-deep); }
.hero-video-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; background: var(--ink-deep) image-set(url('../images/home/hero-video-poster-800.webp') 1x, url('../images/home/hero-video-poster-1600.webp') 2x) center / cover no-repeat; }
.hero-video-media video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-video-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,29,47,.9) 0%, rgba(7,29,47,.76) 56%, rgba(7,29,47,.28) 100%), linear-gradient(0deg, rgba(7,29,47,.72), rgba(7,29,47,0) 42%); }
.hero-video-content { align-self: center; }
.home-page .hero-video .hero-copy { max-width: 640px; padding-block: 0; }
.home-page .hero-video .eyebrow { color: white; }
.home-page .hero-video h1 .accent { color: var(--yellow); }
.home-page .hero.hero-video h1 .accent::after { background: var(--orange-dark); opacity: .9; }
.hero-video .hero-copy { text-shadow: 0 1px 14px rgba(7,29,47,.45); }
.hero-video .hero-copy .button, .hero-video .hero-facts { text-shadow: none; }
.home-page .hero-video .eyebrow::before { background: var(--yellow); }
.hero-video .hero-event-name { color: white; }
.hero-video .hero-event-name span { color: #e3eaf1; }
.home-page .hero-video h1 { color: white; }
.hero-video .hero-description { color: #eef3f7; }
.hero-video .hero-facts li { border-color: rgba(255,255,255,.35); background: rgba(7,29,47,.45); color: #d3dfe7; backdrop-filter: blur(6px); }
.hero-video .hero-facts strong { color: white; }
.home-page .hero-video .button.light { border-color: rgba(255,255,255,.75); color: white; }
.home-page .hero-video .registration-note { color: #e3eaf1; }
.home-page .hero-video .registration-note a { color: white; }
.hero-video-bar { margin-top: 36px; }
/* Video controls: small icon buttons tucked into the top-right corner. */
.hero-video-toolbar { position: absolute; top: 18px; left: 0; right: 0; z-index: 2; display: flex; justify-content: flex-end; pointer-events: none; }
.hero-video-controls { display: flex; align-items: center; gap: 6px; pointer-events: auto; }
.hero-video-controls button { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: rgba(7,29,47,.6); color: white; cursor: pointer; opacity: .9; transition: opacity .2s, background .2s; }
.hero-video-controls button:hover, .hero-video-controls button:focus-visible { opacity: 1; background: rgba(7,29,47,.75); }
.hero-video-controls svg { width: 18px; height: 18px; fill: currentColor; }
.hero-video-controls button[aria-pressed="true"] .icon-off, .hero-video-controls button[aria-pressed="false"] .icon-on { display: none; }
.hero-video-loading { display: grid; place-items: center; width: 36px; height: 36px; }
.hero-video-loading[hidden] { display: none; }
.hero-video-spinner { width: 20px; height: 20px; border: 2px solid rgba(255,255,255,.25); border-top-color: var(--yellow); border-radius: 50%; animation: hero-video-spin .9s linear infinite; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hero-video-note { margin: 0; color: #e3eaf1; font-size: var(--text-meta); }
/* Loading state: a ring spinner over the poster while the first segments buffer. */
@keyframes hero-video-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .hero-video-spinner { animation-duration: 2.4s; } }
.hero-video.is-fullscreen video { object-fit: contain; background: black; }
.home-page .hero-copy { padding-block: 8px 24px; }
.hero-event-name { margin: 0 0 17px; font-size: 1.25rem; font-weight: 850; letter-spacing: -.02em; }
.hero-event-name span { display: block; margin-top: 2px; color: var(--muted); font-size: var(--text-meta); font-weight: 650; letter-spacing: .08em; }
.home-page .hero h1 { margin: 0 0 24px; font-size: clamp(2.25rem, 4.25vw, 3.5rem); line-height: 1.4; letter-spacing: -.045em; }
.home-page .hero h1 > span { display: block; }
.home-page .hero h1 .accent { width: fit-content; position: relative; isolation: isolate; }
.home-page .hero h1 .accent::after { content: ""; position: absolute; bottom: 3px; left: 0; right: 8px; z-index: -1; height: 13px; background: var(--yellow); transform: rotate(-1deg); }
.hero-description { margin: 0; color: var(--muted); font-size: var(--text-body); line-height: 1.95; }
.hero-facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; }
.hero-facts li { padding: 9px 14px; border: 1px solid var(--line); background: white; color: var(--muted); font-size: var(--text-meta); line-height: 1.5; }
.hero-facts strong { display: block; color: var(--ink); font-size: var(--text-small); }
.hero-mobile-facts { display: none; }
.home-page .hero .button-row { gap: 12px; margin-top: 15px; }
.home-page .hero .button { font-size: var(--text-body); }
.home-page .registration-note { margin-top: 14px; color: var(--muted); font-size: var(--text-meta); font-weight: 500; }
.hero-date-strip { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 32px; margin-top: 0; padding: 28px 0; border-bottom: 2px solid var(--ink); }
.hero-date { display: flex; align-items: center; gap: 20px; }
.date-label { display: block; color: var(--muted); font-size: var(--text-meta); font-weight: 800; }
.hero-date time { display: flex; align-items: baseline; font-size: 58px; font-weight: 900; line-height: 1.05; letter-spacing: -.045em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.date-year { font-size: .55em; }
.date-day { margin-left: 15px; font-size: var(--text-small); letter-spacing: 0; }
.hero-hours { margin: 8px 0 0; font-size: var(--text-small); font-weight: 750; }
.hero-venue { padding-left: 32px; border-left: 1px solid var(--line); }
.hero-venue strong { display: block; font-size: 1.4375rem; }
.hero-venue > span:last-child { display: block; font-size: var(--text-meta); color: var(--muted); }
.hero-access-link { padding-block: 12px; font-size: var(--text-small); font-weight: 800; text-underline-offset: 5px; }
.hero-access-link span { margin-left: 18px; }
.home-section-heading { max-width: 900px; margin-bottom: 44px; }
.home-page .section-index { margin: 0 0 18px; color: var(--orange-dark); font-size: var(--text-meta); font-weight: 900; letter-spacing: .1em; }
.home-section-heading h2 { margin: 0 0 22px; font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.45; letter-spacing: -.035em; }
.home-section-heading > p:last-child:not(.section-index, .archive-date) { margin: 0; color: var(--muted); font-size: var(--text-body); }
.discovery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px; }
.discovery-item { display: flex; flex-direction: column; padding-top: 24px; border-top: 2px solid var(--ink); }
.discovery-photo { margin: 0 0 22px; overflow: hidden; background: var(--sand); }
.discovery-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .4s ease; }
.discovery-item:hover .discovery-photo img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .discovery-photo img { transition: none; } }
.discovery-number { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; color: var(--orange-dark); font-size: 40px; font-weight: 850; line-height: 1; }
.discovery-number span { color: var(--muted); font-size: var(--text-meta); letter-spacing: .16em; }
.discovery-item:nth-child(2) .discovery-number { color: #087780; }
.discovery-item:nth-child(3) .discovery-number { color: var(--ink); }
.discovery-item h3 { margin: 0 0 14px; font-size: 1.75rem; line-height: 1.6; }
.discovery-item p { margin: 0 0 22px; color: var(--muted); font-size: var(--text-body); }
.discovery-item .text-link { margin-top: auto; font-size: var(--text-small); }
.archive-experiences { background: var(--sage); }
.program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0 0 48px; padding: 0; list-style: none; }
.program-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 220px; padding: 26px 28px; background: white; border-top: 3px solid var(--ink); }
.program-card h3 { margin: 0 0 10px; font-size: 1.5rem; line-height: 1.5; }
.program-card p { margin: 0 0 16px; color: var(--muted); font-size: var(--text-body); }
.program-card .text-link { margin-top: auto; font-size: var(--text-small); }
.program-card-soon { justify-content: space-between; border: 2px dashed #b7c6c0; border-top-width: 2px; background: rgba(255,255,255,.45); }
.program-card-kind { color: var(--muted); font-size: var(--text-meta); font-weight: 800; letter-spacing: .06em; }
.program-card-soon strong { color: #7a8f88; font-size: 1.625rem; font-weight: 850; letter-spacing: .02em; }
.program-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0 0 48px; }
.program-status > div { display: flex; flex-direction: column; align-items: flex-start; padding: 26px 28px; background: white; border-top: 3px solid var(--ink); }
.status-label { display: inline-block; margin-bottom: 12px; padding: 4px 10px; font-size: var(--text-meta); font-weight: 850; letter-spacing: .05em; }
.status-label.confirmed { background: var(--yellow); color: var(--ink-deep); }
.status-label.pending { background: #edf2ef; color: #286356; }
.program-status h3 { margin: 0 0 10px; font-size: 1.5rem; line-height: 1.5; }
.program-status p { margin: 0 0 16px; color: var(--muted); font-size: var(--text-body); }
.program-status .text-link { margin-top: auto; font-size: var(--text-small); }
.archive-heading-row { margin-bottom: 28px; padding-top: 32px; border-top: 2px solid #72928a; }
.archive-subtitle { margin: 0 0 14px; font-size: 1.625rem; line-height: 1.5; }
.archive-date-inline { margin-left: 14px; color: var(--muted); font-size: var(--text-meta); font-weight: 800; letter-spacing: .1em; font-variant-numeric: tabular-nums; }
.archive-more { margin: 32px 0 0; font-size: var(--text-small); }
.archive-heading { display: flex; max-width: none; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 20px; }
.archive-heading h2 { margin-bottom: 0; }
.archive-date { flex-shrink: 0; margin: 0 0 6px; text-align: right; color: var(--ink); font-size: var(--text-meta); font-weight: 800; letter-spacing: .1em; }
.archive-date time { font-size: 1.625rem; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.archive-intro { max-width: 760px; color: var(--muted); font-size: var(--text-body); }
.archive-notice { margin: 0; padding: 14px 18px; border-left: 3px solid var(--teal); background: #ffffff94; font-size: var(--text-small); }
.activity-type { display: inline-block; padding: 4px 9px; background: #edf2ef; color: #286356; font-size: var(--text-meta); font-weight: 850; letter-spacing: .05em; }
.home-page .exhibitor-name, .previous-page .exhibitor-name { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--ink); font-size: var(--text-meta); font-weight: 750; }
/* Every archive photo uses the same frame and card structure. */
.archive-grid { display: grid; gap: 32px; align-items: stretch; }
.archive-grid-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.archive-grid-exhibits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.archive-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: white; scroll-margin-top: 24px; }
.archive-card-media { position: relative; flex: none; width: 100%; min-width: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.archive-card-media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; }
.archive-card-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; min-width: 0; padding: 26px; }
.archive-card h3 { margin: 14px 0 12px; font-size: 1.625rem; line-height: 1.5; }
.archive-card-featured h3 { font-size: clamp(1.625rem, 2.6vw, 2rem); }
.archive-card-copy > p:not(.exhibitor-name) { margin: 0 0 24px; color: var(--muted); font-size: var(--text-body); }
.home-page .archive-card .exhibitor-name, .previous-page .archive-card .exhibitor-name { width: 100%; margin: auto 0 0; padding-top: 16px; }
.home-page .archive-grid-exhibits .exhibitor-name, .previous-page .archive-grid-exhibits .exhibitor-name { min-height: calc(3.8em + 17px); }
.archive-robot-note { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: 32px; margin-top: 32px; padding-top: 26px; border-top: 2px solid #72928a; }
.archive-robot-photo { min-width: 0; margin: 0; }
.archive-robot-photo img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.archive-robot-photo figcaption { margin-top: 10px; color: var(--muted); font-size: var(--text-meta); line-height: 1.7; }
.archive-robot-note h3 { margin: 14px 0 16px; font-size: 1.625rem; line-height: 1.5; }
.archive-robot-note p { margin: 0; color: var(--muted); font-size: var(--text-body); }
.archive-footnote { margin: 28px 0 0; color: var(--muted); font-size: var(--text-meta); }
.archive-footnote a { text-underline-offset: 3px; }
.home-page .ftc-feature .split-media { margin: 0; }
.home-page .ftc-feature .split-media::before { content: none; }
.ftc-photo-frame { position: relative; }
.ftc-photo-frame::before { content: ""; position: absolute; inset: -18px 24px 18px -18px; border: 4px solid var(--yellow); transform: rotate(-2deg); }

.home-page .ftc-feature .split-media img { min-height: 0; height: auto; aspect-ratio: 1 / 1; object-position: 63% center; }
.home-page .split-media figcaption { margin-top: 12px; color: var(--muted); font-size: var(--text-meta); }
.home-page .split-copy h2 { font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.5; }
.home-page .split-copy p { font-size: var(--text-body); }
.home-page .check-list { font-size: var(--text-body); }
.home-page .content-note, .home-page .split-copy .content-note { margin: 18px 0 0; color: var(--muted); font-size: var(--text-small); font-weight: 400; line-height: 1.85; }
.next-step-section { background: var(--sand); }
.next-step-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 72px; }
.audience-list article { padding: 24px 0; border-top: 1px solid #c9bdab; }
.audience-list article:first-child { padding-top: 0; border-top: 0; }
.audience-list h3 { margin: 0 0 12px; font-size: 1.5rem; line-height: 1.5; }
.audience-list article > p { margin: 0; color: var(--muted); font-size: var(--text-body); }
.audience-list article > p + p { margin-top: 10px; }
.audience-list .audience-lead { margin-bottom: 8px; color: var(--ink); font-weight: 800; }
.conditions-block { grid-column: 1 / -1; margin-top: 16px; padding-top: 36px; border-top: 2px solid var(--ink); }
.conditions-block h3 { margin: 0 0 18px; font-size: 1.625rem; line-height: 1.5; }
.conditions-badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.conditions-badges li { padding: 8px 14px; border-radius: 999px; background: var(--ink); color: white; font-size: var(--text-small); font-weight: 800; line-height: 1.4; }
.conditions dd strong { color: var(--ink); }
.conditions { margin: 0; }
.conditions > div { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 16px 28px; padding: 16px 0; border-bottom: 1px solid #c9bdab; }
.conditions dt { font-size: var(--text-small); font-weight: 800; }
.conditions dd { margin: 0; color: var(--muted); font-size: var(--text-body); }
.activity-inquiry { grid-column: 1 / -1; padding: 24px 28px; border: 1px solid #c9bdab; background: #ffffff6b; }
.activity-inquiry h3 { margin: 0 0 10px; font-size: 1.25rem; line-height: 1.6; }
.activity-inquiry p { margin: 0 0 12px; color: var(--muted); font-size: var(--text-body); }
.activity-inquiry .text-link { display: inline-flex; align-items: center; gap: 12px; max-width: 100%; font-size: var(--text-small); }
.activity-inquiry .text-link span { flex: none; }
.visit-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 28px 32px; border: 2px solid var(--ink); }
.visit-summary dt { margin-bottom: 5px; color: var(--muted); font-size: var(--text-meta); font-weight: 800; }
.visit-summary dd { margin: 0; }
.visit-summary strong { font-size: 1.75rem; }
.visit-summary small { display: inline-block; font-size: var(--text-small); }
.visit-summary dd > small { display: block; margin-top: 4px; color: var(--muted); }
.visit-summary .text-link { display: block; width: fit-content; margin-top: 6px; font-size: var(--text-small); }
.register-block { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px 40px; align-items: center; margin-top: 28px; padding: 28px 32px; background: var(--yellow); scroll-margin-top: 24px; }
.register-block h3 { margin: 0 0 10px; font-size: 1.625rem; line-height: 1.5; }
.register-block ul { margin: 0; padding-left: 1.3em; font-size: var(--text-small); }
.register-block li + li { margin-top: 4px; }
.register-block .button { font-size: var(--text-body); }
.family-info { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.family-info h3 { margin: 0 0 20px; font-size: 1.625rem; line-height: 1.5; }
.family-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.family-grid article { padding: 20px 22px; border: 1px solid var(--line); }
.family-grid h4 { margin: 0 0 8px; font-size: var(--text-body); }
.family-grid p { margin: 0; color: var(--muted); font-size: var(--text-small); }
.program-update { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr); gap: 32px; margin-top: 28px; padding: 24px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.program-update h3 { margin: 0; font-size: var(--text-body); }
.program-update p { margin: 0; color: var(--muted); font-size: var(--text-body); }
.home-page .access-grid { gap: 64px; }
.home-page .info-card small { font-size: var(--text-meta); color: var(--muted); font-weight: 400; }
.home-page .info-card dd { font-size: var(--text-body); }
.home-page .info-card a { text-underline-offset: 4px; }
.home-page .access-directions { min-width: 0; }
.home-page .map-link { min-height: 0; height: 310px; padding: 26px; background-image: linear-gradient(0deg, #071d2feb, #071d2f00 80%), image-set(url('../images/home/iu-sumida-campus-exterior-800.webp') 1x, url('../images/home/iu-sumida-campus-exterior-1600.webp') 2x); }
.home-page .map-link > span { font-size: var(--text-meta); letter-spacing: .08em; }
.home-page .map-link strong { margin-top: 8px; font-size: 1.625rem; line-height: 1.5; }
.station-list { margin: 18px 0 0; }
.station-list > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: var(--text-small); }
.station-list dt { font-weight: 750; }
.station-list small { margin-left: 8px; font-size: var(--text-meta); color: var(--muted); font-weight: 400; }
.station-list dd { margin: 0; white-space: nowrap; font-size: var(--text-meta); }
.station-list strong { margin-inline: 5px; font-size: 1.625rem; font-variant-numeric: tabular-nums; }
.home-page .faq-list { max-width: none; }
.home-page .faq-list summary { padding-left: 0; font-size: var(--text-body); }
.home-page .faq-list summary::-webkit-details-marker { display: none; }
.home-page .faq-list p { max-width: 900px; padding-left: 0; font-size: var(--text-body); }
.closing-section { background: var(--ink-deep); color: white; }
.closing-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 40px 64px; align-items: center; }
.home-page .closing-section .section-index { color: var(--yellow); }
.closing-copy h2 { margin: 0 0 20px; font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.5; letter-spacing: -.03em; }
.closing-copy p:last-child { margin: 0; color: #d3dfe7; font-size: var(--text-body); }
.closing-actions { display: grid; gap: 12px; }
.closing-actions .button { font-size: var(--text-body); }
.home-page .recruit-section { background: var(--teal-deep); color: white; }
.home-page .recruit-media img { height: auto; }
.home-page .recruit-section .section-index { color: #c9ece8; }
.home-page .recruit-section h2 { font-size: clamp(2rem, 3.6vw, 2.875rem); line-height: 1.5; }
.home-page .recruit-section .section-heading > p:last-child { color: #d1e8e7; font-size: var(--text-body); }

.previous-report { margin-top: 36px; border-top: 1px solid #aebfb8; border-bottom: 1px solid #aebfb8; }
.previous-report summary { padding: 20px 0; cursor: pointer; font-size: var(--text-body); font-weight: 800; }
.previous-report summary > span { margin-left: 16px; font-size: var(--text-meta); font-weight: 500; color: var(--muted); }
.report-figures { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 24px; margin: 12px 0 24px; }
.report-figures dt { color: var(--muted); font-size: var(--text-small); }
.report-figures dd { margin: 6px 0 0; font-size: var(--text-small); }
.report-figures strong { margin-right: 5px; font-size: 2rem; line-height: 1.3; }
.report-figures small { display: block; font-size: var(--text-meta); }
.previous-report > p { margin: 0 0 22px; color: var(--muted); font-size: var(--text-meta); }
.maker-layout { display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: 64px; align-items: center; }
.home-page .maker-section .section-index { color: #c0dbdc; }
.maker-copy h2 { margin: 0 0 30px; font-size: clamp(2rem, 3.8vw, 3.25rem); line-height: 1.5; letter-spacing: -.03em; }
.maker-copy h2 span { color: var(--yellow); }
.maker-copy > p:not(.section-index) { margin: 0 0 20px; color: #d3dfe7; font-size: var(--text-body); }
.maker-copy > p:last-child { margin-bottom: 0; }
.maker-encounter { min-width: 0; }
.maker-encounter figure { margin: 0; }
.maker-encounter img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; object-position: 58% center; }
.maker-encounter figcaption { margin-top: 12px; color: #b7c8d5; font-size: var(--text-meta); }
.maker-questions { margin-top: 28px; }
.maker-questions > p { margin: 0 0 14px; font-size: var(--text-small); color: #c0dbdc; }
.maker-questions ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.maker-questions li { padding: 10px 15px; border: 1px solid #728597; font-size: var(--text-body); line-height: 1.5; }
.calendar-callout { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px; padding: 30px; margin-top: 32px; background: var(--paper); }
.calendar-callout > div { flex: 1 1 380px; min-width: 0; }
.calendar-callout h3 { margin: 0 0 8px; font-size: 1.625rem; }
.calendar-callout p { margin: 0; color: var(--muted); font-size: var(--text-small); }
.calendar-callout .button { font-size: var(--text-body); }
.home-page .registration-note a { display: block; width: fit-content; margin-top: 4px; color: var(--ink); text-underline-offset: 4px; }
.home-page .audience-list h3 { font-size: 1.25rem; color: var(--orange-dark); }

@media (min-width: 981px) and (max-width: 1150px) {
  .home-page .hero-grid { gap: 28px; }
  .home-page .hero h1 { font-size: 2.625rem; }
  .home-page .hero .button { gap: 9px; padding-inline: 18px; font-size: var(--text-body); }

}
@media (max-width: 980px) {
  .archive-grid { grid-template-columns: minmax(0, 1fr); }
  .home-page .archive-grid-exhibits .exhibitor-name, .previous-page .archive-grid-exhibits .exhibitor-name { min-height: 0; }
  .archive-grid-exhibits { margin-top: 32px; }
  .maker-layout { grid-template-columns: 1fr; gap: 36px; }
  .maker-copy h2 span br { display: none; }
  .maker-encounter img { aspect-ratio: 3 / 2; }
  .program-update { grid-template-columns: 1fr; gap: 12px; }
  .report-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .record-figures { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .family-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .program-card-soon:nth-child(n+5) { display: none; }
  .closing-layout { grid-template-columns: 1fr; gap: 28px; }
  .closing-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-page .hero-grid { grid-template-columns: 1fr; gap: 16px; }
  .home-page .hero-copy { max-width: 720px; }
  .home-page .hero h1 { font-size: clamp(2.5rem, 7vw, 4rem); }
  .hero-video-stage { min-height: min(72svh, 640px); }
  .hero-video-media::after { background: linear-gradient(90deg, rgba(7,29,47,.88) 0%, rgba(7,29,47,.78) 80%, rgba(7,29,47,.6) 100%), linear-gradient(0deg, rgba(7,29,47,.6), rgba(7,29,47,0) 40%); }
  .hero-date-strip { grid-template-columns: 1fr 1fr; gap: 18px; }
  .hero-date { gap: 12px; }
  .hero-date time { font-size: 48px; }
  .hero-access-link { grid-column: 2; padding: 0 0 0 24px; }
  .hero-venue { padding-left: 24px; }
  .discovery-grid { gap: 24px; }
  .discovery-item h3 { font-size: 1.5rem; }
  .home-page .ftc-feature .split-media { max-width: 680px; }
  .home-page .ftc-feature .split-media img { aspect-ratio: 3 / 2; }
  .next-step-layout { grid-template-columns: 1fr; gap: 8px; }
  .visit-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visit-summary strong { font-size: 1.625rem; }
  .home-page .access-grid { grid-template-columns: 1fr; gap: 36px; }
  .home-page .info-card dl { display: grid; grid-template-columns: 130px 1fr; align-items: baseline; gap: 18px; }
  .home-page .info-card dt, .home-page .info-card dd { margin: 0; }
}
@media (max-width: 680px) {
  .archive-grid { gap: 24px; }
  .archive-grid-exhibits { margin-top: 24px; }
  .archive-card-copy { padding: 24px 22px; }
  .archive-card-featured h3 { font-size: 1.625rem; }
  .archive-robot-note { grid-template-columns: 1fr; gap: 18px; }
  .previous-report summary > span { display: block; margin-left: 20px; }
  .maker-copy h2 { font-size: clamp(1.75rem, 7.5vw, 2.375rem); }
  .maker-copy h2 span br { display: initial; }
  .maker-copy > p br { display: none; }
  .maker-questions li { font-size: var(--text-body); }
  .calendar-callout { padding: 24px 22px; }
  .calendar-callout .button { width: 100%; }
  .home-page .split-copy h2 { font-size: 2rem; }
  .home-page .status-bar { display: none; }
  /* Phones: keep the video as the background. Show it clearly at the top and set the copy low,
     over a gradient that darkens only toward the bottom. */
  .home-page .hero { padding-top: 0; }
  .hero-video-stage { min-height: calc(100svh - 64px); padding: 44vw 0 14px; }
  .hero-video-media { background-image: image-set(url('../images/home/hero-video-poster-portrait-480.webp') 1x, url('../images/home/hero-video-poster-portrait-720.webp') 2x); }
  .hero-video-media video { object-position: center; }
  .hero-video-media::after { background: linear-gradient(180deg, rgba(7,29,47,.12) 0, rgba(7,29,47,.2) calc(44vw - 90px), rgba(7,29,47,.76) calc(44vw - 6px), rgba(7,29,47,.84) 60%, rgba(7,29,47,.92) 100%); }
  .hero-video-content { align-self: end; display: flex; flex-direction: column; }
  .hero-mobile-facts { color: #eef3f7; }
  .hero-video .hero-description { margin-bottom: 18px; }
  .hero-video-bar { margin-top: 16px; }
  .hero-video-toolbar { top: 12px; }
  .hero-video-note { font-size: .75rem; }
  .home-page .hero-copy { display: contents; }
  .home-page .hero-grid { row-gap: 0; }
  .home-page .hero-copy > * { min-width: 0; }
  .home-page .hero-copy .eyebrow { order: 0; margin-bottom: 10px; }
  .home-page .hero-event-name { display: none; }
  .home-page .hero h1 { order: 1; }
  .hero-mobile-facts { order: 2; display: grid; gap: 2px; margin: 0 0 16px; font-size: var(--text-small); line-height: 1.6; }
  .hero-mobile-facts time { font-size: 1.375rem; font-weight: 850; line-height: 1.3; letter-spacing: -.02em; }
  .hero-mobile-facts time span { margin-left: 6px; font-size: var(--text-meta); font-weight: 750; }
  .home-page .hero-description { order: 3; margin: 0 0 18px; }
  .home-page .hero-facts { order: 5; margin-top: 12px; }
  .home-page .hero .button-row { order: 4; }
  .home-page .registration-note { order: 6; }
  .home-page .hero h1 { font-size: clamp(1.75rem, 8.7vw, 3rem); margin-bottom: 12px; line-height: 1.4; }
  .home-page .hero h1 .accent::after { height: 10px; bottom: 5px; }
  .hero-description { font-size: var(--text-body); }
  .desktop-break { display: none; }
  .hero-facts { gap: 8px; }
  .hero-facts li { flex: 1 1 calc(50% - 8px); padding: 8px 10px; }
  .home-page .hero .button-row { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 0; }
  .home-page .hero .button { min-height: 50px; padding: 12px 16px; font-size: 1rem; }
  .home-page .registration-note { margin-top: 12px; margin-bottom: 0; font-size: var(--text-meta); }
  .home-page .registration-note a { min-height: 44px; padding-block: 8px; }
  .hero-date-strip { grid-template-columns: 1fr; gap: 17px; margin-top: 0; padding-block: 22px 26px; }
  .hero-date { justify-content: space-between; }
  .hero-date time { font-size: clamp(2.75rem, 12vw, 3.625rem); }
  .date-day { margin-left: 12px; font-size: var(--text-meta); }
  .hero-venue { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .hero-venue strong { font-size: 1.5rem; }
  .hero-access-link { grid-column: 1; padding: 0; }
  .home-section-heading { margin-bottom: 30px; }
  .home-page .section-index { font-size: var(--text-meta); margin-bottom: 14px; }
  .home-section-heading h2 { font-size: clamp(1.75rem, 7.5vw, 2.375rem); margin-bottom: 16px; }
  .home-section-heading > p:last-child:not(.section-index, .archive-date) { font-size: var(--text-body); }
  .home-section-heading > p br { display: none; }
  .discovery-grid { grid-template-columns: 1fr; gap: 28px; }
  .discovery-item { padding-top: 18px; }
  .discovery-number { margin-bottom: 14px; font-size: 34px; }
  .discovery-item h3 { font-size: 1.6875rem; }
  .discovery-item p { margin-bottom: 16px; }
  .archive-heading { display: block; }
  .archive-date { margin: 18px 0 0; text-align: left; font-size: var(--text-meta); }
  .archive-date br { display: none; }
  .archive-date time { margin-left: 12px; font-size: var(--text-body); }
  .archive-notice { font-size: var(--text-small); }
  .program-status { grid-template-columns: 1fr; gap: 16px; margin-bottom: 36px; }
  .program-grid { grid-template-columns: 1fr; gap: 12px; margin-bottom: 36px; }
  .program-card { min-height: 0; padding: 22px; }
  .program-card-soon { flex-direction: row; align-items: center; min-height: 88px; }
  .program-card-soon:nth-child(n+4) { display: none; }
  .program-card-soon strong { font-size: 1.25rem; }
  .program-status > div { padding: 22px; }
  .archive-heading-row { padding-top: 26px; }
  .archive-date-inline { display: block; margin: 6px 0 0; }
  .conditions > div { grid-template-columns: 1fr; gap: 4px; }
  .register-block { grid-template-columns: 1fr; gap: 20px; padding: 24px 22px; }
  .register-block h3 { font-size: 1.375rem; }
  .register-block .button { width: 100%; }
  .family-grid { grid-template-columns: 1fr; }
  .closing-actions { grid-template-columns: 1fr; }
  .record-figures { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .record-figures strong { font-size: 1.5rem; }
  .home-page .ftc-photo-frame::before { inset: -10px 14px 14px -10px; border-width: 3px; }
  .audience-list h3 { font-size: 1.4375rem; }
  .visit-summary { grid-template-columns: 1fr; gap: 22px; padding: 24px; }
  .visit-summary strong { font-size: 1.625rem; }
  .home-page .info-card dl { grid-template-columns: 1fr; gap: 0; }
  .home-page .info-card dt { margin-top: 18px; }
  .home-page .info-card dd { margin-top: 5px; }
  .home-page .map-link { height: 270px; padding: 22px; background-image: linear-gradient(0deg, #071d2feb, #071d2f00 80%), image-set(url('../images/home/iu-sumida-campus-exterior-480.webp') 1x, url('../images/home/iu-sumida-campus-exterior-800.webp') 2x); }
  .home-page .map-link strong { font-size: 1.5rem; }
  .station-list small { display: block; margin-left: 0; }
  .home-page .faq-list summary { padding-right: 40px; font-size: var(--text-body); }
  .home-page .faq-list summary::after { right: 4px; }
  .home-page .recruit-section h2 { font-size: 2rem; }
}

/* previous.html: the report page reuses the archive cards and figures above. */
.previous-page .archive-experiences .section-heading { max-width: 900px; margin-bottom: 40px; }
.previous-page .archive-experiences .section-heading p:last-child { color: var(--muted); }
.previous-page .report-figures { grid-template-columns: 1.4fr repeat(3, 1fr); margin: 0 0 16px; }
.previous-page .split-media img { min-height: 0; height: auto; aspect-ratio: 16 / 9; }
.previous-page .page-hero p a { color: var(--ink); }
@media (max-width: 680px) { .previous-page .report-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Exhibitor section: previous-event figures sit under the framed group photo. */
.recruit-aside { min-width: 0; }
.home-page .record-figures { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 44px 0 0; }
.home-page .record-figures dt { color: #c9ece8; }
.home-page .record-figures dd { color: white; }
.home-page .record-figures strong { font-size: 1.75rem; }
.home-page .record-link { display: inline-block; margin-top: 10px; color: white; font-size: var(--text-small); }
@media (max-width: 680px) {
  .home-page .record-figures { gap: 10px; margin-top: 36px; }
  .home-page .record-figures strong { font-size: 1.5rem; }
}
/* A seventh report card would sit alone in the last row; lay it out full-width instead. */
@media (min-width: 981px) {
  .previous-page .archive-card-wide { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .previous-page .archive-card-wide .archive-card-media { aspect-ratio: auto; min-height: 100%; }
  .previous-page .archive-card-wide .exhibitor-name { min-height: 0; }
}
