@font-face { font-family: "Bodoni Moda"; src: url("public/fonts/bodoni-moda-600.ttf") format("truetype"); font-weight: 600; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("public/fonts/dm-sans-400.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("public/fonts/dm-sans-600.ttf") format("truetype"); font-weight: 600; font-display: swap; }
@font-face { font-family: "DM Mono"; src: url("public/fonts/dm-mono-400.ttf") format("truetype"); font-weight: 400; font-display: swap; }

:root { --ink:#1d2926; --ink-muted:#52605a; --paper:#f1eadc; --paper-deep:#ded3bf; --clay:#a84d2d; --clay-bright:#c56237; --line:rgba(29,41,38,.2); --warm-line:rgba(241,234,220,.26); background:var(--paper); color:var(--ink); font-family:"DM Sans",sans-serif; font-synthesis:none; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--paper); margin:0; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--clay); color:var(--paper); }
:focus-visible { outline:3px solid var(--clay-bright); outline-offset:4px; }
::-webkit-scrollbar { width:11px; } ::-webkit-scrollbar-track { background:var(--paper-deep); } ::-webkit-scrollbar-thumb { background:var(--ink); border:3px solid var(--paper-deep); }

.site-header { align-items:center; background:var(--ink); border-bottom:1px solid var(--warm-line); color:var(--paper); display:flex; justify-content:space-between; padding:1rem clamp(1.25rem,5vw,5rem); position:sticky; top:0; z-index:5; }
.wordmark { font-family:"Bodoni Moda",Georgia,serif; font-size:1.35rem; font-weight:600; letter-spacing:-.035em; white-space:nowrap; }
.wordmark span { color:var(--clay-bright); font-size:.78em; }
.main-nav { display:flex; gap:clamp(1rem,2.5vw,2.5rem); }
.main-nav a,.menu-toggle { font-size:.74rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.main-nav a { opacity:.86; } .main-nav a:hover { color:var(--clay-bright); opacity:1; }
.menu-toggle { background:none; border:0; color:inherit; cursor:pointer; display:none; font-family:inherit; min-height:44px; padding:.5rem; }

.hero { background:var(--ink); color:var(--paper); display:grid; gap:clamp(2.5rem,7vw,7rem); grid-template-columns:minmax(0,1fr) minmax(320px,.9fr); padding:clamp(3.5rem,7vw,6.5rem) clamp(1.25rem,8vw,8rem) clamp(4rem,7vw,6rem); }
.hero-copy { align-self:center; max-width:41rem; }
.service-area { color:var(--clay-bright); font-family:"DM Mono",monospace; font-size:.69rem; letter-spacing:.075em; margin:0 0 1rem; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:"Bodoni Moda",Georgia,serif; font-weight:600; }
h1 { font-size:clamp(2.8rem,5.3vw,5.1rem); letter-spacing:-.035em; line-height:1; margin-bottom:1.35rem; max-width:12ch; }
.hero-intro { color:#d7d1c6; font-size:clamp(1.06rem,1.5vw,1.28rem); line-height:1.55; margin-bottom:1.7rem; max-width:47ch; }
.contact-actions { align-items:center; display:flex; flex-wrap:wrap; gap:1rem; }
.button { align-items:center; display:inline-flex; font-size:.76rem; font-weight:600; justify-content:center; letter-spacing:.065em; min-height:3.2rem; padding:.8rem 1.1rem; text-transform:uppercase; transition:background-color 180ms ease,color 180ms ease,transform 180ms ease; }
.button-primary { background:var(--clay); color:#fff8ed; } .button-primary:hover { background:var(--clay-bright); transform:translateY(-2px); }
.button-quiet { border-bottom:1px solid var(--clay-bright); color:var(--paper); padding-inline:.2rem; } .button-quiet:hover { color:var(--clay-bright); }
.project-note { color:#bbb6aa; font-size:.91rem; line-height:1.55; margin:1.5rem 0 0; max-width:48ch; }
.hero-proof { align-self:center; margin:0; max-width:34rem; }
.hero-proof img { display:block; height:auto; width:100%; }
.hero-proof figcaption { border-top:1px solid var(--warm-line); color:#d7d1c6; font-size:.83rem; margin-top:.7rem; padding-top:.7rem; }

.services,.about,.archive,.contact-panel { padding:clamp(3.75rem,6vw,6.5rem) clamp(1.25rem,8vw,8rem); }
.services { display:grid; gap:clamp(2rem,7vw,7rem); grid-template-columns:.76fr 1.24fr; }
.section-heading { max-width:33rem; }.section-heading h2,.about-copy h2,.archive-heading h2,.contact-panel h2 { font-size:clamp(2rem,3.6vw,3.45rem); letter-spacing:-.03em; line-height:1.03; margin-bottom:0; }
.service-list { border-top:1px solid var(--line); }.service-list article { border-bottom:1px solid var(--line); padding:1.45rem 0; }.service-list h3 { font-size:clamp(1.35rem,2vw,1.8rem); letter-spacing:-.025em; margin:0 0 .55rem; }.service-list p { color:var(--ink-muted); line-height:1.58; margin:0; max-width:55ch; }
.about { background:#d9cdb5; display:grid; gap:clamp(2.5rem,8vw,8rem); grid-template-columns:.75fr 1.25fr; }.about-name { align-self:start; border-top:1px solid var(--line); display:grid; gap:1rem; padding-top:.8rem; }.about-name p,.about-name span { font-family:"DM Mono",monospace; font-size:.68rem; letter-spacing:.065em; margin:0; text-transform:uppercase; }.about-name strong { font-family:"Bodoni Moda",Georgia,serif; font-size:clamp(2.5rem,4.5vw,4.7rem); letter-spacing:-.055em; line-height:.9; }.about-copy { align-self:center; max-width:43rem; }.about-copy p,.archive-heading > p:last-child,.contact-panel > div > p:last-child { color:#3f463d; font-size:1.06rem; line-height:1.6; margin:1.25rem 0 0; max-width:46ch; }.about-copy p + p { font-size:1rem; margin-top:.75rem; }.about-link { border-bottom:1px solid var(--clay); display:inline-block; font-size:.76rem; font-weight:600; letter-spacing:.07em; margin-top:1.4rem; padding-bottom:.35rem; text-transform:uppercase; }.about-link:hover { color:var(--clay); }
.archive { background:#c5b69b; display:grid; gap:clamp(2.5rem,7vw,7rem); grid-template-columns:.75fr 1.25fr; }.archive-heading { align-self:center; max-width:32rem; }.archive-photo { margin:0; }.archive-photo img { display:block; height:auto; max-width:100%; width:100%; }.archive-photo figcaption { background:#eee3d1; font-family:"DM Mono",monospace; font-size:.65rem; letter-spacing:.06em; padding:.8rem 1rem; text-transform:uppercase; }
.contact-panel { background:var(--clay); color:#fff6e9; display:grid; gap:clamp(2.5rem,8vw,8rem); grid-template-columns:1fr .9fr; }.contact-panel .service-area { color:#ffd4a2; }.contact-panel > div > p:last-child { color:#ffe3c1; }.contact-stack { align-self:center; border-top:1px solid rgba(255,246,233,.35); }.contact-link { align-items:baseline; border-bottom:1px solid rgba(255,246,233,.35); display:flex; gap:1rem; justify-content:space-between; padding:1rem 0; }.contact-link:hover { color:var(--ink); }.contact-link span { font-family:"DM Mono",monospace; font-size:.67rem; letter-spacing:.07em; text-transform:uppercase; }.contact-link strong { font-family:"DM Sans",sans-serif; font-size:clamp(1.1rem,1.7vw,1.5rem); font-variant-numeric:tabular-nums; font-weight:600; letter-spacing:0; text-align:right; }.contact-link-primary strong { color:#fff6e9; }
footer { align-items:center; background:var(--ink); color:#dcd2c2; display:flex; font-size:.74rem; gap:1rem; justify-content:space-between; padding:1.25rem clamp(1.25rem,5vw,5rem); } footer p { margin:0; } footer .wordmark { color:var(--paper); }

@media (max-width:760px) { .main-nav { background:var(--ink); border-bottom:1px solid var(--warm-line); display:none; flex-direction:column; gap:1.1rem; left:0; padding:1.25rem; position:absolute; right:0; top:100%; }.main-nav.is-open { display:flex; }.menu-toggle { display:block; }.hero,.services,.about,.archive,.contact-panel { grid-template-columns:1fr; }.hero { gap:2.5rem; padding-top:3.5rem; }.hero-proof { max-width:38rem; }.services,.about,.archive,.contact-panel { gap:2.5rem; }.about-name { max-width:26rem; }.contact-panel h2 { max-width:12ch; } footer { align-items:flex-start; flex-direction:column; gap:.7rem; } }
@media (max-width:430px) { .hero,.services,.about,.contact-panel { padding-block:3rem; }.archive { padding-block:3.5rem; }.contact-link { align-items:flex-start; flex-direction:column; gap:.25rem; }.contact-link strong { text-align:left; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; } }
