@charset "UTF-8";
:root{--ink:#13243a;--blue:#285ee3;--muted:#5b6673;--line:#dbe1e8;--soft:#f0f3f7;--white:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--white);font-size:16px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}img{display:block;max-width:100%;height:auto}button{font:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{letter-spacing:-.045em;line-height:1.1}h1{font-size:clamp(2.8rem,5.2vw,5.2rem);font-weight:650}h2{font-size:clamp(2rem,3.5vw,3.3rem);font-weight:600}h3{font-size:1.6rem;font-weight:650;letter-spacing:-.03em}em{font-family:Georgia,serif;font-weight:400;color:var(--blue)}p{line-height:1.75}.shell{width:min(1180px,calc(100% - 64px));margin:auto}.section{padding-block:85px}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--blue);margin-bottom:22px;line-height:1.5}.lead{font-size:1.13rem;color:var(--muted);line-height:1.8;max-width:630px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;border:1px solid var(--ink);border-radius:5px;background:var(--ink);color:white;font-size:.9rem;font-weight:600;padding:15px 22px;text-decoration:none;transition:background .2s}.button:hover{background:var(--blue);border-color:var(--blue)}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:var(--soft)}.text-link{font-size:.95rem;font-weight:600}.text-link:hover{color:var(--blue)}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:30px}.skip{position:absolute;left:15px;top:-100px;background:var(--ink);color:white;padding:12px;z-index:50}.skip:focus{top:12px}:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{border-bottom:1px solid var(--line)}.header-inner{min-height:102px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-weight:650;font-size:1rem}.monogram{display:flex;align-items:center;justify-content:center;width:45px;height:45px;background:var(--ink);color:white;border-radius:5px;font-size:1.6rem;font-family:Georgia,serif;font-weight:400}.brand small{display:block;font-size:.67rem;font-weight:400;color:var(--muted);margin-top:5px;letter-spacing:.03em}#navigation{display:flex;align-items:center;gap:30px}#navigation a{font-size:.88rem;font-weight:600;text-decoration:none}#navigation a[aria-current]{color:var(--blue)}#navigation .nav-contact{border:1px solid var(--line);border-radius:5px;padding:12px 16px}.menu-toggle{display:none;border:1px solid var(--line);background:white;padding:10px 15px;border-radius:5px;color:var(--ink)}
.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:65px;align-items:center;padding-block:65px 80px}.hero h1{margin-bottom:28px}.hero .lead{font-size:1.05rem;max-width:530px}.hero-image{position:relative}.hero-image img{width:100%;height:565px;object-fit:cover;border-radius:4px}.hero-image figcaption{position:absolute;left:-24px;right:24px;bottom:24px;background:var(--ink);color:white;padding:18px 20px;font-size:.85rem}.photo-number{color:#94b4ff;margin-right:16px;font-size:.75rem}.hero-topics{display:flex;gap:17px;margin-top:32px;color:var(--muted);font-size:.75rem}.hero-topics span{border-right:1px solid var(--line);padding-right:17px}.hero-topics span:last-child{border:0;padding:0}.positioning{background:var(--ink);color:white;padding-block:60px}.positioning-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:15px 75px}.positioning .eyebrow{grid-column:1/-1;color:#9ebcff;margin-bottom:5px}.positioning h2{font-size:2.6rem}.positioning em{color:#9ebcff}.positioning p:last-child{color:#ced6e2;align-self:center}.section-heading{margin-bottom:40px}.section-heading h2{font-size:2.9rem}.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.services article{border-top:1px solid var(--line);padding-top:25px}.number{font-size:.8rem;font-family:ui-monospace,monospace;color:var(--blue);display:block;margin-bottom:28px}.services h3{margin-bottom:20px}.services p{font-size:.96rem;color:var(--muted);margin-bottom:24px}.services ul{list-style:none;margin:0;padding:0;font-size:.85rem;line-height:1.6}.services li{padding-block:10px;border-top:1px solid var(--line)}.agency{background:var(--soft);border-left:4px solid var(--blue);padding:45px 48px;display:grid;grid-template-columns:1fr auto;gap:50px;align-items:center}.agency h2{font-size:2.5rem}.agency .eyebrow{margin-bottom:15px}.agency p:not(.eyebrow){margin-top:20px;max-width:630px;font-size:.97rem;color:var(--muted)}.contact-section{text-align:center;padding-block:95px}.contact-section h2{margin-bottom:25px}.contact-section p:not(.eyebrow){max-width:580px;margin:auto;color:var(--muted)}.contact-email{display:inline-block;font-size:clamp(1.15rem,2.3vw,1.7rem);margin-top:30px;color:var(--blue)}
.site-footer{border-top:1px solid var(--line);background:var(--soft)}.footer-main{display:flex;justify-content:space-between;gap:40px;padding-block:50px}.footer-name{font-size:1.6rem;font-weight:650;text-decoration:none;letter-spacing:-.035em}.footer-name span{color:var(--blue)}.footer-main p{font-size:.87rem;color:var(--muted);margin-top:16px}.footer-contact{text-align:right}.footer-contact p{margin-top:0;margin-bottom:15px}.footer-contact a{font-size:1rem}.footer-bottom{display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line);padding-block:22px;color:var(--muted);font-size:.8rem}.footer-bottom nav{display:flex;gap:24px}.footer-bottom a{text-decoration:none}.footer-bottom a:hover{color:var(--blue);text-decoration:underline}
.mission-hero{padding-block:75px 70px;border-bottom:1px solid var(--line)}.mission-hero h1{max-width:980px;margin-bottom:30px}.mission-hero .lead{max-width:740px}.mission-intro{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;padding-block:80px}.large-statement{font-family:Georgia,serif;font-size:2rem;line-height:1.5;color:var(--blue);max-width:430px}.mission-intro h2{font-size:2.3rem;margin-bottom:28px}.mission-intro div p{color:var(--muted);margin-bottom:20px}.process-band{background:var(--soft)}.process{display:grid;grid-template-columns:1fr 1fr;gap:35px 60px;list-style:none;margin:0;padding:0}.process li{display:flex;gap:25px;border-top:1px solid #cbd4df;padding-top:25px}.process li>span{font-family:ui-monospace,monospace;color:var(--blue);font-size:.8rem;padding-top:6px}.process h3{font-size:1.45rem;margin-bottom:16px}.process p{color:var(--muted);font-size:.96rem}.conversation{display:grid;grid-template-columns:1fr 1.1fr;gap:80px}.conversation h2{font-size:2.7rem}.questions details{padding-block:23px;border-top:1px solid var(--line)}.questions details:last-child{border-bottom:1px solid var(--line)}.questions summary{font-size:1.05rem;line-height:1.5;font-weight:600;cursor:pointer;padding-right:20px}.questions details p{margin-top:20px;color:var(--muted);font-size:.95rem}.contact-band{background:var(--ink);color:white;padding-block:75px}.contact-band .eyebrow{color:#9ebcff}.contact-band em{color:#9ebcff}.contact-band h2{margin-bottom:25px}.contact-band p:not(.eyebrow){max-width:590px;color:#ced6e2}.contact-band .button{background:white;color:var(--ink);border-color:white}.contact-band .button:hover{background:#c9daff}.contact-band .button.secondary{background:transparent;color:white;border-color:#536276}.contact-band .button.secondary:hover{background:#253b56}
.page-heading{padding-block:65px 35px}.page-heading h1{margin-bottom:25px}.prose{width:min(740px,calc(100% - 64px));font-size:1.03rem}.legal-prose{padding-bottom:75px}.prose h2{font-size:1.85rem;letter-spacing:-.025em;margin-block:35px 20px}.prose>p{margin-bottom:22px}.prose a{overflow-wrap:anywhere}.note{background:var(--soft);border-left:4px solid var(--blue);padding:25px 28px;margin-block:30px}.note>strong{display:block;font-size:.82rem;color:var(--blue);margin-bottom:10px;letter-spacing:.05em;text-transform:uppercase}.note p{font-size:.98rem}.legal-date{font-size:.8rem;border-top:1px solid var(--line);padding-top:25px;color:var(--muted)}
@media(max-width:1000px){.hero{gap:40px;grid-template-columns:1.15fr 1fr}.hero h1{font-size:4rem}.hero-image img{height:520px}.services{gap:24px}.agency{gap:30px;padding:35px}.mission-intro,.conversation{gap:50px}}
@media(max-width:800px){.shell{width:calc(100% - 40px)}.header-inner{min-height:90px;flex-wrap:wrap;gap:18px;padding-block:18px}.brand{font-size:.92rem}.monogram{width:40px;height:40px}.brand small{font-size:.62rem}.js .menu-toggle:not([hidden]){display:block}#navigation{flex-basis:100%;flex-wrap:wrap;gap:20px}.js #navigation{display:none}.js .menu-toggle[aria-expanded="true"]+#navigation{display:flex}.hero{grid-template-columns:1fr;padding-block:45px 55px;gap:35px}.hero h1{font-size:clamp(2.9rem,8vw,4.5rem)}.hero-image{max-width:600px;width:100%;margin:auto}.hero-image img{height:430px;object-position:center 65%}.hero-image figcaption{left:15px;right:15px;bottom:15px}.positioning-inner{grid-template-columns:1fr;gap:22px}.positioning{padding-block:45px}.positioning h2{font-size:2.2rem}.services{grid-template-columns:1fr;gap:40px}.services article{display:grid;grid-template-columns:45px 1fr;gap:0 15px}.services .number{grid-column:1;grid-row:1/4}.services h3,.services p,.services ul{grid-column:2}.section{padding-block:55px}.section-heading h2{font-size:2.4rem}.agency{grid-template-columns:1fr;gap:25px;padding:30px}.agency .button{justify-self:start}.contact-section{padding-block:65px}.footer-main{padding-block:35px}.mission-hero{padding-block:50px}.mission-hero h1{font-size:3.3rem}.mission-intro,.conversation{grid-template-columns:1fr;gap:35px;padding-block:50px}.large-statement{max-width:600px}.process{gap:30px}.process li{gap:15px}.contact-band{padding-block:55px}.page-heading{padding-block:45px 25px}.prose{width:calc(100% - 40px)}}
@media(max-width:520px){.hero h1{font-size:2.9rem}.hero-image img{height:370px}.hero .lead{font-size:1rem}.actions{gap:20px}.actions .button{width:100%}.hero-topics{gap:12px}.hero-topics span{padding-right:12px}.hero-image figcaption{font-size:.74rem;padding:15px}.photo-number{margin-right:10px}.process{grid-template-columns:1fr}.mission-hero h1{font-size:2.7rem}.footer-main,.footer-bottom{flex-direction:column;gap:25px}.footer-contact{text-align:left}.footer-bottom nav{flex-wrap:wrap;gap:18px}.large-statement{font-size:1.8rem}.agency{padding:25px}.agency h2{font-size:2rem}.contact-section h2{font-size:2.4rem}.questions summary{font-size:1rem}.note{padding:22px}.prose h2{font-size:1.6rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.site-footer,.actions{display:none}.shell,.prose{width:100%;max-width:none}.hero,.mission-intro,.conversation,.positioning-inner{display:block}.hero-image{max-width:350px}.hero-image figcaption{position:static;color:black;background:white}.section{padding:25px 0}.positioning,.contact-band{color:black;background:white}.positioning p,.contact-band p{color:black}.services,.process{display:block}.services article,.process li{break-inside:avoid;margin-bottom:25px}}

.ai-section .section-heading .lead{margin-top:25px;max-width:760px}.ai-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}.ai-options article{background:var(--soft);border-top:3px solid var(--blue);padding:32px}.ai-options .eyebrow{margin-bottom:16px}.ai-options h3{margin-bottom:20px}.ai-options p:not(.eyebrow),.ai-practice p{color:var(--muted);font-size:.97rem}.ai-options ul{padding-left:20px;margin:22px 0 0;line-height:1.8;font-size:.9rem}.ai-practice{margin-top:36px;border-top:1px solid var(--line);padding-top:30px}.ai-practice p{max-width:850px;margin:18px 0 22px}@media(max-width:800px){.ai-options{grid-template-columns:1fr;gap:24px}.ai-options article{padding:25px}.hero-topics{flex-wrap:wrap}}

/* MOTION EDITION */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-flow:cubic-bezier(.22,.61,.36,1)}
html{scroll-behavior:smooth;scroll-padding-top:28px}
::selection{background:#c9daff;color:var(--ink)}
.site-header{position:relative;z-index:5}
.site-header::after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;animation:header-draw 1.3s var(--ease-out) .2s both}
@keyframes header-draw{to{transform:scaleX(1)}}
.brand .monogram{transition:transform .65s var(--ease-out),background .3s}
.brand:hover .monogram{transform:rotate(-7deg);background:var(--blue)}
#navigation a:not(.nav-contact){position:relative}
#navigation a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
#navigation a:not(.nav-contact):hover::after,#navigation a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.button{position:relative;isolation:isolate;overflow:hidden;transition:transform .45s var(--ease-out),background .3s,border-color .3s}
.button::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff26 45%,transparent 70%);transform:translateX(-120%);pointer-events:none;transition:transform .7s var(--ease-flow)}
.button:hover::after{transform:translateX(120%)}
.button:active{transform:scale(.98)}
.text-link{display:inline-block;transition:transform .45s var(--ease-out),color .3s}
.hero-image{isolation:isolate}
.hero-image::before{content:"";position:absolute;inset:22px -12px -12px 22px;z-index:-1;border:1px solid #285ee330;border-radius:4px;transform:translate(8px,8px);transition:transform .9s var(--ease-out)}
.hero-image:hover::before{transform:translate(0,0)}
.hero-image figcaption{transition:transform .7s var(--ease-out)}
.hero h1 em,.mission-hero h1 em,.contact-section h2 em,.contact-band h2 em{display:inline-block;position:relative}
.hero h1 em::after,.mission-hero h1 em::after{content:"";position:absolute;left:1%;right:1%;bottom:-.09em;height:2px;background:currentColor;opacity:.3;transform:scaleX(0);transform-origin:left}
.motion-ready .hero h1 em::after,.motion-ready .mission-hero h1 em::after{animation:header-draw 1.3s var(--ease-out) .8s both}
.services article{transition:transform .6s var(--ease-out),border-color .4s}
.number{transition:transform .6s var(--ease-out)}
.ai-options article{position:relative;transition:transform .6s var(--ease-out);isolation:isolate}
.ai-options article::after{content:"";position:absolute;inset:0;box-shadow:0 20px 45px -25px #13243a40;opacity:0;transition:opacity .5s;pointer-events:none;z-index:-1}
.process li>span{transition:transform .6s var(--ease-out)}
.questions summary{transition:color .3s}
.questions summary:hover{color:var(--blue)}
.questions details[open] p{animation:answer-enter .5s var(--ease-out) both}
@keyframes answer-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.contact-email{transition:transform .6s var(--ease-out),color .3s}
.contact-email:hover{transform:translateY(-3px);color:var(--ink)}
/* Elements are hidden only after an observer exists; content in the viewport stays visible. */
.motion-ready [data-reveal]{transition:opacity .85s var(--ease-out),transform .85s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal]:not(.is-visible){opacity:0;transform:translate3d(0,24px,0)}
.motion-ready [data-reveal].is-visible{opacity:1;transform:none}
.motion-ready [data-reveal]:focus-within{opacity:1;transform:none;transition-delay:0ms}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-3px)}.text-link:hover{transform:translateX(4px)}.services article:hover{transform:translateY(-5px);border-color:var(--blue)}.services article:hover .number{transform:translateX(5px)}.ai-options article:hover{transform:translateY(-6px)}.ai-options article:hover::after{opacity:1}.process li:hover>span{transform:translateY(4px)}.hero-image:hover figcaption{transform:translateX(6px)}}
/* Native scroll timelines: no scroll listener, no frame-by-frame layout reads. */
@supports(animation-timeline:scroll()){
 @media(prefers-reduced-motion:no-preference){
  body::before{content:"";position:fixed;left:0;top:0;width:100%;height:3px;background:var(--blue);z-index:80;pointer-events:none;transform-origin:left;animation:reading-progress linear both;animation-timeline:scroll(root block)}
  @keyframes reading-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
 }
}
@media(max-width:800px){.hero-image::before{inset:15px -5px -8px 15px}.motion-ready [data-reveal]:not(.is-visible){transform:translate3d(0,16px,0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready [data-reveal]:not(.is-visible){opacity:1;transform:none}.site-header::after,.hero h1 em::after,.mission-hero h1 em::after{transform:scaleX(1)}}
@media print{*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready [data-reveal]:not(.is-visible){opacity:1;transform:none}body::before,.hero-image::before{display:none}}

@media(prefers-reduced-motion:no-preference){.motion-ready .hero-copy>*{animation:opening-enter 1s var(--ease-out) both}.motion-ready .hero-copy>*:nth-child(2){animation-delay:65ms}.motion-ready .hero-copy>*:nth-child(3){animation-delay:130ms}.motion-ready .hero-copy>*:nth-child(4){animation-delay:195ms}.motion-ready .hero-copy>*:nth-child(5){animation-delay:260ms}.motion-ready .hero-image{animation:opening-image 1.2s var(--ease-out) 100ms both}.motion-ready .mission-hero>*{animation:opening-enter .95s var(--ease-out) both}.motion-ready .mission-hero>*:nth-child(2){animation-delay:65ms}.motion-ready .mission-hero>*:nth-child(3){animation-delay:130ms}@keyframes opening-enter{from{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:none}}@keyframes opening-image{from{opacity:0;transform:translate3d(0,16px,0) scale(.985)}to{opacity:1;transform:none}}}

/* Full portrait, including on small screens. */
.hero-image img{height:auto;aspect-ratio:1;object-fit:cover;object-position:center}

/* Cutout portrait blends into the page, like the supplied visual reference. */
.hero-image::before{display:none}.hero-image img{border-radius:0;mask-image:linear-gradient(to bottom,#000 0%,#000 76%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 76%,transparent 100%)}.hero-image figcaption{position:static;background:transparent;color:var(--muted);padding:0 20px;text-align:center;margin-top:-6px;font-size:.82rem}.hero-image .photo-number{color:var(--blue)}

/* Pixel arrival overlay, removed completely after its single run. */
.motion-ready .hero-image.pixel-portrait{animation:none}.hero-image.pixel-portrait>img{transition:opacity .2s ease}.hero-image.pixel-building>img{opacity:0;transition:none}.portrait-pixels{position:absolute;top:-160px;left:0;pointer-events:none;z-index:2;transition:opacity .2s ease;mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%)}.portrait-pixels.pixel-finished{opacity:0}@media(prefers-reduced-motion:reduce){.portrait-pixels{display:none}.hero-image.pixel-building>img{opacity:1}}@media print{.portrait-pixels{display:none}.hero-image.pixel-building>img{opacity:1}}

.portrait-hover-pixels{position:absolute;left:-32px;top:-32px;pointer-events:none;z-index:3}@media(prefers-reduced-motion:reduce){.portrait-hover-pixels{display:none}}@media print{.portrait-hover-pixels{display:none}}

/* The canvas replaces the portrait only while its real tiles are displaced. */
.portrait-tile-canvas{position:absolute;top:0;left:0;pointer-events:none;z-index:3;mask-image:linear-gradient(to bottom,#000 0%,#000 76%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 76%,transparent 100%)}.hero-image.tile-interactive>img{opacity:0;transition:none}@media(prefers-reduced-motion:reduce){.portrait-tile-canvas{display:none}.hero-image.tile-interactive>img{opacity:1}}@media print{.portrait-tile-canvas{display:none}.hero-image.tile-interactive>img{opacity:1}}
