/* Precision's work is the visual material: light, scale, and physical depth. */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-surface:cubic-bezier(.22,.68,0,1.04)}
.hero-stage h1{font-size:clamp(72px,8.1vw,138px);letter-spacing:-.057em}
.hero-line{display:block;overflow:hidden;padding:.075em 0;margin:-.075em 0;color:var(--white)}
.hero-line>span{display:block;color:var(--white)}
.hero-line:last-child>span{color:var(--mint)}
.js-ready .hero-line>span{animation:title-arrive 1.25s var(--ease-out) both}
.js-ready .hero-line:nth-child(2)>span{animation-delay:.1s}
.js-ready .hero-line:nth-child(3)>span{animation-delay:.2s}
.js-ready .hero-intro{animation:copy-arrive 1.3s .3s var(--ease-out) both}
.hero-stage .hero-mark{width:min(100%,450px);aspect-ratio:1;place-self:center}
.hero-emblem{width:100%;aspect-ratio:1;transform-style:preserve-3d}
/* Alpha bounds center: (594,454) in the unchanged 1024px artwork. */
.hero-centering{width:100%;transform:translate3d(-8.0078125%,5.6640625%,0);transform-style:preserve-3d}
.hero-stage .hero-mark img{display:block;width:100%;transform-origin:58.0078125% 44.3359375%}
.js-ready .hero-emblem{animation:bull-arrive 2.2s .15s var(--ease-out) both;animation-play-state:paused}
.hero.material-running .hero-emblem{animation-play-state:running}
.js-ready .hero-emblem.is-arrived{animation:none;opacity:1;transform:none}
@keyframes bull-arrive{from{opacity:0;transform:translate3d(0,28px,-100px) rotateX(8deg) rotateY(-9deg) scale(.92)}to{opacity:1;transform:translate3d(0,0,0) rotateX(0) rotateY(0) scale(1)}}
.motion-paused .hero-emblem{animation:none!important;opacity:1;transform:none}
@media(max-width:760px){.hero-stage .hero-mark{width:230px}.hero-stage .hero-mark img{width:100%}}
@media(max-width:360px){.hero-stage .hero-mark{width:205px}}
@media(prefers-reduced-motion:reduce){.js-ready .hero-emblem{animation:none;opacity:1;transform:none}}
@keyframes title-arrive{from{transform:translateY(112%)}to{transform:translateY(0)}}
@keyframes copy-arrive{from{opacity:0}to{opacity:1}}
.hero{border-bottom:0}
.hero-bottom{color:#b4c5ba}
.text-link{position:relative;border-bottom-color:#abc8b755}
.text-link:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1)}
.js-ready .reveal{transform:translateY(30px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.js-ready .reveal.shown{transform:none}
.section{padding-top:clamp(90px,9vw,145px);padding-bottom:clamp(90px,9vw,145px)}

/* A continuous service index, with measured expansion rather than snapping. */
.practice{position:relative;background:linear-gradient(180deg,#07100f,#091612)}
.practice-intro{padding-bottom:76px;gap:clamp(48px,8vw,120px)}
.practice-intro h2{font-size:clamp(42px,5.2vw,80px);line-height:1.1;letter-spacing:-.045em}
.practice-intro .lead{font-size:clamp(21px,2vw,28px);line-height:1.5}
.practice-intro>div>p:last-child{max-width:430px}
.service-index{border-top-color:#8eb49b55}
.service-row{position:relative;isolation:isolate}
.service-row:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,#97cbae0a,transparent 75%);opacity:0;transition:opacity .7s}
.service-row[open]:before,.service-row:hover:before{opacity:1}
.service-row summary{padding:34px 0;grid-template-columns:1fr 280px 25px}
.service-row h3{font-size:clamp(26px,3vw,45px);letter-spacing:-.04em;transition:transform .55s var(--ease-out),color .3s}
.service-row summary:hover h3{transform:translateX(7px)}
.service-short{font-size:13px;color:#9bb1a4}
.service-body{padding-bottom:38px;gap:clamp(40px,8vw,110px)}
.service-body>p{font-size:18px;max-width:580px}
.service-body ul{font-size:14px;line-height:2}
.service-body li:before{content:none}
.toggle-symbol{transition:transform .45s var(--ease-out)}
.service-row[data-expanded=false] .toggle-symbol{transform:none}
.service-row[data-expanded=true] .toggle-symbol{transform:rotate(45deg)}
.practice-end{margin-top:35px;font-size:15px}

/* The product is exhibited at scale, on an open material stage. */
.work-section{background:#e8ede6;overflow:clip}
.work-title{grid-template-columns:1.15fr 1fr;gap:clamp(50px,8vw,130px);align-items:center}
.work-title h2{font-size:clamp(62px,7.8vw,118px);line-height:1.03;letter-spacing:-.055em}
.work-title h2 em{font-style:normal;color:#6d8476}
.work-title>div{max-width:450px;padding-top:20px}
.work-title>div>p:first-child{font:500 clamp(22px,2.15vw,32px)/1.3 General;letter-spacing:-.035em;color:#243c2d;margin-bottom:23px}
.work-title>div>p:last-child{font-size:17px;line-height:1.8;color:#53675a}
.work-viewer{position:relative;isolation:isolate;display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(30px,4.8vw,80px);align-items:start;width:calc(100% + var(--pad)*2);margin:78px calc(-1*var(--pad)) 0;padding:75px var(--pad) 66px;border:0;box-shadow:inset 0 1px #b8d4c118,0 30px 70px -50px #0b231d80;background:#091415;color:#e5eee7;overflow:hidden}
.work-viewer:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/mineral-texture.png') 55% 40%/cover;opacity:.16}
.work-viewer:after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 78% 35%,#39726327,transparent 60%),linear-gradient(180deg,#040b0c25,#040b0c99);pointer-events:none}
.work-rail{padding-top:24px}
.work-rail>p{font-size:13px;color:#8da69b;margin-bottom:28px}
.work-tabs{display:flex;flex-direction:column;gap:0;padding:0;position:relative}
.work-tabs button{display:flex;flex-direction:column;align-items:start;text-align:left;padding:20px 0 20px 24px;border:0;color:#718c7e;font:500 25px/1.3 General;letter-spacing:-.7px;transition:color .4s;white-space:normal}
.work-tabs button small{font:400 12px/1.6 Satoshi;letter-spacing:0;margin-top:7px;color:#819c8f;transition:color .4s}
.work-tabs button[aria-selected=true]{border:0;color:#e4efe5}
.work-tabs button[aria-selected=true] small{color:#b2c8b9}
.work-tabs button:hover{color:#cadccc}
.work-indicator{position:absolute;top:0;left:0;width:2px;height:var(--indicator-size,89px);background:#b1d5b9;transform:translateY(var(--indicator-position,0px));transition:transform .65s var(--ease-out),height .65s var(--ease-out);pointer-events:none}
.work-panels{position:relative;min-width:0}
.work-panel{outline-offset:9px}
.work-panel:focus-visible{outline-color:#accab5}
.product-artifact{padding:0;background:none;perspective:1400px}
.product-artifact img{border:1px solid #afc7be33;border-radius:3px;box-shadow:0 58px 70px -25px #000a,0 14px 25px -10px #000b;transform-origin:50% 65%;transform:rotateX(calc((1 - var(--exhibit-progress,1))*7deg)) rotateY(calc((1 - var(--exhibit-progress,1))*-5deg)) translateY(calc((1 - var(--exhibit-progress,1))*34px));transition:transform .7s var(--ease-out)}
.identity-artifact{background:transparent;min-height:clamp(300px,37vw,540px);perspective:1400px}
.identity-artifact img{border:1px solid #bdd8c91a;box-shadow:0 45px 65px -20px #000c;transform:rotateY(calc((1 - var(--exhibit-progress,1))*-5deg));transition:transform .7s var(--ease-out)}
.artifact-caption{background:transparent;padding:29px 0 0;gap:24px;color:#92a99e;font-size:12px;align-items:baseline}
.artifact-caption>span{color:#d0dfd3;font:500 13px Satoshi;white-space:normal}
.artifact-caption>p{max-width:420px;line-height:1.6}
.publishing-artifact{min-height:clamp(360px,37vw,540px);padding:45px 42px;background:linear-gradient(130deg,#173629db,#0a1c16ee);border:1px solid #91b8a02b;box-shadow:0 40px 65px -25px #000c;justify-content:space-between}
.workflow-kicker{font:500 clamp(29px,3.1vw,46px)/1.15 General;letter-spacing:-.04em;color:#d5e5d6}
.workflow{margin:55px 0 0;gap:0}
.workflow li{padding:24px 12px 0 0;border-top-color:#82aa8e66}
.workflow h4{font-size:clamp(20px,2vw,29px);letter-spacing:-.035em;margin:0 0 12px}
.workflow p{font-size:12px;line-height:1.7;color:#9ab3a2}
.work-foot{margin-top:52px;gap:90px;align-items:start}
.work-foot h3{font-size:26px;letter-spacing:-.035em;margin-bottom:17px}
.work-foot>div>p{font-size:16px;line-height:1.8}
.work-foot .text-link{font-size:15px;border-color:#536f5c66}

/* Partners remain a compact, independent strip. */
.partners-section{background:#08120f;padding-top:50px;padding-bottom:50px}
.partners{margin-top:0;box-shadow:0 20px 35px -30px #000b}
.consultancy-note{max-width:none}

/* The close returns to the hero's mineral material. */
.contact-section{position:relative;isolation:isolate;overflow:hidden;background:#10261d;border:0;padding-top:100px;padding-bottom:90px}
.contact-material{position:absolute;inset:-35px;z-index:-2;background:url('assets/mineral-texture.png') 70% 50%/cover;opacity:.26;transform:translateY(calc(var(--contact-depth,0)*24px));transition:transform .8s var(--ease-out);pointer-events:none}
.contact-section:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#0a1b14ef 15%,#0c241b77 100%);pointer-events:none}
.contact-layout{display:block;padding:0}
.contact-layout h2{font-size:clamp(64px,9.7vw,150px);line-height:1.04;letter-spacing:-.06em}
.contact-layout h2 em{color:#a7cdb3}
.contact-layout>.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:70px;max-width:none;padding:0;margin-top:70px}
.contact-bottom>div:first-child{max-width:400px}
.contact-bottom p{font-size:17px;line-height:1.8;color:#acbfb0}
.contact-bottom p+p{font-size:14px;color:#91ad9b;margin-top:18px}
.contact-action{min-width:300px;max-width:480px}
.contact-link{margin:0;display:flex;align-items:center;justify-content:space-between;gap:55px;font:500 clamp(42px,5.5vw,78px)/1.1 General;letter-spacing:-.055em;padding:0 0 21px;border-bottom:1px solid #b7d5bc80}
.contact-link>span{transition:transform .6s var(--ease-out)}
.contact-link svg{width:clamp(35px,4vw,54px);height:auto;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .6s var(--ease-out)}
.contact-link:hover>span{transform:translateY(-3px)}
.contact-link:hover svg{transform:translate(5px,-5px)}
.email-address{font-size:13px;color:#a0bba9;margin-top:20px}
footer{background:#07100f;min-height:74px}

@media(max-width:1100px){
.work-viewer{grid-template-columns:160px minmax(0,1fr);gap:35px;padding-top:60px;padding-bottom:55px}
.work-tabs button{font-size:22px;padding-left:19px}.work-tabs button small{font-size:11px}
.artifact-caption{display:block}.artifact-caption>p{text-align:left;margin-top:10px;max-width:none}
.publishing-artifact{padding:32px 28px}.workflow{margin-top:42px}.workflow p br{display:none}

.contact-layout>.contact-bottom{gap:45px}.contact-link{gap:35px}
}
@media(max-width:760px){
.hero-stage h1{font-size:clamp(52px,11.7vw,80px);letter-spacing:-.05em}
.section{padding-top:72px;padding-bottom:72px}
.practice-intro{gap:26px;padding-bottom:40px}.practice-intro h2{font-size:43px}.practice-intro .lead{font-size:22px}
.service-row summary{grid-template-columns:1fr 20px;padding:26px 0;row-gap:8px}
.service-row h3{font-size:25px}.service-short{font-size:12px}.service-row summary:hover h3{transform:none}
.service-body{padding-bottom:29px;gap:20px}.service-body>p{font-size:16px}.service-body ul{font-size:13px;line-height:1.9}
.practice-end{max-width:300px;font-size:13px}
.work-title{grid-template-columns:1fr;gap:25px}.work-title h2{font-size:clamp(54px,12.6vw,80px)}
.work-title>div{padding:0;max-width:480px}.work-title>div>p:first-child{font-size:24px;margin-bottom:15px}.work-title>div>p:last-child{font-size:16px}
.work-viewer{display:block;margin-top:42px;padding:32px 20px 38px}
.work-rail{padding:0;margin-bottom:35px}.work-rail>p{display:none}
.work-tabs{flex-direction:row;gap:0;border-bottom:1px solid #7f9a8933}
.work-tabs button{flex:1;align-items:center;text-align:center;padding:0 4px 15px;font-size:17px;letter-spacing:-.45px}
.work-tabs button small{display:none}
.work-indicator{top:auto;bottom:-1px;left:0;width:var(--indicator-size,33.333%);height:2px;transform:translateX(var(--indicator-position,0px));transition:transform .65s var(--ease-out),width .65s var(--ease-out)}
.product-artifact img,.identity-artifact img{transform:none;box-shadow:0 20px 35px -15px #000b}
.artifact-caption{padding-top:23px}.artifact-caption>span{font-size:12px}.artifact-caption>p{font-size:11px;margin-top:7px;line-height:1.7}
.identity-artifact{min-height:235px}
.publishing-artifact{min-height:0;padding:28px 24px}.workflow-kicker{font-size:31px}
.workflow{grid-template-columns:1fr 1fr;gap:27px 18px;padding:0;margin:35px 0 0}
.workflow li{display:block;padding:15px 0 0;border-left:0;border-top:1px solid #83b48b55}
.workflow li:last-child{grid-column:1/-1;width:calc(50% - 9px)}
.workflow h4{font-size:22px;margin:0 0 8px}.workflow p{font-size:12px;margin:0}.workflow p br{display:none}
.work-foot{grid-template-columns:1fr;margin-top:33px;gap:22px}.work-foot h3{font-size:24px}.work-foot>div>p{font-size:15px}


.partners-section{padding-top:32px;padding-bottom:32px}.partners{margin-top:0}
.contact-section{padding-top:75px;padding-bottom:65px}.contact-layout h2{font-size:clamp(53px,12.2vw,84px)}
.contact-layout>.contact-bottom{display:block;margin-top:38px}.contact-bottom p{font-size:16px}.contact-bottom p+p{font-size:13px}
.contact-action{min-width:0;max-width:400px;margin-top:38px}.contact-link{font-size:50px;gap:25px;padding-bottom:18px}.contact-link svg{width:39px}.email-address{font-size:12px;margin-top:17px}
}
@media(max-width:360px){.hero-stage h1{font-size:48px}.service-row h3{font-size:23px}.work-title h2{font-size:52px}.contact-layout h2{font-size:49px}.work-tabs button{font-size:15px}}
@media(prefers-reduced-motion:reduce){.product-artifact img,.identity-artifact img,.contact-material{transform:none!important}.hero-line>span,.hero-intro,.hero-mark{animation:none!important}.work-indicator{transition:none}}
.motion-paused .hero-line>span,.motion-paused .hero-intro,.motion-paused .hero-mark{animation:none!important;opacity:1;transform:none}
.motion-paused .product-artifact img,.motion-paused .identity-artifact img,.motion-paused .contact-material{transform:none!important}
.motion-paused *{transition-duration:0s!important}

.motion-paused .reveal{transform:none!important;opacity:1}

/* Matte animated material with a subdued fallback. */
.hero,.work-viewer,.contact-section{overflow:clip}
.hero-material{background:linear-gradient(130deg,#060e14,#0a1822 65%,#0a1c20);opacity:1}
.hero-material:after{background:linear-gradient(90deg,#030b1090,transparent 65%)}
.material-field{position:absolute;inset:0;width:100%;height:100%;z-index:-2;display:block;pointer-events:none;opacity:1}
.material-field[data-renderer=fallback]{visibility:hidden}
#signal-field{opacity:1}
.hero::before{height:220px;background:linear-gradient(180deg,#020a1277,transparent)}
.work-viewer:before{inset:0;z-index:-3;background:linear-gradient(140deg,#060e14,#0a1822);opacity:1}
.work-viewer:after{background:linear-gradient(90deg,#040d1370,transparent 65%),linear-gradient(180deg,#040b0c10,#040b0c40)}
.contact-material{inset:0;opacity:1;transform:none;transition:none;background:none}
.contact-section{background:linear-gradient(140deg,#060e14,#0a1822)}
.contact-section:before{background:linear-gradient(110deg,#061218a6 15%,#07191420 100%)}
.material-fallback .hero-material,.material-fallback.work-viewer:before,.material-fallback.contact-section{background-size:140% 140%;animation:mineral-fallback-drift 18s ease-in-out infinite alternate;animation-play-state:paused}
.material-fallback.material-running .hero-material,.material-fallback.material-running.work-viewer:before,.material-fallback.material-running.contact-section{animation-play-state:running}
@keyframes mineral-fallback-drift{from{background-position:0% 20%}to{background-position:100% 80%}}
.motion-paused .hero-material,.motion-paused .work-viewer:before,.motion-paused .contact-section{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.material-fallback .hero-material,.material-fallback.work-viewer:before,.material-fallback.contact-section{animation:none!important}}

/* Short copy, with space shaped around the remaining message. */
.practice-intro .lead:only-child{max-width:440px;font-size:clamp(21px,2vw,28px);line-height:1.5;margin:0;color:#bacbbf}
.service-row summary{grid-template-columns:1fr 25px}
.service-body{display:block}
.service-body ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:850px;font-size:16px}
.work-title>div>p:only-child{font:500 clamp(22px,2.15vw,32px)/1.4 General;letter-spacing:-.035em;color:#243c2d;margin:0}
.artifact-caption>p:only-child{max-width:none;text-align:left;margin:0}
.work-foot .disclosure{margin:0}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.65fr);align-items:end;gap:clamp(40px,6vw,90px)}
.contact-layout h2{font-size:clamp(60px,7.6vw,116px)}
.contact-layout>.contact-action{min-width:0;max-width:none;width:100%;padding:0 0 8px}
.contact-link{font-size:clamp(36px,4.2vw,64px);gap:24px}
@media(max-width:760px){
.service-row summary{grid-template-columns:1fr 20px}
.service-body ul{grid-template-columns:1fr;gap:2px;font-size:15px}
.work-title>div>p:only-child{font-size:23px}
.contact-layout{grid-template-columns:1fr;gap:38px}
.contact-layout h2{font-size:clamp(53px,12.2vw,84px)}
.contact-layout>.contact-action{margin:0;max-width:400px;padding:0}
.contact-link{font-size:50px}
}
@media(max-width:360px){.contact-layout h2{font-size:49px}}

/* A compact company signature, with the complete existing policy set close by. */
.site-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 24px;padding:24px var(--pad) 22px;background:#07100f;color:#a1b4ad;font-size:12px;line-height:1.6}
.footer-identity{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 22px}
.site-footer .footer-brand{color:#dae6df;font:500 16px/1.4 General;letter-spacing:-.035em}
.footer-identity>span{font-size:12px}
.footer-connect{display:flex;align-items:center;gap:18px}
.site-footer a{color:inherit;transition:color .2s ease}
.site-footer a:hover{color:#e1f3e8}
.site-footer a:focus-visible{outline:2px solid #b0e0c7;outline-offset:5px}
.footer-connect>a{display:inline-flex;align-items:center;min-height:40px}
.site-footer .linkedin-link{width:40px;justify-content:center;color:#c9dbd0}
.linkedin-link svg{width:21px;height:21px;fill:currentColor}
.footer-policies{display:flex;flex-wrap:wrap;gap:0 23px}
.footer-policies a{display:inline-flex;align-items:center;min-height:32px;white-space:nowrap;text-decoration-thickness:1px;text-underline-offset:4px}
.footer-policies a:hover{text-decoration:underline}
.footer-copyright{font-size:11px;text-align:right}
.site-footer .footer-disclaimer{grid-column:1/-1;margin:0;color:#91a59d;font-size:11px;line-height:1.6}
@media(max-width:1050px){
.footer-identity{display:grid;gap:2px}
.footer-policies{gap:0 18px}
}
@media(max-width:760px){
.site-footer{grid-template-columns:1fr;gap:12px;padding:26px 24px 24px}
.footer-identity{gap:4px}
.footer-connect{justify-content:space-between;gap:12px}
.site-footer .footer-brand{font-size:16px}
.site-footer a:last-child{font-size:inherit}
.footer-policies{gap:0 20px;margin:0}
.footer-policies a{min-height:36px}
.footer-copyright{grid-row:5;text-align:left;margin-top:4px}
.site-footer .footer-disclaimer{max-width:50ch}
}
