/* Roofline: photographic craft, legible type, layered material. Scoped to its 13 routes. */
:root{--body-size:21px;--label-size:16px;--control-height:58px;--control-pad:24px;--copy:#414e46}
body{font-size:21px;line-height:1.6}main p{font-size:21px;line-height:1.6}main h1{letter-spacing:-.045em;line-height:1.08;font-weight:500}main h2{font-size:clamp(36px,3.6vw,52px);line-height:1.12;letter-spacing:-.035em}main h3{font-size:28px;line-height:1.25}
.label,.opening .label,.hero-kicker,.micro{font-size:16px;line-height:1.5;letter-spacing:.035em}small,.small{font-size:16px!important}.header nav{font-size:18px;gap:28px}.header nav a{padding:8px 0}.header{height:108px}.header.over-hero{background:linear-gradient(180deg,#15202a8f,#15202a00)}.preview-strip{font-size:13px;letter-spacing:.015em}.breadcrumb{font-size:16px;padding-bottom:24px;padding-top:18px}
.btn,.btn.light,.nav-cta,.back,.material-tabs button,.guide-options button,.opening .btn{font-size:18px;line-height:1.4;padding:17px 24px;min-height:58px;border-radius:12px;gap:24px}.btn:hover,.btn.light:hover{font-size:18px;padding:17px 24px;transform:translateY(-2px)}.btn:active,.nav-cta:active{transform:translateY(2px);box-shadow:inset 0 2px 4px #0003,0 1px 0 #122219}.btn:focus-visible,.nav-cta:focus-visible{outline:3px solid #738f7f;outline-offset:6px}
.hero{height:calc(100svh - 40px);min-height:800px;max-height:1060px}.hero-content{bottom:118px;gap:7%}.hero h1{font-size:clamp(56px,5.4vw,78px);line-height:1.08;max-width:780px}.hero-side{min-width:310px;max-width:350px}.hero-side p{font-size:22px;line-height:1.55;margin-bottom:30px}.hero-kicker{margin-bottom:25px}.hero-bottom{font-size:15px;bottom:32px;letter-spacing:.02em}.hero-shade{background:linear-gradient(0deg,#101b20f0 0%,#101b2085 29%,#101b2000 62%)}
.glass-edit{width:305px;min-height:184px;top:160px;padding:26px;gap:18px}.glass-edit strong{font-size:30px;line-height:1.15;max-width:230px}.glass-edit .micro{font-size:14px;letter-spacing:.05em}.glass-edit-foot{font-size:17px;line-height:1.4}.glass-edit-surface{border-radius:20px;background:#192b37ad;box-shadow:inset 0 1px 0 #ffffffa1,inset 0 -2px 0 #0b1c2d66,0 15px 30px #06131e26;backdrop-filter:blur(12px);border:1px solid #deeaf08a}.glass-edit-foot b{font-size:22px}
/* Physical image frames: broad photo planes, a fine bevel, and a near caption. */
.opening,.reading-opening,.archive-opening,.contact-opening{border-radius:24px;margin-left:28px;margin-right:28px;box-shadow:inset 0 1px 0 #fff,0 14px 36px #20382a0a}.opening{padding:72px 5% 116px;min-height:740px;overflow:visible;background:#e9ede6}.opening h1,.opening--workshop h1,.opening--detail h1,.reading-opening h1,.archive-opening h1,.contact-opening h1{font-size:clamp(50px,4.8vw,70px);line-height:1.08;letter-spacing:-.045em}.opening-copy{width:47%;max-width:620px}.opening--workshop .opening-copy{width:49%;padding:0}.opening-lead{font-size:22px;line-height:1.55;max-width:480px;margin-top:28px}.opening .label{margin-bottom:28px}.opening .btn{margin-top:32px;min-width:0}.opening-art{overflow:hidden}.opening-caption{font-size:15px;line-height:1.5;letter-spacing:.035em;bottom:28px;padding-top:22px;color:#4e6054}.opening-caption span:last-child{font-size:13px}.opening-light{display:none}
.opening--specimen .opening-art{inset:56px 0 95px 46%;overflow:visible}.opening--specimen .opening-media img{filter:drop-shadow(0 28px 18px #16302225);object-fit:contain}.opening--specimen .opening-media{transform-origin:45% 60%}
.opening--material{background:#26382f;color:#fff}.opening--material .opening-art{inset:55px 1% 85px 48%;overflow:visible}.opening--material .opening-media img{filter:drop-shadow(0 24px 22px #06130c73)}.opening--material .opening-lead{color:#e1e7e2}.opening--material .opening-caption{color:#d2dfd4}
.opening--workshop{background:#ebece4}.opening--workshop .opening-art{inset:32px 32px 110px 54%;border-radius:20px;box-shadow:0 2px 0 #fff,0 24px 36px -20px #192b2359}.opening--detail .opening-art{inset:32px 32px 110px 52%;border-radius:20px;box-shadow:0 2px 0 #fff,0 24px 36px -20px #192b2359}.opening--detail .opening-copy{width:46%}.opening--detail{background:#e8ede7}.opening--replacement{background:#ecece2}.opening--metal{background:#dfe7e2}.opening--detail .opening-media img{object-position:60% center}.opening--workshop .opening-media img{object-position:65% center}
.craft-caption{position:absolute;z-index:4;bottom:137px;right:54px;width:310px;padding:22px 24px;background:#f5f7f1f2;color:#25382c;box-shadow:inset 0 1px 0 #fff,0 14px 30px #13271926;border:1px solid #fffffff0;border-radius:14px;pointer-events:none;backdrop-filter:blur(12px)}.craft-caption strong{display:block;font-size:23px;font-weight:500;line-height:1.2;letter-spacing:-.025em}.craft-caption span{display:block;font-size:17px;line-height:1.45;margin-top:10px}
.opening--journal{background:#eeeee5;min-height:730px}.opening--journal .opening-art{inset:40px 0 90px 46%;overflow:visible}.opening--journal .opening-copy{width:45%}.opening--journal .opening-media img{filter:drop-shadow(0 24px 18px #3e402526)}
.opening--project,.opening--story{overflow:hidden;min-height:780px;background:#182d23;color:#fff}.opening--project .opening-art,.opening--story .opening-art{inset:0}.opening--project .opening-light,.opening--story .opening-light{display:block;background:linear-gradient(90deg,#0b201be0 0%,#0b201b6b 42%,#0b201b00 73%),linear-gradient(0deg,#0b201b9c,transparent 38%)}.opening--project .opening-copy,.opening--story .opening-copy{width:53%;padding-top:190px;max-width:730px}.opening--project h1,.opening--story h1{font-size:clamp(58px,5.3vw,76px)}.opening--project .opening-lead,.opening--story .opening-lead{font-size:22px;color:#f1f4ed;max-width:490px}.opening--project .opening-caption,.opening--story .opening-caption{color:#e3e9e3}
/* The note is now a photo-led reading opening; all copy stays outside the photo. */
.reading-opening{background:#e9ede5;padding:74px 5% 54px;min-height:700px;overflow:visible;display:grid;grid-template-columns:.95fr 1.05fr;gap:6%;align-items:center}.reading-opening>.reading-copy{position:relative;z-index:2;max-width:none;grid-column:1;grid-row:1}.reading-visual{position:relative;grid-column:2;grid-row:1;height:550px;overflow:hidden;border-radius:20px;box-shadow:0 2px #fff,0 22px 35px -18px #253c3155}.reading-visual img{width:100%;height:100%;object-fit:cover;object-position:62% center}.reading-opening p:not(.label){font-size:22px;max-width:440px}.reading-opening .btn{margin-top:30px}.reading-meta{font-size:15px;letter-spacing:.025em;line-height:1.5;gap:25px;margin-top:46px}
.archive-opening{background:#253a2f;grid-template-columns:1fr 1fr;min-height:690px;gap:7%;padding:64px 5%}.archive-opening p:not(.label){font-size:22px;color:#dce6dd}.archive-preview{height:490px;position:relative;overflow:hidden;border-radius:18px;background:#dce4d9;box-shadow:0 2px #c9d9ce,0 24px 35px #101c2840}.archive-preview .opening-media{bottom:85px;overflow:hidden}.archive-preview img{width:100%;height:100%;object-fit:cover;object-position:top}.archive-preview figcaption{position:absolute;bottom:0;left:0;right:0;font-size:20px;line-height:1.4;padding:16px 24px;background:#e7ede4;color:#283c30}
.contact-opening{background:#e8ece4;padding:58px 5%;grid-template-columns:1fr 1fr;gap:7%;align-items:start}.contact-opening h1{font-size:clamp(50px,4.9vw,72px)}.contact-opening>div>p:not(.label):not(.small){font-size:23px}.contact-craft{margin-top:34px;margin-bottom:24px;max-width:580px}.contact-art{border-radius:18px;overflow:hidden;aspect-ratio:1.6;box-shadow:0 2px #fff,0 18px 28px -16px #263c2952}.contact-art img{width:100%;height:100%;object-fit:cover}.contact-craft figcaption{font-size:16px;line-height:1.5;margin-top:16px}.contact-layout form{padding:35px;border-radius:20px;background:#fcfdf9;border:1px solid #fff;box-shadow:0 3px #d5ded0,0 20px 40px #243a2714}.contact-layout label,.choice-group legend{font-size:18px}.contact-layout h2{font-size:31px}.contact-layout input:not([type=radio]),.contact-layout textarea{font-size:20px}.form-progress{font-size:16px}.contact-layout form .small{font-size:16px!important}
/* Readability across the body, with a limited type spread. */
.intro p,.section-head>p,.sample-copy p,.featured-copy p,.steps p,.service-detail aside p,.questions p,.article p,.story p,.story-intro p,.home-chapter p,.detail-copy>p:not(.label),.approach-points p{font-size:21px;line-height:1.65}.service-row p{font-size:19px}.service-row h3{font-size:29px}.sample-copy dl>div{font-size:18px}.step p,.footer-top p{font-size:20px}.footer-bottom,.footer-bottom p{font-size:15px}.footlink{font-size:18px}.core-item strong{font-size:29px}.core-item .micro{font-size:16px}.core-item{padding:30px}.chapter-nav{font-size:18px}.approach-story figcaption,.detail-chapter figcaption,.home-chapter figcaption{font-size:16px}.utility-dock .motion-switch{font-size:14px}.utility-dock .guide-trigger{font-size:16px}.utility-dock small{font-size:12px!important}
@media(max-width:1180px){.header nav{gap:18px;font-size:16px}.nav-cta{font-size:16px;padding:16px 18px;gap:16px}.opening h1,.opening--workshop h1,.opening--detail h1,.reading-opening h1,.archive-opening h1{font-size:54px}.opening-lead{font-size:21px}.opening{min-height:720px}.hero-side{min-width:280px;max-width:320px}.hero-side p{font-size:21px}.craft-caption{width:260px;right:50px}.contact-opening{gap:5%}.contact-layout form{padding:25px}}
@media(max-width:1080px){.header nav{display:none;position:absolute;top:90px;left:4%;right:4%;background:#fff;color:#17251c;border:1px solid #d1dad3;border-radius:16px;padding:24px;box-shadow:0 14px 30px #07130b33}.header nav.open{display:flex;flex-direction:column;gap:6px}.header nav a{font-size:20px;min-height:48px;padding:12px;white-space:normal}.header nav .mobile-project{display:flex;justify-content:space-between;border-top:1px solid #d1dad3;margin-top:6px}.menu{display:flex}.header nav a:after{display:none}.header-actions{margin-left:auto}}
@media(max-width:960px){.hero-content{display:block}.hero-side{display:flex;max-width:none;gap:28px;margin-top:28px}.hero-side p{max-width:390px}.opening-copy{width:47%}.opening--workshop .opening-copy{width:48%}.opening h1,.opening--workshop h1,.opening--detail h1{font-size:48px}.opening .btn{font-size:17px;padding:17px 20px}.craft-caption{right:40px;bottom:137px;width:240px;padding:18px}.craft-caption strong{font-size:22px}.contact-opening{grid-template-columns:1fr;gap:40px}.contact-craft{max-width:none}.contact-art{aspect-ratio:2}.reading-opening{gap:4%}.reading-visual{height:500px}.archive-opening h1{font-size:48px}}
@media(max-width:700px){
 body{font-size:20px}main p{font-size:20px}main h2{font-size:36px}main h3{font-size:27px}.label,.opening .label,.hero-kicker,.micro{font-size:15px}.preview-strip{font-size:12px;min-height:44px;gap:16px}.header{height:90px}.header.over-hero{top:44px}.breadcrumb{font-size:16px;padding:14px 6% 22px}.brand{font-size:27px}
 .hero{padding-top:144px;min-height:900px;height:auto;max-height:none}.hero h1{font-size:clamp(41px,10.7vw,58px);line-height:1.08;letter-spacing:-.045em}.hero-content{margin:180px 6% 35px}.hero-side{display:block;max-width:none;min-width:0;margin-top:24px}.hero-side p{font-size:21px;line-height:1.5;margin-bottom:28px}.hero-side .btn{font-size:18px;min-width:0;width:auto;padding:17px 22px}.hero-kicker{font-size:14px;margin-bottom:21px}.hero-bottom{font-size:13px;margin-bottom:38px}.glass-edit{width:260px;min-height:0;padding:21px;gap:12px;margin:0 6%;top:auto}.glass-edit strong{font-size:27px;max-width:220px}.glass-edit .micro{font-size:13px}.glass-edit-foot{font-size:16px}.glass-edit-surface{border-radius:18px}.hero-photo{object-position:66% center}
 .opening,.reading-opening,.archive-opening,.contact-opening{margin:0 12px 40px;border-radius:20px;min-height:0;padding:38px 7% 32px}.opening{display:flex;flex-direction:column;overflow:hidden}.opening-copy,.opening--workshop .opening-copy,.opening--detail .opening-copy,.opening--journal .opening-copy{width:100%;max-width:none;padding:0;order:1}.opening h1,.opening--workshop h1,.opening--detail h1,.opening--project h1,.opening--story h1,.reading-opening h1,.archive-opening h1,.contact-opening h1{font-size:clamp(40px,10.5vw,54px);line-height:1.1;letter-spacing:-.04em}.opening .label{font-size:15px;margin-bottom:22px}.opening-lead,.opening--project .opening-lead,.opening--story .opening-lead{font-size:21px;line-height:1.55;margin-top:25px;max-width:none}.btn,.btn.light,.opening .btn,.btn:hover,.btn.light:hover{font-size:18px;padding:17px 22px;min-height:58px;gap:20px;max-width:100%;white-space:normal}.opening .btn{margin-top:28px}.opening-art,.opening--specimen .opening-art,.opening--material .opening-art,.opening--journal .opening-art,.opening--workshop .opening-art,.opening--detail .opening-art{position:relative;inset:auto;order:2;width:100%;height:300px;margin:30px 0 0;border-radius:18px;overflow:hidden}.opening--specimen .opening-art,.opening--material .opening-art,.opening--journal .opening-art{overflow:visible;height:310px;width:112%;margin-left:-6%;margin-right:-6%}.opening--material .opening-art{height:330px}.opening--workshop .opening-art{height:360px}.opening--detail .opening-art{height:330px}.craft-caption{position:relative;inset:auto;order:3;width:calc(100% - 28px);margin:-55px 14px 0;padding:20px;z-index:4}.craft-caption strong{font-size:23px}.craft-caption span{font-size:17px}.opening-caption{position:static;order:4;font-size:13px;padding-top:20px;margin-top:28px;line-height:1.6;flex-wrap:wrap;gap:8px}.opening-caption span:first-child{max-width:100%}.opening-caption span:last-child{font-size:12px}
 .opening--project,.opening--story{display:block;min-height:870px;padding-top:300px}.opening--project .opening-art,.opening--story .opening-art{position:absolute;inset:0;height:100%;width:100%;margin:0;border-radius:20px;z-index:0}.opening--project .opening-copy,.opening--story .opening-copy{padding:0;width:100%;max-width:none}.opening--project .opening-light,.opening--story .opening-light{border-radius:20px;background:linear-gradient(0deg,#0b211cf5 0%,#0b211cbd 42%,#0b211c00 88%)}.opening--project .opening-caption,.opening--story .opening-caption{position:relative}.opening--project .opening-media img,.opening--story .opening-media img{object-position:64% center}
 .reading-opening{display:flex;flex-direction:column;gap:32px;padding-bottom:32px}.reading-opening>.reading-copy{order:1;max-width:none}.reading-visual{order:2;width:100%;height:340px;flex-shrink:0}.reading-opening p:not(.label){font-size:21px;max-width:none}.reading-meta{font-size:14px;margin-top:30px;gap:18px;flex-wrap:wrap}.archive-opening{display:block;padding-top:40px;padding-bottom:36px}.archive-opening p:not(.label){font-size:21px}.archive-preview{height:380px;margin-top:40px}.archive-preview figcaption{font-size:20px}
 .contact-opening{padding:36px 6%;gap:35px}.contact-opening>div>p:not(.label):not(.small){font-size:22px}.contact-craft{margin-top:28px}.contact-art{aspect-ratio:1.35}.contact-craft figcaption{font-size:16px}.contact-layout form{padding:27px 18px}.contact-layout h2{font-size:29px}.contact-layout label,.choice-group legend{font-size:18px}.contact-layout input:not([type=radio]),.contact-layout textarea{font-size:19px;padding:16px 12px}.form-progress{font-size:14px}.contact-layout form .small{font-size:16px!important}
 .intro p,.section-head>p,.sample-copy p,.featured-copy p,.steps p,.service-detail aside p,.questions p,.article p,.story p,.story-intro p,.home-chapter p,.detail-copy>p:not(.label),.approach-points p{font-size:20px;line-height:1.6}.service-row h3{font-size:26px}.service-row p{font-size:18px}.service-row,.service-row:hover{grid-template-columns:76px minmax(0,1fr);gap:18px;padding:28px 0}.service-row .row-num{display:none}.service-row img{height:115px}.sample-copy dl>div{font-size:17px}.chapter-nav{font-size:17px}.footlink{font-size:18px}.footer-bottom,.footer-bottom p{font-size:15px}.utility-dock .motion-switch{font-size:13px;min-height:44px;padding:10px 12px}.utility-dock .guide-trigger{font-size:14px;min-height:44px;padding:10px 12px}.utility-dock .guide-trigger small{font-size:11px!important}.utility-dock{gap:12px}.utility-dock>button{max-width:calc(50% - 6px)}
}
@media(max-width:360px){.hero-content{margin-top:160px}.hero h1{font-size:39px}.glass-edit{width:245px;max-width:88%}.hero-side .btn{font-size:17px;padding:17px 18px}.opening h1,.opening--workshop h1,.opening--detail h1,.reading-opening h1,.contact-opening h1,.archive-opening h1{font-size:38px}.opening .btn{font-size:17px;padding:17px 18px}.opening-lead{font-size:20px}.craft-caption{width:calc(100% - 16px);margin-left:8px;margin-right:8px;padding:17px}.service-row,.service-row:hover{grid-template-columns:64px minmax(0,1fr);gap:14px}.service-row h3{font-size:24px}.contact-layout form{padding:24px 15px}.hero-bottom{font-size:12px}}
@media(prefers-reduced-motion:reduce){.craft-caption,.glass-edit-surface,.contact-art{transform:none!important}.btn:hover{transform:none}.opening-media{transform:none!important}}
[data-motion-off] .craft-caption,[data-motion-off] .glass-edit-surface,[data-motion-off] .contact-art{transform:none!important}
/* Moving translucent planes use stable paint, avoiding backdrop-filter artifacts. */
.glass-edit-surface{backdrop-filter:none;background:linear-gradient(150deg,#536876e8,#1b2c36f5);box-shadow:inset 0 1px 0 #ffffffa1,inset 0 -2px 0 #0b1c2d66,0 15px 30px #06131e26}
.craft-caption{backdrop-filter:none;background:#f3f5effa}
@media(min-width:701px){.hero{height:min(900px,calc(100svh - 40px))}}
/* Phone art direction: let the crew photograph breathe; prioritize the project action. */
@media(max-width:700px){.hero .glass-edit{display:none}.hero{padding-top:365px;min-height:900px}.hero-content{margin:0 6% 38px}.hero-art img{object-position:65% center}.hero-bottom{margin-top:auto}}
.opening--material .btn,.opening--project .btn,.opening--story .btn{background:linear-gradient(160deg,#fcfdf8,#e4ebe1);color:#23382b;border-color:#e7eee2;box-shadow:inset 0 1px #fff,0 3px #8f9f90,0 8px 15px #07190d20}
.archive-preview{height:auto;align-self:center}.archive-preview .opening-media{position:relative;inset:auto;aspect-ratio:1.44}.archive-preview img{object-fit:contain;aspect-ratio:1.44}.archive-preview figcaption{position:relative;inset:auto;padding:20px 24px}
@media(max-width:700px){.archive-preview{height:auto}.opening--project,.opening--story{min-height:0}}
