:root{
  --background:#FDFCF8;
  --foreground:#2C2C24;
  --primary:#5D7052;
  --primary-foreground:#F3F4F1;
  --secondary:#C18C5D;
  --secondary-foreground:#FFFFFF;
  --accent:#E6DCCD;
  --accent-foreground:#4A4A40;
  --muted:#F0EBE5;
  --muted-foreground:#78786C;
  --border:#DED8CF;
  --destructive:#A85448;
  --radius-md:16px;
  --radius-lg:24px;
  --shadow-soft:0 4px 20px -2px rgba(93,112,82,.15);
  --shadow-float:0 10px 40px -10px rgba(193,140,93,.2);
}

html{scroll-behavior:smooth}
body{
  background:var(--background);
  color:var(--foreground);
  font-family: Nunito, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  line-height:1.7; margin:0; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}

/* Global texture overlay */
.noise-overlay{pointer-events:none;position:fixed;inset:0;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAL0lEQVQYV2P8//8/AyWYmZkZQGBg+P//PwMjEoABGQYgQwYjGQwGQ4hG5GAAxgAAgwAA2m4Hn7m7mGQAAAABJRU5ErkJggg==");z-index:9999}

/* Typography scale */
.h1{font-family: Fraunces, serif; font-weight:800; font-size:clamp(2.5rem, 4vw, 4rem); line-height:1.1}
.h2{font-family: Fraunces, serif; font-weight:700; font-size:clamp(2rem, 3vw, 3rem); line-height:1.15}
.h3{font-family: Fraunces, serif; font-weight:700; font-size:clamp(1.5rem, 2.2vw, 2rem); line-height:1.2}
.lead{font-size:1.125rem; color:var(--muted-foreground)}

/* Utility: blobs & radii */
.blob{border-radius:60% 40% 30% 70% / 60% 30% 70% 40%}
.round-lg{border-radius:var(--radius-lg)}
.round-md{border-radius:var(--radius-md)}
.round-full{border-radius:9999px}

/* Utility shadows */
.shadow-soft{box-shadow:var(--shadow-soft)}
.shadow-float{box-shadow:var(--shadow-float)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;height:3rem;padding:0 2rem;border-radius:9999px;font-weight:700;transition:transform .3s ease, box-shadow .3s ease}
.btn:active{transform:scale(.95)}
.btn-primary{background:var(--primary);color:var(--primary-foreground);box-shadow:var(--shadow-soft)}
.btn-primary:hover{transform:scale(1.05);box-shadow:0 6px 24px -4px rgba(93,112,82,.25)}
.btn-outline{background:transparent;color:var(--secondary);border:2px solid var(--secondary)}
.btn-ghost{background:transparent;color:var(--primary)}
.btn-ghost:hover{background:rgba(93,112,82,.08)}

/* Cards */
.card{background:#FEFEFA;border:1px solid rgba(222,216,207,.5);border-radius:2rem;box-shadow:var(--shadow-soft);overflow:hidden;transition:transform .3s ease, box-shadow .3s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -10px rgba(93,112,82,.15)}

/* Inputs */
.input{height:3rem;border-radius:9999px;border:1px solid var(--border);padding:0 1rem;background:rgba(255,255,255,.5);backdrop-filter:saturate(120%) blur(2px)}
.input:focus{outline:none;box-shadow:0 0 0 2px rgba(93,112,82,.3), 0 0 0 4px rgba(253,252,248,1)}

/* Nav (glass, sticky pill) */
.site-nav{position:sticky;top:1rem;margin:1rem auto;max-width:min(1200px,92%);background:rgba(255,255,255,.7);backdrop-filter:blur(12px);border:1px solid rgba(222,216,207,.5);border-radius:9999px;box-shadow:var(--shadow-soft);z-index:1000}
.site-nav-inner{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem}
.logo{height:40px;width:40px;border-radius:9999px;background:var(--primary);display:grid;place-items:center;color:#fff;font-weight:800}
.nav-toggle{margin-left:auto;background:transparent;border:0;font-size:1rem}
.menu{display:none}
.menu.open{display:flex;gap:1rem}
@media (min-width: 768px){.menu{display:flex;margin-left:auto;gap:1rem}.nav-toggle{display:none}}

/* Layout */
.container{width:100%;max-width:80rem;margin-inline:auto;padding-inline:1rem}
.section{padding-block:8rem}
.grid{display:grid;gap:2rem}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
@media(min-width:768px){.grid-2{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr)}}

/* Blog loop */
.post-card{display:flex;flex-direction:column;gap:.75rem}
.post-card .meta{color:var(--muted-foreground);font-size:.9rem}

/* Accessibility */
:focus-visible{outline:2px solid var(--primary); outline-offset:2px}
.skip-link{position:absolute;left:-9999px;top:auto}
.skip-link:focus{left:1rem;top:1rem;z-index:9999;background:#fff;padding:.5rem 1rem;border-radius:9999px;box-shadow:var(--shadow-soft)}
