:root{--ink:#292c33;--navy:#353941;--cream:#e9eaec;--paper:#f6f6f7;--gold:#c6a96a;--gold-dark:#765b25;--muted:#60626a;--line:#cfd0d4;--brand-gradient:linear-gradient(115deg,#24272f 0%,#363a43 48%,#50535b 100%);--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body.viewer-open{overflow:hidden}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:5px}button,input,textarea,select{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #97702f;outline-offset:5px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #97702f;outline-offset:2px}::selection{background:#d6bd83;color:#24272e}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h1{font-size:clamp(44px,5.7vw,84px);line-height:1.08;letter-spacing:-.045em}h2{font-size:clamp(34px,3.7vw,52px);line-height:1.12;letter-spacing:-.035em}h3{font-size:26px;line-height:1.25}em{font-weight:400;color:var(--gold-dark)}p+p{margin-top:20px}p{max-width:65ch}button{border-radius:0}.eyebrow{font:11px/1.7 var(--sans);font-weight:600;letter-spacing:.17em;text-transform:uppercase}.eyebrow+h1,.eyebrow+h2{margin-top:20px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;top:8px;left:12px;transform:translateY(-200%);padding:12px 20px;background:var(--cream);z-index:200}.skip:focus{transform:none}.preview-bar{text-align:center;font-size:11px;padding:6px;background:#d9c58d;color:#23292b;letter-spacing:.04em}.preview-bar span{margin:0 12px}.site-header{height:104px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--brand-gradient);color:var(--cream);border-bottom:1px solid #ffffff24}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand img{width:54px;height:54px;border-radius:50%}.brand>span{font:26px/1.1 var(--serif);letter-spacing:-.02em}.brand small{display:block;font:8px/1 var(--sans);letter-spacing:.21em;margin-top:10px;color:#d9c58e}.site-header nav{display:flex;align-items:center;gap:32px;font-size:13px}.site-header nav a{text-decoration:none;padding:10px 0}.site-header nav a:hover,.site-header nav a[aria-current]{color:#e3c27d}.site-header .nav-cta{border-bottom:1px solid #a89367;padding-bottom:7px;margin-left:10px}.nav-cta span{margin-left:16px}.menu-toggle{display:none;background:none;color:inherit;border:1px solid #a1a3ac;padding:8px 12px;min-height:44px}.hero{position:relative;background:var(--ink);color:var(--cream);min-height:660px;display:flex;align-items:center;overflow:hidden}.hero-photo{position:absolute;inset:0;overflow:hidden}.hero-photo img{height:100%;width:100%;object-fit:cover;object-position:50% 50%;transform:perspective(100vw) rotateX(1.7deg) rotateZ(-.75deg) scale(1.6);transform-origin:50% 50%}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#292c33 0%,#292c33e8 12%,#292c334f 50%,#292c3303 78%),linear-gradient(0deg,#24272ea6,transparent 25%)}.hero-copy{position:relative;padding:74px 5.5% 104px;max-width:900px}.hero-copy .eyebrow{color:#dbbf82}.hero h1{font-size:clamp(50px,5.8vw,84px);max-width:760px}.hero h1 em{color:#ddc18a}.hero-copy>p:not(.eyebrow){margin-top:28px;font-size:16px;color:#e4e5e9;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:36px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:54px;padding:15px 24px;border:1px solid transparent;font:13px/1.5 var(--sans);text-decoration:none;font-weight:600;transition:background .18s,color .18s}.button span{font-size:20px;line-height:1}.button.gold{background:var(--gold);color:#292c33}.button.gold:hover{background:#dec58b}.button.outline{border-color:#777a84;background:transparent;color:var(--ink)}.button.outline:hover{background:var(--ink);color:var(--cream)}.text-link{display:inline-flex;align-items:center;gap:20px;padding:7px 0;border-bottom:1px solid #9d8e6c;text-decoration:none;font-size:13px;font-weight:600;min-height:44px}.text-link span{font-size:19px}.text-link.light{color:var(--cream);border-color:#95866a}.hero-caption{position:absolute;bottom:24px;left:5.5%;right:5.5%;display:flex;justify-content:space-between;color:#e2e3e7;font-size:10px;letter-spacing:.045em}.hero-caption a{text-decoration:none}.intro-strip{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:32px 5.5%;border-bottom:1px solid var(--line)}.intro-strip>span{font-size:10px;letter-spacing:.16em;max-width:210px}.intro-strip p{font:20px/1.5 var(--serif)}.intro-strip>a{border:1px solid #aba493;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;text-decoration:none;font-size:23px}.section{padding:100px 5.5%}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:46px}.section-heading>div:last-child{max-width:350px}.section-heading p:not(.eyebrow){font-size:14px;color:var(--muted);margin-bottom:18px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px}.project-image{display:block;position:relative;overflow:hidden;background:#d0d1d6}.project-image img{width:100%;aspect-ratio:1.18;object-fit:cover;object-position:var(--photo-x,50%) var(--photo-y,45%);transform:rotate(var(--photo-angle,0deg)) scale(var(--photo-scale,1));transition:transform .4s}.project-image:hover img{transform:rotate(var(--photo-angle,0deg)) scale(calc(var(--photo-scale,1) + .025))}.expand{position:absolute;right:14px;bottom:14px;background:var(--cream);color:var(--ink);width:38px;height:38px;display:grid;place-items:center;font-size:21px;opacity:.94}.project-caption{padding:20px 0 4px}.project-caption .eyebrow{color:var(--gold-dark);font-size:9px;margin-bottom:7px}.project h3{font-size:23px}.story-split{display:grid;grid-template-columns:1fr 1fr;min-height:600px;background:linear-gradient(125deg,#e5e6e9,#d6d8de)}.story-image{position:relative;overflow:hidden}.story-image>img{height:100%;width:100%;object-fit:cover}.photo-note{position:absolute;bottom:24px;left:30px;background:#292c33d9;color:#f6f6f7;padding:9px 14px;font-size:11px}.story-copy{padding:76px 12%}.story-copy>p:not(.eyebrow){font-size:14px;margin-top:25px;color:#54565f}.story-copy .text-link{margin-top:22px}.process-section{background:var(--brand-gradient);color:var(--cream);display:grid;grid-template-columns:1fr 1.05fr;gap:11%}.process-section .eyebrow{color:#ddc18a}.process-section>div>p:not(.eyebrow){color:#d3d4d9;margin-top:26px;font-size:14px}.process-section .text-link{margin-top:24px}.process-step{display:flex;gap:28px;padding:26px 0;border-top:1px solid #ffffff30}.process-step:first-child{padding-top:0;border-top:0}.step-number{color:#d9b977;font:14px var(--serif);margin-top:7px}.process-step h3{font-size:28px}.process-step p{font-size:13px;color:#d3d4d9;margin-top:13px}.testimonial{padding:88px 18%;text-align:center;border-bottom:1px solid var(--line);background:var(--paper)}.testimonial .eyebrow{color:var(--gold-dark)}blockquote{font:clamp(25px,2.8vw,39px)/1.45 var(--serif);letter-spacing:-.02em;margin:28px auto}.testimonial>p:last-child{font-size:10px;letter-spacing:.18em}.faq-section{display:grid;grid-template-columns:1fr 1.2fr;gap:12%}.faq-section .text-link{margin-top:24px}.faq-list details{border-top:1px solid #bfc1c8}.faq-list details:last-child{border-bottom:1px solid #bfc1c8}.faq-list summary{padding:24px 0;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:15px;cursor:pointer;line-height:1.5}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font:24px var(--serif);color:var(--gold-dark)}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:#555860;font-size:14px;padding:0 30px 26px 0}.cta-band{margin:0 5.5% 80px;background:linear-gradient(115deg,#dedfe3,#c6c9d0);padding:58px 5%;display:flex;justify-content:space-between;align-items:center;gap:45px}.cta-band .eyebrow{font-size:9px;color:#695427}.cta-band h2{font-size:46px}.cta-band>div:last-child{font-size:14px;max-width:330px}.cta-band .button{margin-top:24px}footer{background:var(--brand-gradient);color:var(--cream);padding:64px 5.5% 26px}.footer-top{display:grid;grid-template-columns:1.15fr .65fr 1fr;gap:8%;padding-bottom:50px}.footer-brand{font:33px var(--serif);text-decoration:none}.gold-dot{color:var(--gold)}.footer-top p{font-size:12px;color:#d3d4d9;margin-top:18px}.footer-top .eyebrow{color:#ddc18a;margin:0;font-size:9px}.footer-links{display:flex;flex-direction:column;align-items:start;gap:10px;font-size:12px}.footer-links a{text-decoration:none;min-height:32px}.footer-top .text-link{font-size:11px;margin-top:14px}.footer-bottom{border-top:1px solid #ffffff2a;padding-top:24px;display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap;font-size:10px;color:#cbd0d8}.footer-bottom>div{display:flex;gap:20px}.footer-bottom a{min-height:30px}.page-intro{padding:72px 5.5% 56px;background:var(--cream);border-bottom:1px solid var(--line)}.page-intro h1{font-size:clamp(45px,5.5vw,76px)}.intro-bottom{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-top:30px}.intro-bottom>p{font-size:14px;color:#555860}.portfolio{padding-top:38px}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid #bfc1c8}.filter-bar button{font-size:12px;min-height:44px;background:transparent;color:#33363e;border:1px solid transparent;padding:10px 18px}.filter-bar button[aria-pressed=true]{background:var(--ink);color:var(--cream)}.filter-bar button:hover{border-color:var(--ink)}.gallery-status{font-size:11px;color:#60636b;padding:18px 0 30px}.gallery-grid{row-gap:38px}.gallery-grid .project-image img{aspect-ratio:1}.gallery-more{text-align:center;margin-top:40px}.about-hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:560px}.about-hero>div{padding:70px 10%}.about-hero h1{font-size:clamp(42px,4.4vw,64px)}.about-hero p:not(.eyebrow){margin-top:28px;font-size:14px}.about-hero>img{height:100%;width:100%;object-fit:cover}.story-text{display:grid;grid-template-columns:1fr 2fr;gap:8%;border-top:1px solid var(--line)}.story-text>div{max-width:680px}.story-text h2{margin-bottom:28px}.story-text p:not(.eyebrow){font-size:15px;color:#51545d}.values{display:grid;grid-template-columns:1fr 1fr;gap:13%;background:#dedfe3;margin-bottom:80px}.values h3{font-size:25px;margin-bottom:10px}.values p+h3{margin-top:30px}.values>div:last-child p{font-size:14px;color:#545761}.service-list{padding-top:0}.service-row{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:70px 0;border-bottom:1px solid var(--line);align-items:center}.service-row:nth-child(2)>div{order:2}.service-row h2{font-size:43px}.service-row p:not(.eyebrow){font-size:14px;margin:25px 0}.service-row img{width:100%;aspect-ratio:1.2;object-fit:cover}.contact-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:8%;padding:80px 5.5% 100px}.contact-intro h1{font-size:clamp(40px,4.2vw,63px)}.contact-intro>p:not(.eyebrow){font-size:14px;margin-top:28px;max-width:410px}.contact-person{display:flex;gap:20px;align-items:center;margin-top:42px;padding-top:30px;border-top:1px solid var(--line)}.contact-person>img{width:86px;height:86px;border-radius:50%;object-fit:cover}.contact-person h2{font-size:21px}.contact-person p{font-size:11px;margin-top:8px;line-height:1.8}.contact-note{color:#60636b;font-size:12px!important}.inquiry-panel{padding:40px;background:var(--paper);border:1px solid var(--line)}.inquiry-panel>h2{font-size:32px}.form-help{font-size:11px;color:#60636b;margin:18px 0 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field label{display:block;font-size:12px;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #aeb0b9;background:#fcfcfd;border-radius:0;color:var(--ink);min-height:47px;font-size:14px}.field textarea{resize:vertical;min-height:130px}.field.full{grid-column:1/-1}.privacy-note{font-size:11px;line-height:1.8;color:#565963;margin:20px 0}.form-status{margin-top:18px;font-size:13px}.form-status:empty{display:none}.form-errors{padding:14px;border:2px solid #8d392a;background:#fff3eb;margin-bottom:20px;font-size:13px}.form-errors ul{padding-left:18px;margin:8px 0 0}.field [aria-invalid=true]{border:2px solid #8d392a}.honeypot{position:absolute;left:-10000px;height:1px;overflow:hidden}.button:disabled{cursor:wait;opacity:.6}.policy{max-width:850px;margin:auto;padding:70px 30px 100px}.policy h1{font-size:52px;margin-bottom:28px}.policy h2{font-size:27px;line-height:1.3;margin:35px 0 14px}.policy p,.policy li{font-size:14px}.policy ul{padding-left:22px}.draft-notice{padding:18px;background:#e2e1dc;border-left:3px solid #927337;font-size:12px;margin-bottom:30px}.compact{padding-bottom:100px;min-height:550px}.compact>p:not(.eyebrow){max-width:550px;margin:28px 0}.lightbox{background:#262931;color:var(--cream);padding:24px 30px;width:min(1100px,94vw);max-height:94dvh;border:1px solid #ffffff50;overflow:auto}.lightbox::backdrop{background:#15171de8}.viewer-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.viewer-top button{background:none;border:1px solid #999ca6;padding:8px 16px;color:#fff;min-height:44px;font-size:13px}.viewer-top button span{margin-left:20px;font-size:22px}.viewer-image{display:grid;grid-template-columns:44px 1fr 44px;gap:12px;align-items:center;margin:18px 0}.viewer-image>img{width:100%;height:56dvh;object-fit:contain}.viewer-image>button{width:44px;height:44px;border:1px solid #afb2bc;background:none;color:#fff;font-size:23px}.viewer-caption{text-align:center;max-width:750px;margin:auto}.viewer-caption h2{font-size:28px}.viewer-caption p{font-size:13px;color:#d3d5de;margin:10px auto}.viewer-caption a{font-size:12px}.studio-page{max-width:1000px;margin:auto;padding:40px 24px}.studio-page h1{font-size:44px}.studio-page h2{font-size:30px;margin:30px 0 20px}.studio-page form{padding:24px;background:var(--paper);border:1px solid var(--line);margin:24px 0}.studio-page .field{margin:14px 0}.studio-item{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.studio-item img{width:120px;height:120px;object-fit:cover}.studio-item form{margin:0}.studio-item label{display:block}.studio-page .button{margin-top:16px}.studio-page a{display:inline-block}.studio-message{padding:18px;background:#e2e8db;margin:20px 0;border:1px solid #7c8c69}.response-page{padding:80px 5%;max-width:800px;margin:auto;min-height:70vh}.response-page h1{font-size:48px;margin:20px 0}.response-page p{margin-bottom:25px}[hidden]{display:none!important}@media(min-width:1700px){.hero-copy{padding-left:8%}.section,.page-intro{padding-left:8%;padding-right:8%}.site-header{padding:0 8%}.hero{min-height:760px}}@media(max-width:1050px){.site-header nav{gap:20px}.brand>span{font-size:23px}.brand img{width:45px;height:45px}.brand small{font-size:7px}.site-header .nav-cta{margin-left:0}.hero{min-height:600px}.story-copy{padding:56px 10%}.section{padding:75px 5.5%}.process-section{gap:8%}.contact-layout{gap:4%}.inquiry-panel{padding:28px}.footer-top{gap:6%}.hero h1{font-size:65px}.hero-photo{left:0}.project-grid{gap:25px 20px}.cta-band h2{font-size:40px}}@media(max-width:760px){h1{font-size:50px}h2{font-size:38px}.site-header{height:86px;padding:0 6%;position:relative;z-index:20}.menu-toggle{display:block;font-size:12px}.menu-toggle span{margin-left:10px}.site-header nav{position:absolute;top:86px;left:0;right:0;background:var(--ink);padding:20px 6% 28px;display:none;flex-direction:column;align-items:stretch;gap:4px;box-shadow:0 15px 20px #0004}.site-header nav.open{display:flex}.site-header nav a{padding:14px 8px;border-bottom:1px solid #ffffff25}.hero{min-height:760px;display:block;padding-bottom:0}.hero-photo{inset:0 0 auto 0;height:100%;opacity:.65}.hero-photo img{object-position:34% 65%;transform:perspective(100vw) rotateX(1deg) rotateZ(-.75deg) scale(1.45);transform-origin:50% 100%}.hero-photo:after{background:linear-gradient(90deg,#292c33d9,#292c3340),linear-gradient(0deg,#292c33 0%,transparent 55%)}.hero-copy{padding:70px 6% 130px}.hero h1{font-size:clamp(48px,8vw,68px);max-width:560px}.hero-copy .eyebrow{font-size:9px;letter-spacing:.14em}.hero-copy>p:not(.eyebrow){font-size:15px}.hero-actions{gap:20px;margin-top:30px;max-width:400px}.hero-caption{left:6%;right:6%;bottom:22px;font-size:8px;gap:20px}.intro-strip{padding:30px 6%;flex-wrap:wrap;gap:20px}.intro-strip>span{max-width:none;width:100%}.intro-strip p{font-size:19px;width:calc(100% - 70px)}.intro-strip p br{display:none}.section{padding:65px 6%}.section-heading{align-items:start;gap:25px;flex-direction:column;margin-bottom:30px}.section-heading h2 br{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.work-preview .project-grid{grid-template-columns:1fr}.work-preview .project-image img{aspect-ratio:1.25}.project h3{font-size:22px}.story-split{grid-template-columns:1fr;min-height:0}.story-image{height:440px}.story-copy{padding:55px 6%}.story-copy h2 br{display:none}.photo-note{font-size:10px;left:6%}.process-section{grid-template-columns:1fr;gap:48px}.process-step h3{font-size:28px}.process-step p{font-size:14px}.process-step{gap:24px}.testimonial{padding:65px 8%}.faq-section{grid-template-columns:1fr;gap:35px}.faq-list summary{font-size:15px}.cta-band{padding:40px 7%;margin:0 6% 55px;display:block}.cta-band h2{font-size:38px}.cta-band>div:last-child{margin-top:26px}.footer-top{grid-template-columns:1fr 1fr;gap:34px}.footer-top>div:first-child{grid-column:1/-1}.footer-top>div:last-child{max-width:240px}footer{padding:50px 6% 24px}.footer-bottom{gap:15px}.footer-bottom>span:last-child{width:100%}.page-intro{padding:55px 6% 36px}.page-intro h1{font-size:50px}.intro-bottom{align-items:start;flex-direction:column;gap:22px}.portfolio{padding-top:28px}.filter-bar{gap:6px}.filter-bar button{font-size:11px;padding:10px 12px}.gallery-status{padding-bottom:24px}.project-caption .eyebrow{font-size:8px}.gallery-grid .project h3{font-size:19px}.project-caption{padding-top:14px}.gallery-grid{gap:26px 16px}.about-hero{grid-template-columns:1fr}.about-hero>div{padding:55px 6%}.about-hero h1{font-size:49px}.about-hero>img{max-height:500px;object-position:center}.story-text,.values{grid-template-columns:1fr;gap:26px}.story-text>div{max-width:none}.values{margin-bottom:55px}.service-row{grid-template-columns:1fr;gap:30px;padding:45px 0}.service-row:nth-child(2)>div{order:0}.service-row h2{font-size:36px}.service-list{padding-top:0;padding-bottom:40px}.contact-layout{grid-template-columns:1fr;padding:55px 6% 65px;gap:40px}.contact-intro h1{font-size:49px}.contact-person{margin-top:30px}.inquiry-panel{padding:26px 22px}.inquiry-panel>h2{font-size:29px}.lightbox{padding:18px 14px;width:96vw}.viewer-image{grid-template-columns:36px 1fr 36px;gap:4px}.viewer-image>button{width:36px;height:44px}.viewer-image>img{height:49dvh}.viewer-caption h2{font-size:24px}.viewer-caption p{font-size:12px}.viewer-top .eyebrow{font-size:9px}.studio-item{grid-template-columns:1fr}.compact{min-height:500px;padding-bottom:70px}}@media(max-width:420px){.brand>span{font-size:21px}.brand img{width:40px;height:40px}.brand{gap:9px}.brand small{font-size:6px}.hero{min-height:710px}.hero h1{font-size:47px}.hero-copy{padding-top:58px}.hero-actions{display:flex;align-items:start;flex-direction:column;gap:12px}.hero-caption span{max-width:180px}.page-intro h1,.contact-intro h1,.about-hero h1{font-size:43px}.project-grid{grid-template-columns:1fr}.gallery-grid .project-image img{aspect-ratio:1.2}.gallery-grid .project h3{font-size:24px}.form-grid{grid-template-columns:1fr}.inquiry-panel{padding:24px 18px}.footer-top{grid-template-columns:1fr}.footer-top>div:first-child{grid-column:auto}.footer-links{display:grid;grid-template-columns:1fr 1fr}.footer-top>div:last-child{max-width:300px}.footer-bottom>div{gap:16px}.policy h1{font-size:41px}.button{padding:15px 20px}.contact-person>img{width:65px;height:65px}.contact-person h2{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.project-image:hover img{transform:rotate(var(--photo-angle,0deg)) scale(var(--photo-scale,1))}}@media print{.preview-bar,.menu-toggle,.hero-actions,.filter-bar,.expand,.lightbox,.gallery-more{display:none!important}.site-header,footer,.process-section{background:#fff;color:#000}.hero-photo{position:relative;inset:auto}.hero-copy{color:#000;padding:20px}.hero{display:block;min-height:0}.hero-photo:after{display:none}.section{padding:30px 0}.project-grid{grid-template-columns:repeat(2,1fr)}.project[hidden]{display:block!important}a{color:#000}}

/* Owner review: logo grays, restrained gold, and native testimonial motion. */
.testimonial{position:relative;background:linear-gradient(120deg,#f3f3f5,#e2e3e8);overflow:hidden}
.testimonial:before{content:'';display:block;width:52px;height:1px;background:var(--gold-dark);margin:0 auto 24px}
.quote-stage{display:grid;margin:0 auto;max-width:900px;transition:opacity .7s ease,transform .7s ease}
.quote-slide{margin:0;grid-area:1/1}
.quote-slide figcaption{font-size:10px;letter-spacing:.18em;color:#545761}
.quote-stage.is-ready .quote-slide{opacity:0;visibility:hidden;transition:opacity .65s ease,visibility 0s .65s}
.quote-stage.is-ready .quote-slide.is-active{opacity:1;visibility:visible;transition-delay:0s}
.testimonial.motion-ready .quote-stage{opacity:0;transform:translateY(10px)}
.testimonial.motion-ready.is-in-view .quote-stage{opacity:1;transform:none}
.quote-controls{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:28px}
.quote-controls button{min-width:44px;min-height:44px;background:transparent;border:1px solid #9d8e6c;color:var(--ink);font-size:12px;padding:8px 13px}
.quote-controls button:hover{background:#d9dbe1}
.button.gold{box-shadow:inset 0 1px 0 #fff4}
@media(prefers-reduced-motion:reduce){.testimonial.motion-ready .quote-stage{opacity:1;transform:none}.quote-stage,.quote-slide{transition:none!important}}

/* Thumbnail framing preserves original files and full-photo viewer access. */
.project[data-project="project-01"]{--photo-x:48%;--photo-y:48%}
.project[data-project="project-03"]{--photo-y:64%;--photo-angle:-.6deg;--photo-scale:1.03}
.project[data-project="project-05"],.project[data-project="project-63"]{--photo-y:54%}
.project[data-project="project-07"]{--photo-y:40%}
.project[data-project="project-13"]{--photo-y:57%;--photo-angle:.5deg;--photo-scale:1.03}
.project[data-project="project-15"]{--photo-x:65%;--photo-y:45%}
.project[data-project="project-17"]{--photo-y:60%}
.project[data-project="project-21"]{--photo-y:35%}
.project[data-project="project-26"]{--photo-x:65%;--photo-y:47%}
.project[data-project="project-29"]{--photo-y:44%}
.project[data-project="project-30"]{--photo-y:44%}
.project[data-project="project-31"]{--photo-y:42%}
.project[data-project="project-32"]{--photo-y:44%}
.project[data-project="project-35"]{--photo-y:48%}
.project[data-project="project-37"]{--photo-y:58%}
.project[data-project="project-38"]{--photo-y:43%}
.project[data-project="project-44"]{--photo-y:50%}
.project[data-project="project-45"]{--photo-y:48%}
.project[data-project="project-47"]{--photo-y:48%}
.project[data-project="project-52"]{--photo-x:52%;--photo-y:38%;--photo-angle:1deg;--photo-scale:1.04}
.project[data-project="project-53"]{--photo-y:45%}
.project[data-project="project-59"]{--photo-y:45%}
.project[data-project="project-60"]{--photo-y:45%}
.project[data-project="project-61"]{--photo-y:47%}
.project[data-project="project-62"]{--photo-y:48%}
.project[data-project="project-67"]{--photo-y:50%}
.project[data-project="project-69"]{--photo-y:47%}
.project[data-project="project-70"]{--photo-y:52%}
.project[data-project="project-71"]{--photo-x:49%;--photo-y:42%;--photo-angle:-1deg;--photo-scale:1.04}
.project[data-project="project-72"]{--photo-y:36%;--photo-angle:.4deg;--photo-scale:1.02}
.project[data-project="project-76"]{--photo-y:44%}
.project[data-project="project-78"]{--photo-y:48%}
.service-photo{display:block;overflow:hidden}.service-row .service-geometric{object-position:50% 50%;transform:perspective(100vw) rotateX(1.7deg) rotateZ(-.75deg) scale(1.6)}

/* Wall-plane correction: frames crop the rectified view without distorting its proportions. */
.project-image.is-framed,.service-photo.is-framed,.viewer-photo.is-framed{position:relative;overflow:hidden;isolation:isolate}
.project-image.is-framed{aspect-ratio:1.18}
.gallery-grid .project-image.is-framed{aspect-ratio:1}
.service-photo.is-framed{aspect-ratio:1.2}
.project-image.is-framed img,.service-photo.is-framed img,.viewer-photo.is-framed img{position:absolute;top:0;left:0;width:100%;height:auto;max-width:none;aspect-ratio:auto;object-fit:fill;transform-origin:0 0;transition:none}
.project-image.is-framed:hover img{filter:brightness(1.035)}
.viewer-photo{position:relative;width:min(100%,calc(56dvh * var(--viewer-ratio,1.18)));aspect-ratio:var(--viewer-ratio,1.18);margin:auto;overflow:hidden}
.viewer-photo>img{width:100%;height:auto}
@media(max-width:760px){.work-preview .project-image.is-framed{aspect-ratio:1.25}.viewer-photo{width:min(100%,calc(49dvh * var(--viewer-ratio,1.18)))}}
@media(max-width:420px){.gallery-grid .project-image.is-framed{aspect-ratio:1.2}}

/* Uniform gallery tiles; the enlarged view retains each wall’s corrected proportions. */
.gallery-grid .project-image,.gallery-grid .project-image.is-framed{aspect-ratio:6/5}
.gallery-grid .project-image:not(.is-framed) img{aspect-ratio:6/5}
