:root{
  --lime:#efe7d8; --lime2:#e3d6bf; --tan:#c9a77c; --tan-d:#8a6a43;
  --char:#22201d; --char2:#33302b; --ink:#2b2722; --muted:#5e5547;
  --accent:#4f7d3d; --accent-d:#3d6330; --accent-l:#9ccc7f;
  --r:14px; --serif:"Fraunces",Georgia,serif; --sans:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);line-height:1.65;font-size:17px;
  background:var(--lime);
  background-image:
    radial-gradient(circle at 12% 18%,rgba(138,106,67,.07) 0 2px,transparent 3px),
    radial-gradient(circle at 70% 60%,rgba(138,106,67,.06) 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 40% 85%,rgba(138,106,67,.05) 0 2px,transparent 3px);
  background-size:140px 140px,90px 90px,200px 200px}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-d)}
.wrap{width:min(1140px,92%);margin:0 auto}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.5rem 1rem;z-index:100}
.skip:focus{left:1rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);line-height:1.15;color:var(--char)}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem);margin-bottom:2rem;max-width:20ch}
h3{font-size:1.25rem;margin-bottom:.5rem}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:600;color:var(--tan-d);margin-bottom:.8rem}
.eyebrow.light{color:var(--tan)}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:600;
  padding:.85rem 1.5rem;border-radius:999px;transition:transform .15s,background .15s;border:2px solid var(--accent)}
.btn:hover{background:var(--accent-d);border-color:var(--accent-d);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--char);border-color:var(--char)}
.btn-ghost:hover{background:var(--char);color:var(--lime);border-color:var(--char)}
.btn-sm{padding:.45rem 1.1rem;font-size:.92rem}
.btn-lg{font-size:clamp(1rem,2.6vw,1.25rem);padding:1rem 2rem;word-break:break-all}

