/* =========================================================
   SAVANI AGRIWORLD — Design Tokens
   Palette: Royal Green + Gold on Natural Cream
   Display: Fraunces (organic serif) / Body: Manrope / Tag: Space Mono
   Signature: "The Growing Vine" — an animated vine-and-leaf line
   that traces the seed-to-harvest journey through every page.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap');

:root{
  --forest-900:#0F2A1F;
  --forest-800:#153A2A;
  --forest-700:#1D4A35;
  --emerald-600:#1F7A4D;
  --emerald-500:#2C9A63;
  --emerald-300:#8FD1A7;
  --gold-600:#B8901E;
  --gold-500:#C9A227;
  --gold-300:#E4C874;
  --cream-50:#FBF7EE;
  --cream-100:#F3ECD9;
  --cream-200:#EAE0C6;
  --soil-700:#6B4A32;
  --soil-500:#8C6644;
  --ink-900:#16201A;
  --ink-600:#3E4A42;
  --ink-400:#6B7A70;

  --font-display:'Fraunces', serif;
  --font-body:'Manrope', sans-serif;
  --font-tag:'Space Mono', monospace;

  --radius-blob: 62% 38% 55% 45% / 45% 40% 60% 55%;
  --radius-card: 22px;
  --shadow-soft: 0 20px 50px -25px rgba(15,42,31,.45);
  --ease: cubic-bezier(.22,.9,.32,1);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--font-body);
  background: var(--cream-50);
  color: var(--ink-900);
  overflow-x:hidden;
  line-height:1.6;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer;}
.container{width:min(1180px, 92%); margin-inline:auto;}
section{position:relative;}

/* texture: subtle paper grain */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:radial-gradient(rgba(15,42,31,.035) 1px, transparent 1px);
  background-size:3px 3px;
  opacity:.6;
}

::selection{ background:var(--gold-300); color:var(--forest-900); }

/* ---------- Eyebrow / tag ---------- */
.eyebrow{
  font-family:var(--font-tag);
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--emerald-600);
  display:inline-flex;
  align-items:center;
  gap:.6em;
  margin-bottom:1rem;
}
.eyebrow::before{
  content:"";
  width:26px; height:1px;
  background:var(--gold-500);
  display:inline-block;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--forest-900);
  line-height:1.12;
  letter-spacing:-.01em;
}
h1{font-size:clamp(2.6rem, 5.2vw, 4.4rem); font-weight:500;}
h2{font-size:clamp(1.9rem, 3.6vw, 2.8rem);}
h3{font-size:clamp(1.25rem, 2vw, 1.5rem);}
p{color:var(--ink-600);}
.lede{font-size:1.15rem; color:var(--ink-600); max-width:60ch;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.95rem 1.9rem;
  border-radius:100px;
  font-weight:700;
  font-size:.95rem;
  border:1px solid transparent;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), background .3s ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--forest-900);
  color:var(--cream-50);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:var(--shadow-soft); }
.btn-gold{
  background:linear-gradient(135deg,var(--gold-300),var(--gold-600));
  color:var(--forest-900);
}
.btn-gold:hover{ transform:translateY(-3px); box-shadow:0 18px 40px -20px rgba(201,162,39,.6); }
.btn-outline{
  border-color:var(--forest-900);
  color:var(--forest-900);
  background:transparent;
}
.btn-outline:hover{ background:var(--forest-900); color:var(--cream-50); }

/* ---------- Nav ---------- */
header.site{
  position:sticky; top:0; z-index:100;
  background:rgba(251,247,238,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(15,42,31,.08);
}
.nav-wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem 0;
}
.brand{
  display:flex; align-items:center; gap:.7rem;
  font-family:var(--font-display);
  font-size:1.35rem; font-weight:600;
  color:var(--forest-900);
}
.brand .mark{ width:38px; height:38px; }
.brand small{
  display:block; font-family:var(--font-tag); font-size:.55rem;
  letter-spacing:.16em; color:var(--emerald-600); font-weight:400;
}
nav.links{ display:flex; align-items:center; gap:2.1rem; }
nav.links a{
  font-size:.94rem; font-weight:600; color:var(--ink-600);
  position:relative; padding-bottom:4px;
}
nav.links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:2px;
  background:var(--gold-500); transition:right .35s var(--ease);
}
nav.links a:hover::after, nav.links a.active::after{ right:0; }
nav.links a.active{ color:var(--forest-900); }
.nav-cta{ display:flex; align-items:center; gap:1rem; }
.burger{ display:none; background:none; border:0; width:30px; height:22px; position:relative; }
.burger span{
  position:absolute; left:0; width:100%; height:2px; background:var(--forest-900);
  transition:.3s var(--ease);
}
.burger span:nth-child(1){top:0;} .burger span:nth-child(2){top:10px;} .burger span:nth-child(3){top:20px;}
.burger.open span:nth-child(1){transform:translateY(10px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-10px) rotate(-45deg);}

