*{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background-color:#FFF4E4;background-image:url('images/paper-grain.png');background-size:280px;overflow-x:hidden;font-family:'Space Grotesk',sans-serif;color:#2B130B;-webkit-font-smoothing:antialiased;}
  ::selection{background:#FD3765;color:#FFF4E4;}
  @keyframes ssMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @keyframes ssMarqueeRev{from{transform:translateX(-50%)}to{transform:translateX(0)}}
  @keyframes ssFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-22px)}}
  @keyframes ssFloatB{0%,100%{transform:translateY(0)}50%{transform:translateY(16px)}}
  @keyframes ssSpin{to{transform:rotate(360deg)}}
  @keyframes ssBob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(3deg)}}
  #top[data-ss-motion="off"] *{animation:none !important;}


/* ---- ported additions (runtime behaviors live in app.js) ---- */
:focus-visible{outline:3px solid #2B130B;outline-offset:3px;}
a{ -webkit-tap-highlight-color:transparent; }
img{max-width:100%;}
image-slot{display:block;}
image-slot:not(:defined){background:rgba(43,19,11,.05);}
/* reviews carousel: hide scrollbar, keep horizontal swipe/drag scroll */
#revViewport::-webkit-scrollbar{display:none;}
#revViewport.ssGrab{cursor:grabbing;}
#revViewport.ssGrab *{cursor:grabbing;}
