:root{color-scheme:dark;--paper:#eeeDEA;--muted:#a3a2a0;--ink:#050505;--gutter:4vw}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #dedbd2;outline-offset:7px}button{border:0}button,a{touch-action:manipulation}.skip{position:fixed;top:12px;left:12px;background:white;color:black;padding:15px;z-index:20;transform:translateY(-150%)}.skip:focus{transform:none}
.hero{height:100svh;min-height:740px;max-height:1300px;position:relative;isolation:isolate;overflow:clip;background:#030303}.atmosphere{position:absolute;inset:-20%;z-index:-3;background:radial-gradient(ellipse at 45% 20%,#34343070,transparent 43%),radial-gradient(ellipse at 78% 55%,#20202040,transparent 34%);animation:haze 35s ease-in-out infinite alternate}#particles{position:absolute;inset:0;width:100%;height:100%;z-index:-2;opacity:.75}
.header{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:44px var(--gutter);z-index:5}.brand{width:68px;height:68px;display:grid;place-items:center;perspective:650px;flex-shrink:0}.cube{width:58px;height:58px;position:relative;transform-style:preserve-3d;transform:rotateX(-9deg) rotateY(-14deg) rotateZ(-3deg)}.face{position:absolute;inset:0;background:#d8d7d4 url('assets/prpdc-logo.png') center/cover;backface-visibility:hidden;border:1px solid #aaa9a8}.face::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,#ffffff50,transparent 45%,#0004);mix-blend-mode:soft-light}.front{transform:translateZ(29px)}.back{transform:rotateY(180deg) translateZ(29px)}.right{transform:rotateY(90deg) translateZ(29px)}.left{transform:rotateY(-90deg) translateZ(29px)}.top{transform:rotateX(90deg) translateZ(29px)}.bottom{transform:rotateX(-90deg) translateZ(29px)}
.desktop-nav{display:flex;gap:42px;position:absolute;left:50%;transform:translateX(-50%)}.desktop-nav a{font-size:14px;letter-spacing:.025em;padding:12px 0;position:relative}.header-actions{display:flex;align-items:center;gap:21px}.contact-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid #ffffff25;border-radius:40px;background:#ffffff12;backdrop-filter:blur(12px);font-size:14px;letter-spacing:.025em;transition:background .3s,color .3s}.contact-button:hover{background:var(--paper);color:var(--ink)}.menu-toggle{width:38px;height:44px;background:none;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px}.menu-toggle span{display:block;width:22px;height:1px;background:var(--paper);transition:width .3s}.menu-toggle:hover span:last-child{width:14px}

.hero-bottom{position:absolute;bottom:44px;left:var(--gutter);right:var(--gutter);display:grid;grid-template-columns:minmax(420px,620px) auto;justify-content:space-between;align-items:end;gap:8vw}.eyebrow{font-size:12px;letter-spacing:.11em;font-weight:400;margin:0 0 22px;color:var(--muted)}h1{font-size:clamp(25px,2.35vw,38px);line-height:1.3;font-weight:400;letter-spacing:-.035em;margin:0;max-width:640px}.hero-services{padding-bottom:3px}.service-columns{display:flex;gap:45px}.service-columns ul{list-style:none;padding:0;margin:0;white-space:nowrap}.service-columns li{font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.8;color:#b3b1ae}.hero-foot{position:absolute;bottom:29px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center}.hero-foot>a{font-size:11px;letter-spacing:.12em;display:flex;gap:18px;align-items:center;color:#9e9c98}.scroll-line{display:inline-block;height:1px;width:65px;background:#6c6a66}.hero-foot button{background:transparent;display:flex;align-items:center;gap:13px;color:#a6a39e;font-size:12px;padding:10px 0}.hero-foot button span{font-size:18px;color:var(--paper)}
.chapter{padding:75px var(--gutter) 85px;min-height:290px;border-top:1px solid #ffffff26;background:#080808;scroll-margin-top:0}.chapter-index{font-size:12px;color:var(--muted);letter-spacing:.09em}.chapter h2{font-weight:400;font-size:clamp(34px,4.8vw,72px);line-height:1.08;letter-spacing:-.055em;margin:34px 0 0}.feature-placeholders{margin-top:55px;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.feature-placeholders h3{font-weight:400;font-size:20px;border-top:1px solid #333;padding-top:25px;margin:0}.feature-placeholders span{font-size:12px;color:var(--muted);display:block;margin-bottom:16px}.contact h2{font-size:clamp(70px,13vw,180px);margin-bottom:30px}.footer-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding-top:100px}.menu-panel{position:fixed;inset:24px 24px 24px auto;margin:0;width:min(620px,calc(100vw - 48px));max-width:none;height:calc(100svh - 48px);max-height:none;border:0;border-radius:4px;background:#e6e5e1;color:#191919;padding:28px 36px;box-shadow:0 20px 100px #0006;overflow:auto}.menu-panel::backdrop{background:#0008;backdrop-filter:blur(8px)}.menu-panel[open]{animation:menu-in .7s cubic-bezier(.22,1,.36,1)}.menu-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.menu-head .eyebrow{color:#666;margin:0}.menu-close{font-size:40px;font-weight:300;background:none;width:44px;height:44px;line-height:1}.menu-panel nav{display:flex;flex-direction:column}.menu-panel nav a{display:flex;align-items:center;justify-content:space-between;font-size:clamp(28px,4vw,49px);letter-spacing:-.045em;line-height:1.3;padding:2px 0;transition:opacity .2s,transform .3s}.menu-panel nav a:hover{transform:translateX(7px)}.menu-panel nav a span{font-size:12px;letter-spacing:0;color:#777}.menu-contact{display:inline-block;margin-top:50px;font-size:15px;border-bottom:1px solid #999;padding-bottom:5px}
@keyframes cube-turn{0%,100%{transform:rotateX(-9deg) rotateY(-14deg) rotateZ(-3deg)}22%{transform:rotateX(7deg) rotateY(80deg) rotateZ(3deg)}48%{transform:rotateX(-82deg) rotateY(99deg) rotateZ(-6deg)}73%{transform:rotateX(-15deg) rotateY(185deg) rotateZ(4deg)}}@keyframes haze{to{transform:translate(6%,3%) scale(1.1)}}@keyframes menu-in{from{transform:translateX(calc(100% + 24px))}to{transform:translateX(0)}}
.motion-paused .cube,.motion-paused .atmosphere{animation-play-state:paused}
@media(min-width:1600px){.hero-bottom{grid-template-columns:700px auto}.service-columns li{font-size:20px}.service-columns{gap:65px}}
@media(max-width:1050px){.desktop-nav{gap:25px}.hero-bottom{gap:40px;grid-template-columns:1.25fr 1fr}.service-columns{gap:22px}.service-columns li{font-size:15px}.header-actions{gap:10px}.hero{min-height:730px}h1{font-size:28px}}
@media(max-width:760px){:root{--gutter:6vw}.hero{min-height:900px;max-height:none}.header{padding-top:28px}.brand{width:48px;height:48px}.cube{width:44px;height:44px}.front{transform:translateZ(22px)}.back{transform:rotateY(180deg) translateZ(22px)}.right{transform:rotateY(90deg) translateZ(22px)}.left{transform:rotateY(-90deg) translateZ(22px)}.top{transform:rotateX(90deg) translateZ(22px)}.bottom{transform:rotateX(-90deg) translateZ(22px)}.desktop-nav{display:none}.contact-button{min-height:43px;padding:0 18px}.header-actions{gap:10px}.hero-bottom{bottom:28px;display:block}.intro{max-width:540px}.eyebrow{font-size:11px;margin-bottom:15px}h1{font-size:25px;line-height:1.28}.hero-services{margin-top:26px}.hero-services .eyebrow{display:none}.service-columns{gap:40px}.service-columns li{font-size:15px;line-height:1.7}.hero-foot{bottom:21px}.scroll-line{width:26px}.hero-foot>a{font-size:10px}.chapter{padding-top:50px;min-height:240px}.feature-placeholders{grid-template-columns:1fr;gap:30px}.menu-panel{inset:12px;width:calc(100vw - 24px);height:calc(100svh - 24px);padding:22px 26px}.menu-panel nav a{font-size:39px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cube,.atmosphere,.menu-panel[open]{animation:none}*{transition:none!important}}

/* Hero-only revision: original bokeh replaces the approximation. */
.hero{background:#000;max-height:none}#particles{opacity:1;z-index:-2}body{font-family:interstate,Arial,Helvetica,sans-serif}h1{font-weight:500;letter-spacing:0;line-height:1.33}.hero-services li{font-family:interstate,Arial,Helvetica,sans-serif}.hero-foot{justify-content:flex-end}

.hero-bottom{grid-template-columns:minmax(420px,730px) auto;gap:5vw}h1{font-size:clamp(27px,2.55vw,40px)}
@media(max-width:1050px){.hero-bottom{grid-template-columns:1.25fr 1fr;gap:35px}h1{font-size:28px}}
@media(max-width:760px){.hero-bottom{display:block}h1{font-size:25px}}



/* Polished white-metal mark; graphite variant for a future light surface. */
.brand{--metal-base:linear-gradient(132deg,#fafbfc 0%,#a9adb1 19%,#eef0f1 36%,#fff 48%,#b6babd 63%,#e2e5e7 82%,#92989d 100%);--metal-border:#dadfe3;--mark-blend:multiply;--mark-filter:none;--edge-light:#ffffffb3;--edge-shadow:#14171b70;--shine:linear-gradient(112deg,transparent 20%,#ffffff05 35%,#fff9 46%,#fff 49%,#fff2 55%,transparent 70%)}
.face{background:var(--metal-base);border:1px solid var(--metal-border);box-shadow:inset 1px 1px 1px var(--edge-light),inset -1px -1px 2px var(--edge-shadow);overflow:hidden}
.face::before{content:"";position:absolute;inset:0;background:url('assets/prpdc-logo.png') center/cover;mix-blend-mode:var(--mark-blend);filter:var(--mark-filter)}
.face::after{background:var(--shine);mix-blend-mode:screen;opacity:.55;transform:translateX(-32%)}
.right,.left{filter:brightness(.76)}.top{filter:brightness(1.08)}.bottom{filter:brightness(.58)}
.brand.is-rolling .cube{animation:logo-roll 1.7s cubic-bezier(.3,.05,.2,1) both}
.brand.is-rolling .face::after{animation:metal-sweep 1.7s ease-in-out both}
@keyframes logo-roll{0%{transform:rotateX(-9deg) rotateY(-14deg) rotateZ(-3deg)}40%{transform:translateY(-5px) rotateX(81deg) rotateY(136deg) rotateZ(-3deg)}75%{transform:translateY(-2px) rotateX(261deg) rotateY(301deg) rotateZ(-3deg)}100%{transform:rotateX(351deg) rotateY(346deg) rotateZ(-3deg)}}
@keyframes metal-sweep{0%{transform:translateX(-110%);opacity:.2}45%{opacity:.85}100%{transform:translateX(110%);opacity:.2}}
[data-theme="light"] .brand,.brand[data-metal="black"]{--metal-base:linear-gradient(132deg,#111418,#535a63 22%,#171b20 38%,#616974 49%,#080a0d 65%,#30363d 83%,#101318);--metal-border:#333b45;--mark-blend:screen;--mark-filter:invert(1);--edge-light:#adb7c066;--edge-shadow:#000b}
.motion-paused .brand.is-rolling .cube,.motion-paused .brand.is-rolling .face::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.brand.is-rolling .cube,.brand.is-rolling .face::after{animation:none}}

/* Approved identity: front-on at rest, sharp metal cube on interaction. */
.brand{perspective:none;width:76px;height:76px}.brand #brand-cube{display:block;width:76px;height:76px;pointer-events:none}

@media(max-width:760px){.brand,.brand #brand-cube{width:60px;height:60px}}

/* Fixed logo scale: larger transparent render area prevents corner clipping. */
.brand{position:relative;overflow:visible}.brand #brand-cube{position:absolute;width:114px;height:114px;left:50%;top:50%;transform:translate(-50%,-50%)}
.hero-bottom{align-items:start}.hero-services{position:relative}
.services-heading{position:static;margin:0 0 15px;font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:17px;line-height:1.8;letter-spacing:0;color:var(--paper)}
.hero-foot #motion-toggle{width:44px;height:44px;display:grid;place-items:center;padding:0;border-radius:50%;color:#c0bfbc}
#motion-toggle svg{width:20px;height:20px;display:block}#motion-toggle:hover{background:#ffffff0d;color:#fff}
@media(max-width:760px){.brand #brand-cube{width:90px;height:90px}.hero-services{margin-top:30px}.services-heading{margin:0 0 14px;font-size:15px}}

@media(min-width:1600px){.services-heading{font-size:20px}}
@media(min-width:761px) and (max-width:1050px){.services-heading{font-size:15px}}

/* Selected work occupies one horizontal row, with native touch momentum. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.featured-work{position:relative;background:#000;padding:24px 0 0;scroll-margin-top:0}
.work-track{display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;padding:0 var(--gutter);scroll-padding-inline:var(--gutter);scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;cursor:grab;outline-offset:-4px}
.work-track::-webkit-scrollbar{display:none}.work-track.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}.work-track.is-coasting{scroll-snap-type:none}
.feature{position:relative;flex:0 0 100%;min-width:0;aspect-ratio:2/1;max-height:76svh;overflow:hidden;scroll-snap-align:start;background:#000}
.feature-link{display:block;position:relative;width:100%;height:100%;color:#fff;overflow:hidden;isolation:isolate;-webkit-user-drag:none}
.feature-media{position:absolute;inset:0}.feature-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;-webkit-user-drag:none;user-select:none}
.feature-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0004,transparent 25%,transparent 52%,#0009)}
.feature-top{position:absolute;inset:28px 30px auto;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.025em;color:#b4b4b4;text-shadow:0 1px 10px #0009}.feature-total{opacity:.65;padding-left:4px}
.feature-caption{position:absolute;inset:auto 30px 30px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;text-shadow:0 2px 16px #0009}
.feature-title h2{font-size:clamp(26px,3vw,44px);line-height:1.1;font-weight:700;letter-spacing:-.025em;margin:0 0 9px}.feature-title p{font-size:14px;line-height:1.4;margin:0;color:#eee}
.feature-cta{display:flex}.feature-arrow{width:36px;height:36px;color:#bbb;border:1px solid #b0b0b080;border-radius:50%;display:grid;place-items:center;transition:background .25s,color .25s}
.feature-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.feature-link:hover .feature-arrow,.feature-link:focus-visible .feature-arrow{background:#ffffff12;color:#eee;transform:none}
.feature-link:focus-visible{outline:2px solid white;outline-offset:-6px}

/* Original client marks, in three continuous opposing rows. */
.clients{overflow:hidden;padding:90px 0 100px;background:#000;scroll-margin-top:25px}.clients-head{display:flex;align-items:center;justify-content:space-between;margin:0 var(--gutter) 44px}.clients-head h2{font-family:inherit;font-weight:400;font-size:13px;line-height:1.5;letter-spacing:.045em;color:#999;margin:0}
.logo-row{--logo-gap:clamp(18px,2.5vw,40px);--edge-fade:clamp(32px,8vw,150px);padding:0;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--edge-fade),#000 calc(100% - var(--edge-fade)),transparent);mask-image:linear-gradient(to right,transparent,#000 var(--edge-fade),#000 calc(100% - var(--edge-fade)),transparent)}.logo-track{display:flex;width:max-content;animation:client-march 110s linear infinite;animation-play-state:paused}.logo-row:nth-child(even) .logo-track{animation-direction:reverse}.logo-row:nth-child(3) .logo-track{animation-duration:118s}.logo-row:nth-child(4) .logo-track{animation-duration:106s}
.logo-group{display:flex;gap:var(--logo-gap);align-items:center;list-style:none;margin:0;padding:0 var(--logo-gap) 0 0;flex:none}.logo-group li{width:220px;height:176px;display:grid;place-items:center;flex:none}.logo-group img{display:block;width:220px;height:auto;max-width:none;max-height:none;object-fit:contain}
.clients.is-running:not(.is-paused) .logo-row[data-ready="true"] .logo-track{animation-play-state:running}
@keyframes client-march{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:760px){.featured-work{padding-top:12px}.work-track{gap:12px}.feature{aspect-ratio:4/3;max-height:none}.feature-top{inset:18px 18px auto;font-size:10px}.feature-caption{inset:auto 18px 20px;gap:12px}.feature-title h2{font-size:25px;margin-bottom:6px}.feature-title p{font-size:12px}.feature-arrow{width:32px;height:32px}.feature-arrow svg{width:15px;height:15px}.clients{padding:55px 0 66px}.clients-head{margin-bottom:24px}.logo-row{padding:0}.logo-group li{width:180px;height:144px}.logo-group img{width:180px;max-width:none;max-height:none}}
@media(prefers-reduced-motion:reduce){.work-track{scroll-behavior:auto}.logo-row{overflow-x:auto}.logo-track{animation:none}.logo-group[aria-hidden=true]{display:none}}

/* The same logo canvas travels from the loading stage into its header slot. */
.brand-fallback{width:82%;height:82%;object-fit:contain}
#brand-cube:not([data-ready="true"]){opacity:0}
#brand-cube[data-ready="true"]~.brand-fallback{visibility:hidden}
html.intro-loading{overflow:hidden}
html.intro-loading .brand{translate:calc(50vw - var(--gutter) - 38px) calc(50svh - 82px);pointer-events:none}
html.intro-loading .desktop-nav,html.intro-loading .header-actions,html.intro-loading .intro,html.intro-loading .hero-services{opacity:0}
@media(max-width:760px){html.intro-loading .brand{translate:calc(50vw - var(--gutter) - 30px) calc(50svh - 58px)}}
@media(prefers-reduced-motion:reduce){html.intro-loading{overflow:auto}html.intro-loading .brand{translate:none}html.intro-loading .desktop-nav,html.intro-loading .header-actions,html.intro-loading .intro,html.intro-loading .hero-services{opacity:1}}

/* The opening scene emerges together from a solid black screen. */
html.intro-loading::after{content:"";position:fixed;inset:0;background:#000;z-index:100;pointer-events:none}
html.intro-loading.intro-lit::after{animation:entrance-from-black 1.2s cubic-bezier(.4,0,.2,1) both}
@keyframes entrance-from-black{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){html.intro-loading::after{display:none}}

/* The panel arrives from the right; its contents follow in a quiet stagger. */
.menu-panel[open] .menu-head,.menu-panel[open] nav a,.menu-panel[open] .menu-contact{animation:menu-copy-in .65s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--menu-delay,.16s)}
.menu-panel nav a:nth-child(1){--menu-delay:.2s}.menu-panel nav a:nth-child(2){--menu-delay:.25s}.menu-panel nav a:nth-child(3){--menu-delay:.3s}.menu-panel nav a:nth-child(4){--menu-delay:.35s}.menu-panel nav a:nth-child(5){--menu-delay:.4s}.menu-panel nav a:nth-child(6){--menu-delay:.45s}.menu-panel nav a:nth-child(7){--menu-delay:.5s}.menu-panel .menu-contact{--menu-delay:.55s}
@keyframes menu-copy-in{from{opacity:0;translate:32px 0}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.menu-panel[open] .menu-head,.menu-panel[open] nav a,.menu-panel[open] .menu-contact{animation:none}}

/* Direct desktop navigation; an edge-to-edge drawer on compact screens. */
.menu-toggle{display:none}
.menu-panel{inset:0 0 0 auto;width:min(460px,100vw);height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:24px clamp(24px,6vw,40px) max(28px,env(safe-area-inset-bottom));box-shadow:none}
.menu-panel[open]{display:flex;flex-direction:column}
.menu-head{justify-content:flex-end;margin-bottom:30px;flex-shrink:0}.menu-panel nav{gap:8px}.menu-panel nav a{font-size:clamp(34px,8vw,49px);font-weight:700;letter-spacing:-.035em;line-height:1.18;padding:3px 0}
.menu-contact{display:flex;justify-content:space-between;align-items:center;min-height:60px;flex-shrink:0;margin-top:auto;padding:16px 23px;border:1px solid #181818;border-radius:40px;background:#181818;color:#f5f4f0;font-size:19px;font-weight:600}
.menu-panel nav{margin-bottom:44px}.menu-contact span{font-size:25px}.menu-contact:hover{background:#333}.menu-contact:focus-visible{outline:2px solid #111;outline-offset:5px}
@media(max-width:900px){.desktop-nav{display:none}.menu-toggle{display:flex}}
@media(max-width:760px){.hero{height:100svh;min-height:800px}.header{padding:24px var(--gutter)}.hero-bottom{bottom:28px}.intro h1{font-size:clamp(22px,5.7vw,28px);line-height:1.28}.hero-services{margin-top:25px}.services-heading{font-size:15px;margin-bottom:10px}.service-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.service-columns ul{white-space:normal}.hero-services li{font-size:14px;line-height:1.85}html.intro-loading .brand{translate:calc(50vw - var(--gutter) - 30px) calc(50svh - 54px)}}
@media(max-width:480px){.header-actions>.contact-button{display:none}.menu-panel{width:100vw}}
@media(max-height:650px){.menu-panel{padding-top:16px}.menu-head{margin-bottom:12px}.menu-panel nav{gap:3px;margin-bottom:24px}.menu-panel nav a{font-size:30px}.menu-contact{min-height:50px;padding-block:10px}}



/* Rolling text uses the same gentle ease as the page entrance. */
.desktop-nav a{min-height:44px;display:flex;align-items:center;color:#aaa;transition:color .55s cubic-bezier(.22,1,.36,1)}
.nav-mask{display:block;height:2.2em;overflow:hidden;line-height:2.2;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 .5em,#000 1.7em,transparent);mask-image:linear-gradient(to bottom,transparent,#000 .5em,#000 1.7em,transparent)}
.nav-mask>span{display:block;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.desktop-nav a:hover,.desktop-nav a:focus-visible{color:#eeedea}
.desktop-nav a:hover .nav-mask>span,.desktop-nav a:focus-visible .nav-mask>span{transform:translateY(-100%)}
@media(prefers-reduced-motion:reduce){.nav-mask>span{transition:none}.desktop-nav a:hover .nav-mask>span,.desktop-nav a:focus-visible .nav-mask>span{transform:none}}

/* Section entrances share the hero's easing; the carousel and marquee retain
   their own movement. Entrances begin farther inside the viewport, with a deliberate image/copy stagger. */
.feature.reveal-ready .feature-media,.feature.reveal-ready .feature-shade,
.feature.reveal-ready .feature-top,.feature.reveal-ready .feature-caption,
.clients-head.reveal-ready,.logo-row.reveal-ready .logo-track{
 transition:opacity 1.25s cubic-bezier(.22,1,.36,1),translate 1.65s cubic-bezier(.22,.7,.2,1),scale 1.8s cubic-bezier(.22,1,.36,1)
}
.feature.reveal-ready .feature-top{transition-delay:.35s}
.feature.reveal-ready .feature-caption{transition-delay:.55s}
.feature.reveal-pending .feature-media{opacity:0;scale:1.06;translate:0 72px}
.feature.reveal-pending .feature-shade{opacity:0}
.feature.reveal-pending .feature-top{opacity:0;translate:0 -36px}
.feature.reveal-pending .feature-caption{opacity:0;translate:0 64px}
.clients-head.reveal-pending{opacity:0;translate:0 48px}
.logo-row.reveal-ready .logo-track{transition-delay:.16s}
.logo-row.reveal-pending .logo-track{opacity:0;translate:96px 0}
.logo-row.reveal-pending:nth-child(even) .logo-track{translate:-96px 0}
.reveal-instant,.reveal-instant *{transition:none!important}
@media(prefers-reduced-motion:reduce){
 .feature.reveal-ready .feature-media,.feature.reveal-ready .feature-shade,
 .feature.reveal-ready .feature-top,.feature.reveal-ready .feature-caption,
 .clients-head.reveal-ready,.logo-row.reveal-ready .logo-track{
  transition:none;opacity:1;translate:none;scale:none
 }
}

/* On phones, copy participates in layout so larger text and shorter screens
   expand the hero instead of consuming the artwork's reserved space. */
@media(max-width:760px){
 .hero{display:flex;flex-direction:column;height:auto;min-height:100svh;padding-top:calc(148px + clamp(240px,82vw,360px))}
 .hero-bottom{position:relative;inset:auto;margin: auto var(--gutter) 0;padding-bottom:56px;flex:none}
 .hero-services li{overflow-wrap:anywhere}
}

/* Keep the close and contact controls reachable in landscape; only the link
   list scrolls when the available menu height is short. */
.menu-panel nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.menu-panel nav a{flex:none}

/* Quiet metal surfaces follow the logo's titanium / chrome material direction. */
.menu-panel{background:radial-gradient(ellipse at 100% 0,#fff9,transparent 55%),linear-gradient(145deg,#deddd9,#eeede9 48%,#d6d5d1);box-shadow:inset 1px 0 #fff8}
.menu-panel nav a{border-bottom:0;padding-block:7px}
.menu-enquiry{flex:none;padding-top:14px;border-top:1px solid #17171724}
.menu-enquiry p{margin:0 0 12px;font-size:11px;letter-spacing:.045em;color:#666}
.glass-button{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:54px;padding:15px 20px;border:1px solid #707780;border-radius:12px;background:linear-gradient(125deg,#15191f 0%,#393f48 27%,#171c23 47%,#444c58 66%,#161a20 100%);box-shadow:inset 0 1px 0 #d8e2f06b,inset 0 -1px 0 #0009,0 4px 12px #0002;color:#fafafa;font-size:16px;font-weight:500;text-align:left;line-height:1.3;transition:box-shadow .35s,filter .35s}
.glass-button::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#ffffff18 48%,transparent 70%);opacity:.55;transition:opacity .4s}
.glass-button:hover{filter:brightness(1.12);box-shadow:inset 0 1px 0 #e5efffa6,inset 0 -1px 0 #0009,0 5px 18px #0003}
.glass-button:hover::before{opacity:1}.glass-button:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.glass-button span{font-size:21px;flex:none}.menu-contact{width:100%;margin:0}
[data-finish="chrome"] .glass-button,.glass-button.finish-chrome{background:linear-gradient(125deg,#b9bdc2,#f5f6f7 24%,#c4c8ce 43%,#fff 58%,#bdc3ca 83%,#ebedf0);border-color:#969da5;color:#171b21;box-shadow:inset 0 1px #fff,inset 0 -1px #8a929b,0 5px 16px #0002}
[data-finish="satin"] .glass-button,.glass-button.finish-satin{background:linear-gradient(135deg,#313943,#58616d 48%,#303740);border-color:#8c96a0;color:#fff;box-shadow:inset 0 1px #ffffff70,inset 0 -1px #0008,0 4px 12px #0002}
.enquiry-panel{inset:0;width:min(850px,calc(100vw - 48px));height:min(920px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);max-width:none;padding:0;border:1px solid #ffffff60;border-radius:0;background:#e9e8e4;color:#202123;overflow:auto;overscroll-behavior:contain}
.enquiry-panel::backdrop{background:#000b;backdrop-filter:blur(12px)}
.enquiry-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 32px;border-bottom:1px solid #0002;background:#e9e8e4ed;backdrop-filter:blur(16px)}
.enquiry-head>span{font-size:12px;letter-spacing:.04em;color:#626366}.enquiry-close{width:44px;height:44px;font-size:32px;background:none;color:#222}
.enquiry-body{padding:36px 48px 44px}.enquiry-kicker{font-size:12px;letter-spacing:.04em;color:#747578;margin:0 0 15px}.enquiry-body h2{font-size:clamp(36px,5vw,58px);font-weight:500;line-height:1.05;letter-spacing:-.035em;margin:0 0 22px}
.enquiry-intro{max-width:530px;font-size:16px;line-height:1.5;color:#57595d}.enquiry-preview{padding:12px 0;color:#626469;font-size:12px;line-height:1.5;border-top:1px solid #0002;border-bottom:1px solid #0002;margin:24px 0}
.enquiry-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.enquiry-panel form>label{display:block;margin:26px 0}.enquiry-panel label,.service-choices legend{font-size:14px;font-weight:500}.enquiry-panel label>span,.service-choices legend>span{color:#777}
.enquiry-panel input:not([type=checkbox]):not([type=radio]),.enquiry-panel select,.enquiry-panel textarea{display:block;width:100%;min-width:0;margin-top:9px;padding:12px 0;border:0;border-bottom:1px solid #919397;border-radius:0;background:transparent;font:400 16px/1.5 interstate,Arial,sans-serif;color:#25272a;outline-offset:4px}
.enquiry-panel select{color-scheme:light}.enquiry-panel textarea{resize:vertical;min-height:100px}.enquiry-panel input::placeholder,.enquiry-panel textarea::placeholder{color:#7a7b7f;font-size:14px}
.service-choices{border:0;padding:0;margin:30px 0}.service-choices>p{font-size:12px;color:#777;margin:6px 0 14px}.service-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.service-options label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #b4b5b5;border-radius:0;min-height:46px;font-weight:400;cursor:pointer}.service-options label:has(:checked){background:#d2d3d2;border-color:#6d7278}.service-options input{accent-color:#383e46;width:16px;height:16px;margin:0;flex:none}.field-error{color:#8f2929!important}
.enquiry-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px}.enquiry-actions>span{font-size:12px;color:#777}.enquiry-edit{background:none;padding:12px 0;text-decoration:underline;color:#333}
.enquiry-review h3{font-size:30px;font-weight:500}.enquiry-review dt{font-size:12px;color:#73767a;margin-top:22px}.enquiry-review dd{margin:5px 0 0;font-size:16px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.enquiry-panel [hidden]{display:none!important}
@media(max-width:760px){
 .featured-work{padding-top:0}.work-track{gap:0;padding-inline:0;scroll-padding-inline:0}.feature{flex-basis:100%;aspect-ratio:4/5}
 .logo-row{--logo-gap:4px;--edge-fade:24px;--logo-size:calc((100vw - 12px)/3.6)}
 .logo-group li{width:var(--logo-size);height:calc(var(--logo-size)*.8)}.logo-group img{width:var(--logo-size)}
 .feature.reveal-ready .feature-media,.feature.reveal-ready .feature-shade,.feature.reveal-ready .feature-top,.feature.reveal-ready .feature-caption,.clients-head.reveal-ready,.logo-row.reveal-ready .logo-track{transition:opacity .7s ease;transition-delay:0s;translate:none;scale:none}
 .logo-row.reveal-pending:nth-child(even) .logo-track{translate:none}
 .enquiry-panel{width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0}
 .enquiry-head{padding:10px 22px}.enquiry-body{padding:26px 22px 36px}.enquiry-grid{grid-template-columns:1fr;gap:24px}.enquiry-body h2{font-size:42px}.enquiry-actions{align-items:stretch;flex-direction:column;gap:12px}.enquiry-actions .glass-button{width:100%}.service-options label{font-size:13px;padding:10px}
}
@media(max-height:650px){.menu-enquiry{padding-top:10px}.menu-enquiry p{margin-bottom:8px}.menu-panel nav a{padding-block:3px}}
@media(prefers-reduced-motion:reduce){.feature.reveal-ready .feature-media,.feature.reveal-ready .feature-shade,.feature.reveal-ready .feature-top,.feature.reveal-ready .feature-caption,.clients-head.reveal-ready,.logo-row.reveal-ready .logo-track{transition:none;opacity:1;translate:none;scale:none}}

/* The mobile card carries one clear title; supporting detail sits beneath it. */
@media(max-width:760px){
 .feature-top{inset:20px 22px auto}.feature-top>span:last-child{display:none}
 .feature-caption{inset:auto 22px 26px;align-items:center;gap:16px}
 .feature-title h2{font-size:28px;line-height:1.1;margin-bottom:10px}
 .feature-title p{font-size:11px;color:#d0d0d0;line-height:1.5;max-width:240px}
 .feature-arrow{border:0;width:24px;height:32px;color:#eee}.feature-arrow svg{width:22px;height:22px}
 .feature-link:hover .feature-arrow{background:none}
}
/* The black metal logo is the menu action, with plain accompanying type. */
.menu-enquiry{border:0;padding-top:16px}
.project-start{display:flex;align-items:center;gap:20px;width:100%;min-height:88px;padding:0;background:none;border:0;border-radius:0;text-align:left;color:#1b1c1d}
.menu-mark{position:relative;display:block;width:70px;height:70px;flex:none}
.menu-mark canvas{position:absolute;width:105px;height:105px;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.menu-mark img{position:absolute;width:82%;height:82%;left:9%;top:9%;filter:invert(1);pointer-events:none}
.menu-mark canvas:not([data-ready="true"]){opacity:0}.menu-mark canvas[data-ready="true"]+img{visibility:hidden}
.project-label{font-size:22px;font-weight:500;letter-spacing:-.015em;transition:translate .6s cubic-bezier(.22,1,.36,1)}
.project-arrow{margin-left:auto;font-size:26px;transition:translate .6s cubic-bezier(.22,1,.36,1)}
.project-start:hover .project-label,.project-start:focus-visible .project-label{translate:5px 0}
.project-start:hover .project-arrow,.project-start:focus-visible .project-arrow{translate:3px -3px}
.enquiry-panel{width:min(760px,calc(100vw - 48px));height:auto;max-height:calc(100dvh - 48px);border-radius:0}
.enquiry-panel[open]{animation:enquiry-arrive .8s cubic-bezier(.22,1,.36,1) both}
.enquiry-panel[open]::backdrop{animation:enquiry-backdrop .65s ease both}
@keyframes enquiry-arrive{from{opacity:0;translate:70px 0;clip-path:inset(0 0 0 12%)}to{opacity:1;translate:0 0;clip-path:inset(0)}}
@keyframes enquiry-backdrop{from{background:#0000;backdrop-filter:blur(0)}to{background:#000b;backdrop-filter:blur(12px)}}
.enquiry-body{padding:30px 44px 28px}.enquiry-progress{font-size:11px;letter-spacing:.06em;color:#727478;margin:0 0 26px}
.enquiry-body h2{font-size:clamp(32px,4vw,48px);line-height:1.08;outline:none}
.enquiry-panel [data-step]>label{display:block;margin:22px 0}
.enquiry-panel [data-step] .enquiry-intro{font-size:15px;margin-bottom:28px}
.enquiry-panel input:not([type=checkbox]):not([type=radio]){padding:9px 0}
.enquiry-actions{margin-top:30px}.enquiry-primary{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#202225;color:#f4f3ef;border:1px solid #202225;border-radius:0;padding:14px 18px;min-height:50px;font-size:15px}
.enquiry-primary:hover{background:#383b40}.enquiry-primary span{font-size:20px}.enquiry-back,.enquiry-optional,.enquiry-edit-links button{background:none;color:#444;padding:12px 0;font-size:14px;text-align:left}
.enquiry-optional{display:block;border-top:1px solid #0002;border-bottom:1px solid #0002;width:100%;margin-top:26px}.enquiry-optional span{color:#777;font-size:12px}
.contact-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:0;margin:0;padding:0}
.contact-choices label{display:flex;align-items:center;gap:10px;border:1px solid #a5a7a9;min-height:58px;padding:12px;cursor:pointer}
.contact-choices label:has(:checked){border-color:#292c30;background:#dbdcda}
.contact-choices input{width:16px;height:16px;accent-color:#222;margin:0}
.availability{margin-top:24px}.availability>p{font-size:14px;color:#62666a;line-height:1.5}.availability>label{display:block;margin-bottom:22px}.availability-note{font-size:12px!important}
.enquiry-edit-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:22px}.enquiry-edit-links button{text-decoration:underline;text-underline-offset:4px}
.enquiry-preview{font-size:11px;border:0;margin:28px 0 0;padding:0;line-height:1.5}
@media(max-width:760px){
 .enquiry-panel{inset:0;width:100vw;height:100dvh;max-height:100dvh;border:0}
 .enquiry-body{padding:26px 24px}.enquiry-body h2{font-size:36px}
 .enquiry-actions{flex-direction:row;align-items:center;gap:12px}.enquiry-primary{min-width:145px}
 .enquiry-panel .enquiry-grid{grid-template-columns:1fr 1fr;gap:18px 12px}
 .enquiry-panel .enquiry-grid label{min-width:0}.enquiry-panel input[type=date],.enquiry-panel input[type=time]{min-width:0;width:100%;font-size:14px}
 .enquiry-panel .service-options{gap:8px}.enquiry-progress{margin-bottom:22px}
}
@media(max-height:650px){.project-start{min-height:76px}.menu-enquiry{padding-top:8px}.menu-mark{width:58px;height:58px}.menu-mark canvas{width:87px;height:87px}}
@media(prefers-reduced-motion:reduce){.enquiry-panel[open],.enquiry-panel[open]::backdrop{animation:none}.project-label,.project-arrow{transition:none}}

/* Four centered destinations, with a living identity and compact enquiry pill. */
.menu-panel nav{justify-content:center;align-items:center;gap:15px;margin-bottom:26px}
.menu-panel nav a{justify-content:center;text-align:center;font-size:clamp(42px,10.5vw,54px);font-weight:500;line-height:1.15;padding:6px 12px;letter-spacing:-.035em}
.menu-panel nav a:hover{transform:none;opacity:.65}
.menu-enquiry{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px 0 0}
.menu-mark{border:0;outline-offset:7px}
.project-start{width:auto;min-height:48px;height:48px;gap:14px;padding:0 18px;border:1px solid #5558;border-radius:999px;background:linear-gradient(135deg,#ffffff78,#ffffff20);box-shadow:inset 0 1px #fff9;backdrop-filter:blur(12px);transition:background .35s,border-color .35s}
.project-label{font-size:15px;font-weight:500;letter-spacing:0;white-space:nowrap}.project-arrow{font-size:20px;margin:0}
.project-start:hover{background:#ffffff85;border-color:#444}.project-start:hover .project-label,.project-start:focus-visible .project-label{translate:0 0}
/* Ground the small glass arrow beside the services line. */
.feature-caption{align-items:flex-end}
.feature-arrow{width:32px;height:32px;border:1px solid #ffffff50;border-radius:50%;background:#ffffff0e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px #ffffff24}
.feature-arrow svg{width:14px;height:14px}
.feature-link:hover .feature-arrow{background:#ffffff20}
/* Enlarge artwork within the existing cells; cell spacing remains unchanged. */
.logo-group img{transform:none;transform-origin:center}
@media(max-width:760px){.logo-group img{transform:scale(1.18)}}
@media(max-width:760px){
 .feature-caption{align-items:flex-end}.feature-arrow{width:28px;height:28px;transform:translateY(4px)}
 .feature-arrow svg{width:13px;height:13px}.feature-link:hover .feature-arrow{transform:translateY(4px)}
}
@media(max-height:650px){.menu-panel nav{gap:7px;margin-bottom:15px}.menu-panel nav a{font-size:38px;padding-block:4px}.menu-enquiry{padding-top:8px}.project-start{min-height:46px;height:46px}}
@media(max-height:450px){.menu-panel nav{justify-content:flex-start;gap:3px}.menu-panel nav a{font-size:30px}}
/* Dark enquiry, retaining the approved square geometry and staged layout. */
.enquiry-panel{background:#000;color:#eeedea;border-color:#ffffff25;color-scheme:dark}
.enquiry-head{background:#000000ed;border-bottom-color:#ffffff20}.enquiry-head>span,.enquiry-progress{color:#aaa}.enquiry-close{color:#eeedea}
.enquiry-intro,.availability>p{color:#b3b3b3}.enquiry-preview{color:#999}
.enquiry-panel label>span,.service-choices legend>span,.enquiry-actions>span,.enquiry-optional span{color:#999}
.enquiry-panel input:not([type=checkbox]):not([type=radio]),.enquiry-panel select,.enquiry-panel textarea{color:#eeedea;border-bottom-color:#666;color-scheme:dark}
.enquiry-panel input::placeholder,.enquiry-panel textarea::placeholder{color:#999}
.enquiry-primary{background:#e3e3df;border-color:#e3e3df;color:#171717}.enquiry-primary:hover{background:#fff}
.enquiry-back,.enquiry-optional,.enquiry-edit-links button{color:#d4d4d4}.enquiry-optional{border-color:#ffffff26}
.contact-choices label,.service-options label{border-color:#606060;background:transparent}
.contact-choices label:has(:checked),.service-options label:has(:checked){background:#222;border-color:#bbb}
.contact-choices input,.service-options input{accent-color:#ddd}.enquiry-review dt{color:#999}

/* Mobile menu: destinations above, rotating identity between copy and action. */
.menu-head{margin-bottom:0}
.menu-panel nav{flex:0 1 auto;overflow:visible;margin:clamp(12px,6dvh,50px) 0 0}
.menu-enquiry{flex:1;min-height:210px;flex-direction:column;justify-content:space-evenly;gap:24px;padding:22px 0 0}
.project-start{height:50px;min-height:50px;gap:18px;padding:6px 7px 6px 22px;background:#ffffff30;border-color:#5555;box-shadow:inset 0 1px #fff8;backdrop-filter:blur(12px)}
.project-arrow{width:34px;height:34px;display:grid;place-items:center;border:1px solid #5554;border-radius:50%;background:#ffffff25;box-shadow:inset 0 1px #ffffff80;backdrop-filter:blur(10px);transition:background .4s,color .4s}
.project-arrow svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.project-start:hover .project-arrow,.project-start:focus-visible .project-arrow{translate:none;background:#fff8}
@media(min-width:901px){.brand #brand-cube{width:102.6px;height:102.6px}.brand-fallback{width:73.8%;height:73.8%}}
@media(max-height:650px){.menu-panel nav{flex:none;margin-top:12px;gap:5px}.menu-panel nav a{font-size:36px}.menu-enquiry{flex:none;min-height:170px;gap:18px;padding-top:24px}}

/* Floating chrome identity and quieter form chrome. */
.menu-mark{width:87.5px;height:87.5px}.menu-mark canvas{width:131.25px;height:131.25px}
.enquiry-head{border:0;background:#000;padding-block:16px}
.enquiry-mark{position:relative;width:56px;height:56px;flex:none}
.enquiry-mark canvas{position:absolute;width:84px;height:84px;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.enquiry-mark img{position:absolute;width:82%;height:82%;left:9%;top:9%;object-fit:contain}
.enquiry-mark canvas:not([data-ready="true"]){opacity:0}.enquiry-mark canvas[data-ready="true"]+img{visibility:hidden}
.menu-close,.enquiry-close{display:grid;place-items:center;padding:0}
.menu-close svg,.enquiry-close svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.2}
.enquiry-body h2{margin-bottom:10px}.enquiry-intro{margin-top:0}
.slot-choices{border:0;margin:24px 0;padding:0}.slot-day{font-size:14px;line-height:1.5;margin-bottom:12px}
.slot-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.slot-grid label{display:flex;align-items:center;gap:9px;border:1px solid #444;padding:12px;font-size:13px;font-weight:400;cursor:pointer}
.slot-grid label:has(:checked){background:#222;border-color:#ddd}.slot-grid input,.alternative-toggle input{accent-color:#ddd;margin:0;flex:none}
.alternative-toggle{display:flex!important;align-items:center;gap:10px;line-height:1.5;cursor:pointer}
.alternative-fields{margin-top:20px}.alternative-fields p{font-size:14px;color:#aaa;line-height:1.5}.alternative-fields label{display:block;margin:20px 0}
.slot-error{color:#e9aaa2;font-size:14px;line-height:1.5}
@media(max-height:650px){.menu-mark{width:72.5px;height:72.5px}.menu-mark canvas{width:108.75px;height:108.75px}.menu-enquiry{min-height:190px}}

.enquiry-panel:focus{outline:none}

/* The compact menu unfolds like the opening scene: light, identity, then copy. */
.menu-panel[open]{animation:menu-surface-in .5s ease both}
.menu-panel[open]::backdrop{animation:enquiry-backdrop .5s ease both}
.menu-panel[open] .menu-head{animation:menu-surface-in .4s .25s ease both}
.menu-panel[open] .menu-mark{animation:menu-identity-in .9s .4s cubic-bezier(.22,1,.36,1) both}
.menu-panel[open] nav a{animation:menu-links-in .8s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(1.05s + var(--menu-delay,0s) - .2s)}
.menu-panel[open] .project-start{animation:menu-action-in .85s 1.2s cubic-bezier(.22,1,.36,1) both}
@keyframes menu-surface-in{from{opacity:0}to{opacity:1}}
@keyframes menu-identity-in{from{opacity:0;translate:0 64px}to{opacity:1;translate:0 0}}
@keyframes menu-links-in{from{opacity:0;translate:-48px 0}to{opacity:1;translate:0 0}}
@keyframes menu-action-in{from{opacity:0;translate:48px 0}to{opacity:1;translate:0 0}}
/* Compact screens reveal every project in normal page order. */
@media(max-width:900px){
 .services-heading{font-size:13px;line-height:1.6}
 .featured-work{padding-top:0}
 .work-track{display:flex;flex-direction:column;gap:14px;padding:0;overflow:visible;scroll-snap-type:none;cursor:auto}
 .feature{flex:none;width:100%;aspect-ratio:4/5;max-height:none;scroll-snap-align:none}
 .work-status{display:none}
 .feature.reveal-ready .feature-media,.feature.reveal-ready .feature-shade,.feature.reveal-ready .feature-top,.feature.reveal-ready .feature-caption{transition:opacity .7s ease;transition-delay:0s;translate:none;scale:none}
}
/* Reserve space for the rotating logo's full silhouette, as well as the copy. */
.enquiry-panel{--enquiry-gutter:clamp(28px,7vw,48px)}
.enquiry-head{padding:30px var(--enquiry-gutter) 22px}
.enquiry-mark{margin-left:14px}
.enquiry-body{padding:22px var(--enquiry-gutter) 36px}
@media(prefers-reduced-motion:reduce){
 .menu-panel[open],.menu-panel[open]::backdrop,.menu-panel[open] .menu-head,.menu-panel[open] .menu-mark,.menu-panel[open] nav a,.menu-panel[open] .project-start{animation:none}
}

/* Broader desktop introduction, retaining the shared top alignment. */
@media(min-width:901px){
 .hero-bottom{grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,4vw,64px)}
 .intro h1{max-width:800px}
}
/* Vertical scrolling drives a pinned horizontal filmstrip without trapping input. */
.featured-work.is-scroll-sequence{height:calc(var(--work-frame,46vw) + var(--work-travel,240svh));padding:0}
.is-scroll-sequence .work-pin{position:sticky;top:max(0px,calc(100svh - var(--work-frame,46vw)));height:auto;display:flex;align-items:flex-start;overflow:hidden}
.is-scroll-sequence .work-track{display:flex;flex-direction:row;width:max-content;gap:18px;padding:0 var(--gutter);overflow:visible;scroll-snap-type:none;cursor:auto;will-change:transform}
.is-scroll-sequence .feature{flex:0 0 auto;width:100vw;aspect-ratio:2/1;max-height:76svh;scroll-snap-align:none}
.is-scroll-sequence .feature-media img{will-change:transform}
.is-scroll-sequence .feature:not(:first-child) .feature-media,.is-scroll-sequence .feature:not(:first-child) .feature-shade,.is-scroll-sequence .feature:not(:first-child) .feature-top,.is-scroll-sequence .feature:not(:first-child) .feature-caption{opacity:1;translate:none;scale:none;transition:none}
@media(max-width:900px){
 .is-scroll-sequence .work-track{gap:0;padding:0}
 .is-scroll-sequence .feature{width:100vw;aspect-ratio:4/5;max-height:90svh}
}
/* Reduced motion and a script-free page keep every project in the normal flow. */
.featured-work:not(.is-scroll-sequence) .work-track{flex-direction:column;overflow:visible;gap:18px;cursor:auto}
.featured-work:not(.is-scroll-sequence) .feature{flex:none;width:100%;max-height:none}
.featured-work:not(.is-scroll-sequence) .work-status{display:none}

#home.has-scroll-scene{height:calc(var(--scene-height,100svh) + var(--scene-travel,0px));overflow-anchor:none}
.has-scroll-scene>.hero{position:sticky;top:var(--hero-pin-top,0px);z-index:1}
.featured-work.is-scroll-sequence{margin-top:calc(-1 * var(--work-travel,0px));overflow-anchor:none}
.is-scroll-sequence .work-pin{z-index:2}

/* One fixed frame and one set of labels for the moving project images. */
.work-overlay{display:none}
.is-scroll-sequence .work-pin{display:block;padding-bottom:var(--gutter);background:#000}
.is-scroll-sequence .work-window{position:relative;margin-inline:0;overflow:hidden}
.is-scroll-sequence .work-track{padding:0;gap:1px}
.is-scroll-sequence .feature-caption{display:none}
.is-scroll-sequence .work-overlay{display:block;position:absolute;inset:0;pointer-events:none;text-shadow:0 2px 16px #0009}
.work-labels{position:absolute;inset:44px max(28px,var(--gutter)) auto;display:flex;justify-content:space-between;color:#b4b4b4;font-size:12px;letter-spacing:.025em}
.work-caption{position:absolute;inset:auto max(28px,var(--gutter)) 44px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.work-copy h2{font-size:clamp(26px,3vw,44px);line-height:1.1;font-weight:700;letter-spacing:-.025em;margin:0 0 9px}
.work-copy p{font-size:14px;line-height:1.4;margin:0;color:#eee}
.work-open{pointer-events:auto;flex:none}.work-open:hover{background:#ffffff20;color:#eee}
@media(max-width:900px){
 .is-scroll-sequence .work-window{margin:0}
 .is-scroll-sequence .work-pin{padding-bottom:16px}
 .work-labels{inset:28px max(28px,var(--gutter)) auto;font-size:10px}
 .work-caption{inset:auto max(28px,var(--gutter)) 32px;gap:16px}
 .work-copy h2{font-size:28px;margin-bottom:10px}
 .work-copy p{font-size:11px;line-height:1.5;max-width:240px;color:#d0d0d0}
 .work-open{width:28px;height:28px;transform:translateY(4px)}
}

/* Desktop projects fill the viewport; compact cards retain their 4:5 framing. */
@media(min-width:901px){
 .featured-work .feature{height:100svh;max-height:none;aspect-ratio:auto}
 .is-scroll-sequence .work-pin{padding-bottom:0}
}

/* Client marks brighten gently under a desktop pointer. */
.logo-group img{opacity:.9;transition:opacity .35s ease}
@media(min-width:901px) and (hover:hover) and (pointer:fine){
 .logo-group li:hover img{opacity:1}
}

@media(min-width:901px){.clients-head{justify-content:center;text-align:center}}
