@font-face{font-family:"Northline Display";src:local("Bahnschrift Condensed"),local("Arial Narrow");font-display:swap}
:root{--ink:oklch(17% .012 250);--paper:oklch(96% .008 85);--mist:oklch(90% .01 240);--muted:oklch(53% .016 245);--signal:oklch(68% .19 42);--signal-dark:oklch(57% .18 38);--white:oklch(98% .005 85);--line:color-mix(in oklch,var(--ink),transparent 78%);--display:"Northline Display","Arial Narrow",Arial,sans-serif;--body:Arial,Helvetica,sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--body);text-rendering:optimizeLegibility}
img,video{display:block;width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
::selection{background:var(--signal);color:var(--ink)}
:focus-visible{outline:3px solid var(--signal);outline-offset:4px}
.skip-link{position:fixed;z-index:1000;left:1rem;top:1rem;padding:.8rem 1rem;background:var(--signal);color:var(--ink);transform:translateY(-150%);transition:transform .2s var(--ease)}
.skip-link:focus{transform:none}
.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:82px;padding:0 clamp(1rem,3vw,3rem);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--white);border-bottom:1px solid color-mix(in oklch,var(--white),transparent 80%);transition:height .35s var(--ease),background .35s var(--ease)}
.site-header.is-scrolled{height:66px;background:color-mix(in oklch,var(--ink),transparent 4%);border-color:transparent}
.brand{display:inline-flex;align-items:baseline;width:max-content;font-family:var(--display);font-stretch:condensed;font-size:1.45rem;line-height:1;letter-spacing:-.04em;text-transform:uppercase}
.brand b{margin-left:.3rem;color:var(--signal);font-weight:800}
.desktop-nav{display:flex;gap:clamp(1.2rem,2.6vw,2.8rem);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.desktop-nav a,.footer-links a{position:relative}
.desktop-nav a:after,.footer-links a:after{content:"";position:absolute;left:0;right:0;bottom:-.45rem;height:1px;background:var(--signal);transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}
.desktop-nav a:hover:after,.footer-links a:hover:after{transform:scaleX(1);transform-origin:left}
.header-cta{justify-self:end;padding:.75rem 1rem;background:var(--signal);color:var(--ink);font-weight:800;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;transition:background .2s,transform .2s}
.header-cta:hover{background:var(--white)}
.header-cta:active,.button:active{transform:translateY(1px)}
.menu-button,.mobile-nav{display:none}
.hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink);color:var(--white)}
.hero-video{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;filter:grayscale(1) contrast(1.1);will-change:transform}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in oklch,var(--ink),transparent 4%) 0%,color-mix(in oklch,var(--ink),transparent 35%) 54%,color-mix(in oklch,var(--ink),transparent 64%) 100%),linear-gradient(0deg,color-mix(in oklch,var(--ink),transparent 5%),transparent 58%)}
.hero-content{position:relative;z-index:2;width:min(1480px,100%);margin:0 auto;padding:clamp(9rem,18vh,13rem) clamp(1rem,4vw,4rem) clamp(3.5rem,8vh,6.5rem)}
.eyebrow{margin:0 0 1rem;color:var(--signal);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hero h1,.article-hero h1{max-width:950px;margin:0;font-family:var(--display);font-size:clamp(4rem,9.4vw,9.4rem);font-weight:800;letter-spacing:-.055em;line-height:.82;text-transform:uppercase;text-wrap:balance}
.hero h1{max-width:1200px;font-size:clamp(3.6rem,8vw,8rem)}
@media(max-width:600px){.hero .hero-content h1{max-width:100%;font-size:clamp(2.4rem,11.75vw,3.2rem);letter-spacing:-.06em}}
.hero-copy{max-width:590px;margin:1.5rem 0 0;font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.5;color:color-mix(in oklch,var(--white),transparent 10%)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:1rem;padding:.8rem 1.15rem;border:1px solid transparent;font-weight:800;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;transition:background .25s,color .25s,border-color .25s,transform .2s}
.button:disabled{opacity:.55;cursor:wait}
.button-accent{background:var(--signal);color:var(--ink)}
.button-accent:hover{background:var(--white)}
.button-ghost{border-color:color-mix(in oklch,var(--white),transparent 45%);background:color-mix(in oklch,var(--ink),transparent 65%);color:var(--white)}
.button-ghost:hover{background:var(--white);color:var(--ink);border-color:var(--white)}
.video-control{position:absolute;z-index:3;right:clamp(1rem,3vw,3rem);bottom:clamp(1.3rem,3vw,3rem);padding:.55rem .8rem;border:1px solid color-mix(in oklch,var(--white),transparent 50%);background:color-mix(in oklch,var(--ink),transparent 30%);color:var(--white);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.proof-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:var(--white);border-top:1px solid color-mix(in oklch,var(--white),transparent 85%)}
.proof-strip div{min-height:140px;padding:1.8rem clamp(1rem,2.5vw,2.5rem);display:flex;align-items:flex-end;gap:.8rem;border-right:1px solid color-mix(in oklch,var(--white),transparent 85%)}
.proof-strip strong{font-family:var(--display);font-size:clamp(2.7rem,4.5vw,5rem);line-height:.8;letter-spacing:-.05em;color:var(--signal)}
.proof-strip span{max-width:110px;font-size:.76rem;line-height:1.25;text-transform:uppercase;letter-spacing:.08em}
.section-shell{width:min(1480px,100%);margin-inline:auto;padding-inline:clamp(1rem,4vw,4rem)}
.intro{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:clamp(3rem,8vw,9rem);padding-top:clamp(5rem,11vw,10rem);padding-bottom:clamp(5rem,11vw,10rem)}
.intro h2,.section-heading h2,.process h2,.coverage h2,.estimate h2,.journal-hero h1{margin:0;font-family:var(--display);font-size:clamp(3.1rem,6.3vw,6.8rem);font-weight:800;letter-spacing:-.05em;line-height:.9;text-transform:uppercase;text-wrap:balance}
.intro-body{align-self:end;max-width:530px}
.intro-body p,.section-heading>p:last-child,.need-copy p,.coverage-copy>p:last-child,.estimate-intro>p:last-child{font-size:1.08rem;color:var(--muted)}
.text-link{display:inline-flex;gap:.8rem;margin-top:1.2rem;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:.25rem}
.text-link span{transition:transform .25s var(--ease)}
.text-link:hover span{transform:translateX(.3rem)}
.need-grid{display:grid;grid-template-columns:repeat(12,1fr);padding-bottom:clamp(6rem,10vw,10rem)}
.need-copy{grid-column:1/6;padding:0 2rem 3rem 0}
.need-copy h2{margin:0;font-family:var(--display);font-size:clamp(2.6rem,4vw,4.4rem);line-height:.92;letter-spacing:-.045em;text-transform:uppercase}
.need{grid-column:span 4;min-height:260px;padding:2rem;border-top:1px solid var(--line);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end}
.need h3{margin:0 0 .5rem;font-family:var(--display);font-size:1.8rem;line-height:1;text-transform:uppercase}
.need p{margin:0;color:var(--muted)}
.need-feature{grid-column:6/13;grid-row:1/3;position:relative;min-height:620px;padding:0;overflow:hidden;color:var(--white);border:0}
.need-feature img{position:absolute;inset:0;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .8s var(--ease)}
.need-feature:hover img{transform:scale(1.03)}
.need-feature:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,var(--ink))}
.need-feature div{position:relative;z-index:2;padding:clamp(1.5rem,4vw,3.5rem)}
.need-feature p{color:color-mix(in oklch,var(--white),transparent 18%)}
.services{padding-bottom:clamp(6rem,12vw,12rem)}
.section-heading{display:grid;grid-template-columns:1fr minmax(260px,430px);column-gap:4rem;align-items:end;margin-bottom:clamp(3rem,6vw,6rem)}
.section-heading .eyebrow{grid-column:1/-1}
.section-heading h2{font-size:clamp(3.3rem,6vw,6.4rem)}
.section-heading>p:last-child{margin:0}
.service-list{border-top:1px solid var(--line)}
.service-item{position:relative;display:grid;grid-template-columns:1.1fr 1.6fr 1.4fr;gap:2rem;align-items:center;min-height:155px;border-bottom:1px solid var(--line);isolation:isolate}
.service-item>span{font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--signal-dark)}
.service-item h3{margin:0;font-family:var(--display);font-size:clamp(1.7rem,2.7vw,3.1rem);line-height:.95;text-transform:uppercase}
.service-item p{margin:0;color:var(--muted);max-width:42ch}
.service-item img{position:absolute;z-index:-1;right:4%;top:50%;width:260px;height:180px;object-fit:cover;filter:grayscale(1);opacity:0;transform:translate(15%,-50%) rotate(2deg);transition:opacity .35s,transform .55s var(--ease);pointer-events:none}
.service-item:hover img{opacity:1;transform:translate(0,-50%) rotate(-2deg)}
.service-item:hover p{opacity:.12}
.film-section{position:relative;height:min(78vw,900px);min-height:520px;overflow:hidden;background:var(--ink)}
.film-section video{height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08)}
.film-section:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,color-mix(in oklch,var(--ink),transparent 8%),transparent 55%)}
.film-copy{position:absolute;z-index:2;left:clamp(1rem,4vw,4rem);bottom:clamp(2rem,6vw,5rem);max-width:850px;color:var(--white)}
.film-copy p{margin:0;font-family:var(--display);font-size:clamp(3.5rem,8vw,8.5rem);font-weight:800;letter-spacing:-.05em;line-height:.84;text-transform:uppercase}
.experience{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(3rem,8vw,9rem);padding-top:clamp(6rem,10vw,10rem);padding-bottom:clamp(6rem,10vw,10rem);background:var(--ink);color:var(--white)}
.experience:before{content:"";position:absolute;left:0;right:0;z-index:-1;background:var(--ink)}
.experience h2{margin:0;font-family:var(--display);font-size:clamp(3.1rem,6.3vw,6.8rem);font-weight:800;letter-spacing:-.05em;line-height:.9;text-transform:uppercase;text-wrap:balance}
.experience-copy>p:last-child{max-width:680px;color:color-mix(in oklch,var(--white),transparent 28%);font-size:1.08rem}
.provider-list{display:grid;align-content:end;border-top:1px solid color-mix(in oklch,var(--white),transparent 80%)}
.provider-list span{padding:1.15rem 0;border-bottom:1px solid color-mix(in oklch,var(--white),transparent 80%);font-family:var(--display);font-size:clamp(1.5rem,2.7vw,2.6rem);line-height:1;text-transform:uppercase}
.process{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:clamp(3rem,7vw,8rem);padding-top:clamp(6rem,11vw,11rem);padding-bottom:clamp(6rem,11vw,11rem)}
.process-media{position:sticky;top:100px;height:calc(100dvh - 150px);min-height:560px}
.process-media img{height:100%;object-fit:cover;filter:grayscale(1)}
.process-copy h2{font-size:clamp(3.3rem,5.5vw,6rem)}
.process ol{counter-reset:step;list-style:none;margin:3rem 0 0;padding:0;border-top:1px solid var(--line)}
.process li{counter-increment:step;display:grid;grid-template-columns:3rem 1fr;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.process li:before{content:"0" counter(step);font-size:.72rem;font-weight:800;color:var(--signal-dark)}
.process li h3{margin:0 0 .35rem;font-family:var(--display);font-size:1.65rem;text-transform:uppercase}
.process li p{grid-column:2;margin:0;color:var(--muted)}
.work{padding-bottom:clamp(6rem,11vw,11rem)}
.work-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1.2rem}
.work-card{position:relative;min-height:390px;overflow:hidden;background:var(--ink);color:var(--white)}
.work-wide{grid-row:span 2;min-height:800px}
.work-card img{position:absolute;inset:0;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .8s var(--ease),filter .5s}
.work-card:after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(transparent,color-mix(in oklch,var(--ink),transparent 5%))}
.work-card div{position:absolute;z-index:2;inset:auto clamp(1.3rem,3vw,2.5rem) clamp(1.3rem,3vw,2.5rem)}
.work-card span{color:var(--signal);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.work-card h3{max-width:650px;margin:.5rem 0 0;font-family:var(--display);font-size:clamp(2rem,4vw,4.5rem);line-height:.92;text-transform:uppercase}
.work-card p{margin:.8rem 0 0;color:color-mix(in oklch,var(--white),transparent 20%)}
.work-card:hover img{transform:scale(1.025);filter:grayscale(0)}
.coverage{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(3rem,8vw,9rem);padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem);border-top:1px solid var(--line)}
.coverage-routes{display:flex;flex-wrap:wrap;align-content:flex-end;gap:.6rem}
.coverage-routes span{padding:.65rem .85rem;border:1px solid var(--line);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.estimate{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,9rem);padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem);background:var(--signal)}
.estimate:before{content:"";position:absolute;left:0;right:0;z-index:-1;background:var(--signal)}
.estimate-form{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field-wide{grid-column:1/-1}
.field label{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid color-mix(in oklch,var(--ink),transparent 45%);border-radius:0;background:transparent;padding:.85rem .1rem;color:var(--ink);outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}
.field ::placeholder{color:color-mix(in oklch,var(--ink),transparent 45%)}
.field [aria-invalid="true"]{border-color:oklch(42% .19 25)}
.form-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}
.form-footer .button{background:var(--ink);color:var(--white)}
.form-footer .button:hover{background:var(--white);color:var(--ink)}
.form-status{margin:0;font-size:.85rem;font-weight:700}
.direct-email{display:inline-block;margin-top:1rem;border-bottom:2px solid var(--ink);font-weight:800}
.site-footer{display:grid;grid-template-columns:1fr 1fr auto;gap:2rem;align-items:start;padding:3rem clamp(1rem,4vw,4rem);background:var(--ink);color:var(--white)}
.site-footer>p{margin:0;color:color-mix(in oklch,var(--white),transparent 35%)}
.footer-links{display:flex;gap:1.5rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.site-footer .copyright{grid-column:1/-1;padding-top:2rem;border-top:1px solid color-mix(in oklch,var(--white),transparent 85%);font-size:.72rem}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.journal-hero{padding-top:clamp(9rem,18vw,15rem);padding-bottom:clamp(4rem,8vw,8rem);background:var(--ink);color:var(--white)}
.journal-hero p{max-width:680px;margin:1.5rem 0 0;color:color-mix(in oklch,var(--white),transparent 30%);font-size:1.15rem}
.journal-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:1.2rem;padding-top:clamp(4rem,7vw,7rem);padding-bottom:clamp(6rem,10vw,10rem)}
.journal-card{position:relative;min-height:420px;background:var(--ink);color:var(--white);overflow:hidden}
.journal-card:first-child{grid-row:span 2;min-height:760px}
.journal-card img{position:absolute;inset:0;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .7s var(--ease)}
.journal-card:after{content:"";position:absolute;inset:30% 0 0;background:linear-gradient(transparent,var(--ink))}
.journal-card div{position:absolute;z-index:1;inset:auto 1.6rem 1.6rem}
.journal-card span,.article-meta{color:var(--signal);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.journal-card h2{margin:.5rem 0 0;font-family:var(--display);font-size:clamp(2rem,4vw,4rem);line-height:.93;text-transform:uppercase}
.journal-card:hover img{transform:scale(1.025)}
.page-hero{position:relative;min-height:72dvh;display:flex;align-items:flex-end;padding-top:10rem;padding-bottom:clamp(4rem,8vw,7rem);background:var(--ink);color:var(--white);overflow:hidden}
.page-hero>img{position:absolute;inset:0;height:100%;object-fit:cover;filter:grayscale(1);opacity:.55}
.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--ink),transparent 85%),linear-gradient(90deg,color-mix(in oklch,var(--ink),transparent 5%),transparent 72%)}
.page-hero-content{position:relative;z-index:1;width:100%}
.page-hero h1{max-width:1100px;margin:0;font-family:var(--display);font-size:clamp(3.6rem,8vw,8rem);font-weight:800;letter-spacing:-.055em;line-height:.84;text-transform:uppercase;text-wrap:balance}
.page-hero .lead{max-width:760px;margin:1.6rem 0 0;color:color-mix(in oklch,var(--white),transparent 14%);font-size:clamp(1.05rem,1.8vw,1.35rem)}
.capability-index{padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(6rem,10vw,10rem)}
.capability-grid{display:grid;grid-template-columns:repeat(2,1fr);margin-top:3rem;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.capability-card{min-height:360px;padding:clamp(1.5rem,4vw,3rem);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .25s,color .25s}
.capability-card:hover{background:var(--ink);color:var(--white)}
.capability-card span{color:var(--signal-dark);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.capability-card h2{max-width:520px;margin:2rem 0 .8rem;font-family:var(--display);font-size:clamp(2.4rem,4.4vw,4.5rem);line-height:.9;text-transform:uppercase}
.capability-card p{max-width:52ch;margin:0;color:var(--muted)}
.service-detail{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(3rem,8vw,9rem);padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem)}
.service-summary{position:sticky;top:100px;align-self:start}
.service-summary h2,.scope-section h2,.faq-section h2{margin:0;font-family:var(--display);font-size:clamp(2.8rem,5.2vw,5.5rem);line-height:.9;letter-spacing:-.045em;text-transform:uppercase}
.service-summary p{color:var(--muted);font-size:1.08rem}
.service-copy{max-width:780px}
.service-copy>p:first-child{margin-top:0;font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.4}
.service-copy h2{margin:3.5rem 0 1rem;font-family:var(--display);font-size:clamp(2.4rem,4vw,4rem);line-height:.92;text-transform:uppercase}
.service-copy h3{margin:2.2rem 0 .6rem;font-family:var(--display);font-size:1.8rem;text-transform:uppercase}
.service-copy p,.service-copy li{color:color-mix(in oklch,var(--ink),transparent 20%)}
.scope-section{padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,9vw,9rem);border-top:1px solid var(--line)}
.scope-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3rem;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.scope-card{min-height:250px;padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.scope-card span{color:var(--signal-dark);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.scope-card h3{margin:3rem 0 .7rem;font-family:var(--display);font-size:1.8rem;line-height:1;text-transform:uppercase}
.scope-card p{margin:0;color:var(--muted)}
.faq-section{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(3rem,8vw,9rem);padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem);background:var(--mist)}
.faq-section:before{content:"";position:absolute;left:0;right:0;z-index:-1;background:var(--mist)}
.faq-list details{border-top:1px solid var(--line);padding:1.25rem 0}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;font-family:var(--display);font-size:1.5rem;text-transform:uppercase}
.faq-list p{margin:.8rem 0 0;color:var(--muted)}
.inline-cta{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;padding-top:clamp(4rem,7vw,7rem);padding-bottom:clamp(4rem,7vw,7rem);background:var(--signal)}
.inline-cta:before{content:"";position:absolute;left:0;right:0;z-index:-1;background:var(--signal)}
.inline-cta h2{margin:0;font-family:var(--display);font-size:clamp(2.8rem,5vw,5.2rem);line-height:.9;text-transform:uppercase}
.inline-cta p{max-width:680px}
.inline-cta .button{background:var(--ink);color:var(--white)}
.article-hero{position:relative;min-height:88dvh;display:flex;align-items:flex-end;padding:10rem clamp(1rem,4vw,4rem) clamp(3rem,6vw,6rem);background:var(--ink);color:var(--white);overflow:hidden}
.article-hero img{position:absolute;inset:0;height:100%;object-fit:cover;filter:grayscale(1)}
.article-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--ink),transparent 85%),linear-gradient(90deg,color-mix(in oklch,var(--ink),transparent 7%),transparent 70%)}
.article-hero-content{position:relative;z-index:1;width:min(1480px,100%);margin-inline:auto}
.article-hero h1{max-width:1100px;font-size:clamp(3.7rem,8vw,8rem)}
.article-body{display:grid;grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);gap:clamp(2rem,7vw,7rem);padding-top:clamp(4rem,8vw,8rem);padding-bottom:clamp(6rem,10vw,10rem)}
.article-aside{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.article-aside dl{position:sticky;top:110px;margin:0}
.article-aside div{padding:1rem 0;border-top:1px solid var(--line)}
.article-aside dt{font-weight:800;color:var(--ink)}
.article-aside dd{margin:.2rem 0 0}
.prose{max-width:760px}
.prose>p:first-child{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.4;color:var(--ink)}
.prose h2{margin:4rem 0 1rem;font-family:var(--display);font-size:clamp(2.5rem,4.5vw,4.7rem);line-height:.92;letter-spacing:-.04em;text-transform:uppercase}
.prose h3{margin:2.5rem 0 .7rem;font-family:var(--display);font-size:1.8rem;text-transform:uppercase}
.prose p,.prose li{color:color-mix(in oklch,var(--ink),transparent 20%)}
.prose img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;margin:3rem 0;filter:grayscale(1)}
.prose .article-cta{margin-top:4rem;padding:clamp(1.5rem,4vw,3rem);background:var(--signal);color:var(--ink)}
.prose .article-cta h2{margin:0 0 1rem}
.not-found{min-height:100dvh;display:grid;place-items:center;padding:2rem;background:var(--ink);color:var(--white);text-align:center}
.not-found strong{display:block;font-family:var(--display);font-size:clamp(7rem,25vw,20rem);line-height:.7;color:var(--signal)}
.not-found h1{font-family:var(--display);font-size:clamp(2.5rem,6vw,5rem);text-transform:uppercase;margin:2rem 0 1rem}
@media(max-width:900px){.site-header{grid-template-columns:1fr auto}.desktop-nav,.header-cta{display:none}.menu-button{display:block;border:1px solid currentColor;background:transparent;padding:.55rem .7rem;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.mobile-nav{position:absolute;top:100%;left:0;right:0;display:grid;background:var(--ink);padding:1rem;transform:scaleY(0);transform-origin:top;opacity:0;pointer-events:none;transition:transform .3s var(--ease),opacity .2s}.mobile-nav.is-open{transform:scaleY(1);opacity:1;pointer-events:auto}.mobile-nav a{padding:1rem;border-bottom:1px solid color-mix(in oklch,var(--white),transparent 85%);font-weight:800;text-transform:uppercase}.proof-strip{grid-template-columns:1fr 1fr}.intro,.experience,.process,.coverage,.estimate,.journal-grid,.service-detail,.faq-section{grid-template-columns:1fr}.need-copy{grid-column:1/-1}.need-feature{grid-column:1/-1;grid-row:auto}.need{grid-column:span 6}.service-item{grid-template-columns:.7fr 1.3fr;padding:1.4rem 0}.service-item p{grid-column:2}.service-item img{display:none}.provider-list{margin-top:1rem}.process-media{position:relative;top:auto;height:62vw;min-height:380px}.work-grid{grid-template-columns:1fr 1fr}.work-wide{grid-column:1/-1;min-height:650px}.estimate{margin-inline:0}.service-summary{position:static}.scope-grid{grid-template-columns:1fr 1fr}.inline-cta{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr 1fr}.footer-links{justify-self:end}.site-footer>p:not(.copyright){grid-column:1/-1}.article-body{grid-template-columns:1fr}.article-aside dl{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}}
@media(max-width:600px){.brand{font-size:1.12rem}.hero h1{font-size:clamp(3.5rem,18vw,5.8rem)}.hero-content{padding-bottom:6.5rem}.hero-actions{display:grid}.button{width:100%}.video-control{bottom:1.2rem}.proof-strip div{min-height:110px;display:block}.proof-strip strong{display:block;margin-bottom:.7rem}.intro{grid-template-columns:1fr;gap:2rem}.need{grid-column:1/-1;padding:1.5rem 0;border-right:0;min-height:200px}.need-feature{min-height:500px;padding:0}.need-feature div{padding:1.5rem}.section-heading{grid-template-columns:1fr;gap:1.5rem}.service-item{grid-template-columns:1fr;gap:.5rem;padding:1.5rem 0}.service-item p{grid-column:1}.film-section{min-height:480px}.work-grid{grid-template-columns:1fr}.work-wide,.work-card{grid-column:auto;grid-row:auto;min-height:530px}.work-card:not(.work-wide){min-height:400px}.capability-grid,.scope-grid{grid-template-columns:1fr}.capability-card{min-height:300px}.page-hero{min-height:70dvh}.page-hero h1{font-size:clamp(3rem,14vw,4.8rem)}.estimate-form{grid-template-columns:1fr}.field-wide,.form-footer{grid-column:1}.form-footer{align-items:stretch;flex-direction:column}.site-footer{grid-template-columns:1fr}.footer-links{justify-self:start;flex-wrap:wrap}.journal-grid{display:block}.journal-card,.journal-card:first-child{display:block;min-height:520px;margin-bottom:1rem}.article-aside dl{grid-template-columns:1fr}.article-hero{min-height:78dvh}.article-hero h1{font-size:clamp(3.2rem,14vw,5rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.parallax-media{transform:none!important}}
