:root{--ink:#0b0d11;--panel:#15191e;--soft:#242a30;--cream:#f3f1ec;--white:#fff;--blue:#0757e8;--line:rgba(255,255,255,.19);--ease:cubic-bezier(.22,1,.36,1);--container:1560px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ink);color:#fff;font-family:'Instrument Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;overflow-x:hidden}body.menu-open{overflow:hidden}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}p{line-height:1.7}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Instrument Sans','Arial Black',Arial,sans-serif}::selection{background:var(--blue);color:white}.skip{position:fixed;top:-120px;left:15px;z-index:9999;background:#fff;color:#000;padding:12px}.skip:focus{top:15px}.shell{width:min(calc(100% - 9vw),var(--container));margin-inline:auto}.small-text{font-size:13px;line-height:1.5}.muted{color:#8d929c}.on-light{color:#0c1014}.site-header{height:92px;position:fixed;top:0;left:0;right:0;z-index:100;background:linear-gradient(180deg,rgba(3,6,10,.7),rgba(3,6,10,0));transition:background .35s,height .35s,border .35s}.site-header.scrolled,.site-header.mobile-shown{height:78px;background:rgba(9,12,17,.97);border-bottom:1px solid rgba(255,255,255,.10);backdrop-filter:blur(18px)}.header-inner{height:100%;display:flex;align-items:center;gap:28px;justify-content:space-between}.brand{display:flex;align-items:center;flex-shrink:0;width:190px}.brand img{width:190px;height:auto}.main-nav{display:flex;gap:35px;align-items:center;margin-left:auto}.main-nav a{font-size:13px;font-weight:550;letter-spacing:.015em;color:#d1d2d4;transition:color .2s;position:relative}.main-nav a:hover,.main-nav a[aria-current=page]{color:white}.main-nav a::after{content:"";position:absolute;bottom:-10px;left:0;height:1px;width:0;background:#fff;transition:width .35s var(--ease)}.main-nav a:hover::after,.main-nav a[aria-current=page]::after{width:100%}.header-cta{background:#fff;color:#0c1014;font-size:12px;font-weight:700;letter-spacing:.025em;padding:15px 21px;white-space:nowrap;transition:background .25s,color .25s,transform .25s}.header-cta:hover{background:#0a5aef;color:#fff;transform:translateY(-1px)}.burger{display:none;border:0;background:transparent;width:46px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:6px;z-index:105}.burger span{height:1px;background:#fff;width:25px;transition:transform .3s,opacity .2s}.burger[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.burger[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-menu{position:fixed;inset:0;z-index:99;background:#0b0d11;padding:130px 7vw 40px;display:flex;flex-direction:column;gap:0}.mobile-menu[hidden]{display:none}.mobile-menu a{font-family:'Instrument Sans',sans-serif;font-size:clamp(32px,8vw,58px);font-weight:700;letter-spacing:-.025em;border-bottom:1px solid #333840;padding:16px 0}.mobile-menu .menu-location{font-family:'Instrument Sans',sans-serif;font-size:13px;color:#9ca4b2;margin-top:auto;border:0;letter-spacing:0}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:51px;padding:15px 25px;font-size:13px;font-weight:650;letter-spacing:.01em;border:1px solid transparent;transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease)}.btn:hover{transform:translateY(-2px)}.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:#0047c8}.btn-light{background:#fff;color:#0b0d11}.btn-light:hover{background:#e5e7ea}.btn-outline{border-color:rgba(255,255,255,.55);color:#fff}.btn-outline:hover{background:#fff;color:#0b0d11}.btn-dark{background:#0c1014;color:#fff}.btn-dark:hover{background:#0a55e3}.eyeline{height:1px;background:rgba(10,15,20,.17);width:100%}.eyeline.light{background:rgba(255,255,255,.22)}.section-title{font-family:'Instrument Sans',sans-serif;font-weight:700;font-size:clamp(40px,6.3vw,103px);line-height:1.03;letter-spacing:-.04em}.subcopy{font-size:clamp(16px,1.4vw,20px);line-height:1.65}.section-pad{padding:clamp(85px,11vw,180px) 0}.section-kicker{display:none!important}
/* HERO */
.hero{min-height:805px;height:min(900px,100svh);height:max(760px,100svh);position:relative;isolation:isolate;overflow:hidden;background:#090b0e}.hero-photo{position:absolute;inset:0 0 0 34%;z-index:-3;overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 53%;filter:saturate(.82) contrast(1.09);transform:scale(1.065);transition:transform 1.8s var(--ease)}.loaded .hero-photo img{transform:scale(1)}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#090b0e 0%,rgba(9,11,14,.86) 10%,rgba(9,11,14,.4) 37%,rgba(9,11,14,.10) 72%,rgba(9,11,14,.3)),linear-gradient(0deg,#090b0e 0,transparent 33%,rgba(9,11,14,.35) 100%)}.hero-copy{height:100%;display:flex;flex-direction:column;justify-content:center;padding-top:80px;position:relative}.hero h1{font-size:clamp(76px,10.4vw,174px);font-weight:800;letter-spacing:-.042em;line-height:.93;max-width:1050px;margin:0 0 39px;text-transform:uppercase}.hero h1 .line{display:block;overflow:hidden;padding-right:8px;padding-bottom:.085em;margin-bottom:-.085em}.hero h1 .line span{display:block;transform:translateY(110%);transition:transform 1.25s var(--ease)}.loaded .hero h1 .line span{transform:translateY(0)}.hero h1 .line:nth-child(2) span{transition-delay:.12s}.hero h1 .line:nth-child(3) span{transition-delay:.24s}.hero-under{display:flex;align-items:end;gap:7vw;margin-top:4px;opacity:0;transition:opacity 1.1s .5s}.loaded .hero-under{opacity:1}.hero-under p{max-width:370px;margin:0;color:#d6d8da;font-size:17px;line-height:1.65}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-foot{position:absolute;bottom:38px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.25);padding-top:21px;color:#cbd0d9;font-size:12px;letter-spacing:.025em}.hero-foot span:last-child{color:#a3a8b0}.side-tag{position:absolute;right:3vw;top:49%;writing-mode:vertical-rl;transform:translateY(-50%);font-size:11px;letter-spacing:.17em;color:#d2d7e4}.hero-blue-slit{position:absolute;left:0;top:40%;height:64px;width:4px;background:var(--blue)}
/* INTRO */
.intro{background:var(--cream);color:#0d1013}.intro-grid{display:grid;grid-template-columns:1.45fr .65fr;gap:8vw;align-items:end}.intro h2{font-size:clamp(42px,6vw,92px);letter-spacing:-.085em;line-height:1.05;margin:0;max-width:930px}.intro h2 em{font-style:normal;color:#035be8}.intro p{font-size:18px;line-height:1.7;color:#4a4c52;margin:0}.intro-rule{margin-top:70px;height:1px;background:#cacac6}
/* LIVE SERVICE EDITORIAL */
.services-stage{background:#11161c;color:#fff;padding:clamp(85px,10vw,155px) 0}.stage-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:58px}.stage-head h2{margin:0}.stage-head p{max-width:345px;color:#a9b0bc;margin:0}.stage-body{display:grid;grid-template-columns:.94fr 1.06fr;min-height:620px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-choices{display:flex;flex-direction:column;justify-content:center}.service-choice{appearance:none;border:0;border-bottom:1px solid rgba(255,255,255,.17);background:none;color:#737c89;display:block;width:100%;text-align:left;padding:37px 10px 37px 0;transition:color .35s,padding .35s;position:relative}.service-choice:last-child{border-bottom:0}.service-choice h3{font-size:clamp(36px,4.2vw,68px);letter-spacing:-.036em;line-height:1.1;margin:0 0 13px;transition:color .35s}.service-choice p{color:#b4bac3;max-width:360px;font-size:15px;line-height:1.65;margin:0;max-height:0;opacity:0;overflow:hidden;transition:max-height .45s var(--ease),opacity .45s}.service-choice.active{color:#fff;padding-left:22px}.service-choice.active:before{content:"";position:absolute;left:0;top:39px;width:3px;height:53px;background:var(--blue)}.service-choice.active p{max-height:130px;opacity:1}.stage-visual{min-height:620px;position:relative;overflow:hidden;background:#252a32}.stage-visual .service-image{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .75s var(--ease),transform 1.3s var(--ease);filter:saturate(.88)}.stage-visual .service-image.is-active{opacity:1;transform:scale(1)}.stage-visual:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.06) 50%,rgba(0,0,0,.58))}.visual-caption{position:absolute;bottom:30px;left:35px;z-index:2;font-size:13px;color:#fff;letter-spacing:.035em}.stage-footer{display:flex;justify-content:space-between;align-items:center;padding-top:38px;gap:25px}.stage-footer p{font-size:15px;color:#a9b0bc;margin:0}.text-link{display:inline-flex;gap:10px;align-items:center;padding-bottom:8px;border-bottom:1px solid currentColor;font-weight:650;font-size:13px;transition:color .25s}.text-link:hover{color:#0757e8}
/* BLUE BREAK */
.blue-break{background:#0452dc;color:#fff;overflow:hidden}.blue-inner{padding:clamp(82px,11vw,165px) 0;display:grid;grid-template-columns:1fr auto;align-items:end;gap:45px}.blue-inner h2{font-size:clamp(59px,9.4vw,150px);letter-spacing:-.043em;line-height:.98;max-width:1060px;margin:0}.blue-inner .btn{white-space:nowrap}.blue-break .fineprint{display:block;margin-top:40px;border-top:1px solid rgba(255,255,255,.35);padding-top:19px;opacity:.83;font-size:12px}
/* GALLERY */
.work{background:var(--cream);color:#11151a;padding:clamp(95px,10vw,155px) 0}.work-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:50px}.work-head h2{margin:0}.work-head p{margin:0;max-width:340px;color:#636970}.gallery-grid{display:grid;grid-template-columns:1.35fr .85fr .85fr;grid-template-rows:310px 310px;gap:12px}.work-card{padding:0;border:0;position:relative;overflow:hidden;background:#d2d2cf;text-align:left;color:white;cursor:zoom-in}.work-card:first-child{grid-row:span 2}.work-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .45s;filter:saturate(.9)}.work-card:hover img{transform:scale(1.045);filter:saturate(1)}.work-card:after{content:"";inset:30% 0 0;position:absolute;background:linear-gradient(transparent,rgba(0,0,0,.55))}.work-card span{position:absolute;bottom:22px;left:24px;z-index:1;font-size:13px;font-weight:650}.work-notes{border-top:1px solid #d1d2cd;margin-top:28px;padding-top:19px;display:flex;justify-content:space-between;gap:22px;color:#6b7176;font-size:13px}
/* REVIEWS */
.reviews{background:#161b22;color:#fff;padding:clamp(90px,10vw,150px) 0}.reviews-grid{display:grid;grid-template-columns:.87fr 1.13fr;gap:8vw;align-items:start}.reviews h2{max-width:620px;margin-bottom:26px}.reviews p{color:#aeb5bd;max-width:430px;margin:0}.review-holder{border-top:1px solid rgba(255,255,255,.28);min-height:260px}.review-card{padding:30px 0 33px;border-bottom:1px solid rgba(255,255,255,.16)}.review-card .stars{color:#76a5ff;letter-spacing:3px;font-size:16px}.review-card blockquote{margin:18px 0 24px;font-size:clamp(20px,2.1vw,30px);font-weight:500;line-height:1.4;letter-spacing:-.017em}.review-card .review-person{font-size:13px;color:#fff}.review-card .review-meta{font-size:12px;color:#8f9aaa;margin-top:5px}.no-reviews{padding:42px 0 34px}.no-reviews strong{font-weight:600;display:block;margin-bottom:12px;font-size:21px}.no-reviews p{color:#adb4c0;max-width:410px}.google-location{font-size:12px;color:#9da8bb;border-top:1px solid rgba(255,255,255,.16);padding-top:18px;margin-top:10px}.google-location a{text-decoration:underline;text-underline-offset:3px}
/* QUOTE */
.quote{background:#e9e8e3;color:#0e1216;padding:clamp(90px,10vw,155px) 0;scroll-margin-top:78px}.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:start}.quote-intro{position:sticky;top:120px}.quote-intro h2{margin-bottom:34px}.quote-intro p{font-size:18px;color:#5c6168;max-width:410px}.quote-form{border-top:1px solid #979da3}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}.quote-form label{font-size:13px;font-weight:650;color:#353b43;display:block;margin-top:29px}.quote-form input,.quote-form select,.quote-form textarea{display:block;appearance:none;border:0;border-bottom:1px solid #afb3b4;background:transparent;outline:0;border-radius:0;width:100%;padding:15px 0 17px;color:#0a0d12;font-size:16px;transition:border-color .25s;min-height:55px}.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:#0757e8;box-shadow:0 1px 0 #0757e8}.quote-form input::placeholder,.quote-form textarea::placeholder{color:#8a8d91}.quote-form textarea{min-height:98px;resize:vertical}.quote-form select{cursor:pointer}.form-submit{margin-top:32px;width:100%}.form-caption{font-size:12px;color:#656a70;margin:14px 0 0}.quote-result{background:#fff;border:1px solid #c4c7c9;margin-top:25px;padding:22px}.quote-result[hidden]{display:none}.quote-result h3{font-size:20px;letter-spacing:-.014em}.quote-result pre{font-family:'Instrument Sans',sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;color:#36393e;line-height:1.6}.result-actions{display:flex;flex-wrap:wrap;gap:8px}.result-actions .btn{font-size:12px}
/* FOOTER */
.footer{background:#080b0f;color:#fff;padding:80px 0 30px}.footer-top{display:grid;grid-template-columns:1.4fr .6fr .6fr;gap:40px;padding-bottom:90px}.footer-brand{width:265px;max-width:100%;margin-bottom:24px}.footer-top p{max-width:380px;color:#a6abb4;margin:0}.footer-label{font-size:12px;color:#828a95;font-weight:500;margin-bottom:18px}.footer-links{display:flex;flex-direction:column;gap:13px}.footer-links a,.footer-links span{font-size:14px;color:#e0e3e6}.footer-links a:hover{color:#7ca6ff}.footer-large{border-top:1px solid rgba(255,255,255,.18);padding-top:34px;overflow:hidden}.footer-large strong{display:block;font-size:clamp(50px,11.5vw,188px);line-height:.91;letter-spacing:-.05em;font-family:'Instrument Sans',sans-serif;font-weight:800;white-space:nowrap;margin:0;opacity:.12}.footer-bottom{display:flex;justify-content:space-between;gap:18px;color:#7d858e;font-size:12px;border-top:1px solid rgba(255,255,255,.12);padding-top:24px;margin-top:30px}
/* SERVICES PAGE */
.page-hero{padding:190px 0 105px;min-height:575px;background:#0c1016;position:relative;overflow:hidden}.page-hero .page-photo{position:absolute;inset:0 0 0 51%;opacity:.55}.page-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 54%}.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c1016 21%,rgba(12,16,22,.9) 41%,rgba(12,16,22,.2) 100%);pointer-events:none}.page-hero .shell{position:relative;z-index:1}.page-hero h1{font-size:clamp(72px,10vw,160px);line-height:.95;letter-spacing:-.038em;max-width:1020px;margin-bottom:35px}.page-hero p{max-width:510px;font-size:18px;color:#c5cbd0}.page-hero .page-location{font-size:12px;letter-spacing:.1em;color:#a6b0c1;margin-top:45px}.services-nav{display:flex;gap:0;background:#fff;color:#111;position:sticky;top:78px;z-index:40;border-bottom:1px solid #d1d4d5}.services-nav a{flex:1;padding:20px 10px;text-align:center;font-size:13px;font-weight:700;border-right:1px solid #e5e5e5;transition:background .2s,color .2s}.services-nav a:last-child{border:0}.services-nav a:hover,.services-nav a.active{background:#0b58e8;color:#fff}.service-detail{background:var(--cream);color:#15181c;padding:clamp(90px,10vw,160px) 0;scroll-margin-top:135px}.service-detail#wraps{background:#11161b;color:#fff}.detail-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;align-items:center}.service-detail#wraps .detail-grid{grid-template-columns:1.1fr .9fr}.service-detail#wraps .detail-photo{order:-1}.detail-copy h2{font-size:clamp(51px,6.4vw,103px);line-height:1.01;letter-spacing:-.037em;margin-bottom:30px}.detail-copy>p{font-size:18px;color:#4c5660;max-width:450px;margin-bottom:28px}.service-detail#wraps .detail-copy>p{color:#b6bfc7}.detail-photo{height:660px;max-height:70vw;overflow:hidden;background:#a7b2b8}.detail-photo img{width:100%;height:100%;object-fit:cover}.detail-notes{border-top:1px solid rgba(0,0,0,.25);margin:30px 0}.service-detail#wraps .detail-notes{border-color:rgba(255,255,255,.24)}.detail-notes p{font-size:14px;color:#525c65;border-bottom:1px solid rgba(0,0,0,.14);padding:16px 0;margin:0;line-height:1.5}.service-detail#wraps .detail-notes p{color:#b0bac4;border-color:rgba(255,255,255,.14)}.detail-notes strong{color:inherit;font-weight:700}.faq{background:#e5e6e3;color:#0d1114;padding:100px 0}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.faq h2{margin:0}.faq details{border-top:1px solid #9ba0a5;padding:21px 0}.faq details:last-child{border-bottom:1px solid #9ba0a5}.faq summary{cursor:pointer;font-weight:700;font-size:17px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-weight:400;font-size:23px;color:#0757e8}.faq details[open] summary:after{content:'−'}.faq details p{color:#4d565d;max-width:530px;margin:14px 0 0;font-size:15px}
/* PRIVACY */
.privacy{background:var(--cream);color:#161a20;padding:185px 0 120px;min-height:75vh}.privacy .shell{max-width:860px}.privacy h1{font-size:clamp(64px,8vw,106px);letter-spacing:-.043em;line-height:1.03}.privacy h2{margin-top:50px;font-size:25px;letter-spacing:-.045em}.privacy p,.privacy li{font-size:16px;color:#444c53}
/* DIALOG */
.photo-dialog{background:#0a0d12;border:1px solid #252d38;color:white;padding:0;max-width:min(1000px,94vw);max-height:93vh}.photo-dialog::backdrop{background:rgba(0,0,0,.89)}.dialog-inner{padding:15px}.dialog-inner img{height:min(78vh,780px);width:auto;max-width:88vw;object-fit:contain;margin:auto}.dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;color:#a3acb7;padding:15px 5px 0}.dialog-close{background:#fff;border:0;padding:11px 20px;color:#111;font-weight:700;font-size:12px}
/* REFINED REVEAL */
.js .js-reveal{opacity:0;clip-path:inset(0 0 9% 0);transition:opacity .85s var(--ease),clip-path 1.1s var(--ease)}.js .js-reveal.visible{opacity:1;clip-path:inset(0)}.js .line-draw{position:relative}.js .line-draw:after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:currentColor;opacity:.25;transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease)}.js .line-draw.visible:after{transform:scaleX(1)}
@media(max-width:1190px){.shell{width:min(calc(100% - 8vw),var(--container))}.hero h1{font-size:clamp(76px,10.8vw,128px)}.stage-body{min-height:540px}.stage-visual{min-height:540px}.stage-head h2{font-size:clamp(44px,5.5vw,80px)}.gallery-grid{grid-template-rows:250px 250px}.intro-grid{gap:5vw}.blue-inner{grid-template-columns:1fr;align-items:start}.blue-inner .btn{justify-self:start}.detail-photo{height:570px}.detail-grid,.service-detail#wraps .detail-grid{gap:5vw}}
@media(max-width:900px){.main-nav,.header-cta{display:none}.burger{display:flex}.site-header{height:78px}.brand,.brand img{width:175px}.hero{min-height:710px;height:92svh;max-height:900px}.hero-photo{inset:0}.hero-photo img{object-position:55% 45%}.hero-photo:after{background:linear-gradient(90deg,rgba(7,9,12,.75),rgba(7,9,12,.2)),linear-gradient(0deg,#080b0f 4%,rgba(8,11,15,.1) 67%,rgba(8,11,15,.35))}.hero h1{font-size:clamp(68px,11.1vw,110px)}.hero-under{flex-direction:column;align-items:start;gap:22px}.hero-under p{max-width:510px}.side-tag{display:none}.intro-grid,.reviews-grid,.quote-grid,.faq-grid{grid-template-columns:1fr;gap:35px}.intro-grid p{max-width:620px}.quote-intro{position:static}.stage-body{grid-template-columns:1fr;min-height:auto}.service-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:15px 0}.service-choice,.service-choice.active{padding:22px 5px}.service-choice.active:before{top:auto;bottom:0;width:100%;height:2px}.service-choice h3{font-size:clamp(20px,3.2vw,36px);margin:0}.service-choice p{display:none}.stage-visual{min-height:560px}.detail-grid,.service-detail#wraps .detail-grid{grid-template-columns:1fr;gap:45px}.service-detail#wraps .detail-photo{order:0}.detail-photo{height:590px;max-height:none}.work-head{align-items:start}.footer-top{grid-template-columns:1.2fr 1fr;gap:35px}.footer-top > :first-child{grid-column:span 2}.page-hero{min-height:510px}.page-hero h1{font-size:clamp(65px,9.2vw,100px)}.services-nav{top:78px}}
@media(max-width:640px){.shell{width:calc(100% - 36px)}.site-header,.site-header.scrolled{height:73px}.brand,.brand img{width:162px}.hero{min-height:695px;height:96svh;max-height:820px}.hero-photo img{object-position:53% 50%}.hero-photo:after{background:linear-gradient(0deg,#090b0e 0%,rgba(9,11,14,.44) 62%,rgba(9,11,14,.42)),linear-gradient(90deg,rgba(9,11,14,.48),rgba(9,11,14,.12))}.hero-copy{justify-content:end;padding-top:80px;padding-bottom:112px}.hero h1{font-size:clamp(65px,13.1vw,87px);line-height:.97;margin-bottom:19px}.hero-under p{font-size:14px;max-width:320px;line-height:1.6}.hero-under{gap:16px}.hero-actions{gap:8px}.hero-actions .btn{padding:13px 18px;min-height:46px;font-size:11px}.hero-foot{bottom:20px;font-size:10px;padding-top:16px}.hero-foot span:last-child{display:none}.hero-blue-slit{height:40px;top:36%}.section-title{font-size:clamp(46px,11vw,72px)}.intro h2{font-size:clamp(45px,10.5vw,72px)}.intro p{font-size:16px}.intro-rule{margin-top:42px}.stage-head,.work-head{flex-direction:column;align-items:start;gap:22px;margin-bottom:35px}.stage-head p,.work-head p{font-size:15px}.service-choices{grid-template-columns:1fr;gap:0;padding:0}.service-choice,.service-choice.active{padding:18px 4px;border-bottom:1px solid rgba(255,255,255,.2)}.service-choice.active{padding-left:17px}.service-choice.active:before{width:3px;height:30px;bottom:auto;top:17px}.service-choice h3{font-size:33px}.service-choice.active p{display:block;font-size:13px;margin-top:9px;max-height:100px}.stage-visual{min-height:440px}.visual-caption{left:18px;bottom:17px;font-size:11px}.stage-footer{flex-direction:column;align-items:start}.blue-inner h2{font-size:clamp(55px,12vw,85px)}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:340px 185px 185px;gap:8px}.work-card:first-child{grid-column:span 2;grid-row:span 1}.work-card span{left:14px;bottom:15px;font-size:11px}.work-notes{flex-direction:column;font-size:12px}.reviews-grid{gap:30px}.reviews h2{font-size:61px}.field-row{grid-template-columns:1fr;gap:0}.quote-intro h2{font-size:60px}.quote-intro p{font-size:16px}.footer-top{grid-template-columns:1fr 1fr;gap:45px 10px;padding-bottom:70px}.footer-top> :first-child{grid-column:span 2}.footer-large strong{font-size:12vw}.footer-bottom{flex-direction:column;gap:10px}.page-hero{min-height:575px;padding:155px 0 75px}.page-hero h1{font-size:clamp(64px,13vw,90px)}.page-hero p{font-size:16px}.page-hero .page-photo{inset:0}.page-hero:after{background:linear-gradient(90deg,rgba(12,16,22,.8),rgba(12,16,22,.3)),linear-gradient(0deg,#0c1016,transparent 85%)}.services-nav{top:73px}.services-nav a{font-size:11px;padding:17px 3px}.detail-copy h2{font-size:clamp(62px,12vw,84px)}.detail-copy>p{font-size:16px}.detail-photo{height:440px}.faq{padding:72px 0}.faq summary{font-size:15px}.faq details p{font-size:14px}.privacy{padding:155px 0 75px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.hero h1 .line span{transform:none!important}.hero-under{opacity:1!important}.hero-photo img{transform:none!important}.js .js-reveal{opacity:1!important;clip-path:none!important}}

/* V7 — editorial design system. React Bits-inspired behavior, implemented natively. */
:root{--ink:#0a0d12;--cream:#f4f3ef;--blue:#0757e8;--ease:cubic-bezier(.22,1,.36,1);--container:1540px}
html{scroll-padding-top:93px}
body{font-family:'Instrument Sans','Helvetica Neue',Arial,sans-serif;letter-spacing:.006em}
h1,h2,h3{font-family:'Instrument Sans','Helvetica Neue',Arial,sans-serif;font-weight:650;letter-spacing:-.036em}
p{line-height:1.65}
.site-header{height:84px}
.site-header.scrolled,.site-header.mobile-shown{height:74px;background:rgba(8,11,15,.97)}
.main-nav a{font-size:14px;font-weight:500;letter-spacing:.025em}
.main-nav a::after{bottom:-9px}
.header-cta{font-size:12px;font-weight:650;letter-spacing:.045em;padding:15px 23px}
.header-cta:hover{transform:none}
.btn{min-height:52px;font-size:13px;font-weight:650;letter-spacing:.045em;transition:background .25s ease,border-color .25s ease,color .25s ease}
.btn:hover{transform:none}
.btn:focus-visible,.header-cta:focus-visible,.main-nav a:focus-visible,.service-choice:focus-visible,.work-card:focus-visible,.mobile-menu a:focus-visible{outline:2px solid #81aaff;outline-offset:4px}
.main-nav a[hidden],.mobile-menu a[hidden],.reviews[hidden]{display:none!important}
.section-title{font-size:clamp(46px,6.1vw,91px);font-weight:650;letter-spacing:-.043em;line-height:1.04;text-transform:none}
.hero{height:max(750px,94svh);max-height:1050px}
.hero-photo{inset:0 0 0 33%}
.hero-photo img{filter:saturate(.86) contrast(1.04);transform:none!important;transition:filter .95s ease}
.loaded .hero-photo img{filter:saturate(.92) contrast(1.03)}
.hero h1{font-size:clamp(78px,8.9vw,140px);font-weight:650;letter-spacing:-.049em;line-height:1.02;text-transform:none;max-width:1200px;margin-bottom:28px}
.hero h1 .line{padding-right:.09em;padding-bottom:.11em;margin-bottom:-.11em}
.hero h1 .line span{transition-duration:1.08s}
.hero-under{gap:6vw;align-items:center}
.hero-under p{max-width:420px;font-size:18px;line-height:1.6;letter-spacing:.004em}
.hero-actions{gap:10px}
.hero-copy{padding-top:70px;padding-bottom:25px}
.hero .hero-photo:after{background:linear-gradient(90deg,#080b10 0%,rgba(8,11,16,.94) 6%,rgba(8,11,16,.43) 42%,rgba(8,11,16,.08) 80%),linear-gradient(0deg,rgba(8,11,16,.50),transparent 42%,rgba(8,11,16,.25))}
.intro{padding:clamp(115px,13vw,205px) 0;background:#f4f3ef}
.intro-grid{gap:7vw}
.intro-grid h2{font-size:clamp(51px,6.5vw,104px);font-weight:600;line-height:1.08;letter-spacing:-.043em;text-transform:none}
.intro-grid p{font-size:clamp(17px,1.35vw,20px);line-height:1.8;max-width:440px;color:#555a60}
.services-stage{padding:clamp(110px,11vw,165px) 0;background:#10151b}
.stage-head{align-items:end}
.stage-head h2{font-size:clamp(58px,6.7vw,105px);line-height:1.06;letter-spacing:-.043em;text-transform:none;font-weight:600}
.stage-head p{font-size:16px;line-height:1.75;max-width:370px}
.stage-body{border-bottom:0;grid-template-columns:.88fr 1.12fr;min-height:625px}
.service-choice{padding:35px 25px 35px 0;transition:color .22s ease,padding .4s var(--ease)}
.service-choice h3{font-weight:600;letter-spacing:-.041em;font-size:clamp(35px,4vw,63px)}
.service-choice p{font-size:16px;color:#c9cdd2;line-height:1.65}
.service-choice.active{padding-left:26px}
.service-choice.active:before{height:34px;top:40px;width:2px}
.stage-visual{min-height:625px}
.stage-visual .service-image,.stage-visual .service-image.is-active{transform:none!important;transition:opacity .7s var(--ease);filter:saturate(.9)}
.stage-visual:after{background:linear-gradient(180deg,transparent 75%,rgba(0,0,0,.16))}
.stage-footer{padding-top:29px;justify-content:flex-end}
.text-link{font-weight:600;letter-spacing:.025em;font-size:14px}
.blue-break{background:#0757e8}
.blue-inner{padding:clamp(110px,12vw,185px) 0}
.blue-inner h2{font-size:clamp(65px,9.3vw,148px);font-weight:600;letter-spacing:-.054em;line-height:1.02;max-width:1110px}
.work{padding:clamp(110px,12vw,180px) 0}
.work-head{align-items:end;margin-bottom:55px}
.work-head p{font-size:17px;line-height:1.75;color:#555c62;max-width:380px}
.gallery-grid{gap:14px;grid-template-rows:330px 330px}
.work-card img{filter:saturate(.92);transition:filter .5s ease}
.work-card:hover img{transform:none;filter:saturate(1.08)}
.work-card span{font-weight:600;font-size:14px;letter-spacing:.014em;opacity:0;transform:translateY(6px);transition:opacity .25s ease,transform .35s var(--ease)}
.work-card:hover span,.work-card:focus-visible span{opacity:1;transform:none}
.work-card:after{opacity:.45;transition:opacity .2s}
.work-card:hover:after,.work-card:focus-visible:after{opacity:1}
.reviews{background:#10151b}
.quote{background:#eeede9;scroll-margin-top:86px}
.quote-intro h2{font-size:clamp(56px,6.6vw,104px);font-weight:600;line-height:1.09;letter-spacing:-.047em}
.quote-intro p{line-height:1.75}
.quote-form label{font-size:14px;letter-spacing:.015em;font-weight:600}
.quote-form input,.quote-form select,.quote-form textarea{font-size:17px}
.footer{padding-top:85px;padding-bottom:30px}
.footer-top{padding-bottom:65px}
.footer-label{font-size:16px;font-weight:600;color:#f0f2f4;letter-spacing:0;margin-bottom:23px}
.footer-links a,.footer-links span{font-size:15px;line-height:1.45;color:#c7ccd2}
.footer-bottom{font-size:13px;color:#98a0ac}
.page-hero{padding:200px 0 105px;min-height:590px}
.page-hero h1{font-size:clamp(76px,9vw,139px);font-weight:600;letter-spacing:-.051em;line-height:1.03;max-width:1110px}
.page-hero p{font-size:20px;line-height:1.7}
.services-nav{top:74px}
.services-nav a{font-size:14px;font-weight:600;letter-spacing:.02em}
.detail-grid{gap:7vw}
.detail-copy h2{font-size:clamp(56px,6.1vw,94px);font-weight:600;letter-spacing:-.047em;line-height:1.07}
.detail-copy>p{font-size:19px;line-height:1.77}
.detail-photo img{filter:saturate(.92)}
.detail-notes p{font-size:15px;line-height:1.65}
.faq h2{font-size:clamp(52px,6vw,86px)}
.faq summary{font-size:18px;font-weight:600}
.privacy h1{font-size:clamp(68px,8vw,107px);font-weight:600;letter-spacing:-.048em}
.privacy h2{letter-spacing:-.025em}
/* Scroll Reveal and Animated Content patterns, no dependency or scroll hijacking */
.js .js-reveal{opacity:0;transform:translate3d(0,16px,0);clip-path:none;transition:opacity .8s ease,transform 1s var(--ease)}
.js .js-reveal.visible{opacity:1;transform:none;clip-path:none}
.js .media-reveal{clip-path:inset(0 0 14% 0);opacity:1;transition:clip-path 1.15s var(--ease)}
.js .media-reveal.visible{clip-path:inset(0 0 0 0)}
.scroll-words .word{display:inline-block;white-space:pre;letter-spacing:inherit}
.js .scroll-words .word{opacity:.25;transform:translateY(5px);transition:opacity .55s ease,transform .8s var(--ease);transition-delay:calc(var(--word-index) * 65ms)}
.js .scroll-words.visible .word{opacity:1;transform:translateY(0)}
@media(hover:none){.work-card span{opacity:1;transform:none}}
@media(max-width:1190px){.hero h1{font-size:clamp(70px,9.3vw,124px)}.blue-inner h2{font-size:clamp(65px,9.4vw,115px)}}
@media(max-width:900px){.site-header{height:78px}.hero h1{font-size:clamp(65px,10vw,100px)}.hero-copy{padding-bottom:36px}.stage-body{grid-template-columns:1fr}.service-choice h3{font-size:clamp(21px,3.3vw,36px)}.services-nav{top:78px}}
@media(max-width:640px){
 .site-header,.site-header.scrolled{height:72px}.brand,.brand img{width:165px}
 .hero{height:94svh;min-height:680px;max-height:840px}
 .hero-photo img{object-position:51% 50%}
 .hero .hero-photo:after{background:linear-gradient(0deg,#080b10 0%,rgba(8,11,16,.66) 48%,rgba(8,11,16,.15) 82%),linear-gradient(90deg,rgba(8,11,16,.44),rgba(8,11,16,.16))}
 .hero-copy{padding-top:100px;padding-bottom:90px}
 .hero h1{font-size:clamp(41px,11.25vw,61px);line-height:1.07;letter-spacing:-.042em;margin-bottom:28px}
 .hero h1 .line{padding-bottom:.09em;margin-bottom:-.09em}
 .hero-under p{font-size:16px;line-height:1.6;max-width:335px}
 .hero-actions .btn{min-height:46px;font-size:12px;letter-spacing:.025em;padding:13px 16px}
 .intro{padding:110px 0 118px}
 .intro-grid h2{font-size:clamp(45px,10.6vw,68px);line-height:1.1}
 .intro-grid p{font-size:17px}
 .services-stage{padding:108px 0 110px}
 .stage-head h2{font-size:59px}
 .service-choice h3{font-size:33px;letter-spacing:-.035em}
 .service-choice.active p{font-size:15px;max-height:175px}
 .stage-visual{min-height:440px}
 .blue-inner h2{font-size:clamp(59px,11.9vw,80px);line-height:1.05;letter-spacing:-.045em}
 .work-head p{font-size:16px}
 .gallery-grid{gap:9px}
 .work-card span{font-size:12px;left:12px;bottom:12px}
 .quote-intro h2{font-size:clamp(54px,12vw,78px);line-height:1.08}
 .page-hero{padding-top:156px;min-height:560px}
 .page-hero h1{font-size:clamp(53px,11.5vw,76px);line-height:1.06;letter-spacing:-.039em}
 .page-hero p{font-size:16px}
 .services-nav{top:72px}
 .services-nav a{font-size:12px}
 .detail-copy h2{font-size:clamp(53px,11vw,74px);letter-spacing:-.042em}
 .detail-copy>p{font-size:17px}
 .faq h2{font-size:55px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .js .js-reveal,.js .media-reveal{opacity:1!important;transform:none!important;clip-path:none!important}
 .js .scroll-words .word{opacity:1!important;transform:none!important}
 .work-card span{opacity:1;transform:none}
}

/* V8 — measured interaction study, adapted to static HTML / Cloudflare Pages.
   React Bits concepts: Flowing Menu, Animated Content, Pixel Card and Line Waves.
   All motion is progressive enhancement; primary content and links work without JS. */
:root{--ease-atelier:cubic-bezier(.16,1,.3,1)}
html{scroll-padding-top:100px}
#quote,#service-tint,#service-wraps,#service-detail{scroll-margin-top:100px}
/* Section-wide service navigation with directional image flow. */
.services-stage{position:relative;background:#0d1116;padding:clamp(90px,10vw,148px) 0 0;isolation:isolate}
.services-stage .stage-head{margin-bottom:clamp(40px,5vw,72px);padding-bottom:0}
.services-stage .stage-head p{max-width:350px}
.flow-menu{border-top:1px solid rgba(255,255,255,.14)}
.flow-row{height:clamp(156px,15.8vw,234px);position:relative;display:block;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.17);isolation:isolate;background:transparent;transition:background .5s ease}
.flow-row:hover,.flow-row:focus-visible{background:#1b2430}
.flow-row:focus-visible{outline:2px solid #86afff;outline-offset:-5px}
.flow-row-inner{height:100%;display:flex;position:relative;z-index:2;align-items:center;gap:32px;justify-content:space-between;pointer-events:none}
.flow-title{font-size:clamp(46px,6.8vw,105px);font-weight:600;letter-spacing:-.025em;line-height:1.1;color:#e9ebed;transition:transform .7s var(--ease-atelier),color .5s ease}
.flow-sub{font-size:clamp(13px,1.1vw,16px);letter-spacing:.012em;line-height:1.5;color:#a6afb9;max-width:230px;flex:0 0 23%;transition:color .35s ease}
.flow-row:hover .flow-title,.flow-row:focus-visible .flow-title{transform:translateX(13px);color:#fff}
.flow-row:hover .flow-sub,.flow-row:focus-visible .flow-sub{color:#fff}
.flow-media{position:absolute;inset:0 0 0 37%;overflow:hidden;z-index:0;opacity:0;transform:translateX(35px);transition:opacity .7s ease,transform 1s var(--ease-atelier);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 25%,#000 75%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 25%,#000 75%,transparent 100%)}
.flow-row:is(:hover,:focus-visible) .flow-media{opacity:.62;transform:none}
.flow-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,17,22,.85),transparent 45%,rgba(13,17,22,.25));z-index:1;pointer-events:none}
.flow-track{display:flex;height:100%;width:max-content;gap:13px;align-items:center;animation:flow-horizontal 25s linear infinite;animation-play-state:paused}
.flow-track img{height:82%;width:clamp(155px,15vw,226px);object-fit:cover;object-position:center 47%;filter:saturate(.8) contrast(1.04);flex:none}
.flow-row:is(:hover,:focus-visible) .flow-track{animation-play-state:running}
.flow-track-reverse{animation-direction:reverse}
@keyframes flow-horizontal{to{transform:translateX(calc(-50% - 6.5px))}}
.flow-foot{display:flex;justify-content:space-between;align-items:center;gap:36px;padding-block:32px 41px}
.flow-foot p{color:#c3c8d0;font-size:16px;line-height:1.65;margin:0;max-width:520px}
.flow-foot .text-link{white-space:nowrap}
/* Pixel-accented cards—not a particle game or decorative empty cards. */
.service-cards-section{background:#efeee9;color:#101419;padding:clamp(105px,11vw,178px) 0 clamp(112px,12vw,184px)}
.cards-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:clamp(40px,5vw,66px)}
.cards-heading h2{max-width:780px;margin:0;font-size:clamp(44px,6.1vw,92px);letter-spacing:-.028em}
.cards-heading p{color:#525b63;max-width:315px;font-size:17px;line-height:1.75;margin:0}
.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.pixel-card{position:relative;isolation:isolate;overflow:hidden;background:#fff;border:1px solid #dfe0dd;display:flex;flex-direction:column;transition:border-color .3s ease,box-shadow .45s ease;min-width:0}
.pixel-card:hover,.pixel-card:focus-within{border-color:#b5c3dc;box-shadow:0 20px 42px rgba(14,28,50,.07)}
.pixel-card .card-photo{height:clamp(250px,25vw,380px);overflow:hidden;background:#c7c8c4}
.pixel-card .card-photo img{height:100%;width:100%;object-fit:cover;object-position:center 48%;filter:saturate(.86);transition:filter .5s ease,transform .9s var(--ease-atelier)}
.pixel-card:hover .card-photo img,.pixel-card:focus-within .card-photo img{filter:saturate(.96);transform:scale(1.035)}
.pixel-card .card-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;flex:1;padding:clamp(26px,3.1vw,45px);background:rgba(255,255,255,.96)}
.pixel-card h3{font-size:clamp(30px,2.5vw,42px);font-weight:600;letter-spacing:-.016em;line-height:1.15;margin:0 0 18px}
.pixel-card p{font-size:clamp(15px,1.15vw,17px);line-height:1.76;color:#4b545d;margin:0 0 34px}
.card-cta{margin-top:auto;display:inline-block;padding:13px 0 11px;border-bottom:1px solid #0d1116;color:#0b111a;font-size:14px;font-weight:650;letter-spacing:.025em;transition:color .25s ease,border-color .25s ease}
.card-cta:hover,.card-cta:focus-visible{color:var(--blue);border-color:var(--blue)}
.card-cta:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.pixel-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;opacity:0;transition:opacity .5s ease}
.pixel-card:hover .pixel-canvas,.pixel-card:focus-within .pixel-canvas{opacity:1}
/* Fine-line background, SVG drawn locally instead of a GPU shader. */
.blue-break{position:relative;isolation:isolate;overflow:hidden;background:#0757e8}
.blue-break::before{content:"";position:absolute;inset:-8%;z-index:-1;background:url('assets/flow-lines.svg') center/cover no-repeat;opacity:.98;animation:slow-line-drift 30s ease-in-out alternate infinite;pointer-events:none}
.blue-break::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,53,165,.15),rgba(7,87,232,.4) 78%);pointer-events:none}
@keyframes slow-line-drift{from{transform:translate3d(-1.2%,0,0)}to{transform:translate3d(1.2%,1.5%,0)}}
.blue-inner h2{font-size:clamp(55px,7.75vw,116px);letter-spacing:-.025em;max-width:1070px;line-height:1.06}
/* AnimatedContent-inspired entrance, solely at meaningful section boundaries. */
.js .v8-enter{opacity:0;transform:translate3d(0,28px,0);transition:opacity .8s ease,transform 1.05s var(--ease-atelier);transition-delay:var(--v8-delay,0ms)}
.js .v8-enter.v8-visible{opacity:1;transform:none}
/* Existing scroll reveals stay restrained. */
.js .js-reveal{transform:translate3d(0,12px,0);transition:opacity .75s ease,transform .85s var(--ease-atelier)}
/* A visually hidden label for accessible duplicate service labels. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(min-width:1500px){.flow-row{height:225px}.flow-media{left:41%}}
@media(max-width:1000px){.flow-row{height:172px}.flow-title{font-size:clamp(40px,7.5vw,78px)}.flow-media{left:27%}.flow-sub{max-width:165px}.cards-heading{align-items:start;flex-direction:column;gap:19px}.cards-heading p{max-width:500px}.service-cards{gap:10px}.pixel-card .card-content{padding:25px}.pixel-card h3{font-size:clamp(26px,3.5vw,37px)}.pixel-card .card-photo{height:265px}}
@media(max-width:760px){
 .flow-row{height:145px}.flow-title{font-size:clamp(36px,7.9vw,60px);max-width:72%}.flow-row-inner{align-items:center}.flow-sub{font-size:13px;flex:0 0 23%;text-align:right;max-width:165px}
 .flow-media{opacity:.2!important;transform:none!important;left:37%}.flow-track{animation:none!important}.flow-row:hover .flow-title{transform:none}
 .flow-foot{align-items:flex-start;flex-direction:column;gap:20px}
 .service-cards{grid-template-columns:1fr;gap:16px}.pixel-card{display:grid;grid-template-columns:42% 58%;min-height:280px}.pixel-card .card-photo{height:auto;min-height:280px}.pixel-card .card-content{padding:clamp(22px,4vw,33px)}.pixel-card p{font-size:15px;margin-bottom:23px}.pixel-card h3{font-size:clamp(27px,5vw,36px)}
 .blue-inner h2{font-size:clamp(54px,10vw,76px)}
}
@media(max-width:520px){
 .services-stage{padding-top:95px}.services-stage .stage-head{align-items:flex-start}.services-stage .stage-head p{font-size:15px;max-width:240px}
 .flow-row{height:143px}.flow-title{font-size:clamp(33px,9vw,46px);max-width:71%;letter-spacing:-.025em}.flow-sub{font-size:12px;max-width:107px;line-height:1.35;flex-basis:29%}
 .flow-media{left:21%;opacity:.16!important}.flow-track img{width:146px}
 .service-cards-section{padding:92px 0 100px}.cards-heading{margin-bottom:36px}.cards-heading h2{font-size:clamp(45px,11vw,62px)}
 .pixel-card{display:block;min-height:0}.pixel-card .card-photo{height:290px;min-height:0}.pixel-card .card-content{padding:30px}.pixel-card h3{font-size:35px}.pixel-card p{font-size:16px}
 .flow-foot p{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
 .js .v8-enter{opacity:1!important;transform:none!important;transition:none!important}
 .flow-track,.flow-row:hover .flow-track{animation:none!important}
 .flow-media,.flow-row:hover .flow-media{transform:none!important;transition:none!important}
 .flow-title,.flow-row:hover .flow-title{transform:none!important;transition:none!important}
 .blue-break::before{animation:none!important}
 .pixel-card .card-photo img{transition:none!important;transform:none!important}
 .pixel-canvas{display:none!important}
}
/* A hint of photography remains visible where hover is absent. */
@media(hover:hover) and (pointer:fine){.flow-media{opacity:.075}}
@media(hover:none), (pointer:coarse){.flow-media{opacity:.26!important}}


/* V9 · Masonry gallery. Stable CSS-column packing: no JS layout thrash, no CLS.
   Image ratios are art-directed and do not require any remote image service. */
.work .work-head{margin-bottom:clamp(28px,4vw,54px)}
.gallery-grid.masonry-gallery{
  display:block;
  columns:3;
  column-gap:clamp(12px,1.35vw,22px);
  grid-template-columns:none;
  grid-template-rows:none;
  gap:0;
}
.masonry-gallery .masonry-tile{
  display:block;
  break-inside:avoid;
  width:100%;
  height:auto;
  margin:0 0 clamp(12px,1.35vw,22px);
  padding:0;
  overflow:hidden;
  isolation:isolate;
  cursor:zoom-in;
  background:#d7d9d9;
  -webkit-column-break-inside:avoid;
}
.masonry-gallery .masonry-media{
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:4 / 5;
  overflow:hidden;
}
.masonry-gallery .masonry-tall .masonry-media{aspect-ratio:3 / 4}
.masonry-gallery .masonry-portrait .masonry-media{aspect-ratio:4 / 5}
.masonry-gallery .masonry-square .masonry-media{aspect-ratio:1 / 1}
.masonry-gallery .masonry-wide .masonry-media{aspect-ratio:6 / 5}
.masonry-gallery .masonry-tile img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92);
  transform:scale(1);
  transition:transform 780ms cubic-bezier(.2,.8,.2,1),filter 580ms ease;
}
.masonry-gallery .masonry-tile:hover img,
.masonry-gallery .masonry-tile:focus-visible img{transform:scale(1.022);filter:saturate(1)}
.masonry-gallery .masonry-tile::after{
  content:"";
  position:absolute;
  inset:45% 0 0;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(transparent,rgba(4,7,10,.65));
  transition:opacity 350ms ease;
}
.masonry-gallery .masonry-caption{
  position:absolute;
  inset:auto 20px 19px;
  z-index:2;
  display:block;
  color:#fff;
  font-size:clamp(12px,1vw,14px);
  font-weight:550;
  letter-spacing:.015em;
  line-height:1.4;
  opacity:0;
  transform:translateY(6px);
  transition:opacity 350ms ease,transform 400ms cubic-bezier(.22,1,.36,1);
}
.masonry-gallery .masonry-tile:hover::after,
.masonry-gallery .masonry-tile:focus-visible::after{opacity:1}
.masonry-gallery .masonry-tile:hover .masonry-caption,
.masonry-gallery .masonry-tile:focus-visible .masonry-caption{opacity:1;transform:translateY(0)}
/* Enter-only, IntersectionObserver-powered reveal inspired by React Bits Masonry.
   Nothing is animated constantly, and content is visible when JS is unavailable. */
.js .masonry-gallery.masonry-motion-ready .masonry-tile{
  opacity:0;
  transform:translate3d(0,25px,0) scale(.985);
  transition:opacity 780ms ease,transform 1000ms cubic-bezier(.16,1,.3,1);
  transition-delay:var(--masonry-delay,0ms);
}
.js .masonry-gallery.masonry-motion-ready .masonry-tile.masonry-visible{
  opacity:1;
  transform:none;
}
.photo-dialog .dialog-bottom{flex-wrap:wrap}
.dialog-gallery-nav{display:flex;gap:5px;margin-left:auto}
.dialog-step{
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  background:transparent;
  padding:11px 15px;
  font-size:12px;
  font-weight:550;
  letter-spacing:.02em;
  transition:background .22s ease,border-color .22s ease;
}
.dialog-step:hover,.dialog-step:focus-visible{background:rgba(255,255,255,.11);border-color:#fff}
.dialog-gallery-nav~.dialog-close{margin-left:4px}
@media(max-width:900px){
 .gallery-grid.masonry-gallery{columns:2;column-gap:12px}
 .masonry-gallery .masonry-tile{margin-bottom:12px}
}
@media(max-width:600px){
 .gallery-grid.masonry-gallery{columns:2;column-gap:9px}
 .masonry-gallery .masonry-tile{margin-bottom:9px}
 .masonry-gallery .masonry-caption{font-size:11px;inset:auto 10px 11px}
 .photo-dialog .dialog-bottom{gap:12px}
 .dialog-gallery-nav{order:2;width:100%;margin:0}
 .dialog-gallery-nav .dialog-step{flex:1}
 .photo-dialog .dialog-close{margin-left:auto}
}
@media(hover:none),(pointer:coarse){
 .masonry-gallery .masonry-caption{opacity:1;transform:none}
 .masonry-gallery .masonry-tile::after{opacity:1}
}
@media(prefers-reduced-motion:reduce){
 .js .masonry-gallery.masonry-motion-ready .masonry-tile{opacity:1!important;transform:none!important;transition:none!important}
 .masonry-gallery .masonry-tile img{transition:none!important;transform:none!important}
 .masonry-gallery .masonry-caption{transition:none!important}
}

/* Reset inherited legacy gallery span styles on the image wrapper. */
.masonry-gallery .work-card .masonry-media,
.masonry-gallery .work-card:hover .masonry-media,
.masonry-gallery .work-card:focus-visible .masonry-media{
  position:relative; inset:auto; bottom:auto; left:auto; opacity:1;
  transform:none; transition:none; z-index:auto;
}
/* The original grid's `gap` reset must not collapse masonry column gutters. */
.gallery-grid.masonry-gallery{column-gap:clamp(12px,1.4vw,22px)}
@media(max-width:900px){.gallery-grid.masonry-gallery{column-gap:12px}}
@media(max-width:600px){.gallery-grid.masonry-gallery{column-gap:9px}}

/* V9.1 rendering fix: CSS multicolumn + translated child layers can leave
   transient tile background artifacts over sections below the gallery on
   some browser/GPU combinations. Keep all masonry paint within its section,
   and animate only opacity so tiles do not create drifting compositor layers. */
.work {
  position: relative;
  isolation: isolate;
  overflow: clip;
}
.gallery-grid.masonry-gallery {
  position: relative;
  isolation: isolate;
  contain: paint;
}
.js .masonry-gallery.masonry-motion-ready .masonry-tile,
.js .masonry-gallery.masonry-motion-ready .masonry-tile.masonry-visible {
  transform: none;
}
.js .masonry-gallery.masonry-motion-ready .masonry-tile {
  transition: opacity 650ms ease;
  transition-delay: var(--masonry-delay, 0ms);
}
@supports not (overflow: clip) {
  .work { overflow: hidden; }
}
/* A delayed masonry image now leaves the gallery's cream surface showing,
   rather than drawing a gray rectangle in another composited layer. */
.masonry-gallery .masonry-tile { background: transparent; }


/* V9.2 · visibility-safe masonry and refined ambient art direction.
   Gallery images are never hidden in anticipation of observer callbacks. */
.masonry-gallery .masonry-tile,
.js .masonry-gallery.masonry-motion-ready .masonry-tile,
.js .masonry-gallery.masonry-motion-ready .masonry-tile.masonry-visible{
 opacity:1!important; transform:none!important; transition-delay:0ms!important;
}
.masonry-gallery .masonry-tile{background:#151a22}
.masonry-gallery .masonry-media{background:#151a22}
/* Loaded photographs are presented immediately, even on an anchor jump. */
.masonry-gallery .masonry-tile img{opacity:1!important;visibility:visible!important}
/* Atmospheric surfaces sit behind readable content and have no pointer capture. */
.intro,.services-stage,.service-cards-section,.work,.faq{position:relative;isolation:isolate}
.intro,.services-stage{overflow:hidden}
.ambient-layer{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}
.intro>.shell,.services-stage>.shell,.services-stage>.flow-menu,
.work>.shell,.faq>.shell{position:relative;z-index:2}
.intro{background:linear-gradient(132deg,#f6f5f1 0%,#f0eee8 100%)}
/* A silvery right-side daylight wash counterbalances the ambient dot-field. */
.intro::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
 background:radial-gradient(ellipse at 84% 40%,rgba(94,126,177,.105),transparent 47%)}
.services-stage{background:linear-gradient(116deg,#10151b,#0d141f 65%,#101720)}
/* Define the service menu's dark stage while keeping moving lines subtle. */
.services-stage::before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;
 background:radial-gradient(ellipse at 90% 52%,rgba(0,82,221,.15),transparent 58%)}
.service-cards-section{background:linear-gradient(145deg,#f7f6f2 12%,#eeeee9 100%);overflow:hidden}
.service-cards-section::before{content:"";position:absolute;inset:-20% -10%;z-index:0;pointer-events:none;
 background:radial-gradient(ellipse at 88% 25%,rgba(7,87,232,.065),transparent 48%)}
.service-cards-section>.shell{position:relative;z-index:1}
.work{background:linear-gradient(155deg,#f6f4ef 0%,#edede8 100%)}
.work::before{content:"";position:absolute;top:0;right:0;width:74%;height:780px;pointer-events:none;z-index:0;
 background:url('assets/contour-field.svg') top right/contain no-repeat;opacity:.27}
.work>.shell{position:relative;z-index:1}
.faq::before{content:"";position:absolute;top:0;right:0;width:70%;height:680px;pointer-events:none;z-index:0;
 background:url('assets/contour-field.svg') top right/contain no-repeat;opacity:.12}
@media(max-width:760px){.work::before{width:100%;height:530px;opacity:.15}.faq::before{width:100%;height:500px}}
@media(prefers-reduced-motion:reduce){.ambient-layer{opacity:.7!important}}

/* V9.2 follow-through: essential copy must never start invisible after a
   direct navigation or anchor jump. Motion may adjust position, not legibility. */
.js .v8-enter,.js .js-reveal{opacity:1!important}
.js .scroll-words .word{opacity:1!important}
/* Keep a little position-only editorial entrance; readability is immediate. */
.js .v8-enter{transform:translate3d(0,10px,0)}
.js .v8-enter.v8-visible{transform:none}
.js .js-reveal{transform:translate3d(0,8px,0)}
.js .js-reveal.visible{transform:none}


/* V9.4 — ART DIRECTION PASS
   Typographic hierarchy, photographic framing, white space and form finish.
   Effect layers always stay behind readable content. No animation gates any imagery. */
:root{--cream:#f4f3ee;--ink:#0a0e13;--blue:#0757e8;--container:1520px}
html{scroll-padding-top:90px}
body{font-family:'Manrope','Instrument Sans',Arial,sans-serif;letter-spacing:.005em}
h1,h2,h3,.section-title,.flow-title{font-family:'Manrope','Instrument Sans',Arial,sans-serif;letter-spacing:-.026em}
button,input,textarea,select{font-family:inherit}
.shell{width:min(calc(100% - 10vw),var(--container))}
.site-header{height:86px}
.site-header.scrolled,.site-header.mobile-shown{height:75px}
.brand,.brand img{width:180px}
.main-nav{gap:40px}
.main-nav a{font-weight:600;letter-spacing:.045em;font-size:12px}
.header-cta{font-family:inherit;font-size:12px;letter-spacing:.04em;padding:16px 24px}
.btn{letter-spacing:.035em;font-size:13px;font-weight:700;min-height:54px;padding:15px 26px}
.btn:focus-visible,.header-cta:focus-visible,.main-nav a:focus-visible,.services-nav a:focus-visible,.masonry-tile:focus-visible,.quote-form :focus-visible{outline:2px solid #7da9ff;outline-offset:3px}
.section-title{letter-spacing:-.031em;font-weight:600;font-size:clamp(44px,5.9vw,87px);line-height:1.07}
/* Allow the actual car to be seen: copy and photography have different territories. */
.hero.hero-atelier{min-height:760px;height:clamp(760px,93svh,1030px);max-height:none;background:#080d12}
.hero-atelier .hero-photo{inset:0 0 0 49%;z-index:-2}
.hero-atelier .hero-photo img{object-position:50% 46%;filter:saturate(.85) contrast(1.055);transform:scale(1.04)!important;transition:transform 1.45s cubic-bezier(.19,1,.22,1),filter 1.2s ease}
.loaded .hero-atelier .hero-photo img{transform:scale(1)!important}
.hero-atelier .hero-photo::after{background:linear-gradient(90deg,#080d12 0%,rgba(8,13,18,.35) 27%,transparent 66%),linear-gradient(0deg,rgba(8,13,18,.55),transparent 40%,rgba(8,13,18,.24));}
.hero-atelier .hero-copy{justify-content:center;align-items:flex-start;padding-top:86px;padding-bottom:40px}
.hero-atelier h1{font-size:clamp(62px,6.65vw,108px);line-height:1.085;font-weight:650;letter-spacing:-.037em;max-width:790px;margin-bottom:35px;text-transform:none}
.hero-atelier h1 .line{display:block;white-space:nowrap;padding:0 .08em .085em 0;margin-bottom:-.07em}
.hero-atelier .hero-under{display:flex;flex-direction:column;gap:27px;align-items:flex-start;margin-top:0}
.hero-atelier .hero-under p{max-width:480px;font-size:17px;line-height:1.75;color:#d0d7df;text-wrap:pretty;margin:0}
.hero-atelier .hero-actions{gap:10px;display:flex;flex-wrap:wrap}
.hero-atelier .hero-actions .btn-outline{border-color:rgba(255,255,255,.34)}
/* The introductory scene is asymmetrical, with a documented real installation photo. */
.intro{padding:clamp(110px,11vw,182px) 0;background:#f5f4f0}
.intro-grid{grid-template-columns:minmax(0,1.17fr) minmax(0,.65fr);align-items:start;gap:clamp(65px,9vw,170px)}
.intro-grid h2{max-width:890px;font-size:clamp(54px,6.6vw,105px);line-height:1.11;letter-spacing:-.044em;font-weight:600;text-wrap:balance}
.intro-aside{padding-top:12px}
.intro-aside p{font-size:17px;line-height:1.83;max-width:420px;margin:0 0 44px;color:#4d5660}
.intro-portrait{margin:0;position:relative;width:100%;aspect-ratio:1.15/1;overflow:hidden;background:#c5cacf}
.intro-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 47%;filter:saturate(.85)}
.ambient-dots{opacity:.43}
/* Flowing menu carries the exploration, cards carry substance. */
.services-stage{padding-top:clamp(100px,9vw,140px)}
.stage-head h2,.cards-heading h2{letter-spacing:-.031em;font-weight:600}
.flow-title{letter-spacing:-.028em;font-weight:600}
.flow-sub{letter-spacing:.025em}
.service-cards-section{padding:clamp(105px,10vw,158px) 0}
.cards-heading{margin-bottom:clamp(42px,5.5vw,76px)}
.cards-heading h2{max-width:1050px;font-size:clamp(49px,6.2vw,97px)}
.cards-heading p{max-width:410px}
.pixel-card{background:#fff;border:1px solid #e1e3e1;box-shadow:none;}
.pixel-card .card-photo img{filter:saturate(.87)}
.card-content h3{letter-spacing:-.026em;font-weight:700}
.card-content p{color:#4c5660;line-height:1.75}
.card-cta{letter-spacing:.035em}
/* One short, decisive royal-blue brand moment rather than another oversize hero. */
.blue-break{background:#0757e8}
.blue-break .blue-inner{padding:clamp(90px,8.8vw,138px) 0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.5fr);gap:5vw;align-items:end}
.blue-break h2{font-size:clamp(56px,7.4vw,112px);line-height:1.08;letter-spacing:-.037em;font-weight:600;max-width:1050px;text-wrap:balance}
.blue-action{display:flex;flex-direction:column;align-items:flex-start;gap:25px}
.blue-action p{max-width:290px;color:rgba(255,255,255,.88);font-size:17px;line-height:1.7;margin:0}
/* Gallery: a pair of real shop scenes sets the pace for the retained masonry work. */
.work{padding:clamp(110px,10vw,160px) 0}
.work-head{margin-bottom:clamp(45px,5vw,70px)}
.work-head h2{max-width:790px}
.work-head p{font-size:17px;line-height:1.7}
.work-feature{display:grid;grid-template-columns:1.03fr .97fr;gap:clamp(12px,1.4vw,22px);margin-bottom:clamp(12px,1.4vw,22px);align-items:stretch}
.work-feature-photo{position:relative;overflow:hidden;background:#151a22;height:clamp(330px,38vw,570px)}
.work-feature-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.02)}
.work-feature-install img{object-position:50% 56%}
.work-feature-studio img{object-position:50% 47%}
.work::before{opacity:.14}
/* A composed inquiry section: photograph on charcoal, functional paper form. */
.quote{background:#10161d;color:#fff;padding:clamp(100px,10vw,160px) 0;isolation:isolate;position:relative}
.quote-grid{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:clamp(55px,7vw,120px);align-items:start}
.quote-intro{position:static;max-width:620px}
.quote-intro h2{font-size:clamp(52px,5.2vw,83px);line-height:1.11;letter-spacing:-.034em;font-weight:600;margin-bottom:29px;text-wrap:balance}
.quote-intro>p{color:#b6c0c9;font-size:18px;line-height:1.75;max-width:490px;margin-bottom:43px}
.quote-photo{height:clamp(260px,25vw,355px);overflow:hidden;position:relative;background:#253444}
.quote-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 54%;filter:saturate(.75) contrast(1.04)}
.quote-panel{background:#f5f4f0;color:#11171d;padding:clamp(32px,4.2vw,72px);box-shadow:0 10px 50px rgba(0,0,0,.08)}
.quote-panel .quote-form{border-top:0}
.quote-panel .quote-form label{font-weight:700;letter-spacing:.012em;color:#293139;font-size:13px;margin-top:0}
.quote-panel .quote-form label+label{margin-top:28px}
.quote-panel .quote-form .field-row{gap:18px;margin-bottom:29px}
.quote-panel .quote-form input,.quote-panel .quote-form select,.quote-panel .quote-form textarea{font-size:16px;color:#11171d;padding:14px 0 14px;min-height:53px;border-bottom:1px solid #afb8ba}
.quote-panel .quote-form input:focus,.quote-panel .quote-form select:focus,.quote-panel .quote-form textarea:focus{border-color:var(--blue);box-shadow:0 1px 0 var(--blue)}
.quote-panel .quote-form textarea{min-height:110px}
.quote-panel .form-submit{margin-top:28px;min-height:58px}
.quote-panel .form-caption{margin:15px 0 0;color:#656d74;font-size:12px;line-height:1.6}
.quote-panel .quote-result{border:1px solid #d5dadd;background:#fff;margin-top:24px;padding:26px}
.quote-panel .quote-result pre{font-family:inherit}
/* Services content page: related compositions, less oversized copy on photo. */
.page-hero{min-height:620px;padding:200px 0 115px}
.page-hero .page-photo{inset:0 0 0 53%;opacity:.62}
.page-hero::after{background:linear-gradient(90deg,#0c1016 10%,rgba(12,16,22,.94) 40%,rgba(12,16,22,.16) 100%)}
.page-hero h1{max-width:900px;font-size:clamp(63px,7.6vw,116px);letter-spacing:-.035em;font-weight:600;line-height:1.08;text-wrap:balance}
.page-hero p{max-width:555px;font-size:18px;line-height:1.78}
.service-detail{padding:clamp(95px,9vw,145px) 0}
.detail-grid{gap:clamp(55px,7.5vw,122px)}
.detail-copy h2{letter-spacing:-.029em;font-size:clamp(54px,5.8vw,88px)}
.detail-copy>p{font-size:18px;line-height:1.8}
.detail-photo{height:clamp(470px,44vw,675px)}
.detail-photo img{filter:saturate(.85)}
.detail-notes p{font-size:15px;line-height:1.7}
.faq{background:#eeeee9}
.faq h2{letter-spacing:-.03em}
.faq details{padding:24px 0}
.faq summary{font-weight:650}
.footer{background:#080c10}
.footer-label{font-size:13px;font-weight:700;letter-spacing:.035em}
.footer-links a{transition:color .2s}
/* Respect interaction and device differences; no critical imagery hidden by motion. */
@media(max-width:1190px){
 .hero-atelier h1{font-size:clamp(61px,7.8vw,96px)}
 .intro-grid{gap:6vw}
 .quote-grid{gap:5vw}
}
@media(max-width:900px){
 .shell{width:calc(100% - 8vw)}
 .hero.hero-atelier{min-height:760px;height:93svh;max-height:940px}
 .hero-atelier .hero-photo{inset:0 0 0 31%}
 .hero-atelier .hero-photo::after{background:linear-gradient(90deg,#080d12 0%,rgba(8,13,18,.75) 24%,rgba(8,13,18,.16) 90%),linear-gradient(0deg,rgba(8,13,18,.55),transparent 55%)}
 .hero-atelier h1{font-size:clamp(64px,9.3vw,86px)}
 .intro-grid{grid-template-columns:1fr 0.75fr;gap:5vw}
 .intro-grid h2{font-size:clamp(50px,7vw,70px)}
 .quote-grid{grid-template-columns:1fr;gap:50px}
 .quote-intro{max-width:720px}
 .quote-intro h2{max-width:850px}
 .quote-intro>p{max-width:650px}
 .quote-photo{display:none}
 .quote-panel{max-width:790px}
 .page-hero h1{font-size:clamp(62px,9vw,86px)}
}
@media(max-width:640px){
 .shell{width:calc(100% - 38px)}
 .site-header,.site-header.scrolled,.site-header.mobile-shown{height:74px}
 .brand,.brand img{width:159px}
 .hero.hero-atelier{min-height:735px;height:96svh;max-height:890px}
 .hero-atelier .hero-photo{inset:0}
 .hero-atelier .hero-photo img{object-position:49% 45%;}
 .hero-atelier .hero-photo::after{background:linear-gradient(0deg,#080d12 0%,rgba(8,13,18,.96) 22%,rgba(8,13,18,.7) 47%,rgba(8,13,18,.07) 82%),linear-gradient(90deg,rgba(8,13,18,.2),rgba(8,13,18,.18))}
 .hero-atelier .hero-copy{justify-content:flex-end;padding:100px 0 84px}
 .hero-atelier h1{font-size:clamp(46px,11.5vw,67px);line-height:1.08;letter-spacing:-.036em;max-width:100%;margin-bottom:20px}
 .hero-atelier .hero-under{gap:22px}
 .hero-atelier .hero-under p{font-size:15px;line-height:1.65;max-width:390px}
 .hero-atelier .hero-actions .btn{min-height:47px;font-size:12px;padding:13px 17px}
 .intro{padding:100px 0 110px}
 .intro-grid{grid-template-columns:1fr;gap:40px}
 .intro-grid h2{font-size:clamp(43px,10.3vw,63px);line-height:1.1}
 .intro-aside{padding-top:0}
 .intro-aside p{margin-bottom:28px;font-size:16px}
 .intro-portrait{aspect-ratio:1.35/1}
 .services-stage{padding-top:95px}
 .cards-heading h2{font-size:clamp(45px,10.6vw,69px)}
 .blue-break .blue-inner{grid-template-columns:1fr;gap:34px;padding:85px 0}
 .blue-break h2{font-size:clamp(49px,10.8vw,74px);letter-spacing:-.032em}
 .blue-action{gap:20px}
 .blue-action p{font-size:16px}
 .work{padding:93px 0 110px}
 .work-feature{gap:9px;margin-bottom:9px;grid-template-columns:1fr 1fr}
 .work-feature-photo{height:clamp(245px,66vw,365px)}
 .work-head{margin-bottom:35px}
 .work-head p{font-size:16px}
 .quote{padding:98px 0 112px}
 .quote-intro h2{font-size:clamp(45px,10.6vw,66px)}
 .quote-intro>p{font-size:16px;margin-bottom:0}
 .quote-panel{padding:29px 25px 34px}
 .quote-panel .quote-form .field-row{grid-template-columns:1fr;gap:27px;margin-bottom:28px}
 .quote-panel .quote-form label+label{margin-top:26px}
 .quote-panel .quote-form .field-row label+label{margin-top:0}
 .quote-panel .form-submit{margin-top:24px}
 .page-hero{padding:165px 0 92px;min-height:640px}
 .page-hero .page-photo{inset:0;opacity:.55}
 .page-hero::after{background:linear-gradient(0deg,#0c1016 0%,rgba(12,16,22,.77) 42%,rgba(12,16,22,.3) 100%)}
 .page-hero h1{font-size:clamp(48px,10.9vw,72px);line-height:1.1}
 .page-hero p{font-size:16px}
 .detail-copy h2{font-size:clamp(49px,11vw,72px)}
 .detail-photo{height:440px}
}
@media(prefers-reduced-motion:reduce){
 .hero-atelier .hero-photo img,.loaded .hero-atelier .hero-photo img{transform:none!important;transition:none!important}
}
/* Resilient hero entrance: legible text is never gated on a network font or JS callback. */
.hero-atelier h1 .line span{transform:none;opacity:1}
.js:not(.loaded) .hero-atelier h1 .line span{transform:translateY(7%);opacity:.84}
.js.loaded .hero-atelier h1 .line span{transform:none;opacity:1}
@media(prefers-reduced-motion:reduce){.js:not(.loaded) .hero-atelier h1 .line span{transform:none;opacity:1}}

/* V9.5 — Quote form rebuild. Integrates with the dark editorial layout; no oversized paper card. */
.quote{background:#0e141b;color:#f4f5f6;padding:clamp(86px,8.8vw,142px) 0;scroll-margin-top:80px}
.quote-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(44px,6vw,102px)}
.quote-intro{position:static;max-width:630px;padding-top:clamp(4px,1vw,18px)}
.quote-intro h2{font-size:clamp(50px,5vw,78px);font-weight:600;line-height:1.12;letter-spacing:-.022em;margin:0 0 26px;max-width:640px;text-wrap:balance}
.quote-intro>p{font-size:clamp(16px,1.32vw,18px);line-height:1.65;color:#abb7c1;margin:0 0 43px;max-width:470px}
.quote-photo{width:100%;height:clamp(280px,25vw,370px);overflow:hidden;background:#1b2b38;border:1px solid rgba(255,255,255,.09)}
.quote-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 48%;filter:saturate(.82)}
.quote-panel{background:#151e27;border:1px solid #2a3745;color:#edf1f5;color-scheme:dark;box-shadow:none;padding:clamp(24px,3.2vw,50px);min-width:0;max-width:none}
.quote-panel .quote-form{border:0;margin:0}
.quote-form-heading{border-bottom:1px solid #34404b;padding-bottom:23px;margin-bottom:26px}
.quote-form-heading h3{margin:0 0 8px;font-size:clamp(23px,2vw,28px);font-weight:600;line-height:1.25;letter-spacing:.005em;color:#f6f7f9}
.quote-form-heading p{margin:0;color:#aeb9c6;font-size:14px;line-height:1.55}
.quote-panel .quote-form label{font-size:13px;line-height:1.45;font-weight:550;letter-spacing:.025em;color:#d9e0e7;margin:0;display:block}
.quote-panel .quote-form .field-row{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:13px;margin:0 0 25px}
.quote-panel .quote-form .field-row label+label{margin:0}
.quote-panel .quote-form input:not([type="radio"]),.quote-panel .quote-form textarea{display:block;width:100%;border:1px solid #3a4856;background:#1b2631;border-radius:2px;color:#f7f9fb;outline:0;min-height:52px;padding:13px 15px;margin-top:9px;font-size:16px;letter-spacing:.005em;line-height:1.5;transition:border-color .2s,background-color .2s,box-shadow .2s}
.quote-panel .quote-form textarea{min-height:99px;resize:vertical}
.quote-panel .quote-form input::placeholder,.quote-panel .quote-form textarea::placeholder{color:#96a3af;opacity:1}
.quote-panel .quote-form input:not([type="radio"]):focus,.quote-panel .quote-form textarea:focus{border-color:#85b1ff;background:#202d3a;box-shadow:0 0 0 2px rgba(7,87,232,.24)}
.quote-service-picker{margin:0 0 25px;padding:0;border:0;min-width:0}
.quote-service-picker legend{float:none;color:#d9e0e7;letter-spacing:.025em;font-size:13px;line-height:1.4;font-weight:550;padding:0;margin-bottom:12px}
.quote-service-options{display:flex;flex-wrap:wrap;gap:9px}
.quote-option{position:relative;display:block!important;margin:0!important;min-width:0;cursor:pointer}
.quote-option input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none;margin:0;padding:0}
.quote-option span{display:block;padding:12px 15px;border:1px solid #3a4856;border-radius:2px;background:#1b2631;color:#bdc8d3;font-size:13px;font-weight:550;line-height:1.35;letter-spacing:.015em;transition:background-color .2s,border-color .2s,color .2s}
.quote-option:hover span{border-color:#768b9f;color:#fff}
.quote-option input:checked+span{background:#183458;border-color:#2f7bfc;color:#fff;box-shadow:inset 0 0 0 1px rgba(47,123,252,.25)}
.quote-option input:focus-visible+span{outline:2px solid #abcaff;outline-offset:3px}
.quote-panel .quote-details-label{margin:0!important}
.quote-details-label>span{font-size:12px;color:#95a3b0;font-weight:400;margin-left:6px;letter-spacing:.01em}
.quote-panel .form-submit{display:block;width:100%;min-height:55px;margin:23px 0 0;border-radius:2px;font-weight:650;font-size:13px;letter-spacing:.035em;transition:background-color .18s,transform .18s}
.quote-panel .form-submit:hover{background:#0d64ff;transform:translateY(-1px)}
.quote-panel .form-submit:active{transform:none}
.quote-panel .form-caption{margin:13px 0 0;color:#a1aeba;line-height:1.55;font-size:12px}
.quote-panel .quote-result{background:#101923;border:1px solid #35495b;padding:24px;margin-top:22px;color:#ebf0f5;border-radius:2px}
.quote-panel .quote-result h3{font-size:22px;color:#fff;letter-spacing:0;margin:0 0 6px}
.quote-result-explainer{font-size:13px;color:#b0bdc9;margin:0 0 18px;line-height:1.55}
.quote-panel .quote-result pre{font:400 14px/1.75 'Instrument Sans',Arial,sans-serif;letter-spacing:.01em;white-space:pre-wrap;overflow-wrap:anywhere;color:#e3ebf3;background:#172331;border:1px solid #344557;border-radius:2px;padding:18px;margin:0 0 18px}
.quote-panel .quote-result .result-actions{gap:10px}
.quote-panel .quote-result .btn{border-radius:2px;font-size:12px;min-height:44px}
.quote-panel .quote-result .btn-dark{background:#293948;border:1px solid #4b5c6b;color:#fff}
.quote-panel .quote-result .btn-dark:hover{background:#34485a}
@media(max-width:1100px){.quote-grid{gap:4vw}.quote-panel{padding:30px}.quote-intro h2{font-size:clamp(48px,5.5vw,69px)}}
@media(max-width:900px){.quote-grid{grid-template-columns:1fr;gap:30px}.quote-intro{max-width:740px;padding:0}.quote-intro h2{font-size:clamp(43px,7vw,69px);max-width:660px;margin-bottom:17px}.quote-intro>p{max-width:670px;margin-bottom:0}.quote-photo{display:none}.quote-panel{width:100%;max-width:730px;padding:35px}}
@media(max-width:640px){.quote{padding:76px 0 86px}.quote-grid{gap:27px}.quote-intro h2{font-size:clamp(43px,10.8vw,58px)}.quote-intro>p{font-size:15px;line-height:1.65}.quote-panel{padding:23px 19px 25px}.quote-form-heading{margin-bottom:22px;padding-bottom:20px}.quote-panel .quote-form .field-row{grid-template-columns:minmax(0,1fr);gap:17px;margin-bottom:22px}.quote-panel .quote-form .field-row label+label{margin:0}.quote-service-picker{margin-bottom:22px}.quote-service-options{gap:8px}.quote-option span{font-size:12px;padding:11px 13px}.quote-panel .form-submit{margin-top:20px}.quote-panel .quote-result{padding:17px}.quote-panel .quote-result .result-actions{flex-direction:column}.quote-panel .quote-result .result-actions .btn{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.quote-panel .quote-form input,.quote-panel .quote-form textarea,.quote-option span,.quote-panel .form-submit{transition:none!important}.quote-panel .form-submit:hover{transform:none!important}}