@media (max-width:900px){
  nav.links{
    position:fixed; inset:66px 0 0 0; background:var(--cream-50);
    flex-direction:column; justify-content:flex-start; align-items:flex-start;
    padding:2.5rem 6%; gap:1.6rem; transform:translateX(100%);
    transition:transform .45s var(--ease); z-index:90;
  }
  nav.links.open{ transform:translateX(0); }
  nav.links a{ font-size:1.4rem; }
  .burger{ display:block; }
}

/* ---------- Hero vine signature ---------- */
.vine-svg path{
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:draw 2.6s var(--ease) forwards;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
.leaf-pop{ opacity:0; transform:scale(.3) rotate(-25deg); animation:pop .7s var(--ease) forwards; }
@keyframes pop{ to{ opacity:1; transform:scale(1) rotate(0); } }

.hero{
  padding:4.5rem 0 6rem;
  position:relative; overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:3rem; align-items:center;
}
.hero-copy h1{ margin-bottom:1.3rem; }
.hero-copy .lede{ margin-bottom:2.1rem; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; }
.hero-pillars{
  margin-top:2.6rem; display:flex; gap:2rem; flex-wrap:wrap;
}
.hero-pillars div{ font-family:var(--font-tag); font-size:.72rem; letter-spacing:.05em; color:var(--ink-400); max-width:150px; }
.hero-pillars strong{ display:block; font-family:var(--font-display); font-size:1.6rem; color:var(--forest-900); font-weight:600; }

.hero-art{ position:relative; aspect-ratio:1/1.05; }
.blob{
  position:absolute; inset:6%;
  background:linear-gradient(150deg,var(--emerald-500),var(--forest-800));
  border-radius:var(--radius-blob);
  animation:morph 12s ease-in-out infinite;
  box-shadow:var(--shadow-soft);
}
@keyframes morph{
  0%,100%{ border-radius:62% 38% 55% 45% / 45% 40% 60% 55%; }
  50%{ border-radius:40% 60% 45% 55% / 60% 45% 55% 40%; }
}
.hero-art svg.crop-illustration{ position:absolute; inset:0; width:100%; height:100%; }

/* ---------- Section shells ---------- */
.section{ padding:5.5rem 0; }
.section.alt{ background:var(--cream-100); }
.section.dark{ background:var(--forest-900); color:var(--cream-50); }
.section.dark h2, .section.dark h3{ color:var(--cream-50); }
.section.dark p{ color:rgba(251,247,238,.7); }
.section.dark .eyebrow{ color:var(--gold-300); }
.section.dark .eyebrow::before{ background:var(--emerald-300); }

.section-head{ max-width:56ch; margin-bottom:3rem; }
.section-head.center{ margin-inline:auto; text-align:center; }

/* ---------- Pillars ---------- */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.pillar-card{
  background:var(--cream-50); border-radius:var(--radius-card);
  padding:2.4rem 2rem; border:1px solid rgba(15,42,31,.08);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.pillar-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-soft); }
.pillar-card .icon{ width:46px; height:46px; margin-bottom:1.2rem; color:var(--emerald-600); }
.pillar-card h3{ margin-bottom:.6rem; }

/* ---------- Vine timeline (used in About / Farm Diary) ---------- */
.vine-timeline{ position:relative; padding-left:2.6rem; }
.vine-timeline::before{
  content:""; position:absolute; left:9px; top:6px; bottom:6px; width:2px;
  background:linear-gradient(var(--gold-500), var(--emerald-500));
}
.vine-step{ position:relative; padding-bottom:2.8rem; }
.vine-step:last-child{ padding-bottom:0; }
.vine-step::before{
  content:""; position:absolute; left:-2.6rem; top:2px; width:20px; height:20px;
  border-radius:50%; background:var(--cream-50); border:3px solid var(--gold-500);
}
.vine-step h4{ font-family:var(--font-display); font-size:1.2rem; color:var(--forest-900); margin-bottom:.3rem;}

