/* Editorial interactions informed by Harvard Innovation Labs. */
:root{--editorial-ease:cubic-bezier(.16,1,.3,1)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.text-link,.desktop-nav a,.nav-join,.footer-links a,.announcement a{position:relative;text-decoration:none!important}
.text-link::after,.desktop-nav a::after,.nav-join::after,.footer-links a::after,.announcement a::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--editorial-ease)}
.text-link:hover::after,.text-link:focus-visible::after,.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after,.desktop-nav a[aria-current]::after,.nav-join:hover::after,.nav-join:focus-visible::after,.footer-links a:hover::after,.footer-links a:focus-visible::after,.announcement a:hover::after,.announcement a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.nav-join{border:0}.nav-join::after{transform:scaleX(1)}.nav-join:hover::after{animation:line-pass .65s var(--editorial-ease)}
@keyframes line-pass{0%{transform:scaleX(1);transform-origin:right}49%{transform:scaleX(0);transform-origin:right}50%{transform-origin:left}100%{transform:scaleX(1);transform-origin:left}}
.button{position:relative;isolation:isolate;overflow:hidden;transition:color .4s var(--editorial-ease),background .4s var(--editorial-ease)}
.button::before{content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .4s var(--editorial-ease)}
.button:hover::before,.button:focus-visible::before{transform:scaleY(1)}.button:hover,.button:focus-visible{background:var(--maroon);color:#fff}.button>span{transition:transform .4s var(--editorial-ease)}.button:hover>span,.button:focus-visible>span{transform:translate(3px,-3px)}
.button-light::before{background:#eadfd8}.button-light:hover,.button-light:focus-visible{color:var(--maroon);background:#fff}
.path{position:relative;isolation:isolate;overflow:hidden;text-decoration:none;transition:color .4s var(--editorial-ease),background .4s var(--editorial-ease)}
.path::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--maroon);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--editorial-ease)}
.path:hover::before,.path:focus-visible::before{transform:scaleY(1)}.path h3{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:6px;text-decoration-thickness:1px;transition:text-decoration-color .4s var(--editorial-ease)}
.path:hover,.path:focus-visible{color:#fff}.path:hover h3,.path:focus-visible h3{text-decoration-color:currentColor}.path:hover p,.path:hover .path-number,.path:hover .path-tag,.path:focus-visible p,.path:focus-visible .path-number,.path:focus-visible .path-tag{color:#f1dede}.path>p,.path-number,.path-tag{transition:color .4s var(--editorial-ease)}.path .text-link::after{transform:scaleX(1)}
.statement .editorial-link{color:var(--maroon);text-decoration:underline;text-underline-offset:.12em;text-decoration-thickness:.035em;box-shadow:inset 0 0 0 var(--maroon);transition:box-shadow .4s var(--editorial-ease),color .4s var(--editorial-ease);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.statement .editorial-link:hover,.statement .editorial-link:focus-visible{box-shadow:inset 0 -1.2em 0 var(--maroon);color:#fff}
.statement-note{font-size:12px;line-height:20px;letter-spacing:1.5px;color:var(--maroon);align-self:start;padding-top:8px;flex-shrink:0}
.community-row{position:relative;isolation:isolate;grid-template-columns:1fr 2.3fr 1fr;overflow:hidden;transition:color .4s var(--editorial-ease)}
.community-row::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--maroon);transform:scaleY(0);transform-origin:center bottom;transition:transform .4s var(--editorial-ease)}
.community-row>*{transition:color .4s var(--editorial-ease),transform .4s var(--editorial-ease)}.community-row p{transition:color .4s var(--editorial-ease)}.community-row:hover::before,.community-row:focus-visible::before{transform:scaleY(1)}
.community-row:hover,.community-row:focus-visible{color:#fff;background:transparent}.community-row:hover .row-category,.community-row:hover p,.community-row:hover .row-status,.community-row:focus-visible .row-category,.community-row:focus-visible p,.community-row:focus-visible .row-status{color:#f1dede}.community-row:hover>.row-category,.community-row:hover>div,.community-row:focus-visible>.row-category,.community-row:focus-visible>div{transform:translateX(12px)}.community-row:hover>.row-status,.community-row:focus-visible>.row-status{transform:translateX(-12px)}
.guides details{overflow:hidden}.guides summary{transition:color .4s var(--editorial-ease),padding .4s var(--editorial-ease)}.guides summary:hover{padding-inline:8px}.guides summary:focus-visible{outline-offset:-3px}.guides details[open] summary{color:var(--maroon)}
/* Four photographs share a fixed frame, so changing slides never shifts content. */
.hero-gallery .hero-photo{height:540px;touch-action:pan-y;isolation:isolate}.hero-slide{position:absolute;inset:0;opacity:0;z-index:0;transition:opacity 1s var(--editorial-ease);pointer-events:none}.hero-slide.is-active{opacity:1;z-index:1}.hero-slide img{height:100%;width:100%;object-position:center 20%}.hero-slide:nth-child(2) img{object-position:center 43%}.hero-slide:nth-child(3) img{object-position:38% 43%}.hero-slide:nth-child(4) img{object-position:center 50%}
.hero-gallery .hero-caption{min-height:48px;margin-top:8px;gap:24px}.hero-caption>#slide-caption{font-size:12px;line-height:20px;letter-spacing:.6px}.carousel-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.slide-count{font-size:12px;line-height:20px;font-variant-numeric:tabular-nums;letter-spacing:1px;margin-right:16px;color:var(--muted)}.carousel-controls button{display:grid;place-items:center;width:40px;height:40px;background:transparent;border:1px solid transparent;color:var(--ink);cursor:pointer;font-size:20px;line-height:24px}.carousel-controls button:hover,.carousel-controls button:focus-visible{background:var(--maroon);color:white}.carousel-controls .slide-pause{font-size:12px;line-height:20px;width:64px;border-color:var(--line);margin-left:8px}.carousel-controls button:focus-visible{outline-offset:2px}
/* The native modal supplies focus containment and an inert page beneath it. */
.menu-dialog{position:fixed;inset:0;margin:0;padding:40px 48px 64px;border:0;width:100vw;height:100dvh;max-width:none;max-height:none;color:#fff;background:#181818;opacity:0;transform:translateY(-16px);transition:opacity .3s var(--editorial-ease),transform .4s var(--editorial-ease)}.menu-dialog::backdrop{background:#181818}.menu-dialog.is-open{opacity:1;transform:translateY(0)}
.menu-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:32px;border-bottom:1px solid #494945;font-size:12px;letter-spacing:1.5px}.menu-close{display:flex;align-items:center;gap:24px;background:none;color:#fff;border:1px solid #777;padding:12px 16px;cursor:pointer;font-size:14px}.menu-close>span{font-size:24px;line-height:24px}.menu-close:hover{background:#fff;color:var(--ink)}
.menu-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;padding-top:64px}.menu-note>.eyebrow{color:#c7aaa5}.menu-note>p:not(.eyebrow){font-size:48px;line-height:1;letter-spacing:-2px}.menu-note>span{display:block;margin-top:40px;color:#b8b8b2;font-size:14px}.menu-links{display:flex;flex-direction:column}.menu-links>a{font-size:48px;line-height:1;letter-spacing:-2px;padding:24px 0;border-bottom:1px solid #494945;display:flex;gap:32px;align-items:center;opacity:0;transform:translateY(16px);transition:opacity .5s var(--editorial-ease),transform .5s var(--editorial-ease),color .3s var(--editorial-ease),background .3s var(--editorial-ease)}.menu-links>a>span{font-size:12px;line-height:20px;letter-spacing:1px;color:#aaa;transition:color .3s var(--editorial-ease)}.menu-dialog.is-open .menu-links>a{opacity:1;transform:translateY(0);transition-delay:calc(var(--link-order,0)*45ms)}.menu-links>a:hover,.menu-links>a:focus-visible{background:#fff;color:var(--ink)}.menu-links>a:hover>span,.menu-links>a:focus-visible>span{color:var(--maroon)}
@media(min-width:1600px){.hero-gallery .hero-photo{height:640px}}
@media(max-width:1100px){.hero-gallery .hero-photo{height:440px}.community-row{grid-template-columns:1fr 2.5fr}.menu-layout{gap:48px}.menu-links>a{font-size:36px;line-height:40px;letter-spacing:-1px}}
@media(max-width:850px){.hero-gallery .hero-photo{height:400px}.menu-dialog{padding:32px 24px}.menu-layout{grid-template-columns:1fr;padding-top:40px;gap:40px}.menu-note>p:not(.eyebrow){font-size:36px;line-height:40px}.menu-note>span{display:none}.menu-links>a{padding:16px 0}.menu-note>.eyebrow{margin-bottom:16px}}
@media(max-width:600px){.hero-gallery .hero-photo{height:320px}.hero-slide:first-child img{object-position:center}.hero-slide:nth-child(2) img{object-position:40% center}.hero-slide:nth-child(3) img{object-position:32% center}.hero-gallery .hero-caption{display:grid;grid-template-columns:1fr;gap:4px;margin-top:12px}.hero-caption>#slide-caption{max-width:none;min-height:20px}.carousel-controls{justify-content:flex-end;gap:4px}.slide-count{margin-right:auto}.carousel-controls .slide-pause{margin-left:8px}.statement-bottom{display:grid;grid-template-columns:1fr;gap:24px}.statement-note{padding:0}.community-row{grid-template-columns:1fr;gap:12px}.row-category{grid-column:auto}.community-row:hover>.row-category,.community-row:hover>div,.community-row:focus-visible>.row-category,.community-row:focus-visible>div{transform:translateX(8px);padding-right:16px}.menu-dialog{padding:24px 16px}.menu-layout{padding-top:32px;gap:32px}.menu-note{display:none}.menu-links>a{font-size:36px;line-height:40px;letter-spacing:-1px;padding:24px 0;gap:24px}.menu-top{padding-bottom:24px}.menu-links>a>span{padding-left:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.hero-slide{transition:none}.menu-dialog,.menu-links>a{transform:none}}
