@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--green:#183c31;--ink:#243a31;--cream:#f5f3eb;--line:#d8dcd2;--sage:#b8c5aa;--muted:#68736b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #b39a52;outline-offset:5px}img{display:block;width:100%;height:100%;object-fit:cover}figure,p,h1,h2,h3{margin:0}p{color:var(--muted)}h1,h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;line-height:1.04;letter-spacing:-.035em}h1{font-size:clamp(62px,6.8vw,110px)}h2{font-size:clamp(42px,4.15vw,66px)}h1 em,h2 em{font-weight:400;font-style:italic}h3{font-size:23px;line-height:1.3;font-weight:500;letter-spacing:-.6px}.skip{position:fixed;top:-100px;z-index:30;padding:12px;background:white}.skip:focus{top:0}header{height:96px;padding:0 4.4%;display:flex;align-items:center;gap:35px;background:var(--cream);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;line-height:1;font-family:Georgia,serif;font-size:25px;letter-spacing:2px}.brand small{font:9px 'DM Sans',sans-serif;letter-spacing:4px;display:block;margin-top:7px}.brand svg{width:39px;height:44px;fill:none;stroke:currentColor;stroke-width:1.4}header nav{display:flex;gap:32px;margin-left:auto;font-size:13px}header nav a{border-bottom:1px solid transparent}header nav a:hover{border-color:var(--green)}.header-cta{font-size:13px;display:flex;gap:28px;align-items:center;border:1px solid var(--green);padding:11px 18px;margin-left:16px}.header-cta:hover{background:var(--green);color:white}.menu{display:none}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.6px;line-height:1.5}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:655px}.hero-copy{background:var(--green);color:var(--cream);padding:55px 9% 30px;display:flex;align-items:flex-start;flex-direction:column}.dot{display:inline-block;background:var(--sage);width:5px;height:5px;border-radius:50%;margin:0 6px 2px 0}.hero h1{margin:43px 0 24px}.hero h1 em{color:#c5d1b9}.hero p{color:#d3ddd2;font-size:15px;max-width:400px;line-height:1.8}.button{display:inline-flex;gap:45px;justify-content:space-between;align-items:center;padding:15px 22px;border:1px solid var(--green);background:var(--green);color:white;font-size:12px;margin-top:28px;transition:.2s}.button.light{color:var(--green);background:var(--cream);border-color:var(--cream)}.button:hover{background:var(--sage);color:var(--green);border-color:var(--sage)}.button span{font-size:20px;line-height:1}.hero-bottom{margin-top:auto;padding-top:45px;display:flex;justify-content:space-between;width:100%;align-items:end;font-size:9px;letter-spacing:1.2px;line-height:1.7}.hero-bottom a{font-size:11px;letter-spacing:0;border-bottom:1px solid #80988b;padding-bottom:4px;display:flex;gap:22px}.hero-image{position:relative;overflow:hidden}.hero-image img{object-position:42% center}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0b211f99,transparent 35%)}.hero-image figcaption{position:absolute;bottom:28px;left:30px;right:30px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:white;z-index:1}.image-mark{position:absolute;right:30px;top:25px;color:white;border:1px solid #ffffff77;border-radius:50%;height:56px;width:56px;display:grid;place-items:center;font:15px Georgia}.intro-strip{padding:22px 6%;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.4px;color:var(--muted)}.intro-strip span+span:before{content:'✦';margin-right:48px;color:#9ca994}.section{padding:83px 6%}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.small-note{font-size:9px;letter-spacing:1.2px;color:var(--muted)}.two-col{display:grid;grid-template-columns:1.25fr 1fr;gap:8%;align-items:center}.two-col .lead{font-size:16px;max-width:425px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:60px}.principles article{border-top:1px solid #aab8a9;padding-top:24px}.number{font-size:11px;color:var(--muted)}.principles h3{margin:25px 0 16px}.principles p{font-size:13px;max-width:325px}.modular{display:grid;grid-template-columns:1fr 1fr;background:#e7eade}.modular-photo{position:relative;min-height:640px}.modular-photo img{position:absolute;inset:0;object-position:center}.modular-photo>span{position:absolute;bottom:25px;left:30px;font-size:9px;letter-spacing:1.2px;color:white;background:#183c31cb;padding:10px 14px}.modular-copy{padding:60px 11%}.modular-copy h2{margin:27px 0}.modular-copy>p{font-size:13px;margin:15px 0}.process{display:flex;gap:0;border-bottom:1px solid #b9c5b3;margin-top:32px}.process button{background:none;border:0;border-bottom:2px solid transparent;padding:13px 0;margin-right:25px;font-size:11px}.process button[aria-selected=true]{border-color:var(--green);font-weight:700}.process-detail{padding-top:24px;min-height:155px}.track{display:flex;align-items:center;gap:15px;font-size:9px;margin-bottom:10px}.track>span{width:50px;letter-spacing:1px}.track>div{background:var(--green);color:white;padding:7px 12px;flex:1;font-size:10px}.track:nth-child(2)>div{background:#b9c6ac;color:var(--green)}#process-text{font-size:11px;line-height:1.6;margin-top:16px}.modular-copy .modular-foot{font-size:10px;border-top:1px solid #bec9b7;padding-top:18px;margin-top:20px}.text-link{font-size:12px;border-bottom:1px solid #a4b2a1;padding-bottom:6px;display:flex;gap:25px}.projects{padding-bottom:90px}.project-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:6%;margin-top:45px}.project-layout figure img{height:355px}.project-layout figcaption{font-size:10px;margin-top:10px;color:var(--muted)}.project-row{display:flex;text-align:left;background:none;border:0;border-top:1px solid var(--line);width:100%;gap:20px;padding:25px 0;transition:.2s}.project-row:last-of-type{border-bottom:1px solid var(--line)}.project-row:hover{padding-left:10px;background:#e9ecdf}.project-index{font-size:10px;color:var(--muted);padding-top:2px}.project-row small{display:block;font-size:9px;letter-spacing:1.3px}.project-row strong{display:block;font:29px 'Libre Caslon Display',Georgia,serif;margin:6px 0;line-height:1.1}.project-row>span>span{font-size:11px;color:var(--muted)}.project-row b{margin-left:auto;align-self:center;font-size:20px;font-weight:400}.project-note{font-size:10px;margin-top:18px}.discipline{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:var(--green);color:var(--cream);padding-top:80px;padding-bottom:80px}.discipline h2{margin:28px 0}.discipline em{color:#c5d1b9}.discipline p{color:#ccd7cd;font-size:13px;max-width:380px}.risk-list{padding-top:25px}.risk-list details{border-bottom:1px solid #597366}.risk-list details:first-child{border-top:1px solid #597366}summary{list-style:none;cursor:pointer;display:flex;align-items:center;padding:24px 0;font-size:19px;gap:20px;line-height:1.3}summary::-webkit-details-marker{display:none}summary>span{font-size:10px;color:#adc0ad}summary b{margin-left:auto;font-weight:400}details[open] summary b{transform:rotate(45deg)}.risk-list details p{padding:0 25px 25px 36px;font-size:12px}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:45px}.initials{height:155px;background:#e3e7d9;display:flex;align-items:center;justify-content:center;font:58px 'Libre Caslon Display',Georgia,serif;color:#52684d;position:relative}.initials>span{position:absolute;bottom:12px;right:14px;font:9px 'DM Sans',sans-serif}.team-grid article:nth-child(2) .initials{background:#d7dece}.team-grid article:nth-child(3) .initials{background:#dfe2d7}.team-grid article:nth-child(4) .initials{background:#d1d9c7}.team-grid h3{font-size:18px;margin:22px 0 8px}.team-grid small{font-size:8px;letter-spacing:1px;display:block;min-height:25px}.team-grid p{font-size:12px;line-height:1.8;margin-top:8px}.contact{border-top:1px solid var(--line);background:#e6e9dd;display:grid;grid-template-columns:1.3fr 1fr;gap:9%;align-items:center}.contact h2{margin:24px 0}.contact p{font-size:13px;max-width:460px}.contact-mail{font:32px 'Libre Caslon Display',Georgia,serif;display:flex;justify-content:space-between;border-bottom:1px solid #98aa96;padding-bottom:18px}.email{display:block;font-size:13px;margin:18px 0 42px}.email:hover{text-decoration:underline}.contact-right>.eyebrow{font-size:9px}footer{padding:40px 6% 24px;background:#f0f0e6}.footer-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:34px}.footer-top>.brand{font-size:21px}.footer-top>span{font:22px 'Libre Caslon Display',Georgia,serif}.footer-top>a:last-child{font-size:11px}.footer-bottom{display:flex;justify-content:space-between;padding-top:22px;font-size:9px;color:var(--muted)}.footer-bottom button{font-size:10px;border:0;background:none;padding:0;text-decoration:underline}.fine-print{font-size:10px;line-height:1.8;margin-top:22px;max-width:1050px}.footer-bottom>span:last-child{font-size:8px;letter-spacing:1.5px}dialog{border:0;background:var(--cream);color:var(--ink);padding:55px;width:min(630px,90vw);max-height:85dvh;overflow:auto;box-shadow:0 20px 90px #0004}dialog::backdrop{background:#0a211cbf;backdrop-filter:blur(5px)}.close{position:absolute;right:18px;top:10px;border:0;background:none;font-size:30px}.close:hover{color:#8c7031}dialog h2{font-size:48px;margin:22px 0}dialog p{font-size:14px;margin-top:18px}.dialog-facts{display:flex;gap:30px;border-top:1px solid var(--line);margin-top:25px;padding-top:20px;font-size:12px}dialog .fine-print{font-size:10px}
@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero{min-height:780px}.hero-copy{padding-top:75px}.hero h1{margin-top:60px}.section{padding-top:110px;padding-bottom:110px}.modular-copy{padding-top:85px;padding-bottom:85px}}
@media(max-width:1000px){header nav{gap:18px}.header-cta{margin-left:0}.hero{min-height:600px}.hero-copy{padding:40px 8% 25px}.hero h1{font-size:70px}.hero-bottom{display:none}.hero p{font-size:13px}.hero .button{gap:25px}.modular-copy{padding:45px 8%}.modular-copy h2{font-size:45px}.two-col{gap:5%}.team-grid{gap:18px}.team-grid h3{font-size:16px}.project-row strong{font-size:25px}.intro-strip span+span:before{margin-right:15px}.section{padding-top:65px;padding-bottom:65px}}
@media(max-width:760px){header{height:78px;padding:0 6%;gap:15px}.brand{font-size:21px}.brand svg{width:30px;height:35px}.brand small{font-size:8px}.header-cta{margin-left:auto;padding:9px 12px;gap:18px;font-size:11px}.menu{display:block;background:none;border:0;font-size:22px;padding:3px}header nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--cream);padding:25px 6%;flex-direction:column;gap:20px;border-bottom:1px solid var(--line)}header nav.open{display:flex}.hero{display:flex;flex-direction:column}.hero-copy{padding:38px 6% 45px}.hero h1{font-size:72px;margin:32px 0 22px}.hero .eyebrow{font-size:8px}.hero p{max-width:380px;font-size:14px}.hero-image{height:350px}.hero-image img{object-position:center 55%}.hero-image figcaption{left:22px;right:22px;bottom:22px;font-size:8px}.intro-strip{padding:19px 6%;gap:15px;font-size:9px}.intro-strip span+span:before{display:none}.section{padding:55px 6%}.small-note{display:none}.section-top{margin-bottom:28px}.two-col{grid-template-columns:1fr;gap:24px}.two-col h2{font-size:43px}.two-col .lead{font-size:14px;max-width:100%}.principles{grid-template-columns:1fr;gap:25px;margin-top:36px}.principles article{display:grid;grid-template-columns:35px 1fr;padding-top:20px}.principles h3{margin:0 0 13px;font-size:22px}.principles p{grid-column:2;max-width:none;font-size:13px}.number{padding-top:5px}.modular{grid-template-columns:1fr}.modular-photo{min-height:350px}.modular-copy{padding:45px 6%}.modular-copy h2{font-size:48px}.modular-copy>p{font-size:14px}.project-layout{grid-template-columns:1fr;gap:28px;margin-top:30px}.project-layout figure img{height:280px}.project-row strong{font-size:28px}.text-link{font-size:10px;gap:10px}.discipline{grid-template-columns:1fr;gap:20px}.discipline h2{font-size:49px}.risk-list{padding-top:15px}.team-grid{grid-template-columns:1fr 1fr;gap:35px 20px}.team-grid h3{font-size:18px}.team-grid small{font-size:8px;min-height:30px}.initials{height:145px}.team-grid p{font-size:12px}.contact{grid-template-columns:1fr;gap:35px}.contact h2{font-size:46px}.contact-mail{font-size:31px}.email{margin-bottom:25px}.footer-top{flex-wrap:wrap;gap:25px}.footer-top>span{display:none}.footer-bottom>span:last-child{display:none}dialog{padding:40px 25px}dialog h2{font-size:40px}.dialog-facts{flex-wrap:wrap;gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Supplied Strigine Partners owl logo, preserving its full proportions. */
.brand{flex-shrink:0}
.brand .brand-logo{display:block;width:220px;height:auto;object-fit:contain;mix-blend-mode:multiply}
.footer-top .brand .brand-logo{width:245px}
@media(max-width:1000px) and (min-width:761px){header{gap:20px}.brand .brand-logo{width:190px}}
@media(max-width:760px){.brand .brand-logo{width:155px}.footer-top .brand .brand-logo{width:205px}header{gap:12px}}
@media(max-width:360px){.brand .brand-logo{width:135px}.header-cta{gap:10px;padding:8px 10px}}


/* Friday Harbor photography */
.fh-gallery{border-top:1px solid var(--line);background:#edeFE5}
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:35px}
.gallery-filters button{padding:10px 18px;border:1px solid #b8c4b2;background:transparent;font-size:11px}
.gallery-filters button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--cream)}
.gallery-count{font-size:10px;margin:15px 0;letter-spacing:1px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}
.gallery-item[hidden]{display:none}
.gallery-item>button{display:block;position:relative;padding:0;border:0;background:var(--green);width:100%;overflow:hidden}
.gallery-item img{height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .3s}
.gallery-item>button:hover img{transform:scale(1.025)}
.photo-expand{position:absolute;right:12px;bottom:12px;background:var(--cream);width:30px;height:30px;display:grid;place-items:center;font-size:18px}
.gallery-item figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:12px;line-height:1.5}
.gallery-item figcaption small{font-size:7px;letter-spacing:.7px;color:var(--muted);text-align:right}
.gallery-note{font-size:10px;margin-top:30px;max-width:780px}
#photo-dialog{width:min(1100px,94vw);padding:42px 18px 18px;background:#f5f3eb}
#enlarged-photo{width:100%;height:auto;max-height:70dvh;object-fit:contain;background:#e4e7dd}
.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:15px;text-align:center}
.photo-toolbar button{border:1px solid var(--line);background:transparent;width:42px;height:42px;font-size:22px;flex-shrink:0}
.photo-toolbar p{margin:0;font-size:13px;color:var(--ink)}
.photo-toolbar small{font-size:10px;color:var(--muted)}
@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr;gap:26px}.gallery-filters{gap:8px}.gallery-filters button{padding:9px 12px;font-size:10px}.gallery-item figcaption small{font-size:8px}#enlarged-photo{max-height:65dvh}}


