  :root{
    --paper:#F1E9D8;
    --card:#FBF6EA;
    --ink:#2B2620;
    --ink-soft:#5A5245;
    --green:#5B6E3F;
    --green-dark:#46562F;
    --chili:#B23A2E;
    --gold:#D89B3C;
    --line:#DCD0B6;
  }
  body{ background:var(--paper); color:var(--ink); font-family:'Work Sans', sans-serif; }
  .font-display{ font-family:'Fraunces', serif; font-optical-sizing:auto; }
  .font-mono{ font-family:'IBM Plex Mono', monospace; }

  .weave{
    background-image: repeating-linear-gradient(45deg, var(--green) 0 2px, transparent 2px 14px),
                       repeating-linear-gradient(-45deg, var(--chili) 0 2px, transparent 2px 14px);
    background-color: var(--paper);
    opacity: 0.5;
  }
  .card-shadow{ box-shadow: 0 1px 0 var(--line), 0 8px 24px -12px rgba(43,38,32,0.25); }
  .stamp{
    border: 1.5px solid var(--green-dark);
    border-radius: 999px;
  }
  .btn-primary{
    background: var(--green-dark);
    color: var(--paper);
    transition: transform .15s ease, background .15s ease;
  }
  .btn-primary:hover{ background: var(--green); transform: translateY(-1px); }
  .btn-outline{
    border: 1.5px solid var(--ink);
    color: var(--ink);
    transition: background .15s ease, color .15s ease;
  }
  .btn-outline:hover{ background: var(--ink); color: var(--paper); }

  .float-wa{
    box-shadow: 0 10px 30px -8px rgba(43,38,32,0.4);
  }
  .card-image{
    aspect-ratio: 4 / 3;
  }
  .lang-btn{
    border: 1.5px solid var(--ink);
    color: var(--ink);
    font-family:'IBM Plex Mono', monospace;
    transition: background .15s ease, color .15s ease;
  }
  .lang-btn.active{ background: var(--ink); color: var(--paper); }
  @media (prefers-reduced-motion: reduce){
    *{ animation: none !important; transition: none !important; }
  }

details summary{ list-style: none; }
details summary::-webkit-details-marker{ display: none; }
details summary::marker{ display: none; }
.chevron{ transition: transform .2s ease; }
details[open] .chevron{ transform: rotate(180deg); }
