@font-face{font-family:"Fredoka";src:url("fonts/Fredoka.woff2") format("woff2"),url("fonts/Fredoka.ttf") format("truetype");font-weight:300 700;font-display:swap}
:root{
 --jf-cream:#FFF8EE;--jf-red:#D2232A;--jf-red-dark:#A8161D;--jf-ink:#2B1B17;--jf-ink-soft:#5A4640;--jf-gold:#F2B33D;
 --jf-chocolate:#5A3220;--jf-vanilla:#F3E3C3;--jf-strawberry:#E8344E;--jf-strawberry-light:#FF8FA3;
 --jf-tapioca:#EFE4CF;--jf-pearl:#D9C7A3;--jf-protein:#3B2116;--jf-protein-accent:#C89B6D;
 --jf-font:"Fredoka",ui-rounded,"SF Pro Rounded","Segoe UI",system-ui,sans-serif;
 --jf-radius:18px;--jf-tap:48px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--jf-cream);color:var(--jf-ink);font-family:var(--jf-font);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
button{font-family:inherit}
.jf-btn{min-height:var(--jf-tap);min-width:var(--jf-tap);padding:10px 22px;border:0;border-radius:999px;background:var(--jf-red);color:#fff;font-weight:600;font-size:18px;cursor:pointer;box-shadow:0 4px 0 var(--jf-red-dark);transition:transform .08s}
.jf-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--jf-red-dark)}
.jf-btn.alt{background:#fff;color:var(--jf-ink);box-shadow:0 4px 0 #D9CBB8}
.jf-btn:focus-visible{outline:3px solid var(--jf-gold);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001s!important;transition-duration:.001s!important}}
/* Campaign small details (brand/CAMPAIGN_AESTHETIC.md): flat colour-pop fields, glossy chunky buttons, jiggle press */
:root{--jf-pop-pink:#FF7AA8;--jf-pop-sky:#3FC1FF;--jf-pop-yellow:#FFE45C;--jf-pop-lime:#7ED957;--jf-jiggle:cubic-bezier(.34,1.56,.64,1)}
.jf-pop{background:var(--jf-pop-sky)}
.jf-btn{background-image:linear-gradient(rgba(255,255,255,.28),rgba(255,255,255,0) 45%);transition:transform .18s var(--jf-jiggle)}
.jf-btn:hover{transform:scale(1.04) rotate(-1deg)}