/* top bar */
.topbar{position:sticky;top:0;z-index:50;background:rgba(239,231,216,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(34,32,29,.08)}
.bar{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--char);font-family:var(--serif);font-weight:700;font-size:1.15rem}
.brand em{font-style:normal;color:var(--tan-d);font-weight:500}
nav{display:flex;align-items:center;gap:1.4rem}
nav a{color:var(--char);text-decoration:none;font-weight:500;font-size:.95rem}
nav a:not(.btn):hover{color:var(--accent-d)}
nav .btn{color:#fff}

/* hero */
.hero{position:relative;padding:clamp(3rem,8vw,6.5rem) 0 clamp(4rem,9vw,7rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
h1{font-size:clamp(2.5rem,6.2vw,4.6rem);margin-bottom:1.3rem;letter-spacing:-.01em}
.hl{background:linear-gradient(transparent 62%,rgba(201,167,124,.55) 62%);padding:0 .1em}
.lede{font-size:1.15rem;color:var(--muted);max-width:36ch;margin-bottom:2rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem}
.tagline{margin-top:1.4rem;font-family:var(--serif);font-size:1.15rem;color:var(--muted)}
.tagline::before{content:"";display:inline-block;vertical-align:middle;margin-right:.7rem;width:34px;height:3px;background:var(--tan);border-radius:2px}
.tagline strong{color:var(--char)}
.hero-art{justify-self:center;width:100%;max-width:440px}
.hero-art img{display:block;width:100%;height:auto;aspect-ratio:2/3;max-height:78vh;object-fit:cover;object-position:50% 62%;border-radius:10px;box-shadow:0 30px 50px -18px rgba(34,32,29,.45)}
.strata{position:absolute;left:0;right:0;bottom:0;height:46px;
  background:
   linear-gradient(180deg,transparent 0 8px,rgba(138,106,67,.18) 8px 10px,transparent 10px 22px,rgba(138,106,67,.12) 22px 23px,transparent 23px),
   linear-gradient(90deg,var(--lime2),#d9c9ab,var(--lime2))}

/* services */
.services{padding:clamp(4rem,8vw,6rem) 0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.3rem}
.card{background:linear-gradient(145deg,#f8f3ea,#ebe0cc);border:1px solid rgba(138,106,67,.2);border-radius:var(--r);padding:1.7rem;
  box-shadow:0 1px 0 #fff inset,0 10px 24px -14px rgba(34,32,29,.3);transition:transform .2s}
.services .grid{grid-template-columns:repeat(3,1fr)}
.card:hover{transform:translateY(-4px)}
.card p{color:var(--muted);font-size:.98rem}
.ic{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;background:var(--char);color:var(--accent-l);font-size:1.35rem;margin-bottom:1rem}

/* process */
.process{background:var(--char);color:#e9e1d2;padding:clamp(4rem,8vw,6rem) 0;
  background-image:linear-gradient(135deg,rgba(255,255,255,.025) 25%,transparent 25% 50%,rgba(255,255,255,.025) 50% 75%,transparent 75%);background-size:28px 28px}
.process h2,.process h3{color:#f3ead9}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;counter-reset:s}
.steps li{border-top:3px solid var(--tan);padding-top:1.2rem}
.steps .n{font-family:var(--serif);font-size:2.4rem;color:var(--accent-l);display:block;line-height:1;margin-bottom:.6rem}
.steps p{color:#cfc6b6;font-size:.97rem}

/* work */
.work{padding:clamp(4rem,8vw,6rem) 0}
.work-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.proj{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:#f8f3ea;border-radius:var(--r);overflow:hidden;
  border:1px solid rgba(138,106,67,.22);box-shadow:0 14px 30px -18px rgba(34,32,29,.4);transition:transform .2s,box-shadow .2s}
.proj:hover{transform:translateY(-5px);box-shadow:0 22px 40px -18px rgba(34,32,29,.5)}
.slab{height:150px;display:grid;place-items:center;position:relative}
.slab span{font-family:var(--serif);font-weight:700;font-size:2rem;color:rgba(255,255,255,.92);text-shadow:0 2px 10px rgba(0,0,0,.25)}
.s1{background:linear-gradient(135deg,#7a5a3a,#b48a5a 60%,#d2b48a)}
.s2{background:radial-gradient(circle at 30% 40%,#efe6d4,#cdb995 60%,#a8916b)}
.s2 span{color:var(--char);text-shadow:none}
.s3{background:linear-gradient(120deg,#2b2a27,#3c3a35 45%,#4f7d3d 46%,#4f7d3d 60%,#c9a77c 61%)}
.proj-body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;flex:1}
.proj-body p{color:var(--muted);font-size:.97rem;flex:1}
.go{margin-top:1rem;font-weight:600;color:var(--accent-d);font-size:.92rem}

/* about */
.about{padding:clamp(3rem,7vw,5rem) 0;background:linear-gradient(180deg,transparent,rgba(201,167,124,.18))}
.about-grid{display:grid;grid-template-columns:200px 1fr;gap:3rem;align-items:center}
.about p{max-width:62ch;margin-bottom:1rem;color:var(--ink)}
.about-mark img{width:160px;border-radius:20px;box-shadow:0 20px 40px -20px rgba(34,32,29,.6);transform:rotate(-4deg)}

/* contact */
.contact{padding:clamp(4rem,8vw,6rem) 0}
.contact-box{background:var(--char);color:#e9e1d2;border-radius:24px;padding:clamp(2.5rem,6vw,4.5rem);text-align:center;
  background-image:radial-gradient(circle at 15% 20%,rgba(156,204,127,.16),transparent 40%),radial-gradient(circle at 85% 80%,rgba(201,167,124,.2),transparent 45%)}
.contact-box h2{color:#f3ead9;margin:0 auto 1rem}
.contact-box p{color:#cfc6b6;margin-bottom:2rem}

.foot{border-top:1px solid rgba(34,32,29,.12);padding:1.6rem 0;font-size:.9rem;color:var(--muted)}
.foot-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-art{max-width:400px;margin:0 auto}
  .steps{grid-template-columns:repeat(2,1fr)}
  .services .grid{grid-template-columns:repeat(2,1fr)}
  }
@media (max-width:720px){
  nav a:not(.btn){display:none}
  .about-grid{grid-template-columns:1fr;gap:1.5rem}
  .about-mark img{width:110px}
  .steps{grid-template-columns:1fr}
  .services .grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* why a website */
.why{padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid rgba(138,106,67,.2)}
.why .grid{grid-template-columns:repeat(3,1fr);margin-top:1.6rem}
.why .grid:nth-of-type(2){grid-template-columns:repeat(2,1fr)}
.why-intro{color:var(--muted);max-width:46rem;font-size:1.05rem;margin-top:.6rem}
.why-h2b{margin-top:3rem}
.why .sources{margin-top:2rem;font-size:.8rem;color:var(--muted);line-height:1.7}
.why .sources a{color:var(--tan-d)}
@media (max-width:900px){.why .grid,.why .grid:nth-of-type(2){grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){.why .grid,.why .grid:nth-of-type(2){grid-template-columns:1fr}}
