@font-face{font-family:Archivo;src:url('assets/archivo-variable.ttf') format('truetype');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{--paper:#f8f3eb;--ink:#322c28;--accent:#a34027;--soft:#edddce;--muted:#73665b;--line:#d8cabc;--font:Archivo,'Helvetica Neue',sans-serif;--body-size:18px;--label-size:16px;--section-title:clamp(42px,5.5vw,76px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
p,h1,h2,figure{margin:0}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--accent);color:var(--paper)}
a:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.shell{width:min(100% - 96px,1440px);margin-inline:auto}
.eyebrow{font-size:var(--label-size);text-transform:uppercase;font-weight:600;letter-spacing:.05em;line-height:1.5}
.skip{position:absolute;top:15px;left:16px;z-index:5;padding:13px 16px;background:var(--ink);color:var(--paper);transform:translateY(-160%);font-size:16px}
.skip:focus{transform:none}
.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.header{min-height:113px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.wordmark{font-size:35px;font-weight:800;letter-spacing:-.065em;line-height:1;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;min-height:48px}
.wordmark>span{color:var(--accent)}
.header nav{display:flex;align-items:center;gap:18px;font-size:var(--body-size);font-weight:600;flex-shrink:0}
.header nav>a{display:inline-flex;align-items:center;min-height:48px;padding:12px 16px;line-height:1.5}
.header nav>a:first-child:hover{color:var(--accent)}
.header .nav-contact{border:1px solid var(--ink);padding:12px 22px;border-radius:30px;gap:24px;white-space:nowrap;transition:background .2s,color .2s}
.nav-contact:hover{background:var(--ink);color:var(--paper)}
.hero{padding-top:36px}
.hero-heading{padding:43px 0 49px}
h1{font-size:clamp(64px,8.4vw,133px);line-height:.98;font-weight:830;letter-spacing:-.065em;font-stretch:104%;animation:greeting .75s ease-out both}
h1>span{color:var(--accent)}
.hero-photo{position:relative;overflow:hidden;border-radius:5px;isolation:isolate;animation:welcome .9s ease-out both}
.hero-photo img{width:100%;height:clamp(400px,40vw,630px);object-fit:cover;object-position:50% 48%}
.hero-photo::after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,transparent 50%,rgba(31,20,13,.45));pointer-events:none}
.hero-photo figcaption{position:absolute;left:37px;bottom:33px;z-index:1;font-weight:650;font-size:32px;line-height:1.15;letter-spacing:-.035em;color:#fff8ee}
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:center;padding-top:96px;padding-bottom:96px}
.about h2,.contact h2{font-size:var(--section-title);font-weight:780;letter-spacing:-.055em;line-height:1.06}
.about-intro{min-width:0;background:#f1e4d7;border-radius:5px;padding:48px}
.about h2{font-size:clamp(54px,5.5vw,76px)}
.about-name{position:relative;display:inline-block;color:var(--accent);padding-bottom:9px}
.about-name::after{content:'';position:absolute;left:0;right:-5px;bottom:3px;height:11px;border-bottom:2px solid currentColor;border-radius:50%;transform:rotate(-3deg);pointer-events:none}
.about-intro>p,.about-copy>p{font-size:var(--body-size);line-height:1.65;max-width:590px}
.about-intro>p{margin-top:28px;max-width:410px}
.about-copy{min-width:0;display:grid;gap:24px;align-content:center}
.contact{background:var(--soft);padding:76px 0 80px}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;margin-top:44px;align-items:start}
.contact-details>p{font-size:var(--body-size);line-height:1.65;max-width:450px}
.email{display:inline-flex;align-items:center;gap:16px;font-size:var(--body-size);font-weight:600;line-height:1.5;border-bottom:1px solid var(--ink);padding-bottom:8px;margin-top:28px;max-width:100%;transition:color .2s}
.email:hover{color:var(--accent)}
form,fieldset,.field{min-width:0}
fieldset{border:0;padding:0;margin:0}
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.field{margin-bottom:24px}
.field label{display:block;font-size:var(--label-size);font-weight:600;line-height:1.5;margin-bottom:10px}
.field input,.field textarea{display:block;width:100%;min-width:0;max-width:100%;border:1px solid #aa9583;border-radius:3px;padding:13px 14px;background:rgba(248,243,235,.6);color:var(--ink);font:inherit;font-size:var(--label-size);line-height:1.5}
.field textarea{resize:vertical;min-height:140px}
.form-note,.form-status{font-size:var(--label-size);line-height:1.6;max-width:480px}
.form-status{margin-top:16px}
.form-status:empty{display:none}
.form-status[data-state="error"]{color:var(--accent)}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:var(--accent);color:var(--paper);border:0;border-radius:32px;padding:16px 25px;font:inherit;font-size:var(--label-size);line-height:1.5;cursor:pointer;min-height:52px;margin-top:22px;transition:background .2s,transform .2s}
.button:hover{background:#84321f;transform:translateY(-2px)}
.button:disabled,.button:disabled:hover{background:#7c685a;cursor:not-allowed;transform:none}
@keyframes greeting{from{transform:translateY(9px);opacity:.7}to{transform:none;opacity:1}}
@keyframes welcome{from{transform:translateY(12px);opacity:.7}to{transform:none;opacity:1}}
@media(max-width:1100px){
  .shell{width:calc(100% - 64px)}
  .about,.contact-grid{gap:45px}
  .about-intro{padding:36px}
  .form-row{grid-template-columns:1fr;gap:0}
}
@media(max-width:750px){
  :root{--section-title:clamp(35px,9.2vw,54px)}
  .shell{width:calc(100% - 40px)}
  .header{min-height:96px;gap:18px}
  .wordmark{font-size:27px}
  .header nav{gap:0}
  .header nav>a:first-child{display:none}
  .header .nav-contact{padding:12px 16px;gap:12px}
  .hero{padding-top:18px}
  .hero-heading{padding:33px 0 29px}
  h1{font-size:clamp(42px,10.1vw,76px);letter-spacing:-.065em;line-height:1.02;font-stretch:100%}
  .hero-photo{border-radius:3px}
  .hero-photo img{height:420px;object-position:53% 50%}
  .hero-photo figcaption{left:20px;bottom:24px;font-size:28px;max-width:290px}
  .about{grid-template-columns:1fr;gap:30px;padding-top:56px;padding-bottom:60px}
  .about-intro{padding:32px 28px;border-radius:3px}
  .about-copy{gap:22px}
  .about-copy>p{max-width:590px}
  .contact{padding:52px 0 56px}
  .contact-grid{grid-template-columns:1fr;gap:36px;margin-top:30px}
  .contact-details>p{max-width:590px}
  .email{margin-top:24px;gap:12px}
  .field{margin-bottom:22px}
}
@media(max-width:360px){
  .header{gap:12px}
  .wordmark{font-size:26px}
  .header .nav-contact{padding:12px 14px;gap:10px}
  .nav-prefix{display:none}
  .nav-hello{text-transform:capitalize}
  h1{font-size:39px}
  .hero-photo img{height:360px;object-position:54% 50%}
  .hero-photo figcaption{font-size:26px;left:16px;bottom:21px}
  .about-intro{padding:28px 24px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .button:hover{transform:none}
}