/* ---------- Cards / grids ---------- */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.crop-card{
  background:var(--cream-50); border-radius:var(--radius-card); overflow:hidden;
  border:1px solid rgba(15,42,31,.08);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.crop-card:hover{ transform:translateY(-6px) rotate(-.3deg); box-shadow:var(--shadow-soft); }
.crop-thumb{
  height:190px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg,var(--emerald-300),var(--emerald-600));
}
.crop-thumb svg{ width:64%; height:64%; }
.crop-body{ padding:1.6rem 1.6rem 1.9rem; }
.crop-body .tag{ font-family:var(--font-tag); font-size:.68rem; letter-spacing:.08em; color:var(--gold-600); }
.crop-body h3{ margin:.35rem 0 .5rem; }

/* Myth vs fact */
.myth-fact{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.mf-card{ border-radius:var(--radius-card); padding:1.8rem; }
.mf-card.myth{ background:rgba(140,102,68,.12); border:1px solid rgba(140,102,68,.3); }
.mf-card.fact{ background:rgba(44,154,99,.12); border:1px solid rgba(44,154,99,.35); }
.mf-card .label{ font-family:var(--font-tag); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.6rem; display:block; }
.mf-card.myth .label{ color:var(--soil-700); }
.mf-card.fact .label{ color:var(--emerald-600); }

/* Quotes / testimonials */
.quote-slab{
  font-family:var(--font-display); font-size:clamp(1.4rem,2.6vw,2.1rem);
  font-weight:500; color:var(--forest-900); max-width:24ch;
  position:relative; padding-left:1.6rem; border-left:3px solid var(--gold-500);
}

/* Before/After slider-ish */
.ba-pair{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; }
.ba-box{ aspect-ratio:4/3; border-radius:18px; display:flex; align-items:center; justify-content:center; }
.ba-box.before{ background:linear-gradient(160deg,#D8C9A3,var(--soil-700)); }
.ba-box.after{ background:linear-gradient(160deg,var(--emerald-300),var(--emerald-600)); }
.ba-arrow{ font-size:1.6rem; color:var(--gold-500); }

/* Stats / did-you-know ticker */
.dyk-track{
  display:flex; gap:2.5rem; white-space:nowrap;
  animation:scrollx 26s linear infinite;
}
.dyk-wrap{ overflow:hidden; border-top:1px solid rgba(251,247,238,.15); border-bottom:1px solid rgba(251,247,238,.15); padding:1.4rem 0; }
.dyk-track span{ font-family:var(--font-tag); font-size:.85rem; letter-spacing:.02em; color:var(--gold-300); }
@keyframes scrollx{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-stagger > *{ opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-stagger.in > *{ opacity:1; transform:translateY(0); }
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.35s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.45s;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.55s;}

/* Footer */
footer.site{ background:var(--forest-900); color:rgba(251,247,238,.75); padding:4.5rem 0 2rem; }
.foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(251,247,238,.12); }
.foot-grid h4{ color:var(--cream-50); font-size:1rem; margin-bottom:1.1rem; font-family:var(--font-body); font-weight:700;}
.foot-grid a, .foot-grid p{ color:rgba(251,247,238,.65); font-size:.92rem; }
.foot-grid li{ margin-bottom:.6rem; }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:1.6rem; font-size:.8rem; color:rgba(251,247,238,.5); flex-wrap:wrap; gap:1rem;}
.social-row{ display:flex; gap:.9rem; }
.social-row a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(251,247,238,.25); display:flex; align-items:center; justify-content:center; transition:.3s; }
.social-row a:hover{ background:var(--gold-500); border-color:var(--gold-500); }

/* Page header (inner pages) */
.page-header{ padding:3.4rem 0 2.4rem; }
.page-header .eyebrow{ margin-bottom:.8rem; }
.crumbs{ font-family:var(--font-tag); font-size:.72rem; color:var(--ink-400); margin-bottom:1rem; letter-spacing:.05em;}

/* WhatsApp floating button */
.wa-fab{
  position:fixed; right:24px; bottom:24px; z-index:200;
  width:60px; height:60px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -10px rgba(0,0,0,.4);
  animation:wa-bounce 3.2s ease-in-out infinite;
}
.wa-fab svg{ width:30px; height:30px; }
.wa-fab::before{
  content:""; position:absolute; inset:0; border-radius:50%;
  background:#25D366; opacity:.55;
  animation:wa-ping 2.4s ease-out infinite;
}
@keyframes wa-ping{ 0%{transform:scale(1); opacity:.5;} 100%{transform:scale(1.9); opacity:0;} }
@keyframes wa-bounce{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-6px);} }

