/* styles.css */
:root{--paper:oklch(99.730% 0.00132 286.38);--ink:oklch(23.158% 0.00381 286.10);--muted:oklch(49.821% 0.00943 286.05);--blue:oklch(52.197% 0.17709 255.83);--line:oklch(90.205% 0.00676 286.26);--pale:oklch(97.071% 0.00265 286.35);--white:oklch(99.730% 0.00132 286.38);--action:oklch(56.292% 0.19333 256.16);--action-hover:oklch(51.903% 0.17700 255.97);--tag:oklch(96.001% 0.01545 247.99);}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','PingFang SC','Helvetica Neue','Microsoft YaHei',sans-serif;font-size:16px;line-height:1.8}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}::selection{background:oklch(88% .027 250)}p,h1,h2,h3,figure{margin:0}img{max-width:100%;display:block}button,a,summary{touch-action:manipulation}section{scroll-margin-top:105px}.section-wrap{width:min(1200px,calc(100% - 96px));margin-inline:auto}.section-space{padding-block:104px}.header{height:100px;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:20}.nav-wrap{height:100%;width:min(1360px,calc(100% - 80px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand-symbol{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--blue);color:var(--paper);font-size:31px;line-height:1;font-weight:800;position:relative;border-radius:3px}.brand-symbol span{position:absolute;font-size:15px;right:2px;top:1px;background:var(--blue)}.brand-words{display:flex;flex-direction:column}.brand-words strong{font-size:16px;font-weight:650;letter-spacing:.035em}.brand-divider{color:oklch(74% .012 260);margin:0 5px}.brand-words small{font-size:10px;letter-spacing:.09em;color:var(--muted);margin-top:2px}nav{display:flex;align-items:center;gap:28px}nav a{font-size:14px;white-space:nowrap;position:relative}nav a:not(.nav-join):after{content:'';position:absolute;bottom:-13px;left:0;right:0;height:2px;background:var(--blue);transform:scaleX(0);transition:transform .2s}nav a.active{color:var(--blue)}nav a:hover:after,nav a.active:after{transform:scaleX(1)}.nav-join{border:1px solid var(--line);padding:9px 15px;display:flex;gap:18px;align-items:center;border-radius:3px}.nav-join:hover{border-color:var(--blue);color:var(--blue)}.menu-button{display:none}.hero{padding-block:76px 70px;display:grid;grid-template-columns:1fr 1.04fr;gap:64px;align-items:center}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:700;color:var(--blue);display:flex;gap:10px;align-items:center;margin-bottom:24px}.eyebrow>span{width:18px;height:2px;background:var(--blue)}h1{font-size:clamp(44px,4.3vw,64px);font-weight:650;line-height:1.28;letter-spacing:-.045em}.blue{color:var(--blue)}.hero-description{margin-top:27px;color:var(--muted);line-height:1.95;font-size:17px}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:32px}.button{padding:13px 22px;display:inline-flex;align-items:center;justify-content:center;gap:26px;border-radius:3px;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.primary{background:var(--action);color:var(--white)}.primary:hover{background:var(--action-hover);transform:none}.text-link{font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:14px}.text-link:hover{color:var(--blue)}.hero-note{display:flex;align-items:center;gap:13px;font-size:12px;color:var(--muted);margin-top:38px}.hero-note i{width:3px;height:3px;border-radius:50%;background:oklch(76% .012 260)}.hero-figure{position:relative;padding-top:28px}.photo-label{position:absolute;top:0;left:0;font-size:10px;font-weight:700;letter-spacing:.15em;color:var(--muted)}.hero-figure img{width:100%;height:350px;object-fit:cover;object-position:center 55%;border-radius:3px}.hero-figure figcaption{display:flex;justify-content:space-between;gap:20px;font-size:12px;padding-top:12px}.hero-figure figcaption span:last-child{letter-spacing:.09em;color:var(--muted)}.photo-source{display:block;font-size:12px;color:var(--muted);margin-top:6px}.photo-source:hover{color:var(--blue)}.mission-strip{border-block:1px solid var(--line);background:var(--pale)}.mission-strip>div{display:flex;align-items:center;justify-content:space-between;padding-block:21px}.strip-title{font-size:15px;font-weight:600}.mission-strip span:last-child{font-size:12px;letter-spacing:.16em;color:var(--muted)}.mission-strip b{margin:0 17px;color:oklch(72% .015 260)}.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.section-label>span,.section-kicker{font-size:11px;font-weight:700;letter-spacing:.13em;color:var(--blue);display:block;margin-bottom:20px}h2{font-size:34px;font-weight:600;line-height:1.55;letter-spacing:-.025em}.about-content>p{margin-bottom:18px;color:var(--muted)}.about-content p.lead{font-size:20px;font-weight:600;color:var(--ink);margin-bottom:18px}.about-content>.text-link{margin-top:4px}.about-foot{border-top:1px solid var(--line);margin-top:30px;padding-top:22px;display:flex;gap:30px;font-size:12px;color:var(--muted)}footer{border-top:1px solid var(--line)}.footer-inner{padding-block:36px;display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-inner strong{font-weight:600;font-size:14px}.footer-inner p{color:var(--muted);font-size:10px;letter-spacing:.1em;margin-top:4px}.footer-inner>a{font-size:13px}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--blue);color:var(--paper);padding:10px 16px}.skip-link:focus{top:10px}
@media(min-width:1500px){.hero{padding-block:94px 88px}.hero-figure img{height:370px}}
@media(max-width:1100px){.nav-wrap{width:calc(100% - 48px)}nav{gap:18px}.brand-words strong{font-size:14px}.brand-words small{font-size:9px}.hero{gap:32px}.section-wrap{width:calc(100% - 64px)}.hero-figure img{height:310px}.hero-actions{gap:20px}.button{gap:14px;padding:12px 17px}.about{gap:48px}.about-foot{gap:20px}}
@media(max-width:850px){.header{height:82px}.brand-words strong{font-size:14px}.brand-words small{font-size:9px}.menu-button{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);background:none;border-radius:3px;font-size:13px}nav{display:none;position:absolute;top:81px;left:0;right:0;flex-direction:column;align-items:stretch;padding:18px 30px 28px;background:var(--paper);border-bottom:1px solid var(--line);gap:0}nav.open{display:flex}nav a{padding:12px}nav a:after{display:none}nav .nav-join{margin-top:8px;justify-content:space-between}.hero{grid-template-columns:1fr;gap:40px;padding-block:52px}.hero-copy{max-width:590px}h1{font-size:54px}.hero-figure img{height:auto;aspect-ratio:1.6;object-fit:cover}.hero-note{margin-top:28px}.hero-figure{padding-top:24px}.about{grid-template-columns:1fr;gap:32px}.section-space{padding-block:68px}.section-label h2 br{display:none}.mission-strip b{margin:0 8px}.mission-strip span:last-child{font-size:10px}}
@media(max-width:480px){.nav-wrap{width:calc(100% - 32px);gap:10px}.brand{gap:9px}.brand-symbol{width:34px;height:38px;font-size:27px}.brand-words strong{font-size:11px;letter-spacing:0}.brand-divider{margin:0 2px}.brand-words small{font-size:7px;letter-spacing:.01em}.menu-button{padding:7px 8px;font-size:12px}.section-wrap{width:calc(100% - 40px)}h1{font-size:47px}.eyebrow{font-size:9px}.hero-description{font-size:16px}.hero-actions{gap:21px}.button{font-size:13px}.text-link{font-size:13px;gap:8px}.mission-strip>div{align-items:flex-start;gap:8px;flex-direction:column}.strip-title{font-size:14px}.hero-figure img{aspect-ratio:1.35;object-fit:cover}.photo-source{font-size:11px}h2{font-size:28px}.about-content p.lead{font-size:18px}.about-foot{gap:18px;font-size:11px}.footer-inner{align-items:flex-start}.footer-inner strong{font-size:12px}.footer-inner p{font-size:8px}.footer-inner>a{font-size:12px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.explore{background:var(--pale);border-block:1px solid var(--line)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:40px}.section-heading>p{color:var(--muted);font-size:14px;line-height:1.9}.section-heading .section-kicker{margin-bottom:13px}.direction{border-top:1px solid var(--line)}.direction:last-child{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.direction summary{display:grid;grid-template-columns:54px 1fr 210px 24px;gap:22px;align-items:center;padding-block:27px}.direction-number{align-self:start;margin-top:6px;font-size:13px;color:var(--muted)}.direction-title{display:flex;flex-direction:column;gap:3px}.direction-title strong{font-size:22px;font-weight:600}.direction-title small{font-size:12px;color:var(--muted);letter-spacing:.015em}.direction-tags{font-size:12px;color:var(--muted)}.expand-icon{width:16px;height:16px;position:relative}.expand-icon:before,.expand-icon:after{position:absolute;content:'';background:var(--ink);left:0;top:7px;width:15px;height:1px}.expand-icon:after{transform:rotate(90deg);transition:transform .2s}.direction[open] .expand-icon:after{transform:rotate(0)}.direction[open] .direction-title strong{color:var(--blue)}.direction-body{margin-left:76px;padding-bottom:32px;display:grid;grid-template-columns:1fr 260px;gap:40px;align-items:end}.direction-body p{font-size:15px;color:var(--muted);max-width:620px}.direction-body a{font-size:13px;color:var(--blue);font-weight:600;display:flex;gap:28px;justify-self:end}.direction summary:hover .direction-title strong{color:var(--blue)}.explore-note{font-size:12px;color:var(--muted);margin-top:20px}.section-side-note{color:var(--muted);font-size:13px;padding-bottom:9px}.news-feature{display:grid;grid-template-columns:120px 1fr 62px;gap:40px;border-block:1px solid var(--line);padding-block:38px}.news-date{display:flex;flex-direction:column;align-items:flex-start}.news-date strong{font-size:54px;line-height:1.25;font-weight:500;letter-spacing:-.05em}.news-date>span{font-size:11px;letter-spacing:.06em;color:var(--muted);margin-top:8px}.news-meta{display:flex;gap:14px;align-items:center;font-size:11px;color:var(--muted);margin-bottom:16px}.news-meta span:first-child{color:var(--blue);background:var(--pale);padding:2px 9px;border-radius:2px}.news-content h3{font-size:27px;line-height:1.6;font-weight:600;letter-spacing:-.02em;margin-bottom:16px}.news-content p{color:var(--muted);font-size:15px;max-width:690px}.news-source{display:block;color:var(--blue);font-size:12px;margin-top:24px}.news-arrow{height:48px;width:48px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:24px;transition:background .2s,color .2s}.news-feature:hover .news-arrow{background:var(--blue);color:var(--paper);border-color:var(--blue)}.news-feature:hover h3{color:var(--blue)}.work-note{display:flex;align-items:center;justify-content:space-between;gap:36px;margin-top:42px}.work-note .section-kicker{margin-bottom:7px;font-size:10px;color:var(--muted)}.work-note h3{font-size:16px;font-weight:600}.work-note p{font-size:13px;color:var(--muted)}.join-section{background:var(--ink);color:var(--paper)}.join-inner{display:grid;grid-template-columns:1.15fr 1fr;gap:100px;padding-block:74px}.join-main .section-kicker{color:oklch(76% .025 250)}.join-main h2{font-size:43px;line-height:1.4;letter-spacing:-.025em}.join-main>p{font-size:15px;line-height:2;color:oklch(82% .012 250);margin-top:24px}.join-tags{display:flex;gap:25px;margin-top:24px;color:oklch(77% .016 250);font-size:12px}.join-information>h3{font-size:18px;font-weight:500;margin-bottom:20px}.join-information{padding-top:26px}.join-detail{border-bottom:1px solid oklch(44% .02 260)}.join-detail summary{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px;padding-block:17px}.join-detail[open] summary>span{transform:rotate(45deg)}.join-detail>div{padding-bottom:20px;color:oklch(83% .012 250);font-size:14px}.join-detail>div a{font-size:12px;display:inline-block;margin-top:12px;color:oklch(90% .02 250)}.learning-link{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px;font-size:14px}.learning-link small{display:block;font-size:11px;color:oklch(76% .016 250);margin-top:3px}.learning-link>span:last-child{font-size:24px}.join-section a:hover{color:oklch(90% .025 250)}.join-section :focus-visible{outline-color:oklch(90% .025 250)}
@media(max-width:850px){.section-heading{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:30px}.direction summary{grid-template-columns:35px 1fr 24px;gap:12px}.direction-tags{display:none}.direction-body{margin-left:47px;grid-template-columns:1fr;gap:18px}.direction-body a{justify-self:start}.news-feature{grid-template-columns:64px 1fr 42px;gap:22px}.news-date strong{font-size:43px}.news-arrow{height:40px;width:40px}.news-content h3{font-size:23px}.work-note{align-items:flex-start;flex-direction:column;gap:13px}.join-inner{grid-template-columns:1fr;gap:24px;padding-block:64px}.join-information{padding-top:15px}.join-main h2{font-size:37px}.section-side-note{display:none}}
@media(max-width:480px){.direction-title strong{font-size:19px}.direction-title small{font-size:11px}.direction-number{font-size:12px}.direction-body{margin-left:0}.direction-body p{font-size:14px}.direction summary{padding-block:24px}.news-feature{grid-template-columns:48px 1fr;gap:16px;padding-block:28px}.news-arrow{display:none}.news-date strong{font-size:33px}.news-date>span{font-size:9px}.news-content h3{font-size:21px}.news-content p{font-size:14px}.news-meta{gap:10px;font-size:10px}.news-source{font-size:11px}.work-note h3{font-size:15px}.join-main h2{font-size:34px}.desktop-break{display:none}}
.lab-header{height:82px}.lab-header .nav-wrap{width:min(1200px,calc(100% - 96px))}.lab-header .brand-words strong{font-size:17px}.lab-header .brand-words small{font-size:10px}.lab-header nav{gap:26px}
.hero{padding-block:58px 54px}.lab-title{font-size:clamp(38px,3.5vw,52px);line-height:1.42;letter-spacing:-.035em}.hero-figure img{height:auto;aspect-ratio:1.5}.hero-figure{padding-top:24px}.section-space{padding-block:78px}.about{gap:72px;grid-template-columns:.7fr 1.3fr}.about .section-label h2{font-size:32px}.hero-description{margin-top:20px}.hero-note{margin-top:26px}.eyebrow{font-size:12px;letter-spacing:.075em}.section-label>span,.section-kicker{font-size:12px}.photo-label{font-size:12px;letter-spacing:.08em}.brand-words small{font-size:10px}.hero-description,.direction-body p,.news-content p,.join-main>p{font-size:16px}.direction-title small,.direction-tags,.news-meta,.news-source,.footer-inner p{font-size:12px}.work-note .section-kicker{font-size:12px}.lab-footer .footer-inner{align-items:flex-start;gap:50px;padding-block:42px}.footer-address{letter-spacing:0!important;margin-top:15px!important}.footer-links{display:flex;flex-direction:column;gap:9px;font-size:13px}.footer-links a:hover{color:var(--blue)}
.news-brief{display:grid;grid-template-columns:120px 1fr auto;gap:40px;border-top:1px solid var(--line);padding-block:30px;align-items:start}.news-brief time{font-size:14px;font-weight:600;color:var(--muted);padding-top:4px}.record-tag{font-size:12px;color:var(--blue);display:inline-block;background:var(--pale);padding:3px 9px;border-radius:2px}.news-brief h3{font-size:22px;font-weight:600;line-height:1.6;margin-top:9px}.news-brief h3 a:hover{color:var(--blue)}.news-brief p{color:var(--muted);font-size:15px;margin-top:10px}.record-link{font-size:13px;color:var(--blue);padding-top:6px}
.page-heading{padding-block:30px 54px;border-bottom:1px solid var(--line)}.breadcrumb{display:flex;gap:10px;font-size:13px;color:var(--muted);margin-bottom:42px}.breadcrumb a:hover{color:var(--blue)}.page-heading h1{font-size:43px;line-height:1.4;font-weight:600;letter-spacing:-.025em}.page-heading .section-kicker{margin-bottom:10px}.page-heading>p{color:var(--muted);margin-top:17px;font-size:17px}.page-layout{display:grid;grid-template-columns:195px minmax(0,1fr);gap:64px;padding-block:55px 88px}.page-index{align-self:start;position:sticky;top:115px;display:flex;flex-direction:column;gap:14px}.page-index p{font-size:12px;color:var(--muted);margin-bottom:8px}.page-index a{font-size:14px}.page-index a:hover{color:var(--blue)}.page-content{min-width:0}.content-section{padding-bottom:43px;margin-bottom:43px;border-bottom:1px solid var(--line);scroll-margin-top:115px}.content-section h2{font-size:26px;display:flex;align-items:baseline;gap:18px;margin-bottom:25px}.content-section h2>span{font-size:13px;font-weight:400;color:var(--muted);letter-spacing:0}.content-section>p{font-size:16px;color:var(--muted);margin-bottom:17px;line-height:1.95}.mentorship-row{display:grid;grid-template-columns:1fr 1fr;gap:34px}.mentorship-row h3{font-size:17px;font-weight:600;margin-bottom:8px}.mentorship-row p{font-size:15px;color:var(--muted)}.data-note{font-size:13px!important;color:var(--muted);margin:24px 0 0!important;line-height:1.8!important}.section-intro{font-size:14px!important}.person-entry{display:flex;gap:25px;padding-top:14px}.person-initial{width:80px;height:92px;flex-shrink:0;display:grid;place-items:center;background:var(--pale);color:var(--blue);font-size:30px;font-weight:500}.person-heading{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.person-heading h3{font-size:23px;font-weight:600}.person-role{font-size:15px;color:var(--ink)!important;margin-top:9px!important}.person-role>span{font-size:13px;color:var(--muted)}.person-content>p{font-size:15px;color:var(--muted);margin-top:8px}.person-content>.text-link{margin-top:13px}.member-update{margin-top:30px;background:var(--pale);padding:21px 24px}.member-update strong{font-size:15px;font-weight:600}.member-update p{font-size:14px;color:var(--muted);margin-top:7px}.team-wide-photo img{width:100%;height:auto;border-radius:2px}.team-wide-photo figcaption{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);margin-top:13px}.team-wide-photo figcaption a{flex-shrink:0;color:var(--blue)}.page-join{display:flex;align-items:center;justify-content:space-between;gap:30px}.page-join h3{font-size:20px;font-weight:600}.page-join p{color:var(--muted);font-size:14px;margin-top:7px}.page-join .button{flex-shrink:0}
.record-meta{display:flex;align-items:center;gap:20px;font-size:13px;color:var(--muted);margin-bottom:28px}.competition-host{font-size:15px!important;color:var(--blue)!important;margin-bottom:10px!important}.competition-record h2.competition-title{font-size:34px;line-height:1.55;display:block;margin-bottom:22px}.competition-lead{font-size:20px!important;color:var(--ink)!important}.competition-facts{margin:27px 0 28px;border-top:1px solid var(--line)}.competition-facts>div{display:grid;grid-template-columns:120px 1fr;gap:20px;border-bottom:1px solid var(--line);padding-block:14px;font-size:15px}.competition-facts dt{color:var(--muted)}.competition-facts dd{margin:0}.track-list>article{display:flex;gap:24px;padding-block:24px;border-top:1px solid var(--line)}.track-list>article>span{font-size:13px;color:var(--blue);padding-top:3px}.track-list h3{font-size:19px;font-weight:600;margin-bottom:8px}.track-list p{font-size:15px;color:var(--muted)}.archive-activity>time{font-size:13px;color:var(--blue)}.archive-activity h3{font-size:23px;font-weight:600;margin-top:12px}.archive-activity p{color:var(--muted);font-size:16px;margin-block:15px}
@media(max-width:1100px){.lab-header .nav-wrap{width:calc(100% - 48px)}.lab-header .brand-words strong{font-size:15px}.lab-header nav{gap:18px}.page-layout{grid-template-columns:150px minmax(0,1fr);gap:36px}.news-brief{grid-template-columns:90px 1fr;gap:28px}.record-link{grid-column:2;padding-top:0}}
@media(max-width:850px){.lab-header nav{gap:0}.hero{padding-block:42px}.lab-title{font-size:48px}.hero-figure img{height:auto;aspect-ratio:1.5}.about{grid-template-columns:1fr;gap:28px}.section-space{padding-block:60px}.page-heading{padding-bottom:36px}.page-heading h1{font-size:37px}.page-layout{grid-template-columns:1fr;padding-top:28px;gap:34px}.page-index{position:static;flex-direction:row;flex-wrap:wrap;gap:14px 24px;padding-bottom:22px;border-bottom:1px solid var(--line)}.page-index p{display:none}.content-section h2{flex-wrap:wrap;gap:7px 15px}.lab-footer .footer-inner{gap:25px}.team-wide-photo figcaption{flex-direction:column;gap:4px}.page-join{align-items:flex-start;flex-direction:column;gap:20px}}
@media(max-width:480px){.lab-header .nav-wrap{width:calc(100% - 40px)}.lab-header .brand-words strong{font-size:13px}.lab-header .brand-words small{font-size:8px}.lab-title{font-size:35px;letter-spacing:-.045em}.eyebrow{font-size:10px}.photo-label{font-size:10px}.hero-actions{gap:18px}.hero-figure img{aspect-ratio:1.5}.lab-footer .footer-inner{flex-wrap:wrap}.lab-footer .footer-inner>div:first-child{flex-basis:100%}.footer-links{font-size:13px}.footer-inner p{font-size:11px}.news-brief{grid-template-columns:1fr;gap:10px}.record-link{grid-column:auto}.news-brief h3{font-size:20px}.page-heading h1{font-size:32px}.page-heading>p{font-size:16px}.breadcrumb{margin-bottom:26px}.page-index{gap:12px 22px}.page-index a{font-size:13px}.content-section h2{font-size:24px}.mentorship-row{grid-template-columns:1fr;gap:24px}.person-entry{gap:16px}.person-initial{width:50px;height:64px;font-size:23px}.person-heading{gap:8px}.person-heading h3{font-size:21px}.person-heading .record-tag{font-size:11px;padding-inline:6px}.member-update{padding:18px}.competition-record h2.competition-title{font-size:26px}.competition-lead{font-size:18px!important}.competition-facts>div{grid-template-columns:76px 1fr;gap:14px;font-size:14px}.record-meta{flex-wrap:wrap;gap:12px}.archive-activity h3{font-size:21px}}
.member-portrait{width:110px;height:145px;object-fit:cover;object-position:top;border-radius:2px;flex-shrink:0}.member-portrait.leader-portrait{height:auto;aspect-ratio:780/1134;align-self:flex-start}.person-entry+.person-entry{border-top:1px solid var(--line);margin-top:35px;padding-top:35px}.person-heading h3>small{font-size:14px;font-weight:400;margin-left:9px;color:var(--muted)}.research-tags{display:flex;gap:8px 16px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:13px}.profile-links{display:flex;gap:20px;font-size:14px;color:var(--blue);font-weight:600;margin-top:17px}.profile-links a:hover{text-decoration:underline}.member-details{border-top:1px solid var(--line);margin-top:22px}.member-details summary{display:flex;justify-content:space-between;gap:24px;padding-top:16px;font-size:14px;font-weight:600}.member-details[open] summary>span{transform:rotate(45deg)}.member-details>div{padding-block:6px 0;font-size:14px;color:var(--muted)}.member-details h4{font-size:15px;color:var(--ink);margin:18px 0 8px}.member-details ul{padding-left:20px;margin:8px 0}.member-details li{margin-block:8px}.member-details p{overflow-wrap:anywhere}.person-content{min-width:0}.selected-work{margin-top:56px}.selected-work .section-heading{margin-bottom:28px}.selected-work h3{font-size:25px;font-weight:600}.selected-work .section-kicker{margin-bottom:7px}.publication{display:grid;grid-template-columns:120px 1fr;gap:40px;border-top:1px solid var(--line);padding-top:30px}.publication-year{font-size:16px;color:var(--muted)}.publication h4{font-size:20px;line-height:1.6;margin:13px 0 12px;font-weight:600;max-width:800px}.publication h4 a:hover{color:var(--blue)}.publication p{font-size:14px;color:var(--muted);margin-top:5px}.publication p>a{color:var(--ink)}.publication p.publication-note{font-size:15px;margin-block:17px}.publication .text-link{font-size:13px}
@media(max-width:850px){.publication{grid-template-columns:75px 1fr;gap:20px}.member-portrait{width:92px;height:124px}}
@media(max-width:480px){.member-portrait{width:66px;height:90px}.person-heading h3>small{display:block;font-size:12px;margin-left:0}.person-role{font-size:14px}.person-content>p{font-size:14px}.research-tags{font-size:11px;gap:5px 12px}.publication{grid-template-columns:1fr;gap:8px}.publication h4{font-size:18px;overflow-wrap:anywhere}.selected-work .section-heading{gap:14px}.selected-work h3{font-size:23px}}
@media(max-width:350px){.lab-header .brand-words strong{font-size:12px}.lab-header .brand-words small{font-size:7px}.person-entry{gap:12px}.member-portrait{width:55px;height:76px}}

/* Site identity on the left, paired institutional marks on the right. */
.institution-bar{background:var(--paper)}
.institution-inner{display:grid;grid-template-columns:minmax(0,1fr) 92px 144px;align-items:center;gap:28px;padding-block:14px;min-height:106px}
.institution-link{display:flex;align-items:center;justify-content:center;min-height:44px;transition:opacity .18s ease-out}
.institution-link:hover{opacity:.75}
.college-mark{display:block;width:92px;aspect-ratio:208/174;background:var(--ink);mask-image:url('../optimized/hmji-logo.0830dc808fb8-lossless.webp');mask-size:auto 100%;mask-position:left center;mask-repeat:no-repeat}
.college-mark img{width:100%;height:100%;opacity:0}
.masthead-title{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.masthead-title strong{font-size:clamp(21px,1.8vw,26px);font-weight:650;line-height:1.45;letter-spacing:-.015em}
.masthead-title span{font-size:11px;letter-spacing:.13em;color:var(--muted)}
.paddle-mark{display:block;position:relative;width:144px;aspect-ratio:3/1;overflow:hidden;mix-blend-mode:multiply}
.paddle-mark img{position:absolute;top:50%;left:50%;width:220%;height:auto;max-width:none;transform:translate(-48%,-50%)}
.lab-header{height:52px}
.lab-header .nav-wrap{border-top:1px solid var(--line);justify-content:flex-start}
.lab-header .brand{display:none}
.lab-header nav{gap:40px}
.lab-header nav a:not(.nav-join):after{bottom:-14px}
.lab-header .nav-join{border:0;padding:0;gap:12px;margin-left:12px;color:var(--blue)}
@media(max-width:850px){
 .institution-inner{grid-template-columns:1fr 1fr;gap:20px;min-height:118px;padding-block:16px}
 .college-mark{width:98px}
 .paddle-mark{width:132px}
 .masthead-title{display:none}
 .paddle-link{justify-self:end}
 .lab-header{height:70px}
 .lab-header .nav-wrap{justify-content:space-between}
 .lab-header .brand{display:flex}
 .lab-header nav{gap:0;top:100%}
 .lab-header .menu-button{min-height:44px;min-width:60px}
 .lab-header .nav-join{padding:12px;margin:0}
 .lab-header nav a:not(.nav-join):after{bottom:-13px}
}
@media(max-width:600px){
 .institution-inner{grid-template-columns:1fr 1fr;justify-items:start;gap:24px;min-height:114px;padding-block:12px}
 .college-mark{width:106px}
 .paddle-link{justify-self:end}
 .paddle-mark{width:144px}
 .masthead-title{display:none}
}


/* Apple-inspired clarity: neutral surfaces, strong type and restrained blue controls. */
body{-webkit-font-smoothing:antialiased}
.hero{padding-block:76px 72px;gap:68px}
.hero .lab-title{font-size:clamp(42px,4.2vw,60px);line-height:1.22;font-weight:600;letter-spacing:-.045em}
.hero .blue{color:var(--ink)}
.hero .eyebrow{color:var(--muted);font-weight:500;letter-spacing:.04em;margin-bottom:24px}
.hero .eyebrow>span{display:none}
.hero-description{font-size:19px;line-height:1.8;letter-spacing:-.015em}
.hero-actions{margin-top:30px;gap:28px}
.button{min-height:44px;border-radius:999px;padding:12px 24px;font-weight:500;gap:16px;font-size:15px}
.hero .text-link{font-size:16px;font-weight:400;color:var(--blue)}
.hero-note{margin-top:30px}
.hero-figure img,.team-wide-photo img{border-radius:16px}
.hero-figure{padding-top:26px}
.section-space{padding-block:96px}
.section-kicker,.section-label>span{color:var(--muted);font-weight:500;letter-spacing:.08em}
.section-label h2,.section-heading h2{font-weight:600;letter-spacing:-.035em}
.mission-strip{border:0}
.explore{border:0;background:var(--pale)}
.record-tag{border-radius:999px;background:var(--tag);color:var(--blue);padding:4px 11px}
.news-meta span:first-child{border-radius:999px;background:var(--tag)}
.member-portrait{border-radius:10px}
.page-heading h1{font-weight:600;letter-spacing:-.035em}
.lab-footer{background:var(--pale);border:0}
.institution-inner .paddle-mark{opacity:1}
@media(max-width:850px){
 .institution-inner{min-height:108px;padding-block:12px}
 .college-mark{width:96px}
 .lab-header{height:64px}
 .lab-header .menu-button{border:0;border-radius:22px;background:var(--pale)}
 .hero{gap:44px;padding-block:54px}
 .hero-copy{max-width:640px}
 .hero .lab-title{font-size:48px}
 .section-space{padding-block:68px}
}
@media(max-width:480px){
 .institution-inner{min-height:100px;padding-block:10px}
 .college-mark{width:94px}
 .paddle-mark{width:132px}
 .hero{padding-block:44px 48px}
 .hero .lab-title{font-size:40px;line-height:1.28}
 .hero-description{font-size:17px;line-height:1.85}
 .hero-actions{gap:24px}
 .button{font-size:14px;padding:12px 21px}
 .hero .text-link{font-size:15px}
 .hero-figure img{border-radius:12px}
 .section-space{padding-block:60px}
}
@media(max-width:350px){.hero .lab-title{font-size:35px}.hero-description{font-size:16px}.hero-actions{gap:18px}}

/* Evidence photos and expandable records for early activities. */
.activity-photo{margin-block:26px 8px}
.activity-photo img{width:100%;height:auto;border-radius:16px}
.activity-photo figcaption{margin-top:10px;font-size:12px;line-height:1.7;color:var(--muted)}
.activity-details h3{font-size:18px;line-height:1.5;font-weight:600;color:var(--ink);margin:26px 0 10px}
.activity-details p{font-size:15px;line-height:1.9}
.activity-details .activity-photo{margin-top:20px}
@media(max-width:480px){.activity-photo img{border-radius:12px}.activity-details h3{font-size:17px}.activity-details p{font-size:14px}}

/* First UP camp: source-backed project process gallery. */
.up-2024-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;margin:24px 0 32px}
.up-2024-gallery figure{margin:0;min-width:0}
.up-2024-gallery a{display:block;border-radius:12px;overflow:hidden;background:var(--pale)}
.up-2024-gallery img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;transition:transform .2s ease}
.up-2024-gallery a:hover img{transform:scale(1.025)}
.up-2024-gallery figcaption{padding-top:12px;font-size:13px;line-height:1.7;color:var(--muted)}
.up-2024-gallery figcaption strong{display:block;margin-bottom:3px;font-size:15px;font-weight:600;color:var(--ink)}
@media(max-width:560px){.up-2024-gallery{grid-template-columns:1fr;gap:24px}}
@media(prefers-reduced-motion:reduce){.up-2024-gallery img{transition:none}}

/* Shared activity rows keep dates, covers and content at a consistent visual weight. */
.event-list{border-top:1px solid var(--line)}
.event-item{border-bottom:1px solid var(--line);scroll-margin-top:90px}
.event-row{position:relative;display:grid;grid-template-columns:84px 208px minmax(0,1fr) 40px;align-items:center;column-gap:32px;padding-block:30px;min-height:196px}
.event-date{display:flex;flex-direction:column;gap:3px;align-self:center;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.5}
.event-date>span{font-size:18px;font-weight:500;color:var(--ink)}
.event-date>small{font-size:12px;font-weight:400}
.event-date--range>small{white-space:nowrap}
.event-cover{width:208px;height:130px;object-fit:cover;border-radius:12px}
.event-copy{min-width:0;align-self:start}
.event-category{font-size:12px;font-weight:400;line-height:1.6;color:var(--muted);margin:0 0 8px}
.event-copy h2,.event-copy h3{font-size:24px;line-height:1.4;font-weight:600;letter-spacing:-.025em;margin:0 0 11px;transition:color .18s ease-out}
.event-description{font-size:15px;line-height:1.85;color:var(--muted);max-width:64ch;margin:0}
.event-arrow{font-size:22px;line-height:1;display:grid;place-items:center;width:40px;height:40px;color:var(--muted);border-radius:50%;transition:background .18s ease-out,color .18s ease-out}
.event-row:hover h2,.event-row:hover h3{color:var(--blue)}
.event-row:hover .event-arrow{background:var(--pale);color:var(--blue)}
.event-link-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.events-all{color:var(--blue);font-weight:400;white-space:nowrap}
.archive-heading{border-bottom:0;padding-bottom:42px}
.archive-overview{padding-bottom:76px}
.archive-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;color:var(--muted);font-size:12px}
.archive-intro p{font-size:14px;color:var(--ink);font-weight:500}
.archive-tracks{margin-top:64px;margin-bottom:0;padding-bottom:0;border:0}
.archive-tracks>h2{font-size:22px;font-weight:600;margin-bottom:22px}
.archive-tracks .track-list article{padding-block:20px}
.activity-full{max-width:940px;padding-block:45px 72px}
.activity-full .competition-record{margin-bottom:25px}
@media(max-width:1000px){.event-row{grid-template-columns:66px 172px minmax(0,1fr) 32px;column-gap:24px;min-height:180px;padding-block:26px}.event-cover{width:172px;height:108px}.event-copy h2,.event-copy h3{font-size:22px}.event-description{font-size:14px}.event-arrow{width:32px;height:32px}}
@media(max-width:750px){.event-row{grid-template-columns:140px minmax(0,1fr) 28px;grid-template-areas:"date copy arrow" "cover copy arrow";column-gap:24px;row-gap:12px;align-items:start;padding-block:26px;min-height:185px}.event-date{grid-area:date;flex-direction:row;align-items:baseline;gap:8px;align-self:end}.event-date>span{font-size:15px}.event-date>small{font-size:12px}.event-cover{grid-area:cover;width:140px;height:88px}.event-copy{grid-area:copy;align-self:start}.event-arrow{grid-area:arrow;align-self:center}.event-copy h2,.event-copy h3{font-size:20px}.event-category{font-size:11px}.event-description{line-height:1.8}.archive-tracks{margin-top:44px}}
@media(max-width:480px){.event-row{grid-template-columns:92px minmax(0,1fr);grid-template-areas:"date copy" "cover copy";column-gap:18px;row-gap:10px;padding-block:25px;min-height:176px}.event-cover{width:92px;height:70px;border-radius:8px}.event-date>span{font-size:14px}.event-date>small{font-size:11px}.event-date{gap:6px}.event-arrow{display:none}.event-copy h2,.event-copy h3{font-size:18px;line-height:1.45;margin-bottom:8px}.event-category{font-size:10px;margin-bottom:6px}.event-description{font-size:13px;line-height:1.75}.news .section-heading{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:28px}.events-all{font-size:13px;gap:8px}.archive-heading{padding-bottom:30px}.archive-intro{font-size:11px}.archive-overview{padding-bottom:48px}.archive-tracks>h2{font-size:21px}.activity-full{padding-block:30px 48px}}
@media(prefers-reduced-motion:reduce){.event-copy h2,.event-copy h3,.event-arrow{transition:none}}

/* Refined shared rhythm, with original photography as the homepage focus. */
:root{--muted:oklch(47% .008 286);--line:oklch(88.5% .005 286)}
.lab-header .nav-wrap{width:min(1200px,calc(100% - 96px))}
.lab-header nav{width:100%;gap:36px}
.lab-header .nav-join{margin-left:auto}
.lab-header nav a{font-size:13px}
.section-kicker,.section-label>span{letter-spacing:.045em;line-height:1.7}
.hero{display:block;padding-block:64px 0}
.hero-copy{max-width:none;display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:end;margin-bottom:46px}
.hero .lab-title{font-size:clamp(44px,4.7vw,66px);line-height:1.2;letter-spacing:-.04em;font-weight:600}
.hero-description{margin:0;font-size:18px;line-height:1.85}
.hero-actions{gap:26px;margin-top:26px;flex-wrap:wrap}
.hero .button{font-size:14px;padding:11px 22px}
.hero .text-link{font-size:15px}
.hero-figure{padding:0}
.hero-photo-link{display:block;overflow:hidden;border-radius:20px;background:var(--pale)}
.hero-figure img{width:100%;height:auto;aspect-ratio:2.5;object-fit:cover;object-position:center 36%;border-radius:0}
.hero-figure figcaption{padding-top:16px;font-size:13px;color:var(--muted);align-items:center;line-height:1.7}
.hero-figure figcaption a{color:var(--muted)}
.hero-figure figcaption a:hover{color:var(--blue)}
.about{padding-block:80px 88px;grid-template-columns:1.1fr 1fr;gap:72px;align-items:start}
.about .section-label h2{font-size:clamp(29px,2.8vw,38px);line-height:1.45;letter-spacing:-.025em}
.about-content p.lead{font-size:20px;line-height:1.6;margin-bottom:14px}
.about-content>p{max-width:36em;line-height:1.95}
.about-content>.text-link{font-weight:400;color:var(--blue);margin-top:5px}
.explore.section-space{padding-block:84px 88px}
.section-heading{margin-bottom:40px}
.section-heading h2{font-size:clamp(32px,3vw,42px);line-height:1.3}
.section-heading>p{font-size:15px;line-height:1.8}
.direction summary{padding-block:28px;grid-template-columns:44px 1fr 210px 24px;gap:20px}
.direction-title strong{font-size:24px;font-weight:500}
.direction-title small{font-size:13px}
.direction-body{margin-left:64px}
.direction-body p{font-size:16px;line-height:1.9}
.direction[open] .direction-title strong{color:var(--ink)}
.explore-note{font-size:13px;margin-top:24px}.explore-note a{color:var(--blue)}
.news.section-space{padding-block:92px 100px}
.event-row{grid-template-columns:72px 244px minmax(0,1fr) 36px;gap:30px;padding-block:32px;min-height:218px}
.event-cover{width:244px;height:153px;border-radius:14px}
.event-copy{align-self:center}
.event-copy h2,.event-copy h3{font-size:24px;margin-bottom:12px}
.event-category{font-size:13px;line-height:1.7;margin-bottom:9px}
.event-date>small{font-size:13px}
.event-description{font-size:15px;line-height:1.85;max-width:36em}
.event-arrow{width:36px;height:36px}
.join-inner{padding-block:72px;gap:100px;align-items:start}
.join-main h2{font-size:clamp(36px,3.5vw,48px);line-height:1.3;letter-spacing:-.035em}
.join-main>p{margin-top:22px;font-size:16px;line-height:1.9}
.join-main>.text-link{margin-top:24px;font-size:15px;font-weight:400;color:oklch(89% .028 250)}
.join-information{padding-top:5px}
.join-information>h3{font-size:22px;margin-bottom:14px}
.join-status{font-size:14px;line-height:1.85;color:oklch(82% .008 286);max-width:32em;margin-bottom:13px}
.join-detail summary{font-size:15px;min-height:56px}
.learning-link{margin-top:24px;font-size:15px}.learning-link small{font-size:12px}
.lab-footer .footer-inner{padding-block:44px}.footer-links a{padding-block:3px}
.page-heading{padding-block:30px 50px}.page-heading h1{font-size:clamp(36px,3.8vw,52px);line-height:1.3}
.page-heading>p{max-width:44em;line-height:1.8}
.page-heading .section-kicker{font-size:12px;letter-spacing:.06em}
.page-index a{min-height:32px;display:flex;align-items:center}
.member-details summary{padding-block:16px;min-height:52px}
.member-details li{line-height:1.9}
@media(max-width:1100px){
 .lab-header .nav-wrap{width:calc(100% - 64px)}
 .hero-copy,.about{gap:40px}
 .hero .lab-title{font-size:52px}
 .hero-description{font-size:16px}
 .hero-actions{gap:18px}
 .event-row{grid-template-columns:60px 200px minmax(0,1fr) 32px;gap:24px}
 .event-cover{width:200px;height:125px}.event-copy h2,.event-copy h3{font-size:22px}
}
@media(max-width:850px){
 .lab-header nav{gap:0}.lab-header .nav-join{margin:0}
 .lab-header nav a{font-size:15px}
 .lab-header .brand-words small{font-size:10px;letter-spacing:.06em}
 .hero{padding-block:44px 0}.hero-copy{grid-template-columns:1fr;gap:24px;margin-bottom:32px}
 .hero .lab-title{font-size:52px}.hero-description{font-size:18px}
 .hero-figure img{aspect-ratio:2;object-position:center 36%}
 .about{grid-template-columns:1fr;gap:24px;padding-block:58px 64px}
 .about .section-label h2 br{display:none}.about-content>p{max-width:42em}
 .section-heading>p br{display:none}
 .explore.section-space{padding-block:60px}.news.section-space{padding-block:64px}
 .direction summary{grid-template-columns:32px 1fr 24px;gap:16px}.direction-body{margin-left:48px}
 .direction-title strong{font-size:22px}
 .event-row{grid-template-columns:140px minmax(0,1fr) 28px;grid-template-areas:"date copy arrow" "cover copy arrow";gap:12px 24px;padding-block:28px;min-height:180px}
 .event-date{grid-area:date}.event-cover{grid-area:cover;width:140px;height:94px}.event-copy{grid-area:copy;align-self:start}.event-arrow{grid-area:arrow}
 .event-category{font-size:12px}.event-description{font-size:14px}
 .join-inner{grid-template-columns:1fr;gap:40px;padding-block:60px}
 .join-information{padding:0;max-width:560px}.join-main h2{font-size:40px}
}
@media(max-width:600px){
 .section-wrap,.lab-header .nav-wrap{width:calc(100% - 40px)}
 .hero .lab-title{font-size:clamp(36px,8.8vw,48px);line-height:1.25}
 .hero-description{font-size:16px;line-height:1.85}.hero-actions{gap:22px;margin-top:23px}
 .hero-photo-link{border-radius:14px}.hero-figure img{aspect-ratio:3/2;object-position:center}
 .hero-figure figcaption{align-items:flex-start;flex-direction:column;gap:3px;font-size:12px;padding-top:12px}
 .about{padding-block:48px 54px}.about .section-label h2{font-size:28px}
 .about .section-label h2 br{display:initial}.about-content p.lead{font-size:18px}.about-content>p{font-size:15px}
 .section-heading h2{font-size:30px}.section-heading{gap:16px;margin-bottom:28px}
 .section-heading>p{font-size:14px}
 .direction summary{grid-template-columns:24px 1fr 20px;gap:10px;padding-block:24px}
 .direction-title strong{font-size:20px}.direction-title small{font-size:12px}.direction-body{margin-left:0}.direction-body p{font-size:15px}
 .event-row{grid-template-columns:58px minmax(0,1fr);grid-template-areas:"cover cover" "date copy";gap:20px 18px;padding-block:28px;min-height:0}
 .event-cover{width:100%;height:auto;aspect-ratio:16/9;border-radius:12px}
 .event-date{flex-direction:column;gap:2px;align-self:start;padding-top:2px}
 .event-date>span{font-size:16px}.event-date>small{font-size:12px}
 .event-copy h2,.event-copy h3{font-size:21px;line-height:1.45;margin-bottom:10px}
 .event-category{font-size:12px;line-height:1.6;margin-bottom:8px}.event-description{font-size:14px;line-height:1.85}
 .event-arrow{display:none}.events-all{font-size:14px}
 .join-inner{padding-block:52px;gap:36px}.join-main h2{font-size:36px}.join-main>p{font-size:15px}
 .lab-header .brand-words strong{font-size:13px}.lab-header .brand-words small{font-size:10px}
 .page-heading h1{font-size:34px}.page-heading>p{font-size:16px}
 .page-index a{font-size:14px}.research-tags{font-size:12px}
 .person-entry{display:block}.member-portrait{width:110px;height:auto;margin-bottom:22px}
 .person-heading h3{font-size:25px}.person-heading h3>small{display:inline;font-size:13px;margin-left:10px}
 .person-content>p{font-size:15px;line-height:1.9}.profile-links{flex-wrap:wrap;gap:12px 22px}
 .content-section h2{font-size:26px}.member-details>div{font-size:14px}
}
@media(max-width:350px){
 .hero-actions{gap:16px}.hero .button{padding-inline:18px;font-size:13px}.hero .text-link{font-size:14px}
 .lab-header .brand-words strong{font-size:12px}.lab-header .menu-button{min-width:54px}
 .event-row{grid-template-columns:48px minmax(0,1fr);column-gap:14px}
 .event-copy h2,.event-copy h3{font-size:20px}
}

/* Faculty summaries match the restrained member-page typography. */
.mentorship-row{gap:36px;align-items:start}
.mentor-profile{min-width:0}
.mentor-profile h3{font-size:25px;font-weight:600;line-height:1.4;margin-bottom:12px}
.mentor-profile .mentor-affiliation{font-size:13px;line-height:1.8;color:var(--muted)}
.mentor-profile .mentor-position{font-size:14px;line-height:1.8;color:var(--ink);margin-top:5px}
.mentor-profile .mentor-description{font-size:15px;line-height:1.9;margin-top:18px}
.mentor-profile .member-details{margin-top:20px}
.mentor-profile .member-details p{font-size:14px;line-height:1.9;margin-block:0 14px}
.mentor-source{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:12px;font-size:14px;color:var(--blue)}
.mentor-source:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:650px){.mentorship-row{grid-template-columns:1fr;gap:30px}.mentor-profile+.mentor-profile{border-top:1px solid var(--line);padding-top:30px}.mentor-profile .mentor-description{max-width:40em}}

