/* One light, one surface. Feedback leads; the surface settles after it. */
:root{--motion-ease:cubic-bezier(.2,.7,.2,1);--motion-fast:120ms;--motion-state:240ms;--motion-page:320ms;view-transition-name:none}
html{background:var(--night);scrollbar-color:#58635f var(--night);scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:96px}
[id]{scroll-margin-top:12px}
.site-header{padding:24px 5vw;min-height:96px}
.site-header nav{gap:24px}
.site-header nav a{position:relative;border-bottom-color:transparent!important;transition:color 120ms var(--motion-ease)}
.site-header nav a::after{content:'';position:absolute;inset:auto 0 4px;height:1px;background:var(--mint);transform:scaleX(0);transform-origin:right;transition:transform 220ms var(--motion-ease)}
.site-header nav a[aria-current=page]::after{transform:scaleX(1)}
.site-header nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.site-header nav a:focus-visible{color:var(--mint)}
.site-header nav a [aria-hidden],.motion-arrow,.actions .arrow,.proof-link [aria-hidden],.next-link [aria-hidden],.need-title>[aria-hidden]{display:inline-block;flex:none;transition:transform 220ms var(--motion-ease) 40ms}
.home-page .hero{padding-left:5vw;padding-right:5vw}
/* Keep the whole world above the section rule, without stretching to a tall viewport. */
@media(min-width:601px){
 .home-page .hero{min-height:704px;padding-top:80px;padding-bottom:32px}
 .home-page .hero+.need-paths{padding-top:40px}
}
@media(min-width:601px) and (max-width:900px){.home-page .hero{min-height:544px}}
@media(min-width:1600px){.home-page .hero{min-height:764px}}
@media(min-width:901px) and (max-height:800px){.home-page .hero{min-height:calc(min(650px,75svh) + 54px)}}
@media(min-width:1600px) and (max-height:800px){.home-page .hero{min-height:calc(min(650px,75svh) + 44px)}}
.home-page .copy{max-width:620px}
.home-page .copy h1{font-size:clamp(36px,4.4vw,62px);line-height:1.07;letter-spacing:-.04em;max-width:21ch}
.home-page .description{max-width:46ch;line-height:1.6}
.home-page .home-section{margin-left:5vw;margin-right:5vw}
.home-section{padding:64px 0}
.home-section h2{max-width:22ch;line-height:1.1;letter-spacing:-.035em}
.home-section p{line-height:1.6}
.home-section .section-intro{margin-bottom:24px}
.need-grid{gap:16px}
.need-link{position:relative;gap:16px;padding:24px;border-color:rgb(153 221 207 / .18);background:rgb(153 221 207 / .025);transition:border-color 160ms var(--motion-ease),background 220ms var(--motion-ease)}
.need-link::before{content:'';position:absolute;left:-1px;top:24px;width:2px;height:28px;background:var(--mint);opacity:0;transform:scaleY(.4);transform-origin:top;transition:opacity 120ms var(--motion-ease),transform 240ms var(--motion-ease)}
.need-title{font-size:22px;line-height:1.2;letter-spacing:-.025em}
.need-link .need-route{padding-top:8px}
.need-link:focus-visible{background:rgb(153 221 207 / .065);border-color:rgb(153 221 207 / .45)}
.need-link:focus-visible::before{opacity:1;transform:scaleY(1)}
.need-link:focus-visible .need-title>[aria-hidden]{transform:translate(3px,-3px)}
.work-proof{gap:40px}
.work-proof figure{border:1px solid rgb(153 221 207 / .14);padding:8px;background:rgb(153 221 207 / .025)}
.work-proof figcaption{margin:12px 8px 4px;max-width:55ch}
.work-proof .sample-note{font-size:13px;max-width:58ch}
.home-next{gap:40px}
.button,.actions a,.next-link{position:relative;overflow:hidden;min-height:48px;transition:background 160ms var(--motion-ease),border-color 160ms var(--motion-ease),color 120ms var(--motion-ease)}
.button:active,.actions a:active,.next-link:active{transform:translateY(1px)}
.button:focus-visible .motion-arrow,.actions .primary:focus-visible .arrow,.next-link:focus-visible [aria-hidden],.proof-link:focus-visible [aria-hidden]{transform:translate(3px,-3px)}
.button:focus-visible .motion-arrow-down,.need-link:focus-visible .need-title>.motion-arrow-down{transform:translate(0,3px)}
.actions .secondary{transition:background 220ms var(--motion-ease),border-color 160ms var(--motion-ease)}
.proof-link,.text-link,.site-footer a,.brief-alternatives a{transition:color 120ms var(--motion-ease),text-decoration-color 160ms var(--motion-ease);text-decoration-color:rgb(153 221 207 / .45)}
.hero h1{animation:resolve-heading 480ms var(--motion-ease) both}
.hero .eyebrow{animation:resolve-light 240ms var(--motion-ease) both}
.hero :is(.lead,.description,.hero-facts,.actions,.hero-note){animation:resolve-copy 400ms var(--motion-ease) 60ms both}
.world{animation:resolve-world 600ms var(--motion-ease) both}
.page-arrived .hero *,.page-arrived .world{animation:none!important}
body:not(.home-page) .hero{padding:64px 0 48px;gap:40px}
body:not(.home-page) h1{font-size:clamp(40px,5vw,68px);line-height:1.07;letter-spacing:-.045em;margin:16px 0 24px}
.section{padding:40px;margin-top:24px}
.section-heading{gap:40px;margin-bottom:32px}
.card,.package{padding:24px}
.price{font-variant-numeric:tabular-nums lining-nums}
.section-nav{gap:8px 24px}
.section-nav a{transition:color 120ms var(--motion-ease)}
.section-nav a:focus-visible{color:var(--mint)}
.brief-steps{margin-bottom:24px}
.brief-form,.brief-aside{border-color:#ccd3cb}
.field{margin-bottom:24px}
.field label{transition:color 120ms var(--motion-ease)}
.field:focus-within label{color:var(--green)}
.field :is(input,select,textarea){transition:border-color 120ms var(--motion-ease),box-shadow 160ms var(--motion-ease),background 160ms var(--motion-ease)}
.field :is(input,select,textarea):focus{border-color:var(--green);box-shadow:0 0 0 3px rgb(9 105 93 / .09)}
.field small{line-height:1.5}
.brief-details{padding:24px 0}
.brief-details summary{margin-bottom:0}
.disclosure-content{padding-top:16px}
details>summary{position:relative;padding-right:32px;list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
details>summary::after,details>summary::before{content:'';position:absolute;right:4px;top:50%;width:12px;height:1.5px;background:currentColor;transform:translateY(-50%);transition:transform 180ms var(--motion-ease),opacity 120ms var(--motion-ease)}
details>summary::before{transform:translateY(-50%) rotate(90deg)}
details[open]>summary::before{transform:translateY(-50%) rotate(90deg) scaleX(0)}
details[data-disclosure-open=false]>summary::before{transform:translateY(-50%) rotate(90deg)}
details[data-disclosure-open=true]>summary::before{transform:translateY(-50%) rotate(90deg) scaleX(0)}
.faq details{padding:16px 0}
.faq summary::after,.faq details[open] summary::after{content:'';color:inherit;font-size:inherit;font-weight:inherit}
.faq .disclosure-content p{margin:0 0 8px;max-width:74ch}
details[open] .disclosure-content{animation:resolve-light 120ms var(--motion-ease) 100ms both}
details[data-disclosure-open=false] .disclosure-content{animation:none}
.brief-review{overflow:hidden;border-top:2px solid var(--green)}
.brief-form,.brief-review{scrollbar-color:#83948f var(--paper)}
.brief-review pre{font-size:15px}
.brief-review[inert]{pointer-events:none}
.brief-review h2{margin-top:0}
/* The controls carry the interaction; the surrounding surfaces stay calm. */
.site-header nav a{min-height:48px}
.card-number{font-size:11px;line-height:1.5;letter-spacing:.08em}
.card:not(.flagship)>h3{font-size:26px;font-weight:400;line-height:1.15}
.card:focus-within{border-color:#7da69c}
.card .text-link{align-self:stretch;align-items:center;justify-content:space-between;gap:24px;min-height:48px;margin-top:16px;padding:12px 0;border-bottom:0}
.care-plan .price small{display:block;margin-top:8px;font-size:14px;line-height:1.4;letter-spacing:0;color:var(--muted)}
.flagship-visual figcaption{font-size:11px}
body:not(.home-page) .hero::after{content:none}
.home-page .hero .actions .secondary{border-color:rgb(153 221 207 / .45)}
.privacy-copy p{max-width:65ch}
.service-context{max-width:62ch;padding:12px 16px;border-left:2px solid var(--mint);font-size:14px;line-height:1.6;color:var(--quiet);background:rgb(153 221 207 / .035)}
.brief-process{margin:0 0 24px;border-block:1px solid rgb(153 221 207 / .22);color:var(--light)}
.brief-process>summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:52px;font-size:16px}
.brief-process .process-label{font:11px/1.5 var(--mono);color:var(--quiet)}
.brief-process .brief-steps{padding-bottom:16px;margin:0}
.brief-process .brief-steps li{border-top:0;padding-top:0}
#draft-state:empty,#brief-status:empty{display:none}
#draft-state:not(:empty),#brief-status:not(:empty){margin:20px 0;padding:12px 16px;border-left:2px solid var(--green);background:rgb(9 105 93 / .06);font-size:14px;line-height:1.5}
.brief-review #email-instructions{font-size:15px;line-height:1.6;max-width:66ch}
.brief-review .actions{margin:20px 0}
.brief-preview{margin-top:24px;border-block:1px solid var(--line);padding:20px 0}
.brief-document-title{font:11px/1.6 var(--mono);letter-spacing:.08em;color:var(--green);margin:0 0 8px}
#brief-fields{margin:0}
#brief-fields>div{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}
#brief-fields dt{font-size:14px;font-weight:500;line-height:1.6;color:var(--muted)}
#brief-fields dd{margin:0;font-size:16px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}
.brief-request-note{font-size:14px;line-height:1.6;color:var(--muted);margin:20px 0 0}
.brief-return{display:inline-flex;align-items:center;gap:24px;min-height:48px;margin-top:12px;font-size:14px;color:var(--green)}
@media(min-width:901px) and (max-width:1200px){.home-page .world:after{background:linear-gradient(90deg,var(--ink) 0,rgb(5 9 11 / .82) 35%,transparent 65%)}}
@media(max-width:600px){
 .brief-process .process-label{display:none}
 #brief-fields>div{grid-template-columns:1fr;gap:6px}
 .brief-preview{padding:16px 0}
 .brief-document-title{font-size:10px;letter-spacing:.04em}
 .service-context{font-size:14px;padding:12px}
}
#draft-state:not(:empty),#brief-status:not(:empty){animation:resolve-light 160ms var(--motion-ease) both}
.home-page[data-film] {overflow:hidden}
.film-host{animation:resolve-light 400ms var(--motion-ease) both}
.film-host iframe{opacity:1;transition:opacity 400ms var(--motion-ease)}
body[data-film=loading] .film-host iframe{opacity:0}
.film-status{border:1px solid rgb(153 221 207 / .18);animation:resolve-copy 240ms var(--motion-ease) both}
body[data-film=returning] .film-host{pointer-events:none;animation:none}
body[data-film=ending] .film-host{animation:none}
@keyframes resolve-light{from{opacity:0}to{opacity:1}}
@keyframes resolve-heading{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes resolve-copy{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes resolve-world{from{opacity:0}}
@keyframes depart{to{opacity:0;transform:translateY(-4px)}}
@keyframes resolve-page{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes resolve-services{from{opacity:0;transform:translateX(6px)}to{opacity:1;transform:translateX(0)}}
@keyframes resolve-brief{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.home-page main{view-transition-name:interactiv-home}
.services-page main{view-transition-name:interactiv-services}
.estimate-page main{view-transition-name:interactiv-estimate}
.privacy-page main{view-transition-name:interactiv-privacy}
.credits-page main{view-transition-name:interactiv-credits}
@view-transition{navigation:auto}
::view-transition{pointer-events:none}
::view-transition-old(*){animation:depart 120ms var(--motion-ease) both}
::view-transition-new(*){animation:resolve-page 320ms var(--motion-ease) both}
::view-transition-new(interactiv-services){animation-name:resolve-services}
::view-transition-new(interactiv-estimate){animation-name:resolve-brief;animation-duration:280ms}
::view-transition-new(interactiv-privacy),::view-transition-new(interactiv-credits){animation-name:resolve-light;animation-duration:240ms}
::view-transition-group(*){animation:none}
@media(hover:hover){
 .site-header nav a:hover::after{transform:scaleX(1);transform-origin:left}
 .site-header nav a:hover [aria-hidden],.button:hover .motion-arrow,.actions .primary:hover .arrow,.next-link:hover [aria-hidden],.proof-link:hover [aria-hidden]{transform:translate(3px,-3px)}
 .need-link:hover{background:rgb(153 221 207 / .065);border-color:rgb(153 221 207 / .45)}
 .need-link:hover::before{opacity:1;transform:scaleY(1)}
 .need-link:hover .need-title>[aria-hidden]{transform:translate(3px,-3px)}
 .button:hover .motion-arrow-down,.need-link:hover .need-title>.motion-arrow-down{transform:translate(0,3px)}
 .actions .secondary:hover{background:rgb(153 221 207 / .07);border-color:rgb(153 221 207 / .45)}
 .site-footer a:hover,.proof-link:hover{color:var(--mint)}
}
@media(max-width:900px){.section{padding:32px}.section-heading{gap:24px}.work-proof{gap:24px}.home-page .copy h1{max-width:20ch}}
@media(max-width:600px){
 html{scroll-padding-top:104px}
 .site-header{padding:16px 6vw 12px;gap:12px;min-height:0}.site-header nav{gap:16px}
 .home-page .hero{padding-left:6vw;padding-right:6vw}.home-page .copy h1{font-size:35px;max-width:22ch}
 .home-page .hero{padding-top:208px}
 .home-page .world{width:200px;height:200px;right:calc(50% - 100px);top:0}
 .home-page .home-section{margin-left:6vw;margin-right:6vw}
 .home-section{padding:40px 0}.home-section h2{font-size:31px}.need-link{padding:24px;gap:12px}.need-grid{gap:12px}
 body:not(.home-page) .hero{padding:40px 0 32px;gap:24px}.hero .lead{font-size:17px}
 .section{padding:24px}.section-heading{gap:16px;margin-bottom:24px}.card,.package{padding:24px}
 .section-nav{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:20px;padding:8px 32px 8px 8px;scroll-padding-inline:8px;scrollbar-width:thin;overscroll-behavior-inline:contain;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
 .section-nav:focus-within{-webkit-mask-image:none;mask-image:none}
 .section-nav a{flex:0 0 auto;white-space:nowrap;font-size:12px;min-height:48px}
 .brief-form,.brief-aside,.brief-review{padding:24px}.field{margin-bottom:24px}
 .brief-steps{grid-template-columns:1fr;gap:16px;padding-bottom:24px}
 .brief-steps strong{display:inline;margin-left:12px;font-size:17px}.brief-steps p{font-size:15px;line-height:1.5;margin-top:8px}
 .brief-details summary{font-size:17px;line-height:1.4;min-height:48px;display:flex;align-items:center}
 .faq summary{font-size:17px;line-height:1.4;min-height:48px}.disclosure-content{padding-top:16px}
 .brief-alternatives{gap:8px 16px}.work-proof,.home-next{gap:24px}
}
@media(max-width:600px) and (max-height:760px){.home-page .copy h1{font-size:31px}}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
