/* Contact form and legal reading surface — extension of the site's editorial system. */
button{appearance:none;-webkit-appearance:none;border-radius:0;color:inherit}
.case-header .case-close-button{display:inline-flex;align-items:center;gap:.6rem;min-height:2.75rem;padding:.4rem 0;font-size:.8rem}.case-header .case-close-button::first-letter{font-size:inherit}.case-header .case-close-arrow{display:block;position:relative;width:1rem;height:1rem}.case-close-arrow::before{position:absolute;top:50%;left:.05rem;width:.95rem;height:1px;background:currentColor;content:""}.case-close-arrow::after{position:absolute;top:calc(50% - .28rem);left:.05rem;width:.5rem;height:.5rem;border-bottom:1px solid currentColor;border-left:1px solid currentColor;content:"";transform:rotate(45deg)}.case-header .case-close-label{display:block}
@media (max-width:800px){.case-header .case-close-button{gap:.5rem;font-size:.78rem}.case-header .case-close-arrow,.case-header .case-close-label{display:block}}
.project-teaser{padding-bottom:clamp(3.5rem,7vw,6rem)}
.contact{padding-top:clamp(4rem,8vw,7rem)}
.footer-detailed .footer-top{min-height:0;padding-top:clamp(3rem,6vw,5.5rem);padding-bottom:clamp(2rem,4vw,3.5rem)}
@media (max-width:800px){.footer-detailed .footer-top{min-height:0;padding-top:3.5rem;padding-bottom:2.5rem}}
@media (max-width:380px){.legal-page .legal-heading h1{max-width:none;font-size:clamp(1.8rem,10vw,2.75rem);line-height:.88;letter-spacing:-.04em;overflow-wrap:normal;hyphens:none}}
 .project-dialog button:focus-visible{outline:0}.project-dialog .case-close-button:focus-visible{color:var(--teal)}.project-dialog .case-end button:focus-visible{color:var(--teal);border-bottom-color:currentColor}