/* up-2025.css */
/* The second UP camp archive: shared site identity, independent editorial layout. */
.camp-breadcrumb{padding-top:30px;margin-bottom:0;font-size:12px}
.camp-hero{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:64px;padding-block:48px 72px}
.camp-intro h1{font-size:clamp(44px,4.8vw,68px);line-height:1.14;font-weight:600;letter-spacing:-.045em}
.camp-intro .section-kicker{margin-bottom:22px;font-size:11px}
.camp-subtitle{font-size:19px;color:var(--muted);margin-top:18px}
.camp-lead{font-size:24px;font-weight:600;letter-spacing:-.035em;margin-top:30px}
.camp-description{font-size:16px;color:var(--muted);line-height:1.95;margin-top:13px;max-width:32em}
.camp-intro>.text-link{margin-top:26px;color:var(--blue);font-weight:400;font-size:16px}
.camp-cover img{width:100%;height:auto;aspect-ratio:1.1;object-fit:cover;object-position:center;border-radius:20px}
.camp-page figcaption{font-size:12px;color:var(--muted);line-height:1.7;margin-top:12px}
.camp-overview{background:var(--pale)}
.camp-facts{display:grid;grid-template-columns:1fr .8fr 1.6fr .6fr;gap:30px;padding-block:27px}
.camp-facts div{min-width:0}.camp-facts dt{color:var(--muted);font-size:12px;margin-bottom:6px}.camp-facts dd{font-size:14px;margin:0}.camp-facts a{color:var(--blue)}
.camp-section{padding-block:88px}
.camp-section-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:64px;align-items:end;margin-bottom:40px}
.camp-section-heading .section-kicker{grid-column:1/-1;margin-bottom:14px}
.camp-section-heading h2{font-size:38px;line-height:1.3;font-weight:600;letter-spacing:-.035em}
.camp-section-heading>p{max-width:32em;font-size:16px;color:var(--muted);line-height:1.9}
.camp-learning{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.camp-timeline{list-style:none;padding:0;margin:0}
.camp-timeline li{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:24px 0;border-top:1px solid var(--line)}
.camp-timeline time{font-size:13px;color:var(--muted);padding-top:5px;font-variant-numeric:tabular-nums}
.camp-timeline h3{font-size:19px;font-weight:600;line-height:1.6}
.camp-timeline p{font-size:14px;color:var(--muted);margin-top:8px;line-height:1.9}
.camp-timeline .text-link{color:var(--blue);margin-top:10px;font-size:13px}
.camp-visit{position:sticky;top:100px}.camp-visit img{width:100%;height:auto;border-radius:16px}
.camp-projects{background:var(--pale)}
.camp-project{display:grid;grid-template-columns:90px minmax(0,1fr);gap:24px;border-top:1px solid var(--line);padding-block:34px 38px;scroll-margin-top:90px}
.camp-project-number{color:var(--muted);font-size:14px;padding-top:3px;font-variant-numeric:tabular-nums}
.camp-project-type{color:var(--muted);font-size:12px;letter-spacing:.025em;margin-bottom:8px}
.camp-project h3{font-size:27px;font-weight:600;line-height:1.5;letter-spacing:-.025em;margin-bottom:15px}
.camp-project-body>p:not(.camp-project-type){max-width:46em;color:var(--muted);font-size:16px;line-height:1.9}
.camp-project-body>p.camp-project-credit{font-size:13px;margin-top:14px}
.camp-detail{margin-top:22px}.camp-detail summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;width:100%;border-top:1px solid var(--line);padding-top:16px;color:var(--blue);font-size:14px}
.camp-detail summary>span{font-size:20px;line-height:1;transition:transform .2s ease-out}.camp-detail[open] summary>span{transform:rotate(45deg)}
.camp-detail>div{padding-top:18px}.camp-detail>div>p{max-width:46em;font-size:15px;color:var(--muted);line-height:1.9}
.camp-project-figure{margin-top:24px}.camp-project-figure a{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper)}.camp-project-figure img{width:100%;height:auto;max-height:600px;object-fit:contain}
.camp-source-note{color:var(--muted);font-size:12px;line-height:1.9;max-width:65em;margin-top:24px}
.camp-people{display:grid;grid-template-columns:1fr 1fr;gap:64px}.camp-people .camp-section-heading{display:block}
.camp-credits{margin:0}.camp-credits>div{display:grid;grid-template-columns:80px 1fr;gap:20px;padding-block:18px;border-top:1px solid var(--line);font-size:14px}.camp-credits dt{color:var(--muted)}.camp-credits dd{margin:0;line-height:2}
.camp-end{border-top:1px solid var(--line);padding-block:48px;display:flex;align-items:center;justify-content:space-between;gap:32px}.camp-end h2{font-size:28px;line-height:1.5}.camp-end p{font-size:15px;color:var(--muted);margin-top:8px}.camp-end .button{flex-shrink:0}
.camp-sources{border-top:1px solid var(--line);padding-block:28px 48px}.camp-sources p{max-width:75em;font-size:12px;color:var(--muted);line-height:1.9}.camp-sources .text-link{margin-top:24px;color:var(--blue)}
@media(max-width:1100px){.camp-hero,.camp-learning,.camp-section-heading,.camp-people{gap:36px}.camp-cover img{aspect-ratio:.9}.camp-project{grid-template-columns:56px minmax(0,1fr)}.camp-facts{gap:20px}}
@media(max-width:850px){.camp-hero{grid-template-columns:1fr;gap:32px;padding-block:36px 48px}.camp-intro h1 br{display:none}.camp-intro h1{font-size:46px}.camp-intro .section-kicker{margin-bottom:16px}.camp-cover img{aspect-ratio:1.5;object-fit:cover}.camp-lead{margin-top:22px}.camp-facts{grid-template-columns:1fr 1fr;gap:22px 30px}.camp-section{padding-block:64px}.camp-section-heading{column-gap:28px}.camp-section-heading h2{font-size:32px}.camp-learning{grid-template-columns:1fr;gap:28px}.camp-visit{position:static}.camp-people{gap:32px}.camp-project{grid-template-columns:34px minmax(0,1fr);gap:20px}}
@media(max-width:480px){.camp-breadcrumb{padding-top:24px}.camp-intro h1{font-size:38px;letter-spacing:-.045em}.camp-subtitle{font-size:16px;margin-top:12px}.camp-lead{font-size:22px}.camp-cover img{border-radius:12px}.camp-facts{grid-template-columns:1fr 1fr;gap:20px 14px}.camp-facts dd{font-size:13px}.camp-facts>div:nth-child(3){grid-column:1/-1;grid-row:2}.camp-facts>div:nth-child(4){grid-column:1/-1}.camp-section-heading{display:block;margin-bottom:30px}.camp-section-heading h2{font-size:30px}.camp-section-heading>p{margin-top:18px;font-size:15px}.camp-section{padding-block:52px}.camp-timeline li{grid-template-columns:45px minmax(0,1fr);gap:14px}.camp-project{grid-template-columns:1fr;gap:8px;padding-block:26px 30px}.camp-project-number{font-size:12px}.camp-project h3{font-size:23px}.camp-project-body>p:not(.camp-project-type){font-size:15px}.camp-detail summary{font-size:13px}.camp-people{grid-template-columns:1fr;gap:8px}.camp-people .camp-section-heading{margin-bottom:20px}.camp-end{align-items:flex-start;flex-direction:column;padding-block:36px;gap:24px}.camp-end h2{font-size:25px}}

