/* styles.css */
:root{--ink:#101114;--paper:#f3f4f6;--fog:#dfe1e5;--white:#fff;--red:#c91c14;--red-dark:#a6150f;--muted:#5f6269;--light-muted:#c8cbd1;--line:rgba(16,17,20,.22);--line-light:rgba(255,255,255,.24);--header-height:84px;--pad:clamp(1.25rem,4vw,4.5rem);--section:clamp(5.5rem,10vw,10rem);--measure:70ch}
*{box-sizing:border-box;scrollbar-color:var(--red) var(--paper);scrollbar-width:thin}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem)}body{margin:0;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--font-reading);line-height:1.55;text-rendering:optimizeLegibility}::selection{background:var(--red);color:#fff}a{color:inherit;text-decoration:none;text-underline-offset:.24em;text-decoration-thickness:1px}button,input,textarea{font:inherit;color:inherit}img,video{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-reading);text-wrap:balance}main>section{scroll-margin-top:calc(var(--header-height) + 1rem)}:focus-visible{outline:3px solid var(--red);outline-offset:4px}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;transform:translateY(-160%);background:#fff;color:var(--ink);padding:.75rem 1rem;border:1px solid var(--ink)}.skip-link:focus{transform:none}
.site-header{min-height:var(--header-height);padding:0 max(var(--pad),env(safe-area-inset-right)) 0 max(var(--pad),env(safe-area-inset-left));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;border-bottom:1px solid var(--line);position:relative;z-index:20;background:var(--paper)}.brand-mark{display:grid;place-items:center;width:50px;height:50px;justify-self:start}.brand-mark img{display:block;width:44px;height:44px}.site-header nav{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.75rem)}.site-header nav a,.header-cta{display:flex;align-items:center;min-height:44px;font-size:.78rem;font-weight:600;letter-spacing:.035em}.site-header nav a:hover,.header-cta:hover{text-decoration:underline}.header-cta{justify-self:end;gap:.75rem;border-bottom:1px solid;padding-top:.15rem}.nav-contact{display:none!important}.menu-button{display:none;align-items:center;justify-self:end;gap:.55rem;min-width:48px;min-height:48px;padding:0;background:none;border:0;cursor:pointer}.menu-button i{width:18px;height:1px;background:currentColor;position:relative;transition:transform .18s ease}.menu-button i::after{content:"";position:absolute;width:18px;height:1px;top:5px;left:0;background:currentColor;transition:transform .18s ease,top .18s ease}.menu-button[aria-expanded="true"] i{transform:rotate(45deg)}.menu-button[aria-expanded="true"] i::after{top:0;transform:rotate(90deg)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:56px;padding:1rem 1.25rem;font-weight:600;border:1px solid transparent}.button-primary{background:var(--red);color:#fff}.button-primary:hover{background:var(--red-dark)}.text-link{display:inline-flex;align-items:center;gap:.7rem;min-height:44px;font-size:.73rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;border-bottom:1px solid}.text-link:hover{color:var(--red)}
.hero{position:relative;min-height:calc(100svh - var(--header-height));padding:clamp(3.5rem,6vw,6.5rem) var(--pad) clamp(2.5rem,4vw,4.5rem);display:grid;grid-template-columns:minmax(0,6fr) minmax(380px,6fr);align-items:center;gap:clamp(3rem,5vw,6rem);background:var(--paper);color:var(--ink);overflow:hidden}.hero::before{content:"";position:absolute;width:clamp(340px,42vw,660px);aspect-ratio:1;right:clamp(-180px,-8vw,-80px);top:50%;transform:translateY(-47%);border-radius:50%;background:#e5e6e9;z-index:0}.hero::after{content:"";position:absolute;left:var(--pad);right:var(--pad);bottom:1.35rem;height:1px;background:linear-gradient(90deg,var(--red) 0 12%,rgba(16,17,20,.25) 12% 100%)}.hero-copy{position:relative;z-index:2;align-self:center;padding-bottom:clamp(1rem,3vw,3rem)}.hero h1{font-size:clamp(3.7rem,7.2vw,6rem);line-height:.91;letter-spacing:-.035em;max-width:10.5ch;margin-bottom:2rem}.hero h1 em{font-family:var(--font-reading);font-weight:400;color:var(--red)}.hero-lead{max-width:600px;font-size:clamp(1.05rem,1.35vw,1.28rem);line-height:1.65;margin-bottom:2rem;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:clamp(1.25rem,3vw,2.75rem);flex-wrap:wrap}.hero-showcase{position:relative;z-index:2;display:block;align-self:center;min-height:clamp(410px,41vw,610px);color:var(--ink)}.hero-display{position:absolute;left:0;top:10%;width:min(100%,650px);filter:drop-shadow(0 24px 25px rgba(16,17,20,.14))}.hero-display-screen{display:block;padding:clamp(.45rem,.8vw,.7rem);background:#17181b;border-radius:clamp(.5rem,1vw,.85rem)}.hero-display-screen img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#fff;border-radius:.2rem}.hero-display-neck{display:block;width:16%;height:clamp(40px,5vw,72px);margin:0 auto;background:linear-gradient(90deg,#c4c6ca,#f2f3f5 46%,#b7b9bd)}.hero-display-base{display:block;width:40%;height:clamp(8px,1vw,13px);margin:0 auto;border-radius:50% 50% 20% 20%;background:linear-gradient(180deg,#dfe1e4,#aeb1b6)}.hero-phone{position:absolute;right:-1%;bottom:16%;display:block;width:clamp(105px,13vw,190px);padding:clamp(.36rem,.55vw,.52rem);border:2px solid #292a2e;border-radius:clamp(1rem,2vw,1.75rem);background:#151619;box-shadow:0 26px 40px rgba(16,17,20,.25);transform:rotate(3deg);overflow:hidden}.hero-phone-speaker{position:absolute;z-index:2;top:.85rem;left:50%;width:28%;height:4px;transform:translateX(-50%);border-radius:4px;background:#292a2e}.hero-phone img{display:block;width:100%;aspect-ratio:9/18.5;object-fit:cover;object-position:50% center;border-radius:clamp(.75rem,1.6vw,1.35rem)}.hero-showcase-caption{position:absolute;left:4%;bottom:3%;display:flex;align-items:baseline;gap:1rem;padding-top:.85rem;border-top:1px solid var(--ink);font-size:var(--text-utility)}.hero-showcase-caption b{text-transform:uppercase;letter-spacing:.1em;color:var(--red);white-space:nowrap}.hero-showcase-caption span{color:var(--muted)}.trust-band{padding:1.5rem var(--pad);display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;border-bottom:1px solid var(--line);background:var(--paper)}.trust-band p{margin:0;font-size:.78rem;letter-spacing:.015em}.trust-band strong{display:block;font:800 clamp(1.4rem,2vw,2rem) var(--font-reading);letter-spacing:-.03em;margin-bottom:.15rem}
.work,.services,.process,.about,.faq,.contact{padding:var(--section) var(--pad)}.section-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(260px,5fr);gap:clamp(3rem,8vw,9rem);align-items:end;margin-bottom:clamp(4rem,7vw,7rem)}.section-intro h2,.about h2,.contact h2{font-size:clamp(3rem,5.6vw,5.25rem);line-height:.94;letter-spacing:-.035em;margin-bottom:0}.section-intro>p,.about-copy>p,.contact-copy>p{max-width:var(--measure);line-height:1.72;margin-bottom:0}
.project{margin-bottom:clamp(6rem,12vw,12rem)}.project:last-child{margin-bottom:0}.project-visual{display:block;padding:clamp(.8rem,3vw,3.5rem);background:#c8c2b6;overflow:hidden}.project-dark .project-visual{background:var(--red)}.project-visual img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#fff}.project-info{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,7vw,8rem);padding-top:1.5rem;border-top:1px solid var(--ink)}.meta{margin-bottom:.65rem;font-size:.67rem;text-transform:uppercase;letter-spacing:.13em;font-weight:600}.project-info h3{font-size:clamp(2rem,3.5vw,3.4rem);line-height:1;letter-spacing:-.03em;margin-bottom:0}.project-summary{max-width:560px}.project-summary p{line-height:1.68;margin-bottom:.85rem}.project-summary .text-link{margin-top:.55rem}
.services{background:var(--ink);color:var(--paper)}.services .section-intro>p{color:var(--light-muted)}.service-list{border-top:1px solid var(--line-light)}.service-list article{display:grid;grid-template-columns:minmax(210px,4fr) minmax(280px,5fr) minmax(190px,3fr);gap:clamp(2rem,6vw,7rem);align-items:start;padding:2rem 0;border-bottom:1px solid var(--line-light)}.service-list h3{font-size:clamp(1.55rem,2.35vw,2.3rem);line-height:1.08;margin:0;letter-spacing:-.025em}.service-list p{max-width:54ch;line-height:1.68;margin:0;color:#d8d9dd}.service-list span{font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;color:#ff756d}
.process{background:var(--fog)}.process ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink)}.process li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:1rem;padding:1.8rem 0;border-bottom:1px solid var(--ink)}.process li>span{font-size:.68rem;padding-top:.45rem;font-weight:600;color:var(--red)}.process li>div{display:grid;grid-template-columns:minmax(220px,5fr) minmax(280px,7fr);gap:clamp(2rem,8vw,9rem)}.process h3{font-size:clamp(1.8rem,3.2vw,3.1rem);letter-spacing:-.03em;line-height:1;margin:0}.process li p{max-width:640px;line-height:1.68;margin:0}.process-next{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-top:clamp(2rem,4vw,3rem)}.process-next p{max-width:42ch;margin:0;font:600 clamp(1.15rem,1.8vw,1.45rem) var(--font-reading);line-height:1.3}
.about{display:grid;grid-template-columns:7fr 5fr;gap:clamp(3rem,9vw,10rem);align-items:center;background:#fff}.about-note{min-height:clamp(320px,34vw,500px);margin:0;padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:space-between;background:var(--ink);color:var(--paper)}.about-note>img{display:block;width:clamp(68px,8vw,108px);height:auto;filter:invert(1)}.about-note blockquote{max-width:25ch;margin:clamp(3rem,6vw,6rem) 0 2.5rem;font:600 clamp(1.45rem,2.35vw,2.4rem)/1.2 var(--font-reading);letter-spacing:-.025em}.about-note figcaption{display:flex;align-items:baseline;gap:1rem;padding-top:1.25rem;border-top:1px solid var(--line-light)}.about-note figcaption strong{font:400 clamp(1.55rem,2.2vw,2rem) var(--font-reading);color:#ff756d}.about-note figcaption span{font-size:.67rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--light-muted)}.about h2{font-size:clamp(2.7rem,4.7vw,4.8rem);margin-bottom:2rem}
.faq-list{border-top:1px solid var(--ink)}.faq details{border-bottom:1px solid var(--ink)}.faq summary{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:80px;padding:1.25rem 0;cursor:pointer;font:600 clamp(1.1rem,1.8vw,1.45rem) var(--font-reading);list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font:400 1.7rem var(--font-reading);color:var(--red)}.faq details[open] summary::after{content:"−"}.faq details p{max-width:var(--measure);padding:0 4rem 1.7rem 0;line-height:1.72;color:var(--muted)}
.contact{display:grid;grid-template-columns:7fr minmax(340px,5fr);gap:clamp(4rem,9vw,10rem);background:#fff}.contact h2{margin-bottom:2rem}.next-steps{list-style:none;padding:0;margin:2.75rem 0;border-top:1px solid var(--line)}.next-steps li{display:grid;grid-template-columns:34px 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}.next-steps li>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--ink);font-size:.7rem;font-weight:600}.next-steps p{margin:0;line-height:1.55}.next-steps strong{display:block;font-family:var(--font-reading)}.contact-alternative{font-size:.9rem!important}.contact-alternative a{text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}.contact form{padding-top:.5rem}.contact label{display:block;margin-bottom:1.45rem;font-size:.66rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.contact label>span{color:var(--muted);font-weight:400}.project-field{margin-bottom:1.45rem}.project-field label{margin-bottom:.45rem}.field-help{max-width:62ch;margin:0 0 .35rem;color:var(--muted);font-size:.82rem;line-height:1.55}.contact input,.contact textarea{display:block;width:100%;min-height:50px;padding:.8rem 0;background:transparent;border:0;border-bottom:1px solid var(--ink);border-radius:0;outline:none;font-size:1rem;letter-spacing:normal;text-transform:none;caret-color:var(--red)}.contact textarea{min-height:8.5rem;resize:vertical}.contact input::placeholder,.contact textarea::placeholder{color:#70737a;opacity:1}.contact input:focus,.contact textarea:focus{border-bottom:2px solid var(--red)}.contact button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:1.1rem 1.3rem;background:var(--ink);color:#fff;border:0;font-weight:600;cursor:pointer}.contact button:hover,.contact button:active{background:#2b2c31}.contact button[disabled]{opacity:.62;cursor:wait}.form-note,.privacy-note{font-size:.75rem;line-height:1.58;color:var(--muted)}.form-note{margin-top:1rem}.privacy-note{margin-top:1rem}.privacy-note a{text-decoration:underline}.form-note[data-state="success"]{color:#24703a}.form-note[data-state="error"]{color:#a90f0b}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
footer{padding:2.5rem var(--pad);display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;align-items:end;border-top:1px solid var(--line)}footer .brand{display:flex;flex-direction:column;gap:.1rem;min-height:44px;justify-content:center}.brand b{font:800 1rem var(--font-reading);letter-spacing:.08em;white-space:nowrap}.brand b span{color:var(--red)}.brand small{font:500 .52rem var(--font-reading);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}footer nav{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.75rem}footer nav a,footer p a{min-height:32px;display:inline-flex;align-items:center}footer p{margin:0;font-size:.75rem;line-height:1.7;text-align:right}footer p a{text-decoration:underline}
.case-header{position:absolute;left:0;right:0;color:#fff;border-color:var(--line-light);background:transparent}.case-header .brand-mark img{filter:invert(1)}.case-header nav a,.case-header .header-cta{color:#fff}.case-hero{min-height:76svh;padding:clamp(10rem,16vw,14rem) var(--pad) clamp(4rem,8vw,7rem);display:flex;flex-direction:column;justify-content:flex-end;background:var(--ink);color:#fff;border-bottom:1px solid var(--line-light)}.case-hero p{max-width:720px;font-size:clamp(1.05rem,1.8vw,1.4rem);line-height:1.65;margin-bottom:0;color:#d8d9dd}.case-hero h1{font-size:clamp(3.8rem,9vw,6rem);line-height:.9;letter-spacing:-.035em;margin:1.25rem 0 2rem;max-width:14ch}.case-hero-meta{display:flex;gap:.8rem;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;font-weight:600;color:#ff756d}.case-hero-meta span+span::before{content:"·";margin-right:.8rem;color:#fff}.case-film{padding:clamp(1rem,4vw,4rem);background:var(--fog)}.case-film video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#000}.case-body{padding:var(--section) var(--pad)}.case-lead{display:grid;grid-template-columns:minmax(180px,3fr) minmax(0,9fr);gap:clamp(3rem,9vw,10rem);padding-bottom:clamp(3rem,6vw,6rem);border-bottom:1px solid var(--line)}.section-label{text-transform:uppercase;letter-spacing:.12em;font-size:.67rem;font-weight:600;color:var(--red)}.case-lead h2{font-size:clamp(2.8rem,5.7vw,5.25rem);line-height:.95;letter-spacing:-.035em;margin-bottom:2rem}.case-lead p{max-width:720px;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.72}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,5vw,5rem);padding-top:clamp(3rem,6vw,6rem)}.case-grid h3{font-size:clamp(1.5rem,2.5vw,2.25rem);line-height:1.08;letter-spacing:-.03em}.case-grid p{line-height:1.72;color:var(--muted)}.case-deliverables{margin-top:clamp(3rem,6vw,6rem);padding:clamp(2rem,5vw,4.5rem);background:var(--ink);color:#fff;display:grid;grid-template-columns:5fr 7fr;gap:3rem}.case-deliverables h2{font-size:clamp(2rem,4vw,4rem);line-height:1;letter-spacing:-.035em}.case-deliverables ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line-light)}.case-deliverables li{padding:1.1rem 0;border-bottom:1px solid var(--line-light)}.case-cta{padding:var(--section) var(--pad);display:flex;align-items:flex-end;justify-content:space-between;gap:3rem;background:var(--red);color:#fff}.case-cta h2{font-size:clamp(3rem,6.5vw,6rem);line-height:.92;letter-spacing:-.035em;max-width:900px;margin:0}.case-cta a{display:inline-flex;align-items:center;min-height:44px;flex:none;border-bottom:1px solid;font-weight:600}
.simple-header{position:relative}.legal{padding:var(--section) var(--pad);max-width:980px;margin:0 auto}.legal h1{font-size:clamp(3rem,7vw,6rem);line-height:.95;letter-spacing:-.035em;margin-bottom:3rem}.legal h2{font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.15;letter-spacing:-.03em;margin-top:3rem}.legal p,.legal li{max-width:72ch;line-height:1.75}.legal a{text-decoration:underline}.not-found{min-height:100svh;display:grid;place-content:center;padding:var(--pad);text-align:center}.not-found h1{font-size:clamp(3.8rem,10vw,6rem);line-height:.92;letter-spacing:-.035em;margin-bottom:1.5rem}.not-found a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:1rem;text-decoration:underline}.motion-line,.motion-reveal,.motion-media,[data-motion]{visibility:visible}
body>header,main>section,body>footer{width:min(100%,1600px);margin-inline:auto}
footer nav a,footer p a{min-width:44px;min-height:44px}
@media (min-width:761px) and (max-width:1020px){.site-header{grid-template-columns:auto 1fr auto}.site-header nav{justify-self:center;gap:1rem}.hero{grid-template-columns:1fr;gap:1rem}.hero-copy{padding-bottom:0}.hero h1{font-size:clamp(4.2rem,9vw,5.6rem);max-width:10ch}.hero-showcase{width:min(100%,760px);min-height:500px}.section-intro{grid-template-columns:1fr;gap:2rem}.contact{grid-template-columns:1fr;gap:4.5rem}.contact form{max-width:720px}}
@media(max-width:760px){:root{--header-height:70px}.site-header{min-height:var(--header-height);grid-template-columns:1fr auto}.menu-button{display:flex}.header-cta{display:none}.nav-contact{display:flex!important}.site-header nav{display:none;position:absolute;top:var(--header-height);left:0;right:0;z-index:20;padding:1rem var(--pad) 1.25rem;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--ink);box-shadow:0 18px 30px rgba(16,17,20,.12);flex-direction:column;align-items:stretch;gap:0}.site-header nav.open{display:flex}.site-header nav a{min-height:50px;border-bottom:1px solid var(--line);font-size:1rem}.site-header nav a:last-child{border-bottom:0;color:var(--red);font-weight:600}.hero{min-height:auto;grid-template-columns:1fr;padding-top:clamp(3.5rem,12vw,5.5rem);gap:1.5rem}.hero::before{width:430px;right:-230px;top:auto;bottom:1rem;transform:none}.hero-copy{padding-bottom:0}.hero h1{font-size:clamp(3.15rem,14vw,5rem);line-height:.92}.hero-showcase{min-height:clamp(300px,82vw,500px);margin-bottom:2.5rem}.hero-display{top:7%;width:92%}.hero-phone{right:0;bottom:18%;width:clamp(90px,25vw,145px)}.hero-showcase-caption{left:0;right:0;bottom:0;align-items:flex-start;flex-direction:column;gap:.3rem}.trust-band{grid-template-columns:1fr;gap:1rem}.trust-band p{display:grid;grid-template-columns:90px 1fr;align-items:center}.trust-band strong{margin:0}.section-intro,.project-info,.reasons,.about,.contact{grid-template-columns:1fr}.section-intro{gap:2rem}.section-intro h2,.reasons h2,.about h2,.contact h2{font-size:clamp(2.75rem,12vw,4.4rem)}.project-info{gap:1.5rem}.service-list article{grid-template-columns:1fr;gap:1rem}.service-list span{order:-1}.process li{grid-template-columns:42px 1fr}.process li>div{grid-template-columns:1fr;gap:.75rem}.reasons{gap:3.5rem}.about{gap:3.5rem}.about-note{min-height:0;padding:2rem}.about-note blockquote{margin:3rem 0 2rem}.about-note figcaption{align-items:flex-start;flex-direction:column;gap:.25rem}.faq details p{padding-right:0}.contact{gap:4.5rem}footer{grid-template-columns:1fr;gap:1rem}footer nav{margin:1rem 0}footer p{text-align:left}.case-header{position:absolute;background:transparent}.case-header nav.open{background:var(--ink);color:#fff}.case-hero{min-height:65svh;padding-top:8rem}.case-hero h1{font-size:clamp(3.4rem,15vw,5rem)}.case-lead,.case-grid,.case-deliverables{grid-template-columns:1fr}.case-lead{gap:2rem}.case-grid{gap:3rem}.case-cta{display:block}.case-cta a{margin-top:2.5rem}}
@media(max-width:760px){.process-next{align-items:stretch;flex-direction:column}.process-next .button{width:100%}}
@media(max-width:360px){.hero h1{font-size:3rem}.hero-actions{align-items:stretch}.hero-actions .button{width:100%}.project-visual{padding:.65rem}.trust-band p{font-size:.76rem}.site-header{padding-left:1rem;padding-right:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.menu-button i,.menu-button i::after{transition:none}}

@media(max-width:1020px){.hero-phone{right:4%}}

.hero{background:#efeff1}.hero::before{display:none}.hero-showcase{display:flex;align-items:center;justify-content:center;min-height:0;padding-bottom:3.5rem}.hero-devices{display:block;width:min(115%,780px);max-width:none;height:auto;mix-blend-mode:normal;transform:translateX(2%)}.hero-showcase-caption{left:3%;right:3%;bottom:0}
@media (min-width:761px) and (max-width:1020px){.hero-showcase{min-height:0;padding-bottom:4rem}.hero-devices{width:min(100%,780px);transform:none}}
@media(max-width:760px){.hero-showcase{min-height:0;margin-bottom:2.5rem;padding:1rem 0 5rem}.hero-devices{width:112%;transform:none}.hero-showcase-caption{left:0;right:0}}

/* Utility type scale: compact labels, interface metadata, and supporting notes. */
:root{--text-utility-compact:.75rem;--text-utility:.8125rem;--text-note:.875rem}
.site-header nav a,.header-cta{font-size:var(--text-utility)}
.text-link,.meta,.service-list span,.process li>span,.next-steps li>span,.contact label,.case-hero-meta,.section-label,.about-note figcaption span{font-size:var(--text-utility-compact)}
.hero-showcase-caption,.trust-band p,footer nav,footer p{font-size:var(--text-utility)}
.form-note,.privacy-note{font-size:var(--text-note)}
.brand small{font:500 var(--text-utility-compact) var(--font-reading);letter-spacing:.12em}
@media(max-width:360px){.trust-band p{font-size:var(--text-utility)}}

/* Phase 06 — shared finishing and secondary-page compatibility. */
footer .brand img{display:block;width:190px;height:auto;max-width:100%}

.simple-header{grid-template-columns:1fr auto}
.simple-header .header-cta{display:flex}
.not-found{grid-template-columns:minmax(0,1fr)}
.not-found h1{font-size:clamp(2.6rem,10vw,6rem);overflow-wrap:anywhere}
.case-hero :focus-visible,.case-header :focus-visible,.case-deliverables :focus-visible{outline-color:#ff756d}
.case-cta a:focus-visible{outline-color:#fff}
.signature-page .work>.section-intro h2{line-height:1.04}
@media(max-width:760px){.case-header nav{max-height:calc(100svh - var(--header-height));overflow-y:auto}.simple-header{gap:1rem}.simple-header .header-cta{font-size:.75rem}}

/* Shared secondary-page reading rhythm and resilient narrow layouts. */
.case-grid article,.case-lead>div,.case-deliverables>*{min-width:0}
.case-grid p:last-child,.case-lead p:last-child{margin-bottom:0}
.case-cta{align-items:center}
.case-cta h2{max-width:18ch}
.legal,.case-body{overflow-wrap:break-word}
@media(max-width:380px){.signature-page>.site-header{gap:.5rem}.signature-page .navigation-location{font-size:.6875rem}.case-hero h1{font-size:clamp(2.75rem,14vw,3.4rem)}}

/* home.css */

/* Dark stone surfaces frame the centered copy and luminous opening. */
.signature-hero{position:relative;isolation:isolate;display:grid;align-items:center;justify-items:center;min-height:calc(100svh - var(--header-height));padding:clamp(1.5rem,4svh,3rem) var(--pad);background:#f3f4f6;color:#101114;overflow:hidden}
.signature-art{position:absolute;inset:0 auto 0 -8%;width:116%;max-width:none;height:100%;object-fit:fill;object-position:center;z-index:-1;pointer-events:none}
.signature-copy{position:relative;width:100%;max-width:1060px;text-align:center}
.signature-copy h1{margin:0 0 1.8rem}
.signature-copy h1>span{color:#101114}
.signature-lead{color:#42454b;margin:0 auto 2rem}
.signature-actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}
.signature-or{transform:translateY(.5rem);font-size:.6875rem;line-height:1.5;letter-spacing:.08em;color:#42454b}
.signature-actions .button{gap:1.5rem;min-height:48px;padding:.75rem 1.25rem;background:transparent;border-color:var(--red);color:var(--red-dark);font-size:.875rem;transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,transform 220ms cubic-bezier(.16,1,.3,1)}
/* Surface reflection and a narrow specular rim share the scene light position. */
.signature-actions a{position:relative;isolation:isolate;--action-light:0;--action-x:50%;--action-y:50%}
.signature-actions .button{overflow:visible}
.signature-actions .button::before,.signature-actions .button::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--action-light);transition:opacity 140ms ease}
.signature-actions .button::before{display:none}
.signature-actions .button::after{inset:-1px;padding:1px;background:radial-gradient(ellipse 100px 55px at var(--action-x) var(--action-y),#fff8ed 0%,#ff9b81 19%,#e53520 43%,transparent 100%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}
.signature-work-link::after{display:none}
.signature-actions a:focus-visible{--action-light:1}
.signature-actions .button:active::after{filter:brightness(1.2)}
@media(hover:hover){.signature-actions .button:hover{background:transparent;border-color:var(--red-dark);color:var(--red-dark)}.signature-actions .button:hover .action-label{transform:scale(1.06)}}
.signature-actions .button:focus-visible{background:transparent;border-color:var(--red-dark);color:var(--red-dark)}
.signature-work-link:focus-visible{color:#101114}
@media(prefers-reduced-motion:reduce){.signature-actions .button{transition:none}}
.signature-work-link{display:inline-flex;align-items:center;gap:.85rem;min-height:44px;font-size:.8125rem;text-decoration:underline;text-underline-offset:6px}
.signature-work-link:hover{color:#101114}
.signature-human{color:#42454b;font-size:.8125rem;line-height:1.6;margin:2.5rem 0 0}
.signature-hero :focus-visible{outline-color:#c91c14}
@media(max-width:760px){
  .signature-hero{padding-bottom:clamp(1.5rem,4svh,3rem)}
  .signature-copy{width:100%;max-width:600px}
  .signature-art{inset:0 auto 0 -40%;width:180%;object-fit:fill;object-position:center}
}



@media(max-width:900px){.signature-hero{grid-template-columns:1fr}.signature-copy h1{font-size:clamp(3rem,7.8vw,4.8rem)}}
@media(max-width:760px){.signature-hero{min-height:calc(100svh - var(--header-height));padding-top:clamp(1.5rem,4svh,3rem);padding-bottom:clamp(1.5rem,4svh,3rem)}.signature-copy h1{font-size:clamp(2.5rem,10vw,4.6rem)}.signature-lead{font-size:1rem}}

/* Phase 02 — the signature's red rule becomes a quiet wayfinding device.
   Scoped to the home page: case studies and the approved hero retain their styles. */
.signature-page > .site-header{position:sticky;top:0;transition:border-color 180ms ease}
.signature-page > .site-header.is-scrolled{border-bottom-color:var(--ink)}
.navigation-location{display:none}
.signature-page .site-header nav a{position:relative;text-decoration:none;transition:color 160ms ease}
.signature-page .site-header nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 220ms cubic-bezier(.16,1,.3,1)}
.signature-page .site-header nav a[aria-current="location"]{color:var(--red)}
.signature-page .site-header nav a[aria-current="location"]::after{transform:scaleX(1)}
.signature-page .header-cta{transition:color 160ms ease,border-color 160ms ease}
.signature-page .header-cta[aria-current="location"]{color:var(--red)}
.signature-page .brand-mark{position:relative}
.signature-page .brand-mark::after{content:"";position:absolute;bottom:0;left:9px;width:28px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 220ms ease}
.signature-page .brand-mark[aria-current="location"]::after{transform:scaleX(1)}
.signature-page main > section{scroll-margin-top:0}
/* Short registration strokes connect existing surfaces without hiding or shifting content. */
.signature-page main > section:not(.signature-hero){position:relative}
.signature-page main > section:not(.signature-hero)::before{content:"";position:absolute;top:0;left:var(--pad);width:32px;height:1px;background:var(--red)}
.signature-page main > .services::before{background:#ff756d}
.signature-page main > .trust-band::before{height:22px;width:1px}
@media(hover:hover){
  .signature-page .site-header nav a:hover{color:var(--red)}
  .signature-page .site-header nav a:hover::after,.signature-page .brand-mark:hover::after{transform:scaleX(1)}
  .signature-page .header-cta:hover{color:var(--red);text-decoration:none}
}
.signature-page .site-header nav a:focus-visible::after{transform:scaleX(1)}
@media(max-width:760px){
  .signature-page > .site-header{grid-template-columns:1fr auto auto;gap:1rem}
  .signature-page .navigation-location{display:block;color:var(--muted);font-size:.75rem}
  .signature-page .menu-button{gap:.75rem}
  .signature-page .menu-button[aria-expanded="true"]{color:var(--red)}
  .signature-page .site-header nav{display:flex;visibility:hidden;pointer-events:none;opacity:0;transform:translateY(-6px);box-shadow:none;border-bottom:1px solid var(--ink);max-height:calc(100svh - var(--header-height));overflow-y:auto;transition:opacity 180ms ease,transform 220ms cubic-bezier(.16,1,.3,1),visibility 220ms;gap:0}
  .signature-page .site-header nav.open{visibility:visible;pointer-events:auto;opacity:1;transform:none}
  .signature-page .site-header nav a{font-size:1.125rem;min-height:58px;justify-content:space-between;gap:1.5rem}
  .signature-page .site-header nav a::after{position:static;flex:none;width:24px;height:1px}
  html:not(.has-js) .signature-page .site-header nav{position:static;grid-column:1/-1;visibility:visible;pointer-events:auto;opacity:1;transform:none;padding-inline:0;max-height:none;border-bottom:0}
  html:not(.has-js) .signature-page .menu-button,html:not(.has-js) .signature-page .navigation-location{display:none}
  html:not(.has-js) .signature-page > .site-header{position:relative}
}
@media(prefers-reduced-motion:reduce){
  .signature-page .site-header,.signature-page .site-header *,.signature-page .site-header *::after{transition:none!important}
}








.stone-scene{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.signature-copy{z-index:1}
.has-stone-scene .signature-art{visibility:hidden}

@media(prefers-reduced-motion:reduce){.signature-actions a::before,.signature-actions a::after{transition:none}}

/* Illuminate the existing glyphs and underline together, without adding a second line. */
.signature-actions .signature-work-link,.signature-actions .signature-work-link:hover,.signature-actions .signature-work-link:focus-visible{color:var(--link-light-color,#101114);text-decoration-color:currentColor}

.signature-actions .button:active{background:transparent;color:#8f1b14}
@media(prefers-reduced-motion:reduce){.signature-actions .button:hover,.signature-actions .button:active{transform:none}}

.action-label{display:inline-block;transition:transform 220ms cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:reduce){.signature-actions .button:hover .action-label{transform:none}.action-label{transition:none}}

/* Reveal the existing underline only when the link is targeted. */
.signature-actions .signature-work-link{text-decoration-line:none}
@media(hover:hover){.signature-actions .signature-work-link:hover{text-decoration-line:underline}}
.signature-actions .signature-work-link:focus-visible{text-decoration-line:underline}

/* Phone-only framing: narrow desktop windows retain their previous layout. */
@media(max-width:760px) and (hover:none) and (pointer:coarse){.signature-art{left:-14%;width:128%}.signature-copy{width:calc(100% - 4rem)}.signature-copy .signature-lead{max-width:calc(100% - 1rem)}}

/* Extend only the sticky header's paper surface beyond its centered content. */
.signature-page > .site-header{isolation:isolate}
.signature-page > .site-header::before{content:"";position:absolute;inset:0 calc(50% - 50vw) -1px;background:var(--paper);border-bottom:1px solid;border-color:inherit;z-index:-1;pointer-events:none}

/* The floor edge follows the visible browser height on phones. */
@media(max-width:760px){
 .signature-page .signature-hero{min-height:calc(100dvh - var(--header-height));padding-block:1rem}
 .signature-page .signature-copy{width:100%}
 .signature-page .signature-copy .signature-lead{max-width:100%;margin-bottom:1rem}
 .signature-page .signature-copy h1{font-size:clamp(2.25rem,min(10vw,7dvh),3rem);margin-bottom:.75rem}
 .signature-page .signature-offer{margin-bottom:.75rem}
 .signature-page .signature-lead{font-size:1rem;line-height:1.5}
 .signature-page .signature-human{margin-top:1rem}
 .signature-page .gaze-experiment{margin-top:.5rem}
}

/* work.css */
/* Compact project selection; films live on the case-study pages. */
.signature-page .work{padding-block:clamp(3.5rem,6vw,6rem)}
.signature-page .work .section-intro{margin-bottom:2.5rem}
.signature-page .work .section-intro h2{font-size:clamp(2rem,3.5vw,3.5rem)}
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem)}
.work-project{min-width:0}
.work-preview{display:block;overflow:hidden;background:#e0e1e4}
.work-preview img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;transition:transform .3s ease}
.work-preview:hover img{transform:scale(1.025)}
.work-sector{font-size:.75rem;color:var(--muted);margin:1.25rem 0 .5rem}
.work-project h3{font-size:clamp(1.5rem,2.2vw,2.2rem);letter-spacing:-.03em;margin:0 0 .75rem;line-height:1.2}
.work-summary{font-size:.9375rem;line-height:1.65;color:var(--muted);max-width:52ch;margin:0 0 .75rem}
.work-case-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:48px;border-bottom:1px solid var(--line);font-size:.875rem;font-weight:600}
.work-case-link:hover{color:var(--red)}
@media(max-width:600px){.work-grid{grid-template-columns:1fr;gap:2.5rem}.work-preview{max-height:220px}.work-preview img{max-height:220px}}
@media(prefers-reduced-motion:reduce){.work-preview img{transition:none}.work-preview:hover img{transform:none}}

/* journey.css */
/* Phase 04: scoped to Services and Méthode. */
.journey{padding-block:clamp(4.5rem,8vw,8rem)}
.journey-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2rem,8vw,8rem);align-items:end;margin-bottom:3.5rem}
.journey-intro h2,.collaboration-heading h2{font-size:clamp(2.6rem,5vw,4.8rem);line-height:1.04;letter-spacing:-.035em;margin:0;text-wrap:balance}
.journey-intro>p{max-width:39ch;color:var(--light-muted);font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.65;margin:0 0 .25rem}
.journey-controls:not([hidden]){display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:0}
.journey-controls button{display:flex;align-items:center;gap:1rem;min-height:80px;padding:1rem 1.5rem;color:var(--paper);background:transparent;border:0;border-top:1px solid var(--line-light);text-align:left;font:600 clamp(1rem,1.5vw,1.35rem)/1.3 var(--font-reading);cursor:pointer;position:relative}
.journey-controls button span{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--light-muted)}
.journey-controls button::before{content:"";position:absolute;left:0;top:-1px;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 220ms cubic-bezier(.16,1,.3,1)}
.journey-controls button[aria-selected="true"]{background:var(--paper);color:var(--ink)}
.journey-controls button[aria-selected="true"] span{color:var(--red)}
.journey-controls button[aria-selected="true"]::before{transform:scaleX(1)}
.journey-controls button:focus-visible{outline:2px solid #ff756d;outline-offset:5px;z-index:1}
.journey-panel{display:grid;grid-template-columns:1.2fr 1fr;column-gap:clamp(2rem,8vw,8rem);row-gap:2.5rem;padding:clamp(1.5rem,3.6vw,3.5rem);background:var(--paper);color:var(--ink)}
.journey-panel[hidden]{display:none}
.journey-panel+.journey-panel{margin-top:1.5rem}
.journey-ready .journey-panel{margin-top:0;min-height:420px}
.journey-purpose h3{font-size:clamp(2rem,3.2vw,3rem);line-height:1.08;letter-spacing:-.03em;margin:0 0 1.2rem}
.journey-stage{display:block;font-size:.85rem;color:var(--muted);margin-bottom:1.25rem}
.journey-ready .journey-stage{display:none}
.journey-purpose>p{max-width:40ch;line-height:1.7;margin:0;color:var(--muted)}
.journey-exchange{margin:0;align-self:start}
.journey-exchange>div+div{border-top:1px solid var(--line);margin-top:1.4rem;padding-top:1.4rem}
.journey-exchange dt{font-weight:600;margin-bottom:.5rem}
.journey-exchange dd{margin:0;color:var(--muted);line-height:1.65;max-width:46ch}
.journey-outcome{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2rem,8vw,8rem);border-top:1px solid var(--line);padding-top:1.3rem;margin:0;align-self:end;line-height:1.5}
.journey-outcome>span{color:var(--red);font-weight:600}
.journey-signoff{color:var(--light-muted);margin:1.5rem 0 0;font-size:.9rem}
.collaboration{background:var(--paper);display:grid;grid-template-columns:1.2fr 1fr;column-gap:clamp(2rem,8vw,8rem);row-gap:4rem}
.collaboration-heading>p{max-width:38ch;margin:1.8rem 0 0;color:var(--muted);font-size:1.1rem;line-height:1.7}
.collaboration .collaboration-start h3{font:700 clamp(1.7rem,2.5vw,2.5rem)/1.15 var(--font-reading);letter-spacing:-.03em;margin:0 0 1.5rem}
.collaboration-start>p{max-width:48ch;margin:0 0 1.25rem;line-height:1.7;color:var(--muted)}
.collaboration-start .button{margin-top:1rem}
.collaboration-agreement{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;border-top:1px solid var(--line);padding-top:1.8rem}
.collaboration-agreement p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.65;max-width:32ch}
.collaboration-agreement strong{display:block;color:var(--ink);font-family:inherit;font-weight:600;margin-bottom:.3rem}
@media(hover:hover){.journey-controls button:hover:not([aria-selected="true"]){background:#27282c}}
@media(max-width:900px){
 .journey-intro,.collaboration{grid-template-columns:1fr;gap:2.5rem}
 .journey-intro{margin-bottom:2.5rem}.journey-intro>p{max-width:52ch}
 .journey-controls button{padding:1rem;gap:.65rem;font-size:1rem}
 .journey-panel{column-gap:2rem}.journey-outcome{gap:2rem}
 .collaboration-heading>p{max-width:52ch}.collaboration-start{max-width:620px}
}
@media(max-width:600px){
 .journey-intro h2,.collaboration-heading h2{font-size:clamp(2.35rem,9.4vw,3.5rem)}
 .journey-controls button{flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:102px;gap:.5rem;padding:.9rem .65rem;font-size:.9rem}
 .journey-controls:not([hidden]){grid-template-columns:1fr 1.25fr 1fr}
 .journey-panel{grid-template-columns:1fr;gap:1.75rem;padding:1.5rem}
 .journey-ready .journey-panel{min-height:600px}
 .journey-purpose h3{font-size:2rem}
 .journey-outcome{grid-template-columns:1fr;gap:.5rem}
 .journey-signoff{line-height:1.6;max-width:35ch}
 .collaboration-agreement{grid-template-columns:1fr;gap:1.5rem}
 .collaboration-agreement p{max-width:38ch}
 .collaboration-start .button{width:100%}
}
@media(prefers-reduced-motion:reduce){.journey-controls button::before{transition:none}}
.journey-controls button{-webkit-tap-highlight-color:transparent}
@media(max-width:360px){
 .journey-controls:not([hidden]){grid-template-columns:auto minmax(0,1fr) auto}
 .journey-controls button{padding-inline:.45rem;min-width:0}
}

/* conversation.css */
/* Phase 05: a direct conversation, from David's introduction to the last link.
   All rules belong to these four surfaces. */
.human{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(3rem,8vw,8rem);align-items:start;background:var(--ink);color:var(--paper)}
.human h2{font-size:clamp(3.8rem,7.4vw,6rem);line-height:1.04;margin:0 0 1.6rem;letter-spacing:-.035em}
.human h2 span{color:#ff756d}
.human-heading>p{font-size:.9375rem;line-height:1.65;color:var(--light-muted);margin-bottom:2.5rem}
.human-heading>img{display:block;filter:brightness(0) invert(1)}
.human-letter{padding-top:.5rem}
.human-letter h3{font-size:clamp(1.75rem,2.8vw,2.65rem);line-height:1.18;letter-spacing:-.025em;margin-bottom:1.75rem}
.human-letter p{max-width:52ch;color:var(--light-muted);font-size:1rem;line-height:1.8;margin-bottom:1.5rem}
.human-letter .human-voice{font-size:clamp(1.125rem,1.5vw,1.375rem);line-height:1.7;color:var(--paper)}
.human-link{display:inline-flex;align-items:center;gap:2rem;min-height:48px;margin-top:.5rem;border-bottom:1px solid #ff756d;font-weight:600}
.human-link:hover{color:#ff756d}.human a:focus-visible{outline-color:#ff756d}
.conversation-faq{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(3rem,7vw,7rem);background:var(--paper)}
.conversation-faq .section-intro{display:block;margin:0}
.conversation-faq h2{font-size:clamp(2.65rem,4.5vw,4.25rem);line-height:1.07;margin-bottom:1.75rem}
.conversation-faq .section-intro>p{max-width:32ch;color:var(--muted)}
.conversation-faq details{border-bottom-color:var(--line)}
.conversation-faq summary{position:relative;gap:1.75rem;padding:1.5rem 0;min-height:90px;font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.5}
.conversation-faq summary::after{content:"";width:14px;height:14px;flex:none;background:linear-gradient(var(--red),var(--red)) center/100% 1px no-repeat,linear-gradient(var(--red),var(--red)) center/1px 100% no-repeat;transition:transform 200ms cubic-bezier(.16,1,.3,1)}
.conversation-faq details[open] summary::after{content:"";transform:rotate(45deg)}
.conversation-faq summary:hover,.conversation-faq details[open] summary{color:var(--red)}
.conversation-faq details p{margin:0;padding:0 2.5rem 1.75rem 0;max-width:65ch;line-height:1.8;font-size:1rem}
.conversation-contact{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(3rem,8vw,8rem);align-items:start;row-gap:0}
.conversation-contact .contact-copy{grid-column:1;grid-row:1}.conversation-contact .contact-followup{grid-column:1;grid-row:2}.conversation-contact form{grid-column:2;grid-row:1 / 3}
.conversation-contact h2{font-size:clamp(3rem,5.7vw,5.25rem);line-height:1.05;margin-bottom:1.75rem}
.conversation-contact .contact-copy>p{max-width:43ch;color:var(--muted);font-size:1.0625rem}
.contact-next-title{font-size:1rem;margin:2.5rem 0 .75rem}
.conversation-contact .next-steps{margin:0 0 1.5rem;border:0}
.conversation-contact .next-steps li{padding:.9rem 0;grid-template-columns:20px 1fr;gap:.75rem;border:0}
.conversation-contact .next-steps li>span{width:auto;height:auto;display:block;border:0;color:var(--red);font-size:.875rem;padding-top:.1rem}
.conversation-contact .next-steps p{color:var(--muted);font-size:.9375rem;max-width:40ch}
.conversation-contact .next-steps strong{color:var(--ink);margin-bottom:.2rem}
.conversation-contact .contact-alternative a{overflow-wrap:anywhere;display:table;padding-block:.65rem;line-height:1.5}
.conversation-contact form{max-width:none;padding-top:1.5rem;border-top:1px solid var(--red);min-width:0}
.conversation-contact form h3{font-size:1.5rem;line-height:1.3;letter-spacing:-.02em;margin:0 0 .5rem}
.form-required{font-size:.875rem;color:var(--muted);margin-bottom:2rem}
.conversation-contact label{font-size:.9375rem;line-height:1.5;letter-spacing:0;text-transform:none;margin:0 0 .45rem}
.contact-field,.conversation-contact .project-field{margin:0 0 1.4rem}
.conversation-contact input,.conversation-contact textarea{background:var(--paper);padding:.85rem 1rem;border:1px solid #85888f;min-height:52px}
.conversation-contact textarea{min-height:160px;line-height:1.6}
.conversation-contact input:focus,.conversation-contact textarea:focus{border:1px solid var(--red);outline:2px solid var(--red);outline-offset:2px}
.conversation-contact input::placeholder,.conversation-contact textarea::placeholder{color:var(--muted)}
.conversation-contact .field-help{font-size:.875rem;line-height:1.6;margin:.25rem 0 .75rem}
.conversation-contact [aria-invalid="true"]{border-color:var(--red)}
.field-error{font-size:.875rem;line-height:1.5;color:var(--red);margin:.5rem 0 0}
.conversation-contact button{background:var(--red);min-height:58px}
.conversation-contact button:hover{background:var(--red-dark)}
.conversation-contact button:disabled{opacity:1;background:#5f6269;cursor:wait}
.conversation-contact .form-note{min-height:2.8em;margin-bottom:1rem;overflow-wrap:anywhere}
.conversation-contact .form-note a{text-decoration:underline}
.conversation-contact .privacy-note{font-size:.8125rem;margin-bottom:0;max-width:65ch}
.conversation-footer{background:#fff;align-items:center;padding-top:2rem;padding-bottom:2rem;grid-template-columns:1fr 1.2fr 1fr}
.conversation-footer .brand{gap:.6rem;align-items:flex-start}.conversation-footer .brand img{width:190px;height:auto;max-width:100%}
.conversation-footer nav{justify-content:center;gap:.25rem 1.5rem}.conversation-footer nav a:hover{color:var(--red)}
.conversation-footer p{overflow-wrap:anywhere}
@media(max-width:1000px){
 .human{gap:3rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
 .conversation-faq{grid-template-columns:1fr;gap:2.5rem}.conversation-faq .section-intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:3rem;align-items:end}.conversation-faq h2{margin:0}
 .conversation-contact{grid-template-columns:1fr;gap:3rem}.conversation-contact .contact-copy,.conversation-contact .contact-followup,.conversation-contact form{grid-column:auto;grid-row:auto}.conversation-contact .contact-followup{grid-row:3}.conversation-contact .contact-copy{max-width:640px}.conversation-contact form{max-width:720px;width:100%}
 .conversation-footer{grid-template-columns:1fr 1fr}.conversation-footer nav{justify-content:flex-end}.conversation-footer p{grid-column:1/-1;text-align:left}
}
@media(max-width:600px){
 .human{grid-template-columns:1fr;gap:2.5rem}.human-heading{position:relative;padding-right:4rem}.human h2{font-size:clamp(3.5rem,15vw,5rem)}.human-heading>p{font-size:.875rem;margin:0}.human-heading>img{position:absolute;right:0;bottom:4px;width:48px;height:48px}
 .human-letter{padding-top:2rem;border-top:1px solid var(--line-light)}.human-letter h3{font-size:1.875rem}.human-letter p{font-size:1rem}.human-letter .human-voice{font-size:1.125rem}
 .conversation-faq .section-intro{display:block}.conversation-faq h2{font-size:2.65rem;margin-bottom:1.5rem}.conversation-faq summary{min-height:84px;padding:1.25rem 0;gap:1.25rem}.conversation-faq details p{padding-right:0}
 .conversation-contact{display:flex;flex-direction:column;gap:0}.conversation-contact .contact-copy{display:block}.conversation-contact form{order:1;margin-top:2.5rem}.contact-followup{order:2;margin-top:1rem;width:100%}.conversation-contact .contact-copy>p{margin-bottom:0}.conversation-contact h2{font-size:clamp(2.7rem,12vw,4rem)}.conversation-contact .contact-copy>p{font-size:1rem}
 .conversation-footer{grid-template-columns:1fr;gap:1.5rem}.conversation-footer nav{justify-content:flex-start;margin:0}.conversation-footer p{grid-column:auto}.conversation-footer .brand img{width:180px}
}
@media(prefers-reduced-motion:reduce){.conversation-faq summary::after{transition:none}}

.human h2,.conversation-faq h2,.conversation-contact h2{overflow-wrap:anywhere}

/* typography.css */
@font-face{font-family:Manrope;font-style:normal;font-weight:500 800;font-display:block;src:url(assets/fonts/manrope-latin.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:block;src:url(assets/fonts/editorial-3.ttf) format('truetype')}
:root{--font-display:'Instrument Serif',Georgia,serif;--font-reading:Manrope,Arial,sans-serif;--font-utility:var(--font-reading)}
body{font-family:var(--font-reading);font-size:1rem;font-weight:500;line-height:1.65}
h1,h2{font-family:var(--font-display);font-weight:400;letter-spacing:-.025em}
h3,h4{font-family:var(--font-reading);font-weight:600}
em,i,cite,address,.about-note figcaption strong{font-style:normal}
.signature-copy h1{font-weight:400;font-size:clamp(3.25rem,6.8vw,6rem);line-height:1.02;letter-spacing:-.025em}
.signature-copy h1 span{font-style:normal}
.hero h1,.section-intro h2,.about h2,.contact h2,.case-hero h1,.not-found h1{line-height:1.06}
.signature-lead{font-size:1.0625rem;line-height:1.7;max-width:58ch}
.work-summary,.collaboration-agreement p,.conversation-contact .next-steps p{font-size:1rem}
.contact input,.contact textarea{font-family:var(--font-reading);font-size:1rem}
.trust-band strong{font-family:var(--font-reading);font-weight:700}
@media(max-width:760px){.signature-copy h1{font-size:clamp(3rem,11.5vw,4.6rem)}.signature-lead{font-size:1rem}}

/* Keep the complete opening scene within shorter browser windows. */
@media(max-height:740px){
 .signature-copy h1{font-size:clamp(2.5rem,min(6.8vw,9svh),6rem)}
 .signature-page .signature-copy h1{margin-bottom:.75rem}
 .signature-offer{margin-bottom:.75rem}
 .signature-lead{margin-bottom:1rem}
 .signature-human{margin-top:1rem}
 .gaze-experiment{margin-top:.5rem}
}
@media(max-width:760px) and (max-height:740px){
 .signature-copy h1{font-size:clamp(2.5rem,min(11.5vw,8svh),4.6rem)}
}

/* mineral.css */
/* The hero owns moving light. Every surface below uses fixed material and lighting. */
.signature-page{--mineral-light:#e9e9e6;--mineral-mid:#d6d7d5;--mineral-dark:#17181b;--mineral-grain:url(assets/materials/basalt.jpg)}
.signature-page main>section:not(.signature-hero){isolation:isolate}
.signature-page .trust-band{background:#d6d7d5;background-image:linear-gradient(180deg,rgba(255,255,255,.36),rgba(255,255,255,0));border-bottom:1px solid #b1b3b2;padding-block:2rem;gap:3rem}
.signature-page .trust-band p+p{border-left:1px solid #a9abaa;padding-left:2rem}
.signature-page .trust-band strong{font-weight:600}

/* Real work rests on dark stone, surrounded by pale mineral space. */
.signature-page .work{background-color:#efefed;padding-block:clamp(5rem,9vw,9rem)}
.signature-page .work>.section-intro{grid-template-columns:1.2fr 1fr;gap:clamp(2rem,6vw,6rem);margin-bottom:clamp(3rem,5vw,5rem)}
.signature-page .work>.section-intro h2{font-size:clamp(2.8rem,5.2vw,5rem);line-height:1.04}
.signature-page .work>.section-intro p{max-width:42ch;color:#50545a}
.signature-page .work-grid{gap:clamp(2rem,5vw,5rem)}
.signature-page .work-project:nth-child(2){margin-top:4.5rem}
.signature-page .work-preview{position:relative;padding:clamp(.6rem,1.2vw,1.2rem);background:#232427 var(--mineral-grain) center/700px;background-blend-mode:multiply;box-shadow:0 16px 24px -16px rgba(16,17,20,.5)}
.signature-page .work-preview img{transition:transform 300ms cubic-bezier(.16,1,.3,1)}
.signature-page .work-project h3{font-size:clamp(1.65rem,2.5vw,2.4rem);font-weight:600}
.signature-page .work-sector{margin-top:1.8rem;color:#55595f}
.signature-page .work-case-link{border-bottom-color:#a8aaa9;position:relative;color:#101114}
.signature-page .work-case-link::after{content:"";width:9px;height:9px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);margin-right:4px}
.signature-page .work-case-link:hover{color:#b32219;border-bottom-color:#b32219}

/* A pale working surface inset into the dark mineral room. */
.signature-page .journey{padding-block:clamp(5rem,9vw,9rem)}
.signature-page .journey-intro h2{font-size:clamp(2.8rem,5.6vw,5.25rem)}
.signature-page .journey-intro>p{color:#c9cbd0}
.signature-page .journey-controls button{border-top-color:#65676a}
.signature-page .journey-controls button[aria-selected="true"]{background:#e9e9e6}
.signature-page .journey-controls button::before{height:2px}
.signature-page .journey-panel{padding:clamp(1.5rem,4vw,4rem)}
.signature-page .journey-purpose h3{font-family:var(--font-display);font-weight:400;font-size:clamp(2.3rem,3.6vw,3.5rem);line-height:1.08}
.signature-page .journey-exchange dt{color:#101114}
.signature-page .journey-outcome{border-top-color:#afb1af}
.signature-page .journey-signoff{margin-top:2rem}

/* Quiet, expansive stone surfaces for explanation and reading. */
.signature-page .collaboration{background-color:#dedfdd;padding-block:clamp(5rem,9vw,9rem)}
.signature-page .collaboration-heading h2{font-size:clamp(2.8rem,5.6vw,5.25rem)}
.signature-page .collaboration-start{padding:clamp(1.5rem,3vw,3rem);background:rgba(250,250,248,.62);border-top:1px solid #aaaead}
.signature-page .collaboration .collaboration-start h3{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,3vw,3rem);line-height:1.08}
.signature-page .collaboration-start .button{background:transparent;border-color:#707371;color:#101114;font-size:.875rem;min-height:48px}
.signature-page .collaboration-start .button:hover{color:#b32219;border-color:#b32219}
.signature-page .collaboration-agreement{border-top-color:#a7aaa7;padding-top:2.25rem;gap:3rem}
.signature-page .collaboration-agreement strong{margin-bottom:.65rem}

/* David's voice sits beside the most tactile surface, under fixed grazing light. */
.signature-page .human{padding-block:clamp(5rem,9vw,9rem)}
.signature-page .human-heading{padding-block:1rem}
.signature-page .human h2{font-size:clamp(3.8rem,7.4vw,6rem)}
.signature-page .human-letter{border-top:1px solid #6b6c6e;padding-top:2rem}
.signature-page .human-letter h3{font-family:var(--font-display);font-weight:400;font-size:clamp(2.4rem,4vw,3.8rem)}
.signature-page .human-letter p{color:#c8cbd1}
.signature-page .human-letter .human-voice{color:#f3f4f6}
.signature-page .human-link{border-bottom-color:#ff756d}
.signature-page .conversation-faq{background-color:#eeefec;padding-block:clamp(5rem,9vw,9rem)}
.signature-page .conversation-faq h2{font-size:clamp(2.8rem,5.3vw,5rem)}
.signature-page .conversation-faq .faq-list{border-top-color:#969b98}
.signature-page .conversation-faq details{border-bottom-color:#b9bcb9}
.signature-page .conversation-faq summary{font-weight:500}
.signature-page .conversation-faq details[open]{background:rgba(255,255,255,.38)}

/* One luminous place to write, framed by the same dark material. */
.signature-page .conversation-contact{padding-block:clamp(5rem,9vw,9rem);column-gap:clamp(3rem,6vw,6rem)}
.signature-page .conversation-contact h2{font-size:clamp(3rem,5.7vw,5.25rem)}
.signature-page .conversation-contact .contact-copy>p,.signature-page .conversation-contact .next-steps p,.signature-page .contact-followup .contact-alternative{color:#c8cbd1}
.signature-page .conversation-contact .next-steps li>span{color:#ff756d}
.signature-page .conversation-contact .next-steps strong{color:#f3f4f6}
.signature-page .conversation-contact .contact-alternative a{color:#f3f4f6;text-decoration-color:#ff756d}
.signature-page .conversation-contact form{padding:clamp(1.5rem,3.2vw,3.2rem);border-top:2px solid #b32219}
.signature-page .conversation-contact input,.signature-page .conversation-contact textarea{background:#f8f8f5;border-color:#9a9e9b}
.signature-page .conversation-contact form h3{font-family:var(--font-display);font-weight:400;font-size:2.25rem;letter-spacing:-.025em}
.signature-page .conversation-contact button{background:transparent;border:1px solid #666b67;color:#101114;font-size:.9375rem}
.signature-page .conversation-contact button:hover{background:#b32219;border-color:#b32219;color:#fff}
.signature-page .conversation-contact button:disabled{background:#5f6269;border-color:#5f6269;color:#fff}
.signature-page .conversation-contact .form-note,.signature-page .conversation-contact .privacy-note{color:#555b56}
.signature-page .conversation-contact .form-note[data-state="error"]{color:#a90f0b}
.signature-page .conversation-contact .form-note[data-state="success"]{color:#24703a}
.signature-page .conversation-footer{border-top:1px solid #45474b;padding-block:2.5rem}
.signature-page .conversation-footer .brand img{filter:brightness(0) invert(1)}
.signature-page .conversation-footer .brand small{color:#bfc3c8}
.signature-page .conversation-footer a:hover{color:#ff756d}
.signature-page .conversation-footer :focus-visible,.signature-page .contact-followup :focus-visible{outline-color:#ff756d}

@media(max-width:1000px){
 .signature-page .work>.section-intro{grid-template-columns:1fr;gap:1.5rem}
 .signature-page .work>.section-intro p{max-width:58ch}
 .signature-page .work-project:nth-child(2){margin-top:2.5rem}
 .signature-page .conversation-contact form{max-width:none}
}
@media(max-width:760px){
 .signature-page .trust-band{gap:1rem;padding-block:1.75rem}
 .signature-page .trust-band p+p{border-left:0;border-top:1px solid #afb2af;padding:1rem 0 0}
 .signature-page .trust-band p{grid-template-columns:110px 1fr}
 .signature-page .work-grid{gap:3rem}
 .signature-page .collaboration-agreement{gap:1.75rem}
 .signature-page .human-heading{padding-block:0}
}
@media(max-width:600px){
 .signature-page .work-project:nth-child(2){margin-top:0}
 .signature-page .work-preview,.signature-page .work-preview img{max-height:none}
 .signature-page .work-sector{margin-top:1.25rem}
 .signature-page .journey-ready .journey-panel{min-height:0}
 .signature-page .collaboration-start{padding:1.5rem}
 .signature-page .conversation-contact form{padding:1.5rem}
 .signature-page .conversation-contact form h3{font-size:2rem}
}
@media(prefers-reduced-motion:reduce){.signature-page .work-preview img{transition:none}}

/* The header mark sits closer to the viewport edge; navigation keeps its alignment. */
.signature-page .site-header .brand-mark{transform:translateX(calc(16px - var(--pad)))}


/* carousel.css */
/* Shared columns keep the section heading, image, copy and controls aligned. */
.signature-page .work-carousel{--work-columns:minmax(0,min(55vw,76svh)) minmax(0,1fr);--work-gap:clamp(2rem,5vw,5rem);display:grid;grid-template-columns:var(--work-columns);column-gap:var(--work-gap);padding-block:clamp(1.5rem,4svh,3rem)}
.signature-page .work-carousel>.section-intro{grid-column:1/-1;display:grid;grid-template-columns:var(--work-columns);gap:var(--work-gap);align-items:center;margin:0 0 clamp(1.5rem,4svh,2.5rem)}
.signature-page .work-carousel>.section-intro h2{font-size:clamp(2.25rem,5.5svh,3.5rem);line-height:1.03;margin:0}
.signature-page .work-carousel>.section-intro p{font-size:.875rem;line-height:1.6;max-width:48ch;margin:0}
.signature-page .work-carousel .work-grid{grid-column:1/-1;grid-row:2;display:block;min-width:0}
.signature-page .work-carousel .work-project{display:grid;grid-template-columns:var(--work-columns);gap:var(--work-gap);align-items:center;margin:0}
.signature-page .work-carousel .work-project[hidden]{display:none}
.signature-page .work-carousel .work-preview{display:block;width:100%;height:auto;max-height:none;background:none;padding:0;box-shadow:none}
.signature-page .work-carousel .work-preview img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:16/9;object-fit:contain}
.signature-page .work-carousel .work-project-info{padding-bottom:76px}
.signature-page .work-carousel .work-sector{margin:0 0 .5rem;font-size:.75rem}
.signature-page .work-carousel .work-project h3{font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,4.4svh,2.75rem);line-height:1.08;margin:0 0 .85rem}
.signature-page .work-carousel .work-summary{font-size:.875rem;line-height:1.6;max-width:48ch;margin:0}
.signature-page .work-carousel .work-case-link{margin-top:1rem;min-height:44px}
.work-carousel-controls{grid-column:2;grid-row:2;align-self:end;justify-self:start;z-index:1;display:flex;align-items:center;gap:1rem;margin:0}
.work-carousel-controls[hidden]{display:none}
.work-carousel-count{font-size:.8125rem;font-variant-numeric:tabular-nums;letter-spacing:.08em;min-width:4.5rem;text-align:center;color:#50545a}
.work-carousel-controls button{display:grid;place-items:center;width:44px;height:44px;background:transparent;border:1px solid #969a97;color:#101114;cursor:pointer;transition:color .2s,border-color .2s;font-size:1.5rem}
.work-carousel-controls button:hover{color:#b32219;border-color:#b32219}
.work-carousel-controls button:focus-visible{outline:2px solid #b32219;outline-offset:4px}
.work-carousel-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){
 .signature-page .work-carousel{display:block;padding-block:1.5rem}
 .signature-page .work-carousel>.section-intro{grid-template-columns:1fr;gap:.75rem;margin-bottom:1.25rem}
 .signature-page .work-carousel>.section-intro h2{font-size:2.25rem}
 .signature-page .work-carousel>.section-intro p{font-size:.8125rem;line-height:1.5}
 .signature-page .work-carousel .work-project{grid-template-columns:1fr;gap:1rem}
 .signature-page .work-carousel .work-preview img{max-height:23svh;object-position:left}
 .signature-page .work-carousel .work-project-info{padding:0}
 .signature-page .work-carousel .work-sector{margin-bottom:.4rem;font-size:.7rem}
 .signature-page .work-carousel .work-project h3{font-size:1.85rem;margin-bottom:.5rem}
 .signature-page .work-carousel .work-summary{font-size:.8125rem;line-height:1.5}
 .signature-page .work-carousel .work-case-link{margin-top:.25rem}
 .work-carousel-controls{justify-content:flex-start;margin-top:.75rem}
}
@media(prefers-reduced-motion:reduce){.work-carousel-controls button{transition:none}}

@media(min-width:761px){.signature-page .work-carousel>.section-intro h2{grid-column:2}}

/* Bring the heading into the project row to remove the empty upper band. */
@media(min-width:761px){
 .signature-page .work-carousel{padding-block:clamp(1.25rem,3svh,2rem)}
 .signature-page .work-carousel>.section-intro{grid-column:2;grid-row:1;display:block;align-self:start;z-index:1;margin:0;padding-top:.6rem}
 .signature-page .work-carousel>.section-intro h2{font-size:clamp(1.7rem,2.8vw,2.65rem);white-space:nowrap}
 .signature-page .work-carousel .work-grid{grid-row:1}
 .signature-page .work-carousel .work-project-info{padding-top:5rem;padding-bottom:4.5rem}
 .signature-page .work-carousel .work-carousel-controls{grid-row:1}
}
@media(max-width:760px){.signature-page .work-carousel>.section-intro h2{font-size:clamp(1.5rem,6.5vw,2.25rem)}}

/* Quiet the material only beneath the reading column; the stone join is untouched. */
.signature-page .work-carousel .work-project-info{background:rgba(16,17,20,.3);box-shadow:0 0 0 .75rem rgba(16,17,20,.3)}
@media(min-width:761px){.signature-page .work-carousel>.section-intro h2{white-space:normal}.signature-page .work-carousel .work-project-info{padding-top:6.5rem}}

/* floor.css */
/* Final home surfaces and palette. Component geometry lives in its own sheet. */
.signature-page{--surface-dark:#17181b;--field-dark:#25262a;--accent-on-dark:#ff8c83;--border-on-dark:#85888f}
/* A demi-bullnose profile rolls the horizontal floor into the project wall. */
.signature-stage{--projects-shift:clamp(2rem,6vw,6rem);--stone-round:clamp(48px,5vw,72px);position:relative;isolation:isolate;overflow:hidden;background:#252527;--wall-stone:url(assets/materials/hero-stone-wall.jpg);--wall-shade:linear-gradient(110deg,rgba(12,13,16,.12),rgba(12,13,16,.38) 64%,rgba(12,13,16,.26))}
.signature-stage>.signature-hero,.signature-stage>.work{position:relative;z-index:1}
.signature-page .signature-stage>.work{isolation:isolate;background:var(--wall-shade),var(--wall-stone) center top/1536px;color:var(--paper);padding-block:calc((var(--stone-round) + 1.5rem + var(--projects-shift) + clamp(2.5rem,5vw,4rem))/2)}
/* One photograph crosses the boundary. Static fallback uses matching crops. */
.signature-stage .signature-art{height:150%}
.signature-stage.has-stone-scene>.signature-hero{background:transparent}
.signature-stage>.stone-scene{z-index:0}
.signature-page .signature-stage>.work{background-image:url(assets/hero/continuous-stone.webp);background-size:116% 300%;background-position:center bottom;background-repeat:no-repeat}
.signature-page .signature-stage.has-stone-scene>.work{background:transparent}
@media(max-width:760px){.signature-page .signature-stage>.work{background-size:180% 300%}}
.signature-page .signature-stage .work-preview{box-shadow:0 20px 30px -14px rgba(0,0,0,.72)}
.signature-stage .work h2,.signature-stage .work h3,.signature-page .signature-stage .work-case-link{color:var(--paper)}
.signature-page .signature-stage .work-sector,.signature-stage .work-summary,.signature-stage .work-carousel-count{color:var(--fog)}
.signature-page .signature-stage .work-case-link{border-bottom-color:#9d9ea3}
.signature-stage .work-carousel-controls button{color:var(--paper);border-color:#9d9ea3}
.signature-page .signature-stage .work-case-link:hover,.signature-stage .work-carousel-controls button:hover{color:#ff9b91;border-color:#ff9b91}
.signature-stage .work :focus-visible{outline-color:#ff9b91}

/* Solid surfaces cover the scene after the completed projects. */
.signature-stage>.journey,.signature-stage>.human{position:relative;z-index:1;isolation:isolate}
.signature-page .signature-stage>.journey{background:var(--paper);color:var(--ink);border-block:0}
.signature-page .signature-stage>.human{background:var(--surface-dark);color:var(--paper);border-block:0;padding-block:clamp(3rem,5vw,5rem)}
.signature-stage>.journey::before,.signature-stage>.human::before{display:none}

.signature-page .signature-stage>.journey{padding-top:calc(clamp(5rem,9vw,9rem) - var(--projects-shift))}

/* Paper surfaces let the black project stone remain the visual anchor. */
.signature-page>.site-header{--red:#c91c14;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--fog)}
.signature-page .brand-mark img,.signature-page .conversation-footer .brand img{filter:none}
.signature-page .human-heading>img{filter:brightness(0) invert(1)}
.signature-page .site-header nav a,.signature-page .header-cta{color:var(--ink)}
.signature-page .site-header .navigation-location{color:#5f6269}
.signature-page .site-header :focus-visible{outline-color:#c91c14}
.signature-page .journey{--light-muted:#5f6269;--line-light:#b8bbc1}
.signature-page .journey-intro>p,.signature-page .journey-signoff{color:#5f6269}
.signature-page .human-heading>p,.signature-page .human-letter p{color:var(--light-muted)}
.signature-page .journey-controls button{color:var(--ink);border-top-color:#b8bbc1}
.signature-page .journey-controls button span{color:#5f6269}
.signature-page .journey-controls button[aria-selected="true"],.signature-page .journey-panel{background:#fff;box-shadow:none}
.signature-page .journey-controls button[aria-selected="true"] span{color:#c91c14}
.signature-page .journey-controls button:hover:not([aria-selected="true"]){background:#e5e7eb}
.signature-page .human h2 span{color:var(--accent-on-dark)}
.signature-page .human-letter{border-top-color:#6b6c6e}
.signature-page .human-letter .human-voice{color:var(--paper)}
.signature-page .human-link{border-bottom-color:var(--accent-on-dark)}
.signature-page .human-link:hover{color:var(--accent-on-dark)}
.signature-page .conversation-faq{background:var(--paper)}
.signature-page .conversation-contact{background:#fff;color:var(--ink)}
.signature-page .conversation-contact .contact-copy>p,.signature-page .conversation-contact .next-steps p,.signature-page .contact-followup .contact-alternative{color:#5f6269}
.signature-page .conversation-contact .next-steps strong,.signature-page .conversation-contact .contact-alternative a{color:var(--ink)}
.signature-page .conversation-contact .next-steps li>span{color:#c91c14}
.signature-page .conversation-contact .contact-alternative a{text-decoration-color:#c91c14}
.signature-page .conversation-contact form{--muted:#c8cbd1;--red:var(--accent-on-dark);background:var(--surface-dark);color:var(--paper);border-top-color:var(--accent-on-dark);box-shadow:none;color-scheme:dark}
.signature-page .conversation-contact input,.signature-page .conversation-contact textarea{background:var(--field-dark);color:var(--paper);border-color:var(--border-on-dark);caret-color:var(--accent-on-dark)}
.signature-page .conversation-contact .form-note,.signature-page .conversation-contact .privacy-note,.signature-page .conversation-contact .field-help{color:var(--light-muted)}
.signature-page .conversation-contact .form-note[data-state="error"]{color:var(--accent-on-dark)}
.signature-page .conversation-contact .form-note[data-state="success"]{color:#8bd9a0}
.signature-page .conversation-contact button{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.signature-page .conversation-contact button:hover{background:#fff;color:var(--ink);border-color:#fff}
.signature-page .conversation-contact button:disabled{background:#5f6269;color:#fff;border-color:var(--border-on-dark)}
.signature-page .conversation-footer{background:var(--paper);color:var(--ink);border-top:1px solid var(--fog)}
.signature-page .conversation-footer .brand small{color:#5f6269}
.signature-page .conversation-footer a:hover{color:#c91c14}
.signature-page .journey :focus-visible,.signature-page .conversation-contact :focus-visible,.signature-page .conversation-footer :focus-visible{outline-color:#c91c14}
.signature-page .human :focus-visible,.signature-page .conversation-contact form :focus-visible{outline-color:var(--accent-on-dark)}
@media(max-width:760px){.signature-page .site-header nav{background:var(--paper)}.signature-page .navigation-location{color:#5f6269}}

/* Center the letter against the founder heading and signature. */
@media(min-width:761px){.signature-page .human-letter{align-self:center}}

/* Visible studio attribution and offer, alongside the preserved hero slogan. */
.signature-page .site-header .brand-full{width:154px;min-height:50px}
.signature-page .site-header .brand-full img{width:154px;height:auto}
.signature-page .signature-copy h1{margin-bottom:1rem}
.signature-offer{margin:0 auto 1.25rem;font-weight:700;color:var(--ink)}
@media(max-width:380px){.signature-page .site-header .brand-full,.signature-page .site-header .brand-full img{width:130px}}

/* Keep the approved unmarked transitions on the reading surfaces. */
.signature-page main>.journey::before,.signature-page main>.human::before,.signature-page main>.conversation-contact::before{display:none}

@media(max-width:760px) and (hover:none) and (pointer:coarse){.signature-page .signature-stage>.work{background-size:128% 300%}}

/* gaze-light.css */
.gaze-experiment { margin: 1.1rem auto 0; max-width: 36rem; text-align: center; }
.gaze-experiment button { min-height: 44px; padding: .5rem .7rem; border: 0; background: transparent; color: #4c2020; font: inherit; font-size: .8rem; text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.gaze-experiment p { margin: .25rem 0 0; font-size: .75rem; line-height: 1.5; color: #393b40; }
.gaze-experiment button:focus-visible, .gaze-setup button:focus-visible { outline: 2px solid #a6150f; outline-offset: 4px; }
.gaze-setup { box-sizing: border-box; width: min(34rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid #b8bbc1; border-radius: 12px; background: #f3f4f6; color: #101114; }
.gaze-setup::backdrop { background: rgb(16 17 20 / 75%); }
.gaze-setup h2 { margin: 1rem 0; font: 500 clamp(1.75rem, 5vw, 2.5rem)/1.1 var(--font-reading, Georgia, serif); }
.gaze-setup p { line-height: 1.6; font-size: .95rem; margin: 0 0 1rem; }
.gaze-setup .gaze-private { font-size: .8rem; color: #45474d; }
.gaze-setup button { font: inherit; min-height: 44px; cursor: pointer; }
.gaze-close { display: block; margin-left: auto; padding: .5rem; border: 0; color: #101114; background: transparent; text-decoration: underline; text-underline-offset: .25em; }
.gaze-start { padding: .8rem 1.1rem; border: 1px solid #a6150f; background: #a6150f; color: white; }
.gaze-start:disabled { opacity: .6; cursor: wait; }
.gaze-point { position: fixed; transform: translate(-50%, -50%); width: 52px; height: 52px; padding: 0; border: 2px solid white; border-radius: 50%; background: #a6150f; color: white; font-weight: 700 !important; touch-action: manipulation; }
.gaze-point:disabled { background: #101114; cursor: wait; }
.gaze-calibrating { overflow: hidden; }
.gaze-calibrating .gaze-setup { width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; border: 0; border-radius: 0; background: #f3f4f6; }
.gaze-calibrating .gaze-setup h2, .gaze-calibrating .gaze-private { display: none; }
.gaze-calibrating [data-gaze-message] { position: absolute; left: 12%; right: 12%; top: 58%; text-align: center; font-size: .85rem; }
.gaze-setup [hidden], .gaze-experiment [hidden] { display: none !important; }
