:root{--ink:#19191b;--paper:#f7f7f5;--accent:#ae287a;--muted:#747478;--line:#d9d9d7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #e64baa;outline-offset:7px}.skip{position:fixed;top:-100px;left:20px;z-index:20;background:white;padding:16px}.skip:focus{top:10px}.header{height:100px;padding:0 5.3%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand-icon{font-size:45px;font-weight:650;letter-spacing:-5px;line-height:1;width:58px}.brand-icon span{color:var(--accent)}.brand-name{font-size:13px;font-weight:700;line-height:1.2;letter-spacing:1.2px}.brand-period{color:var(--accent)}nav{display:flex;gap:37px;font-size:14px}nav a{position:relative;padding:10px 0}nav a:after{content:'';position:absolute;left:0;bottom:4px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s}nav a:hover:after{transform:scaleX(1)}.nav-cta{font-size:14px;border-bottom:1px solid var(--ink);padding:12px 0;display:flex;gap:35px}.hero{min-height:720px;height:calc(100svh - 100px);max-height:1100px;position:relative;background:#292623;color:#fff;overflow:hidden}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover;object-position:58% 50%;animation:hero-image 1.8s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,12,13,.73),rgba(12,12,13,.23) 65%,rgba(12,12,13,.08)),linear-gradient(0deg,rgba(12,12,13,.6),transparent 40%)}.hero-content{position:relative;padding:68px 7% 110px;max-width:1100px}.eyebrow,.section-label,.hero-foot,.project-top,.project-credit{font-size:12px;letter-spacing:1.8px;font-weight:500}.eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 35px}.line{width:35px;height:2px;background:#d94fa6}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(70px,7.7vw,120px);font-weight:450;letter-spacing:-.055em;line-height:.99;margin-bottom:36px;animation:rise 1s .15s both}.serif{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-.065em}.hero-bottom{display:flex;align-items:center;gap:60px;animation:rise 1s .3s both}.hero-bottom p{font-size:17px;line-height:1.65;color:#e3e2df;margin-bottom:0}.button{padding:20px 24px;background:var(--accent);color:white;font-size:14px;display:inline-flex;justify-content:space-between;align-items:center;gap:44px;transition:background .25s,transform .25s}.button:hover{background:#922064;transform:translateY(-3px)}.button span{font-size:21px}.hero-foot{position:absolute;left:7%;right:7%;bottom:43px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1.5px}.hero-foot a{display:flex;gap:22px}.image-note{position:absolute;right:20px;bottom:12px;color:#c8c5c0;font-size:12px}.section{padding:85px 7% 90px;scroll-margin-top:0}.section-label{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:58px;font-size:12px;color:var(--muted)}.section-label>span:first-child{color:var(--accent)}.small-line{height:1px;flex:1;background:var(--line)}.intro-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:10%}h2{font-size:clamp(38px,4.2vw,65px);letter-spacing:-.055em;line-height:1.08;font-weight:450;margin-bottom:25px}.muted{color:#8a8a8d}.intro-copy p{line-height:1.75;color:#646468;font-size:16px}.intro-copy p:first-child{font-size:20px;color:var(--ink);line-height:1.55}.text-link{display:inline-flex;align-items:center;gap:32px;font-size:14px;border-bottom:1px solid var(--ink);padding:12px 0;transition:color .2s}.text-link:hover{color:var(--accent)}.credentials{margin-top:64px;padding-top:25px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:14px;color:#656569}.credentials span:before{content:'+';margin-right:12px;color:var(--accent)}.expertise{background:#eeeeed}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:38px}.section-heading p{font-size:16px;line-height:1.65;color:#68686c;margin-bottom:28px}.service-list{border-top:1px solid #ccc}.service-list details{border-bottom:1px solid #ccc;padding:26px 0}.service-list summary{display:flex;align-items:center;gap:30px;cursor:pointer;list-style:none}.service-list summary::-webkit-details-marker{display:none}.service-num{font-size:13px;color:var(--accent);width:40px}h3{font-size:28px;font-weight:450;letter-spacing:-1px;margin:0}.expand{position:relative;width:21px;height:21px;margin-left:auto;flex-shrink:0}.expand:before,.expand:after{content:'';position:absolute;background:#555;top:10px;left:2px;width:17px;height:1px;transition:transform .3s}.expand:after{transform:rotate(90deg)}details[open] .expand:after{transform:rotate(0)}.service-description{margin:22px 50px 0 70px;max-width:680px;animation:rise .35s both}.service-description p{font-size:16px;line-height:1.7;color:#626266;margin-bottom:18px}.service-description>span{font-size:11px;letter-spacing:1.4px;color:#777}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.project-card{border-top:1px solid var(--line);padding:24px 25px 26px;background:#eee;transition:transform .5s,background .5s}.project-card:hover{transform:translateY(-6px);background:#e8e8e8}.project-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.4px;color:#727276}.project-mark{height:175px;display:flex;align-items:center;gap:12px;font-size:35px;font-weight:650;letter-spacing:-2px}.project-mark span{font-size:20px;font-weight:400;color:#999}.project-mark.ducati{font-weight:700;font-style:italic;letter-spacing:-2px;font-size:46px}.project-mark .dot{color:var(--accent);font-size:50px}.project-mark.lean{font-family:Georgia,serif;font-size:38px;line-height:1;font-style:italic;letter-spacing:-1px}.project-detail h3{font-size:20px;letter-spacing:-.5px;margin-bottom:8px}.project-detail p{font-size:14px;color:#757579;margin-bottom:23px}.project-scope{font-size:15px;line-height:1.65;color:#66666a;min-height:75px}.project-credit{border-top:1px solid #d4d4d4;padding-top:20px;font-size:10px;letter-spacing:1.1px}.contact{background:#252326;color:white;position:relative;overflow:hidden}.contact .section-label>span:first-child{color:#dd65ad}.contact .section-label{color:#a3a0a5}.contact-main{display:grid;grid-template-columns:1.3fr 1fr;gap:10%;align-items:center}.contact h2{font-size:clamp(65px,7.5vw,110px);line-height:1.02;margin-bottom:0}.contact h2 .serif{color:#df79b5}.contact-copy p{font-size:18px;line-height:1.7;color:#c0bdc3;max-width:340px}.button.light{background:var(--paper);color:var(--ink);margin:10px 0 25px}.button.light:hover{background:#f1d9e8}.email{display:block;font-size:14px;color:#c6c2c8;word-break:break-word}footer{padding:50px 7% 25px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:30px}footer>p{font-size:14px;line-height:1.8;margin:0}footer>p>span{color:#888}footer>a:not(.brand){font-size:14px}.footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px;margin-top:20px;display:flex;justify-content:space-between;font-size:12px;color:#777}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}.js .reveal.visible{opacity:1;transform:translateY(0)}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-image{from{transform:scale(1.04)}to{transform:scale(1)}}@media(min-width:1600px){.section,footer{padding-left:max(7%,calc((100vw - 1400px)/2));padding-right:max(7%,calc((100vw - 1400px)/2))}}@media(max-width:900px){.header{height:85px}nav{gap:20px}.hero{height:auto;min-height:740px}.hero-content{padding-top:80px}h1{font-size:90px}.intro-grid{gap:6%}.project-grid{gap:14px}.project-card{padding:20px 18px}.project-mark{font-size:26px;letter-spacing:-1.5px}.project-mark.ducati{font-size:37px}.project-detail h3{font-size:18px}.project-scope{min-height:100px}.contact-main{gap:6%}}@media(max-width:640px){.header{height:82px;padding:0 6%}.brand-icon{font-size:39px;width:48px}.brand-name{font-size:11px}.brand{gap:8px}nav{display:none}.nav-cta{font-size:13px;gap:19px}.hero{min-height:690px;height:calc(100svh - 82px);max-height:900px}.hero-content{padding:65px 7% 105px}.hero-image{object-position:62% center}.hero-shade{background:linear-gradient(90deg,rgba(12,12,13,.72),rgba(12,12,13,.24)),linear-gradient(0deg,rgba(12,12,13,.55),transparent)}.eyebrow{font-size:10px;letter-spacing:1.4px;margin-bottom:32px}.line{width:25px}h1{font-size:clamp(62px,14vw,89px);margin-bottom:30px}.hero-bottom{display:block}.hero-bottom p{font-size:16px;margin-bottom:24px}.button{padding:16px 20px;gap:40px}.hero-foot{bottom:38px;font-size:9px;letter-spacing:.8px}.hero-foot a{font-size:0;gap:0}.hero-foot a span{font-size:18px}.image-note{font-size:10px}.section{padding:58px 7% 60px}.section-label{margin-bottom:36px;font-size:10px;letter-spacing:1.3px}.section-label>span:nth-child(2):not(.small-line){display:none}.intro-grid{grid-template-columns:1fr;gap:15px}h2{font-size:42px}.intro-copy p:first-child{font-size:19px}.intro-copy p{font-size:16px}.credentials{flex-direction:column;margin-top:36px;gap:16px}.section-heading{display:block;margin-bottom:30px}.section-heading p{margin-bottom:0}.service-list details{padding:24px 0}.service-list summary{gap:15px}.service-num{width:20px;flex-shrink:0}h3{font-size:22px;letter-spacing:-.7px}.service-description{margin-left:35px;margin-right:0}.service-description>span{font-size:10px}.project-grid{grid-template-columns:1fr;gap:22px}.project-card{padding:24px}.project-mark{height:145px;font-size:42px}.project-mark.ducati{font-size:50px}.project-detail h3{font-size:22px}.project-scope{min-height:0}.contact-main{grid-template-columns:1fr;gap:30px}.contact h2{font-size:72px}.contact-copy p{font-size:17px}.email{font-size:13px}footer{padding:38px 7% 24px;grid-template-columns:1fr auto;gap:25px}footer>p{grid-column:1/-1;grid-row:2}.footer-bottom{font-size:11px;gap:20px}.footer-bottom a{white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}

/* Scroll choreography: native scrolling with depth, masks and layered projects. */
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;background:#cf4699;z-index:50;transform-origin:left;pointer-events:none}
.heading-line{display:block;overflow:hidden;padding-bottom:.13em;margin-bottom:-.13em}
.heading-line>span{display:block}
.immersive .hero-image{animation:none;transform-origin:center;will-change:transform}
.immersive .hero-content{animation:none;will-change:transform,opacity}
.immersive .hero-content h1,.immersive .hero-bottom{animation:rise 1.3s cubic-bezier(.22,1,.36,1) both}
.immersive .hero-bottom{animation-delay:.18s}
.immersive .reveal{transition:opacity 1.1s ease,transform 1.2s cubic-bezier(.16,1,.3,1);transform:translateY(45px)}
.immersive .reveal.visible{transform:translateY(0)}
.immersive h2.reveal,.immersive .section-heading.reveal{transform:none;opacity:1}
.immersive .reveal .heading-line>span{transform:translateY(115%);transition:transform 1.3s cubic-bezier(.16,1,.3,1)}
.immersive .reveal.visible .heading-line>span{transform:translateY(0)}
.immersive .heading-line:nth-child(2)>span{transition-delay:.12s}
.immersive .heading-line:nth-child(3)>span{transition-delay:.24s}
.immersive .intro{position:relative;z-index:2;border-radius:26px 26px 0 0;margin-top:-26px;background:var(--paper)}
.immersive .intro h2 .muted{color:rgb(calc(138 - var(--intro-light,0)*113),calc(138 - var(--intro-light,0)*113),calc(141 - var(--intro-light,0)*114))}
.immersive .intro-copy{transition-delay:.17s}
.immersive .section-label .small-line{transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.22,1,.36,1)}
.immersive .section-label.visible .small-line{transform:scaleX(1)}
.immersive .service-list details:nth-child(2){transition-delay:.06s}
.immersive .service-list details:nth-child(3){transition-delay:.12s}
.immersive .service-list details:nth-child(4){transition-delay:.18s}
.immersive .projects{display:grid;grid-template-columns:.9fr 1.1fr;column-gap:7%;align-items:start;padding-bottom:130px}
.immersive .projects>.section-label{grid-column:1/-1}
.immersive .projects>.section-heading{display:block;position:sticky;top:100px;align-self:start}
.immersive .projects>.section-heading p{margin-top:28px}
.immersive .project-grid{display:block;padding-bottom:30px}
.immersive .project-card{position:sticky;top:85px;min-height:430px;margin-bottom:65px;padding:32px;background:#e9e9e7;box-shadow:0 -10px 36px rgba(25,25,27,.035);transform:scale(var(--card-scale,1));filter:brightness(var(--card-dim,1));transform-origin:center top;transition:none;opacity:1;border:1px solid #d8d8d5;border-radius:3px}
.immersive .project-card.reveal.visible{transform:scale(var(--card-scale,1))}
.immersive .project-card:nth-child(2){top:107px;background:#e3e1e2}
.immersive .project-card:nth-child(3){top:129px;background:#eae7e2;margin-bottom:0}
.immersive .project-mark{height:170px;font-size:40px}
.immersive .project-mark.ducati{font-size:53px}
.immersive .project-mark.lean{font-size:45px}
.immersive .project-scope{min-height:0}
.immersive .contact{clip-path:inset(0 var(--contact-inset,0%) round 12px)}
.immersive .contact-copy{transition-delay:.2s}
@media(max-width:900px){.immersive .projects{column-gap:5%;grid-template-columns:.8fr 1.2fr}.immersive .projects h2{font-size:42px}.immersive .project-card{padding:25px}}
@media(max-width:640px){.immersive .intro{border-radius:18px 18px 0 0;margin-top:-18px}.immersive .projects{display:block;padding-bottom:70px}.immersive .projects>.section-heading{position:static}.immersive .projects>.section-heading p{margin-top:0}.immersive .project-grid{padding-top:14px;padding-bottom:0}.immersive .project-card{top:24px;margin-bottom:45px;min-height:390px;padding:25px}.immersive .project-card:nth-child(2){top:38px}.immersive .project-card:nth-child(3){top:52px;margin-bottom:0}.immersive .project-mark{height:145px}.immersive .reveal{transform:translateY(28px)}}
@media(prefers-reduced-motion:reduce){.scroll-progress{display:none}.heading-line>span{transform:none!important}.hero-image,.hero-content{transform:none!important;opacity:1!important}.contact{clip-path:none!important}}
.custom-logo{max-width:180px;max-height:64px;object-fit:contain}.project-photo{display:block;width:100%;height:220px;object-fit:cover;margin:24px 0}.project-mark{white-space:pre-line;overflow-wrap:anywhere}.project-card:nth-child(n+4){top:129px}.immersive .project-card:nth-child(n+4){top:129px;background:#eae7e2}.immersive .project-card:has(.project-photo){min-height:520px}.brand-name{white-space:nowrap}.hero-content .button{max-width:100%}.image-note:empty{display:none}.intro-copy p,.project-scope,.contact-copy p{white-space:pre-line}@media(max-width:640px){.custom-logo{max-width:155px;max-height:50px}.project-photo{height:190px}.immersive .project-card:nth-child(n+4){top:52px}.immersive .project-card:has(.project-photo){min-height:480px}}
/* Project photography */
.project-gallery{margin:24px 0;min-width:0}.gallery-window{overflow:hidden;position:relative;border-radius:2px;touch-action:pan-y}.gallery-track{display:flex;transition:transform 1.6s cubic-bezier(.22,1,.36,1)}.gallery-slide{flex:0 0 100%;min-width:0;position:relative;border:0;background:#252326;padding:0;cursor:zoom-in;aspect-ratio:3/2;display:block;color:white}.gallery-slide img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.enlarge-hint{position:absolute;right:12px;bottom:12px;padding:8px 12px;background:#19191bbd;border-radius:3px;font-size:12px;pointer-events:none}.gallery-controls{display:flex;align-items:center;gap:15px;margin-top:12px}.gallery-controls button{font:inherit;font-size:14px;color:inherit;background:transparent;border:1px solid #c4bec3;min-width:42px;min-height:42px;border-radius:3px;cursor:pointer;padding:8px}.gallery-controls .gallery-pause{margin-left:auto;padding:8px 14px}.gallery-count{font-size:13px;font-variant-numeric:tabular-nums}.gallery-controls[hidden],.gallery-controls button[hidden]{display:none}.gallery-slide:focus-visible{outline:3px solid #d954a4;outline-offset:-4px}.immersive .project-card:has(.project-gallery){min-height:520px}.photo-lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:22px 4%;background:#111014f5;color:#fff;overflow:auto}.photo-lightbox[open]{display:flex;flex-direction:column;gap:12px}.photo-lightbox::backdrop{background:#111014ed;backdrop-filter:blur(8px)}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.photo-lightbox button{font:inherit;font-size:15px;color:#fff;background:#ffffff12;border:1px solid #ffffff50;border-radius:4px;min-width:48px;min-height:48px;padding:10px 16px;cursor:pointer}.photo-lightbox button:hover{background:#ffffff25}.photo-lightbox button:focus-visible{outline:3px solid #e88bc6;outline-offset:3px}.lightbox-stage{display:flex;align-items:center;justify-content:center;gap:18px;flex:1;min-height:0}.lightbox-image{object-fit:contain;max-width:calc(100% - 140px);width:auto;height:auto;max-height:calc(100dvh - 170px);touch-action:pan-y}.lightbox-caption{flex-shrink:0;text-align:center;color:#d2cbd5;font-size:14px;line-height:1.5;white-space:pre-line;margin:0 auto;max-width:900px}.photo-lightbox button[hidden]{display:none}.lightbox-position{font-size:14px;font-variant-numeric:tabular-nums}@media(max-width:640px){.gallery-slide{aspect-ratio:4/3}.immersive .project-card:has(.project-gallery){min-height:480px}.photo-lightbox{padding:16px}.lightbox-stage{position:relative;padding-bottom:60px}.lightbox-image{max-width:100%;max-height:calc(100dvh - 220px)}.lightbox-prev,.lightbox-next{position:absolute;bottom:0}.lightbox-prev{left:calc(50% - 58px)}.lightbox-next{right:calc(50% - 58px)}}@media(prefers-reduced-motion:reduce){.gallery-track{transition:none}}

/* Contact details and project headings */
.service-description{margin-left:0}.project-detail{margin-top:20px}.project-detail h3{overflow-wrap:anywhere}.contact-phone{display:block;margin-top:18px;font-size:18px}.contact-address{margin-top:18px;font-size:16px;font-style:normal;line-height:1.7;color:#c6c2c8;overflow-wrap:anywhere}.social-links{display:flex;flex-wrap:wrap;gap:18px;font-size:14px}.social-links a{padding:10px 0}.social-links a:hover,.contact-phone:hover{color:var(--accent)}@media(max-width:640px){.social-links{justify-content:flex-end;gap:8px 16px}}

.contact-details{margin:0}.contact-row{display:grid;grid-template-columns:85px minmax(0,1fr);gap:14px;margin-top:18px;align-items:baseline}.contact-row dt{font-size:14px;color:#df79b5;font-weight:500}.contact-row dd{margin:0;min-width:0}.contact-row .contact-phone,.contact-row .email,.contact-row .contact-address{margin:0;font-size:16px;line-height:1.7;overflow-wrap:anywhere}.contact-copy{min-width:0}@media(max-width:380px){.contact-row{grid-template-columns:75px minmax(0,1fr);gap:10px}}