/* Source-backed project features and camp photographs. */
.camp-jump{display:flex;gap:32px;flex-wrap:wrap;padding-block:20px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}.camp-jump a:hover{color:var(--blue)}
.camp-project-feature{padding-block:46px 52px}.camp-project-body{min-width:0}.camp-project-figure a,.camp-moment a{position:relative;display:block;overflow:hidden;border-radius:12px;border:1px solid var(--line)}.camp-enlarge{position:absolute;right:12px;bottom:12px;padding:5px 12px;border-radius:30px;background:var(--paper);color:var(--ink);font-size:12px;border:1px solid var(--line);opacity:0;transition:opacity .2s ease-out}.camp-project-figure a:hover .camp-enlarge,.camp-project-figure a:focus-visible .camp-enlarge,.camp-moment a:hover .camp-enlarge,.camp-moment a:focus-visible .camp-enlarge{opacity:1}
.camp-evidence{display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:center;margin-top:30px}.camp-evidence .camp-project-figure{margin:0}.camp-evidence-copy h4,.camp-outcome h4{font-size:20px;line-height:1.6;font-weight:600;margin:0 0 14px}.camp-evidence-copy p{font-size:15px;color:var(--muted);line-height:1.9;margin-bottom:20px}.camp-evidence-copy dl{font-size:13px;margin:22px 0 0}.camp-evidence-copy dl>div{display:grid;grid-template-columns:72px 1fr;gap:12px;padding-block:10px;border-top:1px solid var(--line)}.camp-evidence-copy dt{color:var(--muted)}.camp-evidence-copy dd{margin:0}
.camp-project-body>p.camp-showcase-note{font-size:14px;margin-top:16px;max-width:52em}.camp-detail{margin-top:28px}.camp-process{list-style:none;padding:0;margin:4px 0 30px;counter-reset:steps;display:grid;grid-template-columns:1fr 1fr;gap:24px 40px}.camp-process li{counter-increment:steps;position:relative;padding-left:30px}.camp-process li:before{content:counter(steps,decimal-leading-zero);position:absolute;left:0;top:4px;color:var(--muted);font-size:12px}.camp-process h4{font-size:16px;font-weight:600;margin:0 0 9px;line-height:1.8}.camp-process p,.camp-outcome>p{font-size:14px;color:var(--muted);line-height:1.95}.camp-gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-block:28px}.camp-gallery-pair .camp-project-figure{margin:0}.camp-gallery-pair img{aspect-ratio:16/10;object-fit:contain;background:var(--paper)}.camp-demo{grid-template-columns:1fr 1fr;align-items:center}.camp-demo img{max-height:460px}.camp-member-list{padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);margin-top:30px;line-height:2}.camp-member-list strong{font-weight:500;color:var(--ink)}.camp-outcome{margin-top:28px}.camp-outcome .camp-source-note{font-size:12px}
.camp-moments{display:grid;grid-template-columns:1.2fr 1fr;gap:28px}.camp-moment:first-child{grid-row:span 2}.camp-moment img{width:100%;height:auto;aspect-ratio:1.6;object-fit:contain;background:var(--pale)}.camp-moment:first-child img{aspect-ratio:.88;object-fit:cover;object-position:center}.camp-people{border-top:1px solid var(--line)}
.camp-viewer{width:min(1300px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink)}.camp-viewer::backdrop{background:oklch(20% .005 286 / .75)}.camp-viewer-shell{max-height:calc(100dvh - 50px);display:flex;flex-direction:column}.camp-viewer-top,.camp-viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 22px}.camp-viewer-top h2{font-size:17px;line-height:1.5;font-weight:500}.camp-viewer button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;flex-shrink:0}.camp-viewer button:hover{background:var(--pale)}.camp-viewer-image{width:100%;height:auto;max-height:calc(100dvh - 216px);object-fit:contain;background:var(--pale);min-height:0}.camp-viewer-bottom>div{display:flex;align-items:center;gap:18px}.camp-viewer-count{font-size:13px;color:var(--muted);min-width:40px;text-align:center}.camp-viewer-original{font-size:14px;color:var(--blue);padding-block:10px}.camp-viewer-error{padding:30px;color:var(--muted)}.camp-viewer [hidden]{display:none}body.camp-viewer-open{overflow:hidden}
@media(hover:none){.camp-enlarge{opacity:1}}
@media(max-width:850px){.camp-evidence{grid-template-columns:1fr;gap:24px}.camp-project-feature{padding-block:32px 40px}.camp-moments{gap:20px}.camp-process{gap:22px 28px}.camp-jump{gap:16px 28px}}
@media(max-width:600px){.camp-jump{gap:12px 24px;font-size:13px}.camp-process,.camp-gallery-pair,.camp-moments{grid-template-columns:1fr}.camp-moment:first-child{grid-row:auto}.camp-moment:first-child img,.camp-moment img{aspect-ratio:auto;object-fit:contain}.camp-evidence-copy h4,.camp-outcome h4{font-size:18px}.camp-viewer{width:calc(100vw - 24px)}.camp-viewer-top,.camp-viewer-bottom{padding:12px;gap:10px}.camp-viewer-top h2{font-size:14px}.camp-viewer-bottom>div{gap:10px}.camp-viewer-image{max-height:calc(100dvh - 246px)}.camp-viewer-original{font-size:12px}}
/* Keep the three documentary photographs fully visible. */
.camp-moments{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}.camp-moment:first-child{grid-row:auto}.camp-moment:first-child img,.camp-moment img{aspect-ratio:4/3;object-fit:contain;background:var(--pale)}
@media(max-width:850px){.camp-moments{grid-template-columns:1fr 1fr}.camp-moment:first-child{grid-column:1/-1}.camp-moment:first-child img{aspect-ratio:1.8;object-fit:contain}}
@media(max-width:600px){.camp-moments{grid-template-columns:1fr}.camp-moment:first-child{grid-column:auto}.camp-moment:first-child img,.camp-moment img{aspect-ratio:auto}}

