:root{--bg:#f6f2ea;--ink:#1e1c1a;--muted:#67615a;--line:#e3dccf;--accent:#b5583a;--white:#fffdf9}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font:400 17px/1.65 "Inter Tight",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:Fraunces,Georgia,serif;font-weight:400;letter-spacing:-.02em;line-height:1.06}
h1{font-size:clamp(42px,5vw,72px)}h1 i{color:var(--accent)}h2{font-size:clamp(30px,3.2vw,46px)}h3{font-size:23px}
.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(246,242,234,.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 Fraunces,Georgia,serif}
.mono{font:600 14px "Inter Tight",sans-serif;letter-spacing:.12em;background:var(--ink);color:var(--bg);padding:5px 9px;border-radius:3px}
.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(--ink);color:#fff;text-decoration:none;padding:10px 18px;border-radius:4px;font-weight:600;font-size:15px}
.call svg{width:16px;height:16px;fill:#e6a58c}
.hero{max-width:1280px;margin:0 auto;padding:clamp(50px,6vw,90px) clamp(20px,4vw,56px) 70px;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:center}
.lede{font-size:18.5px;color:var(--muted);margin:24px 0 32px;max-width:31em}
.ctas{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;padding:15px 26px;border-radius:4px;font:inherit;font-weight:600;border:0;cursor:pointer;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-1px);background:#9e4a2f}.link{font-weight:600;text-decoration:none;border-bottom:2px solid var(--accent)}
.strokes{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;height:clamp(320px,38vw,480px);align-items:start}
.strokes span{position:relative;display:block;height:var(--h);background:var(--c);border-radius:3px 3px 999px 999px;transform:scaleY(0);transform-origin:top;transition:transform 1.4s cubic-bezier(.6,0,.2,1) var(--d)}

.strokes em{position:absolute;left:50%;bottom:20px;writing-mode:vertical-rl;transform:translateX(-50%) rotate(180deg);white-space:nowrap;font:italic 400 14px Fraunces,serif;color:rgba(255,255,255,.88);opacity:0;transition:opacity .8s ease calc(var(--d) + 1.2s)}
.strokes span:nth-child(2) em,.strokes span:nth-child(5) em{color:rgba(30,28,26,.7)}
.ready .strokes span{transform:none}.ready .strokes em{opacity:1}
.facts{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,56px);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{padding:26px 20px 26px 0}.facts div+div{padding-left:20px;border-left:1px solid var(--line)}
.facts b{display:block;font:400 30px Fraunces,Georgia,serif}.facts span{font-size:14px;color:var(--muted)}
.services,.work,.story,.contact{max-width:1280px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0}
.head{max-width:700px;margin-bottom:44px}
.rows{display:grid;grid-template-columns:1fr 1fr;column-gap:56px}
.rows>div{display:grid;grid-template-columns:56px 1fr;column-gap:20px;padding:28px 0;border-top:1px solid var(--line)}
.chip{grid-row:span 2;width:56px;height:72px;background:var(--c);border-radius:3px;box-shadow:inset 0 -14px 0 rgba(0,0,0,.08)}
.rows p{color:var(--muted);font-size:16px;margin-top:6px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pair figure{background:var(--white);padding:10px 10px 14px;border:1px solid var(--line)}
.pair img{width:100%;aspect-ratio:530/331;object-fit:cover}
.pair figcaption{font:italic 400 15px Fraunces,serif;color:var(--muted);margin-top:10px}
blockquote{max-width:860px;margin:56px auto 0;text-align:center;font:400 clamp(22px,2.4vw,30px)/1.4 Fraunces,Georgia,serif}
blockquote cite{display:block;margin-top:14px;font:600 13px "Inter Tight",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-style:normal}
.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,90px)}
.story-copy p{color:var(--muted);margin-bottom:16px}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-bottom:clamp(90px,10vw,130px)}
.card{background:#3e5c86;color:#f6f2ea;padding:clamp(28px,4vw,48px);border-radius:4px}
.card .eyebrow{color:#f2c3a8}.card h2{margin-bottom:24px}
.card dl div{padding:13px 0;border-top:1px solid rgba(255,255,255,.2)}
.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);border-radius:4px}
.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:var(--accent);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:960px){.top nav{display:none}.call{margin-left:auto}.hero,.story,.contact,.rows{grid-template-columns:1fr}.facts{grid-template-columns:1fr 1fr}.facts div:nth-child(3){border-left:0;padding-left:0}.facts div:nth-child(n+3){border-top:1px solid var(--line)}.strokes{height:300px}}
@media (max-width:560px){.call span{display:none}.call{padding:11px}.row2,.pair{grid-template-columns:1fr}h1{font-size:40px}.strokes{height:240px;gap:6px}.strokes em{font-size:12px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
