@font-face{font-family:Archivo;src:url("assets/fonts/archivo-variable.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:SourceSerif;src:url("assets/fonts/source-serif-4.ttf") format("truetype");font-style:normal;font-weight:200 900;font-display:swap}
:root{--paper:#f5f1e8;--surface:#fffdf8;--ink:#171713;--muted:#5c5b54;--line:rgba(23,23,19,.17);--accent:var(--sb-accent,#c4482f);--focus:var(--sb-focus,#1256bd);--radius:14px;--wide:min(1240px,calc(100% - 48px));--narrow:min(960px,calc(100% - 48px));color-scheme:light}
body{--accent-ink:var(--sb-accent-ink,#fff);--accent-hover:var(--sb-accent-hover,#a93b27);--accent-text:var(--sb-accent-text,var(--accent));--wf-ink:var(--accent-ink)}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;background:var(--paper)}
body{min-height:100vh;margin:0;background:var(--paper);color:var(--ink);font-family:Archivo,Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column}
#main{flex:1}
body::selection{background:var(--accent);color:var(--accent-ink,#fff)}
*::selection{background:var(--accent);color:var(--accent-ink,#fff)}
*{scrollbar-color:var(--accent) var(--paper);scrollbar-width:thin}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{outline-offset:4px}
:focus-visible{outline:3px solid var(--focus)}
h1,h2,h3,p,blockquote,figure{margin-top:0}
h1,h2,h3{font-family:SourceSerif,Georgia,serif;font-weight:540;letter-spacing:-.028em;line-height:1.04;text-wrap:balance}
p{max-width:70ch}
.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}
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:12px 18px;background:var(--ink);color:#fff;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.site-header{background:var(--surface);border-bottom:1px solid var(--line);position:relative;z-index:40}
.announcement{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:7px max(24px,calc((100vw - 1240px)/2));background:var(--ink);color:#fff;font-size:12px;letter-spacing:.01em}
.announcement p{margin:0;max-width:none}.announcement a{font-weight:750;color:#fff;text-decoration-color:var(--accent)}
.navigation{width:var(--wide);min-height:72px;margin:auto;display:grid;grid-template-columns:minmax(210px,1fr) auto auto;align-items:center;gap:34px}
.brand{display:inline-flex;align-items:center;gap:12px;width:max-content;text-decoration:none;font-weight:800;letter-spacing:-.02em}
.brand img{max-width:150px;max-height:44px;object-fit:contain}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--accent);color:var(--accent-ink,#fff);font-size:13px;letter-spacing:.08em}
.navigation nav{display:flex;align-items:center;gap:28px}.navigation nav a{font-size:14px;text-decoration:none;border-bottom:2px solid transparent;padding:25px 0 22px}
.navigation nav a[aria-current=page]{border-bottom-color:var(--accent)}
.language{display:flex;gap:7px;align-items:center;font-size:12px}.language a{text-decoration:none;opacity:.55}.language a[aria-current=true]{opacity:1;font-weight:800}
.menu-toggle{display:none;border:0;background:transparent;padding:10px}.menu-toggle>span:not(.sr-only){display:block;width:23px;height:1px;background:var(--ink);margin:5px 0}
.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:12px 22px;border:1px solid var(--ink);font-weight:760;font-size:14px;text-decoration:none;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}.button.primary:hover{background:var(--accent-hover,#a93b27);border-color:var(--accent-hover,#a93b27)}
.button.secondary{background:transparent;color:var(--ink)}.button.secondary:hover{background:var(--ink);color:#fff}
.text-link{font-weight:760;text-decoration-color:var(--accent)}
.hero{width:var(--wide);margin:24px auto 0;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);min-height:568px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.hero-media{margin:0;min-width:0;overflow:hidden;background:#d9d4c9;order:1}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:55% 50%;animation:frameIn .8s cubic-bezier(.16,1,.3,1) both}
@keyframes frameIn{from{transform:scale(1.035);clip-path:inset(0 5% 0 0)}to{transform:scale(1);clip-path:inset(0)}}
.hero-copy{order:2;padding:clamp(38px,5vw,78px);display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--line)}
.hero-context,.category,.sample-label{margin:0 0 18px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text,var(--accent))}
.hero h1{font-size:clamp(43px,4.4vw,68px);max-width:10ch;margin-bottom:22px}.hero-lede{font-size:17px;color:var(--muted);max-width:45ch;margin-bottom:30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.section-grid{width:var(--wide);margin:110px auto;display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);gap:clamp(40px,8vw,110px);align-items:center}
.section-grid.reverse{grid-template-columns:minmax(0,1.18fr) minmax(260px,.82fr)}
.section-grid.reverse figure{order:1}.section-grid.reverse .section-copy{order:2}
.section-grid figure{margin:0;overflow:hidden;border-radius:var(--radius);background:#ddd7cc}.section-grid figure img{width:100%;aspect-ratio:3/2;object-fit:cover}
.section-copy h2,.section-heading h2,.craft-title h2,.workflow h2,.visit h2,.closing h2{font-size:clamp(36px,3.8vw,54px);max-width:16ch;margin-bottom:22px}
.section-copy p,.section-heading p{color:var(--muted);font-size:17px;margin-bottom:24px}
.popular{padding:104px max(24px,calc((100vw - 1240px)/2));background:var(--ink);color:#fff}
.popular .section-heading{display:grid;grid-template-columns:1fr .75fr;gap:50px;align-items:end;margin-bottom:48px}.popular .section-heading h2{color:#fff;margin:0}.popular .section-heading p{color:#d1cfc6;margin:0}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:34px}.project-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-card{background:var(--surface);color:var(--ink);border:1px solid var(--line);min-width:0;display:flex;flex-direction:column}
.project-image{display:block;overflow:hidden;background:#d9d4c9}.project-image img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .45s cubic-bezier(.16,1,.3,1)}.project-card:hover .project-image img{transform:scale(1.025)}
.project-copy{padding:24px;display:flex;flex:1;flex-direction:column;justify-content:space-between;gap:28px}.project-copy h3{font-size:30px;margin-bottom:12px}.project-copy p:not(.category){color:var(--muted);font-size:14px}.project-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:17px;font-size:12px}.project-meta span{color:var(--muted)}.project-meta a{font-weight:800}
.popular>.button{border-color:#fff;color:#fff}.popular>.button:hover{background:#fff;color:var(--ink)}
.craft{width:var(--wide);margin:0 auto;padding:112px 0;display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(50px,9vw,140px)}
.craft-title h2{position:sticky;top:32px}.craft-ledger{border-top:1px solid var(--line)}.craft-ledger article{display:grid;grid-template-columns:.58fr 1fr;gap:28px;padding:32px 0;border-bottom:1px solid var(--line)}.craft-ledger h3{font-size:26px;margin:0}.craft-ledger p{margin:0;color:var(--muted)}
.workflow{background:var(--accent);color:var(--wf-ink,#fff);padding:96px max(24px,calc((100vw - 1240px)/2));display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,8vw,120px)}.workflow h2{color:var(--wf-ink,#fff)}.workflow>div>p{color:var(--wf-ink,#fff);opacity:.9}
.workflow ol{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.42);border-top-color:color-mix(in srgb,var(--wf-ink,#fff) 42%,transparent)}.workflow li{display:grid;grid-template-columns:56px 1fr;gap:26px;padding:27px 0;border-bottom:1px solid rgba(255,255,255,.42);border-bottom-color:color-mix(in srgb,var(--wf-ink,#fff) 42%,transparent)}.workflow li>span{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--wf-ink,#fff);border-radius:50%;font-variant-numeric:tabular-nums}.workflow h3{color:var(--wf-ink,#fff);font-family:Archivo,Arial,sans-serif;font-size:18px;font-weight:800;letter-spacing:-.01em;margin:0 0 7px}.workflow li p{margin:0;max-width:52ch}
.visit{width:var(--wide);margin:0 auto 88px;display:grid;grid-template-columns:1fr .65fr;gap:70px;padding:66px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.visit h2{margin:0}.visit-actions{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:14px}.visit-actions a{font-weight:760}
.scene-map-fallback{grid-column:1/-1;display:flex;align-items:end;justify-content:space-between;gap:32px;margin-top:4px;padding:28px 0 0;border-top:1px solid var(--line)}.scene-map-fallback span{display:block;margin-bottom:7px;color:var(--accent-text,var(--accent));font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.scene-map-fallback strong{display:block;font-family:SourceSerif,Georgia,serif;font-size:30px;font-weight:540}.scene-map-fallback p{margin:7px 0 0;color:var(--muted)}.scene-map-fallback a{flex:none;font-weight:800;text-decoration-color:var(--accent)}
.quote{width:var(--narrow);margin:110px auto;text-align:center}.quote blockquote{font-family:SourceSerif,Georgia,serif;font-size:clamp(36px,5.2vw,66px);line-height:1.04;letter-spacing:-.028em;margin:0 auto 28px;max-width:18ch}.quote>p:last-child{margin:0 auto;color:var(--muted)}
.closing{padding:74px max(24px,calc((100vw - 1240px)/2));background:var(--surface);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:42px}.closing h2{margin-bottom:12px}.closing p{margin:0;color:var(--muted)}.closing.compact{margin-top:80px}
footer{padding:72px max(24px,calc((100vw - 1240px)/2)) 28px;background:#ece7dd;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.6fr repeat(3,.55fr);gap:46px}.footer-brand{font-family:SourceSerif,Georgia,serif;font-size:32px;text-decoration:none}.footer-grid p{color:var(--muted)}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:9px}.footer-grid h2{font-family:Archivo,Arial,sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px}.footer-grid a{font-size:14px}.footer-base{display:flex;justify-content:space-between;gap:24px;margin-top:56px;padding-top:22px;border-top:1px solid var(--line);font-size:11px}.footer-base p{margin:0;max-width:none}
.page-hero{width:var(--wide);margin:24px auto 0;display:grid;grid-template-columns:.9fr 1.1fr;background:var(--surface);border:1px solid var(--line);align-items:stretch}.page-hero>div{padding:clamp(40px,6vw,84px);display:flex;flex-direction:column;justify-content:center}.page-hero h1{font-size:clamp(42px,4.3vw,60px);max-width:15ch;margin-bottom:22px}.page-hero p{color:var(--muted);font-size:17px}.page-hero>img{width:100%;height:100%;min-height:500px;object-fit:cover}
.catalogue{width:var(--wide);margin:82px auto}.catalogue-tools{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:22px}.catalogue-tools label{display:grid;gap:7px;min-width:min(430px,100%)}.catalogue-tools label span{font-size:12px;font-weight:760}.catalogue-tools input{width:100%;min-height:48px;border:1px solid var(--line);background:var(--surface);padding:11px 14px;border-radius:0}.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filters button{min-height:40px;padding:8px 14px;border:1px solid var(--line);background:transparent;cursor:pointer}.filters button.active,.filters button:hover{background:var(--ink);color:#fff}.catalogue-count{font-size:12px;color:var(--muted);margin:0 0 22px}.catalogue .project-card[hidden]{display:none}.load-more{margin:26px auto 0}.empty-state{padding:40px;border:1px dashed var(--line);background:var(--surface);color:var(--muted);grid-column:1/-1}
.project-detail{width:var(--wide);margin:24px auto 90px;display:grid;grid-template-columns:.78fr 1.22fr;background:var(--surface);border:1px solid var(--line);min-height:650px}.project-detail-copy{padding:clamp(40px,6vw,82px);display:flex;flex-direction:column;justify-content:center}.project-detail h1{font-size:clamp(44px,5vw,72px);margin-bottom:22px}.project-detail-copy>p:not(.category){color:var(--muted);font-size:17px}.project-detail dl{margin:24px 0 30px;border-top:1px solid var(--line)}.project-detail dl div{padding:18px 0;border-bottom:1px solid var(--line)}.project-detail dt{font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.project-detail dd{margin:7px 0 0;color:var(--muted)}.project-detail .button{width:max-content}.project-detail .text-link{margin-top:19px;width:max-content}.project-detail figure{margin:0}.project-detail figure img{width:100%;height:100%;object-fit:cover}
.project-context{width:var(--wide);margin:-42px auto 90px;display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--surface)}.project-context img{width:100%;height:100%;min-height:440px;object-fit:cover}.project-context>div{align-self:center;padding:clamp(40px,6vw,84px)}.project-context h2{font-size:clamp(38px,4vw,56px);max-width:15ch;margin:10px 0 20px}.project-context p:not(.eyebrow){max-width:48ch;color:#d9d6cd}.project-context .text-link{display:inline-block;margin-top:22px;color:var(--surface)}
.about-ledger{width:var(--wide);margin:100px auto;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about-ledger article{padding:38px 34px}.about-ledger article+article{border-left:1px solid var(--line)}.about-ledger h2{font-size:32px}.about-ledger p{color:var(--muted)}.image-band{width:var(--wide);margin:0 auto 80px}.image-band img{width:100%;max-height:700px;object-fit:cover;object-position:55% 50%}
.contact-page{width:var(--wide);margin:24px auto 0;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--surface)}.contact-page>div{padding:clamp(40px,6vw,88px)}.contact-page h1{font-size:clamp(42px,4.4vw,60px);max-width:14ch}.contact-page>div:first-child>p{color:var(--muted);font-size:17px;margin-bottom:28px}.contact-ledger{border-left:1px solid var(--line)}.contact-ledger>div{padding:18px 0;border-bottom:1px solid var(--line)}.contact-ledger>div:first-child{padding-top:0}.contact-ledger span{display:block;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent-text,var(--accent));margin-bottom:6px}.contact-ledger p{margin:0}.contact-map-shell{width:var(--wide);margin:72px auto}.contact-map-shell h2{font-size:clamp(34px,3.8vw,52px);max-width:22ch}
.contact-image{grid-column:1/-1;margin:0;overflow:hidden;border-top:1px solid var(--line)}.contact-image img{width:100%;aspect-ratio:16/5;object-fit:cover;object-position:50% 45%}
.request-layout{width:var(--wide);margin:24px auto 90px;display:grid;grid-template-columns:.74fr 1.26fr;border:1px solid var(--line);background:var(--surface)}.request-intro{padding:clamp(38px,5vw,70px);background:var(--ink);color:#fff}.request-intro h1{color:#fff;font-size:clamp(43px,5vw,70px)}.request-intro p{color:#d1cfc6}.request-intro img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-top:35px}.request-panel{padding:clamp(34px,5vw,70px)}.request-panel form{display:grid;gap:18px}.request-panel label{display:grid;gap:7px}.request-panel label>span,.field-label{font-size:12px;font-weight:760}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.request-panel input,.request-panel select,.request-panel textarea{width:100%;border:1px solid var(--line);background:#fff;padding:12px 14px;border-radius:0}.request-panel textarea{resize:vertical}.request-panel .consent{grid-template-columns:20px 1fr;align-items:start}.request-panel .consent input{width:18px;height:18px;margin-top:2px}.request-panel .button{width:max-content}.form-status{min-height:24px;margin:0;color:#9b2f21}.request-success{padding:20px 0}.request-success h2{font-size:42px}.request-success p{color:var(--muted)}
.sb-location-map{background:var(--paper)!important;border-top:1px solid var(--line)!important}.sb-location-map__canvas{border-radius:0!important}.sb-location-map h2{font-family:SourceSerif,Georgia,serif!important;font-weight:540!important}.sb-location-map__directions{color:var(--ink)!important}
@media(max-width:980px){.navigation{grid-template-columns:1fr auto auto}.navigation nav{gap:18px}.hero{grid-template-columns:1.05fr .95fr;min-height:520px}.hero-copy{padding:36px}.hero h1{font-size:48px}.project-grid{grid-template-columns:repeat(2,1fr)}.popular .section-heading{grid-template-columns:1fr}.craft,.workflow{grid-template-columns:1fr}.craft-title h2{position:static}.footer-grid{grid-template-columns:1.3fr repeat(3,.7fr)}}
@media(max-width:760px){:root{--wide:min(100% - 28px,1240px);--narrow:min(100% - 28px,960px)}.announcement{padding:7px 14px;font-size:10px;gap:10px}.navigation{min-height:62px;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px}.navigation .bbfaq-bubble.scene-faq-nav{position:static!important;inset:auto!important;width:44px!important;height:44px!important;box-shadow:none}.brand span:last-child{font-size:13px}.brand-mark{width:34px;height:34px}.menu-toggle{display:block}.navigation nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);padding:12px 14px;flex-direction:column;align-items:stretch;gap:0}.navigation nav.open{display:flex}.navigation nav a{padding:13px 4px;border-bottom:1px solid var(--line)}.language{font-size:11px}.hero{margin-top:14px;display:flex;flex-direction:column;min-height:0}.hero-media{order:1;height:238px}.hero-media img{object-position:61% 46%}.hero-copy{order:2;border-left:0;border-top:1px solid var(--line);padding:28px 24px 26px}.hero-context{margin-bottom:11px}.hero h1{font-size:38px;max-width:12ch;margin-bottom:12px}.hero-lede{font-size:14px;line-height:1.5;margin-bottom:18px}.hero-actions{display:grid;grid-template-columns:1fr 1fr}.hero-actions .button{padding:10px 8px;min-height:44px;font-size:12px}.section-grid,.section-grid.reverse{margin:74px auto;grid-template-columns:1fr;gap:28px}.section-grid.reverse figure,.section-grid.reverse .section-copy{order:initial}.section-copy h2,.section-heading h2,.craft-title h2,.workflow h2,.visit h2,.closing h2{font-size:39px}.popular{padding:70px 14px}.popular .section-heading{gap:12px;margin-bottom:28px}.project-grid,.project-grid.wide{grid-template-columns:1fr}.project-copy h3{font-size:28px}.craft{padding:78px 0;gap:25px}.craft-ledger article{grid-template-columns:1fr;gap:10px}.workflow{padding:68px 14px;gap:30px}.workflow li{grid-template-columns:42px 1fr;gap:16px}.visit{grid-template-columns:1fr;gap:28px;margin-bottom:66px}.scene-map-fallback{display:grid;align-items:start;gap:16px}.quote{margin:78px auto}.quote blockquote{font-size:40px}.closing{padding:58px 14px;display:grid}.footer-grid{grid-template-columns:1fr 1fr;gap:34px}.footer-grid>div:first-child{grid-column:1/-1}.footer-base{display:grid}.page-hero,.project-detail,.contact-page,.request-layout{display:flex;flex-direction:column;margin-top:14px}.page-hero>img{order:1;min-height:0;height:250px}.page-hero>div{order:2;padding:30px 24px}.page-hero h1,.project-detail h1,.contact-page h1,.request-intro h1{font-size:42px}.catalogue{margin:58px auto}.catalogue-tools{align-items:stretch;flex-direction:column}.catalogue-tools label{min-width:0}.filters{justify-content:flex-start}.project-detail figure{order:1;height:300px}.project-detail-copy{order:2;padding:34px 24px}.project-context{margin-top:-42px;display:flex;flex-direction:column}.project-context img{min-height:0;height:280px}.project-context>div{padding:38px 24px}.project-context h2{font-size:38px}.about-ledger{margin:70px auto;grid-template-columns:1fr}.about-ledger article+article{border-left:0;border-top:1px solid var(--line)}.image-band{margin-bottom:30px}.contact-page>div{padding:36px 24px}.contact-ledger{border-left:0;border-top:1px solid var(--line)}.request-intro,.request-panel{padding:34px 24px}.request-intro img{max-height:280px}.form-row{grid-template-columns:1fr}.request-panel .button{width:100%}}
@media(max-width:760px){.contact-page>div:first-child{order:1}.contact-image{order:2}.contact-ledger{order:3}.contact-image img{aspect-ratio:8/5}}
@media(min-width:521px) and (max-width:760px){.hero-media{height:auto;aspect-ratio:16/9}.page-hero>img{height:auto;aspect-ratio:3/2;object-position:50% 44%}.project-detail figure{height:auto;aspect-ratio:3/2}.project-context img{height:auto;aspect-ratio:3/2}.request-intro img{max-height:none;aspect-ratio:3/2}}
@media(max-width:360px){.announcement p{max-width:220px}.announcement a{display:none}.navigation{width:calc(100% - 20px);gap:8px}.brand span:last-child{max-width:76px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero{width:calc(100% - 20px)}.hero-media{height:220px}.hero-copy{padding:23px 19px}.hero h1{font-size:35px}.hero-actions{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media img,.project-image img{animation:none!important;transition:none!important}}

/* Luma Yard: a daylight production field manual. */
body.luma-yard{--paper:#eee9df;--surface:#fffaf1;--ink:#171813;--muted:#585a52;--line:rgba(23,24,19,.22);--accent:var(--sb-accent,#d94e2c);--focus:var(--sb-focus,#1746a2);--radius:0;background:var(--paper)}
.luma-yard h1,.luma-yard h2,.luma-yard h3,.luma-yard .footer-brand,.luma-yard .scene-map-fallback strong,.luma-yard .quote blockquote,.luma-yard .sb-location-map h2{font-family:Archivo,Arial,sans-serif;font-weight:720;letter-spacing:-.045em}
.luma-yard .announcement{background:#24261f;color:#fff}
.luma-yard .navigation{width:min(100% - 64px,1440px);min-height:74px}
.luma-yard .brand-mark{background:var(--accent)}
.luma-yard .button{border-radius:0}
.luma-yard .button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
.luma-yard .button.primary:hover{background:var(--sb-accent-hover,#b9381d);border-color:var(--sb-accent-hover,#b9381d)}
.luma-yard .hero{width:100%;margin:0;min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(440px,52vh) auto;border:0;background:var(--surface);overflow:hidden}
.luma-yard .hero-media{order:1;width:100%;height:100%;min-height:440px;margin:0;overflow:hidden;background:#d5d0c5}
.luma-yard .hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 48%;animation:none}
.luma-yard .hero-copy{order:2;width:min(100% - 64px,1440px);margin:0 auto;padding:26px 0 30px;display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1fr) auto;grid-template-areas:"context headline actions" "context lede actions";column-gap:clamp(28px,5vw,78px);row-gap:8px;align-items:center;border:0;background:var(--surface)}
.luma-yard .hero-context{grid-area:context;align-self:start;margin:7px 0 0;padding-top:8px;border-top:2px solid var(--ink);color:var(--accent)}
.luma-yard .hero h1{grid-area:headline;max-width:13ch;margin:0;font-size:clamp(40px,4.6vw,68px);line-height:.95}
.luma-yard .hero-lede{grid-area:lede;max-width:46ch;margin:0;color:var(--muted);font-size:16px}
.luma-yard .hero-actions{grid-area:actions;display:grid;gap:8px;min-width:205px}
.luma-yard .hero-actions .button{min-height:46px}
.luma-yard .section-grid{width:min(100% - 64px,1440px);margin:110px auto;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(48px,8vw,126px)}
.luma-yard .section-grid figure{border-radius:0}
.luma-yard .section-grid figure img{aspect-ratio:16/10}
.luma-yard .section-copy h2,.luma-yard .section-heading h2,.luma-yard .craft-title h2,.luma-yard .workflow h2,.luma-yard .visit h2,.luma-yard .closing h2{font-size:clamp(38px,4vw,58px);line-height:.98}
.luma-yard .popular{padding:104px max(32px,calc((100vw - 1440px)/2));background:#24261f;color:#fff}
.luma-yard .popular .section-heading{grid-template-columns:minmax(0,1fr);max-width:760px;gap:10px}
.luma-yard .project-grid{gap:0;border-top:1px solid rgba(255,255,255,.26);border-left:1px solid rgba(255,255,255,.26)}
.luma-yard .project-card{border:0;border-right:1px solid rgba(255,255,255,.26);border-bottom:1px solid rgba(255,255,255,.26)}
.luma-yard .project-copy{min-height:300px}
.luma-yard .craft{width:min(100% - 64px,1440px);grid-template-columns:.62fr 1.38fr}
.luma-yard .craft-ledger article{grid-template-columns:.52fr 1fr}
.luma-yard .workflow{padding:104px max(32px,calc((100vw - 1440px)/2));background:var(--accent)}
.luma-yard .visit,.luma-yard .catalogue,.luma-yard .project-context,.luma-yard .about-ledger,.luma-yard .image-band,.luma-yard .contact-map-shell{width:min(100% - 64px,1440px)}
.luma-yard .quote{width:min(100% - 64px,1080px);text-align:left;border-top:4px solid var(--accent);padding-top:clamp(24px,4vw,44px)}
.luma-yard .quote blockquote{margin-left:0;font-size:clamp(38px,4.8vw,64px)}
.luma-yard .closing{background:#fffaf1;padding:80px max(32px,calc((100vw - 1440px)/2))}
.luma-yard footer{background:#24261f;color:#fff}
.luma-yard .footer-grid p,.luma-yard .footer-base p{color:#d7d5cc}
.luma-yard .page-hero,.luma-yard .project-detail,.luma-yard .contact-page,.luma-yard .request-layout{width:min(100% - 64px,1440px);border-radius:0}
.luma-yard .request-intro{background:#24261f}
.luma-yard :focus-visible{outline-color:var(--focus)}

@media(max-width:980px){
  .luma-yard .hero-copy{grid-template-columns:minmax(220px,.7fr) minmax(0,1fr);grid-template-areas:"context headline" "actions lede";align-items:start}
  .luma-yard .hero-actions{min-width:0}
  .luma-yard .project-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:760px){
  .luma-yard .navigation{width:calc(100% - 28px)}
  .luma-yard .hero{width:100%;margin:0;display:flex;flex-direction:column}
  .luma-yard .hero-media{order:1;width:100%;height:236px;min-height:236px;flex:0 0 236px}
  .luma-yard .hero-media img{width:100%;height:100%;object-fit:cover;object-position:58% 48%}
  .luma-yard .hero-copy{order:2;width:100%;padding:20px 16px 24px;display:grid;grid-template-columns:1fr;grid-template-areas:"context" "headline" "lede" "actions";gap:10px}
  .luma-yard .hero-context{margin:0;padding-top:6px}
  .luma-yard .hero h1{max-width:13ch;font-size:33px;line-height:.96}
  .luma-yard .hero-lede{font-size:13px;line-height:1.4}
  .luma-yard .hero-actions{grid-template-columns:1fr 1fr;gap:8px}
  .luma-yard .hero-actions .button{min-height:42px;padding:9px 7px;font-size:11px}
  .luma-yard .section-grid,.luma-yard .section-grid.reverse,.luma-yard .craft,.luma-yard .visit,.luma-yard .catalogue,.luma-yard .project-context,.luma-yard .about-ledger,.luma-yard .image-band,.luma-yard .contact-map-shell,.luma-yard .page-hero,.luma-yard .project-detail,.luma-yard .contact-page,.luma-yard .request-layout{width:calc(100% - 28px)}
  .luma-yard .section-grid,.luma-yard .section-grid.reverse,.luma-yard .craft{grid-template-columns:1fr;gap:28px}
  .luma-yard .popular,.luma-yard .workflow{padding-left:14px;padding-right:14px}
  .luma-yard .project-grid,.luma-yard .project-grid.wide{grid-template-columns:1fr}
  .luma-yard .craft-ledger article{grid-template-columns:1fr}
  .luma-yard .quote{width:calc(100% - 28px);padding-top:24px}
  .luma-yard .quote blockquote{font-size:38px}
  .luma-yard .closing{padding:58px 14px}
}

@media(max-width:360px){
  .luma-yard .navigation{width:calc(100% - 20px)}
  .luma-yard .hero-media{height:216px;min-height:216px;flex-basis:216px}
  .luma-yard .hero h1{font-size:31px}
  .luma-yard .hero-actions{grid-template-columns:1fr 1fr}
}

/* >>> w30 colours 2026-09-26 */
/* The engines read the business's colours the way the design's own parts do:
   links in the colour as text that reads on the paper, the ink that reads on
   the colour's surfaces (a yellow business gets dark text, not white). */
html:root body{--primary-text:var(--accent-text,var(--accent));--on-primary:var(--accent-ink,#fff)}
/* <<< w30 colours 2026-09-26 */

/* >>> w30 look 2026-09-26 */
/* The engines' bands line up with the design's own sections (they sat 31px
   inside them on a computer). */
html:root body .eng-sec > .eng-wrap{width:min(100% - 64px,1440px)}
@media(max-width:760px){html:root body .eng-sec > .eng-wrap{width:calc(100% - 28px)}}
/* Visit: the address sits under the heading with room between them, and
   the map follows straight under both, as wide as the section (a tall empty
   stretch sat between them on a computer). */
html:root body .visit > div:first-child > h2{margin:0 0 18px}
html:root body .visit > div:first-child > p{margin:0 0 6px}
@media(min-width:761px){html:root body .visit{row-gap:0}}
html:root body .visit > .sb-location-map--embedded{width:100%;margin:clamp(28px,3vw,40px) 0 0}
/* The footer's page list gets the room for its two columns (a link broke at
   its hyphen, "Rendez- / vous"). */
@media(min-width:981px){html:root body .footer-grid{grid-template-columns:1.2fr 1.4fr .8fr .5fr}}
@media(min-width:761px) and (max-width:980px){html:root body .footer-grid{grid-template-columns:1fr 1.4fr .8fr .6fr}}
@media(min-width:761px){html:root body .footer-grid a{white-space:nowrap}}
/* Phones: the page list takes the footer's whole width (two links ran into
   each other in half of it, "Book a meetingGive"). */
@media(max-width:760px){html:root body .footer-grid > div:nth-child(2){grid-column:1/-1}}
/* The closing band's button keeps its words on one line. */
html:root body .closing .button{white-space:nowrap;flex:none}
/* The headings beside the ledger and the review-room photograph get room
   (they stood one or two words a line); a production card has no tall empty
   stretch on a phone. */
@media(min-width:981px){html:root body .craft{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}
@media(min-width:761px){html:root body .section-grid.reverse{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:760px){html:root body .project-copy{min-height:0}}
/* Wide screens (1920, 2000): the hero is tall enough that at most about 40%
   of the photograph is cropped away, and the photograph is anchored nearer
   its top so heads stay in the frame. */
@media(min-width:1400px){
  html:root body section[data-section="hero"]{min-height:max(clamp(560px,82vh,800px),min(40vw,900px))}
  html:root body section[data-section="hero"] > :is(figure,.hero-media) img{object-position:center 30%}
}
/* <<< w30 look 2026-09-26 */

/* >>> standard 2026-09-25 */
/* The finished sites' standard (goal 2026-09-25): sections at most 68px a
   side (40px on a phone), the engines' bands in the page's margins, the menu
   on one row, a long footer page list in two columns. */
:root body main > section:not([data-section="hero"]):not(.eng-sec):not(.media-split):not(.map):not([data-paurtal-widget]){padding-top:clamp(40px,5vw,68px);padding-bottom:clamp(40px,5vw,68px)}
:root body main > section.media-split > div{padding-top:clamp(40px,5vw,68px);padding-bottom:clamp(40px,5vw,68px)}
:root body main > section.eng-sec{padding:clamp(40px,4.4vw,60px) 0;margin:0;max-width:none;width:auto}
:root body main > section.eng-sec + section.eng-sec{padding-top:clamp(12px,2vw,24px)}
:root body .eng-sec > .eng-wrap{width:min(1240px,calc(100% - 48px));max-width:none;margin-inline:auto;padding:0}
:root body .eng-sec .eng-head{margin-top:0}
:root body .eng-sec h2{margin-top:0}
:root body .eng-card__body > a:last-child{align-self:flex-start;width:auto;margin-top:auto}
:root body .eng-page-intro{min-height:0;padding-top:clamp(40px,6vw,84px);padding-bottom:clamp(20px,3vw,36px)}
:root body .eng-page-intro + .eng-sec{padding-top:clamp(12px,2vw,24px)}
@media(max-width:760px){
  :root body main > section:not([data-section="hero"]):not(.eng-sec):not(.media-split):not(.map):not([data-paurtal-widget]){padding-top:40px;padding-bottom:40px}
  :root body main > section.media-split > div{padding-top:40px;padding-bottom:40px}
  :root body main > section.eng-sec{padding-top:40px;padding-bottom:40px}
  :root body .eng-sec > .eng-wrap{width:calc(100% - 36px)}
}
:root body :is(footer,.site-footer) :is(div,nav):has(> a:nth-of-type(7)){display:grid;grid-template-columns:repeat(2,minmax(0,max-content));column-gap:28px;row-gap:10px;align-content:start}
:root body :is(footer,.site-footer) :is(div,nav):has(> a:nth-of-type(7)) > :is(h2,h3,p,b,strong){grid-column:1/-1}
/* The editors: every photograph keeps its frame inside the editor's wrapper. */
:root body :is(figure,.eng-card__photo) > [data-paurtal-img-wrap]{display:block !important;width:100%;height:100%}
/* A tap beside the hero's words reaches the photograph (the editors open its
   picker): the words' empty box lets the tap through, the words do not. */
:root body section[data-section="hero"] > div{pointer-events:none}
:root body section[data-section="hero"] > div > *{pointer-events:auto}
/* The hero: the photograph across the whole width, the words on it in white
   over a dark fade from their side (the bottom on a phone, the left on a
   computer); no split panel, no card, no pale haze. */
:root body section[data-section="hero"]{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr;grid-template-rows:none;align-items:end;align-content:end;width:100%;max-width:none;min-height:max(480px,calc(100svh - 250px));margin:0;padding:0;background:#141a19;border:0;border-radius:0;box-shadow:none;overflow:hidden;gap:0;color:#fff}
:root body section[data-section="hero"]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;display:block;width:auto;height:auto;border:0;border-radius:0;transform:none;opacity:1;background:linear-gradient(0deg,rgba(12,16,15,.92) 0%,rgba(12,16,15,.78) 45%,rgba(12,16,15,.5) 80%,rgba(12,16,15,.4) 100%)}
:root body section[data-section="hero"]::after{display:none}
:root body section[data-section="hero"] > :is(figure,.hero-media){position:absolute;inset:0;z-index:-2;display:block;width:100%;height:100%;min-height:0;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;clip-path:none;-webkit-mask:none;mask:none;transform:none;opacity:1;overflow:hidden;grid-area:auto;background:none;order:0}
:root body section[data-section="hero"] > :is(figure,.hero-media) picture{display:block;width:100%;height:100%}
:root body section[data-section="hero"] > :is(figure,.hero-media) img{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;object-position:center 45%;border:0;border-radius:0;clip-path:none;transform:none;filter:none;opacity:1}
:root body section[data-section="hero"] > :is(.hero-copy,.hero-card,.hero-words){position:relative;z-index:1;order:1;width:100%;max-width:none;min-height:0;margin:0;padding:28px 20px 32px;background:none;border:0;border-radius:0;box-shadow:none;clip-path:none;transform:none;grid-area:auto;color:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
:root body section[data-section="hero"] > :is(.hero-copy,.hero-card,.hero-words)::before,:root body section[data-section="hero"] > :is(.hero-copy,.hero-card,.hero-words)::after{display:none}
:root body section[data-section="hero"] :is(h1,h1 span,p,p span,.eyebrow,.hero-context,.hero-lede,.lede,.hero-line){color:#fff}
:root body section[data-section="hero"] h1{max-width:15ch;font-size:clamp(38px,5vw,66px);line-height:1.05;text-wrap:balance}
:root body section[data-section="hero"] :is(.hero-copy,.hero-card,.hero-words) > p:not(.eyebrow):not(.hero-context){max-width:46ch;color:#e6ebe8}
:root body section[data-section="hero"] .hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
:root body section[data-section="hero"] .hero-actions :is(.secondary,.btn-quiet){background:transparent;border-color:#fff;color:#fff}
:root body section[data-section="hero"] .hero-actions :is(.secondary,.btn-quiet) span{color:#fff}
@media(max-width:699px){:root body section[data-section="hero"] .hero-actions{padding-right:58px}}
@media(min-width:900px){
  :root body section[data-section="hero"]{align-items:center;align-content:center;min-height:clamp(560px,82vh,800px)}
  :root body section[data-section="hero"]::before{background:linear-gradient(90deg,rgba(12,16,15,.9) 0%,rgba(12,16,15,.72) 38%,rgba(12,16,15,.2) 70%,rgba(12,16,15,0) 86%)}
  :root body section[data-section="hero"] > :is(.hero-copy,.hero-card,.hero-words){padding:clamp(48px,8vh,96px) max(24px,calc((100% - 1240px) / 2))}
  :root body section[data-section="hero"] > :is(.hero-copy,.hero-card,.hero-words) > *{max-width:620px}
}
/* The engines take the design's own tokens. */
:root body{--primary:var(--accent);--primary-text:var(--accent);--on-primary:#fff;--ink-soft:var(--muted);--ground:var(--surface);--surface-2:var(--paper)}
/* The menu on one row, however many pages. */
@media(min-width:1025px){
  :root body .navigation{flex-wrap:nowrap;gap:clamp(14px,1.6vw,28px)}
  :root body #main-navigation{flex-wrap:nowrap;gap:clamp(10px,1.05vw,20px)}
  :root body #main-navigation > a{flex-shrink:0;white-space:nowrap}
  :root body #main-navigation:has(> a:nth-of-type(8)) > a{font-size:12.5px;letter-spacing:0}
  :root body .navigation .brand{flex-shrink:0}
}
/* The home's sections keep the standard's rhythm. */

:root body :is(.section-grid,.quote){margin-top:0;margin-bottom:0}
:root body .visit{margin-bottom:0}
:root body :is(.section-copy h2,.section-heading h2,.craft-title h2,.workflow h2,.visit h2,.closing h2){max-width:none}
:root body .quote blockquote{max-width:26ch}
/* The engines' headings at the size of the design's own section headings. */
:root body .eng-sec .eng-head h2{font-size:clamp(32px,3.4vw,48px);line-height:1.08;margin-bottom:12px}
/* The business's name always shows in full: on two lines, smaller, never cut. */
:root body .brand span:last-child{white-space:normal;overflow:visible;text-overflow:clip;max-width:17ch;line-height:1.15;overflow-wrap:break-word}
@media(max-width:699px){:root body .brand span:last-child{max-width:22ch;font-size:13px}}
/* Luma Yard's words sat in three columns across the photograph (its own
   grid: context, headline, actions): on the photograph they stack at the
   fade's side like the other heroes, lined up with the header: the kicker,
   the name, the description on one line, then the two buttons in a row. */
:root body section[data-section="hero"] > .hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;grid-template-columns:none;grid-template-areas:none}
:root body section[data-section="hero"] > .hero-copy > *{grid-area:auto}
:root body section[data-section="hero"] > .hero-copy > .hero-context{margin:0 0 14px;border:0;padding:0}
:root body section[data-section="hero"] > .hero-copy > .hero-context::before,:root body section[data-section="hero"] > .hero-copy > .hero-context::after{display:none}
:root body section[data-section="hero"] > .hero-copy > h1{margin:0 0 14px}
:root body section[data-section="hero"] > .hero-copy > p.hero-lede:not(.eyebrow):not(.hero-context){margin:0 0 24px;line-height:1.45}
:root body section[data-section="hero"] > .hero-copy > .hero-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px;margin:0;padding-right:0}
:root body section[data-section="hero"] > .hero-copy > .hero-actions > a{margin:0;width:auto}
@media(max-width:899px){:root body section[data-section="hero"] > .hero-copy{padding:28px 16px 32px}}
@media(min-width:900px){
  :root body section[data-section="hero"] > .hero-copy{padding:clamp(48px,8vh,96px) max(32px,calc((100% - 1440px) / 2))}
  :root body section[data-section="hero"] > .hero-copy > p.hero-lede:not(.eyebrow):not(.hero-context){max-width:760px;font-size:17px}
}
/* <<< standard 2026-09-25 */