/* experience.css */
/* Shared navigation and image feedback, using the site's existing visual tokens. */
.quick-index{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px 28px;margin-top:28px}
.quick-index>span{font-size:13px;color:var(--muted);flex-shrink:0}
.quick-index-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px}
.quick-index a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--ink)}
.quick-index a:hover,.quick-index a:focus-visible{color:var(--blue);text-decoration:underline;text-underline-offset:5px}
.quick-index .quick-latest{color:var(--blue)}
.person-entry{scroll-margin-top:96px}
.person-entry:target .person-heading h3{color:var(--ink)}
.back-to-top{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:15;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:0 3px 16px oklch(23% .004 286 / .08);cursor:pointer;font-size:22px}
.back-to-top[hidden]{display:none}
.back-to-top:hover{background:var(--pale);color:var(--blue)}
.preview-status{font-size:13px;color:var(--muted);margin:0;padding:8px 16px;text-align:center;background:var(--paper)}
.preview-status[hidden]{display:none}
@media(max-width:850px){.lab-header nav.open{max-height:calc(100dvh - 80px);overflow-y:auto;overscroll-behavior:contain}.page-index a{min-height:44px}}
@media(max-width:600px){.quick-index{gap:4px 16px;margin-top:20px}.quick-index>span{width:100%}.quick-index-links{gap:4px 20px}.back-to-top{right:16px;bottom:max(16px,env(safe-area-inset-bottom))}}
@media(max-width:600px){body[data-page="team"] .quick-index-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:4px 16px}}