@media (pointer:coarse){.project-dialog button:focus-visible{outline:0}.project-dialog .case-close-button:focus-visible{color:var(--teal)}.project-dialog .case-end button:focus-visible{color:var(--teal);border-bottom-color:currentColor}}
.nav-contact,.text-action-button,.case-contact{font:inherit}.nav-contact{border:0;background:transparent;cursor:pointer}.text-action-button{border:0;background:transparent;cursor:pointer}.contact-open-button{align-self:start;width:max-content;border:0;background:var(--ink);color:var(--paper);padding:1rem 1.1rem;cursor:pointer;text-align:left;font-weight:600}.contact-open-button span,.request-submit span{margin-left:2.5rem}.contact-open-button:hover,.contact-open-button:focus-visible,.request-submit:hover,.request-submit:focus-visible{background:var(--teal)}.contact-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:clamp(1.5rem,4vw,4rem);background:var(--paper);color:var(--ink);overflow:auto}.contact-dialog::backdrop{background:rgb(16 17 18 / .48)}.contact-dialog-shell{width:min(100%,34rem);min-height:calc(100dvh - clamp(3rem,8vw,8rem));margin:0 auto;padding:clamp(3.5rem,10vh,7rem) 0 3rem}.dialog-close{position:fixed;z-index:2;top:clamp(1.25rem,2vw,2.5rem);right:clamp(1.25rem,2vw,2.5rem);width:3rem;height:3rem;border:0;background:transparent;cursor:pointer}.dialog-close>span:first-child::before,.dialog-close>span:first-child::after{position:absolute;left:50%;top:50%;width:2rem;height:1.5px;background:var(--ink);content:"";transform-origin:center}.dialog-close>span:first-child::before{transform:translate(-50%,-50%) rotate(45deg)}.dialog-close>span:first-child::after{transform:translate(-50%,-50%) rotate(-45deg)}.request-form{display:grid;gap:1.4rem}.request-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.request-field{display:grid;gap:.55rem;text-transform:uppercase;font-size:.79rem;font-weight:600;letter-spacing:-.015em}.request-field input,.request-field textarea{min-width:0;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:.55rem 0 .65rem;background:transparent;color:var(--ink);font-size:1rem;font-weight:400;letter-spacing:0;text-transform:none;outline:none;resize:vertical}.request-field input:focus-visible,.request-field textarea:focus-visible{border-bottom:2px solid var(--teal)}.request-field textarea{min-height:4.1rem}.request-field input::placeholder,.request-field textarea::placeholder{color:#767b7b;opacity:1}.consent-field{display:flex;gap:.75rem;align-items:flex-start;margin-top:.15rem;font-size:.9rem;line-height:1.25}.consent-field input{width:1.3rem;height:1.3rem;flex:0 0 auto;accent-color:var(--ink);margin:.02rem 0 0}.consent-field a{border-bottom:1px solid currentColor}.request-submit{justify-self:start;border:0;background:var(--ink);color:var(--paper);padding:.85rem 1.2rem;cursor:pointer;font-weight:600;text-transform:uppercase}.form-note{min-height:1.4em;margin:0;color:var(--muted);font-size:.85rem}.request-field input:user-invalid,.request-field textarea:user-invalid{border-bottom-color:#a52525}.contact-dialog[open]{animation:contact-dialog-in .36s var(--ease) both}.contact-dialog.is-closing{animation:contact-dialog-out .22s ease both}@keyframes contact-dialog-in{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}@keyframes contact-dialog-out{to{opacity:0;clip-path:inset(100% 0 0 0)}}.legal-page{min-height:100svh}.legal-header{position:static;border-bottom:1px solid var(--line)}.legal-header .nav-action{display:inline-flex}.legal-main{padding-top:clamp(5rem,12vw,10rem);padding-bottom:clamp(6rem,14vw,12rem)}.legal-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(16rem,.7fr);gap:4rem;padding-bottom:clamp(4rem,10vw,8rem);border-bottom:1px solid var(--ink)}.legal-heading h1{max-width:10ch;margin:0;font-size:clamp(3.3rem,8vw,8.5rem);font-weight:800;line-height:.82;letter-spacing:-.065em}.legal-heading p{align-self:end;max-width:28rem;margin:0;color:var(--muted);font-size:1rem}.legal-content{max-width:56rem;padding-top:clamp(4rem,9vw,7rem)}.legal-content h2{margin:clamp(3.5rem,7vw,6rem) 0 1.3rem;font-size:clamp(1.65rem,3vw,3rem);font-weight:600;line-height:.93;letter-spacing:-.055em}.legal-content h2:first-child{margin-top:0}.legal-content p,.legal-content li{max-width:72ch;font-size:1rem;line-height:1.5}.legal-content ul{margin:1.1rem 0;padding-left:1.2rem}.legal-content li+li{margin-top:.45rem}.legal-content a{color:var(--teal);border-bottom:1px solid currentColor}.legal-meta{margin-top:5rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.footer-detailed{display:block;border:0;padding:0;background:var(--ink);color:var(--paper);font-size:clamp(.85rem,1.15vw,1.15rem);line-height:1.4}.footer-top{min-height:clamp(15rem,27vw,25rem);padding-top:clamp(6rem,14vw,13rem);padding-bottom:clamp(3rem,6vw,5.5rem);display:grid;grid-template-columns:1fr 1.5fr;gap:2rem;align-items:end;font-weight:600;letter-spacing:-.025em}.footer-detailed .footer-email{display:grid;justify-self:start;gap:.2rem;color:var(--paper);border:0;font-size:clamp(1.1rem,2vw,2rem);font-weight:600;line-height:1;letter-spacing:-.05em}.footer-email span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.footer-bottom{padding-top:1.5rem;padding-bottom:2rem;border-top:1px solid rgb(255 255 255 / .42);display:grid;grid-template-columns:minmax(0,1.6fr) auto;gap:2rem;align-items:start}.footer-bottom p{max-width:62rem;margin:0;color:#d6d6d6}.footer-bottom a{color:var(--paper);border-bottom:1px solid currentColor;padding-bottom:.2rem;white-space:nowrap}@media (max-width:800px){.contact-open-button{margin-top:.5rem}.contact-dialog{padding:1.25rem}.contact-dialog-shell{min-height:calc(100dvh - 2.5rem);padding-top:5rem}.legal-heading{grid-template-columns:1fr;gap:2rem}.legal-header .site-nav{display:flex}.legal-header .site-nav a{display:none}.legal-header .site-nav .nav-action{display:inline-flex}.footer-top{min-height:14rem;grid-template-columns:1fr;gap:2rem}.footer-bottom{grid-template-columns:1fr;gap:1.5rem}.footer-bottom a{justify-self:start}}@media (prefers-reduced-motion:reduce){.contact-dialog[open],.contact-dialog.is-closing{animation:none}}
