:root{color-scheme:dark;--bg:#111112;--fg:#f4f3f0;--muted:#aaa9ac;--accent:#c88cb9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}header{position:sticky;top:0;z-index:10;background:#111112f5;border-bottom:1px solid #ffffff1c;padding:24px 5%;display:flex;justify-content:space-between;align-items:center}.brand{font-size:18px;line-height:1.05;letter-spacing:-.5px}.brand strong{font-size:25px}nav{display:flex;gap:32px;font-size:14px}nav a:hover,nav a:focus-visible{color:var(--accent)}main{padding:0 5%}.hero{min-height:calc(100svh - 94px);display:flex;flex-direction:column;justify-content:center;padding:80px 0 36px}.eyebrow{text-transform:uppercase;font-size:13px;letter-spacing:2px;color:var(--muted)}h1{font-size:clamp(64px,10.3vw,158px);line-height:.92;letter-spacing:-.065em;margin:35px 0 44px;font-weight:800}h1 span{color:var(--accent)}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.hero p{max-width:440px;color:var(--muted);font-size:19px;line-height:1.5;margin:0}.text-link{font-size:14px;border-bottom:1px solid var(--accent);padding-bottom:8px;white-space:nowrap}.section{padding:100px 0;border-top:1px solid #ffffff26}.section-heading{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:40px;gap:20px}h2{font-size:clamp(35px,5vw,70px);letter-spacing:-.045em;margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 24px}.project{border:0;color:inherit;background:none;padding:0;text-align:left;cursor:pointer;width:100%}.project img{width:100%;aspect-ratio:1.6;object-fit:cover;display:block;transition:opacity .2s}.project:hover img{opacity:.78}.caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:16px}.caption strong{font-size:18px;font-weight:500}.caption span{color:var(--muted);font-size:13px}.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:50px}.contact h2{font-size:clamp(45px,6vw,84px);line-height:1.02;max-width:600px}.contact p{color:var(--muted);line-height:1.6;font-size:17px;max-width:420px}.details{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:22px}.email{font-size:clamp(18px,2.5vw,30px);border-bottom:1px solid var(--accent);padding-bottom:12px}.details a:hover{color:var(--accent)}footer{margin:0 5%;padding:30px 0;border-top:1px solid #ffffff26;display:flex;justify-content:space-between;gap:24px;font-size:13px;color:var(--muted)}.socials{display:flex;gap:24px}dialog{border:1px solid #ffffff30;background:#181819;padding:20px;color:var(--fg);width:min(1000px,94vw);max-height:92svh}dialog::backdrop{background:#000d}dialog img{display:block;width:100%;max-height:73svh;object-fit:contain}dialog .dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}dialog button{background:transparent;color:white;border:1px solid #777;padding:9px 16px;cursor:pointer}.service-hero{padding:90px 0 80px}.service-hero h1{font-size:clamp(64px,9vw,130px)}.service-list article{display:grid;grid-template-columns:60px 1fr 1fr;gap:30px;border-top:1px solid #ffffff26;padding:40px 0}.service-list h2{font-size:32px}.service-list p{font-size:17px;line-height:1.6;color:var(--muted);margin:0}.service-list .number{color:var(--accent);font-size:14px}@media(max-width:650px){header{padding:20px 5%}nav{gap:16px}.brand{font-size:12px}.brand strong{font-size:19px}.hero{min-height:78svh;padding:65px 0 35px}h1{font-size:17vw;margin:32px 0 40px}.hero-bottom{align-items:start;flex-direction:column}.hero p{font-size:17px}.section{padding:65px 0}.section-heading{display:block}.section-heading .eyebrow{margin-top:15px}.grid{grid-template-columns:1fr;gap:32px}.caption{align-items:start}.contact{grid-template-columns:1fr;gap:26px}.details{gap:20px}footer{flex-direction:column}.service-list article{grid-template-columns:30px 1fr;gap:15px}.service-list p{grid-column:2}.service-list h2{font-size:27px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Opening choreography and persistent navigation */
body.intro-pending{overflow:hidden}body.intro-pending main,body.intro-pending footer{pointer-events:none}.purple-hero{background:#784ea0;min-height:100svh;margin:0 -5.55556%;padding:100px 5% 60px}.purple-hero .eyebrow,.purple-hero p{color:#f4f3f0}.purple-hero h1 span{color:#f4f3f0}.purple-hero .text-link{border-color:#f4f3f0}.opening-panel{position:fixed;inset:0;width:100%;height:100vh;height:100svh;background:#000;z-index:1000;display:grid;place-items:center;transform:translateY(0);overflow:hidden}.historical-logos{position:absolute;inset:0;display:grid;place-items:center}.historical-logo{position:absolute;width:auto;height:auto;max-width:min(340px,65vw);max-height:min(210px,30svh);opacity:0;transform:scale(.985)}.historical-logo.active{opacity:1;animation:logo-settle .26s ease-out both}@keyframes logo-settle{0%{opacity:.88;transform:scale(.985)}35%{opacity:1}70%{opacity:.96}100%{opacity:1;transform:scale(1)}}.current-identity{position:relative;width:min(600px,82vw);aspect-ratio:697.6/226.8;opacity:0}.current-mark{position:absolute;width:32.51147%;height:100%;left:33.744265%;top:0;z-index:2;background:#000}.wordmark-mask{position:absolute;inset:0;clip-path:inset(0 0 0 66.255735%);z-index:1}.current-wordmark{position:absolute;left:39.205848%;width:60.794152%;top:18.783%;height:62.434%;transform:translateX(-110%)}.floating-nav{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:center;justify-content:center;gap:34px;padding:21px 35px;background:rgba(17,17,18,.94);border:1px solid #ffffff26;border-radius:100px;box-shadow:0 10px 35px #0003;backdrop-filter:blur(16px);color:#fff;font-size:15px;white-space:nowrap;max-width:calc(100vw - 32px)}.floating-nav a{padding:2px 0}.intro-pending .floating-nav{opacity:0;transform:translate(-50%,14px);pointer-events:none}footer{padding-bottom:120px}#contact{scroll-margin-top:20px}html{scroll-padding-top:24px}@media(max-width:650px){.floating-nav{gap:22px;padding:18px 25px;font-size:14px;bottom:max(18px,env(safe-area-inset-bottom))}.purple-hero{min-height:100svh;padding-top:80px;padding-bottom:125px}.current-identity{width:86vw}.historical-logo{max-width:65vw;max-height:28svh}}@media(max-width:360px){.floating-nav{gap:17px;padding:17px 20px;font-size:13px}}@media(prefers-reduced-motion:reduce){.opening-panel{display:none}.intro-pending .floating-nav{opacity:1;transform:translateX(-50%);pointer-events:auto}body.intro-pending{overflow:auto}}
/* Nexa resolves to installed family faces until supplied webfonts are embedded. */
@font-face{font-family:Nexa;src:local('Nexa Regular'),local('Nexa');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Nexa;src:local('Nexa Light');font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Nexa;src:local('Nexa Bold');font-weight:700;font-style:normal;font-display:swap}body,button,input,textarea,select{font-family:Nexa,Arial,Helvetica,sans-serif}button,input,textarea,select{font-size:inherit}body{font-weight:400}.hero h1,.contact h2,.service-hero h1{font-weight:800}.floating-nav{font-weight:600;gap:28px;padding:19px 30px}.nav-socials{display:flex;align-items:center;gap:16px;border-left:1px solid #ffffff26;padding-left:22px}.nav-socials a{display:grid;place-items:center;min-height:28px;min-width:28px;transition:color .2s,opacity .2s}.nav-socials svg{width:20px;height:20px}.nav-socials a:hover{color:var(--accent)}.floating-nav a:focus-visible,.gallery-arrow:focus-visible,.project:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.hero-bottom{justify-content:flex-start}.portfolio-label{font-size:22px;letter-spacing:.07em;font-weight:600}.portfolio-gallery{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:16px;align-items:center}.portfolio-window{overflow:hidden;min-width:0}.portfolio-track{display:flex;transition:transform .38s cubic-bezier(.22,1,.36,1)}.portfolio-page{flex:0 0 100%;min-width:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:28px 20px;align-content:start}.portfolio-page .caption{display:block;padding-top:12px;min-height:58px}.portfolio-page .caption strong{font-size:16px;font-weight:600;line-height:1.3;display:block}.portfolio-page .caption span{display:block;margin-top:5px;font-size:13px}.portfolio-page .project{align-self:start}.gallery-arrow{width:40px;height:48px;padding:8px;background:transparent;border:1px solid transparent;color:var(--fg);cursor:pointer;border-radius:50%;transition:opacity .2s,color .2s}.gallery-arrow svg{width:24px;height:24px;display:block}.gallery-arrow:hover:not(:disabled){color:var(--accent)}.gallery-arrow:disabled{opacity:.2;cursor:default}.gallery-status{text-align:center;color:var(--muted);font-size:13px;margin:26px 0 0}.contact h2{font-size:clamp(38px,5vw,68px)}@media(max-width:1000px){.portfolio-page{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 18px}.portfolio-gallery{gap:12px;grid-template-columns:32px minmax(0,1fr) 32px}.gallery-arrow{width:32px;padding:4px}}@media(max-width:650px){.portfolio-page{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.floating-nav{gap:15px;padding:16px 20px;font-size:13px}.nav-socials{gap:8px;padding-left:12px}.nav-socials a{min-width:24px;min-height:26px}.nav-socials svg{width:18px;height:18px}.section-heading .eyebrow{margin-top:10px}.portfolio-label{font-size:19px}.portfolio-gallery{gap:6px;grid-template-columns:26px minmax(0,1fr) 26px}.gallery-arrow{width:26px;height:44px;padding:1px}.portfolio-page .caption strong{font-size:14px}.portfolio-page .caption span{font-size:12px}}@media(max-width:440px){.portfolio-page{grid-template-columns:1fr}.floating-nav{gap:12px;padding:15px 15px;font-size:12px}.nav-socials{gap:5px;padding-left:9px}.nav-socials svg{width:17px;height:17px}.nav-socials a{min-width:22px}}@media(prefers-reduced-motion:reduce){.portfolio-track{transition:none}}
/* Shared editorial width; full-screen hero remains an independent backdrop. */
:root{--content-width:1000px;--hero-background:#784ea0}main{padding:0}main>.section,main>.service-hero,main>.service-list{width:calc(100% - 48px);max-width:var(--content-width);margin-left:auto;margin-right:auto}.purple-hero{margin:0;width:100%;padding-left:max(24px,calc((100% - var(--content-width))/2));padding-right:max(24px,calc((100% - var(--content-width))/2));background:var(--hero-background);background-position:center;background-size:cover}.purple-hero .hero-support{font-size:17px;line-height:1.5;font-weight:400;margin:0;max-width:none}.hero-bottom{gap:0}.editorial-label,.portfolio-label{font-size:18px;line-height:1.4;letter-spacing:.08em;font-weight:600;color:var(--fg);text-transform:uppercase}.service-label{margin:0 0 35px}.section-heading{margin-bottom:30px}.portfolio-page{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:28px 20px}.project img{aspect-ratio:3/2}.portfolio-page .caption{min-height:62px}.loading-counter{position:absolute;left:50%;bottom:clamp(42px,9svh,90px);transform:translateX(-50%);font-size:12px;line-height:1.4;font-weight:400;letter-spacing:.12em;color:#ffffff8c;font-variant-numeric:tabular-nums;min-width:16ch;text-align:center}footer{width:calc(100% - 48px);max-width:var(--content-width);margin-left:auto;margin-right:auto}.contact h2{margin-top:25px}@media(max-width:800px){.portfolio-page{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:26px 18px}}@media(max-width:520px){main>.section,main>.service-hero,main>.service-list,footer{width:calc(100% - 36px)}.portfolio-page{grid-template-columns:1fr;grid-template-rows:none;gap:26px}.portfolio-page .caption{min-height:0}.portfolio-label,.editorial-label{font-size:16px}.purple-hero{padding-left:18px;padding-right:18px}.loading-counter{font-size:12px}}
/* Eight-card gallery: the carousel controls sit beyond the content edges. */
:root{--content-width:1200px}main>.section,main>.service-hero,main>.service-list,footer{width:calc(100% - 160px)}.portfolio-gallery{display:block;position:relative}.portfolio-page{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,auto);gap:32px 24px}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;padding:10px;background:var(--fg);color:var(--bg);border:1px solid #ffffff22;z-index:2}.gallery-prev{left:-64px}.gallery-next{right:-64px}.gallery-arrow svg{width:22px;height:22px}.gallery-arrow:hover:not(:disabled){color:var(--bg);background:var(--accent)}.gallery-arrow:disabled{opacity:.16}.portfolio-page .caption{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:13px;min-height:30px;text-transform:uppercase}.portfolio-page .caption strong{display:block;flex:1;min-width:0;font-size:13px;line-height:1.5;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-page .caption span{display:block;flex:0 1 auto;max-width:49%;min-width:0;margin:0;font-size:11px;line-height:1.5;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.services-section{padding-top:90px;padding-bottom:100px}.services-section .service-list article:first-child{border-top:none;padding-top:12px}.services-section .section-heading{margin-bottom:28px}.loading-counter{top:calc(50% + min(105px,15svh) + 35px);bottom:auto}@media(max-width:1000px){main>.section,main>.service-hero,main>.service-list,footer{width:calc(100% - 112px)}.portfolio-page{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:28px 22px}.gallery-arrow{width:36px;height:36px;padding:7px}.gallery-prev{left:-50px}.gallery-next{right:-50px}.portfolio-page .caption strong{font-size:13px}.portfolio-page .caption span{font-size:12px}}@media(max-width:520px){main>.section,main>.service-hero,main>.service-list,footer{width:calc(100% - 36px)}main>#portfolio{width:calc(100% - 96px)}.portfolio-page{grid-template-columns:1fr;grid-template-rows:none;gap:28px}.gallery-arrow{width:32px;height:32px;padding:5px}.gallery-prev{left:-40px}.gallery-next{right:-40px}.portfolio-page .caption strong{font-size:12px}.portfolio-page .caption span{font-size:11px}.loading-counter{top:calc(50% + min(105px,14svh) + 28px)}.services-section{padding-top:65px;padding-bottom:65px}}
/* Inline project galleries and quieter editorial headings. */
.loading-counter{font-weight:700;top:calc(50% + min(105px,15svh) + 60px)}.editorial-label,.portfolio-label,.service-label{font-family:Nexa,Arial,Helvetica,sans-serif;font-weight:400}.project-expansion{overflow:hidden;margin-top:35px}.project-expansion[hidden]{display:none}.project-expansion-inner{padding-top:5px}.project-thumbnails{display:flex;gap:12px;overflow-x:auto;padding:3px 3px 18px}.project-thumbnails button{flex:0 0 105px;aspect-ratio:3/2;padding:0;border:1px solid #ffffff30;background:transparent;cursor:pointer;opacity:.6;transition:opacity .2s,border-color .2s}.project-thumbnails button[aria-pressed="true"]{opacity:1;border-color:var(--accent);outline:1px solid var(--accent);outline-offset:2px}.project-thumbnails button:hover{opacity:1}.project-thumbnails button:focus-visible{outline:2px solid white;outline-offset:3px}.project-thumbnails img{width:100%;height:100%;object-fit:cover;display:block}.expanded-project-image{display:block;width:100%;aspect-ratio:3/2;object-fit:contain;background:#181819}.project[aria-expanded="true"]>img{outline:2px solid var(--accent);outline-offset:-2px}main>.services-section{width:100%;max-width:none;background:#0d0d0d;border-top:1px solid #ffffff20}.services-inner{width:calc(100% - 160px);max-width:1200px;margin:auto}.contact-item{display:flex;flex-direction:column;gap:9px;max-width:100%}.contact-label{font-size:12px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.contact-item p{margin:0;color:var(--fg);font-size:20px}.contact-item>a{font-size:20px}.contact-item .email{font-size:clamp(16px,2vw,25px)}.details{gap:28px}@media(max-width:1000px){.services-inner{width:calc(100% - 112px)}}@media(max-width:520px){.services-inner{width:calc(100% - 36px)}.loading-counter{top:calc(50% + min(105px,14svh) + 53px)}.project-expansion{margin-top:26px}.project-thumbnails button{flex-basis:80px}.project-thumbnails{gap:10px}.contact-item p,.contact-item>a{font-size:18px}}
/* Normal eight-project grid; the shared gallery becomes a row within it. */
.editorial-label,.portfolio-label,.service-label{text-transform:none;font-weight:400}.portfolio-static{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:none;gap:32px 24px;align-items:start}.portfolio-static .caption{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:13px;min-height:30px}.portfolio-static .caption strong{font-size:13px;font-weight:600;line-height:1.5;white-space:nowrap}.portfolio-static .caption span{font-size:12px;line-height:1.5;text-align:right;white-space:nowrap}.portfolio-static>.project-expansion{grid-column:1/-1;width:100%;margin:0;min-width:0}.portfolio-static .project-expansion-inner{padding:0 0 8px}.project-expansion{overflow:hidden}main>#portfolio{width:calc(100% - 160px)}@media(max-width:1000px){.portfolio-static{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px}main>#portfolio{width:calc(100% - 112px)}}@media(max-width:520px){.portfolio-static{grid-template-columns:1fr;gap:28px}main>#portfolio{width:calc(100% - 36px)}.portfolio-static .caption strong,.portfolio-static .caption span{font-size:12px}}
/* Top navigation keeps its own viewport alignment. */
.top-nav{top:20px;bottom:auto;width:1200px;max-width:calc(100vw - 48px);min-height:66px;padding:14px 24px;justify-content:space-between;gap:24px}.nav-brand{display:flex!important;align-items:center;flex:0 0 auto;background:#fff;padding:8px 12px;border-radius:100px}.nav-brand img{display:block;width:250px;height:auto}.navigation-links{display:flex;align-items:center;justify-content:flex-end;gap:28px;margin-left:auto}.mobile-menu-toggle{display:none;background:transparent;border:1px solid #ffffff40;color:#fff;padding:10px 16px;border-radius:30px;font:inherit;cursor:pointer}.intro-pending .top-nav{transform:translate(-50%,-12px)}html{scroll-padding-top:110px}.section,#contact{scroll-margin-top:0}.section,footer,.service-list article,main>.services-section{border:0}.hero-transition{background:#111112}.hero-transition>.purple-hero{border-bottom-left-radius:38px}.portfolio-transition{background:#0d0d0d}.portfolio-band{background:#111112;border-bottom-left-radius:38px;overflow:hidden}.portfolio-band>#portfolio{max-width:1200px;width:calc(100% - 160px);margin:auto}.services-transition{background:#111112}.services-transition>.services-section{width:100%;max-width:none;border:0;border-bottom-left-radius:38px;background:#0d0d0d;overflow:hidden}.brand-marquee{background:transparent;padding:25px 0 80px}.marquee-window{max-width:1200px;width:calc(100% - 48px);margin:auto;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}.marquee-track{display:flex;width:max-content;animation:brand-flow-right 90s linear infinite}.marquee-group{display:flex;align-items:center;gap:80px;padding-right:80px;flex:0 0 auto}.marquee-group img{display:block;flex:0 0 200px;width:200px;height:60px;object-fit:contain}@keyframes brand-flow-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}@media(max-width:1000px){.portfolio-band>#portfolio{width:calc(100% - 112px)}.nav-brand img{width:210px}.navigation-links{gap:18px}.top-nav{gap:18px;padding:14px 20px}.nav-socials{padding-left:14px;gap:8px}}@media(max-width:760px){.top-nav{top:16px;max-width:calc(100vw - 32px);padding:12px 16px;min-height:58px}.nav-brand img{width:175px}.nav-brand{padding:7px 10px}.mobile-menu-toggle{display:block}.navigation-links{display:none;position:absolute;top:calc(100% + 12px);left:0;width:100%;padding:22px;background:#111112f5;border:1px solid #ffffff26;border-radius:26px;box-shadow:0 10px 35px #0003;justify-content:center;flex-wrap:wrap;gap:20px;font-size:14px}.top-nav[data-menu-open="true"] .navigation-links{display:flex}.navigation-links .nav-socials{border-left:0;padding-left:0}.marquee-group{gap:45px;padding-right:45px}.marquee-group img{width:160px;height:48px;flex-basis:160px}.brand-marquee{padding:15px 0 65px}.marquee-track{animation-duration:75s}.mobile-menu-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}}@media(max-width:520px){.portfolio-band>#portfolio{width:calc(100% - 36px)}.hero-transition>.purple-hero,.portfolio-band,.services-transition>.services-section{border-bottom-left-radius:38px}.nav-brand img{width:155px}.navigation-links{gap:18px}.marquee-window{width:100%}}@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;transform:none}}
.top-nav .nav-brand{padding:8px 12px}footer{padding-bottom:40px}@media(max-width:760px){.top-nav .nav-brand{padding:7px 10px}}

/* Floating bottom navigation, integrated hero identities and editorial services. */
:root{--hero-background:#9932CC}
.bottom-nav{top:auto;bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px));width:auto;min-height:0;max-width:calc(100vw - 32px);padding:19px 30px;gap:0;background:rgba(17,17,18,.9)}
.bottom-nav .navigation-links{position:static;display:flex;width:auto;margin:0;padding:0;border:0;background:transparent;box-shadow:none;flex-wrap:nowrap;gap:28px;font-size:15px}
.bottom-nav .nav-socials{border-left:1px solid #ffffff26;padding-left:22px;gap:16px}
.intro-pending .bottom-nav{transform:translate(-50%,14px)}
html{scroll-padding-top:24px}footer{padding-bottom:120px}
.purple-hero{position:relative;background:var(--hero-background);padding-top:135px;padding-bottom:160px;min-height:100svh;overflow:hidden}
.landing-brand{position:absolute;top:40px;left:max(80px,calc((100% - 1200px)/2));display:block}
.landing-brand img{display:block;height:40px;width:auto;max-width:none}
.purple-hero>.brand-marquee{position:absolute;left:0;right:0;bottom:0;padding:30px 0 28px;width:100%;background:transparent}
.purple-hero .marquee-window{width:100%;max-width:none;margin:0}
.services-section .service-list article{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;padding:38px 0}
.services-section .service-list .service-title{font-size:24px;font-weight:400;letter-spacing:0}
.services-section .service-list p{grid-column:auto;color:#c6c6c8}
@media(max-width:1000px){.landing-brand{left:56px}}
@media(max-width:650px){.bottom-nav{padding:16px 20px;bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px))}.bottom-nav .navigation-links{gap:17px;font-size:13px}.bottom-nav .nav-socials{gap:6px;padding-left:13px}.bottom-nav .nav-socials a{min-width:24px}.bottom-nav .nav-socials svg{width:18px;height:18px}.services-section .service-list article{grid-template-columns:1fr;gap:18px}.services-section .service-list .service-title{font-size:22px}}
@media(max-width:520px){.landing-brand{left:18px;top:28px}.purple-hero{padding-top:125px;padding-bottom:155px}}
@media(max-width:380px){.bottom-nav{padding:15px 13px}.bottom-nav .navigation-links{gap:11px;font-size:12px}.bottom-nav .nav-socials{padding-left:9px;gap:3px}}
@media(max-width:520px){.landing-brand{right:18px}.landing-brand img{max-width:100%;height:auto;max-height:40px}}

/* Shared editorial project template. */
.expanded-project-caption{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:22px;font-size:14px;line-height:1.5;font-weight:400}
.expanded-description{text-align:right;color:var(--muted)}
.project-thumbnails{gap:14px;padding-bottom:24px}
.project-thumbnails button{flex-basis:calc((100% - 76px)/6);max-width:180px;min-width:85px}
.expanded-project-image{aspect-ratio:3/2;object-fit:contain;height:auto}
@media(max-width:520px){.expanded-project-caption{font-size:12px;gap:12px;margin-bottom:18px}.project-thumbnails{gap:10px;padding-bottom:18px}.project-thumbnails button{flex-basis:85px}}

/* Static image portfolio and shared section alignment. */
:root{--content-gutter:80px;--content-width:1200px}
.hero-transition>.purple-hero,.portfolio-band,.services-transition>.services-section{border-radius:0 0 76px 76px;border:0}
.portfolio-static{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.portfolio-static>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.portfolio-band>.brand-marquee{position:relative;width:100%;padding:20px 0 70px}
.portfolio-band .marquee-window{width:100%;max-width:none;margin:0}
.portfolio-band>#portfolio{padding-bottom:55px}
.purple-hero{padding-left:max(var(--content-gutter),calc((100% - var(--content-width))/2));padding-right:max(var(--content-gutter),calc((100% - var(--content-width))/2))}
@font-face{font-family:'Nexa Heavy';src:local('Nexa ExtraBlack'),local('Nexa Extra Black'),local('Nexa Black');font-style:normal;font-weight:900;font-display:swap}
@font-face{font-family:'Nexa Heavy';src:local('Nexa Bold');font-style:normal;font-weight:700;font-display:swap}
.purple-hero h1{font-family:'Nexa Heavy',Nexa,Arial,Helvetica,sans-serif;font-weight:900;font-synthesis:none}
@media(max-width:1000px){:root{--content-gutter:56px}.portfolio-static{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}
@media(max-width:520px){:root{--content-gutter:18px}.portfolio-static{grid-template-columns:1fr;gap:24px}.portfolio-band>.brand-marquee{padding:15px 0 55px}}

/* Gradients live directly on the hero surface, underneath all content. */
.hero-transition>.purple-hero{
 --field-x:0px;--field-y:0px;
 background-color:#9932CC;
 background-image:radial-gradient(ellipse at 77% 30%,rgba(226,154,246,.52) 0%,rgba(206,123,232,.22) 24%,transparent 53%),radial-gradient(ellipse at 88% 87%,rgba(51,11,81,.5) 0%,rgba(64,16,97,.19) 27%,transparent 57%),radial-gradient(ellipse at 19% 65%,rgba(108,24,155,.3) 0%,transparent 52%);
 background-size:115% 118%,120% 120%,112% 115%;
 background-position:calc(50% + var(--field-x)) calc(50% + var(--field-y)),calc(50% - var(--field-x)) calc(50% - var(--field-y)),calc(50% + var(--field-x)) 50%;
 background-repeat:no-repeat;
}
@media(prefers-reduced-motion:reduce){.hero-transition>.purple-hero{--field-x:0px!important;--field-y:0px!important}}

/* Supplied full-bleed reeded-glass portrait: preserve the source pixels. */
.hero-transition>.purple-hero.photo-hero{
 background-color:#9932CC;
 background-image:linear-gradient(90deg,rgba(8,3,18,.12),rgba(8,3,18,.03) 60%,transparent),url('/assets/hero-reeded-glass-v2.png');
 background-size:cover;
 background-position:center center;
 background-repeat:no-repeat;
}
@media(max-width:760px){.hero-transition>.purple-hero.photo-hero{background-position:68% center;background-image:linear-gradient(90deg,rgba(8,3,18,.24),rgba(8,3,18,.12)),url('/assets/hero-reeded-glass-v2.png')}}

/* One quiet outline icon for each service. */
.service-title{display:flex;align-items:center;gap:22px}
.service-icon{display:block;width:48px;height:48px;flex:0 0 48px;opacity:.9}
@media(max-width:520px){.service-title{gap:16px}.service-icon{width:40px;height:40px;flex-basis:40px}}

/* Four editorial service columns, following the supplied layout sketch. */
.service-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:48px}
.service-list article,.services-section .service-list article,.services-section .service-list article:first-child{display:flex;flex-direction:column;align-items:center;gap:0;min-width:0;min-height:320px;padding:12px 30px 32px;border:0}
.service-list article+article,.services-section .service-list article+article{border-left:1px solid #ffffff50}
.service-list .service-icon{width:52px;height:52px;flex:0 0 52px;margin:0 0 30px}
.service-list .service-title,.services-section .service-list .service-title{display:block;text-align:center;font-size:20px;line-height:1.3;font-weight:400;letter-spacing:0;margin:0 0 28px}
.service-list article p,.services-section .service-list article p{width:100%;max-width:220px;margin:0;font-size:16px;line-height:1.6;color:#c6c6c8;text-align:left}
@media(max-width:1000px){.service-list{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:44px}.service-list article:nth-child(3),.services-section .service-list article:nth-child(3){border-left:0}.service-list article,.services-section .service-list article,.services-section .service-list article:first-child{min-height:290px;padding:12px 24px 24px}}
@media(max-width:520px){.service-list{grid-template-columns:1fr;gap:46px;margin-top:36px}.service-list article,.services-section .service-list article,.services-section .service-list article:first-child{min-height:0;padding:0 20px;border:0}.service-list article+article,.services-section .service-list article+article{border-left:0}.service-list .service-icon{margin-bottom:22px}.service-list .service-title,.services-section .service-list .service-title{margin-bottom:18px}.service-list article p,.services-section .service-list article p{max-width:300px}}

/* Remove spacing reserved for the former editorial section labels. */
.services-inner>.service-list{margin-top:0}.contact h2{margin-top:0}

/* Shared understated section labels. */
.editorial-label,.contact h2.editorial-label{font-family:Nexa,Arial,Helvetica,sans-serif;font-weight:400;font-size:18px;line-height:1.4;letter-spacing:0;margin:0 0 40px;max-width:none;text-align:left}
.contact-label{grid-column:1/-1}.contact{row-gap:0}.services-inner>.service-list{margin-top:0}
@media(max-width:520px){.editorial-label,.contact h2.editorial-label{margin-bottom:30px}.contact{row-gap:26px}.contact h2.contact-label{margin-bottom:0}}

/* Landing support size and spacing after section-label removal. */
.hero p.hero-support{font-size:20px}.contact{row-gap:50px}
@media(max-width:650px){.contact{row-gap:26px}}

/* Consistent bold service titles; descriptions retain their current weight. */
.service-list .service-title,.services-section .service-list .service-title{font-weight:700}

/* A single framed black intro; all decoration travels with the panel. */
.intro-frame{position:absolute;inset:clamp(16px,2.4vw,32px);border:1px solid rgba(255,255,255,.8);border-radius:38px;overflow:hidden;pointer-events:none}
.intro-guides{position:absolute;inset:0;background-image:linear-gradient(to right,transparent calc(25% - .5px),#ffffff08 25%,transparent calc(25% + .5px)),linear-gradient(to right,transparent calc(75% - .5px),#ffffff08 75%,transparent calc(75% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),#ffffff07 50%,transparent calc(50% + .5px))}
.intro-cross{position:absolute;top:50%;width:10px;height:10px;transform:translate(-50%,-50%)}.cross-left{left:25%}.cross-right{left:75%}.intro-cross::before,.intro-cross::after{content:'';position:absolute;background:#ffffff30}.intro-cross::before{width:10px;height:1px;top:4.5px;left:0}.intro-cross::after{height:10px;width:1px;left:4.5px;top:0}
.historical-logo{left:50%;top:50%;object-fit:contain;transform:translate(-50%,-50%) scale(.985);max-width:62vw;max-height:28svh;transform-origin:center}
@keyframes logo-settle{0%{opacity:.88;transform:translate(-50%,-50%) scale(.985)}35%{opacity:1}70%{opacity:.96}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.historical-logo[data-step="1"]{width:317.60px;height:113.35px}
.historical-logo[data-step="2"]{width:189.74px;height:189.74px}
.historical-logo[data-step="3"]{width:165.85px;height:210.00px}
.historical-logo[data-step="4"]{width:204.12px;height:176.36px}
.historical-logo[data-step="5"]{width:299.47px;height:120.21px}
@media(max-width:520px){.intro-frame{border-radius:26px}.intro-cross{opacity:.6}}

/* Single-column contact details, aligned with the contact statement. */
#contact.contact{grid-template-columns:minmax(0,1fr);gap:34px;text-align:left}
#contact .details{align-items:flex-start;justify-content:flex-start;gap:12px}
#contact .contact-item p{font-size:20px;font-weight:700;line-height:1.3;letter-spacing:0;color:var(--fg);margin:0 0 4px;max-width:none}
#contact .contact-item a{font-size:16px;font-weight:400;line-height:1.6;letter-spacing:0;color:#c6c6c8;border:0;padding:0;overflow-wrap:anywhere}
#contact .contact-item a:hover{color:var(--accent)}
#contact .contact-item a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
/* The outer black panel rounds independently of its inner white keyline. */
.opening-panel{border-bottom-left-radius:30px;border-bottom-right-radius:30px}
/* Hide scrollbar chrome while preserving the document scroll container. */
html{scrollbar-width:none;scrollbar-gutter:auto}
html,body{-ms-overflow-style:none}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}



/* Landscape identity leads the floating panel; shared icon/logo height. */
.bottom-nav{--nav-mark-height:20px;font-weight:400}
.bottom-nav .navigation-links{font-weight:400}
.bottom-nav .nav-landscape{display:flex;align-items:center;flex:0 0 auto;border-right:1px solid #ffffff26;padding:0 22px 0 0}
.bottom-nav .nav-landscape img{display:block;height:var(--nav-mark-height);width:auto}
.bottom-nav .nav-socials{border-left:0;padding-left:0}
.bottom-nav .nav-socials svg{height:var(--nav-mark-height);width:var(--nav-mark-height)}
@media(max-width:760px){.bottom-nav{--nav-mark-height:18px;padding:16px 18px}.bottom-nav .navigation-links{gap:16px;font-size:13px}.bottom-nav .nav-landscape{padding-right:16px}}
@media(max-width:520px){.bottom-nav{--nav-mark-height:12px;max-width:calc(100vw - 20px);padding:15px 8px}.bottom-nav .navigation-links{gap:6px;font-size:10px}.bottom-nav .nav-landscape{padding-right:10px}.bottom-nav .nav-socials{gap:2px}.bottom-nav .nav-socials a{min-width:18px}}
@media(max-width:360px){.bottom-nav{--nav-mark-height:10px;padding:14px 8px}.bottom-nav .navigation-links{gap:5px;font-size:9px}.bottom-nav .nav-landscape{padding-right:8px}}

/* Static dark glass: background treatment stays separate from sharp controls. */
.bottom-nav{background:rgba(12,12,15,.9);overflow:hidden}
.bottom-nav::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(112deg,rgba(255,255,255,.055),transparent 28%,rgba(255,255,255,.018) 52%,transparent 74%),linear-gradient(180deg,rgba(255,255,255,.035),transparent 45%,rgba(0,0,0,.09));box-shadow:inset 0 1px 0 rgba(255,255,255,.055),inset 0 -1px 0 rgba(255,255,255,.025)}
.bottom-nav .navigation-links{position:relative;z-index:1}
.bottom-nav .nav-landscape{border-right:0;padding-right:0}
.bottom-nav .nav-socials{border-left:1px solid rgba(255,255,255,.18);padding-left:22px}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.bottom-nav{background:rgba(12,12,15,.84);backdrop-filter:blur(10px) saturate(125%) contrast(108%);-webkit-backdrop-filter:blur(10px) saturate(125%) contrast(108%)}}
@media(max-width:760px){.bottom-nav .nav-socials{padding-left:16px}}
@media(max-width:520px){.bottom-nav .nav-socials{padding-left:10px}}
@media(max-width:360px){.bottom-nav .nav-socials{padding-left:8px}}

/* Matching keylines separate identity, links and social controls. */
.bottom-nav .nav-landscape,.bottom-nav .nav-socials{position:relative;border:0}
.bottom-nav .nav-landscape{padding-right:22px}
.bottom-nav .nav-landscape::after,.bottom-nav .nav-socials::before{content:'';position:absolute;top:50%;height:var(--nav-mark-height);width:1px;background:rgba(255,255,255,.18);transform:translateY(-50%);pointer-events:none}
.bottom-nav .nav-landscape::after{right:0}
.bottom-nav .nav-socials::before{left:0}
@media(max-width:760px){.bottom-nav .nav-landscape{padding-right:16px}}
@media(max-width:520px){.bottom-nav{padding-left:6px;padding-right:6px}.bottom-nav .navigation-links{gap:4px}.bottom-nav .nav-landscape{padding-right:10px}}
@media(max-width:360px){.bottom-nav .nav-landscape{padding-right:8px}}

/* Use the font's built-in kerning without custom tracking throughout. */
html body,html body *,html body *::before,html body *::after{font-kerning:normal;letter-spacing:normal}
.hero p.hero-support{font-size:20px;font-weight:700}
#contact.contact h2{font-size:60px}
.contact-form{width:100%;max-width:700px;display:grid;gap:25px;margin:0;text-align:left;font-family:Nexa,Arial,Helvetica,sans-serif}
.form-field{display:grid;gap:10px}
.form-field label{font-size:16px;font-weight:400;color:var(--fg)}
.contact-form input,.contact-form textarea{width:100%;min-width:0;border:1px solid #ffffff28;border-radius:8px;background:#ffffff03;color:var(--fg);padding:14px 16px;font:inherit;font-size:16px;line-height:1.5}
.contact-form textarea{resize:vertical;min-height:150px}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid #9932CC;outline-offset:3px;border-color:#9932CC}
.contact-form button{justify-self:start;border:0;border-radius:10px;background:#9932CC;color:white;padding:14px 30px;min-height:48px;font:inherit;font-weight:700;cursor:pointer;transition:background .2s}
.contact-form button:hover{background:#8629b5}
.contact-form button:focus-visible{outline:2px solid white;outline-offset:4px}
#contact .form-status{font-size:14px;line-height:1.5;margin:0;max-width:none;color:var(--muted)}
@media(max-width:520px){#contact.contact h2{font-size:clamp(32px,9.6vw,60px)}.contact-form{gap:22px}}

/* Original white identity artwork, sized by its visible bounds. */
.marquee-group img{flex:0 0 auto;width:var(--logo-width);height:var(--logo-height);object-fit:contain}
@media(max-width:760px){.marquee-group img{width:calc(var(--logo-width)*.8);height:calc(var(--logo-height)*.8)}}

/* Four image pages move together within the unchanged content bounds. */
.portfolio-slider{position:relative;width:100%;border:0}
.portfolio-slide-window{overflow:hidden;border:0}
.portfolio-slide-track{display:flex;width:100%;transform:translateX(0);transition:transform 680ms cubic-bezier(.22,1,.36,1)}
.portfolio-slide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,auto);gap:24px;flex:0 0 100%;min-width:0;align-content:start}
.portfolio-slide>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.portfolio-control{position:absolute;top:calc((100% - 40px)/2);transform:translateY(-50%);width:44px;height:44px;border:1px solid #ffffff28;border-radius:50%;background:#ffffff04;color:var(--fg);display:grid;place-items:center;padding:0;cursor:pointer;transition:background .2s,opacity .2s}
.portfolio-control.previous{right:calc(100% + 18px)}.portfolio-control.next{left:calc(100% + 18px)}
.portfolio-control svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}
.portfolio-control:hover:not(:disabled){background:#ffffff10}.portfolio-control:disabled{opacity:.2;cursor:default}
.portfolio-control:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
/* Small dots retain generous clickable targets and the former indicator footprint. */
.portfolio-dots{height:20px;margin:20px 0 0;display:flex;align-items:center;justify-content:center;gap:2px}
.portfolio-dot{position:relative;display:block;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--fg);cursor:pointer}
.portfolio-dot::before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:7px;height:7px;border:1px solid currentColor;border-radius:50%;opacity:.35;background:transparent;transition:opacity .2s,background .2s}
.portfolio-dot[aria-current="true"]::before{opacity:1;background:currentColor}
.portfolio-dot:hover::before{opacity:.8}.portfolio-dot:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media(max-width:760px){.portfolio-slide{gap:20px}.portfolio-control{width:36px;height:36px}.portfolio-control.previous{right:calc(100% + 10px)}.portfolio-control.next{left:calc(100% + 10px)}}
@media(max-width:520px){.portfolio-band>#portfolio{width:calc(100% - 112px)}.portfolio-slide{grid-template-columns:1fr;grid-template-rows:repeat(4,auto);gap:20px}}
@media(prefers-reduced-motion:reduce){.portfolio-slide-track{transition:none}}
/* One scale for the original 300 x 200 SVG canvases, including original whitespace. */
.marquee-group img{flex:0 0 240px;width:240px;height:160px;object-fit:contain}
@media(max-width:760px){.marquee-group img{flex-basis:192px;width:192px;height:128px}}
