@font-face{font-family:Nexa Black;src:url(/fonts/NexaBlack.woff2) format("woff2");font-weight:900;font-display:swap}@font-face{font-family:Nexa Heavy;src:url(/fonts/NexaHeavy.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Nexa Regular;src:url(/fonts/NexaRegular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Hyperwave One;src:url(/fonts/HyperwaveOne.woff2) format("woff2");font-weight:400;font-display:swap}:root{--jf-navy:#22244b;--jf-navy-deep:#1a1c3a;--jf-white:#fff;--jf-pink:#e62061;--jf-pink-deep:#c4164f;--jf-black:#141414;--jf-grey:#9e9e9e;--jf-cream:#faf7f2;--jf-cream-card:#fff;--jf-cream-border:#ece7de;--jf-text-soft:#55566f;--jf-font-display:"Nexa Black","Arial Black",sans-serif;--jf-font-strong:"Nexa Heavy",Arial,sans-serif;--jf-font-body:"Nexa Regular",Arial,sans-serif;--jf-font-brush:"Hyperwave One",cursive;--jf-radius-pill:40px;--jf-radius-card:18px;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--jf-font-body);background:var(--jf-cream);color:var(--jf-black);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.jf-btn{font-family:var(--jf-font-strong);font-size:1rem;border:none;border-radius:var(--jf-radius-pill);padding:16px 34px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease}.jf-btn:active{transform:translateY(1px)}.jf-btn:disabled{opacity:.45;cursor:not-allowed}.jf-btn--primary{background:var(--jf-pink);color:var(--jf-white);box-shadow:0 8px 22px rgba(230,32,97,.28)}.jf-btn--primary:hover:not(:disabled){background:var(--jf-pink-deep);transform:translateY(-1px)}.jf-btn--ghost{background:transparent;color:var(--jf-text-soft);padding:12px 18px;font-family:var(--jf-font-body)}.jf-btn--ghost:hover:not(:disabled){color:var(--jf-navy)}.jf-brush{font-family:var(--jf-font-brush);color:var(--jf-pink)}@keyframes jf-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.jf-fade{animation:jf-fade-in .35s ease}@media (prefers-reduced-motion:reduce){.jf-fade{animation:none}.jf-btn{transition:none}}