@import url('https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500&display=swap');
:root{--purple:#795c9b;--paper:#f5f3ef;--ink:#141416;--pad:4.5vw}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font:300 16px/1.5 Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:200;line-height:1.06;letter-spacing:-.055em}h1{font-size:clamp(50px,5.8vw,100px)}h2{font-size:clamp(42px,4.6vw,78px)}h3{font-size:40px}em{font-style:normal;color:var(--purple)}.eyebrow{font-size:10px;letter-spacing:.28em;text-transform:uppercase;font-weight:400}.wordmark{font-size:24px;letter-spacing:.2em;white-space:nowrap}header{height:92px;position:absolute;inset:0 0 auto;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);gap:25px}nav{display:flex;gap:35px;font-size:12px;text-transform:uppercase}nav a:hover,.link:hover{color:var(--purple)}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;border:1px solid #4b484d;border-radius:50px;padding:12px 25px;background:linear-gradient(#403d42,#101012 80%);color:white;box-shadow:inset 0 1px 2px #fff7,0 8px 25px #0002;font-size:15px;transition:transform .3s}.button:hover{transform:translateY(-3px)}.link{border-bottom:1px solid currentColor;padding-bottom:4px;font-size:16px;width:fit-content;display:inline-block}.menu{display:none}.hero{height:64.5vw;min-height:735px;max-height:1050px;position:relative;isolation:isolate;background:#eee1d7;overflow:hidden}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}.hero-copy{padding:135px 0 0 var(--pad);width:55%}.hero .eyebrow{margin-bottom:27px}.intro{font-size:20px;letter-spacing:-.025em;line-height:1.4}.hero .intro{margin-top:25px}.actions{display:flex;align-items:center;gap:32px;margin-top:35px}.glass{border:1px solid #fffa;background:linear-gradient(120deg,#ffffff32,#ffffff18,#a383b547);backdrop-filter:blur(24px) saturate(125%);-webkit-backdrop-filter:blur(24px) saturate(125%);box-shadow:inset 0 1px 2px #fff5,0 14px 45px #0002;border-radius:28px}.hero-process{position:absolute;bottom:32px;right:3%;width:35%;padding:23px;color:white;background-color:#332a3a44;font-size:18px}.mini{display:flex;justify-content:space-between;font-size:12px;border-top:2px solid #c29bdb;margin-top:22px;padding-top:12px}.city{position:absolute;left:var(--pad);bottom:28px;border:1px solid #8b818b80;border-radius:50px;padding:4px 12px;font-size:8px;letter-spacing:.2em;text-transform:uppercase}.marquee{background:#18171c;color:#eee;overflow:hidden;padding:23px 0}.track{display:flex;width:max-content;animation:marquee 65s linear infinite}.track a{white-space:nowrap;padding:0 25px;border-right:1px solid #9673a8;text-transform:uppercase;letter-spacing:.25em;font-size:11px}.marquee:hover .track,.marquee:focus-within .track{animation-play-state:paused}@keyframes marquee{to{transform:translateX(-50%)}}section:not(.hero){padding:80px var(--pad)}.dark{background:#141416;color:#f5f3ef;position:relative;isolation:isolate;overflow:hidden}.dark em{color:#c29bdb}.backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#11111465,transparent);z-index:-1}.heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin:28px 0 45px}.heading>p{font-size:18px;max-width:350px}.brand-numbers{display:flex;gap:25px;margin-top:50px}.brand-numbers>div{border-right:1px solid #fff5;padding-right:25px;flex:1}.brand-numbers>div:last-child{border:0}.brand-numbers strong{font-size:65px;font-weight:200;letter-spacing:-.07em;display:block}.brand-numbers small{font-size:12px}.tabs{display:flex;border-top:1px solid #fff6;margin-top:80px}.tabs button{flex:1;text-align:left;padding:17px 0;border-top:2px solid transparent;font-size:10px;letter-spacing:.2em;text-transform:uppercase}.tabs button.active{border-color:#c29bdb;color:#c29bdb}.tabs button:last-child{text-align:right}.tabs button:nth-child(2){text-align:center}.service-layout{display:grid;grid-template-columns:34% 1fr;gap:35px}.service-tabs :is(button,a){display:flex;gap:22px;align-items:center;border-bottom:1px solid #c1b8c3;padding:20px 0;width:100%;font-size:23px;font-weight:300;text-align:left;letter-spacing:-.04em}.service-tabs :is(button,a) small{font-size:13px}.service-tabs :is(button,a) span{margin-left:auto}.service-tabs :is(button,a).active{border-bottom:2px solid var(--purple);color:var(--purple)}.service-visual{height:520px;position:relative;border-radius:26px;overflow:hidden}.service-visual>img{width:100%;height:100%;object-fit:cover}.caption{position:absolute;bottom:18px;left:18px;right:18px;padding:24px;color:white;background-color:#43354833}.caption h3{margin:6px 0;font-size:36px}.caption p{font-size:14px}.caption .link{font-size:13px;margin-top:12px}.signoff{border-top:1px solid #b7adb9;margin-top:35px;padding-top:15px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2em;text-transform:uppercase}.round{border:1px solid #fff9;background:#ffffff30;box-shadow:0 4px 15px #0001;border-radius:50%;width:45px;height:45px;font-size:23px}.faq{display:grid;grid-template-columns:1fr 1.6fr;gap:70px}.faq h2{margin-top:25px}.faq details{border-bottom:1px solid #c4bbc9;padding:0 18px}.faq details[open]{background:#e7dfeb90;padding-bottom:18px}.faq summary{list-style:none;cursor:pointer;font-size:24px;letter-spacing:-.04em;padding:18px 0;display:flex;justify-content:space-between;gap:25px}.faq summary:after{content:'+';color:var(--purple)}.faq details[open] summary{color:var(--purple)}.faq details[open] summary:after{content:'−'}.faq details p{font-size:15px;line-height:1.7}.closing{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center}.closing h2{margin:25px 0}.closing-card{padding:35px}.closing-card h3{font-size:55px;margin:25px 0}.closing-card p:last-child{font-size:13px;margin-top:15px}footer{padding:60px var(--pad) 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:45px;margin-bottom:50px}.footer-grid>div{display:flex;align-items:flex-start;flex-direction:column;gap:9px}.footer-grid .wordmark{font-size:32px}.footer-grid .eyebrow{margin-bottom:10px}dialog{background:#f5f3eff5;border:1px solid #fff;border-radius:28px;padding:35px;width:min(850px,calc(100% - 30px));max-height:90dvh;color:var(--ink);box-shadow:0 20px 100px #0005}dialog::backdrop{background:#14141688;backdrop-filter:blur(12px)}dialog h2{font-size:48px;margin:20px 0}dialog .close{float:right;font-size:25px}dialog label{display:block;margin:15px 0;font-size:14px}dialog input,dialog textarea,dialog select{display:block;width:100%;padding:12px;background:#fff6;border:1px solid #b8aebe;border-radius:8px;margin-top:6px}dialog img{width:100%;border-radius:20px;margin:20px 0}dialog .gallery{display:grid;grid-template-columns:1fr 1fr;gap:15px}dialog .gallery img{height:250px;object-fit:cover}.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}:focus-visible{outline:2px solid #795c9b;outline-offset:5px}
@media(max-width:900px){.wordmark{font-size:18px}nav{gap:20px}.hero{min-height:700px}.hero h1{font-size:6vw}.hero-copy{padding-top:135px}.brand-numbers{gap:15px}.brand-numbers strong{font-size:50px}.brand-numbers>div{padding-right:15px}.heading{align-items:flex-start;flex-direction:column}.service-tabs :is(button,a){font-size:18px;padding:19px 0;gap:12px}.service-visual{height:480px}.faq{gap:35px}.closing{gap:35px}.closing-card h3{font-size:45px}}
@media(max-width:600px){:root{--pad:22px}header{height:74px;gap:14px}header .wordmark{font-size:15px;letter-spacing:.13em}header>.button{font-size:11px;padding:8px 12px;gap:10px;margin-left:auto}nav{display:none;position:absolute;left:15px;right:15px;top:70px;border-radius:20px;padding:25px;background:#f5f3eff5;backdrop-filter:blur(20px);flex-direction:column;font-size:17px}header.open nav{display:flex}.menu{display:block;font-size:25px;padding:0}.hero{height:765px;min-height:0}.hero>img{top:305px;height:460px;object-position:59% center}.hero:after{content:'';position:absolute;inset:0 0 auto;height:390px;background:linear-gradient(#f2e9e1 85%,transparent);z-index:-1}.hero-copy{padding:111px var(--pad) 0;width:100%}.hero h1{font-size:11.3vw}.hero .eyebrow{font-size:8px;letter-spacing:.15em;margin-bottom:20px}.hero .intro{font-size:15px;margin-top:18px}.actions{gap:20px;margin-top:25px}.actions .button{font-size:13px;padding:11px 17px}.actions .link{font-size:13px}.hero-process{width:calc(100% - 44px);right:22px;bottom:24px;padding:17px 20px;font-size:16px;border-radius:20px}.city{bottom:150px;font-size:7px;background:#f5f3ef50}.mini{margin-top:17px;font-size:11px}section:not(.hero){padding:55px var(--pad)}h2{font-size:42px}.brand-numbers{margin-top:30px}.brand-numbers strong{font-size:48px}.brand-numbers small{font-size:10px}.tabs{margin-top:35px}.tabs button{font-size:7px;letter-spacing:.1em}.service-layout{grid-template-columns:1fr}.service-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.service-tabs :is(button,a){font-size:15px;gap:7px;min-height:66px;padding:12px 0}.service-tabs :is(button,a) small{font-size:10px}.service-visual{height:390px}.caption{padding:20px;left:12px;right:12px;bottom:12px;border-radius:20px}.caption h3{font-size:31px}.caption p{font-size:12px}.heading{margin:25px 0 30px}.heading p{font-size:16px}.round{width:34px;height:34px;flex-shrink:0;font-size:20px}.faq,.closing{grid-template-columns:1fr;gap:35px}.faq h2 br{display:none}.faq summary{font-size:21px}.closing-card{padding:27px}.closing-card h3{font-size:43px}.footer-grid{grid-template-columns:1fr 1fr;gap:30px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid .wordmark{font-size:28px}.signoff{font-size:8px;gap:20px}.signoff span:last-child{display:none}dialog{padding:24px}dialog h2{font-size:40px}dialog .gallery{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.marquee{overflow-x:auto}}

/* Refined opening composition and scroll chapters */
.hero{height:100svh;min-height:620px;max-height:1000px}.hero-copy{padding-top:clamp(115px,16svh,170px)}.hero h1{font-size:clamp(50px,5.8vw,100px)}.hero-process{bottom:32px;min-width:330px}.hero-copy h1,.hero-copy .intro,.hero-copy .actions,.hero-process{animation:premium-in 1.25s cubic-bezier(.16,1,.3,1) both}.hero-copy .intro{animation-delay:.16s}.hero-copy .actions{animation-delay:.28s}.hero-process{animation-delay:.4s}.mini{position:relative;border-top:1px solid #ffffff40}.mini:before{content:'';position:absolute;top:-2px;left:0;height:2px;width:calc(var(--milestone,.25)*100%);background:#e2c6f9;box-shadow:0 0 12px #d5adf5;transition:width 1.3s cubic-bezier(.16,1,.3,1)}.mini span{opacity:.45;transition:opacity .7s,transform .7s}.mini span.current{opacity:1;transform:translateY(-2px)}.mini span.complete{opacity:.8}.mini span.current:before{content:'● ';font-size:7px;color:#ead9f7}.brand-numbers strong{font-size:clamp(32px,4vw,60px)}#sourcing-description{font-size:16px;line-height:1.6;max-width:40ch;margin:20px 0}#material-bg{transition:opacity .7s}.reveal{filter:blur(8px);transition:opacity 1s,transform 1s cubic-bezier(.16,1,.3,1),filter 1s}.reveal.visible{filter:blur(0)}@keyframes premium-in{from{opacity:0;filter:blur(14px);transform:translateY(18px)}to{opacity:1;filter:blur(0);transform:none}}
@media(max-width:600px){.hero{height:100svh;min-height:660px;max-height:900px}.hero-copy{padding-top:100px}.hero h1{font-size:11.3vw}.hero>img{top:260px;height:calc(100% - 260px)}.hero-process{min-width:0;bottom:24px}.hero:after{height:345px}#sourcing-description{font-size:13px;line-height:1.5;margin:14px 0}}
@media(prefers-reduced-motion:reduce){.reveal{filter:none}.hero-copy h1,.hero-copy .intro,.hero-copy .actions,.hero-process{animation:none}}

.service-visual>img{background:#dfd7df}
/* Approved architectural hero: isolated from the sections below. */
.architecture-hero{background:#f5f3ef;height:calc(100svh - 61px);min-height:650px;max-height:1050px;isolation:isolate}.hero-photograph{position:absolute;inset:0;z-index:-2;overflow:hidden}.hero-photograph img{width:100%;height:100%;object-fit:cover;object-position:center;animation:architecture-drift 24s ease-in-out infinite alternate}.hero-photograph:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f5f3ef88,transparent 47%),linear-gradient(0deg,#f5f3ef55,transparent 20%)}.architecture-hero:after{display:none}.architecture-hero .hero-copy{position:relative;padding:clamp(145px,25svh,260px) 0 0 var(--pad);width:49%;z-index:2}.architecture-hero h1{font-size:clamp(44px,4.65vw,84px);line-height:1.12}.architecture-hero h1 span{display:block;white-space:nowrap}.architecture-hero .hero-copy h1,.architecture-hero .hero-copy .intro,.architecture-hero .hero-copy .actions{animation:none}.architecture-hero .intro{font-size:clamp(15px,1.42vw,24px);margin-top:clamp(25px,5svh,54px);line-height:1.5}.architecture-hero .actions{margin-top:clamp(25px,5svh,50px);gap:28px}.architecture-hero .actions .link{border-color:#795c9b}.point-grid{position:absolute;inset:0;width:76%;height:100%;pointer-events:none;z-index:-1;mask-image:linear-gradient(90deg,#000 50%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 50%,transparent)}.grid-patch{opacity:0;animation:grid-patch var(--cycle) linear var(--delay) infinite}.grid-patch path{fill:none;stroke:#a093ad;stroke-width:.85;stroke-dasharray:1;stroke-dashoffset:1;animation:grid-line var(--cycle) linear var(--delay) infinite}.grid-patch circle{fill:#9e85b3}.reach-card{position:absolute;z-index:3;left:34%;bottom:7%;width:clamp(270px,21vw,350px);padding:22px 26px 17px;border:1px solid #ffffffe0;border-radius:30px;background:linear-gradient(125deg,#fff9,#e5d4ed66 65%,#fff7);backdrop-filter:blur(20px) saturate(115%);-webkit-backdrop-filter:blur(20px) saturate(115%);box-shadow:inset 0 1px 1px #fffc,0 20px 32px #69467e30,0 3px 6px #4934580a;animation:reach-float 7s ease-in-out infinite}.reach-card h2{font-size:34px;letter-spacing:-.055em}.reach-card>p{font-size:12px;color:#655d6a;margin-top:5px}.reach-card small{font-size:10px;color:#706775}.reach-graph{display:block;width:100%;height:auto;overflow:visible;margin:14px 0 8px}.graph-grid{stroke:#aa96ba;stroke-opacity:.19;stroke-width:.6;fill:none}.graph-area{fill:url(#reach-fill)}.graph-curve{stroke:#8e65ac;stroke-width:2.2;fill:none;stroke-dasharray:1;animation:reach-draw 10s cubic-bezier(.3,.05,.25,1) infinite}.reach-cycle{animation:reach-cycle 10s linear infinite}.graph-end{fill:#8e65ac;animation:reach-end 10s ease infinite;transform-origin:292px 12px}.second-cycle,.second-cycle .graph-curve,.second-cycle .graph-end{animation-delay:-5s}.motion-paused *{animation-play-state:paused!important}@keyframes architecture-drift{from{transform:scale(1.001) translateX(0)}to{transform:scale(1.02) translateX(-.3%)}}@keyframes reach-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes grid-patch{0%,20%{opacity:0}26%,37%{opacity:.42}40%,100%{opacity:0}}@keyframes grid-line{0%,20%{stroke-dashoffset:1}29%,100%{stroke-dashoffset:0}}@keyframes reach-cycle{0%{opacity:0}5%,40%{opacity:1}50%,100%{opacity:0}}@keyframes reach-draw{0%{stroke-dashoffset:1}32%,100%{stroke-dashoffset:0}}@keyframes reach-end{0%,26%{opacity:0;transform:scale(.7)}34%,40%{opacity:1;transform:scale(1.1)}50%,100%{opacity:0;transform:scale(1)}}
@media(min-width:961px) and (max-height:760px){.architecture-hero .hero-copy{padding-top:155px}.architecture-hero .intro{margin-top:25px}.architecture-hero .actions{margin-top:25px}.reach-card{bottom:24px;left:43%;width:270px}}
@media(max-width:960px){.architecture-hero .hero-copy{width:66%;padding-top:160px}.architecture-hero h1{font-size:clamp(44px,5.4vw,60px)}.reach-card{left:auto;right:5%;bottom:35px;width:280px}.hero-photograph:after{background:linear-gradient(90deg,#f5f3efb0,transparent 70%)}}
@media(max-width:600px){.architecture-hero{height:auto;min-height:900px;max-height:none;padding-bottom:290px}.architecture-hero .hero-copy{padding:115px 22px 0;width:100%}.architecture-hero h1{font-size:clamp(35px,8.8vw,53px)}.architecture-hero .intro{font-size:14px;margin-top:25px}.architecture-hero .actions{gap:23px;margin-top:25px}.architecture-hero .actions .button{padding:12px 18px}.architecture-hero .actions .link{font-size:13px}.hero-photograph{top:300px;height:420px;bottom:auto}.hero-photograph img{object-position:76% center}.hero-photograph:after{background:linear-gradient(180deg,#f5f3ef 0%,#f5f3ef00 23%,transparent 78%,#f5f3ef 100%)}.point-grid{width:100%;height:100%;mask-image:linear-gradient(#000,transparent 60%);-webkit-mask-image:linear-gradient(#000,transparent 60%)}.reach-card{left:22px;right:auto;bottom:30px;width:min(285px,calc(100% - 44px));padding:20px 23px 15px;border-radius:26px}.reach-card h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){.architecture-hero *{animation:none!important}.grid-patch{opacity:0}.grid-patch:nth-child(5n){opacity:.2}.grid-patch path{stroke-dashoffset:0}.reach-cycle{opacity:1}.second-cycle{display:none}.graph-curve{stroke-dashoffset:0}.graph-end{opacity:1}}
@media(min-width:961px){.reach-card{left:max(34%,calc(var(--pad) + 430px))}}
@keyframes reach-cycle{0%{opacity:0}10%,50%{opacity:1}60%,100%{opacity:0}}
#capabilities .service-visual{height:auto;min-height:0;display:grid;grid-template-rows:minmax(180px,34svh) auto;background:#ece6ea;border:1px solid #fff9;box-shadow:0 10px 35px #30203a0c}#capabilities .service-visual>img{display:block;width:100%;height:100%;min-height:0;object-fit:contain;background:#eee9eb}#capabilities .service-visual>.caption{position:relative;inset:auto;padding:19px 24px 20px;border-radius:0;border:0;border-top:1px solid #fff;color:#242027;background:linear-gradient(120deg,#ffffffe0,#e6daebcc);box-shadow:inset 0 1px 1px #fff;backdrop-filter:blur(18px)}#capabilities .caption h3{font-size:27px;margin:5px 0}#capabilities .caption p{font-size:13px}#capabilities .caption .eyebrow{font-size:9px}#capabilities .caption .link{font-size:12px;margin-top:10px}#capabilities .service-layout{align-items:start}
@media(max-width:600px){#capabilities .service-visual{grid-template-rows:minmax(170px,29svh) auto}#capabilities .service-visual>.caption{padding:15px 18px}#capabilities .caption h3{font-size:24px}#capabilities .caption p{font-size:12px}#capabilities .service-layout{gap:12px}}
/* Small, independently revealed grid segments. */
.grid-patch path{stroke-width:.7;stroke:#a79aae;stroke-linecap:round}.grid-patch circle{fill:#977cae}@keyframes grid-patch{0%,12%{opacity:0}20%,30%{opacity:.4}40%,100%{opacity:0}}@keyframes grid-line{0%,12%{stroke-dashoffset:1}27%,100%{stroke-dashoffset:0}}
.catalogue-links{padding-top:25px;scroll-margin-top:100px}.catalogue-links .eyebrow{font-size:9px;margin-bottom:9px}.catalogue-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 0;font-size:15px;border-bottom:1px solid #bdb0c7}.catalogue-links a:hover{color:var(--purple)}.catalogue-links small{display:block;font-size:10px;color:#716776;margin-top:8px}.service-sidebar{min-width:0}
/* Full composition with a pill half inside, half outside its photograph. */
#capabilities .service-visual{display:block;position:relative;height:auto;min-height:0;overflow:visible;padding-bottom:65px;background:none;border:0;box-shadow:none}#capabilities .service-visual>img{width:100%;height:auto;max-height:44svh;min-height:0;object-fit:contain;display:block;background:transparent;border-radius:28px}#capabilities .service-visual>.caption{position:absolute;left:0;right:0;bottom:0;inset:auto 0 0;display:grid;grid-template-columns:1fr auto;column-gap:28px;align-items:center;padding:23px 30px 25px;border:1px solid #fff;border-radius:55px;background:linear-gradient(115deg,#fffc,#e9dce8b3,#fff9);box-shadow:inset 0 1px 2px #fff,0 15px 24px #563d6326;color:#242027;backdrop-filter:blur(22px) saturate(115%);-webkit-backdrop-filter:blur(22px) saturate(115%)}#capabilities .caption .eyebrow,#capabilities .caption h3,#capabilities .caption>p{grid-column:1}#capabilities .caption .eyebrow{font-size:8px;letter-spacing:.22em}#capabilities .caption h3{font-size:30px;margin:8px 0;line-height:1.1}#capabilities .caption>p:not(.eyebrow){font-size:12px;line-height:1.5}#capabilities .caption .link{grid-column:2;grid-row:1/4;align-self:center;margin:0 0 0 4px;max-width:160px;font-size:12px;text-align:left;line-height:1.6}#capabilities .heading>p{padding-left:25px;border-left:1px solid #99909c}#capabilities .service-layout{grid-template-columns:31% 1fr;gap:35px}
@media(max-width:900px){header nav{gap:17px;font-size:11px}#capabilities .caption h3{font-size:25px}#capabilities .service-visual>.caption{grid-template-columns:1fr;padding:22px 26px;border-radius:35px}#capabilities .caption .link{grid-column:1;grid-row:auto;margin:12px 0 0}#capabilities .service-visual{padding-bottom:110px}.catalogue-links a{font-size:13px}}
@media(max-width:600px){#capabilities .service-layout{grid-template-columns:1fr;gap:18px}#capabilities .service-sidebar{display:flex;flex-direction:column;gap:14px}#capabilities .catalogue-links{padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}.catalogue-links .eyebrow,.catalogue-links small{display:none}.catalogue-links a{font-size:12px;flex:1;white-space:nowrap;gap:7px;padding:4px 0}#capabilities .service-visual>img{max-height:28svh;border-radius:22px}#capabilities .service-visual>.caption{padding:17px 23px;border-radius:30px;gap:0}#capabilities .caption h3{font-size:24px;margin:6px 0}#capabilities .caption>p:not(.eyebrow){font-size:11px}#capabilities .caption .link{font-size:11px;margin-top:9px}#capabilities .service-visual{padding-bottom:105px}#capabilities .heading>p{padding-left:0;border:0}}
@media(min-width:601px){#capabilities .catalogue-links{padding-top:18px}#capabilities .catalogue-links a{padding:7px 0}}


/* Isolated strokes fade in place, with a different phase for each line. */
.hero-grid-stroke{stroke:#a88bb6;stroke-width:.8;stroke-linecap:round;opacity:0;animation:hero-grid-fade var(--cycle) ease-in-out var(--delay) infinite}
.hero-grid-dot{fill:#9871b2;opacity:.32}
@keyframes hero-grid-fade{0%,100%{opacity:0}44%{opacity:var(--peak)}}
@media(prefers-reduced-motion:reduce){.hero-grid-stroke{animation:none;opacity:.15}}

/* Quiet hierarchy across the home page. */
.hero-grid-stroke{stroke-width:1.35;opacity:.09;animation:open-grid-fade var(--cycle) ease-in-out var(--delay) infinite}
@keyframes open-grid-fade{0%,100%{opacity:.025}48%{opacity:.38}}
.point-grid{width:66%;mask-image:linear-gradient(90deg,#000 45%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,#000 45%,transparent 100%)}

#capabilities{background:#f5f3ef}
#capabilities .heading{margin-bottom:clamp(25px,5vw,60px)}
#capabilities .service-layout{grid-template-columns:minmax(220px,1fr) minmax(0,2.2fr);gap:clamp(25px,5vw,76px)}
#capabilities .service-tabs :is(button,a){font-size:clamp(14px,1.35vw,20px);padding:17px 0;gap:14px}
#capabilities .service-tabs :is(button,a) small{opacity:.52}
#capabilities .service-tabs :is(button,a) span{font-size:16px}
#capabilities .service-visual{padding:0}
#capabilities .service-visual>img{width:100%;height:auto;max-height:none;aspect-ratio:3/2;object-fit:contain;background:#eee9e7;border-radius:20px}
#capabilities .service-visual>.caption{position:relative;inset:auto;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:19px 0 0;column-gap:24px}
#capabilities .caption .eyebrow{display:none}
#capabilities .caption h3{font-size:clamp(22px,2.5vw,34px);margin:0 0 7px}
#capabilities .caption>p:not(.eyebrow){font-size:14px}
#capabilities .caption .link{grid-row:1/3;font-size:13px;white-space:nowrap}
#capabilities .catalogue-links{display:flex;gap:12px 32px;flex-wrap:wrap;margin-top:36px;padding-top:18px;border-top:1px solid #d9d1d9}
#capabilities .catalogue-links a{width:auto;border-bottom:0;padding:4px 0;gap:8px}


@media(max-width:900px){#capabilities .service-visual>.caption{display:block}#capabilities .caption .link{display:inline-block;margin:14px 0 0}}
@media(max-width:760px){#capabilities .service-layout{grid-template-columns:1fr;gap:22px}#capabilities .service-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}#capabilities .service-tabs :is(button,a){padding:12px 0;gap:7px;min-height:45px}#capabilities .service-tabs :is(button,a) span{display:none}#capabilities .service-visual>.caption{display:block}#capabilities .caption .link{display:inline-block;margin:14px 0 0}#capabilities .catalogue-links{margin-top:25px;gap:10px 24px}}
@media(max-width:600px){.point-grid{width:100%;mask-image:linear-gradient(#000,transparent 70%);-webkit-mask-image:linear-gradient(#000,transparent 70%)}}
@media(prefers-reduced-motion:reduce){.hero-grid-stroke{animation:none;opacity:.18}}

/* A fine pattern revealed locally by the pointer over the ivory area. */
.point-grid.cursor-grid{
 width:46%;
 opacity:0;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Cpath d='M7 11h8m-4-4v8' fill='none' stroke='%23937ba2' stroke-opacity='.47' stroke-width='.75'/%3E%3C/svg%3E");
 mask-image:radial-gradient(circle 145px at var(--cursor-x,0px) var(--cursor-y,0px),#000 0%,#000b 39%,transparent 100%);
 -webkit-mask-image:radial-gradient(circle 145px at var(--cursor-x,0px) var(--cursor-y,0px),#000 0%,#000b 39%,transparent 100%);
 transition:opacity .4s ease;
}
.point-grid.cursor-grid-visible{opacity:var(--grid-strength,1)}
@media(hover:none){.point-grid.cursor-grid{display:none}}
@media(prefers-reduced-motion:reduce){.point-grid.cursor-grid{transition:none}}

/* Move both versions together so the wireframe stays registered to the facade. */
.hero-building{position:absolute;inset:0;isolation:isolate;animation:architecture-drift 24s ease-in-out infinite alternate}
.hero-photograph .hero-building img{position:absolute;inset:0;display:block;animation:none}
.hero-wireframe{
 pointer-events:none;
 opacity:0;
 /* Feather the drawing into the colored base and keep it off the ivory side. */
 mask-image:radial-gradient(circle clamp(115px,12vw,190px) at var(--wire-x,50%) var(--wire-y,50%),#000 0%,#000c 24%,#0006 52%,#0002 76%,transparent 100%),linear-gradient(90deg,transparent 46%,#000 56%);
 -webkit-mask-image:radial-gradient(circle clamp(115px,12vw,190px) at var(--wire-x,50%) var(--wire-y,50%),#000 0%,#000c 24%,#0006 52%,#0002 76%,transparent 100%),linear-gradient(90deg,transparent 46%,#000 56%);
 mask-composite:intersect;
 -webkit-mask-composite:source-in;
 transition:opacity .45s ease-in-out;
}
.wireframe-visible .hero-wireframe{opacity:.62}
@media(prefers-reduced-motion:reduce){.hero-building{animation:none}.hero-wireframe{transition:none}}

#capabilities .service-image-frame{
 position:relative;
 width:100%;
 aspect-ratio:3/2;
 border-radius:20px;
 overflow:hidden;
 background:#eee9e7;
}
#capabilities .service-image-frame img{
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
 object-fit:contain;
 object-position:center;
 display:block;
}
#service-wireframe{
 opacity:0;
 pointer-events:none;
 --reveal-mask:radial-gradient(circle clamp(70px,10vw,150px) at var(--reveal-x,50%) var(--reveal-y,50%),#000 18%,#000a 56%,transparent 100%),
  radial-gradient(circle clamp(45px,7vw,100px) at var(--trail-x,50%) var(--trail-y,50%),#0007,transparent 100%);
 -webkit-mask-image:var(--reveal-mask);
 mask-image:var(--reveal-mask);
}
.wireframe-ready #service-wireframe{transition:opacity 280ms ease-in-out}
.wireframe-ready.wireframe-hover #service-wireframe{opacity:1}

@media(prefers-reduced-motion:reduce){
 .wireframe-ready #service-wireframe{transition:none}
}

@media(min-width:901px){
 #capabilities .heading{margin-bottom:clamp(38px,6svh,68px)}
 /* Constrain the width on short screens so the 3:2 frame keeps its shape. */
 #capabilities .service-image-frame{max-width:max(240px,calc((100svh - 72px) * 1.5))}
}

@media(max-width:900px){#capabilities .heading{margin-bottom:36px}}

/* Give the longer graph title room and move the glass card right. */
.architecture-hero .reach-card h2{font-size:clamp(25px,2.2vw,34px)}
@media(min-width:961px){
 .architecture-hero .reach-card{left:auto;right:clamp(28px,5vw,96px);bottom:clamp(55px,16%,150px)}
}
@media(max-width:600px){
 .architecture-hero .reach-card{left:auto;right:22px}
}

#clients{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,2fr);align-items:center;gap:clamp(20px,4vw,64px);background:#f5f3ef;padding-block:clamp(62px,9vw,125px)}
.clients-intro h2{margin:20px 0 0;line-height:1.08}
.clients-intro em{color:#87639a}
.clients-orbit{position:relative;min-height:270px;aspect-ratio:1.52}
.clients-orbit svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.clients-orbit ellipse{fill:none;stroke:#a889ba;stroke-opacity:.28;stroke-width:1;vector-effect:non-scaling-stroke}
.clients-wordmark{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;font-size:clamp(13px,1.55vw,24px);font-weight:500;letter-spacing:.26em;background:radial-gradient(ellipse,#f5f3ef 53%,transparent 76%);padding:20px 25px}
.client-orbit-logo{position:absolute;width:var(--logo-width);height:clamp(25px,5vw,64px);transform:translate(-50%,-50%);object-fit:contain;filter:grayscale(1);opacity:.9}
.clients-controls{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:6px;color:#655768;font-size:12px}
.clients-controls button{background:transparent;border:1px solid #d9ccd9;border-radius:40px;padding:7px 12px;color:inherit;font:inherit;cursor:pointer}
.clients-controls button:hover,.clients-controls button:focus-visible{background:#eae2ed;color:#302536}
#client-orbit-page{min-width:4ch;text-align:center;font-variant-numeric:tabular-nums}
@media(max-width:900px){#clients{grid-template-columns:1fr;gap:16px}.clients-intro h2{font-size:clamp(35px,6vw,58px)}}
@media(max-width:600px){.clients-orbit{min-height:240px}.clients-wordmark{padding:15px 12px;letter-spacing:.16em}.clients-controls{gap:10px}}
.client-orbit-logo{mix-blend-mode:multiply}
.client-orbit-logo.light-mark{filter:grayscale(1) invert(1)}
@media(min-width:601px){header nav{gap:clamp(10px,1.8vw,28px)}}
.client-orbit-links path{fill:none;stroke:#a889ba;stroke-opacity:.38;stroke-width:1;vector-effect:non-scaling-stroke}
@media(min-width:901px){#clients .clients-intro h2{font-size:clamp(31px,3.4vw,56px)}#clients .clients-intro em{white-space:nowrap}}
/* Keep the entire client collection on one orbital canvas. */
.clients-orbit{min-height:330px;aspect-ratio:1.38}
.client-orbit-logo{height:8%;max-height:48px}
.clients-wordmark{font-size:clamp(11px,1.35vw,21px);padding:12px 14px}
@media(max-width:600px){.clients-orbit{min-height:290px}.client-orbit-logo{height:7.5%}}

/* Perspective and lighting give the logo globe a visible foreground and rear. */
.clients-orbit{
 isolation:isolate;
 background:radial-gradient(ellipse at 51% 48%,#e7ddec80,transparent 63%);
}
.clients-orbit ellipse{stroke-opacity:.19}
.clients-wordmark{z-index:100;background:radial-gradient(ellipse,#f5f3ef 42%,#f5f3efd9 58%,transparent 76%);padding:19px 23px}
.client-orbit-logo{height:8%;max-height:48px;will-change:transform}
@media(max-width:600px){.client-orbit-logo{height:7%}.clients-wordmark{padding:13px 9px}}

header .service-nav { gap: clamp(12px, 1.3vw, 24px); }
header .service-nav button {
  font: inherit;
  text-transform: inherit;
  color: inherit;
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 0;
}
header .service-nav :is(a, button):hover { color: var(--plum, #795c9b); }
#service-image-link { display: block; }
#service-image-link:focus-visible { outline: 2px solid #795c9b; outline-offset: 4px; }

@media (max-width:1240px), (max-width:1440px) and (pointer:coarse) {
  header .service-nav {
    display: none;
    position: absolute;
    inset: calc(100% - 4px) var(--pad) auto;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 12px 20px;
    border-radius: 20px;
    background: #f5f3eff5;
    backdrop-filter: blur(20px);
    font-size: 14px;
  }
  header.open .service-nav { display: flex; }
  header .service-nav :is(a, button) { padding: 12px 0; text-align: left; }
  header > .button { margin-left: auto; }
  header .menu { display: block; font-size: 25px; padding: 0; }
}

#numbers {
  padding-block: clamp(34px, 5vw, 64px);
  background: #f5f3ef;
}
#numbers .heading {
  flex-direction: row;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 12px 0 22px;
}
#numbers h2 { font-size: clamp(30px, 4.2vw, 58px); }
.stats-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  padding: clamp(12px, 2vw, 24px) 0;
  background: linear-gradient(145deg, #ffffffd9, #f5f3efb8);
  box-shadow: inset 0 1px 2px #fff, 0 10px 30px #26201812;
}
.stat {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px clamp(10px, 1.7vw, 25px);
}
.stat + .stat { border-inline-start: 1px solid #28231e20; }
.stat strong {
  font-size: clamp(23px, 4vw, 59px);
  font-weight: 200;
  letter-spacing: -.065em;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.stat > span { font-size: clamp(12px, 1.15vw, 16px); line-height: 1.35; }

@media (max-width: 740px) {
  .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stat:nth-child(4) { border-inline-start: 0; }
  .stat:nth-child(n + 4) {
    border-top: 1px solid #28231e20;
    margin-top: 8px;
    padding-top: 13px;
  }
}


/* Desktop proportions for the homepage at the browser's default zoom. */
@media (min-width: 901px) {
  body:not(.media-page) > header {
    height: clamp(68px, 5.1vw, 92px);
  }

  .architecture-hero {
    height: clamp(480px, 43vw, calc(100svh - 52px));
    min-height: 0;
  }
  .architecture-hero .hero-copy {
    padding-top: clamp(105px, min(12vw, 28svh), 245px);
    width: 49%;
  }
  .architecture-hero h1 {
    font-size: clamp(40px, 4.65vw, 96px);
  }
  .architecture-hero .intro {
    font-size: clamp(15px, 1.35vw, 27px);
    margin-top: clamp(20px, 2.6vw, 52px);
  }
  .architecture-hero .actions {
    margin-top: clamp(19px, 2.4vw, 48px);
  }
  .architecture-hero .reach-card {
    right: var(--pad);
    bottom: 16%;
    width: clamp(210px, 19.5vw, 398px);
    padding: clamp(15px, 1.45vw, 29px);
  }
  .architecture-hero .reach-card h2 {
    font-size: clamp(22px, 1.95vw, 40px);
  }
  .marquee {
    padding-block: clamp(14px, 1.25vw, 24px);
  }
  #capabilities h2,
  .closing h2 {
    font-size: clamp(38px, 4.25vw, 88px);
  }
  .closing-card h3 {
    font-size: clamp(30px, 3.1vw, 64px);
  }

  #capabilities .service-layout {
    gap: clamp(26px, 4.2vw, 86px);
  }
  #capabilities .service-tabs button {
    padding-block: clamp(12px, 1.17vw, 24px);
  }

  section.closing {
    padding-block: clamp(34px, 4.4vw, 90px);
    grid-template-columns: 1.2fr 1fr;
    gap: clamp(32px, 4vw, 80px);
  }
  .closing-card { padding: clamp(24px, 2vw, 42px); }
}


#numbers {
  padding-block: clamp(54px, 6.5vw, 104px);
}
#numbers .heading { margin-bottom: clamp(25px, 3vw, 44px); }
#numbers .stats-grid {
  padding-block: clamp(18px, 2.1vw, 32px);
  box-shadow: inset 0 1px 2px #fff, 0 4px 14px #26201808;
}
#numbers .stat { gap: 9px; }

.service-chapter p, .service-progress { display: none; }

@media (min-width: 901px) {
  header .service-nav {
    justify-content: center;
    gap: clamp(12px, 1.6vw, 28px);
  }
  header .service-nav > * { white-space: nowrap; }

  #capabilities { padding-block: clamp(56px, 6vw, 110px); }
  #capabilities .service-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
    gap: clamp(42px, 8vw, 150px);
  }
  #capabilities .service-visual {
    position: sticky;
    top: clamp(24px, 8svh, 78px);
    align-self: start;
    max-width: calc(99svh - 65px);
  }
  #capabilities .service-image-frame { max-width: none; }
  .service-progress {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: clamp(14px, 2vw, 25px);
    color: #635a68;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
  }
  .service-progress i {
    flex: 1;
    height: 3px;
    border-radius: 10px;
    background: #ded8df;
    transition: background-color 300ms ease;
  }
  .service-progress i.active { background: var(--purple); }
  .service-chapter {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: max(340px, 72svh);
    gap: 14px;
    padding: 24px 0;
  }
  #capabilities .service-tabs .service-chapter button {
    justify-content: flex-start;
    padding: 0;
    border: 0;
    color: var(--ink);
    font-size: clamp(27px, 3vw, 56px);
    font-weight: 200;
    line-height: 1.08;
    letter-spacing: -.05em;
  }
  #capabilities .service-tabs .service-chapter button.active { color: var(--purple); }
  .service-chapter button span { display: none; }
  .service-chapter button small {
    font-size: 12px;
    letter-spacing: .08em;
  }
  .service-chapter p {
    display: block;
    max-width: 38ch;
    color: #58515b;
    font-size: clamp(15px, 1.4vw, 21px);
    line-height: 1.55;
  }
  #capabilities .service-visual > .caption { display: block; padding-top: 10px; }
  #capabilities .caption h3, #capabilities .caption > p { display: none; }
  #capabilities .caption .link { display: inline-block; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .service-progress i { transition: none; }
}


/* A single editorial image and four steps in the normal page flow. */
#process {
  padding-block: clamp(58px, 7vw, 116px);
  background: #faf8f5;
}
.process-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(34px, 7vw, 128px);
}
.process-intro h2 { margin-top: clamp(18px, 2.1vw, 34px); }
.process-summary {
  margin-top: clamp(16px, 2vw, 30px);
  max-width: 34ch;
  color: #56515a;
  font-size: clamp(16px, 1.5vw, 22px);
}
.process-photo {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: clamp(15px, 1.7vw, 28px);
}
.process-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 52px);
  list-style: none;
  padding: 0;
  margin: clamp(34px, 4.5vw, 76px) 0 0;
}
.process-steps li {
  border-top: 1px solid #d8d0d9;
  padding-top: 15px;
}
.process-step-number {
  color: var(--purple);
  font-size: 12px;
  letter-spacing: .12em;
}
.process-steps h3 {
  margin: 8px 0;
  font-size: clamp(26px, 2.5vw, 40px);
}
.process-steps p {
  max-width: 32ch;
  color: #56515a;
  font-size: clamp(14px, 1.2vw, 17px);
}
@media (max-width: 760px) {
  .process-intro { grid-template-columns: 1fr; gap: 24px; }
  .process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

#work { padding-block: clamp(44px, 5vw, 80px); }
#work .heading { margin: 16px 0 clamp(22px, 3vw, 42px); }
#work h2 { font-size: clamp(36px, 4vw, 66px); }
.work-viewport { overflow: hidden; padding: 6px; margin: -6px; }
.work-grid { --work-gap: clamp(16px, 2.5vw, 38px); display: flex; gap: var(--work-gap); position: relative; }
.work-grid .work-project { flex: 0 0 calc((100% - 2 * var(--work-gap)) / 3); }
.work-controls { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 24px; color: #716978; font-size: 13px; }
.work-controls > div { display: flex; align-items: center; gap: 16px; }
.work-nav { width: 40px; height: 40px; border: 1px solid #6e61732e; border-radius: 50%; background: #ffffff4d; font-size: 22px; }
.work-controls button:focus-visible { outline: 2px solid var(--purple); outline-offset: 4px; }
.work-project { min-width: 0; text-align: left; }
.work-project:focus-visible { outline: 2px solid var(--purple); outline-offset: 5px; }
.work-photo {
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: 16px;
  overflow: hidden;
  background: #e8e1dc;
}
.work-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 450ms ease;
}
.work-photo img { object-position: center; }
.work-project:hover img { transform: scale(1.025); }
.work-project-info {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
}
.work-project-info strong {
  display: block;
  font-size: clamp(19px, 2vw, 29px);
  font-weight: 300;
  line-height: 1.2;
}
.work-project-info small {
  display: block;
  margin-top: 4px;
  color: #56515a;
  font-size: 13px;
}
.work-arrow { color: var(--purple); }
@media (max-width: 600px) {
  .work-grid { --work-gap: 24px; }
  .work-grid .work-project { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .work-photo img { transition: none; }
  .work-project:hover img { transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .process-steps li { position: relative; --process-index: 0; }
  .process-steps li:nth-child(2) { --process-index: 1; }
  .process-steps li:nth-child(3) { --process-index: 2; }
  .process-steps li:nth-child(4) { --process-index: 3; }
  .process-steps li::before {
    content: '';
    position: absolute;
    inset: -1px 0 auto;
    height: 2px;
    background: var(--purple);
    transform-origin: left;
    transform: scaleX(clamp(0, calc(var(--process-progress, 0) - var(--process-index)), 1));
  }
}

.media-nav-shine {
  --shine-base: #705680;
  --shine-cycle: 6.1s;
  --shine-edge: #88659f;
  --shine-mid: #bb7bea;
  --shine-light: #d8a3ff;
  --shine-peak: #edcaff;
  --shine-return: #ac89c5;
  --shine-halo: #aa55ee75;
  --shine-glow: 4px;
  display: inline-block;
  color: var(--shine-base);
}
.hero-glass-shine {
  --shine-base: var(--purple);
  --shine-cycle: 6.9s;
  --shine-edge: #a981c9;
  --shine-mid: #ca83fa;
  --shine-width: 440%;
  --shine-light: #e6b5ff;
  --shine-peak: #fff6ff;
  --shine-return: #d89df7;
  --shine-halo: #b46ff691;
  --shine-glow: 6px;
  display: inline-block;
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
  @media (prefers-reduced-motion: no-preference) and (forced-colors: none) {
    :is(.media-nav-shine, .architecture-hero .hero-glass-shine) {
      background: linear-gradient(105deg,
        var(--shine-base) 28%, var(--shine-edge,#51208c) 34%, var(--shine-mid,#8039ce) 42%, var(--shine-light,#c596f4) 48%,
        var(--shine-peak,#e7ceff) 51%, var(--shine-return,#a365db) 54%, var(--shine-edge,#51208c) 65%, var(--shine-base) 72%)
        100% 0 / var(--shine-width,360%) 100%;
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
      animation: purple-glass-sheen var(--shine-cycle) linear infinite;
    }
    .media-nav-shine { animation-delay: -1.35s; }
    .hero-glass-shine { animation-delay: -2.3s; }
  }
}
@keyframes purple-glass-sheen {
  0%, 2% { background-position: 100% 0; filter: none; }
  45% { filter: drop-shadow(0 0 var(--shine-glow) var(--shine-halo,#a253e899)); }
  94%, 100% { background-position: 0 0; filter: none; }
}


/* An opaque fallback keeps the caption readable without backdrop support. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .materials-glass { background: #302c33ed; }
}

.work-photo--complete img { object-fit: contain; }

/* Keep the hover drawing registered to the approved hero composition. */
.hero-wireframe { filter: grayscale(1) brightness(1.04); }
/* Keep the navigation over calm ivory as the architecture emerges below it. */
@media (min-width:601px) {
 .architecture-hero .hero-photograph::before {
  content:'';
  position:absolute;
  z-index:1;
  inset:0 0 auto;
  height:clamp(155px,20svh,210px);
  pointer-events:none;
  background:linear-gradient(180deg,#f5f3ef 0%,#f5f3effa 34%,#f5f3efdf 51%,#f5f3ef80 73%,#f5f3ef26 89%,#f5f3ef00 100%);
 }
 body:has(.architecture-hero) > header .service-nav > a { font-weight:400; color:var(--ink); }
}

.pavilion-construction { display:none; }

/* Keep the inquiry action readable when the header gets crowded. */
header > .button { flex-shrink:0; white-space:nowrap; gap:8px; }
.site-arrow { display:inline-block; width:1em; height:1em; flex:none; vertical-align:-.13em; }
.button:has(> .site-arrow) { column-gap:8px; }
.hero-sky-grid { display:none; }
