.havens-page{--ink:#171717;--muted:#666;--panel:#f1f1f1;--rule:#d8dbd7;max-width:1220px;margin:0 auto;padding:92px 32px 120px;color:var(--ink)}
.havens-page *{box-sizing:border-box}.opening{padding:0 0 54px;border-bottom:1px solid var(--rule)}.opening h1{max-width:980px;margin:0;font-size:clamp(2.6rem,6.2vw,6.2rem);line-height:.96;letter-spacing:-.055em;font-weight:650}.question{max-width:760px;margin:38px 0 0;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.45}.opening-meta{display:flex;flex-direction:column;align-items:flex-start;gap:13px;padding-top:34px}.project-place{font-size:13px;color:#42483f}.mode-buttons,.method-buttons{display:flex;flex-wrap:wrap;gap:8px}.mode-buttons a,.method-buttons span{padding:10px 15px;border:1px solid #777d78;background:#eef2ec;color:var(--ink);font-size:13px;line-height:1}.method-buttons span{background:#fff}
figure{margin:0}.hero{margin:54px 0 64px}.hero img,.contain img,.image-grid img{display:block;width:100%;height:auto}.panel,.chapter{width:min(100%,1040px);margin-left:auto;margin-right:auto}.panel{background:var(--panel);padding:clamp(28px,4vw,52px);border-radius:2px}.panel h2,.chapter>h2{margin:0;font-size:clamp(1.45rem,2.3vw,2.05rem);letter-spacing:-.025em}.overview .copy{width:min(100%,790px);margin:32px auto 0}.copy p,.copy-block p{margin:0 0 1em;font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.7}.copy p:last-child,.copy-block p:last-child{margin-bottom:0}
.chapter{padding:86px 0 0}.chapter>h2{padding-bottom:0}.chapter>h2 span{display:inline-block;width:3.2rem;color:#777;font-weight:500}.copy-block{width:min(100%,790px);margin:42px auto 48px}.copy-block h3{margin:0 0 18px;font-size:1.25rem}.contain{width:100%;background:#fff}.contain img{object-fit:contain}.image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.image-grid figure{overflow:hidden}.image-grid img{aspect-ratio:16/9;object-fit:contain;background:#f6f6f6}
.scroll-gallery{display:flex;gap:18px;overflow-x:auto;margin:56px calc(50% - 50vw) 0;padding:0 max(32px,calc((100vw - 1220px)/2 + 32px)) 18px;scroll-snap-type:x proximity;scrollbar-width:thin}.scroll-gallery figure{flex:0 0 min(68vw,720px);scroll-snap-align:start;background:#f5f5f5}.scroll-gallery img{display:block;width:100%;height:auto}.project-info{margin-top:92px}.project-info h2{margin-bottom:32px}.project-info dl{width:min(100%,790px);margin:0 auto}.project-info dl div{display:grid;grid-template-columns:minmax(150px,.3fr) 1fr;gap:30px;padding:16px 0;border-top:1px solid #d0d0d0}.project-info dt{color:var(--muted)}.project-info dd{margin:0}
@media(max-width:700px){.havens-page{padding:70px 18px 80px}.opening{padding-bottom:40px}.question{margin-top:26px}.opening-meta{padding-top:26px}.hero{margin:36px 0 44px}.panel{padding:24px}.overview .copy{margin-top:24px}.chapter{padding-top:62px}.copy-block{margin:30px auto 36px}.image-grid{grid-template-columns:1fr;gap:12px}.scroll-gallery{margin-top:40px;padding-left:18px;padding-right:18px}.scroll-gallery figure{flex-basis:82vw}.project-info{margin-top:64px}.project-info dl div{grid-template-columns:1fr;gap:5px}.chapter>h2 span{width:2.7rem}}
.havens-page .chapter{border-top:0!important}


/* Opening divider and paired overview. */
.havens-page>.opening{border-bottom:1px solid var(--rule)!important}
.havens-page .overview-pair{display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);gap:clamp(24px,3.5vw,48px);align-items:stretch;margin:clamp(54px,7vw,84px) auto 0;width:min(100%,1040px)}
.havens-page .overview-pair .hero{margin:0}
.havens-page .overview-pair .hero img{width:100%;height:100%;object-fit:cover}
.havens-page .overview-pair .panel{width:auto;margin:0}
@media(max-width:760px){.havens-page .overview-pair{grid-template-columns:1fr}.havens-page .overview-pair .hero img{height:auto}}