/* Modular education and Homepedia films, in the retained Strigine design. */
.modular-explained{background:#f0f0e6}
.building-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:42px}
.building-type{padding:30px 26px;border:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}
.building-type.featured{background:var(--green);color:var(--cream);border-color:var(--green)}
.building-type .eyebrow{font-size:8px;line-height:1.7}
.building-type h3{font:30px/1.15 'Libre Caslon Display',Georgia,serif;margin:25px 0 14px}
.building-type p{font-size:13px;line-height:1.8;margin-bottom:25px}
.building-type.featured p{color:#d9e1d7}
.type-detail{font-size:10px;line-height:1.7;border-top:1px solid var(--line);padding-top:17px;margin-top:auto}
.featured .type-detail{border-color:#597366;color:#d9e1d7}
.permit-explainer{display:grid;grid-template-columns:1fr 1.1fr;gap:10%;padding:55px 0;border-bottom:1px solid var(--line)}
.permit-explainer h3{font:39px/1.1 'Libre Caslon Display',Georgia,serif;margin:23px 0}
.permit-explainer h3 em,.film-copy h3 em{font-weight:400;color:#6b7e5e}
.permit-explainer p{font-size:13px;line-height:1.9;margin-bottom:20px}
.source-link{font-size:11px;border-bottom:1px solid #a4b2a1;padding-bottom:4px;line-height:1.8}
.permit-tracks{display:grid;gap:18px}
.permit-tracks article{padding:25px 28px;background:#e3e7d9;border-left:3px solid var(--green)}
.permit-tracks article:nth-child(2){background:#e9ecdf;border-color:#879b77}
.permit-tracks .eyebrow{font-size:9px;line-height:1.8}
.permit-tracks h4{font-size:18px;margin:13px 0 10px}
.permit-tracks p{font-size:12px;margin-bottom:0}
.modular-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin-top:40px}
.modular-benefits h3{font-size:17px;margin:20px 0 12px}
.modular-benefits p{font-size:12px;line-height:1.9}
.modular-context{font-size:10px;margin-top:30px;max-width:840px}
.video-section{border-bottom:1px solid var(--line)}
.production-film{display:grid;grid-template-columns:1.5fr 1fr;gap:6%;align-items:center;margin-top:45px}
.film-player{background:var(--green);aspect-ratio:16/9}
.film-player video{display:block;width:100%;height:100%;object-fit:contain}
.film-copy h3{font:42px/1.05 'Libre Caslon Display',Georgia,serif;margin:24px 0}
.film-copy p{font-size:13px;line-height:1.8}
.film-copy .video-meta{font-size:10px;margin:22px 0}
.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:45px}
.video-card{border:1px solid var(--line);background:#f0f0e6}
.video-frame{aspect-ratio:16/9;position:relative;background:var(--green)}
.video-play{width:100%;height:100%;position:relative;display:block;border:0;padding:0;background:var(--green)}
.video-play img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .2s}
.video-play:hover img{opacity:1}
.play-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50px;height:50px;border:1px solid #fff9;border-radius:50%;background:#183c31dd;color:white;display:grid;place-items:center;padding-left:3px;font-size:16px}
.video-frame iframe{width:100%;height:100%;border:0;display:block}
.video-card-copy{padding:24px}
.video-card-copy .eyebrow{font-size:8px;line-height:1.8}
.video-card h3{font:29px/1.12 'Libre Caslon Display',Georgia,serif;margin:18px 0 12px;min-height:65px}
.video-card p{font-size:12px;line-height:1.8;min-height:65px}
.video-card-copy>a{display:flex;justify-content:space-between;gap:8px;font-size:10px;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}
.video-card-copy>a>span{color:var(--muted);white-space:nowrap}
.video-note{font-size:10px;line-height:1.8;max-width:850px;margin-top:28px}
.video-play:focus-visible,.source-link:focus-visible,.video-card a:focus-visible{outline:3px solid #997e3b;outline-offset:4px}
@media(max-width:1000px){.building-type{padding:23px 20px}.building-type h3{font-size:27px}.modular-benefits{grid-template-columns:1fr 1fr;gap:28px}.video-card-copy{padding:20px}.video-card h3{font-size:26px;min-height:85px}.video-card p{min-height:85px}.film-copy h3{font-size:35px}.production-film{gap:5%}}
@media(max-width:760px){.building-types{grid-template-columns:1fr;gap:16px;margin-top:30px}.building-type h3{font-size:32px;margin-top:20px}.building-type p{font-size:14px}.permit-explainer{grid-template-columns:1fr;gap:25px;padding:35px 0}.permit-explainer h3{font-size:37px}.production-film{grid-template-columns:1fr;gap:28px;margin-top:32px}.film-copy h3{font-size:40px}.video-grid{grid-template-columns:1fr;gap:26px;margin-top:32px}.video-card h3,.video-card p{min-height:0}.video-card h3{font-size:32px}.video-card-copy{padding:24px}.video-note{font-size:11px}.modular-benefits{gap:25px 20px}.modular-benefits h3{line-height:1.4}.modular-context{font-size:11px}}
@media(max-width:380px){.modular-benefits{grid-template-columns:1fr}.section-top .text-link{font-size:9px;gap:7px}.video-section .section-top{gap:15px}.video-section .section-top .eyebrow{font-size:8px}}









/* Page structure: focused homepage, portfolio, project details, modular, and team. */
nav a[aria-current=page]{border-bottom-color:var(--green)}
.page-intro{padding-top:64px;padding-bottom:55px;border-bottom:1px solid var(--line)}
.page-intro>.eyebrow{display:block;margin-bottom:28px}
.page-intro h1{font-size:clamp(48px,5.5vw,82px)}
.page-intro .lead{font-size:16px}
.breadcrumb{display:block;width:fit-content;font-size:11px;color:var(--muted);margin-bottom:35px;border-bottom:1px solid var(--line)}
.home-projects{padding-bottom:65px}
.project-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin-top:38px}
.project-card{display:flex;flex-direction:column;border:1px solid var(--line);background:#f0f0e6;transition:transform .2s,border-color .2s}
.project-card:hover{transform:translateY(-3px);border-color:#81947b}
.project-card figure{position:relative;aspect-ratio:1.5;overflow:hidden;background:#dfe5d7}
.project-card figure>img{height:100%;width:100%;transition:transform .3s}
.project-card:hover figure>img{transform:scale(1.025)}
.project-card figcaption{position:absolute;bottom:10px;left:12px;padding:4px 8px;font-size:8px;background:#f5f3ebe8;color:var(--ink)}
.project-card-copy{padding:24px;display:flex;flex-direction:column;flex:1}
.project-card .eyebrow{font-size:8px}
.project-card h3{font:30px/1.08 'Libre Caslon Display',Georgia,serif;margin:14px 0 10px}
.project-card p{font-size:12px;margin-bottom:25px}
.project-card-link{margin-top:auto;padding-top:15px;border-top:1px solid var(--line);font-size:11px;display:flex;justify-content:space-between}
.project-card-link b{font-size:16px;font-weight:400}
.project-art{width:100%;height:100%;background:#dce3d3;position:relative;overflow:hidden;display:flex;align-items:center;padding:25px}
.project-art>span{position:relative;z-index:1;font:27px/1.2 'Libre Caslon Display',Georgia,serif;letter-spacing:1px;color:#345040}
.project-art em{font-size:23px;letter-spacing:0}
.building-lines{position:absolute;right:-10px;bottom:-12px;height:85%;width:45%;border:1px solid #91a384;background:repeating-linear-gradient(0deg,transparent 0 27px,#91a384 28px 29px),repeating-linear-gradient(90deg,transparent 0 22px,#91a384 23px 24px);transform:skewY(-9deg);opacity:.55}
.home-projects+.approach{background:#e7eade;padding-top:60px;padding-bottom:60px}
.approach-next{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid #bac5b3;padding-top:24px;margin-top:38px}
.approach-next p{font-size:12px}
.home-team{padding-top:54px;padding-bottom:54px}
.home-team .section-top{margin-bottom:28px}
.partner-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.partner-mini{display:flex;align-items:center;gap:20px;padding:0 20px 0 0;background:#e8ecdf;border:1px solid var(--line)}
.partner-mini-image{width:90px;height:115px;flex-shrink:0;overflow:hidden}
.partner-photo{width:100%;height:100%;object-fit:cover;object-position:center 12%}
.partner-mini h3{font:25px/1.1 'Libre Caslon Display',Georgia,serif;margin-bottom:10px}
.partner-mini .eyebrow{font-size:7px;letter-spacing:.9px;display:block;line-height:1.8}
.partner-pattern{height:100%;width:100%;background:linear-gradient(140deg,#183c31,#345442);position:relative;display:flex;align-items:flex-end;padding:25px;color:#e5eadc}
.partner-pattern:before{content:'';position:absolute;left:15%;right:15%;top:15%;bottom:15%;border:1px solid #94a78755;border-radius:50% 50% 0 0}
.partner-pattern span{font-size:10px;letter-spacing:2px;line-height:1.8;z-index:1}
.partner-mini .partner-pattern{padding:12px}
.partner-mini .partner-pattern span{font-size:5px;letter-spacing:1px}
.portfolio-section{padding-top:10px}
.portfolio-note{font-size:11px;margin-top:30px}
.compact-cta{display:flex;align-items:center;justify-content:space-between;gap:35px;background:#e6e9dd}
.compact-cta h2{margin-top:20px}
.compact-cta .button{margin:0}
.project-feature{margin:40px 6% 0;position:relative}
.project-feature img{height:min(53vw,580px);object-position:center}
.project-feature figcaption{font-size:10px;color:var(--muted);margin-top:10px}
.project-overview{display:grid;grid-template-columns:1fr 1.2fr;gap:12%}
.project-overview h2{margin-top:24px}
.project-overview .lead{font-size:16px;line-height:1.9}
.project-facts{list-style:none;padding:20px 0 0;margin:25px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px}
.project-facts li{font-size:10px;background:#e5e9dc;padding:8px 13px}
.project-next{background:#e7eade}
.project-next h2{margin:25px 0}
.project-next .text-link{width:fit-content}
.partners-section{padding-top:48px}
.partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}
.partner-portrait{height:370px;overflow:hidden;margin-bottom:27px;background:#dfe5d7}
.partner-card>.eyebrow{font-size:8px;min-height:25px;display:block}
.partner-card h2{font-size:42px;margin:12px 0 18px}
.partner-card p{font-size:14px;line-height:1.9}
.team-approach{background:#e7eade}
.team-links{display:flex;gap:45px;margin-top:35px}
.footer-nav{display:flex;margin:24px 0 0;gap:30px;font-size:10px}
.footer-nav a:hover{text-decoration:underline}
.footer-bottom{padding-top:20px}
@media(max-width:1050px){.partner-mini{gap:12px;padding-right:10px}.partner-mini h3{font-size:22px}.partner-mini-image{width:75px;height:105px}.partner-portrait{height:310px}.project-card-copy{padding:20px}.project-card h3{font-size:27px}.project-card-grid{gap:20px}.partner-grid{gap:25px}}
@media(max-width:760px){.page-intro{padding-top:40px;padding-bottom:38px}.page-intro h1{font-size:48px}.page-intro .lead{font-size:14px}.project-card-grid{grid-template-columns:1fr;gap:25px;margin-top:28px}.project-card figure{aspect-ratio:1.7}.project-card-copy{padding:24px}.project-card h3{font-size:32px}.project-art>span{font-size:33px}.home-projects{padding-bottom:45px}.home-projects+.approach{padding:45px 6%}.approach-next{align-items:flex-start;flex-direction:column;gap:15px;margin-top:25px}.partner-preview{grid-template-columns:1fr;gap:16px}.partner-mini{gap:22px}.partner-mini-image{width:90px;height:110px}.partner-mini h3{font-size:28px}.partner-mini .eyebrow{font-size:8px}.home-team{padding-top:40px;padding-bottom:40px}.compact-cta{align-items:flex-start;flex-direction:column;gap:28px}.project-feature{margin-top:30px}.project-feature img{height:300px}.project-overview{grid-template-columns:1fr;gap:28px}.project-overview .lead{font-size:14px}.partner-grid{grid-template-columns:1fr;gap:45px}.partner-portrait{height:390px}.partner-card h2{font-size:42px}.partner-card>.eyebrow{min-height:0}.partners-section{padding-top:35px}.team-links{flex-direction:column;gap:20px;align-items:flex-start}.footer-nav{flex-wrap:wrap;gap:18px 25px}.portfolio-section{padding-top:0}.footer-top{gap:20px}}
/* Interactive construction comparison. */
.construction-comparison{border-top:1px solid var(--line)}
.ps{margin-top:38px}.ps-stage{position:relative;aspect-ratio:2.15;min-height:320px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#efece4}
.ps-canvas,.ps-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.ps-loading{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:30px;background:var(--cream);font-size:14px}
.ps:not(.is-ready) .ps-tag{visibility:hidden}.ps-tag{position:absolute;left:0;top:0;z-index:2;display:flex;flex-direction:column;align-items:center;background:var(--green);color:white;padding:8px 12px;border-radius:10px;font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 6px 20px #183c3122}.ps-tag small{font-size:10px;font-weight:400;margin-top:2px}.ps-tag.is-mod{background:var(--cream);color:var(--green);border:1px solid #c79b42}.ps-tag.is-road{background:#dfb75d;color:var(--ink);font-size:11px;padding:5px 9px}.ps-tag em{display:none;font-style:normal;font-size:10px}.ps-tag.is-done em{display:block}.ps-tag.is-done small{display:none}
.ps-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 0}.ps-toolbar>span{font-size:12px;color:var(--muted)}.ps-controls{display:flex;gap:8px}.ps-controls button{border:1px solid var(--line);background:transparent;border-radius:30px;padding:8px 20px;font-size:12px;min-height:44px}.ps-controls .ps-play{background:var(--green);color:white;border-color:var(--green);min-width:90px}
.ps-tracks{display:grid;gap:12px}.ps-track{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:16px}.ps-name{font-size:12px;font-weight:600}.ps-bar{position:relative;height:54px;border-radius:10px;background:#e9e9de;overflow:hidden}.ps-fill{position:absolute;inset:0 auto 0 0;background:#dfb75d55;width:0}.ps-mod .ps-fill{background:#dfb75d88}.ps-seg{position:absolute;top:5px;bottom:5px;display:flex;align-items:center;justify-content:center;padding:0 6px;background:transparent;border:0;border-right:1px solid var(--cream);border-radius:7px;font-size:11px;font-weight:600;overflow:hidden}.ps-seg span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-seg:hover{background:#ffffff99}.ps-seg.is-active{background:var(--cream);box-shadow:inset 0 0 0 1.5px #b38d3f}.ps-seg:focus-visible{outline-offset:-3px}.ps-head{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--green);pointer-events:none}.ps-rest{position:absolute;top:0;bottom:0;right:8px;display:flex;align-items:center;padding-left:12px;font-size:12px;font-weight:600;color:#8d6a23;pointer-events:none}
.ps-seek-label{display:flex;align-items:center;gap:18px;font-size:11px;color:var(--muted);margin-top:20px}.ps-seek{flex:1;min-width:0;accent-color:var(--green);min-height:30px}.ps-seek:focus-visible{outline:2px solid #b38d3f;outline-offset:3px}.ps-info{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:20px;min-height:170px}.ps-row{padding:22px;border:1px solid var(--line);border-radius:12px}.ps-row small{font-size:11px;color:var(--muted)}.ps-row h3{font-size:20px;margin:8px 0}.ps-row p{font-size:13px}.ps-row.is-done{background:#e6ebdf}.ps-note{font-size:10px;line-height:1.8;margin-top:20px;max-width:850px}.ps-fallback .ps-stage{min-height:160px;aspect-ratio:auto}
@media(max-width:650px){.ps-stage{aspect-ratio:1.3;min-height:0}.ps-tag{font-size:8px;padding:5px 6px;border-radius:6px}.ps-tag small{display:none}.ps-tag.is-road{font-size:8px;padding:3px 5px}.ps-track{grid-template-columns:1fr;gap:4px}.ps-bar{height:52px}.ps-seg{font-size:9px;padding:0 3px}.ps-rest{font-size:10px;padding-left:5px}.ps-info{grid-template-columns:1fr;min-height:0}.ps-row{padding:18px}.ps-toolbar>span{font-size:11px}.ps-seek-label{gap:10px;font-size:10px}.construction-comparison .two-col{gap:22px}}
/* Market rationale and company philosophy. */
.location-rationale{background:#e7eade;border-block:1px solid var(--line)}
.location-rationale>.two-col{align-items:start}.location-rationale h2{font-size:clamp(42px,4.15vw,66px)}
.location-dimensions,.philosophy-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:38px}
.location-dimensions article,.philosophy-pillars article{border-top:1px solid #aebba7;padding-top:22px;min-width:0}
.location-dimensions h3,.philosophy-pillars h3{font-size:21px;margin:12px 0 16px}
.location-dimensions p,.philosophy-pillars p{font-size:13px;line-height:1.85}
.location-dimensions sup{font-size:9px;white-space:nowrap;margin-left:4px}.location-dimensions sup a{text-decoration:underline;text-underline-offset:2px;padding:3px}
.location-note{font-size:10px;line-height:1.8;margin-top:28px;max-width:920px}
.market-sources{margin-top:20px;border-top:1px solid #c4cdbc;padding-top:14px}
.market-sources summary{font-size:12px;padding:5px 0;display:list-item;list-style:disclosure-closed;cursor:pointer;min-height:32px}
.market-sources[open] summary{list-style:disclosure-open}
.market-sources ol{padding-left:23px;max-width:950px;font-size:11px;line-height:1.8;margin:12px 0}
.market-sources li{padding:5px 0;scroll-margin-top:110px}.market-sources a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.market-sources small{font-size:10px;color:var(--muted)}
.philosophy-selection{border-top:1px solid var(--line)}.philosophy-pillars{gap:40px}.philosophy-pillars .number{font-size:11px;color:var(--muted)}
.philosophy-statement{font:clamp(32px,3.5vw,50px)/1.2 'Libre Caslon Display',Georgia,serif;color:var(--green);padding-top:35px;margin-top:40px;border-top:1px solid var(--line)}
.philosophy-projects{background:#e7eade}.philosophy-projects h2{margin-top:23px}.philosophy-project-links{display:grid;gap:16px;margin-top:28px}
.philosophy-project-links a{display:flex;justify-content:space-between;max-width:430px}
.philosophy-execution{border-top:1px solid var(--line)}
@media(min-width:951px){header nav{gap:24px}}
@media(max-width:760px){.location-dimensions,.philosophy-pillars{grid-template-columns:1fr;gap:26px;margin-top:28px}.location-dimensions h3,.philosophy-pillars h3{margin-top:8px;margin-bottom:10px}.location-dimensions p,.philosophy-pillars p{font-size:13px}.philosophy-statement{margin-top:28px;padding-top:25px}.location-rationale .section-top{align-items:flex-start;gap:14px;flex-wrap:wrap}.location-rationale .section-top .text-link{margin:0}}
/* Conceptual diagram: no city positions or numerical scores. */
.opportunity-section{border-top:1px solid var(--line);background:#f0f0e6}
.concept-badge{font-size:10px;border:1px solid #a7b59c;border-radius:30px;padding:7px 13px;color:var(--green);white-space:nowrap}
.opportunity-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,1fr);gap:24px 48px;margin-top:40px;align-items:start}
.opportunity-switcher{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.opportunity-figure{min-width:0}.opportunity-y{font-size:11px;font-weight:600;padding-bottom:10px;border-left:2px solid var(--green);padding-left:12px;transition:color .2s}
.opportunity-plane{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;min-height:400px;border:1px solid #b8c3ae;border-left:2px solid var(--green);border-bottom:2px solid var(--green);background:var(--cream);isolation:isolate}
.opportunity-quadrant{padding:22px;position:relative}.opportunity-quadrant h3{font-size:16px;font-weight:500;letter-spacing:0;line-height:1.3;color:#68766a}
.quadrant-value{background:#dce5d3}.quadrant-premium{background:#e7ebdf;border-left:1px dashed #b5c0ac}.quadrant-low{border-top:1px dashed #b5c0ac;display:flex;align-items:flex-end}.quadrant-tradeoff{border-top:1px dashed #b5c0ac;border-left:1px dashed #b5c0ac;display:flex;align-items:flex-end}
.opportunity-zone{position:absolute;z-index:1;top:24%;left:27%;width:48%;height:34%;border:1.5px dashed #8a793d;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#f5f3ebeb;box-shadow:0 0 0 7px #c9b87422;transition:border-color .2s,box-shadow .2s}
.opportunity-zone>span{font:25px/1.05 'Libre Caslon Display',Georgia,serif;color:var(--green)}.opportunity-zone small{font-size:8px;margin-top:8px;max-width:85%;line-height:1.4;color:var(--muted)}
.opportunity-x{display:flex;justify-content:space-between;gap:12px;font-size:10px;padding-top:11px;color:var(--muted)}.opportunity-figure figcaption{font-size:10px;line-height:1.8;margin-top:20px;color:var(--muted)}
.lens-buttons{display:flex;gap:9px}.lens-buttons button{border:1px solid #c0c9b7;background:transparent;text-align:left;padding:12px 16px;font-size:12px;min-height:44px}.lens-buttons button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--cream)}.lens-buttons button:hover{border-color:var(--green)}
.opportunity-detail{margin-top:4px;min-height:228px}.opportunity-detail h3{font-size:22px;line-height:1.2;margin-bottom:12px}.opportunity-detail p{font-size:12px;line-height:1.8}.opportunity-detail ul{padding-left:17px;font-size:11px;color:var(--muted);margin:15px 0 0;line-height:1.8}
.opportunity-filter{font-size:10px;padding-top:18px;border-top:1px solid var(--line);line-height:1.8}.opportunity-filter strong{display:block;color:var(--green);font-weight:600}
.opportunity-quadrant{background:var(--cream);transition:background-color .2s,opacity .2s}.opportunity-quadrant h3{color:var(--green)}
.opportunity-y{padding:9px 12px;min-height:35px;background:#e5e9dd;color:var(--green)}.opportunity-x{padding:10px 12px;min-height:36px;background:#e5e9dd}
.opportunity-layout[data-lens=livability] .quadrant-value,.opportunity-layout[data-lens=livability] .quadrant-premium,.opportunity-layout[data-lens=attainability] .quadrant-value,.opportunity-layout[data-lens=attainability] .quadrant-low{background:#c2d6b1}
.opportunity-layout[data-lens=livability] .quadrant-low,.opportunity-layout[data-lens=livability] .quadrant-tradeoff,.opportunity-layout[data-lens=attainability] .quadrant-premium,.opportunity-layout[data-lens=attainability] .quadrant-tradeoff,.opportunity-layout[data-lens=feasibility] .opportunity-quadrant{opacity:.72}
.opportunity-layout[data-lens=livability] .opportunity-y,.opportunity-layout[data-lens=attainability] .opportunity-x{background:var(--green);color:white}
.opportunity-layout[data-lens=feasibility] .opportunity-zone{background:var(--green);border:2px solid #bba35e;box-shadow:0 0 0 9px #b8c5aa77}.opportunity-layout[data-lens=feasibility] .opportunity-zone>span{color:var(--cream)}.opportunity-layout[data-lens=feasibility] .opportunity-zone small{color:#d3dec9}.opportunity-layout[data-lens=feasibility] .opportunity-filter{border-top-color:var(--green)}
.opportunity-graphic-status{margin-top:14px;padding:12px 14px;border-left:3px solid var(--green);background:#e0e7d7;font-size:11px;line-height:1.6;color:var(--green);min-height:60px}
.opportunity-method{margin-top:32px}.opportunity-method p{font-size:12px;line-height:1.8;margin-top:14px;max-width:950px}
@media(max-width:900px){.opportunity-layout{grid-template-columns:1fr;gap:24px}.opportunity-switcher{flex-direction:column;align-items:stretch;gap:14px}.opportunity-detail{min-height:0}.opportunity-plane{min-height:420px}.lens-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.lens-buttons button{padding:12px 10px;font-size:11px;text-align:center}}
@media(max-width:500px){.opportunity-plane{min-height:360px}.opportunity-quadrant{padding:16px 12px}.opportunity-quadrant h3{font-size:14px}.opportunity-zone{width:50%;left:26%;top:27%;height:32%}.opportunity-zone>span{font-size:23px}.opportunity-x{font-size:9px}.opportunity-section .section-top{flex-wrap:wrap;gap:14px}.opportunity-y{font-size:10px}.opportunity-method p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.opportunity-zone,.opportunity-y,.opportunity-quadrant{transition:none}}

.building-elevation{background:white;border:1px solid var(--line);padding:30px}
.building-elevation img{height:auto;object-fit:contain;max-height:450px}
.project-card img[src$="front-elevation.webp"]{object-fit:contain;background:white;padding:14px}
.drawing-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:38px}
.drawing-grid>a{border:1px solid var(--line);background:white;transition:border-color .2s}
.drawing-grid>a:hover{border-color:var(--green)}
.drawing-grid img{height:340px;object-fit:contain;padding:20px}
.drawing-grid figcaption{padding:24px;background:#e8ecdf;border-top:1px solid var(--line)}
.drawing-grid h3{margin:9px 0 16px}.drawing-grid figcaption>span:last-child{font-size:11px}
.drawing-note{font-size:11px;margin-top:24px;max-width:900px}
@media(max-width:760px){.drawing-grid{grid-template-columns:1fr}.drawing-grid img{height:280px}.building-elevation{padding:12px}.building-elevation img{height:auto}.building-elevation figcaption{font-size:9px}}
