:root{--paper:#ffffff;--ink:#191919;--muted:#555555;--green:#f5f5f5;--pink:#f7f7f7;--yellow:#f5c400;--line:#d6d6d6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;letter-spacing:-.035em}h1{font-size:clamp(3.8rem,6.5vw,6.7rem)}h1 em{font-weight:400;color:#414141}h2{font-size:clamp(2.5rem,4.1vw,4.2rem)}h3{font-size:1.22rem;line-height:1.3}p{color:var(--muted)}.wrap{max-width:1264px;width:calc(100% - 96px);margin:auto}.offer{background:var(--green);text-align:center;padding:8px 20px;font-size:.875rem;letter-spacing:.02em}.offer strong{margin-left:6px}header{display:flex;align-items:center;justify-content:space-between;min-height:113px;gap:28px;border-bottom:1px solid var(--line)}.brand{width:230px;flex-shrink:0}.brand img{width:100%;height:auto}nav{display:flex;gap:30px}nav a,.call{text-decoration:none;font-size:.95rem}.call{border-bottom:1px solid;padding-bottom:3px;font-weight:600}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:65px;align-items:center;padding-top:58px;padding-bottom:70px}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:700;color:var(--ink);margin-bottom:24px}.lead{font-size:1.13rem;max-width:450px;margin:26px 0}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;padding:17px 24px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:3px;text-decoration:none;font:inherit;font-weight:600;cursor:pointer}.button:hover{background:#333333}.small{font-size:.875rem;margin-top:17px}.hero-photo{position:relative;background:#ffffff;padding:13px 13px 20px;transform:rotate(2deg);box-shadow:0 12px 25px #263b3210;border:1px solid #dddddd}.photo-window{height:386px;position:relative;overflow:hidden;background:#f5f5f5}.photo-window img{position:absolute;max-width:none;width:233%;height:auto;left:-121%;top:-29%}.hero-photo figcaption{display:flex;flex-direction:column;padding:16px 8px 0;line-height:1.5}.hero-photo figcaption span{font-size:.8rem;color:var(--muted)}.hero-photo figcaption strong{font-family:Georgia,serif;font-size:1.65rem;font-weight:400}.tag{position:absolute;right:-20px;bottom:30px;background:var(--yellow);border:1px solid #b58f00;padding:19px;border-radius:50%;width:125px;height:125px;display:grid;align-content:center;text-align:center;font-family:Georgia,serif;font-style:italic;font-size:1.2rem;line-height:1.2;transform:rotate(-10deg)}.ribbon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--yellow);padding:18px 0;font-size:.78rem;letter-spacing:.1em}.ribbon .wrap{display:flex;justify-content:space-between;align-items:center;gap:15px}.section{padding-top:90px;padding-bottom:90px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:45px}.section-heading>p{max-width:340px}.services{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.services article{padding:27px 24px 4px 0}.services article+article{border-left:1px solid var(--line);padding-left:24px}.number{font-family:Georgia,serif;font-size:1.2rem;display:block;margin-bottom:27px;color:#666666}.services h3{margin-bottom:12px}.services p{font-size:.96rem}.work{background:var(--green)}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:38px}.gallery figure{background:var(--paper);border:1px solid #dddddd;padding:12px}.gallery img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover}.gallery figcaption{padding:15px 12px 10px}.gallery figcaption span{font-size:.9rem;color:var(--muted)}.process{display:grid;grid-template-columns:1fr 1fr;gap:90px}.process>div>p:not(.eyebrow){max-width:420px;margin:25px 0}.text-link{font-weight:600;text-underline-offset:6px}ol{margin:0;padding-left:30px}li{padding:0 0 25px 12px}li::marker{font-family:Georgia,serif;font-size:1.5rem}li h3{margin:3px 0 8px}.about{background:var(--pink);text-align:center;padding:65px 0}.about-inner>p:not(.eyebrow){max-width:620px;margin:24px auto}.areas{margin-top:30px;font-size:.94rem}.areas span{padding:0 12px}.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.contact>div>p:not(.eyebrow){max-width:390px;margin:24px 0}.phone{display:block;font-family:Georgia,serif;font-size:2.1rem;text-decoration:none;margin-top:25px}.email{display:block;font-size:.95rem;overflow-wrap:anywhere}.discount{font-size:.9rem}form{display:grid;grid-template-columns:1fr 1fr;gap:17px;background:#f7f7f7;border:1px solid var(--line);padding:28px}label{display:grid;gap:7px;font-size:.875rem;font-weight:600}input,textarea{width:100%;min-width:0;border:1px solid #929292;background:#ffffff;border-radius:2px;padding:11px;font:inherit;font-size:1rem;color:var(--ink)}textarea{resize:vertical}.full{grid-column:1/-1}.form-note{font-size:.85rem;line-height:1.5}#form-status:empty{display:none}footer{border-top:1px solid var(--line);padding:25px 0;font-size:.85rem}footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #715900;outline-offset:4px}.skip{position:absolute;top:-100px}.skip:focus{top:0;background:white;z-index:99;padding:15px}@media(min-width:1400px){.photo-window{height:420px}}@media(max-width:1000px){.wrap{width:calc(100% - 48px)}header{gap:15px}.brand{width:190px}nav{gap:17px}.hero{gap:30px}.photo-window{height:345px}.photo-window img{top:-10%}.tag{right:-10px;bottom:50px;width:105px;height:105px;font-size:1rem}.services{grid-template-columns:repeat(2,1fr)}.services article{padding-bottom:25px}.services article:nth-child(3){border-left:0;padding-left:0}.contact,.process{gap:35px}.section-heading>p{max-width:280px}}@media(max-width:700px){.wrap{width:calc(100% - 36px)}.offer{font-size:.75rem;padding:8px 12px}.offer strong{display:block}header{flex-wrap:wrap;padding:13px 0;min-height:0;gap:10px}.brand{width:180px}.call{font-size:.85rem}nav{order:3;width:100%;justify-content:space-between;padding-top:7px}nav a{font-size:.875rem}.hero{grid-template-columns:1fr;padding-top:38px;padding-bottom:45px;gap:36px}.eyebrow{font-size:.7rem;margin-bottom:17px}h1{font-size:3.9rem}.lead{font-size:1rem;margin:20px 0}.hero-photo{width:calc(100% - 16px);margin:auto}.photo-window{height:340px}.photo-window img{top:-23%}.hero-photo figcaption{padding-left:2px}.hero-photo figcaption span{max-width:210px;font-size:.72rem}.tag{bottom:17px;right:-12px}.ribbon .wrap{flex-wrap:wrap;justify-content:center;font-size:.67rem;gap:10px}.section{padding-top:55px;padding-bottom:55px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{max-width:none;margin-top:20px}.services{grid-template-columns:1fr 1fr}.services article{padding-right:14px}.services article+article{padding-left:14px}.services article:nth-child(3){padding-left:0}.services h3{font-size:1.08rem}.services p{font-size:.9rem}.number{margin-bottom:15px}.gallery{grid-template-columns:1fr;gap:22px}.process,.contact{grid-template-columns:1fr;gap:35px}.about{padding:48px 0}.areas span{padding:0 5px}form{padding:20px;gap:15px}footer .wrap{display:grid;gap:7px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:25px}.review-cards:empty{display:none}.review-cards article{background:#f7f7f7;border:1px solid var(--line);padding:24px}.review-cards img{border-radius:50%;margin-bottom:12px}.review-cards p{margin-top:12px;white-space:pre-line;overflow-wrap:anywhere}@media(max-width:700px){.review-cards{grid-template-columns:1fr}}
.photo-window{height:460px;background:#f4f4f4}.photo-window img{position:static;width:100%;height:100%;max-width:100%;object-fit:contain;transform:none}.hero-photo{transform:rotate(1deg)}
.selected-gallery{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.selected-gallery img{object-fit:contain;aspect-ratio:1/1;background:#fff}.selected-gallery figure:first-child{grid-column:span 2}.selected-gallery figure:first-child img{aspect-ratio:1.6}
.carousel-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.carousel-controls{display:flex;gap:10px;flex-shrink:0}.carousel-controls button{width:48px;height:48px;background:var(--paper);border:1px solid var(--ink);color:var(--ink);font-size:1.4rem;cursor:pointer;border-radius:50%}.carousel-controls button:disabled{opacity:.35;cursor:default}.project-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:24px;padding:8px 2px 20px;margin-top:30px;scrollbar-width:thin;overscroll-behavior-x:contain}.project-track figure{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start;background:#ffffff;border:1px solid var(--line);padding:10px}.project-track img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}.project-track figcaption{padding:12px}.project-track h3{font-size:1.05rem}.project-track figcaption span{font-size:.875rem}.carousel-status{font-size:.875rem;margin-top:8px}
@media(max-width:1000px){.selected-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-track figure{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:700px){.photo-window{height:390px}.selected-gallery{grid-template-columns:1fr}.selected-gallery figure:first-child{grid-column:auto}.selected-gallery figure:first-child img{aspect-ratio:1}.carousel-heading{align-items:start;flex-direction:column}.project-track figure{flex-basis:88%}.project-track{gap:16px}.tag{right:-8px}}

.ribbon,header nav a,header .call{font-weight:700}.services h3{margin-top:0}
.selected-gallery .comparison-card:first-child img{aspect-ratio:auto}.comparison{position:relative;aspect-ratio:3/4;width:min(100%,440px);margin:auto;overflow:hidden;background:#f4f4f4}.comparison img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.comparison-after{clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}.compare-label{position:absolute;top:12px;padding:4px 10px;background:#ffffff;color:var(--ink);font-size:.875rem;font-weight:700;pointer-events:none}.before-label{right:12px}.after-label{left:12px}.compare-divider{position:absolute;top:0;bottom:0;left:var(--reveal);width:3px;background:white;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;color:#fff;text-shadow:0 1px 4px #000;font-size:2rem;pointer-events:none}.comparison input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:ew-resize;touch-action:pan-y}.comparison:focus-within{outline:3px solid #414141;outline-offset:3px}.comparison-card .form-note{margin-top:8px}

.offer{background:#f5f5f5;border-top:3px solid #f5c400}.ribbon{background:#ffffff;border-top-color:#e0e0e0;border-bottom-color:#e0e0e0}.ribbon span{color:#967600}.tag{background:#f5c400;color:#191919}.button{background:#191919;color:#ffffff}.button:hover{background:#333333;border-color:#333333}.text-link{text-decoration-color:#b18b00}.hero-photo{box-shadow:0 12px 25px #0000000d}.carousel-controls button:hover:not(:disabled){background:#f5c400}.comparison:focus-within{outline-color:#715900}

#reviews{border-top:1px solid var(--line)}#reviews .section-heading{margin-bottom:24px}#review-checked:empty{display:none}#review-checked{margin-top:20px;color:#666}.review-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.review-cards .customer-review{background:#fff;border:1px solid #dedede;border-top:3px solid #f5c400;border-radius:6px;padding:24px;min-width:0}.review-person{display:flex;align-items:center;gap:12px}.review-person h3{font-size:1rem;overflow-wrap:anywhere}.review-source{font-size:.8rem;color:#666}.review-avatar{position:relative;display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;background:#f2f2f2;border-radius:50%;font-weight:700;color:#333;overflow:hidden}.review-cards .review-avatar img{position:absolute;inset:0;width:48px;height:48px;margin:0}.review-cards .review-stars{color:#806300;font-size:1.3rem;letter-spacing:.06em}.review-copy{font-size:1rem;line-height:1.65}.review-collapsed{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}.review-expand{background:none;border:0;padding:8px 0;font:inherit;font-size:.875rem;text-decoration:underline;cursor:pointer;color:#333}.review-date{display:block;margin-top:18px;font-size:.8rem;color:#666}@media(max-width:1000px){.review-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.review-cards{grid-template-columns:1fr}}

/* User-selected section colors and softer shapes. */
.ribbon{background:#c6a12b;border-color:#b18f25;color:#191919}.ribbon span{color:#191919}
#work{background:#f1e4b5}
#work > .wrap > .section-heading{background:transparent}
#process{background:#ffffff}
.about{background:#414b32;color:#ffffff}.about h2,.about p,.about .eyebrow,.about .areas,.about .areas span{color:#ffffff}
.button,.hero-photo,.photo-window,.gallery figure,.comparison,.project-track figure,.review-cards .customer-review,form,input,textarea{border-radius:12px}
.hero-photo,.gallery figure,.project-track figure,.review-cards .customer-review,form{overflow:hidden}
.service-picker{border:0;padding:0;margin:0;min-width:0}
.service-picker legend{padding:0;font-size:.875rem;font-weight:700}
.service-picker>.form-note{margin:2px 0 10px}
.service-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.service-options label{position:relative;display:flex;min-height:88px;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:12px 8px;background:#fff;border:1px solid #b8b8b8;border-radius:12px;text-align:center;cursor:pointer;font-size:.8rem;line-height:1.25;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.service-options label:hover{transform:translateY(-2px);border-color:#806300;box-shadow:0 6px 14px #00000012}
.service-options label:has(input:checked){background:#f1e4b5;border:2px solid #806300;box-shadow:0 0 0 2px #fff inset}
.service-options label:has(input:focus-visible){outline:3px solid #715900;outline-offset:3px}
.service-options input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.service-icon{font-family:Georgia,'Times New Roman',serif;font-size:1.55rem;line-height:1;color:#111;font-weight:700}
@media(max-width:700px){.service-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.service-options label{transition:none}.service-options label:hover{transform:none}}
.form-title{padding-bottom:4px;border-bottom:1px solid var(--line)}.form-title .eyebrow{margin-bottom:4px}.form-title h3{font-family:Georgia,'Times New Roman',serif;font-size:1.8rem;font-weight:400}
.form-section{border:0;padding:0;margin:0;min-width:0}.form-section legend{padding:0 0 9px;font-size:.875rem;font-weight:700;line-height:1.4}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-grid .full{grid-column:1/-1}
select{width:100%;min-width:0;border:1px solid #929292;background:#fff;border-radius:12px;padding:11px;font:inherit;font-size:1rem;color:var(--ink)}
.phone-input{display:grid;grid-template-columns:auto 1fr;align-items:stretch}.phone-input>span{display:flex;align-items:center;padding:0 11px;background:#eee;border:1px solid #929292;border-right:0;border-radius:12px 0 0 12px;font-size:.82rem;white-space:nowrap}.phone-input input{border-radius:0 12px 12px 0}
.consent-row{display:flex;align-items:flex-start;gap:11px;padding:13px;background:#fff;border:1px solid var(--line);border-radius:12px}.consent-row input{width:18px;height:18px;flex:0 0 auto;margin:3px 0 0;accent-color:#806300}.consent-row span{display:grid;gap:3px}.consent-row small{font-weight:400;line-height:1.45;color:#555}
.choice-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.choice-list.two{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-list label{position:relative;display:flex;align-items:center;justify-content:center;min-height:58px;padding:10px;background:#fff;border:1px solid #b8b8b8;border-radius:12px;text-align:center;cursor:pointer;font-size:.8rem;line-height:1.3}.choice-list input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.choice-list label:has(input:checked){background:#f1e4b5;border:2px solid #806300}.choice-list label:has(input:focus-visible){outline:3px solid #715900;outline-offset:3px}
.uploads{display:grid;grid-template-columns:1fr 1fr;gap:12px}.uploads legend{grid-column:1/-1}.uploads input[type=file]{padding:9px;font-size:.78rem;background:#fff}.uploads input[type=file]::file-selector-button{border:0;border-radius:8px;background:#222;color:#fff;padding:8px 10px;margin-right:8px;font-weight:700;cursor:pointer}
@media(max-width:700px){.field-grid,.choice-list,.choice-list.two,.uploads{grid-template-columns:1fr}.field-grid .full,.uploads legend{grid-column:auto}.phone-input{grid-template-columns:1fr}.phone-input>span{border-right:1px solid #929292;border-bottom:0;border-radius:12px 12px 0 0}.phone-input input{border-radius:0 0 12px 12px}}
.contact{display:block}
.contact>form{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));padding:clamp(24px,4vw,52px)}
.contact .service-options{grid-template-columns:repeat(5,minmax(0,1fr))}
.quick-call{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:22px;padding:22px 28px;background:#414b32;color:#fff;border-radius:12px;text-align:center}.quick-call p,.quick-call span{color:#fff}.quick-call p{font-weight:700}.quick-call a{color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:1.55rem;font-weight:700;text-underline-offset:5px}
@media(max-width:1000px){.contact .service-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.contact>form{grid-template-columns:1fr;padding:20px}.contact .service-options{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-call{display:grid;gap:3px}.quick-call a{font-size:1.4rem}}
.section-cta-row{display:flex;justify-content:center;margin-top:38px}.section-cta{min-width:min(100%,310px);border-radius:12px}.process .section-cta{margin-top:4px}.section-cta.light{background:#fff;border-color:#fff;color:#191919}.section-cta.light:hover{background:#f1e4b5;border-color:#f1e4b5}
@media(max-width:700px){.section-cta-row{margin-top:28px}.section-cta{width:100%;min-width:0}}
.ribbon .wrap{display:grid;grid-template-columns:repeat(9,max-content);align-items:center;justify-content:space-between;gap:10px}.ribbon-item{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;white-space:nowrap}.ribbon-dot{font-size:.72rem}
#quote-form{--form-accent:#414b32}#quote-form .form-title h3,#quote-form label,#quote-form legend,#quote-form .service-icon{color:var(--form-accent)}#quote-form .button,#quote-form input[type=file]::file-selector-button{background:var(--form-accent);border-color:var(--form-accent)}#quote-form .button:hover,#quote-form input[type=file]::file-selector-button:hover{background:#313a25;border-color:#313a25}#quote-form .service-options label:has(input:checked),#quote-form .choice-list label:has(input:checked){border-color:var(--form-accent)}
@media(max-width:800px){.ribbon .wrap{font-size:.68rem;gap:7px}}
@media(max-width:700px){.ribbon .wrap{grid-template-columns:repeat(2,1fr);gap:11px}.ribbon-dot{display:none}.ribbon-item:last-child{grid-column:1/-1}}
.about{background:#fff;color:#191919}.about h2,.about p,.about .eyebrow,.about .areas,.about .areas span{color:#191919}.about .section-cta.light{background:#414b32;border-color:#414b32;color:#fff}.about .section-cta.light:hover{background:#313a25;border-color:#313a25}
#services{position:relative;isolation:isolate;color:rgba(241,228,181,.9)}#services::before{content:"";position:absolute;inset:0 calc(50% - 50vw);background:#414b32;z-index:-1}#services h2,#services h3,#services .eyebrow{color:rgba(241,228,181,.94)}#services p{color:rgba(241,228,181,.82)}#services .services{border-top-color:rgba(241,228,181,.35)}#services .services article+article{border-left-color:rgba(241,228,181,.35)}#services .section-cta{background:#f1e4b5;border-color:#f1e4b5;color:#414b32}#services .section-cta:hover{background:#e6d28b;border-color:#e6d28b}
body{overflow-x:hidden}
/* Unified button treatment. */
.button,.section-cta,.section-cta.light,#services .section-cta,.about .section-cta.light,#quote-form .button,.carousel-controls button{background:#191919;border-color:#191919;color:#fff}
.button:hover,.section-cta:hover,.section-cta.light:hover,#services .section-cta:hover,.about .section-cta.light:hover,#quote-form .button:hover,.carousel-controls button:hover:not(:disabled){background:#333;border-color:#333;color:#fff}
#quote-form input[type=file]::file-selector-button{background:#191919;border-color:#191919;color:#fff}
#quote-form input[type=file]::file-selector-button:hover{background:#333;border-color:#333}

/* White project section with navy photo frames. */
#work{background:#fff}
#work .gallery figure{border:3px solid #142a43;box-shadow:0 10px 28px rgba(20,42,67,.09)}
#work .comparison{border:2px solid #142a43;border-radius:8px}

/* Five-step quote form. */
#quote-form{--form-accent:#142a43;background:#fff;border:2px solid #142a43;display:grid;grid-template-columns:1fr;padding:clamp(24px,4vw,48px);gap:24px}
#quote-form .form-title{border:0;padding:0}
#quote-form .form-title h3{color:#191919;font-size:clamp(2rem,4vw,3.2rem)}
#quote-form .form-title>p:last-child{margin-top:8px;color:#5d6570}
.form-progress{display:grid;gap:9px}.progress-track{height:8px;background:#e8ebee;border-radius:999px;overflow:hidden}.progress-track span{display:block;width:20%;height:100%;background:#142a43;border-radius:inherit;transition:width .25s ease}.form-progress p{display:flex;justify-content:space-between;gap:15px;color:#536171;font-size:.86rem}.form-progress strong{color:#142a43}
.form-step{display:grid;gap:22px;animation:form-step-in .25s ease}.form-step[hidden]{display:none}.step-heading{display:flex;align-items:flex-start;gap:15px;padding-bottom:18px;border-bottom:1px solid #d9dee4}.step-heading>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:50%;background:#142a43;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:1rem}.step-heading h4{margin:0;color:#191919;font-family:Georgia,'Times New Roman',serif;font-size:1.65rem;font-weight:400;line-height:1.15}.step-heading p{margin-top:4px;color:#5d6570;font-size:.93rem}
#quote-form label,#quote-form legend,#quote-form .service-icon{color:#28384a}#quote-form input,#quote-form textarea,#quote-form select{border-color:#aeb7c1;background:#fff}#quote-form input:focus,#quote-form textarea:focus,#quote-form select:focus{border-color:#142a43;box-shadow:0 0 0 3px rgba(20,42,67,.12);outline:0}
#quote-form .service-options{grid-template-columns:repeat(5,minmax(0,1fr))}#quote-form .service-options label:hover{border-color:#142a43;box-shadow:0 6px 14px rgba(20,42,67,.12)}#quote-form .service-options label:has(input:checked),#quote-form .choice-list label:has(input:checked){background:#edf2f6;border:2px solid #142a43}
.optional-tag{justify-self:start;padding:2px 9px;border-radius:999px;background:#edf2f6;color:#142a43;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.form-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #d9dee4;padding-top:22px}.form-actions .button{min-width:180px;border-radius:12px}.form-actions .form-back{margin-right:auto;background:#191919;border-color:#191919;color:#fff}.form-actions .form-back:hover{background:#333;color:#fff}.form-actions [hidden]{display:none}
@keyframes form-step-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:1000px){#quote-form .service-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){#quote-form{padding:22px 18px}.form-progress p{align-items:flex-start;flex-direction:column;gap:0}.step-heading h4{font-size:1.45rem}#quote-form .service-options{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:grid;grid-template-columns:1fr 1fr}.form-actions .button{min-width:0;width:100%}.form-actions .form-next,.form-actions .form-submit{grid-column:2}.form-actions .form-back{grid-column:1;grid-row:1}.form-actions .form-submit:only-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.form-step{animation:none}.progress-track span{transition:none}}

/* Softer color transitions between white, green, and navy sections. */
#services{padding-top:132px;padding-bottom:132px}
#services::before{background:linear-gradient(180deg,#fff 0%,#aeb6a8 10%,#718066 24%,#4e5d43 38%,#414b32 52%,#526047 66%,#7d8973 80%,#bcc3b7 91%,#fff 100%)}
.album-section{position:relative;isolation:isolate;color:#fff;padding-top:132px;padding-bottom:132px}
.album-section::before{content:"";position:absolute;inset:0 calc(50% - 50vw);background:linear-gradient(180deg,#fff 0%,#b9c1ca 9%,#7f8fa0 22%,#435970 36%,#20364f 48%,#142a43 58%,#2b425a 70%,#60748a 82%,#aeb9c4 92%,#fff 100%);z-index:-1}
.album-section h2,.album-section h3,.album-section .eyebrow,.album-section .carousel-status,.album-section figcaption span{color:#fff}
.album-section .project-track figure{background:rgba(10,27,45,.35);border:1px solid rgba(255,255,255,.9);box-shadow:0 8px 20px rgba(0,0,0,.13)}
.album-section .project-track img{border:1px solid rgba(255,255,255,.9);border-radius:7px}
.album-section .carousel-controls button{background:#191919;border:1px solid #fff;color:#fff}
.album-section .carousel-controls button:disabled{background:rgba(25,25,25,.55);color:#fff}
.album-section .section-cta{border:1px solid #fff}

/* Black, finer project frames on the white project section. */
#work .gallery figure{border:1.5px solid #191919;box-shadow:0 10px 26px rgba(0,0,0,.08)}
#work .comparison{border:1px solid #191919}

/* A more compact quote form with lighter outlines. */
#contact{max-width:860px}
#quote-form{border-width:1px;padding:clamp(20px,3vw,34px);gap:18px}
#quote-form .form-title h3{font-size:clamp(1.8rem,3.2vw,2.65rem)}
#quote-form .form-title>p:last-child{font-size:.92rem}
.form-progress{gap:7px}.progress-track{height:6px}
.form-step{gap:17px}.step-heading{gap:12px;padding-bottom:14px}.step-heading>span{width:36px;height:36px;font-size:.9rem}.step-heading h4{font-size:1.45rem}.step-heading p{font-size:.86rem}
#quote-form input,#quote-form textarea,#quote-form select{padding:9px;border-width:1px}
#quote-form textarea{min-height:112px}
#quote-form .service-options{gap:8px}
#quote-form .service-options label{min-height:70px;padding:9px 6px;border-width:1px}
#quote-form .service-options label:has(input:checked),#quote-form .choice-list label:has(input:checked){border-width:1px;box-shadow:0 0 0 1px #142a43 inset}
#quote-form .service-icon{font-size:1.3rem}
#quote-form .choice-list label{min-height:52px;border-width:1px}
#quote-form .consent-row{padding:11px;border-width:1px}
.form-actions{padding-top:17px}.form-actions .button{min-width:155px;padding:13px 20px}
.quick-call{padding:18px 22px}
@media(max-width:700px){#services,.album-section{padding-top:92px;padding-bottom:92px}#services::before,.album-section::before{background-size:100% 100%}#contact{width:calc(100% - 28px)}#quote-form{padding:18px 15px}.step-heading>span{width:32px;height:32px}.step-heading h4{font-size:1.3rem}#quote-form .service-options label{min-height:66px}}

/* Cinematic motion system — progressive enhancement. */
.scroll-progress{position:fixed;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#142a43,#c6a12b);transform:scaleX(0);transform-origin:left center;z-index:100;pointer-events:none;will-change:transform}
header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.88);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);transition:box-shadow .35s ease,background .35s ease}
header.is-scrolled{background:rgba(255,255,255,.94);box-shadow:0 10px 35px rgba(20,42,67,.08)}
.motion-ready .motion-reveal{opacity:0;transform:translate3d(0,42px,0) scale(.985);filter:blur(7px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1),filter .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--motion-delay,0ms);will-change:opacity,transform,filter}
.motion-ready .motion-reveal.is-visible{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
.motion-ready .hero .motion-reveal{transform:translate3d(0,28px,0);transition-duration:1s}
.motion-ready .hero .motion-reveal.is-visible{transform:none}
.motion-ready .hero-photo.motion-reveal{transform:translate3d(35px,18px,0) rotate(1.8deg) scale(.97);transition-duration:1.15s}
.motion-ready .hero-photo.motion-reveal.is-visible{transform:rotate(1deg) scale(1)}
.motion-parallax{--parallax-y:0px;transform:translate3d(0,var(--parallax-y),0) scale(1.065);transition:transform .12s linear;will-change:transform}
.gallery figure,.project-track figure,.review-cards article{transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,border-color .45s ease}
.gallery figure:hover,.project-track figure:hover,.review-cards article:hover{transform:translateY(-8px);box-shadow:0 20px 42px rgba(20,42,67,.15)}
.gallery figure img,.project-track figure img{transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .65s ease}
.gallery figure:not(.comparison-card):hover img,.project-track figure:hover img{transform:scale(1.035);filter:saturate(1.06) contrast(1.02)}
.button{transition:transform .3s cubic-bezier(.2,.7,.2,1),background .3s ease,box-shadow .3s ease}.button:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.16)}
.section-heading h2,.carousel-heading h2{view-transition-name:none}
@media(max-width:700px){.motion-ready .motion-reveal{transform:translate3d(0,26px,0);filter:blur(4px);transition-duration:.7s}.motion-parallax{transform:none}.gallery figure:hover,.project-track figure:hover,.review-cards article:hover,.button:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.scroll-progress{display:none}header,.motion-ready .motion-reveal,.motion-parallax,.gallery figure,.project-track figure,.review-cards article,.gallery figure img,.project-track figure img,.button{transition:none!important;transform:none!important;filter:none!important;opacity:1!important}}

/* Project album: horizontal carousel on larger screens, Instagram-style feed on phones. */
.project-track{overflow-x:auto;overflow-y:hidden;max-height:none}
@media(max-width:700px){
 .album-section{padding-left:0;padding-right:0}
 .album-section .carousel-heading,.album-section .section-cta-row{margin-left:18px;margin-right:18px}
 .album-section .carousel-controls,.album-section .carousel-status{display:none}
 .album-section .project-track{display:grid;grid-template-columns:1fr;gap:26px;margin-top:28px;padding:0 18px;overflow:visible;scroll-snap-type:none}
 .album-section .project-track figure{width:100%;min-width:0;min-height:0;padding:0;scroll-snap-align:none;background:rgba(10,27,45,.48);border-radius:15px}
 .album-section .project-track img{width:100%;aspect-ratio:1/1;object-fit:contain;border:0;border-bottom:1px solid rgba(255,255,255,.8);border-radius:14px 14px 0 0;background:#fff}
 .album-section .project-track figcaption{padding:15px 17px 18px}
 .album-section .project-track h3{font-size:1.12rem;margin-bottom:3px}
 .album-section .project-track figcaption span{font-size:.82rem}
}

/* Scroll-driven porch transformation. */
.porch-story{position:relative;height:500vh;margin-top:30px;background:#101c2b;color:#fff}
.story-stage{position:sticky;top:0;height:100vh;min-height:620px;overflow:hidden;background:#101c2b;isolation:isolate}
.story-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 44%,rgba(9,19,31,.42) 63%,rgba(9,19,31,.96) 100%)}
.story-visuals{position:absolute;inset:0 34% 0 0;background:#101c2b}
.story-frame{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.055);will-change:opacity,transform;transition:opacity .18s linear,transform .18s linear}
.story-frame:first-child{opacity:1}
.story-frame img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.96) contrast(1.03)}
.story-copy{position:absolute;z-index:3;right:max(5vw,48px);top:50%;width:min(34vw,470px);transform:translateY(-50%)}
.story-copy .eyebrow{color:#f1e4b5;margin-bottom:18px}
.story-copy h2{color:#fff;font-size:clamp(3rem,5vw,5.4rem);margin-bottom:20px}
.story-copy>p:not(.eyebrow){color:rgba(255,255,255,.82);font-size:1.08rem;max-width:430px}
.story-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:34px}
.story-progress span{height:3px;background:rgba(255,255,255,.28);transform-origin:left;transition:background .25s ease,transform .25s ease}
.story-progress span.is-active{background:#f1e4b5}
.story-hint{margin-top:14px;font-size:.74rem!important;letter-spacing:.1em;text-transform:uppercase}
.story-transcript{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){
 .porch-story{height:470vh;margin-top:10px}
 .story-stage{height:100svh;min-height:580px}
 .story-stage::after{background:linear-gradient(180deg,transparent 30%,rgba(9,19,31,.25) 54%,rgba(9,19,31,.96) 78%,#09131f 100%)}
 .story-visuals{inset:0}
 .story-frame img{object-position:center top}
 .story-copy{left:24px;right:24px;top:auto;bottom:36px;width:auto;transform:none}
 .story-copy h2{font-size:clamp(2.6rem,12vw,4rem);margin-bottom:12px}
 .story-copy>p:not(.eyebrow){font-size:.96rem}
 .story-progress{margin-top:22px}
}
@media(prefers-reduced-motion:reduce){
 .porch-story{height:auto;padding:55px 18px;background:#101c2b}
 .story-stage{position:relative;top:auto;height:auto;min-height:0;overflow:visible}
 .story-stage::after{display:none}
 .story-visuals{position:static;display:grid;gap:18px}
 .story-frame{position:static;opacity:1!important;transform:none!important}
 .story-frame img{height:auto;max-height:72vh;object-fit:contain;border-radius:12px}
 .story-copy{position:static;width:auto;transform:none;margin-top:28px}
 .story-hint,.story-progress{display:none}
}

/* Apple-inspired typography and project storytelling. */
body,input,textarea,select,button{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",Arial,sans-serif}
h1,h2,h3,.hero-photo figcaption strong,.tag,.phone,.quick-call a,.form-title h3,.step-heading h4,.step-heading>span,li::marker{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif}
h1,h2{font-weight:700;line-height:1.01;letter-spacing:-.048em}
h3{font-weight:700;letter-spacing:-.022em}
h1 em{font-style:normal;font-weight:700}
.button{border-radius:980px;padding-inline:27px}
.eyebrow{letter-spacing:.14em}

.work-showcase{padding-top:108px;background:#fff;overflow:visible}
.work-intro{padding-bottom:66px}
.floor-story{position:relative;height:320vh;background:#0b0c0e;color:#fff}
.floor-stage{position:sticky;top:0;height:100vh;min-height:620px;overflow:hidden;background:#0b0c0e;isolation:isolate}
.floor-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 35%,rgba(7,10,14,.3) 55%,rgba(7,10,14,.97) 100%)}
.floor-media{position:absolute;inset:0 39% 0 0;background:#0b0c0e;overflow:hidden}
.floor-media>img,.floor-after-frame,.floor-after-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.floor-after-frame{opacity:0;will-change:opacity;transition:opacity .12s linear}
.floor-label{position:absolute;z-index:3;top:132px;padding:8px 14px;border-radius:980px;background:rgba(0,0,0,.58);backdrop-filter:blur(12px);color:#fff;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.floor-label-before{right:28px}.floor-label-after{left:28px;opacity:0}
.floor-copy{position:absolute;z-index:3;right:max(5vw,46px);top:50%;width:min(34vw,460px);transform:translateY(-50%)}
.floor-copy .eyebrow{color:#e7d58f;margin-bottom:17px}
.floor-copy h2{color:#fff;font-size:clamp(3.5rem,6vw,6.2rem);max-width:480px}
.floor-lead{margin-top:22px;color:rgba(255,255,255,.68);font-size:1.05rem}
.floor-result{margin-top:34px;padding-top:24px;border-top:1px solid rgba(255,255,255,.3);opacity:0;transform:translateY(24px);transition:opacity .25s linear,transform .25s linear}
.floor-result h3{max-width:410px;color:#fff;font-size:clamp(1.45rem,2vw,2rem);line-height:1.12}
.floor-result p{max-width:420px;margin-top:13px;color:rgba(255,255,255,.75);line-height:1.5}
.floor-copy .story-hint{color:rgba(255,255,255,.6)}

.work-gallery-shell{padding:118px 0 105px;background:#1d1d1f;color:#f5f5f7}
.work-gallery-shell .carousel-heading{align-items:end;margin-bottom:42px}
.work-gallery-shell .carousel-heading h2{max-width:790px;color:#f5f5f7;font-size:clamp(2.8rem,5.2vw,5.4rem)}
.work-gallery-shell .eyebrow,.work-gallery-shell .carousel-status{color:#a1a1a6}
.work-gallery-shell .carousel-controls button{width:48px;height:48px;border:0;border-radius:50%;background:#333336;color:#fff;font-size:1.35rem}
.work-gallery-shell .carousel-controls button:hover{background:#48484c}
.work-gallery-shell .carousel-controls button:disabled{opacity:.38}
.apple-gallery{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 0 22px;overscroll-behavior-inline:contain}
.apple-gallery::-webkit-scrollbar{display:none}
.apple-gallery figure{flex:0 0 clamp(310px,42vw,540px);scroll-snap-align:start}
.apple-gallery img{width:100%;height:clamp(290px,31.5vw,405px);object-fit:cover;border-radius:26px;background:#101012}
.apple-gallery figcaption{padding:19px 5px 0}
.apple-gallery h3{color:#f5f5f7;font-size:1.2rem}
.apple-gallery figcaption p{max-width:470px;margin-top:5px;color:#a1a1a6;font-size:.94rem;line-height:1.42}
.work-gallery-shell .carousel-status{margin-top:3px;font-size:.84rem}
.work-gallery-shell .section-cta-row{margin-top:38px}
.work-gallery-shell .button{background:#fff;border-color:#fff;color:#1d1d1f}

.porch-story{height:320vh;margin-top:0}
.story-progress{grid-template-columns:repeat(3,1fr)}

@media(max-width:700px){
 .work-showcase{padding-top:72px}
 .work-intro{padding-bottom:42px}
 .floor-story{height:300vh}
 .floor-stage{height:100svh;min-height:610px}
 .floor-stage::after{background:linear-gradient(180deg,rgba(7,10,14,.05) 30%,rgba(7,10,14,.55) 58%,#090b0e 88%)}
 .floor-media{inset:0}
 .floor-media>img,.floor-after-frame img{object-position:center top}
 .floor-label{top:100px}
 .floor-label-before{right:18px}.floor-label-after{left:18px}
 .floor-copy{left:22px;right:22px;top:auto;bottom:30px;width:auto;transform:none}
 .floor-copy h2{font-size:clamp(2.7rem,12vw,4.5rem)}
 .floor-lead{margin-top:12px}
 .floor-result{margin-top:19px;padding-top:16px}
 .floor-result h3{font-size:1.28rem}
 .floor-result p{font-size:.9rem}
 .work-gallery-shell{padding:82px 0 72px}
 .work-gallery-shell .carousel-heading{display:flex;align-items:end;gap:18px}
 .work-gallery-shell .carousel-heading h2{font-size:2.7rem}
 .work-gallery-shell .carousel-controls{display:flex}
 .work-gallery-shell .carousel-controls button{width:42px;height:42px}
 .apple-gallery{gap:14px}
 .apple-gallery figure{flex-basis:86vw}
 .apple-gallery img{height:64.5vw;max-height:460px;border-radius:20px}
 .porch-story{height:300vh}
}

@media(prefers-reduced-motion:reduce){
 .floor-story{height:auto;padding:52px 18px;background:#0b0c0e}
 .floor-stage{position:relative;top:auto;height:auto;min-height:0;display:grid;gap:28px;overflow:visible}
 .floor-stage::after,.floor-divider,.floor-label-before,.floor-copy>.story-hint{display:none}
 .floor-media{position:relative;inset:auto;aspect-ratio:4/3;border-radius:18px}
 .floor-after-frame{opacity:1!important}
 .floor-label-after{top:14px;right:14px;opacity:1!important}
 .floor-copy{position:static;width:auto;transform:none}
 .floor-result{opacity:1!important;transform:none!important}
}

/* Complete photographs, crossfades and one continuous project backdrop. */
.work-intro{position:relative;padding-bottom:210px}
.work-intro::after{content:"";position:absolute;bottom:0;left:calc(50% - 50vw);width:100vw;height:180px;background:linear-gradient(180deg,#fff 0%,#f1f1f2 12%,#c1c1c3 35%,#737377 60%,#363639 82%,#1d1d1f 100%);pointer-events:none}
.floor-story,.floor-stage,.floor-media,.porch-story,.story-stage,.story-visuals{background:#1d1d1f}
.floor-stage,.story-stage{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,72px);padding:140px max(24px,5vw) 48px}
.floor-stage::after,.story-stage::after{display:none}
.floor-media,.story-visuals{position:relative;inset:auto;width:100%;height:100%;min-height:0;overflow:hidden;border-radius:18px}
.floor-media>img,.floor-after-frame img,.story-frame img{width:100%;height:100%;object-fit:contain;object-position:center;filter:none}
.floor-after-frame{position:absolute;inset:0}
.floor-copy,.story-copy{position:relative;inset:auto;top:auto;right:auto;left:auto;bottom:auto;width:auto;transform:none}
.floor-copy h2,.story-copy h2{font-size:clamp(2.4rem,4.7vw,5rem)}
.floor-label{top:12px}
.floor-result{border-top:0;padding-top:0;margin-top:26px}
.floor-result h3{font-size:clamp(1.2rem,1.8vw,1.7rem)}
.floor-lead{font-size:1rem}
.story-frame{transform:none;transition:opacity .12s linear}
.apple-gallery{align-items:flex-start}
.apple-gallery figure{min-width:0}
.apple-gallery img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;background:transparent;transform:none!important}
.project-track img{height:auto!important;max-height:none;aspect-ratio:auto!important;object-fit:contain!important;transform:none!important}
.album-section::before{background:linear-gradient(180deg,#1d1d1f 0%,#20364f 35%,#243b53 60%,#8292a3 85%,#fff 100%)}
@media(max-width:700px){
 .work-intro{padding-bottom:170px}.work-intro::after{height:140px}
 .floor-stage,.story-stage{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:18px;padding:145px 20px 26px;height:100svh;min-height:720px}
 .floor-copy h2,.story-copy h2{font-size:2.3rem;margin-bottom:10px}
 .floor-copy .eyebrow,.story-copy .eyebrow{margin-bottom:10px;font-size:.62rem}
 .floor-lead,.story-copy>p:not(.eyebrow){font-size:.9rem;margin-top:8px}
 .floor-result{margin-top:14px}.floor-result p{font-size:.84rem;line-height:1.4}
 .story-progress{margin-top:14px}.story-hint{font-size:.62rem!important;margin-top:9px}
}
@media(prefers-reduced-motion:reduce){
 .floor-story,.porch-story{height:auto}
 .floor-stage,.story-stage{position:relative;display:grid;height:auto;min-height:0;padding:55px 20px}
 .floor-media{height:70vh}.story-visuals{height:auto;overflow:visible}
 .story-frame{position:static}.story-frame img{height:auto}
 .floor-copy,.story-copy{position:static;transform:none}
 .floor-result{opacity:1!important;transform:none!important}
}

/* Restore the immersive pergola layout with the current three photographs. */
#porch-story .story-stage{display:block;padding:0;background:#101c2b}
#porch-story .story-stage::after{display:block;background:linear-gradient(90deg,transparent 44%,rgba(9,19,31,.42) 63%,rgba(9,19,31,.96) 100%)}
#porch-story .story-visuals{position:absolute;inset:0 34% 0 0;width:auto;height:auto;border-radius:0;background:#101c2b}
#porch-story .story-frame img{object-fit:cover;object-position:center}
#porch-story .story-copy{position:absolute;z-index:3;left:auto;right:max(5vw,48px);top:50%;bottom:auto;width:min(34vw,470px);transform:translateY(-50%)}
#porch-story .story-copy h2{font-size:clamp(3rem,5vw,5.4rem);margin-bottom:20px}
#porch-story .story-progress{margin-top:34px}
@media(max-width:700px){
 #porch-story .story-stage{height:100svh;min-height:580px}
 #porch-story .story-stage::after{background:linear-gradient(180deg,transparent 30%,rgba(9,19,31,.25) 54%,rgba(9,19,31,.96) 78%,#09131f 100%)}
 #porch-story .story-visuals{inset:0}
 #porch-story .story-frame img{object-position:center top}
 #porch-story .story-copy{left:24px;right:24px;top:auto;bottom:36px;width:auto;transform:none}
 #porch-story .story-copy h2{font-size:clamp(2.6rem,12vw,4rem);margin-bottom:12px}
 #porch-story .story-progress{margin-top:22px}
}
@media(prefers-reduced-motion:reduce){
 #porch-story .story-stage{position:relative;height:auto;min-height:0;padding:30px 18px;overflow:visible}
 #porch-story .story-stage::after{display:none}
 #porch-story .story-visuals{position:static;display:grid;gap:18px;background:transparent}
 #porch-story .story-frame img{height:auto;max-height:72vh;object-fit:contain}
 #porch-story .story-copy{position:static;width:auto;transform:none;margin-top:28px}
}

/* White canvas and black type from the work introduction through the footer. */
#work,:is(#porch-story,#project-album,#process,#reviews,#contact),footer,
#work .floor-story,#work .floor-stage,#work .floor-media,#work .work-gallery-shell,
#porch-story .story-stage,#porch-story .story-visuals,
#project-album .project-track figure,#project-album .project-track img,
#quote-form,.quick-call,#reviews .customer-review{background:#fff;color:#191919}
.work-intro::after,.album-section::before{display:none}
.work-intro{padding-bottom:66px}
:is(#work,:is(#porch-story,#project-album,#process,#reviews,#contact)) :is(h2,h3,h4,p,figcaption,figcaption span,.eyebrow,.carousel-status,.story-hint,legend,label,.service-icon,.areas,.review-source,.review-date,.review-stars),
#quote-form .form-title h3,#quote-form .form-title>p:last-child,
#quote-form .form-progress strong,#quote-form .form-progress p,
.quick-call p,.quick-call span,.quick-call a,footer,footer a{color:#191919}
#porch-story .story-stage::after{background:linear-gradient(90deg,transparent 42%,rgba(255,255,255,.45) 62%,#fff 82%)}
#porch-story .story-copy :is(h2,p){color:#191919}
#project-album .project-track figure,#project-album .project-track img,.quick-call{border:1px solid #dedede;box-shadow:none}
#quote-form{--form-accent:#191919;border-color:#d6d6d6}
#quote-form .step-heading>span,#quote-form .progress-track span{background:#191919;color:#fff}
#quote-form .optional-tag{background:#f3f3f3;color:#191919}
#quote-form .phone-input>span{background:#fff;color:#191919}
#quote-form input,#quote-form textarea,#quote-form select{color:#191919;accent-color:#191919}
#quote-form .service-options label:has(input:checked),#quote-form .choice-list label:has(input:checked){background:#f3f3f3;border-color:#191919;box-shadow:0 0 0 1px #191919 inset}
#quote-form .service-options label:hover{border-color:#191919}
#work .button,#project-album .button,#work .carousel-controls button,#project-album .carousel-controls button,#quote-form .button{background:#191919;border-color:#191919;color:#fff}
#work .carousel-controls button:disabled,#project-album .carousel-controls button:disabled{background:#191919;color:#fff;opacity:.35}
#porch-story .story-progress span{background:#d6d6d6}
#porch-story .story-progress span.is-active{background:#191919}
#reviews .customer-review{border-top-color:#191919}
@media(max-width:700px){
 .work-intro{padding-bottom:42px}
 #porch-story .story-stage::after{background:linear-gradient(180deg,transparent 25%,rgba(255,255,255,.4) 46%,rgba(255,255,255,.96) 70%,#fff 100%)}
}
@media(prefers-reduced-motion:reduce){#porch-story .story-stage::after{display:none}}

/* Shorter scroll stories, with opacity driven by a single animation clock. */
.floor-story{height:200vh}
.porch-story{height:220vh}
.floor-after-frame,.floor-result,#porch-story .story-frame{transition:none}
@media(max-width:700px){.floor-story{height:210svh}.porch-story{height:230svh}}
@media(prefers-reduced-motion:reduce){.floor-story,.porch-story{height:auto}}

/* Autoplay while visible, holding the finished result between repetitions. */
#floor-story{height:auto}
#floor-story .floor-stage{position:relative;top:auto}
#floor-video,.floor-video-result{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.floor-video-result{opacity:0;pointer-events:none;transition:opacity .22s ease}
.video-show-result .floor-video-result{opacity:1}
#floor-story .floor-result{transition:opacity .25s ease,transform .25s ease}
@media(prefers-reduced-motion:reduce){
 #floor-video{display:none}
 .floor-video-result{opacity:1;transition:none}
}

/* Floating review bubble and accessible, independently scrollable review panel. */
.reviews-bubble{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:70;display:flex;align-items:center;gap:12px;padding:13px 18px 13px 13px;border:1px solid #191919;border-radius:999px;background:#191919;color:#fff;box-shadow:0 8px 32px #0002;font:inherit;cursor:pointer;text-align:left;transition:transform .2s ease,box-shadow .2s ease}
.reviews-bubble:hover{transform:translateY(-3px);box-shadow:0 12px 36px #0003}
.reviews-bubble>span:nth-child(2){display:grid;gap:2px}
.reviews-bubble strong{font-size:.88rem;line-height:1.25}
#reviews-bubble-summary{font-size:.72rem;line-height:1.3;color:#fff}
.reviews-bubble-icon{width:35px;height:35px;border:1px solid #ffffff65;border-radius:50%;display:grid;place-items:center;font-size:1.15rem}
.reviews-bubble-arrow{margin-left:7px;font-size:1.2rem}
.reviews-panel{position:fixed;right:24px;bottom:112px;z-index:71;width:min(410px,calc(100vw - 36px));max-height:min(690px,calc(100svh - 150px));display:flex;flex-direction:column;border:1px solid #ddd;border-radius:24px;background:#fff;color:#191919;box-shadow:0 22px 75px #0003;overflow:hidden;animation:reviews-panel-in .2s ease-out}
.reviews-panel[hidden]{display:none}
.reviews-panel-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:23px 22px 12px;background:#fff}
.reviews-panel-header .eyebrow{font-size:.61rem;margin:0 0 9px;color:#555}
#reviews-panel-title{font-size:1.7rem;letter-spacing:-.045em;color:#191919}
.reviews-panel-close{flex:0 0 auto;width:34px;height:34px;border:1px solid #ddd;background:#fff;color:#191919;border-radius:50%;font:inherit;font-size:1.6rem;line-height:1;cursor:pointer}
.reviews-panel-summary{padding:0 22px 19px;border-bottom:1px solid #e8e8e8;color:#191919;font-size:.85rem;line-height:1.5}
.reviews-panel-cards{overflow-y:auto;overscroll-behavior:contain;padding:19px;display:grid;gap:16px;min-height:0;scrollbar-width:thin}
.reviews-panel-cards:empty{display:none}
.reviews-panel .customer-review{position:relative;padding:18px 18px 16px;background:#f7f7f7;border:1px solid #ebebeb;border-radius:18px 18px 18px 5px;min-width:0}
.reviews-panel .review-person{gap:10px}
.reviews-panel .review-person h3{font-size:.92rem;color:#191919}
.reviews-panel .review-avatar{width:36px;height:36px;background:#e8e8e8}
.reviews-panel .review-avatar img{width:36px;height:36px}
.reviews-panel .review-stars{color:#191919;font-size:1.05rem;letter-spacing:.06em;margin:10px 0 7px}
.reviews-panel .review-copy{color:#333;font-size:.85rem;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.reviews-panel .review-date{margin-top:12px}
.reviews-panel-footer{border-top:1px solid #e8e8e8;padding:16px 22px;background:#fff}
.reviews-panel-footer a{display:flex;justify-content:space-between;gap:15px;font-size:.83rem;font-weight:600;color:#191919;text-decoration:none}
@keyframes reviews-panel-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
footer{padding-bottom:110px}
@media(max-width:700px){.reviews-bubble{right:16px;bottom:max(16px,env(safe-area-inset-bottom));padding:10px 14px 10px 10px;gap:9px}.reviews-bubble strong{font-size:.8rem}#reviews-bubble-summary{font-size:.67rem}.reviews-bubble-icon{width:31px;height:31px}.reviews-panel{right:12px;bottom:94px;width:calc(100% - 24px);max-height:calc(100svh - 125px);border-radius:21px}.reviews-panel-header{padding:20px 18px 12px}.reviews-panel-summary{padding-inline:18px}.reviews-panel-cards{padding:15px}}
@media(prefers-reduced-motion:reduce){.reviews-panel{animation:none}.reviews-bubble{transition:none}.reviews-bubble:hover{transform:none}}

#reviews-panel-title:focus{outline:none}

/* Selected five-star reviews, presented as rounded glass bubbles. */
.google-review-brand{display:flex;align-items:center;gap:11px}
.google-review-brand img{width:24px;height:24px;flex:0 0 auto}
#reviews{position:relative;isolation:isolate;border-top:0}
#reviews::before{content:"";position:absolute;inset:160px -28px 100px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 14% 42%,#e4edf9b0,transparent 47%),radial-gradient(ellipse at 88% 53%,#e5f0eb99,transparent 48%),radial-gradient(ellipse at 50% 65%,#f1e8f966,transparent 52%);filter:blur(22px)}
#reviews .section-heading{margin-bottom:22px}
.featured-review-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:19px 0 5px}
#reviews .featured-review-rating{font-size:1.05rem;font-weight:650;letter-spacing:-.025em}
#reviews .featured-review-selection{font-size:.76rem;color:#65656b;letter-spacing:.025em}
#reviews .review-glass-track{display:flex;align-items:stretch;gap:22px;padding:26px 13px 34px;margin:0 -13px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain;perspective:1400px}
.review-glass-track::-webkit-scrollbar{display:none}
#reviews .review-glass-track .customer-review{flex:0 0 clamp(300px,30vw,370px);min-width:0;min-height:390px;display:flex;flex-direction:column;scroll-snap-align:start;padding:27px 25px 23px;border:1px solid #ffffffd9;border-top-color:#fff;border-radius:34px 34px 34px 12px;background:linear-gradient(140deg,#ffffffc9 0%,#ffffff75 60%,#f5f7ff92 100%);backdrop-filter:blur(22px) saturate(125%);-webkit-backdrop-filter:blur(22px) saturate(125%);box-shadow:inset 0 1px 1px #fff,inset 1px 0 1px #fff9,0 14px 28px -17px #31466e4d,0 2px 5px #31466e0b;transform:translateZ(0);transition:transform .35s ease,box-shadow .35s ease;overflow:visible}
#reviews .review-glass-track .customer-review:hover{transform:translateY(-5px) rotateY(-1deg);box-shadow:inset 0 1px 1px #fff,0 22px 36px -19px #31466e55,0 2px 5px #31466e14}
#reviews .review-glass-track .review-person{gap:12px}
#reviews .review-glass-track .review-person h3{font-size:1rem;line-height:1.3}
.review-source{display:flex;align-items:center;gap:5px}
.review-source .review-google-icon{position:static;display:inline-block;width:14px;height:14px;margin:0;border-radius:0}
#reviews .review-glass-track .review-avatar{width:43px;height:43px;border:2px solid #fff;background:#ffffffa6;box-shadow:0 3px 8px #0000000a}
#reviews .review-glass-track .review-avatar img{width:43px;height:43px}
#reviews .review-glass-track .review-stars{color:#e9a600;font-size:1.17rem;letter-spacing:.1em;margin:20px 0 12px}
#reviews .review-glass-track .review-copy{margin:0;font-size:.95rem;line-height:1.7;color:#303037}
#reviews .review-glass-track .review-collapsed{-webkit-line-clamp:5}
#reviews .review-glass-track .review-expand{align-self:flex-start;font-size:.8rem;padding:9px 0 0}
#reviews .review-glass-track .review-date{margin-top:auto;padding-top:23px;font-size:.74rem;color:#62626b}
.review-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px}
.review-carousel-controls[hidden]{display:none}
#review-carousel-position{font-size:.8rem;font-variant-numeric:tabular-nums}
.review-carousel-controls>div{display:flex;align-items:center;gap:9px}
.review-carousel-controls button{height:40px;min-width:40px;padding:0 13px;border:1px solid #d8d8dc;border-radius:999px;background:#ffffffa6;color:#191919;backdrop-filter:blur(12px);font:inherit;font-size:.83rem;cursor:pointer}
.review-carousel-controls button:hover{background:#191919;color:#fff;border-color:#191919}
#reviews-bubble .reviews-bubble-icon{background:#fff;border-color:#fff}
#reviews-panel-title{display:flex;align-items:center;gap:10px}
#reviews-panel-title>img{width:26px;height:26px;margin:0}
.reviews-panel .review-source .review-google-icon{width:13px;height:13px}
@media(max-width:700px){
 #reviews::before{inset:180px -10px 100px}
 #reviews .review-glass-track{gap:16px;padding-top:21px}
 #reviews .review-glass-track .customer-review{flex-basis:84vw;min-height:370px;padding:24px 22px;border-radius:30px 30px 30px 12px}
 #reviews .review-glass-track .customer-review:hover{transform:none}
 .featured-review-topline{gap:6px;align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){#reviews .review-glass-track .customer-review{transition:none}#reviews .review-glass-track .customer-review:hover{transform:none}}

.review-carousel-controls{position:relative;justify-content:center}
#review-carousel-position{position:absolute;left:0}

/* Google color accents and enough trailing room for every slide to align. */
#reviews .section-heading{position:relative;padding-top:20px}
#reviews .section-heading::before{content:"";position:absolute;top:0;left:0;width:112px;height:4px;border-radius:999px;background:linear-gradient(90deg,#4285f4 0 25%,#ea4335 25% 50%,#fbbc05 50% 75%,#34a853 75%)}
#reviews::before{background:radial-gradient(ellipse at 6% 38%,#4285f41a,transparent 43%),radial-gradient(ellipse at 37% 62%,#ea433511,transparent 43%),radial-gradient(ellipse at 63% 35%,#fbbc051a,transparent 43%),radial-gradient(ellipse at 94% 58%,#34a8531a,transparent 43%)}
#reviews .review-glass-track{padding-right:var(--review-trailing-space,13px);scroll-padding-left:13px;overflow-anchor:none}
#reviews .review-glass-track .customer-review{border:1px solid var(--google-accent,#4285f4);border-color:color-mix(in srgb,var(--google-accent,#4285f4) 40%,transparent);content-visibility:auto;contain-intrinsic-size:auto 390px;box-shadow:inset 0 1px 1px #fff,inset 1px 0 1px #fff9,0 14px 28px -17px color-mix(in srgb,var(--google-accent,#4285f4) 40%,transparent),0 2px 5px #31466e0b}
#reviews .review-glass-track .customer-review:nth-child(4n+1){--google-accent:#4285f4}
#reviews .review-glass-track .customer-review:nth-child(4n+2){--google-accent:#ea4335}
#reviews .review-glass-track .customer-review:nth-child(4n+3){--google-accent:#fbbc05}
#reviews .review-glass-track .customer-review:nth-child(4n){--google-accent:#34a853}
#reviews .review-glass-track .customer-review::before{content:"";position:absolute;top:0;left:26px;right:26px;height:3px;border-radius:999px;background:var(--google-accent,#4285f4);opacity:.7}
#reviews .featured-review-rating{display:inline-block;border-bottom:2px solid #fbbc05;padding-bottom:4px}
#reviews-bubble .reviews-bubble-icon{box-shadow:0 0 0 2px #fbbc0566}
@media(max-width:700px){
 #reviews .review-glass-track .customer-review{contain-intrinsic-size:auto 390px;min-height:390px}
 .review-carousel-controls{justify-content:flex-end;gap:10px}
 .review-carousel-controls button{height:44px;min-width:44px}
 #review-carousel-position{font-size:.76rem}
}

/* Compact layout following the reviewed section order. */
.about h1{font-size:clamp(2.7rem,5.4vw,5.5rem);max-width:1050px;margin:0 auto 24px;line-height:1.06}
.hero h2{font-size:clamp(3.8rem,6.5vw,6.7rem);line-height:1.08}
.hero h2 em{font-style:normal;font-weight:700;color:#414141}
#reviews{padding-top:44px;padding-bottom:44px}
#project-album{padding-top:48px;padding-bottom:26px}
#process{padding-top:38px;padding-bottom:38px}
#work{padding-top:38px}
#work .work-intro{padding-bottom:20px}
#work .work-intro .section-heading{margin-bottom:0}
#floor-story .floor-stage{padding-top:28px;padding-bottom:28px;height:auto;min-height:0;align-items:center}
#floor-story .floor-media{height:auto;aspect-ratio:9/16;max-height:740px}
#floor-story .floor-result{opacity:1;transform:none;transition:none}
#floor-story .floor-lead{margin-top:18px}
#floor-story .floor-result{margin-top:22px}
#floor-story .story-hint{margin-top:22px}
#work .work-gallery-shell{padding-top:42px;padding-bottom:30px}
#work .apple-gallery{align-items:flex-start}
#work .apple-gallery figure{align-self:flex-start}
#work .work-gallery-shell .carousel-status{margin-top:12px}
#work .work-gallery-shell .section-cta-row{margin-top:20px}
#project-album .section-cta-row{margin-top:24px}
#porch-story{margin-top:0}
#contact{padding-top:40px}
@media(max-width:700px){
 .about{padding:38px 0}.about h1{font-size:clamp(2.35rem,9.7vw,4.2rem)}
 .hero h2{font-size:clamp(3rem,12vw,4.5rem)}
 #reviews{padding-top:30px;padding-bottom:30px}
 #project-album{padding-top:30px;padding-bottom:20px}
 #process{padding-top:24px;padding-bottom:28px}
 #work{padding-top:28px}
 #work .work-intro{padding-bottom:16px}
 #floor-story .floor-stage{grid-template-rows:auto auto;padding:16px 20px 24px;gap:20px;height:auto;min-height:0}
 #floor-story .floor-media{aspect-ratio:9/16;max-height:none;height:auto}
 #floor-story .floor-result p{font-size:.95rem;line-height:1.55}
 #work .work-gallery-shell{padding-top:28px;padding-bottom:24px}
 #contact{padding-top:28px}
}
/* Bound the horizontal row by the photographs on screen, without cropping. */
#work .apple-gallery img{width:auto;max-width:100%;height:auto;max-height:clamp(320px,40vw,510px);margin-inline:auto;object-fit:contain}
@media(max-width:700px){#work .apple-gallery img{max-height:70svh}}

/* A stationary picture frame: the greeting is the only movement inside it. */
.hero-photo.living-frame{width:min(100%,390px);justify-self:center;transform:none!important;opacity:1!important;transition:none!important}
.living-frame .photo-window{height:auto;aspect-ratio:9/16;background:#fff}
.living-frame video{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
.living-frame .tag{pointer-events:none}
@media(max-width:700px){.hero-photo.living-frame{width:min(calc(100% - 16px),340px)}}

/* Tilt the paper frame independently, keeping the living photograph upright. */
.hero-photo.living-frame{position:relative;isolation:isolate;background:transparent;border:1px solid transparent;box-shadow:none;overflow:visible}
.hero-photo.living-frame::before{content:"";position:absolute;inset:0;z-index:-1;border:1px solid #d9ddd7;border-radius:17px;background:linear-gradient(145deg,#fff,#fafbf8);box-shadow:0 18px 42px -18px #1c2b263b,0 3px 9px #1c2b2608;transform:rotate(-3deg);pointer-events:none}
.living-frame .photo-window{transform:none}
.living-frame figcaption{position:relative}
.insurance-sign{position:absolute;z-index:4;right:-13px;bottom:108px;display:flex;align-items:center;gap:10px;padding:15px 19px;color:#203321;background:linear-gradient(135deg,#bad987,#a2c178 58%,#8faa76);border:1px solid #809a66;border-radius:10px;box-shadow:inset 0 1px 0 #e6f3c6a6,0 9px 18px -9px #364e3566;font-size:1rem;font-weight:700;letter-spacing:.01em;transform-origin:50% -18px;pointer-events:none}
.insurance-sign::before{content:"";position:absolute;width:1px;height:18px;left:50%;top:-19px;background:#63775d}
.insurance-sign::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;left:calc(50% - 2px);top:-22px;background:#6d8066}
.insurance-swing .insurance-sign{animation:insurance-pendulum 1.7s ease-in-out 1 both}
@keyframes insurance-pendulum{0%{transform:rotate(-11deg)}35%{transform:rotate(9deg)}65%{transform:rotate(-4deg)}85%{transform:rotate(1.5deg)}100%{transform:rotate(0)}}
@media(max-width:700px){.hero-photo.living-frame::before{transform:rotate(-2.5deg)}.insurance-sign{right:-8px;bottom:104px;padding:12px 16px;font-size:.95rem}}
@media(prefers-reduced-motion:reduce){.insurance-swing .insurance-sign{animation:none}}
.living-frame .insurance-sign{top:44px;bottom:auto}
@media(max-width:700px){.living-frame .insurance-sign{top:34px;bottom:auto}}
/* Keep the complete photograph and its frame upright. */
.hero-photo.living-frame::before{transform:none}

/* Keep the primary action larger than the companion insurance sign. */
.hero-contact-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:13px;max-width:450px}
.hero-contact-actions>.button{padding:15px 18px;gap:12px;font-size:.94rem;line-height:1.35;min-height:56px}
.hero-contact-actions .insurance-sign{position:relative;inset:auto;justify-content:center;gap:6px;padding:10px 11px;border-radius:9px;font-size:.76rem;line-height:1.2;white-space:nowrap;transform-origin:50% 0;box-shadow:inset 0 1px 0 #e6f3c6a6,0 5px 12px -8px #364e3566}
.hero-contact-actions .insurance-sign svg{width:19px;height:19px;flex-shrink:0}
.hero-contact-actions .insurance-sign::before,.hero-contact-actions .insurance-sign::after{display:none}
@media(max-width:700px){.hero-contact-actions{gap:9px}.hero-contact-actions>.button{padding:13px 14px;font-size:.86rem;gap:8px}.hero-contact-actions .insurance-sign{font-size:.7rem;padding:10px 9px;gap:5px}}

/* Round the full video frame, including the frozen result. */
#floor-story .floor-media{border-radius:34px;overflow:hidden;isolation:isolate}
#floor-story :is(#floor-video,.floor-video-result){border-radius:inherit}
@media(max-width:700px){
 /* Preserve the desktop relationship: copy on the left, portrait on the right. */
 .hero{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);grid-template-rows:auto auto auto auto auto;column-gap:14px;row-gap:14px;padding-top:28px;padding-bottom:30px;align-items:center}
 .hero .intro{display:contents}
 .hero .intro>.eyebrow{grid-column:1;grid-row:1;font-size:.55rem;letter-spacing:.1em;margin:0;align-self:end}
 .hero .intro>h2{grid-column:1;grid-row:2;font-size:clamp(1.7rem,6.8vw,2.5rem);margin:0;line-height:1.05}
 .hero .intro>.lead{grid-column:1;grid-row:3;font-size:.8rem;line-height:1.55;margin:0;align-self:start}
 .hero>.hero-photo.living-frame{grid-column:2;grid-row:1/4;width:100%;min-width:0;margin:0;padding:6px 6px 10px;align-self:center}
 .hero .living-frame .photo-window{border-radius:10px}
 .hero .living-frame figcaption{padding:8px 2px 0}
 .hero .living-frame figcaption span{font-size:.56rem;line-height:1.4}
 .hero .living-frame figcaption strong{font-size:.95rem;line-height:1.3;margin:3px 0}
 .hero .intro>.hero-contact-actions{grid-column:1/-1;grid-row:4;width:100%;max-width:none;margin-top:4px}
 .hero .intro>.small{grid-column:1/-1;grid-row:5;margin:0;font-size:.72rem}
 /* Keep the flooring video and all its descriptive copy in separate columns. */
 #floor-story .floor-stage{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-rows:auto;gap:14px;padding:20px 18px;align-items:center;overflow:visible}
 #floor-story .floor-media{width:100%;min-width:0;aspect-ratio:9/16;height:auto;max-height:none;border-radius:26px}
 #floor-story .floor-copy{min-width:0}
 #floor-story .floor-copy .eyebrow{font-size:.5rem;letter-spacing:.08em;margin-bottom:10px;line-height:1.5}
 #floor-story .floor-copy h2{font-size:clamp(1.45rem,5.9vw,2.1rem);line-height:1.08;margin-bottom:0}
 #floor-story .floor-lead{font-size:.76rem;line-height:1.4;margin-top:12px}
 #floor-story .floor-result{margin-top:14px}
 #floor-story .floor-result h3{font-size:.9rem;line-height:1.2}
 #floor-story .floor-result p{font-size:.76rem;line-height:1.5;margin-top:9px}
 #floor-story .story-hint{font-size:.48rem!important;line-height:1.5;margin-top:13px;letter-spacing:.06em}
 /* The porch story retains its crossfades without laying text over a photograph. */
 #porch-story{height:calc(100svh + 260px)}
 #porch-story .story-stage{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:14px;align-items:center;position:sticky;top:110px;height:auto;min-height:0;padding:24px 18px;overflow:hidden}
 #porch-story .story-stage::after{display:none}
 #porch-story .story-visuals{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:3/4;border-radius:16px;overflow:hidden}
 #porch-story .story-frame{position:absolute;inset:0}
 #porch-story .story-frame img{height:100%;width:100%;object-fit:contain;object-position:center}
 #porch-story .story-copy{position:static;inset:auto;width:auto;min-width:0;transform:none;margin:0}
 #porch-story .story-copy .eyebrow{font-size:.5rem;letter-spacing:.08em;margin-bottom:10px;line-height:1.5}
 #porch-story .story-copy h2{font-size:clamp(1.4rem,5.7vw,2rem);line-height:1.1;margin-bottom:12px}
 #porch-story .story-copy .story-description{font-size:.78rem;line-height:1.5}
 #porch-story .story-progress{margin-top:16px;gap:5px}
 #porch-story .story-hint{font-size:.48rem!important;line-height:1.5;letter-spacing:.06em}
 /* Short photo-and-caption rows replace the tall mobile photo cards. */
 #project-album .project-track figure{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:0;min-height:0;background:#fff}
 #project-album .project-track img{width:100%;height:auto!important;border:0;border-radius:14px 0 0 14px}
 #project-album .project-track figcaption{padding:12px}
 #project-album .project-track h3{font-size:.94rem;line-height:1.25}
 #project-album .project-track figcaption span{font-size:.73rem;line-height:1.4}
 #work .apple-gallery figure{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:12px;flex-basis:88vw}
 #work .apple-gallery img{width:100%;height:auto;max-height:230px;border-radius:16px}
 #work .apple-gallery figcaption{padding:8px 4px 8px 0}
 #work .apple-gallery h3{font-size:1rem;line-height:1.25}
 #work .apple-gallery figcaption p{font-size:.78rem;line-height:1.5}
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){
 #porch-story{height:auto}
 #porch-story .story-stage{position:relative;top:auto}
 #porch-story .story-visuals{aspect-ratio:auto;display:grid;gap:10px}
 #porch-story .story-frame{position:static}
 #porch-story .story-frame img{height:auto}
}
/* Match the actual clip's proportions so the rounded edge hugs the picture. */
#floor-story .floor-media{aspect-ratio:1244/1660;max-width:555px;max-height:none;justify-self:center}

/* Transparent scrolled navigation with individual glass surfaces. */
header nav a,header .call{padding:9px 13px;border:1px solid transparent;border-radius:999px;line-height:1.4;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}
header.is-scrolled{background:transparent;box-shadow:none;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
header.is-scrolled :is(nav a,.call,.brand){background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.76);box-shadow:inset 0 1px 0 #ffffffb3,0 5px 18px #1c2b2612;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}
header .brand{padding:6px;border:1px solid transparent;border-radius:15px}
header.is-scrolled nav a:hover,header.is-scrolled .call:hover{background:rgba(255,255,255,.9)}
.story-quote{margin-top:22px;background:#191919!important;border-color:#191919!important;color:#fff!important;font-size:.88rem;padding:14px 21px;gap:18px;line-height:1.35}
#contact{scroll-margin-top:130px}
@media(max-width:700px){
 header nav{gap:8px;padding-top:2px}
 header nav a{padding:8px 11px;font-size:.79rem;text-align:center}
 header .call{padding:8px 10px;font-size:.76rem}
 #floor-story .story-quote,#porch-story .story-quote{font-size:.69rem;padding:10px 12px;gap:7px;margin-top:16px;min-width:0}
 #contact{scroll-margin-top:140px}
}
@media(max-width:700px){
 header{padding:8px 0;gap:6px}
 header .brand{width:150px}
 header nav{padding-top:0}
 #porch-story .story-stage{top:126px}
}
/* A more compact logo surface, fitted closely to the wordmark. */
header{min-height:88px;gap:18px}
header .brand{width:174px;padding:3px 5px;border-radius:12px}
@media(max-width:1000px){header .brand{width:160px}}
@media(max-width:700px){
 header{min-height:0;gap:5px;padding:7px 0}
 header .brand{width:128px;padding:3px 4px;border-radius:11px}
 header nav a{padding:7px 10px}
 header .call{padding:7px 10px}
 #porch-story .story-stage{top:112px}
}

/* Keep only the logo and telephone in the scrolled header. */
header.is-scrolled nav{display:none}
@media(max-width:700px){header.is-scrolled{min-height:68px}}
/* More room for the work itself in the two principal video frames. */
.hero-photo.living-frame{width:min(100%,460px)}
#floor-story .floor-stage{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
#floor-story .floor-media{max-width:620px}
.porch-slide-controls{display:none}
#project-album .project-track figure[hidden]{display:none!important}
.album-more-row{display:flex;justify-content:center;margin-top:22px}
.album-more-row .button{padding:12px 24px;font-size:.9rem}
@media(max-width:700px){
 .hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
 .hero>.hero-photo.living-frame{width:100%}
 .hero .intro>h2{font-size:clamp(1.55rem,6.5vw,2.35rem)}
 #floor-story .floor-stage{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:12px}
 #floor-story .floor-copy h2{font-size:clamp(1.35rem,5.6vw,1.9rem)}
 /* A normal-flow carousel replaces the tall pinned scroll story on phones. */
 #porch-story{height:auto;margin:0;padding:12px 0 20px}
 #porch-story .story-stage{position:relative;top:auto;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:12px;padding:12px 18px;height:auto;min-height:0;overflow:visible}
 #porch-story .story-visuals{display:flex;gap:0;aspect-ratio:3/4;width:100%;height:auto;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:20px;touch-action:pan-x pan-y}
 #porch-story .story-visuals::-webkit-scrollbar{display:none}
 #porch-story .story-frame{position:relative!important;inset:auto!important;flex:0 0 100%;width:100%;height:100%;margin:0;opacity:1!important;transform:none!important;scroll-snap-align:start;background:#f6f7f3}
 #porch-story .story-frame img{position:static;width:100%;height:100%;aspect-ratio:3/4;object-fit:contain;border-radius:20px}
 #porch-story .story-copy h2{font-size:clamp(1.25rem,5.3vw,1.8rem)}
 #porch-story .story-copy .story-description{font-size:.75rem}
 #porch-story .story-hint{display:none}
 #porch-story .story-progress{margin-top:13px}
 .porch-slide-controls{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:12px}
 .porch-slide-controls button{width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#191919;color:#fff;font:inherit;font-size:1.1rem;cursor:pointer}
 #porch-position{font-size:.72rem;font-variant-numeric:tabular-nums}
 #porch-story .story-quote{margin-top:12px;font-size:.64rem;padding:9px 10px}
 #reviews{padding-bottom:20px}
 #project-album{padding-top:20px}
 #project-album .project-track{gap:15px}
 .album-more-row{margin-top:18px}
}

.album-more-row{display:none}
@media(max-width:700px){.album-more-row{display:flex}}

/* Flooring story: introduction, large video, then the project details. */
#floor-story .floor-stage{display:flex;flex-direction:column;align-items:center;gap:26px;height:auto;min-height:0;padding:30px max(24px,5vw);overflow:visible}
#floor-story .floor-heading{position:static;inset:auto;transform:none;width:min(100%,760px);text-align:center}
#floor-story .floor-heading .eyebrow{font-size:.72rem;margin-bottom:16px}
#floor-story .floor-heading h2{font-size:clamp(2.6rem,5vw,4.8rem);max-width:none;line-height:1.05;margin:0}
#floor-story .floor-heading .floor-lead{font-size:1rem;margin-top:16px}
#floor-story .floor-media{flex:none;width:min(100%,640px);max-width:640px;aspect-ratio:1244/1660;border-radius:34px}
#floor-story .floor-details{width:min(100%,640px);text-align:left}
#floor-story .floor-result{margin:0}
#floor-story .floor-result h3{max-width:none;font-size:clamp(1.3rem,2.1vw,1.8rem);line-height:1.2}
#floor-story .floor-result p{max-width:none;font-size:1rem;line-height:1.65;margin-top:13px}
#floor-story .floor-details .story-hint{font-size:.65rem!important;margin-top:20px}
/* A single finished porch photograph, with its copy in a separate column. */
#porch-story.porch-finished-section{height:auto;min-height:0;margin:0;padding:28px 0;background:#fff;color:#191919}
.porch-finished-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,76px)}
.porch-finished-photo{margin:0;max-width:560px;width:100%;justify-self:center;border-radius:26px;overflow:hidden}
.porch-finished-photo img{display:block;width:100%;height:auto;object-fit:contain;border-radius:inherit}
.porch-finished-copy{min-width:0}
.porch-finished-copy h2{font-size:clamp(2.3rem,4.4vw,4.5rem);line-height:1.08}
.porch-finished-copy>p:not(.eyebrow){margin-top:22px;font-size:1rem;line-height:1.65;color:#333}
@media(max-width:700px){
 #floor-story .floor-stage{display:flex;padding:24px 18px;gap:22px}
 #floor-story .floor-heading .eyebrow{font-size:.61rem;margin-bottom:12px}
 #floor-story .floor-heading h2{font-size:clamp(2.2rem,9.3vw,3rem)}
 #floor-story .floor-heading .floor-lead{font-size:.91rem;margin-top:12px}
 #floor-story .floor-media{width:100%;max-width:none;border-radius:28px}
 #floor-story .floor-details{width:100%}
 #floor-story .floor-result h3{font-size:1.25rem}
 #floor-story .floor-result p{font-size:.91rem;line-height:1.6}
 #floor-story .floor-details .story-hint{font-size:.58rem!important}
 #floor-story .floor-details .story-quote{font-size:.82rem;padding:13px 18px}
 #porch-story.porch-finished-section{padding:18px 0}
 .porch-finished-layout{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:14px}
 .porch-finished-photo{border-radius:20px}
 .porch-finished-copy .eyebrow{font-size:.5rem;letter-spacing:.08em;margin-bottom:10px;line-height:1.5}
 .porch-finished-copy h2{font-size:clamp(1.25rem,5.3vw,1.9rem)}
 .porch-finished-copy>p:not(.eyebrow){font-size:.76rem;line-height:1.5;margin-top:13px}
 #porch-story .porch-finished-copy .story-quote{font-size:.66rem;padding:10px;gap:7px}
}
/* Desktop keeps the original video-and-copy columns; phone stays stacked. */
@media(min-width:701px){
 .hero-photo.living-frame{width:min(100%,390px)}
 #floor-story .floor-stage{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-template-rows:1fr 1fr;column-gap:clamp(24px,4vw,72px);row-gap:24px;padding:28px max(24px,5vw);align-items:center}
 #floor-story .floor-media{grid-column:1;grid-row:1/3;width:100%;max-width:555px;justify-self:center}
 #floor-story .floor-heading{grid-column:2;grid-row:1;align-self:end;width:100%;text-align:left}
 #floor-story .floor-heading h2{font-size:clamp(2.4rem,4.7vw,5rem)}
 #floor-story .floor-details{grid-column:2;grid-row:2;align-self:start;width:100%}
}

/* Phone-only project slides: one complete photograph with its caption below. */
@media(max-width:700px){
 #work .work-gallery-shell .carousel-heading{display:flex;flex-direction:column;align-items:stretch;gap:15px;margin-bottom:22px}
 #work .work-gallery-shell .carousel-heading h2{font-size:clamp(1.85rem,8vw,2.5rem);line-height:1.1}
 #work .work-gallery-shell .carousel-controls{align-self:flex-end}
 #work .apple-gallery{gap:16px;align-items:flex-start;scroll-snap-type:x mandatory;transition:height .25s ease;overflow-y:hidden}
 #work .apple-gallery figure{display:block;flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
 #work .apple-gallery img{display:block;width:100%;max-width:100%;height:auto;max-height:none;margin:0;object-fit:contain;border-radius:20px}
 #work .apple-gallery figcaption{padding:16px 2px 4px}
 #work .apple-gallery h3{font-size:1.2rem;line-height:1.25}
 #work .apple-gallery figcaption p{font-size:.94rem;line-height:1.55;margin-top:8px}
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){#work .apple-gallery{transition:none}}

/* Equal, generous phone frames and a complete, centered card at every stop. */
@media(max-width:700px){
 #work .apple-gallery{align-items:stretch;gap:16px;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-x:contain;transition:none}
 #work .apple-gallery figure{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;align-self:stretch}
 #work .apple-gallery img{width:100%;height:auto;aspect-ratio:3/4;max-height:none;object-fit:contain;object-position:center;background:#f5f6f3;border-radius:22px}
 #work .apple-gallery figcaption{min-height:150px;padding:17px 2px 8px}
}

/* Consistent rounded photo edges, including embedded comparison photos. */
#work .apple-gallery img{border-radius:26px}

/* A compact, complete before/after collage and a clearer quote process. */
#porch-story .porch-collage{display:grid;gap:14px;max-width:390px;padding:16px;border:1px solid #e5e7e2;border-radius:28px;overflow:visible;background:#f8f9f6}
#porch-story .porch-collage-frame{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0}
#porch-story .porch-collage-frame figcaption{align-self:flex-start;padding:0 4px;font-size:.73rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4d5945}
#porch-story .porch-collage-frame img{display:block;width:auto;max-width:100%;height:auto;max-height:280px;border-radius:18px;object-fit:contain}
#process.process-refresh{grid-template-columns:minmax(0,1fr);gap:36px;padding-top:44px;padding-bottom:44px}
#process .process-content{width:100%;max-width:780px;margin-inline:auto}
#process .process-heading>h2{font-size:clamp(2.35rem,4.2vw,4.2rem)}
#process .process-content>.process-intro{max-width:650px;margin:20px 0 28px;font-size:1.04rem}
#process .process-steps{list-style:none;padding:0;margin:0 0 25px;display:grid;gap:12px}
#process .process-steps>li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;padding:18px;border:1px solid #e2e6df;border-radius:22px;background:linear-gradient(120deg,#f6f8f3,#fff 80%);position:relative}
#process .process-step-number{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#e5ebdf;color:#3f5037;font-size:.85rem;font-weight:750;animation:process-step-glow 7.2s ease-in-out infinite}
#process .process-steps>li:nth-child(2) .process-step-number{animation-delay:2.4s}
#process .process-steps>li:nth-child(3) .process-step-number{animation-delay:4.8s}
#process .process-steps h3{font-size:1.08rem;margin:0 0 7px;line-height:1.35}
#process .process-steps p{font-size:.94rem;line-height:1.6;color:#444;margin:0}
@keyframes process-step-glow{0%,33%,100%{background:#f5c400;box-shadow:0 0 0 0 #f5c40000}12%,22%{background:#ffdb45;box-shadow:0 0 0 6px #f5c40024}}
@media(max-width:700px){
 #porch-story .porch-collage{padding:8px;gap:10px;border-radius:20px;max-width:280px}
 #porch-story .porch-collage-frame{gap:5px}
 #porch-story .porch-collage-frame img{max-height:190px;border-radius:12px}
 #porch-story .porch-collage-frame figcaption{font-size:.58rem}
 #process.process-refresh,#process.process-has-collage{grid-template-columns:minmax(0,1fr);padding-top:28px;padding-bottom:28px;gap:24px}
 #process .process-heading>h2{font-size:clamp(2rem,8.5vw,2.8rem)}
 #process .process-content>.process-intro{font-size:.94rem;margin:17px 0 22px}
 #process .process-steps>li{grid-template-columns:34px minmax(0,1fr);gap:12px;padding:15px;border-radius:18px}
 #process .process-step-number{width:34px;height:34px;font-size:.75rem}
 #process .process-steps h3{font-size:1rem}
 #process .process-steps p{font-size:.87rem;line-height:1.55}
}
@media(prefers-reduced-motion:reduce){#process .process-step-number{animation:none}}

/* The customer's drawing and finished cabinetry tell the process visually. */
#process.process-has-collage{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(28px,5vw,68px);align-items:center}
#process.process-has-collage .process-content{max-width:none;margin:0}
#process .process-collage{display:grid;position:relative;align-self:center;min-width:0;padding:12px 0}
#process .process-collage figure{margin:0;padding:9px 9px 13px;background:#fff;border:1px solid #e1e5dc;border-radius:24px;box-shadow:0 14px 38px #263b3210;position:relative}
#process .process-collage-before{width:83%;justify-self:start}
#process .process-collage-after{width:83%;justify-self:end}
#process .process-collage img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;border-radius:16px}
#process .process-collage figcaption{display:flex;align-items:center;gap:9px;padding:10px 6px 0;font-size:.82rem;font-weight:600;color:#444}
#process .process-collage figcaption span{padding:3px 10px;border-radius:20px;font-size:.67rem;letter-spacing:.04em;text-transform:uppercase;color:#405237;background:#edf2e7}
#process .process-curved-arrow{display:block;justify-self:end;width:130px;height:72px;margin:-2px 3% -6px 0;overflow:visible;stroke:#788c5f;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
#process .process-arrow-line{stroke-dasharray:1;stroke-dashoffset:0}
.motion-ready #process .process-collage.is-visible .process-arrow-line{animation:process-arrow-draw 1.2s ease both .35s}
@keyframes process-arrow-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media(max-width:700px){
 #process.process-has-collage{grid-template-columns:minmax(0,1fr);gap:24px}
 #process .process-collage{width:100%;max-width:440px;margin:auto;padding:0}
 #process .process-collage-before,#process .process-collage-after{width:84%}
 #process .process-collage figure{padding:7px 7px 10px;border-radius:20px}
 #process .process-collage img{border-radius:14px}
 #process .process-curved-arrow{height:55px;width:105px;margin-right:4%;margin-top:-1px;margin-bottom:-4px}
 #process .process-collage figcaption{font-size:.76rem;padding-top:8px}
}
@media(prefers-reduced-motion:reduce){.motion-ready #process .process-collage.is-visible .process-arrow-line{animation:none}}

/* Yellow project accents and readable notebook-style project introduction. */
@font-face{font-family:"Kalam Notebook";src:url("fonts/kalam-regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
#process .process-step-number,#process .process-collage figcaption span{background:#f5c400;color:#111;border:1px solid #fff}
#process .process-curved-arrow{stroke:#e6ac00;stroke-width:3.5}
.insurance-sign{color:#111;border-color:#fff;text-shadow:-.35px 0 #fff,.35px 0 #fff,0 -.35px #fff,0 .35px #fff}
#work .work-intro .section-heading>p{font-family:"Kalam Notebook","Chalkboard SE",cursive;font-size:clamp(1.12rem,1.9vw,1.4rem);font-weight:400;line-height:1.55;letter-spacing:0;color:#262626}
#porch-story .porch-collage-frame img{width:100%;height:auto;aspect-ratio:4/3;max-height:none;object-fit:cover}
#porch-story .porch-collage-frame:nth-child(2) img{object-position:50% 40%}
@media(max-width:700px){#work .work-intro .section-heading>p{font-size:1.12rem;line-height:1.55}}

/* Anchor the connector to the actual Before card, ending at the After photo. */
#process .process-collage{row-gap:64px}
#process .process-curved-arrow{position:absolute;z-index:3;left:calc(100% - 1px);right:auto;top:60%;width:calc(20.482% + 1px);height:calc(40% + 74px);margin:0;pointer-events:none}
@media(max-width:700px){
 #process .process-collage{order:-1;row-gap:52px}
 #process .process-content{order:0}
 #process .process-curved-arrow{width:calc(19.048% + 1px);height:calc(40% + 60px);margin:0}
 #floor-story .floor-media{order:-1}
 #floor-story .floor-heading{order:0}
 #floor-story .floor-details{order:1}
}

/* Draw the shaft first, then reveal a clear filled arrowhead at its endpoint. */
#process .process-arrow-tip{stroke:none;fill:#e6ac00;opacity:1}
.motion-ready #process .process-arrow-line{stroke-dashoffset:1}
.motion-ready #process .process-arrow-tip{opacity:0}
.motion-ready #process .process-collage.is-visible .process-arrow-tip{animation:process-arrow-tip-reveal .12s linear 1.55s both}
@keyframes process-arrow-tip-reveal{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 .motion-ready #process .process-collage.is-visible .process-arrow-line{animation:none;stroke-dashoffset:0}
 .motion-ready #process .process-collage.is-visible .process-arrow-tip{animation:none;opacity:1}
}

/* A single static, rounded doodle with its head following the curve. */
#process .process-curved-arrow{stroke-width:4.2;stroke-linecap:round;stroke-linejoin:round}
#process .process-arrow-doodle{fill:none;stroke:#e6ac00;stroke-dasharray:none;stroke-dashoffset:0;animation:none;opacity:1}

/* Give the static arrow breathing room and keep mobile headings above media. */
#process .process-curved-arrow{left:calc(100% + 12px);width:calc(20.482% - 12px);height:calc(40% + 50px)}
@media(max-width:700px){
 #process .process-content{display:contents}
 #process .process-heading{order:0}
 #process .process-collage{order:1}
 #process .process-content>.process-intro{order:2;margin:0}
 #process .process-steps{order:3;margin:0}
 #process .process-content>.button{order:4;justify-self:start}
 #process .process-curved-arrow{width:calc(19.048% - 12px);height:calc(40% + 36px)}
 #floor-story .floor-heading{order:0}
 #floor-story .floor-media{order:1}
 #floor-story .floor-details{order:2}
 #work .work-intro .section-heading>p{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.6}
}

/* Subtle logo-colored accents frame the welcome copy without obscuring it. */
#main>.about{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 3% 12%,#f5c40021 0%,transparent 47%),radial-gradient(ellipse at 97% 86%,#8d939927 0%,transparent 44%),linear-gradient(135deg,#fffef9,#fff 52%,#f5f6f6)}
#main>.about::before{content:"";position:absolute;z-index:-1;width:290px;height:290px;left:-160px;bottom:-115px;border:28px solid #f5c40030;border-radius:50%;pointer-events:none}
#main>.about::after{content:"";position:absolute;z-index:-1;right:3%;top:12%;width:155px;height:155px;background-image:radial-gradient(#777e8540 1.2px,transparent 1.2px);background-size:15px 15px;mask-image:linear-gradient(140deg,#000,transparent 83%);pointer-events:none}
#main>.about .about-inner{position:relative;z-index:1}
@media(max-width:700px){
 #main>.about{background:radial-gradient(ellipse at 0 0,#f5c40029,transparent 55%),radial-gradient(ellipse at 100% 100%,#92999f24,transparent 48%),#fff}
 #main>.about::before{width:185px;height:185px;left:-130px;bottom:-75px;border-width:20px}
 #main>.about::after{width:85px;height:115px;top:12px;right:0;opacity:.65;background-size:12px 12px}
 .ribbon{padding:13px 0;background:linear-gradient(110deg,#e7bd37,#f2d56e);border-color:#dfb72d}
 .ribbon .wrap{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:calc(100% - 28px);font-size:clamp(.62rem,2.5vw,.72rem);letter-spacing:.045em}
 .ribbon .ribbon-dot{display:none}
 .ribbon .ribbon-item{grid-column:span 2;min-width:0;min-height:36px;padding:7px 4px;border:1px solid #ffffffe6;border-radius:11px;background:#ffffffc7;box-shadow:0 2px 5px #5c46000a;color:#242424;font-weight:700;line-height:1.25;white-space:nowrap}
 .ribbon .ribbon-item:nth-child(7),.ribbon .ribbon-item:last-child{grid-column:span 3}
}

/* Focused quote dialog: the page stays visible through a blurred backdrop. */
.ribbon a.ribbon-item{text-decoration:none;cursor:pointer}
.ribbon a.ribbon-item:hover{color:#000;text-decoration:underline;text-underline-offset:4px}
.quote-entry{max-width:760px;margin:auto;text-align:center}
.quote-entry[hidden]{display:none}
.quote-entry>p:not(.eyebrow){margin:18px auto 22px;max-width:540px}
.quote-modal-open{overflow:hidden;overscroll-behavior:none}
#quote-dialog{width:min(860px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;margin:auto;border:1px solid #ffffffd9;border-radius:30px;background:#fffffff0;color:#191919;box-shadow:0 28px 100px #1115;overflow:hidden;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
#quote-dialog:not([open]){display:none}
#quote-dialog[open]{display:flex;flex-direction:column}
#quote-dialog::backdrop{background:#23272c45;backdrop-filter:blur(12px) saturate(.8);-webkit-backdrop-filter:blur(12px) saturate(.8)}
.quote-modal-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 20px;border-bottom:1px solid #ddd9;background:#ffffffc9;flex:none}
.quote-modal-top>span{font-size:.78rem;font-weight:650;letter-spacing:.01em}
.quote-modal-close{display:grid;place-items:center;flex:none;width:38px;height:38px;padding:0;border:1px solid #fff;border-radius:50%;background:#191919;color:#fff;font:400 28px/1 -apple-system,BlinkMacSystemFont,Arial,sans-serif;cursor:pointer}
.quote-modal-close:hover{background:#3b3b3b}
.quote-modal-body{overflow:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scroll-padding-top:18px}
#quote-dialog #quote-form{width:100%;margin:0;padding:26px 30px 30px;border:0;border-radius:0;background:transparent;opacity:1;transform:none;animation:none;transition:none}
#quote-dialog .form-title h3{font-size:clamp(1.8rem,4vw,2.55rem);outline:none}
#quote-dialog .form-title>p:last-child{font-size:.88rem}
#quote-dialog .form-step{scroll-margin:18px}
#quote-dialog .form-actions{margin-bottom:0}
#quote-dialog .step-heading h4:focus{outline:none}
#quote-notice{position:fixed;z-index:11000;top:100px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 36px));padding:16px 22px;border:1px solid #fff;border-radius:18px;background:#fff6cf;box-shadow:0 10px 35px #0002;color:#191919;font-size:.92rem;line-height:1.5}
#quote-notice[hidden]{display:none}
@media(max-width:700px){
 .ribbon a.ribbon-item:hover{text-decoration:none;background:#fff}
 #quote-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:24px}
 .quote-modal-top{padding:10px 14px;gap:10px}
 .quote-modal-top>span{font-size:.7rem}
 .quote-modal-close{width:36px;height:36px}
 #quote-dialog #quote-form{padding:20px 17px 24px;gap:18px}
 #quote-dialog .field-grid{gap:14px}
 #quote-dialog input,#quote-dialog textarea,#quote-dialog select{font-size:16px}
 #quote-dialog .form-title h3{font-size:1.8rem}
 #quote-dialog .service-options{grid-template-columns:repeat(2,minmax(0,1fr))}
 #quote-dialog .form-actions .button{font-size:.85rem;padding:13px 14px}
 #quote-notice{top:88px;font-size:.86rem}
}

/* Requested CTA palette: outlined white, polished navy, and logo yellow. */
#main>.about .button,.hero .hero-contact-actions>.button{background:#fff;color:#191919;border:1px solid #191919;box-shadow:inset 0 -3px 0 #f5c40035}
#main>.about .button:hover,.hero .hero-contact-actions>.button:hover{background:#fffbea;color:#191919;border-color:#191919}
#main>.about .button>span,.hero .hero-contact-actions>.button>span{display:grid;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:50%;background:#f5c400;color:#191919;font-size:1rem;line-height:1}
#project-album .section-cta{background:linear-gradient(160deg,#3b6089 0%,#193b60 40%,#0b2039 100%);color:#fff;border:1px solid #112b46;box-shadow:inset 0 1px 0 #ffffff80,inset 0 -2px 0 #0003,0 7px 18px #142f4b2b;text-shadow:0 1px 1px #0003}
#project-album .section-cta:hover{background:linear-gradient(160deg,#4a739f 0%,#224b74 40%,#112c49 100%);color:#fff;border-color:#193b60}
#floor-story .story-quote{background:#f5c400!important;color:#191919!important;border-color:#d1a700!important;box-shadow:inset 0 1px 0 #ffffff7a}
#floor-story .story-quote:hover{background:#ffda43!important;color:#191919!important;border-color:#b99600!important}
@media(max-width:700px){
 #main>.about .button>span,.hero .hero-contact-actions>.button>span{width:25px;height:25px;flex-basis:25px;font-size:.9rem}
}

/* A direct playback control remains available when autoplay is denied. */
.photo-window,.floor-media{position:relative}
.video-playback{position:absolute;z-index:5;right:10px;bottom:10px;max-width:calc(100% - 20px);border:1px solid #191919;border-radius:999px;padding:8px 12px;background:#fffffff0;color:#191919;font:600 12px/1.3 Arial,Helvetica,sans-serif;cursor:pointer;box-shadow:0 2px 10px #0002}
.video-playback:focus-visible{outline:3px solid #f5c400;outline-offset:3px}
.video-playback-needed{background:#f5c400;border-width:2px}
#floor-story.video-manual-play #floor-video{display:block}
#floor-story.video-manual-play:not(.video-show-result) .floor-video-result{opacity:0}