.wa-tooltip{
  position:fixed; right:94px; bottom:38px; z-index:200;
  background:var(--forest-900); color:var(--cream-50);
  padding:.65rem 1rem; border-radius:10px; font-size:.85rem; font-weight:600;
  opacity:0; transform:translateX(10px); pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease);
  white-space:nowrap;
}
.wa-tooltip::after{
  content:""; position:absolute; right:-6px; top:50%; transform:translateY(-50%);
  border:6px solid transparent; border-left-color:var(--forest-900);
}
.wa-fab-wrap:hover .wa-tooltip{ opacity:1; transform:translateX(0); }

.wa-panel{
  position:fixed; right:24px; bottom:98px; z-index:210;
  width:320px; max-width:82vw; background:var(--cream-50);
  border-radius:18px; box-shadow:var(--shadow-soft); overflow:hidden;
  transform:translateY(16px) scale(.96); opacity:0; pointer-events:none;
  transition:.4s var(--ease); border:1px solid rgba(15,42,31,.08);
}
.wa-panel.open{ transform:translateY(0) scale(1); opacity:1; pointer-events:auto; }
.wa-panel-head{ background:var(--forest-900); color:var(--cream-50); padding:1.1rem 1.3rem; display:flex; align-items:center; gap:.7rem;}
.wa-panel-head .dot{ width:9px; height:9px; border-radius:50%; background:#25D366; box-shadow:0 0 0 3px rgba(37,211,102,.25);}
.wa-panel-body{ padding:1.2rem 1.3rem; }
.wa-panel-body p{ font-size:.9rem; margin-bottom:1rem; }
.wa-panel-body a.btn{ width:100%; justify-content:center; }
.wa-close{ margin-left:auto; background:none; border:0; color:var(--cream-50); font-size:1.1rem; opacity:.7;}

/* Contact page */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.field{ margin-bottom:1.3rem; }
.field label{ display:block; font-size:.85rem; font-weight:700; margin-bottom:.45rem; color:var(--forest-900);}
.field input, .field textarea{
  width:100%; padding:.9rem 1rem; border-radius:12px; border:1px solid rgba(15,42,31,.18);
  background:var(--cream-50); font-family:inherit; font-size:.95rem; transition:.3s;
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--emerald-600); box-shadow:0 0 0 4px rgba(44,154,99,.15); }
.info-card{ background:var(--forest-900); color:var(--cream-50); border-radius:var(--radius-card); padding:2.2rem; }
.info-card li{ display:flex; gap:.9rem; margin-bottom:1.3rem; font-size:.94rem; color:rgba(251,247,238,.85); align-items:flex-start;}
.info-card svg{ width:20px; height:20px; flex-shrink:0; margin-top:2px; color:var(--gold-300); }

/* =========================================================
   Fully Responsive — Big Screen → Desktop → Laptop → Tablet → Mobile
   Mobile-first safety net: every layout has an explicit fallback
   at each breakpoint so nothing overflows or collapses unstyled.
   ========================================================= */

/* Ultra-wide / big screens (large monitors, TVs) — give content
   a touch more breathing room without letting lines get too long */
@media (min-width:1601px){
  .container{ width:min(1320px, 82%); }
  .hero-art{ max-width:560px; margin-left:auto; }
}

/* Small laptops / large tablets landscape */
@media (max-width:1180px){
  .container{ width:min(1180px, 94%); }
  .hero-grid{ gap:2.2rem; }
}

