/* ==========================================================================
   Old print: paper and kraft grain, the stamp, the sticker, hand-drawn bits.
   Textures come from tokens.css. Cards stay flat (small type never sits on
   texture). No gradients, no shadows, nothing animated here.
   ========================================================================== */
body{background-color:var(--c-bg);background-image:var(--tx-paper)}
.alt{background-color:var(--c-bg-alt);background-image:var(--tx-paper)}
/* dark bands are plain night: the linen crosshatch read as a dot grid on phones (Armen 2026-10-01) */
.on-dark,.dont,footer{background-color:var(--c-dark);background-image:none}
.kraft{background-color:var(--kraft);background-image:var(--tx-kraft);color:var(--c-kraft-text);
  border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}
.kraft .sh p{color:var(--c-kraft-text)}
/* plain denim: the halftone dot screen read as a dot texture, which Armen ruled out (2026-10-01) */
.denim{background-color:var(--denim);background-image:none;color:var(--white)}
.denim .sh p,.denim h2{color:var(--white)}
/* flat panels keep dark ink whatever band they sit on */
.card,.box,.claim,.pricebox,.cal,.inbox,.ask{color:var(--c-text)}

/* No rule above section headings and no hand-drawn divider between sections: a line over
   every heading read as a decorative mini line, and next to band edges it stacked into the
   double rules Armen reads as AI-made (2026-10-01). The heading stands on its own. */
.rdiv{display:none}

/* hand-drawn pieces drawn by vintage.js */
.rframe>svg.rsvg,.rarrow>svg.rsvg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.rframe{position:relative}
.rarrow{display:inline-block;flex:none;width:140px;height:84px;position:relative;align-self:center;margin-left:-4px}
.hero .acts{align-items:center}
.rn{white-space:normal}

/* the rubber stamp for plain facts. Words only, never a date or a claim. */
.stamp{display:inline-flex;align-items:center;justify-content:center;text-align:center;width:150px;height:150px;
  padding:16px;border:3px solid var(--c-ink-accent);border-radius:50%;color:var(--c-ink-accent);transform:rotate(-8deg);
  font-family:var(--f-display);font-weight:700;font-size:19px;line-height:1.2}
.on-dark .stamp{border-color:var(--c-accent-on-dark);color:var(--c-accent-on-dark)}
.stampwrap{display:flex;justify-content:flex-start;margin-top:24px}

/* torn paper edge at the foot of a dark band (path generated in build.py) */
.deckle{display:block;width:100%;height:14px;margin-top:-1px;color:var(--c-dark)}
.deckle path{fill:currentColor}

@media (max-width:560px){
  /* the button is full width on a phone, so the arrow sits over its right end and points
     down at it (the same drawing, turned), instead of disappearing */
  .acts .rarrow{order:-1;width:112px;height:67px;margin:-20px 24px -14px auto}
  .acts .rarrow>svg.rsvg{transform:rotate(-38deg)}
  .stamp{width:132px;height:132px;font-size:18px}
}

/* sticker callout for the offer: a flat label box, slightly tilted, one per screen.
   White on saddle is 5.1:1. True claims only. */
.sticker{display:inline-block;margin:22px 0 6px;padding:14px 22px 15px;background:var(--c-cta);color:var(--c-cta-text);
  font-family:var(--f-display);font-weight:700;font-size:23px;line-height:1.25;transform:rotate(-2.5deg);
  border-radius:var(--radius)}
@media (max-width:560px){.sticker{font-size:20px;padding:13px 18px 14px}}
