@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--yellow:#ffd21c;--ink:#171817;--paper:#f5f4ed;--muted:#696b63;--line:#d7d8cf;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b88500;outline-offset:5px}button:focus-visible{position:relative;z-index:3}[hidden]{display:none!important}.demo-bar{background:var(--ink);color:var(--paper);padding:10px 4%;font-size:9px;font-weight:700;letter-spacing:1.6px;display:flex;justify-content:space-between}.demo-bar span{color:#a6a79e}.header{display:flex;justify-content:space-between;align-items:center;padding:24px 4%;border-bottom:1px solid var(--line);gap:25px}.logo{display:flex;flex-direction:column;width:140px;position:relative;font-family:var(--display);font-weight:800;line-height:.8}.logo svg{height:22px;width:110px;fill:none;stroke:#c99d00;stroke-width:4;align-self:center;margin-bottom:4px}.logo>span{font-size:23px;letter-spacing:-.4px}.logo strong{font-size:53px;letter-spacing:-2px}.logo-dot{color:#c99d00}.header nav{display:flex;gap:38px;font-size:13px;font-weight:600}.header nav a{padding:12px 0}.header nav a:hover{box-shadow:0 2px var(--ink)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;border:1px solid var(--ink);background:var(--yellow);padding:20px 24px;font-size:11px;font-weight:800;letter-spacing:.7px;transition:background .2s,transform .2s}.button span{font-size:20px;line-height:1}.button:hover{background:#ffe46e;transform:translateY(-2px)}.button.small{padding:16px 20px;font-size:10px;gap:28px}.button.light{background:transparent}.hero{display:grid;grid-template-columns:45% 55%;min-height:720px}.hero-copy{padding:52px 9% 48px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.5px;line-height:1.6}.status-dot{display:inline-block;width:7px;height:7px;background:var(--ink);border-radius:50%;margin-right:8px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--display);font-weight:800;letter-spacing:-1.5px}h1{font-size:clamp(70px,7.7vw,118px);line-height:.86;margin:30px 0}h1>span{color:#818574}h2{font-size:56px;line-height:1;letter-spacing:-.6px}.hero-bottom p{color:#64675c;font-size:13px;line-height:1.8;margin:27px 0}.hero-bottom .button{margin-top:4px}.scene-panel{background:var(--yellow);position:relative;overflow:hidden;display:flex;flex-direction:column;border-left:1px solid var(--ink)}.scene-top{display:flex;justify-content:space-between;align-items:center;margin:32px 6%;font-size:9px;font-weight:800;letter-spacing:1.4px}.scene-top i{width:7px;height:7px;background:var(--ink);display:inline-block;border-radius:50%;margin-right:6px}.text-button{background:transparent;border:0;font-size:9px;font-weight:800;letter-spacing:1px;padding:10px}.scene-title{padding:8px 6%;position:relative;z-index:1;pointer-events:none}.scene-title>span{font-size:10px;font-weight:600}.scene-title h2{font-size:46px;line-height:.95;margin:16px 0 0;letter-spacing:-.3px}canvas{display:block;width:100%;height:auto;position:absolute;bottom:56px;left:0;aspect-ratio:900/660}.scene-bottom{margin-top:auto;padding:23px 6%;display:flex;justify-content:space-between;gap:15px;font-size:9px;font-weight:800;letter-spacing:1px;position:relative}.scene-bottom b{font-size:15px}.scene-progress{height:4px;background:#17181722}.scene-progress span{display:block;background:var(--ink);height:4px;width:0}.ticker{display:flex;justify-content:space-around;align-items:center;gap:22px;background:var(--ink);color:var(--paper);padding:23px 4%;font-family:var(--display);font-size:27px;font-weight:700;overflow:hidden;white-space:nowrap}.ticker b{color:var(--yellow);font-size:25px}.section{padding:95px 7%}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap}.section-heading .eyebrow{flex-basis:100%;margin-bottom:0}.section-heading h2{margin-bottom:0}.section-heading h2 span{color:#818574}.section-heading>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:3px}.service-list{margin-top:48px}.service-row{display:flex;gap:30px;align-items:center;border-top:1px solid var(--line);padding:28px 5px;transition:padding .2s,background .2s}.service-row:last-child{border-bottom:1px solid var(--line)}.service-row:hover{padding-left:20px;background:#ecece2}.service-number{font-size:11px;font-weight:600;align-self:flex-start;padding-top:7px;color:var(--muted)}.service-row h3{font-family:var(--display);font-size:32px;margin:0 0 7px;font-weight:600}.service-row p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.service-icon{margin-left:auto;border:1px solid #a8aa9e;border-radius:50%;min-width:42px;height:42px;display:grid;place-items:center;font-size:22px}.quote-strip{background:var(--yellow);padding:60px 7%;display:grid;grid-template-columns:1fr 1fr;gap:80px}.quote-strip h2{margin:18px 0 0;font-size:60px}.quote-strip>div:nth-child(2){align-self:center;max-width:460px}.quote-strip>div>p:not(.eyebrow){line-height:1.9;font-size:14px}.underlined{display:flex;justify-content:space-between;border-bottom:1px solid;padding:20px 0 12px;font-size:11px;letter-spacing:.5px;font-weight:700}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:60px}.steps article{border-top:1px solid var(--line);padding-top:25px}.steps article>span{font-family:var(--display);font-size:48px;color:#8b8e80}.steps h3{font-family:var(--display);font-size:29px;font-weight:600;margin:23px 0 12px}.steps p{font-size:13px;color:var(--muted);line-height:1.8;max-width:280px}.final-cta{background:var(--ink);color:var(--paper);text-align:center;padding:75px 20px 85px}.final-cta h2{font-size:100px;line-height:.88;margin:30px 0}.final-cta h2 span{color:var(--yellow)}.final-cta .button{color:var(--ink);margin:12px 0 22px}.phone-inline{display:block;font-size:12px;color:#c2c4b9}footer{padding:40px 4% 22px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}.footer-brand{font-family:var(--display);font-size:22px;font-weight:700}.footer-brand span{background:var(--yellow);padding:2px 5px}footer>span{font-size:9px;letter-spacing:1.2px}footer>a:not(.footer-brand){font-weight:700;font-size:14px}.footer-bottom{border-top:1px solid var(--line);padding-top:22px;margin-top:5px;width:100%;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:9px;letter-spacing:.2px}.contact-layout{display:grid;grid-template-columns:45% 55%;align-items:start}.contact-copy{padding:40px 9%;position:static;top:auto}.back-link{font-size:9px;letter-spacing:1px;display:inline-block;margin:4px 0 55px}.contact-copy h1{font-size:clamp(60px,6.1vw,94px);margin-bottom:30px}.contact-copy>p:not(.eyebrow){font-size:14px;line-height:1.8;color:var(--muted);max-width:330px}.contact-phone{display:block;font-family:var(--display);font-size:37px;font-weight:600;margin-top:35px}.contact-copy .contact-note{font-size:11px!important}.contact-mini{display:flex;align-items:center;gap:20px;margin:60px 0 20px;border-top:1px solid var(--line);padding-top:25px}.contact-mini>span{font-size:60px;color:#c49b00}.contact-mini p{font-family:var(--display);font-size:24px;line-height:1.1;margin:0}.booking-panel{background:#eaece3;border-left:1px solid var(--line);padding:55px 9%}.form-heading h2{font-size:43px;margin:16px 0}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
#booking-form{position:relative}
.demo-note{font-size:11px;line-height:1.5;margin-bottom:30px;color:var(--muted)}label{display:block;font-size:11px;font-weight:700;margin-bottom:21px}.optional{font-weight:400;color:var(--muted)}input,select,textarea{display:block;width:100%;border:1px solid #c4c8ba;background:#f9faf5;border-radius:0;padding:13px 12px;margin-top:9px;font-size:13px;min-height:46px;color:var(--ink)}textarea{resize:vertical}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.calendar-field{border:0;padding:0;margin:6px 0 25px;min-width:0}.calendar-field legend{font-size:11px;font-weight:700}.field-help{font-size:11px;color:var(--muted);line-height:1.6;margin:8px 0 18px}.calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.calendar-nav strong{font-size:15px}.calendar-nav button{border:1px solid #c3c7b8;background:transparent;width:34px;height:34px;font-size:20px}.calendar-nav button:disabled{opacity:.3}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekdays{font-size:10px;color:var(--muted);text-align:center;margin-bottom:9px}.calendar-days button{min-height:39px;border:1px solid transparent;background:#f7f8f1;font-size:12px}.calendar-days button:hover:not(:disabled){border-color:var(--ink)}.calendar-days button:disabled{background:transparent;color:#a5aa9b}.calendar-days button[aria-pressed=true]{background:var(--yellow);border-color:var(--ink);font-weight:800}.calendar-days button.today{box-shadow:inset 0 -2px #969d86}.selected-day{font-size:11px;font-weight:600;background:#dce0d2;padding:12px;margin:14px 0 0}.error{font-size:12px;color:#a32819;margin:10px 0}.submit{width:100%;font-size:10px}.form-fine-print{font-size:10px;color:var(--muted);text-align:center;margin:15px 0 0;line-height:1.6}#booking-success{padding:30px 0;min-height:680px}#booking-success h2{font-size:53px;margin:20px 0}#booking-success p{font-size:13px;line-height:1.8}#booking-success .eyebrow{font-size:10px}.success-icon{width:58px;height:58px;background:var(--yellow);border-radius:50%;font-size:28px;display:grid;place-items:center;margin-bottom:35px}dl{padding:20px 0;border-block:1px solid #c4c8ba;margin:25px 0}dt{font-size:10px;color:var(--muted);margin-top:15px}dt:first-child{margin-top:0}dd{margin:5px 0 0;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap}.success-phone{display:block;font-size:11px;margin-top:22px;text-decoration:underline}
@media(min-width:1600px){.hero{min-height:820px}.hero-copy{padding-top:70px}canvas{bottom:50px}.scene-title h2{font-size:60px}}
@media(max-width:1000px){.hero{min-height:660px}.hero-copy{padding:40px 8%}.hero h1{font-size:83px}.scene-title h2{font-size:38px}.scene-top{margin-top:25px}.scene-bottom{font-size:8px}.scene-bottom>span:last-child{display:none}.section{padding:70px 5%}.section-heading h2{font-size:46px}.header nav{gap:22px}.quote-strip{gap:40px;padding:50px 5%}.quote-strip h2{font-size:52px}.booking-panel{padding:45px 6%}.contact-copy{padding:35px 7%}}
@media(max-width:700px){.demo-bar{font-size:7px;letter-spacing:.8px;padding:9px 5%}.demo-bar span{display:none}.header{padding:18px 5%;gap:15px}.logo{width:105px}.logo svg{width:87px;height:17px}.logo>span{font-size:18px}.logo strong{font-size:40px}.header nav{gap:17px;margin-left:auto}.header nav a{font-size:11px}.header nav a:nth-child(2){display:none}.header>.button{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:33px 6% 36px}.hero-copy .eyebrow{font-size:9px}.hero h1{font-size:clamp(72px,19vw,114px);margin:24px 0}.hero-bottom{display:flex;align-items:flex-start;gap:15px;flex-direction:column}.hero-bottom p{margin:0 0 12px;font-size:13px}.hero-bottom p br{display:none}.hero-bottom .button{width:100%}.scene-panel{min-height:510px;border-left:0;border-top:1px solid var(--ink)}.scene-top{margin:20px 6% 10px}.scene-title{padding:4px 6%}.scene-title h2{font-size:38px;margin-top:10px}canvas{bottom:50px;min-width:500px;left:50%;transform:translateX(-50%);width:110%}.scene-bottom{font-size:8px;padding:18px 6%}.scene-bottom>span:last-child{display:block}.ticker{justify-content:flex-start;font-size:23px;padding:18px 5%;gap:23px}.section{padding:55px 6%}.section-heading{gap:20px}.section-heading h2{font-size:40px}.section-heading>p:not(.eyebrow){font-size:12px}.service-list{margin-top:30px}.service-row{gap:15px;padding:24px 0}.service-row h3{font-size:28px}.service-row p{font-size:11px}.service-icon{min-width:33px;height:33px;font-size:19px}.quote-strip{grid-template-columns:1fr;gap:28px;padding:40px 6%}.quote-strip h2{font-size:49px}.quote-strip>div>p:not(.eyebrow){font-size:13px}.steps{grid-template-columns:1fr;gap:24px;margin-top:35px}.steps article{display:grid;grid-template-columns:55px 1fr;column-gap:20px;padding-top:20px}.steps article>span{grid-row:span 2;font-size:40px}.steps h3{margin:0 0 7px;font-size:27px}.steps p{max-width:none;margin:0}.process .button{margin-top:5px}.final-cta{padding:50px 6% 55px}.final-cta h2{font-size:73px}.final-cta .button{width:100%}.final-cta .eyebrow{font-size:8px}footer{padding:30px 6% 20px;gap:20px}footer>span{display:none}.footer-bottom{flex-direction:column;gap:12px;font-size:8px}.contact-layout{grid-template-columns:1fr}.contact-copy{position:static;padding:25px 6% 30px}.back-link{margin-bottom:30px}.contact-copy h1{font-size:69px}.contact-copy h1 br:nth-child(3){display:none}.contact-copy>p{max-width:100%!important}.contact-phone{font-size:33px;margin-top:20px}.contact-mini{display:none}.booking-panel{padding:32px 6%;border-left:0;border-top:1px solid var(--line)}.form-heading h2{font-size:40px}.calendar-days button{min-height:42px}.field-grid{gap:12px}#booking-success{min-height:0;padding:15px 0 30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Worksite controls: compact sign lettering and a separate directional tab. */
.button,.button.small,.button.light{background:var(--ink);color:#fff;border:0;padding:0 0 0 24px;min-height:58px;gap:28px;font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:.7px;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);transition:background .2s,transform .2s}
.button span{align-self:stretch;display:grid;place-items:center;background:var(--yellow);color:var(--ink);width:58px;min-height:58px;flex-shrink:0;font:26px Arial;border-left:4px solid var(--paper);transition:background .2s}
.button:hover,.button.light:hover{background:#363930;transform:translateY(-2px)}
.button:hover span{background:#ffe986}
.button:focus-visible{outline:3px solid #bc8800;outline-offset:-3px}
.button.small{font-size:16px;min-height:48px;padding-left:20px;gap:22px}.button.small span{width:48px;min-height:48px;font-size:23px}
.final-cta .button{background:var(--yellow);color:var(--ink)}.final-cta .button span{background:#fff5c1;border-color:var(--ink)}
.submit span,#edit-request span{border-color:#eaece3}
.scene-panel{background:#fcfcf8;border-left:1px solid #dedfd5;background-image:radial-gradient(#d6d9ce 1px,transparent 1px);background-size:24px 24px}
.scene-top>span{background:var(--yellow);padding:10px 12px;transform:rotate(-2deg);letter-spacing:1.1px}
.scene-top{position:relative;z-index:2;margin-bottom:20px}.scene-top i{border-radius:0}
.text-button{border:1px solid #d4d6cb;background:#fcfcf8;min-height:34px;padding:8px 12px}
.scene-title>span{font-family:var(--display);font-size:20px;letter-spacing:2px;color:#878d7d}
.scene-title h2{font-size:52px;line-height:.96;max-width:430px;transition:opacity .25s,transform .35s}
.scene-title.changing h2{opacity:0;transform:translateY(-8px)}
.scene-bottom{background:#f4f4eb;border-top:1px solid #d6d8cd;z-index:2;padding-block:20px}
.scene-progress{background:#e0e3d6}.scene-progress span{background:#d4ae00}
.scene-panel canvas{bottom:54px;width:100%;min-width:0;left:0;transform:none}
.calendar-nav button{background:var(--ink);color:white;border:0;min-height:36px}.calendar-nav button:disabled{background:transparent;color:var(--ink)}
.calendar-days button{border-radius:3px}.calendar-days button[aria-pressed=true]{box-shadow:inset 0 -3px var(--ink)}
@media(max-width:1000px){.scene-title h2{font-size:42px}.button{font-size:17px}}
@media(max-width:700px){.scene-panel{min-height:540px}.scene-title h2{font-size:39px}.scene-top{margin-top:23px;margin-bottom:15px}.scene-panel canvas{width:125%;max-width:none;left:-12.5%;bottom:65px}.button,.button.light{min-height:56px;font-size:18px}.button span{min-height:56px;width:56px}.scene-bottom{padding-block:20px}.scene-title>span{font-size:17px}}
@media(prefers-reduced-motion:reduce){.scene-title h2,.button,.button span{transition:none}}
/* Compact scene chrome, leaving the worksite itself to tell the story. */
.scene-top{margin:25px 5% 17px}.scene-top .text-button{font:20px Arial;padding:6px;width:34px;height:34px;border:0;background:transparent}
.scene-title{display:flex;align-items:center;gap:15px;padding:0 5%;min-width:0;white-space:nowrap}
.scene-title>span{flex-shrink:0;font-size:17px;letter-spacing:1px}.scene-title h2{font-size:clamp(20px,2.45vw,39px);line-height:1.1;margin:0;max-width:none;letter-spacing:-.3px}
.scene-invite{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:17px 5% 0;position:relative;z-index:3;font-size:10px;line-height:1.5;color:#64705b}
#join-crew{border:0;border-bottom:1px solid #959f89;background:transparent;padding:6px 0;color:var(--ink);font-size:9px;font-weight:800;white-space:nowrap}
.scene-stage{position:absolute;left:0;right:0;bottom:64px;aspect-ratio:900/520}
.scene-panel .scene-stage canvas{width:100%;height:100%;left:0;bottom:0;transform:none;aspect-ratio:auto;min-width:0}
#wall-targets{position:absolute;inset:0;pointer-events:none}
.wall-target{position:absolute;pointer-events:auto;border:1px dashed transparent;background:transparent;padding:0;cursor:crosshair;transition:background .2s,border-color .2s}
.wall-target:hover,.wall-target:focus-visible{background:#ffd21c38;border-color:#ad8a00;outline:2px solid #ad8a00;outline-offset:-2px}
.wall-target.queued{background:#ffd21c50;border-color:#9c7c00}
.wall-target span{position:absolute;top:-22px;left:50%;transform:translateX(-50%);width:18px;height:18px;display:grid;place-items:center;background:var(--ink);color:var(--yellow);font-size:9px;border-radius:50%;opacity:0}
.wall-target:hover span,.wall-target:focus-visible span,.wall-target.queued span{opacity:1}
.ticker{position:relative;display:block;padding:13px 0;background:repeating-linear-gradient(135deg,var(--yellow) 0 19px,#171817 19px 38px);overflow:hidden}
.tape-window{background:#171817ed;padding:17px 0;mask-image:none;-webkit-mask-image:none}
.tape-track{display:flex;width:max-content;animation:tape-slide 30s linear infinite;will-change:transform}
.tape-copy{display:flex;flex-shrink:0;align-items:center;justify-content:space-around;gap:50px;padding:0 25px;min-width:100vw;font-family:var(--display);font-size:28px;font-weight:700;white-space:nowrap}


@keyframes tape-slide{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(min-width:1600px){.scene-title h2{font-size:39px}}
@media(max-width:700px){.scene-panel{min-height:435px}.scene-title{gap:9px}.scene-title h2{font-size:clamp(18px,5.1vw,34px)}.scene-title>span{font-size:13px;letter-spacing:0}.scene-top{margin-top:20px;margin-bottom:12px}.scene-invite{margin-top:12px;font-size:9px}.scene-stage{bottom:58px}.scene-bottom{font-size:7px;padding-inline:5%}.tape-copy{gap:28px;padding:0 14px;font-size:24px;min-width:900px}.tape-window{padding:13px 0}.ticker{padding:10px 0}}
@media(prefers-reduced-motion:reduce){.tape-track{animation:none;transform:none}.tape-window{overflow:auto;mask-image:none;-webkit-mask-image:none}.tape-copy{min-width:100%;flex-wrap:wrap;justify-content:center;gap:15px;width:100%;padding-inline:45px}.tape-copy:nth-child(2){display:none}.tape-track{width:100%}.wall-target{transition:none}}

/* A taller room and a single item system for all three jobs. */
.scene-stage{top:158px;bottom:48px;aspect-ratio:auto}
.scene-panel .scene-stage canvas{height:100%;width:100%;object-fit:contain}
.wall-target{cursor:pointer}.wall-target:hover,.wall-target:focus-visible{background:#ffd21c30}.wall-target span{display:none}
.scene-invite{min-height:32px}.scene-invite #play-hint{max-width:80%}
@media(max-width:700px){.scene-panel{min-height:480px}.scene-stage{top:137px;bottom:43px}.scene-invite{margin-top:9px;font-size:9px}.scene-bottom{font-size:7px;padding-block:15px}}
/* One bright brand yellow, with illustration carried through the full page. */
.logo svg{stroke:var(--yellow);stroke-width:5}.logo strong{background:var(--yellow);padding:5px 5px 6px;margin-top:4px;align-self:flex-start;font-size:49px;letter-spacing:-1.5px}.logo-dot{color:var(--ink)}
.ticker{background:var(--yellow);padding:0;isolation:isolate}.ticker:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(135deg,#171817 0 20px,transparent 20px 40px);opacity:.12;z-index:-1}
.tape-window{background:transparent;padding:24px 0;mask-image:none;-webkit-mask-image:none}.tape-copy{color:var(--ink)}
.services .section-heading h2 span,.process .section-heading h2 span{color:var(--ink);text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:8px;text-underline-offset:5px}
.service-detail{border-top:1px solid var(--line)}.service-detail:last-child{border-bottom:1px solid var(--line)}
.service-row{list-style:none;cursor:pointer;border:0;padding:27px 12px}.service-row::-webkit-details-marker{display:none}.service-row:last-child{border:0}
.service-row:focus-visible{outline:3px solid #a48500;outline-offset:-3px}.service-number{background:var(--yellow);color:var(--ink);width:34px;min-width:34px;height:34px;display:grid;place-items:center;padding:0;align-self:center;border-radius:50%}
.service-row:hover{padding-left:20px;background:#fff3bb}.service-detail[open]{background:#fff9e4}.service-detail[open] .service-icon{transform:rotate(45deg);background:var(--yellow);border-color:var(--yellow)}.service-icon{transition:transform .2s,background .2s}
.service-expanded{display:grid;grid-template-columns:170px 1fr;gap:35px;padding:5px 70px 35px}.service-expanded>svg{width:100%;height:auto;align-self:center}.service-expanded p{font-size:13px;line-height:1.8;max-width:650px;color:#535d49}.service-expanded ul{padding-left:18px;font-size:12px;line-height:1.9;margin:12px 0 22px}.service-quote{font-size:10px;font-weight:800;letter-spacing:.6px;border-bottom:2px solid #c5a300;padding-bottom:5px}
.process{background:#f5f2dd}.process>.eyebrow{display:inline-block;background:var(--yellow);padding:8px 12px;margin-bottom:25px}.steps{gap:28px;margin-top:45px}.steps article{padding:0;border:0}.step-art{position:relative;background:#fbfcf5;border:1px solid #d2dbc5;margin-bottom:24px;overflow:hidden}.step-art svg{width:100%;display:block;padding:18px 15px 5px;aspect-ratio:280/185}.step-badge{position:absolute;top:12px;left:14px;font:800 18px var(--display);background:var(--yellow);width:30px;height:30px;display:grid;place-items:center;border-radius:50%}.steps h3{margin-top:0}.steps p{max-width:none}
.art-phone{transform-origin:200px 140px;animation:phone-tilt 6s ease-in-out infinite}.art-tick{transform-origin:175px 121px;animation:tick-pop 6s ease-in-out infinite}.art-broom{transform-origin:91px 72px;animation:broom-sweep 4s ease-in-out infinite}
@keyframes phone-tilt{0%,70%,100%{transform:rotate(0)}80%{transform:rotate(-4deg)}90%{transform:rotate(3deg)}}
@keyframes tick-pop{0%,70%,100%{transform:scale(1)}82%{transform:scale(1.12)}}
@keyframes broom-sweep{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(7deg)}}
@media(max-width:700px){.logo strong{font-size:38px;padding:3px 5px 4px}.tape-window{padding:20px 0}.service-expanded{grid-template-columns:85px 1fr;padding:5px 12px 25px;gap:15px}.service-expanded p{font-size:12px}.service-expanded ul{font-size:11px}.service-row{gap:12px;padding-inline:0}.service-number{min-width:28px;width:28px;height:28px;font-size:10px}.service-quote{font-size:9px}.steps article{display:block}.step-art{margin-bottom:18px}.step-art svg{max-height:210px}.steps{gap:32px}.services .section-heading h2 span,.process .section-heading h2 span{text-decoration-thickness:5px}}
@media(prefers-reduced-motion:reduce){.art-phone,.art-tick,.art-broom{animation:none}.service-icon{transition:none}}

/* Muted black hazard tape, yellow stripe and lettering. */
.ticker{background:#282a26}.ticker:before{background:repeating-linear-gradient(135deg,transparent 0 25px,#ffd21c 25px 48px);opacity:.32}.tape-copy{color:#ffdf47}

/* Simple brand-yellow scrolling banner. */
.ticker{background:var(--yellow)}.ticker:before,.ticker:after{display:none}.tape-copy{color:var(--ink,#171817)}

.scene-title{display:flex;align-items:baseline;gap:18px}.scene-title h2{min-width:0}.scene-title #scene-number{flex-shrink:0;white-space:nowrap}

.scene-controls{display:flex;align-items:center;gap:15px}.scene-controls #join-crew{font-size:9px;background:none;border:0;padding:9px 0;color:var(--ink);font-weight:700}.scene-invite{padding-right:6%}
.wall-target.queued{background:#ffd21c1f;border-color:#b69517;box-shadow:inset 0 0 0 1px #ffd21c55}

/* Compact, scene-first hero with floating headings. */
body{max-width:1680px;margin-inline:auto}
.hero{min-height:610px}
.hero-copy{padding-top:38px;padding-bottom:34px}
.hero h1{font-size:clamp(72px,6.6vw,104px);margin-block:25px}
.scene-panel{background:#f4f6ef;min-height:610px;background-image:none}
.scene-top{position:absolute;inset:20px 5% auto;margin:0;z-index:4}
.scene-title{position:absolute;left:5%;right:5%;top:65px;padding:0;z-index:3;margin:0}
.scene-title h2{font-size:clamp(25px,2.3vw,36px);margin:0;line-height:1.05}
.scene-stage{position:absolute;inset:0;top:0;bottom:0;aspect-ratio:auto}
.scene-panel .scene-stage canvas{inset:0;bottom:0;left:0;transform:none;width:100%;height:100%;min-width:0;aspect-ratio:auto}
.scene-invite,.scene-bottom,.scene-progress,#scene-number{display:none}
@media(min-width:1680px){.hero{grid-template-columns:42% 58%}.hero-copy{padding-left:10%;padding-right:8%}}
@media(max-width:700px){.hero{min-height:0}.hero-copy{padding:30px 6%}.hero h1{font-size:clamp(72px,19vw,104px)}.scene-panel{min-height:350px}.scene-top{inset:18px 5% auto}.scene-title{top:63px}.scene-title h2{font-size:clamp(23px,5.8vw,32px)}.scene-controls{gap:10px}.scene-controls #join-crew{font-size:8px}.scene-stage{inset:0}}

/* Keep the crew and headline connected on compact screens. */
@media(min-width:701px) and (max-width:1100px){
 .hero,.scene-panel{min-height:500px}.hero-copy{padding:28px 6%}.hero h1{font-size:clamp(55px,7.1vw,76px);margin-block:22px}.hero-bottom p{margin-bottom:22px}.scene-title h2{font-size:25px}
}
@media(max-width:700px){
 .hero-copy{background:#f4f6ef;border-bottom:0;padding-bottom:20px}.hero h1{font-size:clamp(56px,14vw,82px);margin-block:22px}.hero-bottom p{margin-bottom:22px}.scene-panel{border:0;min-height:clamp(350px,80vw,510px)}.scene-title h2{font-size:clamp(23px,5vw,30px)}
}

/* Vector arrows retain the same appearance on mobile and desktop. */
.arrow-icon{display:inline-block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter;vertical-align:-.12em;flex-shrink:0}
.button .arrow-icon{width:20px;height:20px}.button>span{display:grid;place-items:center}.contact-mini .arrow-icon{width:48px;height:48px}
/* Compact contact form without shrinking mobile touch targets. */
.booking-panel{padding:26px 7%}.contact-copy{padding:28px 8%}.form-heading h2{margin:9px 0;font-size:38px}.demo-note{margin-bottom:17px}.booking-panel label{margin-bottom:12px}.booking-panel input,.booking-panel select,.booking-panel textarea{margin-top:6px;padding:10px 12px;min-height:42px}.booking-panel textarea{height:62px}.calendar-field{margin:3px 0 13px}.field-help{margin:5px 0 8px}.calendar-nav{margin-bottom:8px}.weekdays{margin-bottom:5px}.calendar-days{gap:3px}.calendar-days button{min-height:30px}.selected-day{margin-top:8px;padding:8px 10px}.form-fine-print{margin-top:9px}.contact-copy h1{font-size:clamp(52px,5.4vw,78px);margin:24px 0}.contact-mini{margin-top:30px}.booking-panel .submit{min-height:48px}.booking-panel .submit>span{min-height:48px}
@media(min-width:701px) and (max-height:850px){.header{padding-block:14px}.booking-panel{padding-block:18px}.contact-copy{padding-block:20px}.form-heading h2{font-size:33px}.booking-panel label{margin-bottom:9px}.calendar-days button{min-height:27px}.booking-panel textarea{height:50px}.form-heading .eyebrow{display:none}}
@media(max-width:700px){.contact-copy{padding:22px 6%}.contact-copy h1{font-size:clamp(40px,10vw,60px);margin:14px 0}.contact-copy h1 br{display:none}.contact-copy h1 br::after{content:' '}.contact-copy h1>span{display:block}.contact-copy>p:not(.eyebrow){margin-bottom:8px;line-height:1.5}.contact-phone{margin-top:13px;font-size:29px}.booking-panel{padding:24px 6%}.calendar-days button{min-height:42px}.calendar-nav button{width:44px;min-height:44px}.booking-panel input,.booking-panel select,.booking-panel textarea{min-height:44px;font-size:16px}.booking-panel textarea{height:70px}}

@media(min-width:701px){.header{padding-block:14px}.header .logo{width:105px}.header .logo svg{height:15px;width:90px}.header .logo>span{font-size:18px}.header .logo strong{font-size:40px}.booking-panel{padding-block:20px}.booking-panel .form-heading .eyebrow{display:none}.form-heading h2{margin-top:0}.booking-panel .demo-note{margin-bottom:12px}.booking-panel label{margin-bottom:10px}.booking-panel .calendar-field{margin-bottom:10px}.booking-panel textarea{height:50px}.selected-day{margin-top:5px;padding:6px 10px}.calendar-days button{min-height:28px}.booking-panel .form-fine-print{margin-top:6px}}

@media(min-width:701px){.booking-panel .form-heading h2{font-size:34px;margin-bottom:6px}.booking-panel input,.booking-panel select{min-height:40px;padding-block:9px}.booking-panel .field-help{margin-bottom:5px}.booking-panel .calendar-nav{margin-bottom:5px}}

/* Fill the available desktop height, restoring breathing room on taller screens. */
@media(min-width:701px){
 .contact-layout{align-items:stretch;min-height:calc(100svh - 130px)}
 .contact-copy{align-self:start}
 .booking-panel{display:flex;padding-block:clamp(20px,calc(20px + (100svh - 900px)*.06),40px)}
 #booking-form{flex:1;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
 .booking-panel label{margin-bottom:clamp(10px,calc(10px + (100svh - 900px)*.035),21px)}
 .booking-panel input,.booking-panel select{min-height:clamp(40px,calc(40px + (100svh - 900px)*.025),48px);padding-block:clamp(9px,calc(9px + (100svh - 900px)*.015),13px)}
 .booking-panel .form-heading h2{font-size:clamp(34px,calc(34px + (100svh - 900px)*.025),43px);margin-bottom:clamp(6px,calc(6px + (100svh - 900px)*.025),15px)}
 .booking-panel .demo-note{margin-bottom:clamp(12px,calc(12px + (100svh - 900px)*.04),25px)}
 .calendar-days button{min-height:clamp(28px,calc(28px + (100svh - 900px)*.04),42px)}
 .booking-panel textarea{height:clamp(50px,calc(50px + (100svh - 900px)*.07),76px)}
 .selected-day{padding-block:clamp(6px,calc(6px + (100svh - 900px)*.018),12px)}
 .contact-copy{padding-top:clamp(28px,calc(28px + (100svh - 900px)*.04),44px)}
 .contact-copy h1{margin-block:clamp(24px,calc(24px + (100svh - 900px)*.025),34px)}
}
@media(min-width:701px) and (min-height:1050px){.booking-panel .form-heading .eyebrow{display:block;margin-bottom:13px}.booking-panel .calendar-nav{margin-bottom:12px}.booking-panel .field-help{margin-bottom:12px}.booking-panel .calendar-field{margin-bottom:18px}}

.contact-email{display:inline-block;margin:8px 0 2px;font-size:clamp(14px,1.4vw,19px);font-weight:600;text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere}.email-setup-note{font-size:10px!important;margin-top:6px}

/* Submission feedback is separate from transport and email configuration. */
.form-message{padding:15px 17px;margin:10px 0 16px;border-left:3px solid #c7a419;background:#fff8d9;font-size:13px;line-height:1.5}
.form-message strong{display:block;font-size:15px}.form-message p{margin:5px 0 0}.form-message-error{border-color:#a4573e;background:#f7eee5;color:#49382e}.form-message-links{display:flex;gap:22px;margin-top:10px;font-size:12px;font-weight:700}.form-message-links a{text-decoration:underline;text-underline-offset:3px}.form-message-pending{display:flex;align-items:center;gap:12px}.form-message-pending:before{content:'';width:15px;height:15px;flex-shrink:0;border:2px solid #d6c882;border-top-color:#333b2e;border-radius:50%;animation:request-spin .8s linear infinite}.submit:disabled{cursor:wait;opacity:.75;transform:none}.submit b{font:inherit}.confirmation-note{padding:13px 15px;background:#fff5cc;border-left:3px solid var(--yellow)}
@keyframes request-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.form-message-pending:before{animation:none}}

.tape-window{mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent)}

/* Contact methods and a shared, compact footer. */
.contact-direct{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.contact-direct h2{font-size:30px;letter-spacing:-.3px;margin:0 0 8px}
.contact-direct>p{font-size:12px;color:var(--muted);line-height:1.6;margin:0 0 18px}
.contact-method{position:relative;display:grid;gap:7px;padding:17px 40px 17px 17px;background:#eeeee3;border-left:3px solid var(--yellow);margin-top:9px;min-width:0}
.contact-method-label{font-size:9px;font-weight:700;letter-spacing:1.2px;color:var(--muted)}

.contact-method strong{overflow-wrap:anywhere}
.contact-method .arrow-icon{position:absolute;right:16px;top:50%;width:17px;height:17px;transform:translateY(-50%)}
.contact-method:hover{background:#fff1b5}
.site-footer{display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:start;padding:36px 4% 20px;gap:24px;background:var(--paper)}
.footer-identity p{font-size:13px;line-height:1.5;color:var(--muted);margin:14px 0 0}
.footer-nav{display:flex;flex-wrap:wrap;gap:18px;padding-top:5px;font-size:12px}
.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-contact>span{font-size:9px;font-weight:700;letter-spacing:1.2px;color:var(--muted)}
.footer-contact a{font-size:13px;overflow-wrap:anywhere}
.footer-contact a:nth-child(2){font-size:21px;font-family:var(--display);font-weight:600}
.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.site-footer .footer-bottom{grid-column:1/-1;margin:0;padding-top:17px;flex-direction:row;font-size:10px}
@media(max-width:700px){
 .contact-direct{margin-top:22px;padding-top:18px}
 .contact-direct h2{font-size:27px}
 .contact-direct>p{margin-bottom:12px}
 .contact-method{padding-block:13px}

 .site-footer{grid-template-columns:1fr 1fr;padding:28px 6% 20px;gap:24px 18px}
 .footer-identity{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:15px}
 .footer-identity p{margin:0;font-size:11px}
 .footer-nav{flex-direction:column;gap:15px}
 .footer-contact a{font-size:11px}
 .footer-contact a:nth-child(2){font-size:20px}
 .site-footer .footer-bottom{font-size:9px}
}

.final-cta .button>span{background:#fff;color:var(--ink)}

.contact-method strong,.contact-method-email strong{display:flex;align-items:center;gap:11px;font-family:inherit;font-size:clamp(13px,1.2vw,16px);font-weight:600;line-height:1.5}
.contact-symbol{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.footer-contact{align-items:flex-end;text-align:right}
.footer-contact a,.footer-contact a:nth-child(2){display:flex;align-items:center;gap:9px;font-family:inherit;font-size:13px;font-weight:500;line-height:1.5}
.footer-contact .contact-symbol{width:16px;height:16px;flex-basis:16px}
.footer-nav{justify-content:center;align-self:end;padding:0 0 9px}
@media(max-width:700px){
 .contact-method strong,.contact-method-email strong{font-size:14px;gap:9px}
 .footer-nav{align-self:center;align-items:flex-start;padding:0}
 .footer-contact a,.footer-contact a:nth-child(2){font-size:11px;gap:6px}
 .footer-contact .contact-symbol{width:13px;height:13px;flex-basis:13px}
}

/* Taller job notes when the viewport has room; retain native vertical resizing. */
.booking-panel textarea{height:clamp(70px,calc(100dvh - 1010px),200px);min-height:60px;resize:vertical;font-size:14px;line-height:1.6}
@media(max-width:700px){.booking-panel textarea{height:110px;font-size:16px}}

/* Full-width sections, centred content. Backgrounds are real section fills. */
body{max-width:none}
.hero,.services,.contact-layout,.site-footer{max-width:1680px;margin-inline:auto}
.header{padding-inline:max(4%,calc((100% - 1680px)/2 + 67.2px))}
.quote-strip,.process{padding-inline:max(7%,calc((100% - 1680px)/2 + 117.6px))}
@media(max-width:1000px){.quote-strip,.process{padding-inline:5%}}
@media(max-width:700px){.header{padding-inline:5%}.quote-strip,.process{padding-inline:6%}}

.contact-symbol{fill:currentColor;stroke:none}
/* Phone and email use exactly the same type and row geometry. */
.contact-direct .contact-method{padding:14px 40px 14px 17px;min-height:68px;gap:6px;align-content:center}
.contact-direct .contact-method strong{font-family:'DM Sans',Arial,sans-serif;font-size:15px;font-weight:600;line-height:22px;letter-spacing:0;font-variant-numeric:normal}
@media(max-width:700px){.contact-direct .contact-method{padding-block:13px;min-height:70px}.contact-direct .contact-method strong{font-size:14px;line-height:22px}}

.contact-direct .contact-method-label{font-size:9px;line-height:12px}