/* A restrained visual rhythm shared by the directory and reading pages. */
:root{--ui-radius:16px;--ui-ease:cubic-bezier(.22,1,.36,1)}
body{font-kerning:normal}
:is(.project-caption h2,.project-detail-label,.event-copy h2,.event-copy h3,.research-index-list h3){transition:color .2s var(--ui-ease)}
:is(.intro-links a,.text-link,.feature-link,.viewer-links a):hover{text-decoration:underline;text-underline-offset:5px}
:is(.event-row,.research-index-list>a):focus-visible{outline:2px solid var(--blue);outline-offset:5px;border-radius:8px}

.heading-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:64px;align-items:center}
.heading-copy>p{max-width:36em;color:var(--muted);font-size:1.0625rem;line-height:1.85;margin-top:20px}
.heading-copy .section-kicker{display:block;margin-bottom:12px}
.heading-layout .quick-index{display:block;margin:0}
.heading-layout .quick-index>span{display:block;font-size:.75rem;letter-spacing:.04em;margin-bottom:12px}
.heading-layout .quick-index-links{display:flex;flex-wrap:wrap;gap:4px 24px}
.heading-layout .quick-index a{justify-content:flex-start;padding:4px 0;border-radius:0;background:transparent;font-size:.875rem;transition:color .18s var(--ui-ease),background .18s var(--ui-ease)}
.heading-layout .quick-index a:hover{text-decoration:underline;text-underline-offset:6px;color:var(--blue);background:transparent}
.heading-layout .quick-index .quick-latest{flex-basis:100%;justify-content:flex-start;padding-inline:0;background:transparent}
.page-heading{padding-block:28px 48px}
.page-heading h1{font-weight:500;letter-spacing:-.04em;text-wrap:balance}
.page-heading .breadcrumb{margin-bottom:32px}
.page-heading>p{font-size:1.0625rem}
.page-index{gap:8px}
.page-index a{padding:8px 12px;margin-left:-12px;border-radius:8px;transition:color .18s var(--ui-ease),background .18s var(--ui-ease)}
.page-index a[aria-current="location"]{color:var(--blue);background:var(--pale);font-weight:600}
.mentor-profile h3{font-weight:600}
.member-details summary{color:var(--ink);gap:24px}
.member-details summary:hover{color:var(--blue)}
.member-details summary>span{font-size:20px;font-weight:400}
.event-cover,.oss-thumbnail{border-radius:var(--ui-radius)}
.event-row{transition:background .2s var(--ui-ease)}
.event-arrow{transition:color .2s var(--ui-ease),transform .2s var(--ui-ease)}
.event-row:hover .event-arrow{transform:translate(2px,-2px);color:var(--blue)}

