::selection{background:var(--background);color:var(--ink)}
body{background:var(--paper);font-size:clamp(1rem,.94rem + .22vw,1.16rem);line-height:1.58;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--heading);font-weight:900;letter-spacing:-.055em;line-height:.94;text-wrap:balance}
h1{font-size:var(--page-title-size);text-transform:uppercase}h2{font-size:clamp(2.25rem,5.8vw,5rem);text-transform:uppercase}h3{font-size:clamp(1.45rem,2.4vw,2rem)}
p{max-width:68ch}.site-header{position:relative;background:var(--header);border:0;color:var(--header-ink)}
.utility{max-width:none;padding:.48rem max(1rem,calc((100vw - var(--content))/2 + 1.5rem));background:var(--background);color:var(--ink);border:0;font-weight:900;letter-spacing:.11em}.utility a{color:var(--ink);font-weight:900}
.masthead{padding:1.1rem 1.5rem}.brand{color:var(--header-ink)!important}.brand-mark{width:3.2rem;border:2px solid var(--background);border-radius:0;background:var(--background);color:var(--ink);font-family:var(--heading);font-weight:900;transform:rotate(-5deg)}
.brand strong{font-size:clamp(1.45rem,2.4vw,2.2rem);letter-spacing:-.07em;text-transform:uppercase}.brand small{color:color-mix(in srgb,var(--header-ink) 68%,transparent);letter-spacing:.06em;text-transform:uppercase}
.masthead nav a{position:relative;font-weight:900;text-transform:uppercase;letter-spacing:.02em}.masthead nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-.3rem;height:.25rem;background:var(--background);transition:right .18s ease}.masthead nav a:hover::after,.masthead nav a:focus-visible::after{right:0}
.quote-link{padding:.65rem .9rem;background:var(--accent);color:#fff!important;font-weight:900;text-transform:uppercase;text-decoration:none;transform:rotate(1deg)}
main{max-width:var(--content);min-height:70vh;padding:clamp(2.5rem,6vw,6rem) 1.5rem 8rem;background:var(--paper)}
.hero{position:relative;max-width:none;min-height:min(73vh,52rem);padding:clamp(2rem,7vw,6rem) 0;justify-content:center}.hero::after{content:"LOCAL / VIVID / YOURS";position:absolute;right:-1.5rem;bottom:1rem;padding:.4rem .8rem;background:var(--gold);color:#fff;font-weight:900;font-size:clamp(.72rem,1.6vw,1rem);letter-spacing:.16em;transform:rotate(-3deg)}
.hero h1{max-width:12ch;margin:.08em 0;color:var(--ink)}.hero p{font-size:clamp(1.15rem,2vw,1.55rem);font-weight:650}.hero .eyebrow,.eyebrow{display:inline-block;width:max-content;margin-bottom:.6rem;padding:.25rem .5rem;background:var(--background);color:var(--ink);font-weight:900;letter-spacing:.13em;transform:rotate(-1deg)}
.button,button{border:2px solid var(--ink);border-radius:0;background:var(--accent);box-shadow:.36rem .36rem 0 var(--ink);font-weight:900;text-transform:uppercase;letter-spacing:.035em;transition:transform .15s ease,box-shadow .15s ease}.button:hover,button:hover{transform:translate(.18rem,.18rem);box-shadow:.18rem .18rem 0 var(--ink)}
.page-header{position:relative;max-width:70rem;margin:2rem 0 5rem}.page-header::after{content:"";display:block;width:min(18rem,55vw);height:.7rem;margin-top:2rem;background:var(--background);transform:skewX(-20deg)}.lede{font-size:clamp(1.18rem,2.2vw,1.55rem);font-weight:650;color:var(--ink)}
.cards{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1rem,2.2vw,2rem)}.card{grid-column:span 4;position:relative;padding:0 0 1.4rem;background:transparent;border:0;border-bottom:.65rem solid var(--gold);box-shadow:none}.card:nth-child(3n+2){transform:translateY(2.5rem)}.card:nth-child(3n){border-color:var(--accent)}.card-image{display:block;overflow:hidden;margin:0 0 1.2rem;aspect-ratio:4/3;background:var(--ink)}.card-image img{width:100%;height:100%;object-fit:cover;filter:saturate(1.12) contrast(1.03);transition:transform .35s ease}.card:hover .card-image img{transform:scale(1.035)}.card h2,.card h3{margin:.3rem 0}.card a{color:var(--ink);text-decoration-thickness:.12em}.card p:last-child{color:var(--muted)}
.columns{gap:clamp(1.5rem,4vw,4rem)}.prose{font-size:1.08em}.prose h2,.prose h3{margin-top:1.5em}.prose table{width:100%;border-collapse:collapse}.prose th,.prose td{padding:.8rem;border:2px solid var(--ink);text-align:left}.prose th{background:var(--background)}
.gallery{gap:.75rem}.gallery figure:nth-child(even){transform:translateY(1.2rem)}.gallery img{width:100%;height:100%;object-fit:cover}.project-gallery{margin-bottom:5rem}.project-meta{font-weight:900;text-transform:uppercase;letter-spacing:.08em}.project-filter{display:flex;align-items:center;gap:1rem;margin:0 0 3rem;padding:1rem;border:2px solid var(--ink);background:#fff;width:max-content;max-width:100%}.project-filter label{font-weight:900;text-transform:uppercase}.project-filter select{padding:.6rem;border:2px solid var(--ink);background:var(--background);font:inherit;font-weight:800}
blockquote{position:relative;max-width:55rem;margin:4rem 0;padding:2rem clamp(1.5rem,5vw,4rem);background:var(--background);font-family:var(--heading);font-size:clamp(1.7rem,3vw,3rem);line-height:1.08;transform:rotate(-1deg)}
.stacked-form{max-width:70rem;padding:clamp(1.2rem,4vw,3.2rem);border:3px solid var(--ink);background:#fff;box-shadow:.8rem .8rem 0 var(--background)}.form-section{padding:1.2rem 0 2rem;border-bottom:2px solid var(--ink)}.form-section>h2{border:0;font-size:clamp(1.8rem,4vw,3.3rem)}.form-field input,.form-field textarea,.form-field select{border:2px solid var(--ink);border-radius:0;background:var(--paper)}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:4px solid color-mix(in srgb,var(--background) 75%,transparent);border-color:var(--ink)}.form-field textarea{min-height:8rem}.success{max-width:58rem;padding:clamp(2rem,6vw,5rem);border:3px solid var(--ink);background:var(--background);box-shadow:1rem 1rem 0 var(--gold)}
.quote-progress{margin:-1rem 0 1.2rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.quote-summary{position:sticky;top:1rem;z-index:2;float:right;width:min(18rem,34%);margin:0 0 1.5rem 2rem;padding:1rem;border:2px solid var(--ink);background:var(--background);box-shadow:.35rem .35rem 0 var(--gold)}.quote-summary strong{text-transform:uppercase}.quote-summary dl{margin:.6rem 0 0}.quote-summary dl:empty::after{content:"Your answers will appear here.";font-size:.88rem}.quote-summary div{display:grid;grid-template-columns:1fr 1.2fr;gap:.5rem;padding:.35rem 0;border-top:1px solid var(--ink)}.quote-summary dt{font-size:.72rem;font-weight:900;text-transform:uppercase}.quote-summary dd{margin:0;font-size:.85rem}.quote-step-controls{display:flex;gap:1rem;clear:both;margin:1.5rem 0}.quote-step-controls [data-quote-back]{background:#fff;color:var(--ink)}
.site-footer{max-width:none;padding:clamp(3rem,6vw,6rem) max(1.5rem,calc((100vw - var(--content))/2 + 1.5rem));background:var(--footer);border-top:.65rem solid var(--background);box-shadow:none;clip-path:none}.site-footer>div>strong{font-family:var(--heading);font-size:clamp(2.5rem,7vw,6rem);letter-spacing:-.07em;text-transform:uppercase}.site-footer a{text-underline-offset:.3em}
:focus-visible{outline:4px solid var(--background);outline-offset:4px}.site-footer :focus-visible,.utility :focus-visible{outline-color:var(--gold)}
@media(max-width:900px){.card{grid-column:span 6}.card:nth-child(3n+2){transform:none}.masthead{gap:1rem}.brand small{display:none}}
@media(max-width:760px){.utility{padding-inline:1rem}.masthead nav{order:3;width:100%}.masthead nav ul{background:var(--header);padding:1rem 0}.quote-link{margin-left:auto}.hero{min-height:60vh}.hero::after{right:0}.cards{display:grid;grid-template-columns:1fr}.card{grid-column:auto}.form-row,.form-row:has(>.form-column+ .form-column){grid-template-columns:1fr}.quote-summary{position:static;float:none;width:100%;margin:0 0 1.5rem}.site-footer{padding-inline:1.5rem}}
@media(max-width:420px){.brand-mark{width:2.65rem}.quote-link{font-size:.8rem;padding:.55rem}.hero h1{font-size:clamp(3rem,16vw,5rem)}.stacked-form{padding:1rem;box-shadow:.4rem .4rem 0 var(--background)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card-image img,.button,button,.masthead nav a::after{transition:none!important}.card:hover .card-image img{transform:none}}
