:root{--bg:#f8f5f0;--ink:#1d1a17;--muted:#655e56;--line:#e6dfd4;--accent:#f26a1b;--white:#fff}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font:400 17px/1.65 "Work Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}a{color:inherit}
h1,h2,h3{font-family:"Young Serif",Georgia,serif;font-weight:400;letter-spacing:-.015em;line-height:1.08}
h1{font-size:clamp(44px,5.4vw,76px)}h2{font-size:clamp(30px,3.2vw,46px)}h3{font-size:22px}
.eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:28px;padding:14px clamp(20px,4vw,56px);background:rgba(248,245,240,.9);backdrop-filter:blur(10px);transition:box-shadow .3s}
.top.scrolled{box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 21px "Young Serif",Georgia,serif}
.brand svg{width:34px;height:22px}.brand em{font-style:normal;color:var(--muted)}
.top nav{margin-left:auto;display:flex;gap:28px;font-size:15px}.top nav a{text-decoration:none;color:var(--muted)}.top nav a:hover{color:var(--ink)}
.call{display:flex;align-items:center;gap:8px;background:var(--accent);color:#fff;text-decoration:none;padding:10px 18px;border-radius:999px;font-weight:600;font-size:15px}
.call svg{width:16px;height:16px;fill:#fff}
.hero{max-width:1280px;margin:0 auto;padding:clamp(50px,6vw,90px) clamp(20px,4vw,56px) 70px;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,80px);align-items:center}
.lede{font-size:18.5px;color:var(--muted);margin:24px 0 32px;max-width:30em}
.ctas{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:15px 26px;border-radius:999px;font:inherit;font-weight:600;border:0;cursor:pointer;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-1px);background:var(--accent)}.link{font-weight:600;text-decoration:none;border-bottom:2px solid var(--accent)}
.wall{position:relative;aspect-ratio:1/0.86}
.f{position:absolute;filter:url(#brush);transform:scaleX(0);transform-origin:left;transition:transform 1.3s cubic-bezier(.6,0,.2,1)}
.f1{left:0;top:4%;width:46%;height:52%;background:#1f5c5a}
.f2{right:2%;top:0;width:40%;height:34%;background:#f26a1b;transition-delay:.25s}
.f3{left:20%;bottom:0;width:44%;height:30%;background:#7b3f61;transition-delay:.5s}
.ready .f{transform:none}
.canvas{position:absolute;right:0;top:24%;width:66%;background:#fff;padding:10px;box-shadow:0 30px 60px -30px rgba(29,26,23,.5);opacity:0;transform:translateY(14px);transition:opacity 1s ease .9s,transform 1s ease .9s}
.canvas img{aspect-ratio:960/647;object-fit:cover;width:100%}
.ready .canvas{opacity:1;transform:none}
.plaque{position:absolute;right:4%;bottom:2%;background:var(--white);font-size:13px;color:var(--muted);padding:10px 14px;border:1px solid var(--line);opacity:0;transition:opacity 1s ease 1.4s}
.plaque b{display:block;color:var(--ink);font-weight:600}.ready .plaque{opacity:1}
.palette{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,56px);display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.palette div{background:var(--white);border:1px solid var(--line);padding:16px 18px 18px;display:grid;grid-template-columns:44px 1fr;column-gap:14px;align-items:center}
.palette i{grid-row:span 2;width:44px;height:44px;border-radius:50%;background:var(--c)}
.palette b{font:400 20px "Young Serif",serif}.palette span{font-size:14px;color:var(--muted)}
.services,.work,.about,.contact{max-width:1280px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0}
.head{max-width:680px;margin-bottom:44px}
.labels{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.labels article{background:var(--white);border:1px solid var(--line);padding:0 0 24px;overflow:hidden;transition:transform .3s}
.labels article:hover{transform:translateY(-4px)}
.sw{display:block;height:110px;background:var(--c);margin-bottom:20px;filter:url(#brush);transform:scale(1.06)}
.labels h3,.labels p{padding:0 20px}.labels h3{font-size:19px}
.med{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 10px}
.labels p:last-child{font-size:15px;color:var(--muted)}
.frames{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto;gap:18px}
.frames figure{background:#fff;padding:10px;box-shadow:0 24px 50px -34px rgba(29,26,23,.5)}
.frames img{width:100%;height:100%;object-fit:cover}
.frames .a{grid-row:span 2}.frames .a img{aspect-ratio:auto}
.frames .b img,.frames .c img{aspect-ratio:16/10}
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,90px)}
.about-copy p{color:var(--muted);margin-bottom:16px}
.towns{border-top:1px solid var(--line);padding-top:18px;color:var(--ink)!important}
.towns span{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-right:8px}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-bottom:clamp(90px,10vw,130px)}
.card{background:#1f5c5a;color:#f8f5f0;padding:clamp(28px,4vw,48px)}
.card .eyebrow{color:#ffb489}.card h2{margin-bottom:24px}
.card dl div{padding:13px 0;border-top:1px solid rgba(255,255,255,.18)}
.card dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.card dd{font-size:17px;overflow-wrap:anywhere}.card a{text-decoration:none}
.form-wrap{background:var(--white);border:1px solid var(--line);padding:clamp(28px,4vw,44px)}
.form-wrap h3{margin-bottom:18px}
.quote label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:14px}
.quote input,.quote select,.quote textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;color:var(--ink);padding:12px 14px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}
.quote :focus{outline:2px solid var(--accent);outline-offset:1px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote .btn{width:100%}
.status{font-size:14px;color:#c4520f;margin-top:12px;min-height:1em}.hp{position:absolute;left:-9999px}
footer{padding:28px clamp(20px,4vw,56px);font-size:14px;color:var(--muted);text-align:center;border-top:1px solid var(--line)}footer a{text-decoration:none}
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}.js .reveal.in{opacity:1;transform:none}
@media (max-width:1100px){.labels{grid-template-columns:repeat(3,1fr)}}
@media (max-width:960px){.top nav{display:none}.call{margin-left:auto}.hero,.about,.contact{grid-template-columns:1fr}.palette{grid-template-columns:1fr 1fr}.labels{grid-template-columns:1fr 1fr}.frames{grid-template-columns:1fr}.frames .a{grid-row:auto}}
@media (max-width:560px){.brand em{display:none}.call span{display:none}.call{padding:11px}.row2,.palette,.labels{grid-template-columns:1fr}h1{font-size:44px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