.project-visual:focus-visible{outline-offset:5px}
.oss-row h2{font-weight:500;letter-spacing:-.025em}
.oss-row-cta{transition:background .2s var(--ui-ease),color .2s var(--ui-ease)}
.lab-header.is-scrolled{box-shadow:0 3px 16px oklch(23% .004 286 / .045)}
.menu-button{transition:background .2s var(--ui-ease)}
.menu-button[aria-expanded="true"]{background:var(--ink);color:var(--paper)}
@media(hover:hover){.event-row:hover{background:var(--pale)}}
@media(min-width:851px){.lab-header nav a{font-size:.875rem}.heading-layout .quick-index-links{max-width:360px}}
@media(max-width:850px){
 .heading-layout{grid-template-columns:1fr;gap:28px}
 .heading-layout .quick-index-links{max-width:420px}
 .page-index{gap:8px 16px}.page-index a{margin:0;padding:8px 10px}
 .page-heading{padding-bottom:36px}
 .lab-header nav.open{border-radius:0 0 18px 18px;box-shadow:0 16px 32px oklch(23% .004 286 / .08)}
}
@media(max-width:600px){
 .heading-layout{gap:24px}.heading-copy>p{font-size:1rem;margin-top:16px}
 .page-heading .breadcrumb{margin-bottom:24px}.heading-layout .quick-index>span{margin-bottom:8px}
 .heading-layout .quick-index-links{gap:8px!important}

 .page-index{gap:4px 8px}
}
@media(prefers-reduced-motion:reduce){.project-caption h2,.project-detail-label,.event-copy h2,.event-copy h3,.research-index-list h3,.page-index a,.event-row,.event-arrow,.heading-layout .quick-index a,.menu-button,.oss-row-cta{transition:none}.event-row:hover .event-arrow{transform:none}}

