:root{
  --bg-0:#faf6ef;
  --bg-1:#ffffff;
  --bg-2:#f1e8d8;
  --dark:#241b13;
  --dark-2:#33271b;
  --line:rgba(43,32,21,0.13);
  --ink:#241c14;
  --ink-dim:#6b5c4a;
  --ink-faint:#a2907a;
  --accent:#e35a2a;
  --accent-rgb:227,90,42;
  --accent-2:#b9832c;
  --accent-2-rgb:185,131,44;
  --wrap:1180px;
  --radius-sm:6px;
  --radius:14px;
  --radius-lg:22px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --shadow-glow:0 14px 32px -14px rgba(var(--accent-rgb),0.45);
  --shadow-soft:0 20px 46px -22px rgba(36,27,19,0.28);
  --shadow-card:0 2px 10px rgba(36,27,19,0.06);
}

*{box-sizing:border-box;}
html{color-scheme:light;scroll-behavior:smooth;overflow-x:hidden;width:100%;}
body{
  margin:0;
  position:relative;
  width:100%;
  background:var(--bg-0);
  color:var(--ink);
  font-family:'Plus Jakarta Sans', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3{font-family:'Fraunces', Georgia, serif;text-wrap:balance;font-weight:600;}
p{text-wrap:pretty;}
.mono{font-family:'IBM Plex Mono', ui-monospace, monospace;}
a{color:inherit;}
img,video{max-width:100%;display:block;}

::selection{background:var(--accent);color:#fff;}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}

html{scrollbar-width:thin;scrollbar-color:var(--accent-2) var(--bg-2);}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--bg-2);}
::-webkit-scrollbar-thumb{background:#d8c6a8;border:2px solid var(--bg-2);border-radius:6px;}
::-webkit-scrollbar-thumb:hover{background:var(--accent);}

.page{position:relative;z-index:2;min-height:100dvh;display:flex;flex-direction:column;}
main{flex:1;}
.wrap{max-width:var(--wrap);width:100%;margin:0 auto;padding:0 clamp(20px,4vw,40px);}

/* scroll-reveal utility, driven by IntersectionObserver in main.js */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:var(--d,0s);}
.reveal.is-visible{opacity:1;transform:none;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1 !important;transform:none !important;transition:none !important;}
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;}
}