/* Tablets landscape + small laptops */
@media (max-width:1024px){
  h1{ font-size:clamp(2.2rem, 5vw, 3.6rem); }
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ max-width:420px; margin-inline:auto; aspect-ratio:1/1; }
  .hero-copy{ text-align:center; }
  .hero-copy .lede{ margin-inline:auto; }
  .hero-actions{ justify-content:center; }
  .hero-pillars{ justify-content:center; text-align:left; }
  .pillars, .card-grid{ grid-template-columns:1fr 1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .foot-grid > div:first-child{ grid-column:1 / -1; }
  nav.links{ gap:1.5rem; }
}

/* Tablets portrait */
@media (max-width:900px){
  .myth-fact{ grid-template-columns:1fr; }
  .ba-pair{ grid-template-columns:1fr; text-align:center; }
  .ba-arrow{ transform:rotate(90deg); margin:.2rem auto; }
  section.section{ padding:4.4rem 0; }
  .quote-slab{ max-width:none; }
}

/* Large phones / small tablets */
@media (max-width:768px){
  .container{ width:min(1180px, 90%); }
  .pillars, .card-grid{ grid-template-columns:1fr 1fr; gap:1.2rem; }
  .pillar-card, .crop-card .crop-body{ padding:1.6rem 1.4rem; }
  .foot-grid{ gap:2rem; }
  .info-card{ padding:1.8rem; }
}

/* Phones */
@media (max-width:600px){
  .container{ width:92%; }
  .pillars, .card-grid, .foot-grid{ grid-template-columns:1fr; }
  .foot-grid > div:first-child{ grid-column:auto; }
  .hero-pillars{ gap:1.4rem; justify-content:flex-start; }
  section.section{ padding:3.6rem 0; }
  .page-header{ padding:2.4rem 0 1.6rem; text-align:center; }
  .page-header .lede{ margin-inline:auto; }
  .hero{ padding:3rem 0 4rem; }
  .btn{ padding:.9rem 1.5rem; font-size:.9rem; }
  .hero-actions, .foot-bottom{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn{ width:100%; justify-content:center; text-align:center; }
  .foot-bottom{ text-align:center; }
  .dyk-track span{ font-size:.75rem; }
  .vine-timeline{ padding-left:2.1rem; }
  .vine-step::before{ left:-2.1rem; width:16px; height:16px; }
  .quote-slab{ padding-left:1rem; }
  .contact-grid{ gap:2rem; }
}

/* Small / narrow phones */
@media (max-width:400px){
  h1{ font-size:clamp(1.9rem, 8vw, 2.6rem); }
  h2{ font-size:clamp(1.5rem, 6vw, 2rem); }
  .brand{ font-size:1.1rem; }
  .brand small{ display:none; }
  .nav-cta .btn-primary{ display:none; }
  .wa-fab{ width:52px; height:52px; right:16px; bottom:16px; }
  .wa-tooltip{ display:none; }
  .wa-panel{ right:12px; bottom:82px; width:88vw; }
}

/* Landscape phones (short viewport height) */
@media (max-height:480px) and (orientation:landscape){
  nav.links{ overflow-y:auto; padding-top:1.2rem; gap:1rem; }
  nav.links a{ font-size:1.1rem; }
}

/* Touch targets: every interactive element stays comfortably tappable */
@media (max-width:900px){
  .btn, nav.links a, .social-row a{ min-height:44px; }
  .btn{ display:inline-flex; align-items:center; }
}

/* Respect device safe areas (notches / home indicator) for the fixed WhatsApp widget */
.wa-fab{
  right: max(24px, env(safe-area-inset-right));
  bottom: max(24px, env(safe-area-inset-bottom));
}
.wa-panel{
  right: max(24px, env(safe-area-inset-right));
  bottom: calc(98px + env(safe-area-inset-bottom));
}
@media (max-width:400px){
  .wa-fab{ right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); }
  .wa-panel{ right: max(12px, env(safe-area-inset-right)); bottom: calc(82px + env(safe-area-inset-bottom)); }
}

/* Prevent any horizontal overflow from wide elements at any size */
html, body{ max-width:100%; overflow-x:hidden; }
img, svg, video, .blob, .crop-thumb{ max-width:100%; }
table{ display:block; overflow-x:auto; max-width:100%; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--gold-600); outline-offset:3px;
}