/* Small, repeatable labels connect project studies and original activity records. */
.story-page figcaption{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:16px;font-size:13px;line-height:1.8}
.story-page .photo-index{font-size:12px;font-weight:400;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.story-page .caption-body{min-width:0;overflow-wrap:anywhere}
.story-page .caption-body a{color:var(--blue)}
.story-page :is(.visit-figure,.create-figure,.activity-photo) img{border-radius:var(--ui-radius)}
.story-page .up-2024-gallery{gap:32px;margin-block:32px 48px}
.story-page .up-2024-gallery figure:first-child,.story-page .up-2024-gallery figure:last-child{grid-column:1/-1}
.story-page .up-2024-gallery figure:first-child img,.story-page .up-2024-gallery figure:last-child img{aspect-ratio:2;max-height:460px}
.story-page .visit-build-gallery img{max-height:440px;object-fit:contain;background:var(--pale)}
.story-page .create-gallery{max-width:900px;margin-inline:auto;gap:40px}
.story-page .create-gallery img{max-height:520px}
@media(max-width:600px){
 .story-page figcaption{gap:10px;font-size:13px}.story-page .photo-index{font-size:12px}
 .story-page .create-gallery{gap:28px}
 .story-page .up-2024-gallery{gap:28px}
 .story-page .up-2024-gallery figure:first-child img,.story-page .up-2024-gallery figure:last-child img{aspect-ratio:auto}
}

/* One masthead, with a shared grid across the principal directories. */
:root{--site-width:1320px;--site-gutter:clamp(24px,4.2vw,72px)}
.institution-inner.section-wrap,.lab-header .nav-wrap,.lab-footer .footer-inner{width:min(var(--site-width),calc(100% - var(--site-gutter)*2))}
.institution-inner{padding-block:16px;min-height:112px}
.masthead-title strong{font-size:22px;font-weight:550;letter-spacing:-.025em}
.masthead-title span{font-size:10px;letter-spacing:.15em}
:is(body[data-page="team"],body[data-page="competitions"],body[data-page="open-source"])>.section-wrap,
:is(body[data-page="team"],body[data-page="competitions"],body[data-page="open-source"]) main>.section-wrap{width:min(var(--site-width),calc(100% - var(--site-gutter)*2))}
:is(body[data-page="team"],body[data-page="competitions"]) .heading-layout{align-items:end}
:is(body[data-page="team"],body[data-page="competitions"]) .page-heading{padding-bottom:64px}
:is(body[data-page="team"],body[data-page="competitions"]) .heading-copy h1{font-size:clamp(38px,4.2vw,60px);line-height:1.2}
.heading-copy .section-kicker{font-size:11px;letter-spacing:.1em;margin-bottom:20px}
.heading-layout .quick-index{border-top:1px solid var(--line);padding-top:16px}
.heading-layout .quick-index>span{margin-bottom:8px;letter-spacing:0}
:is(body[data-page="team"],body[data-page="competitions"]) .heading-copy>p{margin-top:24px;font-size:17px}
body[data-page="competitions"] .event-copy h2{font-weight:500;font-size:28px;line-height:1.4;letter-spacing:-.035em}
body[data-page="competitions"] .event-row{grid-template-columns:80px 280px minmax(0,1fr) 40px;gap:32px;padding-block:36px}
body[data-page="competitions"] .event-cover{width:280px;height:176px}
body[data-page="competitions"] .event-arrow{border-radius:50%;background:var(--pale);width:40px;height:40px}
body[data-page="competitions"] .event-description{max-width:40em}
body[data-page="competitions"] .event-date{font-variant-numeric:tabular-nums}
@media(min-width:851px){
 .lab-header{height:58px}.lab-header nav a:not(.nav-join):after{bottom:-17px;height:2px}
 .lab-header nav{gap:36px}.lab-header .language-link{font-size:12px}
 .lab-header .nav-wrap{border-top-color:var(--line)}
}
@media(max-width:1100px){
 body[data-page="competitions"] .event-row{grid-template-columns:64px 220px minmax(0,1fr) 32px;gap:24px}
 body[data-page="competitions"] .event-cover{width:220px;height:146px}
 body[data-page="competitions"] .event-copy h2{font-size:24px}
}
@media(max-width:850px){
 .institution-inner{min-height:108px;padding-block:12px}
 :is(body[data-page="team"],body[data-page="competitions"]) .page-heading{padding-bottom:36px}
 .heading-layout .quick-index{max-width:100%}
 .heading-layout .quick-index-links{max-width:none!important;gap:4px 24px!important}
 body[data-page="competitions"] .event-row{grid-template-columns:180px minmax(0,1fr) 32px;grid-template-areas:"cover date arrow" "cover copy arrow";gap:8px 24px}
 body[data-page="competitions"] .event-cover{grid-area:cover;width:180px;height:128px}
 body[data-page="competitions"] .event-date{grid-area:date;flex-direction:row;gap:8px;align-items:baseline}
 body[data-page="competitions"] .event-copy{grid-area:copy}
 body[data-page="competitions"] .event-arrow{grid-area:arrow;width:32px;height:32px}
}
@media(max-width:600px){
 :root{--site-gutter:24px}
 :is(body[data-page="team"],body[data-page="competitions"]) .heading-copy h1{font-size:36px}
 :is(body[data-page="team"],body[data-page="competitions"]) .heading-copy>p{font-size:16px;margin-top:18px}
 body[data-page="team"] .quick-index-links{display:flex}
 body[data-page="competitions"] .event-row{grid-template-columns:1fr;grid-template-areas:"cover" "date" "copy";gap:16px;padding-block:28px}
 body[data-page="competitions"] .event-cover{width:100%;height:auto;aspect-ratio:16/10}
 body[data-page="competitions"] .event-copy h2{font-size:23px}
 body[data-page="competitions"] .event-arrow{display:none}
 body[data-page="competitions"] .event-description{font-size:15px}
}
@media(max-width:350px){:root{--site-gutter:20px}}

/* A readable closing section, using the same grid as the masthead. */
.lab-footer .footer-inner{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr) minmax(160px,1fr);gap:48px;padding-block:64px;align-items:start}
.lab-footer .footer-inner>div:first-child>strong{display:block;font-size:22px;line-height:1.5;font-weight:500;letter-spacing:-.025em;max-width:22em}
.lab-footer .footer-inner>div:first-child>p{font-size:11px;line-height:1.8;letter-spacing:.08em;margin-top:12px}
.lab-footer .footer-inner>div:first-child>.footer-address{font-size:13px;letter-spacing:0;margin-top:24px}
.lab-footer .footer-links{align-items:flex-start;gap:0;font-size:14px}
.lab-footer .footer-links .footer-heading{font-size:12px;font-weight:400;letter-spacing:.025em;color:var(--muted);margin:0 0 16px}
.lab-footer .footer-links a{display:inline-flex;align-items:center;min-height:44px;line-height:1.5}
.lab-footer .footer-links a:hover{text-decoration:underline;text-underline-offset:5px;color:var(--blue)}
@media(max-width:850px){.lab-footer .footer-inner{grid-template-columns:1.5fr 1fr 1fr;gap:32px}.lab-footer .footer-inner>div:first-child>strong{font-size:19px}}
@media(max-width:600px){.lab-footer .footer-inner{grid-template-columns:1fr 1fr;gap:36px 24px;padding-block:48px}.lab-footer .footer-inner>div:first-child{grid-column:1/-1}.lab-footer .footer-inner>div:first-child>strong{font-size:21px}.lab-footer .footer-inner>div:first-child>.footer-address{margin-top:16px}.lab-footer .footer-links .footer-heading{font-size:13px;margin-bottom:8px}}

/* Team directory: advisors first, followed by entry-year cohorts. */
body[data-page="team"] .heading-layout{align-items:start}
.quick-index-groups{margin:0}
.quick-index-group{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:16px;padding-block:6px}
.quick-index-group dt{display:flex;align-items:center;align-self:start;min-height:44px;font-size:12px;font-weight:400;color:var(--muted)}
.quick-index-group dd{margin:0;min-width:0}
.heading-layout .quick-index-group .quick-index-links{max-width:none;gap:0 20px!important}
html[lang="en"] .quick-index-group{grid-template-columns:84px minmax(0,1fr)}
@media(max-width:600px){.quick-index-group{column-gap:12px;padding-block:4px}.heading-layout .quick-index-group .quick-index-links{gap:0 16px!important}}

