@charset "UTF-8";

.subpage-main { min-height: 100vh; background: #fff; }
.subpage-main > [data-subpage-utility] { display: none; }
.subpage-hero {
  position: relative;
  padding: clamp(28px, 3vw, 40px) clamp(28px, 4.4vw, 64px);
  overflow: hidden;
  background:
    linear-gradient(rgba(13, 97, 180, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 97, 180, .045) 1px, transparent 1px),
    linear-gradient(135deg, #f8fbfe, #edf7ff);
  background-size: 54px 54px, 54px 54px, auto;
  border-bottom: 1px solid var(--line);
}
.subpage-hero::after {
  content: "";
  position: absolute;
  width: 380px;
  aspect-ratio: 1;
  right: -100px;
  top: -170px;
  border: 1px solid rgba(8, 119, 232, .14);
  border-radius: 50%;
  box-shadow: 0 0 0 72px rgba(8, 119, 232, .025), 0 0 0 144px rgba(8, 119, 232, .018);
}
.subpage-hero-inner,
.subpage-section-inner { position: relative; z-index: 2; width: min(100%, var(--content)); margin-inline: auto; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-bottom: 12px; color: #667b91; font-size: 10px; }
.breadcrumbs a { color: var(--blue-600); font-weight: 700; }
.breadcrumbs strong { color: var(--navy-800); font-weight: 750; }
.subpage-route { display: flex; align-items: center; gap: 0; margin: 0 0 7px; color: var(--navy-800); }
.subpage-route span { display: none; }
.subpage-route strong { font-size: 10px; letter-spacing: .06em; }
.subpage-hero h1 { max-width: 900px; margin: 0; color: var(--navy-950); font-size: clamp(28px, 3vw, 40px); line-height: 1.28; letter-spacing: -.035em; }
.subpage-lead { max-width: 760px; margin: 10px 0 0; color: #405a73; font-size: 14px; line-height: 1.75; }
.subpage-hero-note { max-width: 720px; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.achievement-detail-hero h1 { max-width: 1020px; font-size: clamp(26px, 2.7vw, 36px); line-height: 1.4; }
.achievement-detail-hero .subpage-lead { max-width: 900px; }
.subpage-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.subpage-hero-actions a { display: inline-flex; align-items: center; gap: 22px; min-height: 40px; padding: 7px 14px; color: var(--navy-800); background: #fff; border: 1px solid var(--line); border-radius: 7px; font-size: 11px; font-weight: 750; transition: .2s; }
.subpage-hero-actions a:hover, .subpage-hero-actions a:focus-visible { color: #fff; background: var(--blue-600); border-color: var(--blue-600); transform: translateY(-2px); }

.subpage-section { padding: clamp(50px, 5.5vw, 76px) clamp(28px, 4.4vw, 64px); }
.subpage-section + .subpage-section { border-top: 1px solid var(--line); }
.subpage-section-tint { background: var(--surface); }
.subpage-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 420px); gap: 36px; align-items: end; margin-bottom: 32px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.subpage-section-heading h2 { margin: 0; font-size: clamp(27px, 3vw, 38px); line-height: 1.35; letter-spacing: -.04em; }
.subpage-section-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.subpage-section-heading-single { display: block; }
.subpage-section-heading-single p { max-width: 720px; margin-top: 15px; }

.theme-hero-layout { display: grid; grid-template-columns: minmax(0, 1fr) 170px; gap: 40px; align-items: center; }
.theme-hero-layout-photo { grid-template-columns: minmax(0, 1fr) minmax(270px, 38%); }
.theme-hero-photo { overflow: hidden; margin: 0; background: #071321; border: 1px solid rgba(157, 197, 224, .28); border-radius: 10px; box-shadow: 0 14px 30px rgba(3, 20, 37, .18); }
.theme-hero-photo img { display: block; width: 100%; height: 220px; object-fit: cover; }
.theme-hero-photo-contain { background: #fff; }
.theme-hero-photo-contain img { height: 160px; object-fit: contain; }
.theme-symbol { position: relative; display: grid; width: 160px; aspect-ratio: 1; place-items: center; color: var(--blue-600); background: rgba(255,255,255,.66); border: 1px solid rgba(8,119,232,.2); border-radius: 50%; }
.theme-symbol::before, .theme-symbol::after { content: ""; position: absolute; border: 1px solid rgba(8,119,232,.2); border-radius: 50%; }
.theme-symbol::before { inset: 22px; }.theme-symbol::after { inset: 50px; }
.theme-symbol span { position: relative; z-index: 2; font-size: 38px; }
.theme-symbol i { position: absolute; width: 10px; aspect-ratio: 1; background: #fff; border: 2px solid var(--blue-600); border-radius: 50%; }
.theme-symbol i:nth-of-type(1) { top: 13px; left: 70px; }.theme-symbol i:nth-of-type(2) { right: 10px; top: 74px; }.theme-symbol i:nth-of-type(3) { left: 28px; bottom: 18px; }
.tag-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.tag-list span { padding: 5px 10px; color: #1767a9; background: rgba(255,255,255,.85); border: 1px solid #cbe1f3; border-radius: 99px; font-size: 11px; font-weight: 750; }
.subpage-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 330px); gap: clamp(46px, 7vw, 90px); width: min(100%, var(--content)); margin-inline: auto; }
.subpage-copy-column { border-top: 1px solid var(--line); }
.text-section { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding: 32px 0; border-bottom: 1px solid var(--line); }
.section-index { display: none; }
.text-section h2 { margin: 0 0 13px; font-size: 25px; letter-spacing: -.03em; }
.text-section p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.85; }
.plain-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.plain-list li { position: relative; padding: 15px 0 15px 26px; border-top: 1px solid #e6edf3; color: #314b65; font-size: 15px; line-height: 1.7; }
.plain-list li::before { content: ""; position: absolute; left: 3px; top: 26px; width: 8px; height: 2px; background: var(--blue-600); }
.achievement-copy { display: grid; gap: 15px; }
.achievement-copy p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.85; }
.detail-aside { align-self: start; padding: 28px 0; border-top: 3px solid var(--navy-800); border-bottom: 1px solid var(--line); }
.detail-aside h2 { margin: 0 0 15px; font-size: 19px; }
.detail-aside a { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 17px 0; border-top: 1px solid var(--line); color: var(--navy-800); font-size: 13px; font-weight: 750; }
.detail-aside a i { color: var(--blue-600); font-size: 18px; font-style: normal; }
.detail-aside .link-destination { margin-left: 7px; vertical-align: middle; }
.detail-aside .link-destination > i { color: currentColor; font-size: 9px; }
.detail-aside-pending { display: flex; width: 100%; justify-content: space-between; gap: 18px; align-items: center; padding: 17px 0; color: #6e8294; background: transparent; border: 0; border-top: 1px solid var(--line); font: inherit; font-size: 13px; font-weight: 750; text-align: left; cursor: not-allowed; }
.detail-aside-pending small { display: inline-flex; flex: 0 0 auto; min-height: 22px; align-items: center; padding: 3px 8px; color: #607487; background: #edf2f5; border: 1px solid #d7e1e8; border-radius: 99px; font-size: 9px; font-weight: 800; letter-spacing: .03em; }
.subpage-bottom-nav { display: flex; justify-content: space-between; gap: 20px; width: min(100%, var(--content)); margin: 70px auto 0; padding-top: 24px; border-top: 1px solid var(--line); }
.subpage-bottom-nav a { color: var(--navy-800); font-size: 13px; font-weight: 750; }

.theme-photo-story { width: min(100%, var(--content)); margin: 46px auto 0; padding-top: 34px; border-top: 1px solid var(--line); }
.theme-photo-story-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 420px); gap: 32px; align-items: end; margin-bottom: 18px; }
.theme-photo-story-heading h2 { margin: 0; color: var(--navy-950); font-size: clamp(23px, 2.4vw, 30px); letter-spacing: -.035em; }
.theme-photo-story-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.theme-photo-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.theme-photo-gallery figure { overflow: hidden; margin: 0; background: #071321; border-radius: 8px; }
.theme-photo-gallery figure:first-child { grid-column: 1 / -1; }
.theme-photo-gallery a { display: block; overflow: hidden; }
.theme-photo-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 3.2 / 1; object-fit: cover; transition: transform .2s ease, opacity .2s ease; }
.theme-photo-gallery-standard figure:first-child { grid-column: auto; }
.theme-photo-gallery-standard img { aspect-ratio: 16 / 9; }
.theme-photo-gallery-four-three figure:first-child { grid-column: auto; }
.theme-photo-gallery-four-three img { aspect-ratio: 16 / 9; }
.theme-photo-gallery-single { grid-template-columns: minmax(0, 760px); }
.theme-photo-gallery-single figure:first-child { grid-column: auto; }
.theme-photo-gallery-single img { aspect-ratio: 16 / 9; }
.theme-photo-gallery a:hover img { opacity: .92; transform: scale(1.012); }
.theme-photo-gallery a:focus-visible { outline: 3px solid #69bfff; outline-offset: -3px; }
.theme-photo-gallery figcaption { padding: 10px 12px; color: #edf7ff; font-size: 11px; line-height: 1.5; }

.theme-related-project { width: min(100%, var(--content)); margin: 18px auto 0; }
.theme-related-project > a { display: grid; grid-template-columns: minmax(210px, .56fr) minmax(0, 1.44fr) auto; min-height: 152px; align-items: stretch; overflow: hidden; color: inherit; background: #f2f8fc; border: 1px solid #c9dfed; border-radius: 8px; transition: background .18s ease, border-color .18s ease, transform .18s ease; }
.theme-related-project > a:hover, .theme-related-project > a:focus-visible { color: inherit; background: #eaf5fb; border-color: #91bdd8; transform: translateY(-2px); }
.theme-related-project > a:focus-visible { outline: 3px solid #69bfff; outline-offset: 3px; }
.theme-related-project figure { overflow: hidden; margin: 0; background: #071321; }
.theme-related-project img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.theme-related-project > a:hover img { transform: scale(1.015); }
.theme-related-project-copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 20px clamp(20px, 3vw, 34px); }
.theme-related-project-copy small { color: var(--blue-600); font-size: 10px; font-weight: 850; letter-spacing: .04em; }
.theme-related-project-copy strong { margin-top: 6px; color: var(--navy-950); font-size: clamp(18px, 2vw, 23px); line-height: 1.5; letter-spacing: -.025em; }
.theme-related-project-copy > span { margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.theme-related-project-action { display: flex; min-width: 140px; align-items: center; justify-content: center; gap: 14px; padding: 20px; color: var(--navy-800); border-left: 1px solid #c9dfed; font-size: 11px; font-weight: 850; white-space: nowrap; }
.theme-related-project-action i { color: var(--blue-600); font-size: 18px; font-style: normal; }

.theme-teaching-approach { width: min(100%, var(--content)); margin: 46px auto 0; padding-top: 34px; border-top: 1px solid var(--line); }
.theme-teaching-approach-heading { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: clamp(28px, 5vw, 64px); align-items: start; margin-bottom: 22px; }
.theme-teaching-approach-heading h2 { margin: 0; color: var(--navy-950); font-size: clamp(24px, 2.5vw, 32px); line-height: 1.45; letter-spacing: -.035em; }
.theme-teaching-approach-heading p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.85; }
.theme-teaching-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.theme-teaching-media-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.theme-teaching-video-frame, .theme-teaching-video-image { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #071321; }
.theme-teaching-video-frame iframe, .theme-teaching-video-image img { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; }
.theme-teaching-video-image::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(3, 18, 34, .48)); content: ""; }
.theme-teaching-video-image > span { position: absolute; z-index: 2; right: 16px; bottom: 14px; display: grid; width: 40px; height: 40px; place-items: center; padding-left: 2px; color: #fff; background: rgba(4, 29, 55, .84); border: 1px solid rgba(255,255,255,.66); border-radius: 50%; font-size: 13px; }
.theme-teaching-media-copy { padding: 18px; }
.theme-teaching-media-copy > span { color: var(--blue-600); font-size: 10px; font-weight: 850; letter-spacing: .04em; }
.theme-teaching-media-copy h3 { margin: 7px 0 0; color: var(--navy-950); font-size: 18px; line-height: 1.55; }
.theme-teaching-media-copy p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.theme-teaching-media-copy a { display: inline-flex; min-height: 34px; align-items: center; gap: 16px; margin-top: 14px; padding: 6px 11px; color: #fff; background: var(--navy-800); border-radius: 5px; font-size: 10px; font-weight: 800; transition: background .18s ease, transform .18s ease; }
.theme-teaching-media-copy a:hover, .theme-teaching-media-copy a:focus-visible { background: var(--blue-600); transform: translateY(-1px); }
.theme-teaching-media-copy a i { font-style: normal; }
.theme-featured-project { width: min(100%, var(--content)); margin: 46px auto 0; padding-top: 34px; border-top: 1px solid var(--line); scroll-margin-top: 96px; }
.theme-featured-project-heading { display: grid; grid-template-columns: minmax(260px, .76fr) minmax(0, 1.24fr); gap: 7px clamp(28px, 5vw, 64px); align-items: start; margin-bottom: 22px; }
.theme-featured-project-heading > span { grid-column: 1; color: var(--blue-600); font-size: 10px; font-weight: 850; letter-spacing: .04em; }
.theme-featured-project-heading h2 { grid-column: 1; margin: 0; color: var(--navy-950); font-size: clamp(24px, 2.5vw, 32px); line-height: 1.45; letter-spacing: -.035em; }
.theme-featured-project-heading > p { grid-column: 2; grid-row: 1 / span 2; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.85; }
.theme-featured-project-heading .theme-featured-project-credit { grid-column: 2; grid-row: 3; display: flex; gap: 9px; align-items: center; margin-top: 4px; color: var(--navy-800); font-size: 11px; line-height: 1.5; }
.theme-featured-project-credit span { color: #587187; font-size: 9px; font-weight: 800; }
.theme-featured-project-credit strong { font-weight: 850; }
.theme-featured-project-heading .tag-list { grid-column: 1 / -1; margin-top: 7px; }
.theme-featured-project-media { display: grid; grid-template-columns: minmax(0, 1.34fr) minmax(280px, .66fr); gap: 12px; align-items: stretch; }
.theme-featured-project-video { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #071321; border-radius: 8px; }
.theme-featured-project-video iframe { display: block; width: 100%; height: 100%; border: 0; }
.theme-featured-project-photo { display: grid; grid-template-rows: minmax(0, 1fr) auto; overflow: hidden; margin: 0; background: #071321; border-radius: 8px; }
.theme-featured-project-photo a { display: block; min-height: 0; overflow: hidden; }
.theme-featured-project-photo img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.theme-featured-project-photo figcaption { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; color: #edf7ff; font-size: 10px; line-height: 1.55; }
.theme-featured-project-photo figcaption span { flex: 0 0 auto; color: #9dd6ff; font-size: 9px; font-weight: 800; white-space: nowrap; }
.theme-featured-project-youtube { display: inline-flex; min-height: 34px; align-items: center; gap: 15px; margin-top: 13px; padding: 6px 11px; color: #fff; background: var(--navy-800); border-radius: 5px; font-size: 10px; font-weight: 800; }
.theme-featured-project-youtube:hover, .theme-featured-project-youtube:focus-visible { color: #fff; background: var(--blue-600); }
.theme-featured-project-youtube i { font-style: normal; }

/* Project case study */
.project-case-hero { padding-bottom: clamp(36px, 5vw, 58px); }
.project-case-hero-layout { display: grid; grid-template-columns: minmax(0, .92fr) minmax(390px, 1.08fr); gap: clamp(34px, 5vw, 70px); align-items: center; }
.project-case-hero-copy h1 { max-width: 720px; }
.project-case-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 24px 0 0; border-top: 1px solid #c9dbe8; }
.project-case-meta div { padding: 13px 12px 0 0; }
.project-case-meta dt { color: #557187; font-size: 9px; font-weight: 850; letter-spacing: .05em; }
.project-case-meta dd { margin: 5px 0 0; color: var(--navy-800); font-size: 11px; font-weight: 750; line-height: 1.55; }
.project-case-hero-photo { overflow: hidden; margin: 0; background: #071321; border-radius: 10px; box-shadow: 0 14px 30px rgba(3, 20, 37, .16); }
.project-case-hero-photo a { display: block; overflow: hidden; aspect-ratio: 16 / 9; }
.project-case-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.project-case-hero-photo figcaption { padding: 9px 12px; color: #deedf8; font-size: 10px; }
.project-case-content { padding-top: clamp(42px, 6vw, 76px); }
.project-case-introduction { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: clamp(34px, 7vw, 96px); padding-bottom: clamp(38px, 5vw, 62px); border-bottom: 1px solid var(--line); }
.project-case-introduction h2 { margin: 0; color: var(--navy-950); font-size: clamp(26px, 3vw, 38px); line-height: 1.45; letter-spacing: -.04em; }
.project-case-introduction p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.95; }
.project-case-introduction p + p { margin-top: 13px; }
.project-case-video { display: grid; grid-template-columns: minmax(250px, .62fr) minmax(0, 1.38fr); gap: clamp(30px, 6vw, 78px); align-items: center; padding: clamp(38px, 6vw, 72px) 0; border-bottom: 1px solid var(--line); }
.project-case-video-copy > span { color: var(--blue-600); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.project-case-video-copy h2 { margin: 8px 0 0; color: var(--navy-950); font-size: clamp(24px, 2.6vw, 32px); line-height: 1.5; letter-spacing: -.035em; }
.project-case-video-copy p { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.project-case-video-copy a { display: inline-flex; min-height: 36px; align-items: center; gap: 18px; margin-top: 18px; padding: 7px 12px; color: #fff; background: var(--navy-800); border-radius: 5px; font-size: 10px; font-weight: 800; }
.project-case-video-copy a:hover, .project-case-video-copy a:focus-visible { color: #fff; background: var(--blue-600); }
.project-case-video-copy a i { font-style: normal; }
.project-case-video-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: #071321; border-radius: 9px; }
.project-case-video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.project-case-process, .project-case-links { padding: clamp(38px, 5vw, 62px) 0; border-bottom: 1px solid var(--line); }
.project-case-section-heading { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: clamp(34px, 7vw, 96px); align-items: end; margin-bottom: 20px; }
.project-case-section-heading h2 { margin: 0; color: var(--navy-950); font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -.035em; }
.project-case-section-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.project-case-process ol { margin: 0; padding: 0; border-top: 2px solid var(--navy-800); list-style: none; }
.project-case-process li { display: grid; grid-template-columns: 100px minmax(210px, .75fr) minmax(0, 1.25fr); gap: 20px; align-items: baseline; padding: 19px 0; border-bottom: 1px solid var(--line); }
.project-case-process li span { color: var(--blue-600); font-size: 10px; font-weight: 850; }
.project-case-process li strong { color: var(--navy-950); font-size: 16px; line-height: 1.6; }
.project-case-process li p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.project-case-link-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 8px; }
.project-case-link-list a { display: flex; min-width: 0; min-height: 112px; justify-content: space-between; gap: 16px; align-items: center; padding: 20px; color: var(--navy-800); }
.project-case-link-list a + a { border-left: 1px solid var(--line); }
.project-case-link-list a span { min-width: 0; }
.project-case-link-list a small, .project-case-link-list a strong { display: block; }
.project-case-link-list a small { color: var(--blue-600); font-size: 9px; font-weight: 850; }
.project-case-link-list a strong { margin-top: 7px; font-size: 12px; line-height: 1.65; }
.project-case-link-list a > i { flex: 0 0 auto; color: var(--blue-600); font-size: 17px; font-style: normal; }
.project-case-link-list a:hover, .project-case-link-list a:focus-visible { background: var(--blue-050); }
.project-case-research-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; margin-bottom: 13px; padding: 18px 20px; color: var(--navy-900); background: #eaf5fb; border: 1px solid #a9cee4; border-radius: 8px; transition: background .18s ease, border-color .18s ease, transform .18s ease; }
.project-case-research-link:hover, .project-case-research-link:focus-visible { color: var(--navy-900); background: #dff1fb; border-color: #75b4d7; transform: translateY(-1px); }
.project-case-research-link > span { min-width: 0; }
.project-case-research-link small, .project-case-research-link strong, .project-case-research-link > span > span { display: block; }
.project-case-research-link small { color: var(--blue-600); font-size: 9px; font-weight: 850; letter-spacing: .04em; }
.project-case-research-link strong { margin-top: 5px; font-size: 18px; line-height: 1.45; }
.project-case-research-link > span > span { margin-top: 4px; color: #526c81; font-size: 11px; line-height: 1.65; }
.project-case-research-link > i { display: grid; width: 34px; height: 34px; place-items: center; color: #fff; background: var(--blue-600); border-radius: 50%; font-size: 16px; font-style: normal; }

.list-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: baseline; padding: 0 0 14px; border-bottom: 2px solid var(--navy-800); }
.list-section-heading span { color: var(--blue-600); font-size: 13px; font-weight: 800; }
.list-section-heading h2 { margin: 0; font-size: clamp(23px, 2.5vw, 30px); letter-spacing: -.03em; }
.list-section-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.member-network-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; margin: -12px 0 28px; padding: 12px 15px; color: #425f77; background: #f7fafc; border: 1px solid #cddbe5; border-radius: 7px; }
.member-network-badge { display: inline-flex; min-height: 25px; align-items: center; padding: 4px 9px; color: #fff; background: var(--navy-800); border-radius: 99px; font-size: 9px; font-weight: 850; letter-spacing: .04em; white-space: nowrap; }
.member-network-copy { display: flex; flex-wrap: wrap; gap: 3px 14px; align-items: baseline; min-width: 0; }
.member-network-note strong { color: var(--navy-800); font-size: 12px; }
.member-network-note p { margin: 0; font-size: 11px; line-height: 1.65; }
.member-group + .member-group { margin-top: 46px; }
.archive-year + .archive-year { margin-top: 82px; }
.member-group-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding-bottom: 11px; }
.member-group-heading h2 { font-size: 25px; }
.member-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 14px; }
.member-group-teacher .member-card { grid-column: 1 / -1; }
.member-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 17px; align-items: start; min-width: 0; padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 6px 18px rgba(5, 39, 71, .045); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.member-card:hover { transform: translateY(-2px); border-color: #b8d7ed; box-shadow: 0 10px 24px rgba(5, 39, 71, .075); }
.member-card:focus-within { border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(8, 119, 232, .1); }
.member-media { width: 96px; aspect-ratio: 3 / 4; overflow: hidden; background: var(--blue-050); border: 1px solid #d7e5ef; border-radius: 7px; }
.member-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.member-card-body { display: flex; flex-direction: column; gap: 11px; min-width: 0; }
.member-head { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.member-head h3 { margin: 0 4px 0 0; color: var(--navy-950); font-size: 19px; letter-spacing: .025em; }
.member-role { display: inline-flex; align-items: center; min-height: 23px; padding: 3px 8px; color: #1767a9; background: var(--blue-050); border: 1px solid #cee4f4; border-radius: 99px; font-size: 10px; font-weight: 800; }
.member-description { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.member-campus-link { display: inline-flex; align-self: flex-start; gap: 8px; align-items: center; padding: 6px 8px; color: #fff; background: var(--navy-800); border: 1px solid var(--navy-800); border-radius: 5px; transition: background .18s ease, border-color .18s ease; }
.member-campus-link > span { display: inline-flex; gap: 6px; align-items: baseline; font-size: 10px; font-weight: 800; }
.member-campus-link small { color: #bcdcf5; font-size: 8px; font-weight: 700; }
.member-campus-link i { color: #9ed5ff; font-size: 11px; font-style: normal; }
.member-campus-link:hover, .member-campus-link:focus-visible { color: #fff; background: var(--blue-600); border-color: var(--blue-600); }
.member-achievements { display: grid; gap: 7px; margin-top: 1px; }
.member-achievements-label { margin: 0; color: var(--navy-800); font-size: 11px; font-weight: 850; }
.member-achievement { padding: 11px 12px; background: #f8fbfe; border: 1px solid #d7e7f2; border-radius: 7px; }
.member-achievement-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.member-achievement-meta span { padding: 3px 7px; color: #1767a9; background: #e8f4fc; border-radius: 4px; font-size: 9px; font-weight: 850; }
.member-achievement-meta time { color: #6c8194; font-size: 10px; font-weight: 700; }
.member-achievement h4 { margin: 8px 0 0; color: var(--navy-950); font-size: 13px; line-height: 1.65; }
.member-achievement-event { margin: 5px 0 0; color: #60778b; font-size: 10px; line-height: 1.6; }
.member-achievement-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 9px; }
.member-achievement-links a { color: var(--blue-600); font-size: 10px; font-weight: 800; }
.member-achievement-links .link-destination { margin-left: 5px; }
.member-links { display: flex; flex-wrap: wrap; gap: 6px; }
.member-links a { display: inline-flex; gap: 6px; align-items: center; min-height: 29px; padding: 5px 9px; color: var(--navy-800); background: #fff; border: 1px solid var(--line); border-radius: 99px; font-size: 10px; font-weight: 750; }
.member-links a:hover, .member-links a:focus-visible { color: #fff; background: var(--blue-600); border-color: var(--blue-600); }
.member-links .link-destination { color: #245f8e; }
.member-links a.member-social-link { justify-content: center; width: 29px; padding: 0; }
.member-social-link-x > span { color: #101820; font-size: 12px; font-weight: 850; line-height: 1; }
.member-social-link-youtube > span { position: relative; width: 16px; height: 11px; background: #df2533; border-radius: 3px; }
.member-social-link-youtube > span::after { position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-top: 3px solid transparent; border-bottom: 3px solid transparent; border-left: 5px solid #fff; content: ""; transform: translate(-40%, -50%); }
.member-links a.member-social-link:hover > span, .member-links a.member-social-link:focus-visible > span { color: #fff; }
.member-links a.member-social-link-youtube:hover > span, .member-links a.member-social-link-youtube:focus-visible > span { background: #fff; }
.member-links a.member-social-link-youtube:hover > span::after, .member-links a.member-social-link-youtube:focus-visible > span::after { border-left-color: var(--blue-600); }

.editorial-list { border-bottom: 1px solid var(--line); }
.editorial-row { position: relative; display: grid; grid-template-columns: 155px minmax(0, 1fr) 44px; gap: 30px; align-items: start; padding: 28px 0; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.editorial-row:first-child { border-top: 0; }
.row-meta { display: grid; justify-items: start; gap: 9px; }
.row-meta time { color: #687b8d; font-size: 12px; font-weight: 700; }
.row-meta span { padding: 4px 8px; color: #1767a9; background: var(--blue-050); border: 1px solid #cee5f7; border-radius: 4px; font-size: 10px; font-weight: 800; }
.row-copy small { color: var(--blue-600); font-size: 11px; font-weight: 750; }
.row-copy h2, .row-copy h3 { margin: 4px 0 8px; color: var(--navy-950); font-size: 20px; line-height: 1.55; }
.row-copy p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.85; }
.row-action { display: grid; width: 38px; aspect-ratio: 1; place-items: center; align-self: center; color: var(--blue-600); border: 1px solid var(--line); border-radius: 50%; font-size: 16px; font-style: normal; }
a.row-action:hover, a.row-action:focus-visible { color: #fff; background: var(--blue-600); border-color: var(--blue-600); }
.row-destination { align-self: center; justify-self: end; }
.row-destination:hover .link-destination,
.row-destination:focus-visible .link-destination { color: #fff; background: var(--blue-600); border-color: var(--blue-600); }

/* Compact editorial lists */
.archive-section,
.lecture-list-section { padding-top: clamp(26px, 3vw, 38px); padding-bottom: clamp(38px, 4vw, 56px); }
.lecture-contact-section { padding-top: clamp(34px, 4vw, 52px); padding-bottom: clamp(34px, 4vw, 52px); }
.archive-year + .archive-year { margin-top: 30px; }
.archive-year .list-section-heading { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 8px; }
.archive-year .list-section-heading h2 { font-size: 22px; }
.lecture-list-section .subpage-section-heading { gap: 24px; margin-bottom: 10px; padding-bottom: 12px; }
.lecture-list-section .subpage-section-heading h2 { font-size: clamp(23px, 2.5vw, 32px); }
.lecture-year-nav-sticky {
  position: sticky;
  z-index: 24;
  top: 10px;
  display: flex;
  width: 100%;
  margin: 0 0 30px;
  padding: 5px;
  background: rgba(244, 249, 252, .96);
  border: 1px solid #c2d5e2;
  border-radius: 8px;
  box-shadow: 0 7px 18px rgba(5, 39, 71, .08);
  backdrop-filter: blur(10px);
}
.lecture-year-nav-sticky a {
  display: flex;
  flex: 1 1 0;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 7px 14px;
  color: #526b81;
  border-right: 1px solid #c8d9e4;
  font-size: 11px;
  font-weight: 850;
  transition: color .18s ease, background .18s ease;
}
.lecture-year-nav-sticky a:last-child { border-right: 0; }
.lecture-year-nav-sticky a:hover,
.lecture-year-nav-sticky a:focus-visible { color: var(--navy-900); background: #fff; }
.lecture-year-groups { display: grid; gap: 46px; }
.lecture-year { scroll-margin-top: 78px; }
.lecture-year .list-section-heading { grid-template-columns: minmax(0, 1fr); margin-bottom: 0; padding-bottom: 10px; border-bottom: 3px solid var(--navy-800); }
.lecture-year .list-section-heading h2 { font-size: 24px; }
.archive-year .editorial-row { grid-template-columns: 124px minmax(0, 1fr) 112px; gap: 16px; padding: 10px 0; scroll-margin-top: 96px; }
.lecture-list-section .editorial-row { grid-template-columns: 124px minmax(0, 1fr); gap: 18px; padding: 15px 0; }
.archive-year .row-meta,
.lecture-list-section .row-meta { gap: 4px; }
.archive-year .row-meta time,
.lecture-list-section .row-meta time { font-size: 10px; }
.archive-year .row-meta .news-category,
.lecture-list-section .row-meta .news-category { padding: 2px 6px; font-size: 9px; }
.archive-year .row-copy h3,
.lecture-list-section .row-copy h3 { margin: 0 0 4px; font-size: 16px; line-height: 1.5; }
.lecture-list-section .row-copy small { font-size: 10px; }
.archive-year .row-copy p,
.lecture-list-section .row-copy p { font-size: 12px; line-height: 1.7; }
.archive-year .row-action,
.lecture-list-section .row-action { width: 29px; font-size: 13px; }
.lecture-entry-links { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-top: 9px; }
.lecture-entry-link {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  min-height: 28px;
  padding: 4px 8px;
  color: #315b79;
  background: #f4f8fb;
  border: 1px solid #cfdee8;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 750;
  transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.lecture-entry-link:hover,
.lecture-entry-link:focus-visible { color: var(--navy-950); background: #e8f4fb; border-color: #9fc7df; }
.lecture-entry-link .link-destination { margin-left: 1px; }

/* Lecture and workshop notes */
.lecture-note-hero { padding-top: 30px; padding-bottom: 38px; }
.lecture-note-hero-inner { max-width: 940px; margin: 0 auto; }
.lecture-note-meta { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-bottom: 8px; }
.lecture-note-meta time,
.lecture-note-meta span { display: inline-flex; min-height: 24px; align-items: center; padding: 3px 8px; border-radius: 4px; font-size: 9px; font-weight: 850; }
.lecture-note-meta time { color: #d9ecf9; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); }
.lecture-note-meta span { color: #072b47; background: #9edcff; }
.lecture-note-place { margin: 0 0 5px; color: #c8dcea; font-size: 12px; font-weight: 750; line-height: 1.6; }
.lecture-note-hero h1 { max-width: 860px; margin-top: 5px; font-size: clamp(30px, 4.1vw, 45px); line-height: 1.3; }
.lecture-note-hero .subpage-lead { max-width: 790px; }
.lecture-note-content { padding-top: 46px; padding-bottom: 70px; }
.lecture-note-layout { display: grid; grid-template-columns: minmax(0, 1fr) 222px; gap: clamp(42px, 6vw, 76px); align-items: start; max-width: 1040px; margin: 0 auto; }
.lecture-note-article { min-width: 0; }
.lecture-note-notice { margin-bottom: 34px; padding: 15px 17px; background: #eef6fb; border: 1px solid #c8dde9; border-radius: 7px; }
.lecture-note-notice strong { color: #1b5f8e; font-size: 10px; letter-spacing: .05em; }
.lecture-note-notice p { margin: 5px 0 0; color: #4c6578; font-size: 12px; line-height: 1.75; }
.lecture-note-section { scroll-margin-top: 86px; padding: 0 0 36px; border-bottom: 1px solid #cfdae2; }
.lecture-note-section + .lecture-note-section { margin-top: 38px; }
.lecture-note-section h2 { margin: 0 0 15px; color: var(--navy-950); font-size: 25px; line-height: 1.45; }
.lecture-note-section > p { margin: 0; color: #435d72; font-size: 14px; line-height: 1.95; }
.lecture-note-section > p + p { margin-top: 10px; }
.lecture-note-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 20px; border-top: 1px solid #cbd9e3; }
.lecture-note-points article { padding: 17px 18px 18px 0; border-bottom: 1px solid #cbd9e3; }
.lecture-note-points article:nth-child(odd) { padding-right: 22px; border-right: 1px solid #cbd9e3; }
.lecture-note-points article:nth-child(even) { padding-left: 22px; }
.lecture-note-points h3 { margin: 0 0 5px; color: #155d8d; font-size: 14px; line-height: 1.55; }
.lecture-note-points p { margin: 0; color: #586d7e; font-size: 12px; line-height: 1.75; }
.lecture-note-steps { display: grid; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; counter-reset: lecture-step; }
.lecture-note-steps li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 13px; align-items: start; padding: 13px 15px; background: #f6f9fb; border: 1px solid #d5e0e8; border-radius: 6px; counter-increment: lecture-step; }
.lecture-note-steps li > span { display: grid; width: 30px; height: 30px; place-items: center; color: #fff; background: var(--navy-800); border-radius: 50%; }
.lecture-note-steps li > span::before { content: counter(lecture-step); font-size: 10px; font-weight: 850; }
.lecture-note-steps h3 { margin: 0 0 3px; color: var(--navy-900); font-size: 14px; line-height: 1.5; }
.lecture-note-steps p { margin: 0; color: #5a6d7c; font-size: 12px; line-height: 1.7; }
.lecture-note-list { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.lecture-note-list li { position: relative; padding: 0 0 0 18px; color: #4e6577; font-size: 13px; line-height: 1.8; }
.lecture-note-list li::before { content: ""; position: absolute; top: .78em; left: 1px; width: 7px; height: 7px; background: #58a9d8; border-radius: 50%; }
.lecture-note-callout { margin-top: 21px; padding: 18px 19px; background: #fff9ea; border: 1px solid #ead7a8; border-radius: 7px; }
.lecture-note-callout h3 { margin: 0 0 5px; color: #6e501d; font-size: 14px; }
.lecture-note-callout > p { margin: 0; color: #665a43; font-size: 12px; line-height: 1.75; }
.lecture-note-prompt { margin-top: 11px !important; padding: 10px 12px; color: #334f63 !important; background: #fff; border: 1px solid #e3d4ae; border-radius: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.lecture-note-links { display: grid; margin-top: 20px; border-top: 1px solid #cbd9e3; }
.lecture-note-links > a { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 14px; align-items: center; padding: 12px 3px; border-bottom: 1px solid #cbd9e3; transition: color .18s ease, background .18s ease; }
.lecture-note-links > a:hover,
.lecture-note-links > a:focus-visible { color: var(--navy-950); background: #f2f8fb; }
.lecture-note-links > a > span { display: grid; grid-template-columns: minmax(0, max-content) minmax(0, 1fr); gap: 2px 8px; align-items: center; min-width: 0; }
.lecture-note-links strong { color: var(--navy-900); font-size: 13px; line-height: 1.55; }
.lecture-note-links small { color: #718393; font-size: 10px; line-height: 1.55; }
.lecture-note-links .link-destination { grid-column: 1 / -1; justify-self: start; }
.lecture-note-links > a > i { color: var(--blue-600); font-size: 16px; font-style: normal; text-align: right; }
.lecture-note-images { display: grid; gap: 13px; margin-top: 22px; }
.lecture-note-images-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lecture-note-images figure { overflow: hidden; margin: 0; background: #e5edf2; border: 1px solid #cedbe4; border-radius: 7px; }
.lecture-note-images a { display: block; overflow: hidden; }
.lecture-note-images img { display: block; width: 100%; max-height: 440px; object-fit: contain; background: #e7eef3; transition: transform .2s ease; }
.lecture-note-images a:hover img,
.lecture-note-images a:focus-visible img { transform: scale(1.012); }
.lecture-note-images figcaption { display: flex; gap: 12px; justify-content: space-between; padding: 8px 10px; color: #536a7b; background: #fff; font-size: 9px; line-height: 1.55; }
.lecture-note-images figcaption span { color: #2477ae; white-space: nowrap; }
.lecture-note-aside { position: sticky; top: 84px; display: grid; gap: 14px; }
.lecture-note-aside nav { display: grid; padding: 15px 16px; background: #f4f8fb; border: 1px solid #d2dfe8; border-radius: 7px; }
.lecture-note-aside nav > strong { margin-bottom: 7px; color: var(--navy-900); font-size: 11px; }
.lecture-note-aside nav a { padding: 7px 0; color: #557083; border-bottom: 1px solid #d6e1e8; font-size: 10px; font-weight: 750; line-height: 1.55; }
.lecture-note-aside nav a:last-child { border-bottom: 0; }
.lecture-note-aside nav a:hover,
.lecture-note-aside nav a:focus-visible { color: var(--blue-600); }
.lecture-note-back { display: flex; flex-direction: row-reverse; gap: 9px; justify-content: flex-end; align-items: center; padding: 10px 12px; color: #315b79; border: 1px solid #cbdbe5; border-radius: 6px; font-size: 10px; font-weight: 800; }
.lecture-note-back:hover,
.lecture-note-back:focus-visible { color: var(--navy-950); background: #eef6fb; }
.lecture-note-back i { font-style: normal; }
.lecture-note-missing { padding: 70px 20px; text-align: center; }

@media (max-width: 1180px) {
  .lecture-note-layout { grid-template-columns: minmax(0, 1fr) 205px; gap: 38px; }
}

@media (max-width: 760px) {
  .lecture-note-hero { padding-top: 20px; padding-bottom: 28px; }
  .lecture-note-place { font-size: 11px; }
  .lecture-note-hero h1 { font-size: 25px; line-height: 1.42; }
  .lecture-note-content { padding-top: 28px; padding-bottom: 46px; }
  .lecture-note-layout { grid-template-columns: 1fr; gap: 25px; }
  .lecture-note-aside { position: static; grid-row: 1; }
  .lecture-note-aside nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; padding: 12px 13px; }
  .lecture-note-aside nav > strong { grid-column: 1 / -1; }
  .lecture-note-aside nav a { font-size: 9px; }
  .lecture-note-back { display: none; }
  .lecture-note-notice { margin-bottom: 27px; }
  .lecture-note-section { scroll-margin-top: 128px; padding-bottom: 29px; }
  .lecture-note-section + .lecture-note-section { margin-top: 30px; }
  .lecture-note-section h2 { margin-bottom: 12px; font-size: 21px; }
  .lecture-note-section > p { font-size: 13px; line-height: 1.85; }
  .lecture-note-points { grid-template-columns: 1fr; }
  .lecture-note-points article,
  .lecture-note-points article:nth-child(odd),
  .lecture-note-points article:nth-child(even) { padding: 13px 0; border-right: 0; }
  .lecture-note-steps li { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 11px 12px; }
  .lecture-note-steps li > span { width: 27px; height: 27px; }
  .lecture-note-links > a > span { grid-template-columns: 1fr; gap: 2px; }
  .lecture-note-images-grid { grid-template-columns: 1fr; }
  .lecture-note-images img { max-height: 360px; }
}

.resource-groups { border-top: 1px solid var(--line); }
.resource-group { display: grid; grid-template-columns: minmax(190px, .34fr) minmax(0, 1fr); gap: 38px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.resource-group-heading span { display: none; }
.resource-group-heading h2 { margin: 0; font-size: 23px; line-height: 1.45; }
.resource-links { display: grid; }
.resource-link { display: grid; grid-template-columns: minmax(0, 1fr) 34px; gap: 18px; padding: 19px 0; border-top: 1px solid var(--line); }
.resource-link:first-child { border-top: 0; padding-top: 0; }
.resource-link h3 { margin: 0; font-size: 17px; }
.resource-link p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.resource-link .link-destination { margin-top: 8px; }
.resource-link > span { color: var(--blue-600); font-size: 19px; text-align: right; }

.subpage-work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.subpage-work-item { min-width: 0; }
.subpage-work-item a { position: relative; display: grid; min-height: 210px; padding: 26px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: color .2s, background .2s; }
.subpage-work-item a:hover, .subpage-work-item a:focus-visible { color: #fff; background: var(--navy-800); }
.subpage-work-item .work-number { color: var(--blue-600); font-size: 12px; font-weight: 800; }
.subpage-work-item small { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; align-self: end; color: #71869b; font-size: 10px; font-weight: 750; }
.subpage-work-item small .link-destination { margin-left: 0; }
.subpage-work-item small .link-destination > i { position: static; color: currentColor; font-size: 9px; transform: none; }
.subpage-work-item h2 { margin: 5px 34px 0 0; font-size: 20px; line-height: 1.5; }
.subpage-work-item i { position: absolute; right: 24px; bottom: 25px; color: var(--blue-600); font-style: normal; font-size: 18px; }
.subpage-work-item a:hover small, .subpage-work-item a:focus-visible small { color: #b7d9f5; }

/* Open campus work list: keep all 14 works visible without tall cards. */
.open-campus-page .subpage-work-item a {
  grid-template-columns: 36px minmax(0, 1fr) 24px;
  grid-template-rows: auto auto;
  column-gap: 12px;
  min-height: 116px;
  padding: 18px 20px;
  align-content: center;
}
.open-campus-page .subpage-work-item .work-number {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  font-size: 13px;
}
.open-campus-page .subpage-work-item h2 {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  font-size: 17px;
  line-height: 1.45;
}
.open-campus-page .subpage-work-item small {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  margin-top: 4px;
}
.open-campus-page .subpage-work-item > a > i {
  grid-column: 3;
  grid-row: 1 / span 2;
  position: static;
  align-self: center;
  justify-self: end;
  font-size: 16px;
}

/* Schedule */
.schedule-section { padding-top: clamp(28px, 3.5vw, 48px); }
.schedule-heading { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 14px; }
.schedule-heading h2 { margin: 0; font-size: clamp(23px, 2.6vw, 34px); }
.schedule-heading p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.schedule-heading > span { padding: 4px 9px; color: #fff; background: var(--blue-600); border-radius: 99px; font-size: 9px; font-weight: 850; }
.schedule-card { display: flex; min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 9px; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.schedule-card:hover, .schedule-card:focus-visible { border-color: #91c5e9; box-shadow: 0 10px 26px rgba(5, 55, 98, .09); transform: translateY(-2px); }
.schedule-card-current { display: grid; grid-template-columns: minmax(0, 1fr) 220px; align-items: stretch; }
.schedule-card img { width: 100%; height: auto; object-fit: cover; background: #eef2f5; }
.schedule-card-current img { border-right: 1px solid var(--line); }
.schedule-card-copy { display: flex; flex: 1; min-width: 0; flex-direction: column; align-items: flex-start; padding: 18px; }
.schedule-card-copy > small { color: var(--blue-600); font-size: 10px; font-weight: 800; }
.schedule-card-copy > strong { margin-top: 6px; color: var(--navy-950); font-size: 19px; line-height: 1.45; }
.schedule-card-copy .link-destination { margin-top: auto; }
.schedule-archive { margin-top: 42px; }
.schedule-archive-heading { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; margin-bottom: 12px; padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.schedule-archive-heading h2 { margin: 0; font-size: 21px; }
.schedule-archive-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.schedule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.schedule-grid .schedule-card { flex-direction: column; }
.schedule-grid .schedule-card-copy { min-height: 112px; }
.schedule-grid .schedule-card-copy > strong { font-size: 16px; }

.teacher-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 340px); gap: clamp(34px, 5vw, 58px); align-items: start; }
.teacher-intro h2 { margin: 0 0 15px; font-size: clamp(27px, 3vw, 34px); line-height: 1.4; }
.teacher-intro p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.85; }
.teacher-fact { padding: 22px 24px; color: #fff; background: var(--navy-800); border-radius: 8px; }
.teacher-fact span { color: #9ed5ff; font-size: 10px; font-weight: 800; }
.teacher-fact strong { display: block; margin-top: 8px; font-size: 19px; line-height: 1.55; }
.teacher-training-photo { margin: 0 0 18px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.teacher-training-photo img { width: 100%; height: clamp(280px, 32vw, 390px); object-fit: cover; object-position: center 46%; }
.teacher-training-photo figcaption { padding: 9px 12px; color: #607286; font-size: 10px; line-height: 1.6; }
.practice-steps { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.practice-step { min-height: 0; padding: 22px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.practice-step span { display: inline-flex; padding: 3px 7px; color: #1767a9; background: #e8f4fc; border-radius: 4px; font-size: 9px; font-weight: 800; }
.practice-step h3 { margin: 16px 0 9px; font-size: 19px; }
.practice-step p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.standard-section-lead { max-width: 820px; margin: -7px 0 24px; color: var(--muted); font-size: 14px; line-height: 1.85; }
.standard-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.standard-link-card { display: grid; grid-template-columns: minmax(0, 1fr) 28px; gap: 16px; align-items: center; min-height: 112px; padding: 19px 20px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: color .18s ease, background .18s ease; }
.standard-link-card > span { display: grid; gap: 5px; min-width: 0; }
.standard-link-card strong { color: var(--navy-900); font-size: 16px; line-height: 1.5; }
.standard-link-card small { color: var(--muted); font-size: 11px; line-height: 1.65; }
.standard-link-card > i { color: var(--blue-600); font-size: 17px; font-style: normal; text-align: right; }
.standard-link-card:hover,
.standard-link-card:focus-visible { color: var(--navy-900); background: #f3f8fb; }
.standard-link-card:hover > i,
.standard-link-card:focus-visible > i { transform: translateX(2px); }

/* Courses */
.course-directory-section { padding-top: clamp(38px, 4.5vw, 58px); }
.course-directory-heading { margin-bottom: 17px; }
.course-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.course-directory-item { display: grid; grid-template-columns: 132px minmax(0, 1fr) 24px; gap: 17px; align-items: center; min-width: 0; padding: 16px; color: inherit; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .18s ease, box-shadow .18s ease; }
.course-directory-item:hover,
.course-directory-item:focus-visible { color: inherit; background: #f3f8fb; box-shadow: inset 0 0 0 2px rgba(8, 119, 232, .09); }
.course-directory-item figure { aspect-ratio: 16 / 10; overflow: hidden; margin: 0; background: #dfeaf2; border-radius: 6px; }
.course-directory-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.course-directory-copy { display: grid; gap: 5px; min-width: 0; }
.course-directory-meta { display: flex; flex-wrap: wrap; gap: 5px; }
.course-directory-meta span { display: inline-flex; min-height: 21px; align-items: center; padding: 3px 7px; color: #1767a9; background: #eaf5fc; border-radius: 4px; font-size: 9px; font-weight: 800; }
.course-directory-copy strong { color: var(--navy-950); font-size: 17px; line-height: 1.45; }
.course-directory-copy p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.course-directory-item > i { color: var(--blue-600); font-size: 18px; font-style: normal; transition: transform .18s ease; }
.course-directory-item:hover > i,
.course-directory-item:focus-visible > i { transform: translateX(2px); }
.course-directory-item-graduate { background: #f3f1f8; }
.course-directory-item-graduate .course-directory-meta span { color: #60517f; background: #e8e3f1; }
.course-directory-item-graduate > i { color: #756396; }
.course-directory-item-graduate:hover,
.course-directory-item-graduate:focus-visible { background: #ece8f4; box-shadow: inset 0 0 0 2px rgba(96, 81, 127, .1); }
.course-name-directory { margin-top: 30px; }
.course-name-directory h3 { margin: 0 0 12px; color: var(--navy-900); font-size: 16px; line-height: 1.5; }
.course-name-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); list-style: none; }
.course-past-directory { margin-top: 24px; }
.course-name-list.course-name-list-past { grid-template-columns: minmax(0, 1fr); max-width: 360px; }
.course-name-item { display: grid; align-content: center; gap: 9px; min-width: 0; min-height: 82px; padding: 13px 15px; background: #f8fafc; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.course-name-item strong { color: var(--navy-900); font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.course-name-meta { display: flex; flex-wrap: wrap; gap: 4px; }
.course-name-meta > span { display: inline-flex; min-height: 19px; align-items: center; padding: 2px 6px; color: #4d6a80; background: #e9f0f5; border-radius: 4px; font-size: 8px; font-weight: 800; line-height: 1.35; }
.course-name-meta > .course-status-closed { color: #6c6b6a; background: #e8e7e5; }
.course-name-meta > .course-status-planned { color: #72510e; background: #fff0c8; }
.course-detail-hero-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 39%); gap: clamp(30px, 5vw, 62px); align-items: center; }
.course-detail-hero-photo { overflow: hidden; margin: 0; background: #dce8f0; border: 1px solid #c9dbe7; border-radius: 9px; }
.course-detail-hero-photo img { display: block; width: 100%; height: 230px; object-fit: cover; }
.course-detail-facts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 15px; }
.course-detail-facts span { display: inline-flex; min-height: 28px; align-items: center; padding: 5px 10px; color: #315a77; background: rgba(255,255,255,.86); border: 1px solid #c9dfed; border-radius: 5px; font-size: 10px; font-weight: 800; }
.course-detail-section { padding-top: clamp(38px, 4.5vw, 58px); }
.course-detail-copy { border-top: 2px solid var(--navy-800); }
.course-detail-copy .text-section:first-child { padding-top: 25px; }
.course-detail-note { margin-top: 17px; padding: 13px 15px; color: #536c80; background: #f6f9fb; border: 1px solid #d8e2e9; border-radius: 6px; font-size: 11px; line-height: 1.7; }
.course-related-nav { margin-top: 34px; }
.course-related-nav h2 { margin: 0 0 13px; color: var(--navy-950); font-size: 20px; }

/* Lab life and research progress */
.lab-life-intro-section { padding-top: clamp(34px, 4vw, 50px); padding-bottom: clamp(36px, 4.2vw, 54px); }
.lab-life-guide { display: grid; grid-template-columns: minmax(270px, .72fr) minmax(0, 1.28fr); gap: clamp(42px, 7vw, 94px); align-items: start; }
.lab-life-guide-heading > span { color: var(--blue-600); font-size: 9px; font-weight: 850; letter-spacing: .05em; }
.lab-life-guide-heading h2 { margin: 7px 0 0; color: var(--navy-950); font-size: clamp(25px, 2.8vw, 35px); line-height: 1.45; letter-spacing: -.04em; }
.lab-life-guide-heading p { margin: 13px 0 0; color: var(--muted); font-size: 13px; line-height: 1.85; }
.lab-life-guide-list { margin: 0; border-top: 2px solid var(--navy-800); }
.lab-life-guide-list > div { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 22px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.lab-life-guide-list dt { color: var(--navy-900); font-size: 13px; font-weight: 850; line-height: 1.7; }
.lab-life-guide-list dd { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.lab-life-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 22px; }
.lab-life-filters button { min-height: 36px; padding: 7px 13px; color: #436178; background: #fff; border: 1px solid #c5d6e2; border-radius: 999px; font-size: 10px; font-weight: 800; transition: color .18s ease, background .18s ease, border-color .18s ease; }
.lab-life-filters button:hover, .lab-life-filters button:focus-visible { color: var(--navy-900); border-color: #77b7e5; }
.lab-life-filters button[aria-pressed="true"] { color: #fff; background: var(--navy-800); border-color: var(--navy-800); box-shadow: inset 0 -2px 0 #78c8ff; }
.lab-life-status { margin: 0; color: #667d91; font-size: 10px; }
.lab-life-list { margin-top: 12px; border-top: 2px solid var(--navy-800); }
.lab-life-entry { display: grid; grid-template-columns: minmax(220px, 30%) minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); padding: 28px 0; border-bottom: 1px solid #cbd9e3; }
.lab-life-entry-media { min-height: 180px; overflow: hidden; background: #dceaf4; border-radius: 7px; }
.lab-life-entry-media img { display: block; width: 100%; height: 100%; min-height: 180px; object-fit: cover; }
.lab-life-entry-media-gallery { position: relative; min-height: 240px; background: #d7e5ee; }
.lab-life-entry-media-gallery img:first-child { position: absolute; inset: 0; }
.lab-life-entry-media-gallery img:nth-child(2) {
  position: absolute;
  right: 9px;
  bottom: 9px;
  width: 43%;
  height: 43%;
  min-height: 0;
  border: 4px solid #fff;
  border-radius: 5px;
  box-shadow: 0 7px 18px rgba(4, 36, 60, .2);
  transform: rotate(2deg);
}
.lab-life-entry-media-empty { display: grid; place-items: center; color: #2872aa; background: linear-gradient(135deg, #e8f4fc, #d8ebf8); border: 1px solid #c3ddec; }
.lab-life-entry-media-empty span { font-size: 11px; font-weight: 850; letter-spacing: .06em; }
.lab-life-entry-copy { min-width: 0; }
.lab-life-entry-meta { display: flex; flex-wrap: wrap; gap: 7px 10px; align-items: center; }
.lab-life-entry-meta time { color: #637b90; font-size: 10px; font-weight: 750; }
.lab-life-entry-meta small { color: #71879a; font-size: 9px; }
.life-category { display: inline-flex; min-height: 22px; align-items: center; padding: 3px 8px; border-radius: 4px; font-size: 9px; font-weight: 850; }
.life-category-research { color: #1a5d85; background: #dff2ff; }
.life-category-life { color: #685018; background: #fff0c8; }
.life-category-event { color: #245f46; background: #dff5eb; }
.life-category-presentation { color: #71445b; background: #f5e4ef; }
.lab-life-entry h2 { margin: 11px 0 8px; color: var(--navy-950); font-size: clamp(20px, 2.2vw, 28px); line-height: 1.5; letter-spacing: -.025em; }
.lab-life-entry-excerpt { margin: 0; color: #425f77; font-size: 14px; font-weight: 650; line-height: 1.8; }
.lab-life-entry-body { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.8; white-space: pre-line; }
.lab-life-entry-link { display: inline-flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-top: 15px; color: var(--blue-600); font-size: 11px; font-weight: 850; }
.lab-life-entry-link > i { font-size: 15px; font-style: normal; transition: transform .18s ease; }
.lab-life-entry-link:hover > i, .lab-life-entry-link:focus-visible > i { transform: translateX(3px); }
.lab-life-entry-link .link-destination { margin-left: 1px; }
.lab-life-empty { padding: 46px 24px; border-bottom: 1px solid var(--line); text-align: center; }
.lab-life-empty strong { color: var(--navy-900); font-size: 15px; }
.lab-life-empty p { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.lab-life-policy-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .65fr); gap: 22px 42px; align-items: start; }
.lab-life-policy-grid > p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.9; }
.lab-life-policy-grid .standard-link-card { border: 1px solid var(--line); }

.subpage-callout { display: flex; justify-content: space-between; gap: 40px; align-items: center; padding: 45px; color: #fff; background: linear-gradient(135deg, var(--navy-800), #075aa9); border-radius: 12px; }
.subpage-callout h2 { margin: 0; font-size: 28px; }
.subpage-callout p { max-width: 680px; margin: 8px 0 0; color: rgba(255,255,255,.8); }
.subpage-callout a { flex: 0 0 auto; padding: 13px 20px; color: var(--navy-900); background: #fff; border-radius: 6px; font-size: 13px; font-weight: 800; }

/* Open campus hub */
.open-campus-hub-hero { padding-block: clamp(34px, 4.5vw, 62px); }
.open-campus-hub-hero-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); gap: clamp(34px, 5vw, 68px); align-items: center; }
.open-campus-hub-hero-copy { min-width: 0; }
.open-campus-hub-hero-photo { overflow: hidden; margin: 0; background: #dce9f2; border: 1px solid rgba(129, 169, 198, .52); border-radius: 10px; box-shadow: 0 14px 32px rgba(4, 37, 67, .12); }
.open-campus-hub-hero-photo img { display: block; width: 100%; height: clamp(220px, 20vw, 280px); object-fit: cover; object-position: center 62%; }
.open-campus-hub-hero-photo figcaption { padding: 8px 11px; color: #567086; background: rgba(255,255,255,.94); font-size: 9px; line-height: 1.5; }
.open-campus-feature-section { padding-top: clamp(38px, 4vw, 58px); }
.open-campus-feature { display: grid; grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); overflow: hidden; color: inherit; background: #fff; border: 1px solid #bcd1df; border-radius: 10px; box-shadow: 0 8px 24px rgba(5, 46, 79, .06); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.open-campus-feature:hover, .open-campus-feature:focus-visible { color: inherit; border-color: #79b7df; box-shadow: 0 13px 30px rgba(5, 46, 79, .1); transform: translateY(-2px); }
.open-campus-feature figure { min-height: 280px; margin: 0; overflow: hidden; background: #dce9f2; }
.open-campus-feature figure img { display: block; width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.open-campus-feature-copy { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(28px, 4vw, 48px); }
.open-campus-feature-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.open-campus-feature-meta time { color: #5f7890; font-size: 10px; font-weight: 750; }
.open-campus-feature-meta em { padding: 4px 8px; color: #1767a9; background: var(--blue-050); border: 1px solid #cee5f7; border-radius: 4px; font-size: 9px; font-style: normal; font-weight: 850; }
.open-campus-feature-copy > strong { margin-top: 13px; color: var(--navy-950); font-size: clamp(23px, 2.6vw, 34px); line-height: 1.45; letter-spacing: -.025em; }
.open-campus-feature-copy > span:not(.open-campus-feature-meta) { margin-top: 12px; color: var(--muted); font-size: 14px; line-height: 1.85; }
.open-campus-feature-copy > small { display: inline-flex; gap: 16px; align-items: center; margin-top: 20px; color: var(--blue-600); font-size: 11px; font-weight: 850; }
.open-campus-feature-copy > small i { font-size: 15px; font-style: normal; transition: transform .18s ease; }
.open-campus-feature:hover .open-campus-feature-copy > small i, .open-campus-feature:focus-visible .open-campus-feature-copy > small i { transform: translateX(3px); }
.open-campus-exhibition-section { padding-top: clamp(38px, 4vw, 58px); background: #f2f7fa; scroll-margin-top: 96px; }
.open-campus-exhibition { display: grid; grid-template-columns: minmax(360px, 1.12fr) minmax(0, .88fr); overflow: hidden; background: #fff; border: 1px solid #bcd1df; border-radius: 10px; box-shadow: 0 8px 24px rgba(5, 46, 79, .06); }
.open-campus-exhibition-video { position: relative; align-self: start; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #071321; }
.open-campus-exhibition-video iframe { display: block; width: 100%; height: 100%; border: 0; }
.open-campus-exhibition-copy { min-width: 0; padding: clamp(24px, 3vw, 38px); }
.open-campus-exhibition-copy :is(h2, h3) { margin: 13px 0 0; color: var(--navy-950); font-size: clamp(22px, 2.25vw, 29px); line-height: 1.5; letter-spacing: -.025em; }
.open-campus-exhibition-copy > p { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.85; }
.open-campus-exhibition-copy figure { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; align-items: center; margin: 20px 0 0; padding-top: 15px; border-top: 1px solid var(--line); }
.open-campus-exhibition-copy figure a { display: block; overflow: hidden; background: #dce9f2; border-radius: 6px; }
.open-campus-exhibition-copy figure img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.open-campus-exhibition-copy figcaption { color: #5a7083; font-size: 10px; line-height: 1.65; }
.open-campus-exhibition-copy figcaption span { display: block; margin-top: 5px; color: var(--blue-600); font-size: 9px; font-weight: 800; }
.open-campus-exhibition-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 17px; }
.open-campus-exhibition-actions a { display: inline-flex; min-height: 34px; align-items: center; gap: 13px; padding: 6px 11px; color: #fff; background: var(--navy-800); border-radius: 5px; font-size: 10px; font-weight: 800; }
.open-campus-exhibition-actions a:last-child { color: var(--navy-800); background: #edf5fa; border: 1px solid #c9dde9; }
.open-campus-exhibition-actions a:hover, .open-campus-exhibition-actions a:focus-visible { color: #fff; background: var(--blue-600); }
.open-campus-exhibition-actions i { font-style: normal; }
.open-campus-guide-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.open-campus-guide-list a { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 5px 14px; min-height: 170px; align-content: start; padding: 23px; color: inherit; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .18s ease; }
.open-campus-guide-list a > span, .open-campus-guide-list a > strong, .open-campus-guide-list a > small { grid-column: 1; }
.open-campus-guide-list a > span { color: var(--blue-600); font-size: 9px; font-weight: 850; letter-spacing: .04em; }
.open-campus-guide-list a > strong { margin-top: 6px; color: var(--navy-950); font-size: 19px; line-height: 1.5; }
.open-campus-guide-list a > small { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.open-campus-guide-list a > i { grid-column: 2; grid-row: 1 / span 3; align-self: center; color: var(--blue-600); font-size: 17px; font-style: normal; transition: transform .18s ease; }
.open-campus-guide-list a:hover, .open-campus-guide-list a:focus-visible { color: inherit; background: #f2f8fc; }
.open-campus-guide-list a:hover > i, .open-campus-guide-list a:focus-visible > i { transform: translateX(3px); }
.open-campus-records-section { padding-top: clamp(40px, 4.5vw, 62px); }
.open-campus-record-list { border-top: 2px solid var(--navy-800); }
.open-campus-record { display: grid; grid-template-columns: 160px minmax(0, 1fr) 30px; gap: 26px; align-items: center; margin-inline: -12px; padding: 20px 12px; color: inherit; border-bottom: 1px solid #cbd9e3; transition: background .18s ease; scroll-margin-top: 96px; }
.open-campus-record:hover, .open-campus-record:focus-visible { color: inherit; background: #f3f8fb; }
.open-campus-record-meta { display: grid; justify-items: start; gap: 7px; }
.open-campus-record-meta time { color: #60768a; font-size: 10px; font-weight: 750; }
.open-campus-record-meta em { padding: 4px 8px; color: #1767a9; background: var(--blue-050); border: 1px solid #cee5f7; border-radius: 4px; font-size: 9px; font-style: normal; font-weight: 850; }
.open-campus-record > span:nth-child(2) { display: grid; gap: 5px; min-width: 0; }
.open-campus-record strong { color: var(--navy-950); font-size: 17px; line-height: 1.55; }
.open-campus-record small { color: var(--muted); font-size: 11px; line-height: 1.7; }
.open-campus-record > i { color: var(--blue-600); font-size: 17px; font-style: normal; text-align: center; transition: transform .18s ease; }
.open-campus-record:hover > i, .open-campus-record:focus-visible > i { transform: translateX(3px); }
.open-campus-official-section { padding-block: clamp(38px, 4.5vw, 58px); }

.recruitment-hero {
  display: flex;
  min-height: clamp(480px, 52vw, 620px);
  align-items: flex-end;
  isolation: isolate;
  color: #fff;
  background: #071b34;
}
.recruitment-hero::after { display: none; }
.recruitment-video-media,
.recruitment-video-shade { position: absolute; z-index: 0; inset: 0; }
.recruitment-video-media {
  overflow: hidden;
  pointer-events: none;
  background: #071b34 url("https://i.ytimg.com/vi/pd2t3Ym93Vc/hqdefault.jpg") center / cover no-repeat;
}
.recruitment-video-media iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  max-width: none;
  border: 0;
  opacity: 0;
  transform: translate(-50%, -50%) scale(1.02);
  transition: opacity .6s ease;
}
.recruitment-video-media.is-ready iframe { opacity: 1; }
.recruitment-video-shade {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(4, 20, 40, .91) 0%, rgba(4, 25, 49, .76) 55%, rgba(4, 27, 52, .4) 100%),
    linear-gradient(0deg, rgba(3, 17, 35, .68) 0%, transparent 48%);
}
.recruitment-hero .subpage-hero-inner { z-index: 2; padding-bottom: 52px; }
.recruitment-hero .breadcrumbs { color: rgba(255,255,255,.72); }
.recruitment-hero .breadcrumbs a { color: #9ed5ff; }
.recruitment-hero .breadcrumbs strong { color: #fff; }
.recruitment-hero h1 { color: #fff; text-shadow: 0 2px 18px rgba(0, 12, 28, .42); }
.recruitment-hero .subpage-lead { max-width: 900px; color: rgba(255,255,255,.86); text-shadow: 0 1px 8px rgba(0, 12, 28, .38); }
.recruitment-hero .tag-list span { color: #fff; background: rgba(7, 38, 69, .58); border-color: rgba(174, 218, 249, .42); backdrop-filter: blur(5px); }
.recruitment-hero .subpage-hero-actions a { color: #fff; background: rgba(6, 31, 58, .62); border-color: rgba(255,255,255,.45); backdrop-filter: blur(6px); }
.recruitment-hero .subpage-hero-actions a:hover,
.recruitment-hero .subpage-hero-actions a:focus-visible { color: var(--navy-900); background: #fff; border-color: #fff; }
.recruitment-video-controls {
  position: sticky;
  z-index: 69;
  top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
  margin: -56px clamp(18px, 3vw, 38px) 18px;
  pointer-events: none;
}
.recruitment-video-controls a,
.recruitment-video-controls button { display: inline-flex; min-height: 38px; align-items: center; gap: 8px; padding: 7px 11px; color: #fff; background: rgba(4, 23, 45, .68); border: 1px solid rgba(255,255,255,.38); border-radius: 99px; backdrop-filter: blur(8px); font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; pointer-events: auto; transition: color .18s ease, background .18s ease, border-color .18s ease; }
.recruitment-video-controls a:hover,
.recruitment-video-controls a:focus-visible,
.recruitment-video-controls button:hover,
.recruitment-video-controls button:focus-visible { color: var(--navy-900); background: #fff; border-color: #fff; }
.recruitment-video-controls button[aria-pressed="true"] { color: var(--navy-900); background: #fff; border-color: #fff; }
.recruitment-video-controls button:disabled { opacity: .6; cursor: wait; }
.recruitment-video-control-icon { display: grid; width: 18px; height: 18px; place-items: center; font-family: Arial, sans-serif; font-size: 10px; }
.recruitment-video-controls [data-video-sound-toggle][aria-pressed="true"] .recruitment-video-control-icon {
  color: var(--blue-600);
  animation: recruitment-sound-note .8s ease-in-out infinite;
}
@keyframes recruitment-sound-note {
  0%, 100% { transform: translateY(2px) rotate(-8deg) scale(.96); }
  50% { transform: translateY(-2px) rotate(8deg) scale(1.12); }
}
.recruitment-video-controls strong { font-size: inherit; }
.recruitment-page-nav-wrap { padding: 18px clamp(28px, 4.4vw, 64px); background: #fff; border-bottom: 1px solid var(--line); }
.recruitment-page-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: min(100%, var(--content)); margin-inline: auto; border: 1px solid var(--line); border-radius: 8px; }
.recruitment-page-nav a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 62px; padding: 12px 15px; color: var(--navy-800); border-right: 1px solid var(--line); transition: color .18s ease, background .18s ease; }
.recruitment-page-nav a:last-child { border-right: 0; }
.recruitment-page-nav a:hover, .recruitment-page-nav a:focus-visible { color: var(--blue-600); background: var(--blue-050); }
.recruitment-page-nav small { color: #6d8195; font-size: 9px; font-weight: 800; }
.recruitment-page-nav strong { min-width: 0; font-size: 12px; line-height: 1.45; }
.recruitment-page-nav span { color: var(--blue-600); font-size: 13px; }
.recruitment-page .subpage-section { padding-block: clamp(52px, 6vw, 78px); scroll-margin-top: 24px; }
.recruitment-page .subpage-section-heading { margin-bottom: 30px; padding-bottom: 20px; }
.recruitment-page .subpage-section-heading h2 { font-size: clamp(27px, 3vw, 38px); }
.recruitment-topic-list { border-top: 2px solid var(--navy-800); }
.recruitment-topic-item a { display: grid; grid-template-columns: 46px minmax(190px, .42fr) minmax(300px, 1fr); gap: 22px; align-items: center; min-width: 0; padding: 22px 14px 22px 0; border-bottom: 1px solid var(--line); transition: background .18s ease; }
.recruitment-topic-item a:hover, .recruitment-topic-item a:focus-visible { background: #f5faff; }
.recruitment-topic-number { color: #6c8195; font-family: Arial, sans-serif; font-size: 11px; font-weight: 800; text-align: center; }
.recruitment-topic-heading { min-width: 0; }
.recruitment-topic-heading h3 { margin: 0; color: var(--navy-950); font-size: 20px; line-height: 1.45; }
.recruitment-topic-detail { min-width: 0; }
.recruitment-topic-detail p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.recruitment-topic-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-top: 10px; }
.recruitment-topic-detail ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.recruitment-topic-detail li { padding: 3px 7px; color: #42627e; background: #f2f7fa; border: 1px solid #d4e2ec; border-radius: 4px; font-size: 9px; font-weight: 750; }
.recruitment-topic-link { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-left: auto; color: var(--blue-600); font-size: 10px; font-weight: 800; white-space: nowrap; }
.recruitment-topic-link i { font-size: 16px; font-style: normal; transition: transform .18s ease; }
.recruitment-topic-item a:hover .recruitment-topic-link i, .recruitment-topic-item a:focus-visible .recruitment-topic-link i { transform: translateX(3px); }
.recruitment-theme-note {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  margin: 22px 0 0;
  padding: 20px 22px;
  color: #405d76;
  background: #eaf6ff;
  border: 1px solid #afd4ed;
  border-radius: 8px;
  line-height: 1.75;
}
.recruitment-theme-note strong { color: var(--navy-900); font-size: 17px; line-height: 1.55; }
.recruitment-theme-note span { font-size: 12px; }
.recruitment-common-label span,
.recruitment-commitment > span {
  color: var(--blue-600);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
}
.recruitment-common-grid { border-top: 2px solid var(--navy-800); }
.recruitment-common-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 38px 0;
  border-bottom: 1px solid var(--line);
}
.recruitment-common-label { padding-top: 0; }
.recruitment-common-card h3 { margin: 0 0 14px; color: var(--navy-950); font-size: 25px; line-height: 1.4; }
.recruitment-common-card p { max-width: 760px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.95; }

.recruitment-roadmap-section { background: #fff; border-bottom: 1px solid var(--line); }
.recruitment-roadmap-board {
  overflow: hidden;
  padding: 14px;
  background: #f7fafc;
  border: 1px solid #c7d7e3;
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(8, 47, 79, .06);
}
.recruitment-roadmap-years {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 2px;
  margin-bottom: 2px;
  color: #fff;
  font-size: 12px;
  font-weight: 850;
  text-align: center;
}
.recruitment-roadmap-years span { padding: 9px 6px; }
.recruitment-roadmap-year-second { grid-column: 1 / 3; background: #247ea8; border-radius: 7px 0 0 7px; }
.recruitment-roadmap-year-research { grid-column: 3 / 5; background: #176b84; }
.recruitment-roadmap-year-fourth { grid-column: 5 / 10; background: var(--navy-800); }
.recruitment-roadmap-year-graduation { grid-column: 10 / 11; background: #765b9a; border-radius: 0 7px 7px 0; }
.recruitment-roadmap-months {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  margin-bottom: 8px;
  color: #5f7588;
  font-size: 9px;
  font-weight: 800;
  text-align: center;
}
.recruitment-roadmap-months span { padding: 6px 2px; background: #edf3f7; border-right: 1px solid #d2dfe7; }
.recruitment-roadmap-months span:first-child { border-radius: 5px 0 0 5px; }
.recruitment-roadmap-months span:last-child { border-right: 0; border-radius: 0 5px 5px 0; }
.recruitment-roadmap-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  grid-template-rows: auto auto;
  gap: 16px 8px;
  padding: 14px 2px 4px;
  background-image: repeating-linear-gradient(90deg, transparent 0, transparent calc(10% - 1px), rgba(119, 151, 174, .14) calc(10% - 1px), rgba(119, 151, 174, .14) 10%);
}
.recruitment-roadmap-timeline::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 153px;
  right: 2.5%;
  left: 2.5%;
  height: 3px;
  background: linear-gradient(90deg, #65a9ca, #176b84 45%, var(--navy-800) 78%, #765b9a);
  border-radius: 99px;
}
.recruitment-roadmap-milestone {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 140px;
  padding: 13px 11px 12px;
  background: rgba(255, 255, 255, .97);
  border: 1px solid #c4d6e2;
  border-radius: 8px;
  box-shadow: 0 5px 14px rgba(10, 52, 84, .07);
}
.recruitment-roadmap-milestone::after {
  content: "";
  position: absolute;
  right: 50%;
  bottom: -7px;
  width: 10px;
  height: 10px;
  background: #fff;
  border: 3px solid var(--blue-600);
  border-radius: 50%;
  transform: translateX(50%);
}
.recruitment-roadmap-milestone > span,
.recruitment-roadmap-active article > span {
  color: var(--blue-600);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .03em;
}
.recruitment-roadmap-milestone h3,
.recruitment-roadmap-active h3 { margin: 5px 0 6px; color: var(--navy-950); font-size: 15px; line-height: 1.4; }
.recruitment-roadmap-milestone p,
.recruitment-roadmap-active p { margin: 0; color: #5e7182; font-size: 10px; line-height: 1.65; }
.recruitment-roadmap-choice { grid-column: 1; grid-row: 1; }
.recruitment-roadmap-study { grid-column: 2; grid-row: 1; }
.recruitment-roadmap-start { grid-column: 3; grid-row: 1; }
.recruitment-roadmap-complete { grid-column: 7; grid-row: 1; }
.recruitment-roadmap-polish { grid-column: 8; grid-row: 1; }
.recruitment-roadmap-presentation { grid-column: 9; grid-row: 1; }
.recruitment-roadmap-graduation { grid-column: 10; grid-row: 1; border-color: #c9b9dc; background: #fbf8ff; }
.recruitment-roadmap-graduation::after { border-color: #765b9a; }
.recruitment-roadmap-active {
  z-index: 1;
  display: grid;
  grid-column: 3 / 11;
  grid-row: 2;
  gap: 7px;
  min-width: 0;
}
.recruitment-roadmap-active article {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-width: 0;
  padding: 9px 13px;
  background: #edf7f9;
  border: 1px solid #b8d9df;
  border-radius: 7px;
}
.recruitment-roadmap-active article > span { color: #176b74; }
.recruitment-roadmap-active h3 { display: inline; margin: 0 10px 0 0; font-size: 13px; }
.recruitment-roadmap-active p { display: inline; font-size: 10px; }
.recruitment-roadmap-active .recruitment-roadmap-conference { margin-left: 12.5%; background: #fff8e9; border-color: #ecd59c; }
.recruitment-roadmap-conference > span { color: #9b6816 !important; }
.recruitment-course-choice {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
  margin-top: 18px;
  padding: 18px;
  background: #f7fafc;
  border: 1px solid #c7d7e3;
  border-radius: 10px;
}
.recruitment-course-heading { align-self: center; }
.recruitment-course-heading > span { color: var(--blue-600); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.recruitment-course-heading h3 { margin: 4px 0 0; color: var(--navy-950); font-size: 20px; line-height: 1.45; }
.recruitment-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.recruitment-course-card { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 16px; border: 1px solid; border-radius: 8px; }
.recruitment-course-card strong { font-size: 17px; line-height: 1.4; }
.recruitment-course-card p { margin: 0; font-size: 11px; line-height: 1.7; }
.recruitment-course-oni { color: #7f351f; background: #fff3ed; border-color: #e6b6a5; }
.recruitment-course-oni strong { color: #9b3d20; }
.recruitment-course-human { color: #315f69; background: #eff8f5; border-color: #b9d9d0; }
.recruitment-course-human strong { color: #176b74; }

.recruitment-project-steps { display: block; border: 0; border-top: 2px solid var(--navy-800); }
.recruitment-project-steps .practice-step {
  display: grid;
  grid-template-columns: minmax(110px, .24fr) minmax(200px, .45fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  min-height: 0;
  padding: 20px 4px;
  border: 0;
  border-bottom: 1px solid var(--line);
}
.recruitment-project-steps .practice-step span { padding: 3px 0 0; border: 0; font-size: 10px; letter-spacing: .04em; }
.recruitment-project-steps .practice-step h3 { margin: 0; font-size: 19px; line-height: 1.55; }
.recruitment-project-steps .practice-step p { font-size: 13px; line-height: 1.75; }

.recruitment-fit-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr); gap: 20px; align-items: stretch; }
.recruitment-fit-card { padding: 35px 38px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.recruitment-fit-card h3 { margin: 0 0 24px; color: var(--navy-950); font-size: 24px; }
.recruitment-fit-card .plain-list li:first-child { border-top: 0; }
.recruitment-commitment {
  position: relative;
  isolation: isolate;
  margin-left: 14px;
  padding: 35px 38px;
  color: var(--navy-950);
  background: #edf7fd;
  border: 1px solid #b8d9ed;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(7, 60, 103, .07);
}
.recruitment-commitment-visual {
  position: absolute;
  z-index: -1;
  right: -8px;
  bottom: -8px;
  width: min(56%, 250px);
  height: auto;
  aspect-ratio: 1 / 1;
  max-width: none;
  object-fit: contain;
  object-position: right bottom;
  opacity: .34;
  pointer-events: none;
  user-select: none;
}
.recruitment-commitment > span,
.recruitment-commitment h3,
.recruitment-commitment p { position: relative; z-index: 1; max-width: 72%; }
.recruitment-commitment::before,
.recruitment-commitment::after { content: ""; position: absolute; top: 42px; width: 0; height: 0; border-style: solid; }
.recruitment-commitment::before { left: -19px; border-width: 13px 19px 13px 0; border-color: transparent #b8d9ed transparent transparent; }
.recruitment-commitment::after { left: -17px; top: 43px; border-width: 12px 18px 12px 0; border-color: transparent #edf7fd transparent transparent; }
.recruitment-commitment > span { display: inline-flex; padding: 4px 8px; color: #1767a9; background: #fff; border: 1px solid #c4deef; border-radius: 99px; }
.recruitment-commitment h3 { margin: 19px 0 14px; color: var(--navy-950); font-size: 25px; line-height: 1.5; }
.recruitment-commitment p { margin: 0; color: #405d76; font-size: 15px; line-height: 2; }
.recruitment-offtime {
  display: grid;
  grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr);
  gap: clamp(32px, 5vw, 70px);
  margin-top: 24px;
  padding: 30px 34px;
  background: #fffaf0;
  border: 1px solid #eadcc0;
  border-radius: 10px;
}
.recruitment-offtime-intro h3 { margin: 0 0 12px; color: var(--navy-950); font-size: 23px; line-height: 1.5; }
.recruitment-desktop-line { display: inline; }
@media (min-width: 1181px) { .recruitment-desktop-line { display: block; } }
.recruitment-offtime-intro p { margin: 0; color: #586879; font-size: 13px; line-height: 1.9; }
.recruitment-offtime-photo { position: relative; overflow: hidden; margin: 18px 0 0; background: #eadfc9; border-radius: 7px; }
.recruitment-offtime-photo img { display: block; width: 100%; height: 154px; object-fit: cover; }
.recruitment-offtime-photo figcaption { position: absolute; right: 8px; bottom: 8px; padding: 4px 7px; color: #fff; background: rgba(6, 33, 53, .78); border-radius: 3px; font-size: 9px; font-weight: 750; }
.recruitment-offtime-details { border-top: 1px solid #dfd0b4; }
.recruitment-offtime-details article { padding: 15px 0; border-bottom: 1px solid #dfd0b4; }
.recruitment-offtime-details strong { color: #8a632b; font-size: 9px; letter-spacing: .07em; }
.recruitment-offtime-details h4 { margin: 3px 0 5px; color: var(--navy-900); font-size: 16px; line-height: 1.55; }
.recruitment-offtime-details p { margin: 0; color: #647181; font-size: 11px; line-height: 1.75; }

/* Research presentations */
.record-crosslink { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; margin-bottom: 42px; padding: 18px 20px; background: var(--blue-050); border: 1px solid #c9dfef; border-radius: 8px; }
.record-crosslink small { color: var(--blue-600); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.record-crosslink h2 { margin: 3px 0 4px; color: var(--navy-900); font-size: 20px; line-height: 1.5; }
.record-crosslink p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.record-crosslink > a { display: inline-flex; gap: 18px; align-items: center; padding: 9px 12px; color: #fff; background: var(--navy-800); border-radius: 6px; font-size: 11px; font-weight: 800; white-space: nowrap; transition: background .18s ease, transform .18s ease; }
.record-crosslink > a:hover, .record-crosslink > a:focus-visible { background: var(--blue-600); transform: translateY(-1px); }

.presentation-section { padding-top: clamp(38px, 5vw, 68px); }
.presentation-event { overflow: hidden; scroll-margin-top: 86px; background: #fff; border: 1px solid #b9cedc; border-radius: 8px; }
.presentation-event + .presentation-event { margin-top: 28px; }
.presentation-event-header { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 12px 42px; align-items: start; padding: 19px 22px 17px; background: #eaf3f8; border-top: 0; border-bottom: 2px solid var(--navy-800); }
.presentation-event-header-simple { grid-template-columns: minmax(0, 1fr); }
.presentation-event-date { display: inline-flex; margin: 0 0 7px; padding: 0; color: var(--blue-600); background: transparent; border: 0; border-radius: 0; font-size: 10px; font-weight: 850; letter-spacing: .07em; }
.presentation-event-header h2 { margin: 0; color: var(--navy-950); font-size: clamp(21px, 2.1vw, 27px); line-height: 1.45; letter-spacing: -.02em; }
.presentation-event-header h2 span { display: inline-block; margin-top: 4px; color: #4e667d; font-size: .52em; font-weight: 650; letter-spacing: .01em; }
.presentation-event-facts { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 0; background: transparent; border: 0; border-radius: 0; }
.presentation-event-facts > div { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.presentation-event-facts > div:last-child { border-bottom: 0; }
.presentation-event-facts dt { color: #6d8194; font-size: 10px; font-weight: 800; }
.presentation-event-facts dd { margin: 0; color: var(--navy-900); font-size: 11px; font-weight: 700; line-height: 1.6; }
.presentation-event-facts dd small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; font-weight: 500; }
.presentation-event-link { display: inline-flex; grid-column: 1; justify-self: start; gap: 7px; align-items: center; min-height: 28px; padding: 4px 0 3px; color: var(--blue-600); background: transparent; border: 0; border-bottom: 1px solid #9fc5df; border-radius: 0; font-size: 10px; font-weight: 800; }
.presentation-event-link .link-destination { margin-left: 4px; }
.presentation-program { grid-column: 1 / -1; margin-top: 2px; background: transparent; border: 0; border-top: 1px solid #d4e0e8; border-radius: 0; }
.presentation-program summary { padding: 9px 0 3px; color: var(--navy-800); font-size: 10px; font-weight: 800; cursor: pointer; }
.presentation-program ul { display: grid; gap: 6px; margin: 0; padding: 0 16px 13px 32px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.presentation-list { display: grid; gap: 0; padding: 0 22px; background: #fff; }
.presentation-entry { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; padding: 23px 0; scroll-margin-top: 86px; background: transparent; border: 0; border-bottom: 1px solid #cbd9e2; border-radius: 0; }
.presentation-entry:last-child { border-bottom: 0; }
.presentation-entry-multiple { grid-template-columns: 62px minmax(0, 1fr); column-gap: 18px; }
.presentation-entry-marker { display: flex; grid-column: 1; grid-row: 1; align-items: flex-start; margin: 0; padding: 0; border: 0; }
.presentation-entry-marker span { display: inline-flex; width: 52px; min-height: 0; align-items: center; padding: 7px 0 0; color: var(--blue-600); background: transparent; border-top: 2px solid var(--blue-600); border-radius: 0; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.presentation-entry-multiple > .presentation-entry-heading,
.presentation-entry-multiple > .presentation-authors,
.presentation-entry-multiple > .presentation-abstract,
.presentation-entry-multiple > .presentation-entry-links { grid-column: 2; }
.presentation-entry-heading { min-width: 0; }
.presentation-format { display: inline-flex; padding: 0; color: #587085; background: transparent; border-radius: 0; font-size: 9px; font-weight: 750; }
.presentation-entry-labels .presentation-format::before { margin-right: 7px; color: #9babb8; content: "／"; }
.presentation-entry h3 { margin: 7px 0 0; color: var(--navy-950); font-size: 19px; line-height: 1.52; }
.presentation-english-title { margin: 7px 0 0; color: #6a7d90; font-size: 10px; line-height: 1.6; }
.presentation-authors { display: flex; grid-column: 1; flex-wrap: wrap; gap: 0; margin: 0; padding: 2px 0 0; border: 0; }
.presentation-authors > span { display: block; max-width: 310px; margin: 4px 14px 4px 0; padding: 0 14px 0 0; color: var(--navy-900); border-right: 1px solid #cedce6; font-size: 11px; font-weight: 800; }
.presentation-authors > span:last-child { margin-right: 0; padding-right: 0; border-right: 0; }
.presentation-authors small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; font-weight: 500; line-height: 1.5; }
.presentation-abstract { grid-column: 1; background: transparent; border: 0; border-radius: 0; }
.presentation-abstract summary { display: inline-flex; justify-content: flex-start; gap: 16px; align-items: center; padding: 7px 10px; color: var(--navy-800); background: #f0f6fa; border-radius: 4px; font-size: 10px; font-weight: 800; list-style: none; cursor: pointer; }
.presentation-abstract summary::-webkit-details-marker { display: none; }
.presentation-abstract summary::after { color: var(--blue-600); content: "+"; font-size: 16px; line-height: 1; }
.presentation-abstract[open] summary { border: 0; border-radius: 4px; }
.presentation-abstract[open] summary::after { content: "−"; }
.presentation-abstract > div { margin-top: 8px; padding: 14px 16px 16px; background: #f8fafc; border-top: 1px solid #d5e0e8; border-bottom: 1px solid #d5e0e8; }
.presentation-abstract p { margin: 0; color: #4e6276; font-size: 12px; line-height: 1.9; }
.presentation-english-authors { margin-top: 12px !important; color: #718398 !important; font-size: 9px !important; }
.presentation-keywords { display: flex; flex-wrap: wrap; gap: 5px; margin: 13px 0 0; padding: 0; list-style: none; }
.presentation-keywords li { padding: 3px 7px; color: #1767a9; background: #eaf5fc; border-radius: 4px; font-size: 9px; font-weight: 750; }
.presentation-entry-labels { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.presentation-status { display: inline-flex; align-items: center; min-height: 21px; padding: 3px 8px; border: 1px solid transparent; border-radius: 4px; font-size: 9px; font-weight: 850; line-height: 1; }
.presentation-status-scheduled { color: #9a5a09; background: #fff5de; border-color: #f1d49c; }
.presentation-status-presented { color: #1767a9; background: #e8f4fc; border-color: #c5deef; }
.presentation-status-published { color: #31676a; background: #eaf6f3; border-color: #c1ded8; }
.presentation-status-awarded { color: #8a4e06; background: #fff0cf; border-color: #e7c276; }
.presentation-entry-links { display: flex; grid-column: 1; flex-wrap: wrap; gap: 7px; }
.presentation-entry-links a { display: inline-flex; gap: 8px; align-items: center; min-height: 32px; padding: 6px 9px; color: var(--navy-800); background: #f6fafd; border: 1px solid #cfdfea; border-radius: 5px; font-size: 10px; font-weight: 800; }
.presentation-entry-links a > i { color: var(--blue-600); font-size: 13px; font-style: normal; }
.presentation-entry-links .link-destination { margin-left: 1px; }

.presentation-index-section { padding-top: clamp(28px, 4vw, 48px); overflow: visible; }
.presentation-index-heading { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; padding: 17px 20px; background: #edf5fa; border-bottom: 3px solid var(--navy-800); }
.presentation-index-heading h2 { margin: 0; color: var(--navy-950); font-size: 25px; }
.presentation-index-heading p { margin: 0; color: var(--muted); font-size: 10px; font-weight: 750; }
.presentation-upcoming-list { overflow: hidden; margin-bottom: 48px; background: #fff; border: 1px solid #bfd2df; border-radius: 9px; }
.presentation-upcoming-row { display: grid; grid-template-columns: 125px minmax(0, 1fr) 26px; gap: 20px; align-items: center; padding: 19px 20px; color: inherit; border-bottom: 1px solid var(--line); transition: background .18s ease; }
.presentation-upcoming-row:last-child { border-bottom: 0; }
.presentation-upcoming-row:hover, .presentation-upcoming-row:focus-visible { background: #f6fbfe; }
.presentation-upcoming-row time { color: var(--blue-600); font-size: 11px; font-weight: 850; }
.presentation-upcoming-row > span { display: grid; gap: 3px; min-width: 0; }
.presentation-upcoming-row small { color: #9a5a09; font-size: 9px; font-weight: 850; }
.presentation-upcoming-row strong { color: var(--navy-900); font-size: 15px; line-height: 1.55; }
.presentation-upcoming-row em { color: var(--muted); font-size: 10px; font-style: normal; }
.presentation-upcoming-row > i, .presentation-year-row > i { color: var(--blue-600); font-size: 18px; font-style: normal; }
.presentation-year-list { overflow: hidden; margin-bottom: 12px; background: #fff; border: 1px solid #bfd2df; border-radius: 9px; }
.presentation-year-row { display: grid; grid-template-columns: 124px minmax(0, 1fr) 26px; gap: 22px; align-items: center; padding: 24px 20px; color: inherit; border-bottom: 1px solid var(--line); transition: background .18s ease; }
.presentation-year-row:last-child { border-bottom: 0; }
.presentation-year-row:hover, .presentation-year-row:focus-visible { background: #f6fbfe; }
.presentation-year-number { color: var(--navy-900); font-size: 27px; font-weight: 850; line-height: 1; }
.presentation-year-number small { margin-left: 4px; color: #6d8194; font-size: 9px; }
.presentation-year-copy { display: grid; gap: 4px; min-width: 0; }
.presentation-year-copy strong { color: var(--navy-900); font-size: 15px; }
.presentation-year-copy em { color: var(--muted); font-size: 10px; font-style: normal; line-height: 1.7; }
.presentation-year-period { display: block; margin: 0; padding: 0; color: #526e84; background: transparent; border-radius: 0; font-size: 9px; font-weight: 800; }
.presentation-year-nav { display: flex; gap: 0; }
.presentation-year-nav-sticky { position: sticky; z-index: 24; top: 10px; width: 100%; margin: 0 0 42px; padding: 6px; background: rgba(244, 249, 252, .96); border: 1px solid #c2d5e2; border-radius: 8px; box-shadow: 0 7px 18px rgba(5, 39, 71, .08); backdrop-filter: blur(10px); }
.presentation-year-nav a { display: flex; flex: 1 1 0; min-height: 38px; align-items: center; justify-content: center; padding: 7px 14px; color: #526b81; border-right: 1px solid #c8d9e4; font-size: 11px; font-weight: 850; transition: color .18s ease, background .18s ease; }
.presentation-year-nav a:last-child { border-right: 0; }
.presentation-year-nav a:hover,
.presentation-year-nav a:focus-visible { color: var(--navy-900); background: #fff; }
.presentation-year-nav a[aria-current] { color: #fff; background: var(--navy-800); border-color: var(--navy-800); border-radius: 5px; box-shadow: inset 0 -3px 0 #8fd2ff; }
.presentation-all-years { display: grid; gap: clamp(46px, 6vw, 70px); }
.presentation-year-block { padding: clamp(20px, 2.5vw, 30px); scroll-margin-top: 78px; background: #f5f8fa; border: 1px solid #d0dee7; border-radius: 10px; }
.presentation-year-heading { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 24px; align-items: center; margin-bottom: 22px; padding: 0 0 16px; border-top: 0; border-bottom: 3px solid var(--navy-800); }
.presentation-year-heading h2 { display: flex; align-items: baseline; gap: 5px; margin: 0; color: var(--navy-950); line-height: 1; }
.presentation-year-heading h2 strong { font-size: 32px; letter-spacing: -.035em; }
.presentation-year-heading h2 span { color: #61788c; font-size: 10px; font-weight: 800; }
.presentation-year-heading > div { min-width: 0; }
.presentation-year-note { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }

@media (max-width: 1180px) {
  .recruitment-roadmap-board { padding: 12px; }
  .recruitment-roadmap-years,
  .recruitment-roadmap-months { display: none; }
  .recruitment-roadmap-timeline {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 2px 0 2px 28px;
    background: none;
  }
  .recruitment-roadmap-timeline::before {
    display: block;
    top: 8px;
    right: auto;
    bottom: 8px;
    left: 8px;
    width: 2px;
    height: auto;
    background: #c3d9e6;
  }
  .recruitment-roadmap-milestone {
    display: grid;
    grid-template-columns: 108px minmax(150px, .5fr) minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 0;
    padding: 12px 14px;
    box-shadow: 0 5px 13px rgba(10, 52, 84, .06);
  }
  .recruitment-roadmap-milestone::after {
    display: block;
    top: 16px;
    right: auto;
    bottom: auto;
    left: -26px;
    width: 8px;
    height: 8px;
    border-width: 2px;
    transform: none;
  }
  .recruitment-roadmap-milestone > span,
  .recruitment-roadmap-active article > span {
    justify-self: start;
    padding: 3px 7px;
    background: #eaf5fb;
    border-radius: 99px;
    line-height: 1.3;
  }
  .recruitment-roadmap-milestone h3 { margin: 0; }
  .recruitment-roadmap-active { display: grid; gap: 7px; }
  .recruitment-roadmap-active article {
    position: relative;
    grid-template-columns: 108px minmax(0, 1fr);
    box-shadow: 0 5px 13px rgba(10, 52, 84, .05);
  }
  .recruitment-roadmap-active article::before {
    content: "";
    position: absolute;
    top: 15px;
    left: -26px;
    width: 8px;
    height: 8px;
    background: #fff;
    border: 2px solid #278695;
    border-radius: 50%;
  }
  .recruitment-roadmap-active .recruitment-roadmap-conference { margin-left: 0; }
  .recruitment-roadmap-active .recruitment-roadmap-conference::before { border-color: #b98426; }
  .recruitment-roadmap-conference > span { background: #fff1cf; }
  .recruitment-course-choice { grid-template-columns: 1fr; gap: 12px; }
  .recruitment-course-heading { display: flex; gap: 12px; align-items: baseline; }
  .recruitment-course-heading h3 { margin: 0; }
}

@media (min-width: 761px) and (max-width: 1180px) {
  .subpage-hero { padding: 28px clamp(24px, 4vw, 44px); }
  .subpage-hero h1 { font-size: clamp(28px, 3.8vw, 36px); }
  .subpage-lead { font-size: 14px; }
  .subpage-section { padding: 58px clamp(24px, 4vw, 44px); }
  .subpage-section-heading { grid-template-columns: 1fr; gap: 16px; }
  .theme-hero-layout { grid-template-columns: 1fr; gap: 0; }
  .theme-symbol { display: none; }
  .theme-hero-photo { margin-top: 22px; }
  .theme-hero-photo img { height: 260px; }
  .theme-hero-photo-contain img { height: 170px; }
  .theme-photo-story-heading { grid-template-columns: 1fr; gap: 8px; }
  .theme-related-project > a { grid-template-columns: 150px minmax(0, 1fr); min-height: 136px; }
  .theme-related-project-copy { padding: 16px 19px; }
  .theme-related-project-action { grid-column: 1 / -1; min-width: 0; justify-content: flex-end; padding: 9px 16px; border-top: 1px solid #c9dfed; border-left: 0; }
  .theme-teaching-approach-heading { grid-template-columns: 1fr; gap: 10px; }
  .subpage-content-grid { grid-template-columns: 1fr; }
  .detail-aside { margin-top: 0; }
  .member-card-grid { grid-template-columns: minmax(0, 1fr); }
  .resource-group { grid-template-columns: 1fr; gap: 20px; }
  .teacher-intro { grid-template-columns: 1fr; }
  .practice-steps { grid-template-columns: 1fr; }
  .practice-step { min-height: 0; }
  .practice-step h3 { margin-top: 14px; }
  .course-directory { grid-template-columns: 1fr; }
  .course-name-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-detail-hero-layout { grid-template-columns: 1fr; gap: 20px; }
  .course-detail-hero-photo { max-width: 620px; }
  .lab-life-guide { grid-template-columns: 1fr; gap: 24px; }
  .lab-life-guide-heading h2 br { display: none; }
  .recruitment-project-steps .practice-step { grid-template-columns: 110px minmax(0, 1fr); gap: 6px 18px; }
  .recruitment-project-steps .practice-step span { grid-row: 1 / span 2; }
  .recruitment-project-steps .practice-step h3,
  .recruitment-project-steps .practice-step p { grid-column: 2; }
  .recruitment-page-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recruitment-hero { min-height: 540px; padding-bottom: 30px; }
  .recruitment-page-nav a:nth-child(2) { border-right: 0; }
  .recruitment-page-nav a:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .recruitment-topic-item a { grid-template-columns: 40px minmax(160px, .42fr) minmax(0, 1fr); gap: 16px; }
  .recruitment-common-card { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .recruitment-course-card { grid-template-columns: 88px minmax(0, 1fr); }
  .recruitment-fit-grid { grid-template-columns: 1fr; }
  .recruitment-offtime { grid-template-columns: 1fr; gap: 22px; }
  .recruitment-commitment { margin: 14px 0 0; }
  .recruitment-commitment::before { top: -19px; left: 38px; border-width: 0 13px 19px; border-color: transparent transparent #b8d9ed; }
  .recruitment-commitment::after { top: -17px; left: 39px; border-width: 0 12px 18px; border-color: transparent transparent #edf7fd; }
  .presentation-event-header { grid-template-columns: 1fr; gap: 14px; }
  .presentation-event-facts { grid-column: 1; grid-row: auto; }
  .presentation-event-link { grid-column: 1; }
  .presentation-program { grid-column: 1; }
  .presentation-entry { grid-template-columns: 1fr; gap: 14px; }
  .presentation-entry-multiple { grid-template-columns: 54px minmax(0, 1fr); column-gap: 15px; }
  .presentation-abstract { grid-column: 1; }
  .presentation-entry-links { grid-column: 1; }
  .presentation-year-row { grid-template-columns: 104px minmax(0, 1fr) 24px; gap: 16px; }
}

@media (max-width: 760px) {
  .subpage-hero { padding: 20px 20px 28px; background-size: 46px 46px; }
  .breadcrumbs { margin-bottom: 12px; }
  .subpage-hero h1 { font-size: 26px; }
  .achievement-detail-hero h1 { font-size: 24px; }
  .subpage-lead { margin-top: 9px; font-size: 13px; line-height: 1.75; }
  .subpage-hero-actions { display: grid; }
  .subpage-hero-actions a { justify-content: space-between; }
  .recruitment-hero .subpage-hero-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recruitment-hero .subpage-hero-actions a { gap: 6px; padding-inline: 10px; white-space: nowrap; }
  .subpage-section { padding: 44px 20px; }
  .subpage-section-heading { grid-template-columns: 1fr; gap: 10px; margin-bottom: 24px; padding-bottom: 14px; }
  .subpage-section-heading h2 { font-size: 27px; }
  .theme-hero-layout { grid-template-columns: 1fr; gap: 0; }
  .theme-symbol { display: none; }
  .theme-hero-photo { margin-top: 18px; border-radius: 8px; }
  .theme-hero-photo img { height: 190px; }
  .theme-hero-photo-contain img { height: 125px; }
  .theme-photo-story { margin-top: 36px; padding-top: 26px; }
  .theme-photo-story-heading { grid-template-columns: 1fr; gap: 8px; }
  .theme-photo-gallery { grid-template-columns: 1fr; gap: 10px; }
  .theme-photo-gallery figure:first-child { grid-column: auto; }
  .theme-related-project > a { grid-template-columns: 140px minmax(0, 1fr); min-height: 132px; }
  .theme-related-project-copy { padding: 16px 18px; }
  .theme-related-project-action { grid-column: 1 / -1; min-width: 0; justify-content: flex-end; padding: 10px 16px; border-top: 1px solid #c9dfed; border-left: 0; }
  .theme-teaching-approach { margin-top: 36px; padding-top: 26px; }
  .theme-teaching-approach-heading { grid-template-columns: 1fr; gap: 10px; margin-bottom: 18px; }
  .theme-teaching-media-grid { grid-template-columns: 1fr; }
  .theme-teaching-media-copy { padding: 15px; }
  .subpage-content-grid { grid-template-columns: 1fr; }
  .text-section { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 26px 0; }
  .text-section h2 { font-size: 23px; }
  .text-section p { font-size: 15px; }
  .subpage-bottom-nav { display: grid; }
  .subpage-bottom-nav a:last-child { text-align: right; }
  .list-section-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .list-section-heading h2 { font-size: 22px; }
  .member-network-note { grid-template-columns: auto minmax(0, 1fr); gap: 11px; margin: -6px 0 30px; padding: 12px 13px; }
  .member-network-copy { display: grid; gap: 2px; }
  .member-group + .member-group { margin-top: 38px; }
  .archive-year + .archive-year { margin-top: 64px; }
  .member-group-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding-bottom: 9px; }
  .member-group-heading h2 { font-size: 22px; }
  .member-card-grid { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .member-card { grid-template-columns: 76px minmax(0, 1fr); gap: 13px; padding: 13px; }
  .member-media { width: 76px; }
  .member-head h3 { font-size: 17px; }
  .editorial-row { grid-template-columns: 1fr; gap: 15px; padding: 28px 44px 28px 0; }
  .row-meta { display: flex; align-items: center; gap: 10px; }
  .row-action { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
  .row-destination { position: static; justify-self: start; transform: none; }
  .resource-group { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
  .subpage-work-grid { grid-template-columns: 1fr; }
  .subpage-work-item a { min-height: 175px; }
  .open-campus-page .subpage-work-item a {
    grid-template-columns: 32px minmax(0, 1fr) 20px;
    min-height: 92px;
    padding: 14px 15px;
    column-gap: 10px;
  }
  .open-campus-page .subpage-work-item h2 { font-size: 16px; }
  .schedule-section { padding-top: 24px; padding-bottom: 46px; }
  .schedule-heading { align-items: flex-start; }
  .schedule-heading p { font-size: 12px; line-height: 1.65; }
  .schedule-card-current { grid-template-columns: 1fr; }
  .schedule-card-current img { border-right: 0; border-bottom: 1px solid var(--line); }
  .schedule-card-copy { padding: 14px; }
  .schedule-card-copy .link-destination { margin-top: 12px; }
  .schedule-archive { margin-top: 30px; }
  .schedule-grid { grid-template-columns: 1fr; gap: 9px; }
  .schedule-grid .schedule-card { display: grid; grid-template-columns: 42% minmax(0, 1fr); }
  .schedule-grid .schedule-card img { height: 100%; border-right: 1px solid var(--line); object-fit: cover; }
  .schedule-grid .schedule-card-copy { min-height: 0; }
  .teacher-intro { grid-template-columns: 1fr; gap: 34px; }
  .teacher-intro h2 { font-size: 28px; }
  .teacher-training-photo img { height: 230px; }
  .practice-steps { grid-template-columns: 1fr; }
  .practice-step { min-height: 0; }
  .practice-step h3 { margin-top: 13px; }
  .standard-section-lead { margin-top: -3px; font-size: 13px; }
  .standard-link-grid { grid-template-columns: 1fr; }
  .standard-link-card { min-height: 92px; padding: 15px 16px; }
  .course-directory { grid-template-columns: 1fr; }
  .course-name-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-directory-item { grid-template-columns: 112px minmax(0, 1fr) 22px; }
  .course-detail-hero-layout { grid-template-columns: 1fr; gap: 18px; }
  .course-detail-hero-photo { max-width: 620px; }
  .course-detail-hero-photo img { height: 180px; }
  .lab-life-guide { grid-template-columns: 1fr; gap: 24px; }
  .lab-life-guide-heading h2 br { display: none; }
  .lab-life-guide-list > div { grid-template-columns: 108px minmax(0, 1fr); gap: 15px; }
  .lab-life-entry { grid-template-columns: 1fr; gap: 17px; padding: 22px 0; }
  .lab-life-entry-media, .lab-life-entry-media img { min-height: 0; height: 210px; }
  .lab-life-entry h2 { font-size: 21px; }
  .lab-life-policy-grid { grid-template-columns: 1fr; }
  .recruitment-project-steps .practice-step { grid-template-columns: 82px minmax(0, 1fr); gap: 6px 12px; padding: 18px 0; }
  .recruitment-project-steps .practice-step span { grid-row: 1 / span 2; }
  .recruitment-project-steps .practice-step h3,
  .recruitment-project-steps .practice-step p { grid-column: 2; }
  .recruitment-project-steps .practice-step h3 { margin: 0; font-size: 17px; }
  .recruitment-project-steps .practice-step p { font-size: 12px; }
  .subpage-callout { display: grid; padding: 30px 24px; }
  .subpage-callout a { text-align: center; }
  .recruitment-page-nav-wrap { padding: 12px 14px; }
  .recruitment-hero { min-height: 600px; padding: 30px 20px 18px; }
  .recruitment-hero .subpage-hero-inner { padding-bottom: 76px; }
  .recruitment-video-shade { background: linear-gradient(0deg, rgba(3, 17, 35, .92) 0%, rgba(4, 24, 47, .72) 72%, rgba(4, 27, 52, .42) 100%); }
  .recruitment-video-controls { top: 80px; gap: 6px; margin: -50px 14px 14px; }
  .recruitment-video-controls a,
  .recruitment-video-controls button { min-height: 36px; padding: 6px 9px; font-size: 9px; }
  .recruitment-page-nav a { min-height: 56px; padding: 10px; }
  .recruitment-page-nav strong { font-size: 11px; }
  .recruitment-page .subpage-section { padding-block: 50px; }
  .recruitment-page .subpage-section-heading { gap: 10px; margin-bottom: 24px; padding-bottom: 16px; }
  .recruitment-page .subpage-section-heading h2 { font-size: 27px; }
  .recruitment-topic-item a { grid-template-columns: 34px minmax(0, 1fr); gap: 7px 12px; padding: 18px 8px 18px 0; }
  .recruitment-topic-heading { grid-column: 2; }
  .recruitment-topic-heading h3 { font-size: 18px; }
  .recruitment-topic-detail { grid-column: 2; }
  .recruitment-topic-detail p { font-size: 12px; }
  .recruitment-theme-note { display: block; padding: 18px 16px; }
  .recruitment-theme-note strong { display: block; font-size: 15px; }
  .recruitment-theme-note span { display: block; margin-top: 7px; font-size: 11px; }
  .recruitment-common-card { grid-template-columns: 1fr; gap: 12px; padding: 30px 0; }
  .recruitment-common-card h3 { font-size: 22px; }
  .recruitment-roadmap-board { margin-inline: -4px; padding: 9px; border-radius: 9px; }
  .recruitment-roadmap-timeline { gap: 7px; }
  .recruitment-roadmap-milestone {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 3px 10px;
    padding: 11px 12px;
  }
  .recruitment-roadmap-milestone > span { grid-row: 1 / span 2; align-self: start; padding-top: 3px; }
  .recruitment-roadmap-milestone h3,
  .recruitment-roadmap-milestone p { grid-column: 2; }
  .recruitment-roadmap-milestone h3 { font-size: 14px; }
  .recruitment-roadmap-milestone p { font-size: 10px; }
  .recruitment-roadmap-active article { grid-template-columns: 82px minmax(0, 1fr); gap: 10px; padding: 10px 12px; }
  .recruitment-roadmap-active h3 { display: block; margin: 0 0 2px; }
  .recruitment-roadmap-active p { display: block; }
  .recruitment-course-choice { margin-top: 12px; padding: 14px; }
  .recruitment-course-heading { display: block; }
  .recruitment-course-heading h3 { margin-top: 2px; font-size: 18px; }
  .recruitment-course-grid { grid-template-columns: 1fr; gap: 7px; }
  .recruitment-course-card { grid-template-columns: 84px minmax(0, 1fr); gap: 10px; padding: 11px 12px; }
  .recruitment-course-card strong { font-size: 15px; }
  .recruitment-course-card p { font-size: 10px; line-height: 1.65; }
  .recruitment-fit-grid { grid-template-columns: 1fr; gap: 13px; }
  .recruitment-fit-card, .recruitment-commitment { padding: 28px 24px; }
  .recruitment-commitment { margin: 14px 0 0; }
  .recruitment-commitment-visual { right: -14px; bottom: -4px; width: min(58%, 200px); opacity: .24; }
  .recruitment-commitment h3,
  .recruitment-commitment p { max-width: 100%; }
  .recruitment-commitment::before { top: -19px; left: 30px; border-width: 0 13px 19px; border-color: transparent transparent #b8d9ed; }
  .recruitment-commitment::after { top: -17px; left: 31px; border-width: 0 12px 18px; border-color: transparent transparent #edf7fd; }
  .recruitment-commitment h3 { font-size: 22px; }
  .recruitment-offtime { display: block; padding: 24px 20px; }
  .recruitment-offtime-intro h3 { font-size: 20px; }
  .recruitment-offtime-details { margin-top: 20px; }
  .archive-section, .lecture-list-section { padding-top: 22px; padding-bottom: 38px; }
  .lecture-contact-section { padding-top: 30px; padding-bottom: 30px; }
  .archive-year + .archive-year { margin-top: 24px; }
  .record-crosslink { grid-template-columns: 1fr; gap: 13px; margin-bottom: 27px; padding: 15px 16px; }
  .record-crosslink h2 { font-size: 17px; }
  .record-crosslink > a { justify-content: space-between; justify-self: stretch; }
  .archive-year .list-section-heading { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 7px; }
  .archive-year .list-section-heading h2 { font-size: 19px; }
  .lecture-list-section .subpage-section-heading { gap: 6px; margin-bottom: 7px; padding-bottom: 9px; }
  .lecture-list-section .subpage-section-heading h2 { font-size: 22px; }
  .archive-year .editorial-row,
  .lecture-list-section .editorial-row { grid-template-columns: 1fr; gap: 5px; padding: 11px 0; }
  .archive-year .row-meta,
  .lecture-list-section .row-meta { gap: 7px; }
  .archive-year .row-copy h3,
  .lecture-list-section .row-copy h3 { margin: 0 0 2px; font-size: 15px; }
  .archive-year .row-copy p,
  .lecture-list-section .row-copy p { font-size: 11px; line-height: 1.55; }
  .archive-year .row-action,
  .lecture-list-section .row-action { width: 28px; }
  .lecture-year-nav-sticky { top: 78px; margin-bottom: 24px; padding: 4px; }
  .lecture-year-nav-sticky a { min-height: 34px; padding: 5px 7px; font-size: 10px; }
  .lecture-year-groups { gap: 34px; }
  .lecture-year { scroll-margin-top: 130px; }
  .lecture-year .list-section-heading { padding-bottom: 7px; }
  .lecture-year .list-section-heading h2 { font-size: 20px; }
  .lecture-entry-links { gap: 5px; margin-top: 7px; }
  .lecture-entry-link { min-height: 26px; padding: 3px 6px; font-size: 9px; }
  .presentation-section { padding-top: 32px; padding-bottom: 48px; }
  .presentation-index-section { padding-top: 32px; padding-bottom: 48px; }
  .presentation-year-nav-sticky { top: 78px; margin-bottom: 30px; padding: 5px; }
  .presentation-year-nav a { min-height: 35px; padding: 6px 8px; font-size: 10px; }
  .presentation-all-years { gap: 36px; }
  .presentation-year-block { padding: 15px 14px 18px; scroll-margin-top: 132px; border-radius: 8px; }
  .presentation-year-heading { grid-template-columns: 104px minmax(0, 1fr); gap: 12px; margin-bottom: 15px; padding-block: 0 12px; }
  .presentation-year-heading h2 { margin: 0; }
  .presentation-year-heading h2 strong { font-size: 24px; }
  .presentation-year-note { margin-top: 5px; font-size: 10px; }
  .presentation-event { scroll-margin-top: 132px; }
  .presentation-event + .presentation-event { margin-top: 20px; }
  .presentation-event-header { padding: 15px 14px 13px; }
  .presentation-list { gap: 0; padding: 0 14px; }
  .presentation-event-header h2 { font-size: 20px; }
  .presentation-event-facts > div { grid-template-columns: 52px minmax(0, 1fr); gap: 10px; }
  .presentation-entry { gap: 10px; padding: 18px 0; scroll-margin-top: 132px; }
  .presentation-entry-multiple { grid-template-columns: 48px minmax(0, 1fr); column-gap: 11px; }
  .presentation-entry-marker { padding: 0; }
  .presentation-entry-marker span { width: 44px; font-size: 8px; white-space: nowrap; }
  .presentation-entry-multiple > .presentation-authors,
  .presentation-entry-multiple > .presentation-abstract,
  .presentation-entry-multiple > .presentation-entry-links { grid-column: 1 / -1; }
  .presentation-entry h3 { font-size: 17px; line-height: 1.55; }
  .presentation-authors { margin-top: 0; }
  .presentation-authors > span { flex: 1 1 100%; max-width: 100%; margin: 3px 0; padding: 0; border-right: 0; }
  .presentation-abstract > div { padding: 13px 14px 15px; }
  .presentation-abstract p { font-size: 11px; line-height: 1.85; }
  .presentation-upcoming-list { margin-bottom: 48px; }
  .presentation-index-heading { padding: 14px 16px; }
  .presentation-upcoming-row { grid-template-columns: 88px minmax(0, 1fr) 20px; gap: 12px; padding: 15px 16px; }
  .presentation-upcoming-row strong { font-size: 13px; }
  .presentation-upcoming-row em { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
  .presentation-year-row { grid-template-columns: 82px minmax(0, 1fr) 20px; gap: 12px; padding: 19px 16px; }
  .presentation-year-number { font-size: 22px; }
}

@media (max-width: 480px) {
  .recruitment-video-controls { top: 74px; }
  .presentation-year-nav-sticky { top: 72px; }
}

@media (max-width: 480px) {
  .subpage-hero { padding-top: 18px; }
  .subpage-hero h1 { font-size: 24px; }
  .achievement-detail-hero h1 { font-size: 22px; }
  .list-section-heading { grid-template-columns: minmax(0, 1fr) auto; }
}

/* Image lightbox */
body.image-lightbox-open { overflow: hidden; }
.image-lightbox-trigger { cursor: zoom-in; }
.image-lightbox-trigger img { transition: filter .18s ease, transform .18s ease; }
.image-lightbox-trigger:hover img { filter: brightness(.92); }
.image-lightbox-trigger:focus-visible { outline: 3px solid #1689d8; outline-offset: 4px; }
.image-lightbox {
  width: fit-content;
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: visible;
  color: #fff;
  background: transparent;
  border: 0;
}
.image-lightbox::backdrop { background: rgba(3, 13, 25, .88); backdrop-filter: blur(3px); }
.image-lightbox[open] { animation: image-lightbox-in .18s ease both; }
.image-lightbox-frame {
  position: relative;
  display: grid;
  gap: 9px;
  width: fit-content;
  max-width: 96vw;
  max-height: 94dvh;
  margin: 0;
  padding: 48px 14px 12px;
  background: #0b1929;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(0,0,0,.42);
}
.image-lightbox-image {
  display: block;
  width: auto;
  max-width: calc(96vw - 28px);
  height: auto;
  max-height: calc(94dvh - 98px);
  object-fit: contain;
  border-radius: 5px;
  background: #07111d;
}
.image-lightbox-caption { max-width: min(880px, calc(96vw - 28px)); padding: 1px 3px 2px; color: #e7eef5; font-size: 12px; line-height: 1.65; }
.image-lightbox-close {
  position: absolute;
  top: 9px;
  right: 10px;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  padding: 0;
  color: #fff;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 7px;
  font: inherit;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.image-lightbox-close:hover, .image-lightbox-close:focus-visible { background: #fff; color: #0b1929; }
@keyframes image-lightbox-in {
  from { opacity: 0; transform: translateY(8px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 600px) {
  .image-lightbox-frame { max-width: 100vw; max-height: 100dvh; padding: 46px 8px 10px; border-radius: 0; }
  .image-lightbox-image { max-width: calc(100vw - 16px); max-height: calc(100dvh - 94px); }
  .image-lightbox-caption { max-width: calc(100vw - 16px); padding-inline: 4px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .image-lightbox[open] { animation: none; }
  .image-lightbox-trigger img { transition: none; }
}

@media (max-width: 1180px) {
  .project-case-hero-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .project-case-hero-photo { max-width: 760px; }
  .project-case-video { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); gap: 30px; }
  .project-case-process li { grid-template-columns: 82px minmax(190px, .8fr) minmax(0, 1.2fr); gap: 16px; }
}

@media (max-width: 760px) {
  .project-case-hero { padding-bottom: 28px; }
  .project-case-hero-copy h1 br { display: none; }
  .project-case-meta { grid-template-columns: minmax(0, 1fr); margin-top: 18px; }
  .project-case-meta div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #d7e4ed; }
  .project-case-meta dd { margin: 0; }
  .project-case-hero-photo { border-radius: 8px; }
  .project-case-content { padding-top: 38px; }
  .project-case-introduction, .project-case-section-heading { grid-template-columns: minmax(0, 1fr); gap: 11px; }
  .project-case-introduction h2 br { display: none; }
  .project-case-introduction p { font-size: 13px; line-height: 1.85; }
  .project-case-video { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .project-case-video-frame { grid-row: 1; }
  .project-case-video-copy { grid-row: 2; }
  .project-case-process li { grid-template-columns: 64px minmax(0, 1fr); gap: 5px 12px; align-items: start; padding: 17px 0; }
  .project-case-process li span { grid-row: 1 / span 2; padding-top: 4px; }
  .project-case-process li strong, .project-case-process li p { grid-column: 2; }
  .project-case-process li strong { font-size: 15px; }
  .project-case-link-list { grid-template-columns: minmax(0, 1fr); }
  .project-case-link-list a { min-height: 0; padding: 16px; }
  .project-case-link-list a + a { border-top: 1px solid var(--line); border-left: 0; }
  .project-case-research-link { padding: 15px 16px; }
  .project-case-research-link strong { font-size: 16px; }
  .project-case-research-link > span > span { font-size: 10px; }
}

@media (max-width: 1180px) {
  .theme-featured-project-media { grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr); }
  .open-campus-hub-hero-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .open-campus-hub-hero-photo img { height: 230px; }
  .open-campus-exhibition { grid-template-columns: minmax(300px, .94fr) minmax(0, 1.06fr); }
  .open-campus-feature { grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr); }
  .open-campus-guide-list { grid-template-columns: minmax(0, 1fr); }
  .open-campus-guide-list a { min-height: 0; }
}

@media (max-width: 760px) {
  .theme-featured-project-heading { grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .theme-featured-project-heading > span,
  .theme-featured-project-heading h2,
  .theme-featured-project-heading > p,
  .theme-featured-project-heading .theme-featured-project-credit,
  .theme-featured-project-heading .tag-list { grid-column: 1; grid-row: auto; }
  .theme-featured-project-heading > p { margin-top: 6px; font-size: 12px; }
  .theme-featured-project-media { grid-template-columns: minmax(0, 1fr); }
  .theme-featured-project-photo { grid-template-columns: 125px minmax(0, 1fr); grid-template-rows: auto; align-items: center; }
  .theme-featured-project-photo a { height: 100%; }
  .theme-featured-project-photo img { aspect-ratio: 16 / 10; }
  .theme-featured-project-photo figcaption { display: block; }
  .theme-featured-project-photo figcaption span { display: block; margin-top: 5px; }
  .theme-related-project { margin-top: 12px; }
  .theme-related-project > a { grid-template-columns: 108px minmax(0, 1fr); min-height: 118px; }
  .theme-related-project-copy { padding: 13px 14px; }
  .theme-related-project-copy strong { margin-top: 4px; font-size: 15px; }
  .theme-related-project-copy > span { display: -webkit-box; overflow: hidden; margin-top: 4px; font-size: 10px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .theme-related-project-action { padding: 8px 13px; font-size: 10px; }
  .open-campus-hub-hero { padding-bottom: 24px; }
  .open-campus-hub-hero-photo img { height: 180px; }
  .open-campus-exhibition { grid-template-columns: minmax(0, 1fr); }
  .open-campus-exhibition-copy { padding: 20px 18px 22px; }
  .open-campus-exhibition-copy :is(h2, h3) { font-size: 21px; }
  .open-campus-exhibition-copy > p { font-size: 12px; }
  .open-campus-exhibition-copy figure { grid-template-columns: 115px minmax(0, 1fr); }
  .open-campus-feature { grid-template-columns: minmax(0, 1fr); }
  .open-campus-feature figure, .open-campus-feature figure img { min-height: 0; }
  .open-campus-feature figure img { aspect-ratio: 16 / 9; }
  .open-campus-feature-copy { padding: 20px 18px 22px; }
  .open-campus-feature-copy > strong { font-size: 21px; }
  .open-campus-feature-copy > span:not(.open-campus-feature-meta) { font-size: 12px; line-height: 1.75; }
  .open-campus-feature-copy > small { margin-top: 15px; }
  .open-campus-guide-list a { grid-template-columns: minmax(0, 1fr) 22px; gap: 3px 10px; padding: 17px 16px; }
  .open-campus-guide-list a > strong { margin-top: 2px; font-size: 16px; }
  .open-campus-guide-list a > small { font-size: 10px; }
  .open-campus-record { position: relative; grid-template-columns: minmax(0, 1fr); gap: 8px; margin-inline: 0; padding: 16px 34px 16px 0; }
  .open-campus-record-meta { display: flex; gap: 8px; align-items: center; }
  .open-campus-record strong { font-size: 15px; }
  .open-campus-record small { font-size: 10px; }
  .open-campus-record > i { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
  .open-campus-record:hover > i, .open-campus-record:focus-visible > i { transform: translate(3px, -50%); }
  .open-campus-official-section .subpage-callout h2 { font-size: 22px; }
}
/* Presentation detail pages: one research story with clearly separated resources */
.presentation-detail-hero .subpage-hero-inner { max-width: 1120px; }
.presentation-detail-hero h1 { max-width: 980px; font-size: clamp(30px, 4vw, 54px); line-height: 1.32; }
.presentation-detail-labels { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0 9px; }
.presentation-detail-labels span { display: inline-flex; min-height: 28px; align-items: center; padding: 4px 9px; color: #075d9e; background: #eaf6ff; border: 1px solid #b8dcf6; border-radius: 5px; font-size: 10px; font-weight: 800; }
.presentation-detail-english-title { max-width: 900px; margin: 11px 0 0; color: #526a81; font-size: 13px; line-height: 1.7; }
.presentation-detail-event-facts { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 22px 0 0; padding-top: 16px; border-top: 1px solid #d4e0e9; }
.presentation-detail-event-facts div { display: flex; gap: 9px; align-items: baseline; }
.presentation-detail-event-facts dt { color: #60758a; font-size: 10px; font-weight: 800; }
.presentation-detail-event-facts dd { margin: 0; color: #173752; font-size: 12px; font-weight: 650; }
.presentation-detail-overview { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 42px; padding: 0 0 38px; border-bottom: 1px solid #c9d7e3; }
.presentation-detail-overview h2,
.presentation-detail-sections h2,
.presentation-detail-section-heading h2 { margin: 0; color: #0b3157; font-size: 21px; line-height: 1.5; }
.presentation-detail-summary > p { margin: 14px 0 0; color: #405a71; font-size: 14px; line-height: 2; }
.presentation-detail-keywords { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 0; padding: 0; list-style: none; }
.presentation-detail-keywords li { padding: 4px 8px; color: #375c78; background: #f2f7fb; border: 1px solid #d4e2ec; border-radius: 4px; font-size: 10px; font-weight: 750; }
.presentation-detail-authors { padding: 0 0 0 25px; border-left: 1px solid #c9d7e3; }
.presentation-detail-authors ul { display: grid; gap: 0; margin: 12px 0 0; padding: 0; list-style: none; }
.presentation-detail-authors li { display: grid; grid-template-columns: minmax(92px, auto) minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 9px 0; border-top: 1px solid #e0e8ef; }
.presentation-detail-authors strong { color: #183d5d; font-size: 13px; }
.presentation-detail-authors span { color: #627589; font-size: 10px; line-height: 1.6; }
.presentation-detail-sections { margin-top: 38px; }
.presentation-detail-sections > section { display: grid; grid-template-columns: minmax(180px, .32fr) minmax(0, 1fr); gap: 32px; padding: 25px 0; border-bottom: 1px solid #d6e1ea; }
.presentation-detail-sections > section:first-child { border-top: 1px solid #d6e1ea; }
.presentation-detail-sections p { margin: 0; color: #405a71; font-size: 13px; line-height: 1.95; }
.presentation-detail-sections p + p { margin-top: 9px; }
.presentation-detail-resources { margin-top: 62px; }
.presentation-detail-section-heading { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 18px; }
.presentation-detail-section-heading p { max-width: 560px; margin: 0; color: #5b7084; font-size: 12px; line-height: 1.7; }
.presentation-detail-resource-list { border-top: 1px solid #aebfcd; }
.presentation-detail-resource { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 20px 0; border-bottom: 1px solid #cedae4; scroll-margin-top: 120px; }
.presentation-detail-resource-with-preview { grid-template-columns: minmax(220px, .42fr) minmax(0, 1fr); }
.presentation-detail-resource figure { aspect-ratio: 16 / 10; margin: 0; overflow: hidden; background: #eef4f8; border: 1px solid #c9d7e2; border-radius: 7px; }
.presentation-detail-resource figure a { display: block; width: 100%; height: 100%; }
.presentation-detail-resource figure img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .2s ease; }
.presentation-detail-resource figure a:hover img,
.presentation-detail-resource figure a:focus-visible img { transform: scale(1.018); }
.presentation-detail-resource-copy { align-self: center; }
.presentation-detail-resource-copy > span { color: #0873c4; font-size: 10px; font-weight: 850; letter-spacing: .06em; }
.presentation-detail-resource-copy h3 { margin: 7px 0 0; color: #103957; font-size: 17px; line-height: 1.55; }
.presentation-detail-resource-copy p { margin: 8px 0 0; color: #536b7f; font-size: 12px; line-height: 1.8; }
.presentation-detail-resource-copy > a { display: inline-flex; min-height: 36px; align-items: center; gap: 8px; margin-top: 13px; padding: 6px 10px; color: #0b568f; background: #f7fbfe; border: 1px solid #adc8dc; border-radius: 5px; font-size: 11px; font-weight: 800; }
.presentation-detail-resource-copy > a small { padding: 2px 5px; color: #536f84; background: #fff; border: 1px solid #d0dde7; border-radius: 3px; font-size: 8px; }
.presentation-detail-resource-copy > a i { font-size: 14px; font-style: normal; }
.presentation-detail-resource-featured { margin: 8px 0; padding: 20px; background: #eef8ff; border: 1px solid #82bbe2; border-radius: 8px; }
.presentation-detail-resource-featured + .presentation-detail-resource { border-top: 1px solid #cedae4; }
.presentation-detail-resource-featured .presentation-detail-resource-copy > span { color: #075f9e; }

@media (max-width: 920px) {
  .presentation-detail-overview { grid-template-columns: 1fr; gap: 28px; }
  .presentation-detail-authors { padding: 24px 0 0; border-top: 1px solid #c9d7e3; border-left: 0; }
}

@media (max-width: 640px) {
  .presentation-detail-hero h1 { font-size: clamp(26px, 8vw, 36px); }
  .presentation-detail-event-facts { display: grid; gap: 8px; }
  .presentation-detail-overview { padding-bottom: 28px; }
  .presentation-detail-sections > section { grid-template-columns: 1fr; gap: 9px; padding: 20px 0; }
  .presentation-detail-section-heading { display: block; }
  .presentation-detail-section-heading p { margin-top: 7px; }
  .presentation-detail-resources { margin-top: 44px; }
  .presentation-detail-resource-with-preview { grid-template-columns: 1fr; }
  .presentation-detail-resource figure { aspect-ratio: 16 / 9; }
  .presentation-detail-resource-featured { padding: 16px; }
  .presentation-detail-authors li { grid-template-columns: 90px minmax(0, 1fr); }
}
