@charset "UTF-8";
:root{--ink:#303438;--muted:#62676b;--accent:#40556a;--line:#e9eaeb;--paper:#fff;--soft:#f5f6f6}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.8 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:.25em}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:10px;background:#fff;padding:12px;z-index:5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.lab-header{background:#fff}.lab-header-inner{max-width:1240px;margin:auto;padding:32px 32px 28px;display:flex;align-items:center;gap:34px}.lab-logo{font-size:25px;font-weight:650;letter-spacing:.08em;white-space:nowrap;text-decoration:none;margin-right:auto}.lab-header nav{display:flex;gap:26px;font-size:13px;font-weight:500}.lab-header nav a{text-decoration:none;white-space:nowrap}.lab-header nav a:hover{color:#70818a}.lab-languages{display:flex;flex-direction:column;font-size:12px;line-height:1.65;text-decoration:none;white-space:nowrap}.lab-languages .ja{font-size:10px;color:var(--muted)}
.home-content{max-width:1240px;margin:auto;padding:8px 32px 72px}.primary-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 32px;border:0}.primary-entry{display:block;min-width:0;text-decoration:none;background:transparent;border:0}.entry-media{width:100%;aspect-ratio:2.25;overflow:hidden;background:#f5f5f3}.entry-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.primary-entry:hover .entry-media img{transform:scale(1.025)}.entry-caption{display:grid;grid-template-columns:1fr auto;column-gap:16px;padding:15px 0 0}.entry-caption h2{font-size:24px;font-weight:600;line-height:1.5;letter-spacing:.04em;margin:0}.entry-arrow{font-size:24px;line-height:1.5;font-weight:400;color:#6c7378}.entry-caption p{grid-column:1/-1;margin:6px 0 0;font-size:13px;color:var(--muted);line-height:1.7;word-break:normal;overflow-wrap:normal}
.international-section{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;align-items:center;margin-top:52px;padding:30px 34px;background:var(--soft)}.international{display:flex;align-items:center;justify-content:space-between;gap:20px;text-decoration:none}.international h2{font-family:inherit;font-size:20px;font-weight:600;letter-spacing:.03em;line-height:1.5;margin:0}.international p{font-size:12px;line-height:1.6;margin:4px 0 0;color:var(--muted)}.international>span{font-size:24px;color:#6c7378}.international-detail>p{font-size:13px;line-height:1.7;margin:0 0 9px}.language-names{display:flex;flex-wrap:wrap;gap:4px 18px;list-style:none;padding:0;margin:0;font-size:12px;line-height:1.8}.language-names a{display:block;padding:3px 0;color:var(--accent)}
.directory{display:grid;grid-template-columns:190px 1fr;gap:32px;margin-top:58px}.directory h2{font-family:inherit;font-size:20px;font-weight:600;line-height:1.5;margin:8px 0}.directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 30px}.directory-grid a{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:12px 0;font-size:13px;text-decoration:none;border-bottom:1px solid var(--line)}.directory-grid a>span{color:#83898e}.directory-grid a:hover{color:var(--accent)}
.lab-footer{background:#fafafa}.lab-footer-inner{max-width:1240px;margin:auto;padding:32px}.lab-footer nav{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:12px}.lab-footer p{font-size:11px;color:var(--muted);line-height:1.8;margin:20px 0 0}.lab-footer .photo-credit{font-size:10px;margin-top:6px}
/* Content hubs: open columns, lightweight separators, no boxed color panels. */
body.portal-teacher,body.hub-design{margin:0;background:#fff;color:var(--ink);font:16px/1.8 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}body.hub-design :is(h1,h2,h3),body.portal-teacher :is(h1,h2,h3){font-family:inherit;color:var(--ink);letter-spacing:.02em;line-height:1.5;text-wrap:wrap}body.hub-design h1,body.portal-teacher h1{font-size:30px;font-weight:600}.portal-teacher .site-header{display:none}.teacher-top,.hub-main{max-width:1176px;margin:0 auto;padding:26px 32px}.teacher-top h1,.hub-main h1{margin:14px 0}.teacher-top p,.hub-main>p{margin:10px 0;color:var(--muted)}.breadcrumb{font-size:12px}.hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 46px;margin:36px 0}.hub-card{padding:24px 0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent}.hub-card h2{font-size:22px;font-weight:600;margin:0 0 16px}.hub-card p{font-size:15px}.hub-card a{color:var(--accent);font-weight:500}.hub-card li{margin:12px 0}.hub-shortcuts{display:flex;flex-wrap:wrap;gap:12px 24px;list-style:none;padding:0}.hub-shortcuts a{display:block;padding:8px 0;text-decoration:underline;border:0}.portal-footer{max-width:1176px;margin:auto;padding:32px;border-top:1px solid var(--line);font-size:12px}.portal-footer nav{display:flex;flex-wrap:wrap;gap:12px 20px}.portal-footer small{display:block;margin-top:20px}.portal-teacher .browse-index,.portal-teacher .browse-index a{border-radius:0;border-color:var(--line);box-shadow:none;background:#fff}.portal-teacher .catalog{margin-top:28px}
@media(max-width:900px){.lab-header-inner{flex-wrap:wrap;gap:18px 24px;padding:24px 24px 20px}.lab-header nav{order:3;flex-basis:100%;justify-content:space-between;gap:12px}.lab-logo{font-size:23px}.home-content{padding:4px 24px 50px}.primary-entries{gap:28px 24px}.entry-media{aspect-ratio:1.65}.entry-caption h2{font-size:22px}.entry-caption p{font-size:12px}.international-section{gap:24px;padding:26px;margin-top:38px;grid-template-columns:1fr 1.35fr}.directory{grid-template-columns:1fr;gap:12px;margin-top:38px}.directory-grid{gap:0 22px}.lab-footer-inner{padding:28px 24px}}
@media(max-width:560px){.lab-header-inner{padding:22px 18px 20px;gap:20px 14px}.lab-logo{font-size:22px;letter-spacing:.04em}.lab-languages{font-size:11px}.lab-languages .ja{font-size:10px}.lab-header nav{font-size:11px;gap:7px}.home-content{padding:0 18px 40px}.primary-entries{gap:25px 16px}.entry-media{aspect-ratio:1.35}.entry-caption{gap:0 5px;padding-top:11px}.entry-caption h2{font-size:18px;letter-spacing:0;white-space:nowrap;line-height:1.5}.entry-arrow{font-size:18px;line-height:1.5}.entry-caption p{font-size:11px;line-height:1.8;margin:5px 0 0;text-wrap:pretty}.international-section{display:block;margin-top:32px;padding:22px 20px}.international h2{font-size:18px}.international p{font-size:11px}.international-detail{margin-top:16px}.international-detail>p{font-size:12px}.language-names{font-size:11px;gap:4px 16px}.directory{margin-top:32px}.directory h2{font-size:18px}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.directory-grid a{font-size:12px;line-height:1.65;padding:13px 0}.lab-footer-inner{padding:26px 18px}.lab-footer nav{font-size:11px;gap:10px 18px}.teacher-top,.hub-main{padding:24px 18px}.hub-grid{grid-template-columns:1fr;gap:20px;margin-top:28px}.hub-card{padding:20px 0}.portal-footer{padding:26px 18px}}
@media(max-width:360px){.lab-header-inner{padding-inline:16px}.lab-logo{font-size:20px}.home-content{padding-inline:16px}.primary-entries{column-gap:12px}.entry-caption h2{font-size:16px}.entry-arrow{font-size:16px}.entry-caption p{font-size:10px}.directory-grid{grid-template-columns:1fr}.lab-header nav{font-size:10px}.international-section{padding:20px 16px}}
@media(prefers-reduced-motion:reduce){.entry-media img{transition:none}.primary-entry:hover .entry-media img{transform:none}}

/* 2026-10-25: typography and navigation rebuild; no decorative image panels. */
.lab-home .lab-header-inner{padding-top:42px;padding-bottom:42px}
.lab-home .lab-header nav{display:none}
.lab-home .lab-logo{font-size:23px;font-weight:600;letter-spacing:.04em}
.lab-home .home-content{max-width:1120px;padding-top:22px}
.lab-home .primary-entries{gap:66px 100px;padding:10px 0 60px}
.entry-group{min-width:0;background:transparent;border:0}
.lab-home .entry-caption{padding:0;column-gap:20px}
.lab-home .entry-caption h2{font-size:30px;font-weight:500;line-height:1.5;letter-spacing:.02em}
.lab-home .entry-arrow{font-size:24px;color:#526a7c}
.lab-home .entry-caption p{font-size:14px;line-height:1.8;margin-top:12px;color:#636b70}
.entry-links{display:flex;flex-wrap:wrap;gap:12px 24px;list-style:none;padding:0;margin:22px 0 0;font-size:13px}
.entry-links a{display:inline-block;min-height:36px;text-decoration:none;color:#395d77;padding:6px 0}
.entry-links a:hover,.primary-entry:hover h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.lab-home .international-section{margin-top:0;padding:32px 0;background:transparent;border-top:1px solid #e9ecee;gap:60px;grid-template-columns:1fr 1.35fr}
.lab-home .international h2{font-size:22px;font-weight:500}
.lab-home .directory{margin-top:42px;grid-template-columns:190px 1fr}
.lab-home .directory-grid a{border:0}
.lab-home .lab-footer{background:#f8f9fa}
@media(max-width:900px){.lab-home .primary-entries{gap:48px 54px}.lab-home .directory{grid-template-columns:1fr}.lab-home .lab-header-inner{padding-block:30px}.lab-home .entry-caption h2{font-size:26px}.lab-home .international-section{gap:30px}}
@media(max-width:560px){.lab-home .lab-header-inner{padding:26px 20px 30px}.lab-home .lab-logo{font-size:20px}.lab-home .home-content{padding:10px 20px 40px}.lab-home .primary-entries{gap:40px 22px;padding-bottom:36px}.lab-home .entry-caption{gap:0 6px}.lab-home .entry-caption h2{font-size:19px;font-weight:500}.lab-home .entry-arrow{font-size:17px}.lab-home .entry-caption p{font-size:12px;margin-top:10px;line-height:1.9;text-wrap:wrap}.entry-links{display:block;font-size:12px;margin-top:12px}.entry-links li+li{margin-top:2px}.entry-links a{min-height:36px}.lab-home .international-section{padding:26px 0}.lab-home .international h2{font-size:19px}.lab-home .directory{margin-top:26px}.lab-home .directory-grid a{font-size:12px}.language-names a{min-height:36px}}
@media(max-width:360px){.lab-home .home-content{padding-inline:16px}.lab-home .primary-entries{column-gap:16px}.lab-home .entry-caption h2{font-size:17px}.lab-home .entry-caption p{font-size:11px}.lab-home .entry-arrow{font-size:16px}}

.lab-home .lab-header-inner,.lab-home .lab-footer-inner{max-width:1120px}

.portal-teacher .teacher-shortcuts{display:flex;flex-wrap:wrap;gap:10px 22px}.portal-teacher .teacher-shortcuts a{white-space:nowrap;width:auto;flex:none}