/* bilingual.css */
/* Shared, always-visible language control; English typography can expand naturally. */
.lab-header .language-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px 9px;border-radius:22px;font-size:13px;line-height:1.2;font-weight:550;flex-shrink:0;color:var(--muted);order:2}
.lab-header .language-link:hover{background:var(--pale);color:var(--blue)}
.lab-header #navigation{order:1;flex:1;min-width:0;width:auto}
.lab-header .menu-button{order:3}
html[lang="en"] body{line-height:1.7}
html[lang="en"] h1,html[lang="en"] h2,html[lang="en"] h3{text-wrap:balance;overflow-wrap:break-word}
html[lang="en"] .masthead-title strong{font-size:clamp(20px,2vw,28px);line-height:1.3;max-width:29ch}
html[lang="en"] .masthead-title span{letter-spacing:.08em}
html[lang="en"] .page-heading h1{line-height:1.15}
html[lang="en"] .record-tag{white-space:normal}
html[lang="en"] .person-heading{flex-wrap:wrap}
html[lang="en"] .person-content,html[lang="en"] .event-copy{min-width:0}
html[lang="en"] .lab-footer .footer-inner>div:first-child{max-width:36ch}
@media(max-width:1100px){.lab-header #navigation{gap:20px}.lab-header .nav-wrap{gap:16px}}
@media(max-width:850px){
 .lab-header .nav-wrap{gap:8px}
 .lab-header .brand{flex:1;min-width:0;flex-shrink:1}
 .lab-header .brand-words strong{line-height:1.35}
 .lab-header #navigation{width:100%;gap:0;order:4}
 .lab-header .language-link{margin-left:auto}
 html[lang="en"] .lab-header .brand-words strong{font-size:13px;max-width:25ch;line-height:1.25}
 html[lang="en"] .lab-header .brand-words small{display:none}
 html[lang="en"] .masthead-title strong{max-width:none}
}
@media(max-width:390px){
 .lab-header .nav-wrap{gap:3px}
 .lab-header .brand-words strong{font-size:11px}
 html[lang="en"] .lab-header .brand-words strong{font-size:12px;max-width:22ch}
 .lab-header .menu-button{min-width:52px;padding-inline:8px;font-size:12px;gap:5px}
}
/* Video captions have no figure number; keep both text and action free to wrap. */
html[lang="en"] .world-video figcaption{display:flex;flex-wrap:wrap;gap:8px 20px}
html[lang="en"] .world-video figcaption>*{min-width:0}

/* English has its own reading measure and type scale within the shared identity. */
html[lang="en"] body{font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue','Segoe UI',Arial,sans-serif;line-height:1.65}
html[lang="en"] :is(h1,h2,h3){letter-spacing:-.022em;font-weight:550}
html[lang="en"] .masthead-title strong{font-size:clamp(20px,1.9vw,26px);font-weight:550;letter-spacing:-.025em;line-height:1.25;max-width:34ch}
html[lang="en"] .masthead-title span{font-size:10px;letter-spacing:.12em;margin-top:12px}
html[lang="en"] .lab-header nav a{font-weight:450;letter-spacing:.005em}
html[lang="en"] :is(.page-heading h1,.project-story .oss-heading h1){font-size:clamp(36px,4.1vw,58px);line-height:1.08;letter-spacing:-.035em;font-weight:500;max-width:22ch}
html[lang="en"] :is(.page-heading>p,.heading-copy>p){font-size:18px;line-height:1.65;max-width:58ch}
html[lang="en"] .page-heading .section-kicker{font-size:11px;letter-spacing:.13em}
html[lang="en"] .heading-layout{gap:56px}
html[lang="en"] .heading-layout .quick-index a{font-size:13px}
html[lang="en"] :is(.content-section>p,.person-content>p:not(.person-role),.oss-description,.oss-row-description,.learning-description){max-width:65ch;line-height:1.7}
html[lang="en"] .content-section>p{margin-bottom:20px}
html[lang="en"] .content-section>h2{font-weight:500;letter-spacing:-.025em}
html[lang="en"] body[data-page="team"] .content-section>h2>span{display:none}
html[lang="en"] .person-heading h3{font-weight:550;letter-spacing:-.015em}
html[lang="en"] .person-content .member-details>div{line-height:1.75;max-width:70ch}
html[lang="en"] :is(.event-copy h2,.event-copy h3){font-weight:550;letter-spacing:-.018em;line-height:1.28}
html[lang="en"] .event-description{line-height:1.65;max-width:62ch}
html[lang="en"] .event-category{font-size:12px;line-height:1.5}
html[lang="en"] :is(.news .section-heading h2,.research-index h2,.participate h2){font-size:clamp(30px,3vw,42px);font-weight:500;line-height:1.15;letter-spacing:-.025em}
html[lang="en"] .research-index-list h3{font-weight:500;line-height:1.3;letter-spacing:-.018em}
html[lang="en"] :is(.research-index-heading>p,.participate-inner>div>p:not(.participate-lead)){line-height:1.7;max-width:50ch}
html[lang="en"] .learning-heading>p:last-child{max-width:54ch;line-height:1.65}
html[lang="en"] .learning-entry{grid-template-columns:40px minmax(0,1fr) 190px;gap:36px;padding-block:40px 48px}
html[lang="en"] .learning-content h2{font-size:clamp(28px,2.5vw,36px);font-weight:500;letter-spacing:-.025em;line-height:1.15}
html[lang="en"] .learning-category{font-size:12px;letter-spacing:.02em}
html[lang="en"] .learning-subtitle{font-size:18px;line-height:1.5;max-width:50ch}
html[lang="en"] .learning-meta{gap:18px 32px;margin-block:22px}
html[lang="en"] .learning-meta dd{line-height:1.6}
html[lang="en"] .learning-guide{line-height:1.7;max-width:65ch}
html[lang="en"] .learning-actions{padding-top:26px}
html[lang="en"] .learning-actions a{white-space:nowrap;font-size:14px;gap:12px}
html[lang="en"] :is(.oss-row h2,.oss-copy h2.oss-overview-title){font-weight:500;letter-spacing:-.025em}
html[lang="en"] .story-page :is(.hack-intro,.hack-story p:not(.section-kicker),.hack-heading>p){line-height:1.7;max-width:62ch}
html[lang="en"] .story-page figcaption{line-height:1.6}
@media(max-width:1000px){
 html[lang="en"] .learning-entry{grid-template-columns:32px minmax(0,1fr);gap:24px}
 html[lang="en"] .learning-actions{padding-top:0}
}
@media(max-width:850px){
 html[lang="en"] .heading-layout{gap:28px}
 html[lang="en"] :is(.page-heading>p,.heading-copy>p){font-size:17px}
}
@media(max-width:600px){
 html[lang="en"] :is(.page-heading h1,.project-story .oss-heading h1){font-size:clamp(34px,8.5vw,44px);line-height:1.12}
 html[lang="en"] .learning-entry{grid-template-columns:1fr;gap:16px;padding-block:32px 36px}
 html[lang="en"] .learning-actions{grid-column:1;gap:8px 12px}
 html[lang="en"] .learning-subtitle{font-size:17px}
 html[lang="en"] :is(.learning-description,.person-content>p:not(.person-role)){font-size:16px}
 html[lang="en"] .lab-header .brand-words strong{font-weight:550;letter-spacing:-.01em}
}
html[lang="en"] :is(.learning-subtitle,.learning-description,.event-description){text-wrap:pretty}

/* The project introduction and actions stay readable in both languages. */
html[lang="en"] body[data-page="home"] .masthead-title strong{font-size:22px;font-weight:500}
.lab-header .brand-words small{font-size:11px;letter-spacing:.045em}
html[lang="en"] .research-intro{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:64px}
html[lang="en"] .research-intro h1{font-size:clamp(44px,4.4vw,62px);line-height:1.12;letter-spacing:-.04em;font-weight:500;max-width:22ch}
html[lang="en"] .research-intro-copy>p{font-size:17px;line-height:1.8;max-width:48ch}
html[lang="en"] .project-caption h2{font-size:23px;line-height:1.3;font-weight:500;letter-spacing:-.02em}
html[lang="en"] .project-card-main .project-caption h2{font-size:30px}
html[lang="en"] .project-caption p{font-size:12px;line-height:1.5}
html[lang="en"] .project-caption p.project-purpose{font-size:14px;line-height:1.8;letter-spacing:0}
html[lang="en"] .project-detail-label{font-size:14px;white-space:normal}
html[lang="en"] .oss-directory-heading>p{font-size:17px;margin:0;max-width:48ch}
@media(max-width:1100px){html[lang="en"] .research-intro{gap:40px}html[lang="en"] .research-intro h1{font-size:48px}}
@media(max-width:850px){html[lang="en"] .research-intro{grid-template-columns:1fr;gap:24px}html[lang="en"] .research-intro h1{max-width:none;font-size:44px}}
@media(max-width:600px){
 html[lang="en"] .research-intro h1{font-size:36px;max-width:22ch}
 html[lang="en"] .research-intro-copy>p{font-size:16px}
 html[lang="en"] .project-caption h2{font-size:18px;line-height:1.35}
 html[lang="en"] .project-card-main .project-caption h2{font-size:29px}
 html[lang="en"] .project-detail-label{font-size:14px}
}

/* press.css */
/* Shared, text-only publication lists for activity archives. */
.press-section{padding-block:clamp(56px,7vw,100px);scroll-margin-top:100px}
.press-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}
.press-heading h2{margin:12px 0 0;font-size:clamp(28px,3.2vw,40px);line-height:1.2;font-weight:550;letter-spacing:-.025em}
.press-heading>p,.press-language-note{color:var(--muted);font-size:13px;line-height:1.6;margin:0}
.press-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.press-list>li{margin:0;padding:0;border-bottom:1px solid var(--line)}
.press-link{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,3fr) 24px;align-items:start;gap:32px;padding:28px 0;color:var(--ink);text-decoration:none;min-height:44px}
.press-meta{display:grid;gap:8px;color:var(--muted);font-size:12px;line-height:1.6}
.press-meta time{font-variant-numeric:tabular-nums;letter-spacing:.035em}
.press-copy{min-width:0}
.press-copy h3{margin:0;font-size:clamp(17px,1.6vw,20px);font-weight:550;line-height:1.55;letter-spacing:-.015em;text-wrap:pretty}
.press-copy p{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.8;max-width:64ch;text-wrap:pretty}
.press-arrow{font-size:20px;line-height:1.5;color:var(--blue);transition:transform .18s ease}
.press-link:hover h3{color:var(--blue)}
.press-link:hover .press-arrow{transform:translate(2px,-2px)}
.press-link:focus-visible{outline:2px solid var(--blue);outline-offset:5px;border-radius:2px}
.press-language-note{margin-top:18px}
html:lang(zh-CN) .press-language-note{display:none}
html:lang(en) .press-copy p{line-height:1.65}
@media(max-width:700px){.press-heading{display:block;margin-bottom:24px}.press-heading>p{margin-top:16px}.press-link{grid-template-columns:minmax(0,1fr) 20px;gap:12px 16px;padding-block:24px}.press-meta{grid-column:1;display:flex;flex-wrap:wrap;gap:5px 16px}.press-copy{grid-column:1}.press-arrow{grid-column:2;grid-row:2}.press-copy p{font-size:14px}.press-heading h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.press-arrow{transition:none}.press-link:hover .press-arrow{transform:none}}
