:root{font:17px/1.55 system-ui,sans-serif;color:#f5f7fa;background:#090b0f;color-scheme:dark}*{box-sizing:border-box}body{margin:0}main{max-width:540px;margin:0 auto;padding:36px 24px}header{display:flex;gap:14px;align-items:center;margin-bottom:34px}header strong{letter-spacing:.12em;font-size:18px}small{display:block;letter-spacing:.19em;font-size:12px;color:#b8c1cc}.mark{background:#00d8ee;color:#10210a;padding:10px;border-radius:12px;font-size:24px}.badge{color:#00d8ee;font-size:12px;letter-spacing:.1em}h1{font-size:44px;line-height:1.07;letter-spacing:-.04em;margin:24px 0}p{color:#b8c1cc}section{margin-top:28px;padding:24px;background:#12161c;border:1px solid #293039;border-radius:18px}label{display:block;margin-bottom:8px;font-weight:650}input,button{font:inherit;border-radius:10px;width:100%;padding:14px}input{border:1px solid #46525f;background:#090b0f;color:white}button{margin-top:16px;background:#00d8ee;color:#090b0f;border:0;font-weight:750;cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible{outline:3px solid white;outline-offset:3px}.hint{font-size:14px;margin-bottom:0}#status{min-height:28px;overflow-wrap:anywhere}#status.error{color:#ffb7ac}footer{font-size:13px;color:#b8c1cc;margin-top:30px}[hidden]{display:none!important}@media(max-width:360px){h1{font-size:36px}main{padding:24px 18px}section{padding:18px}}

.barcode-wrap{background:white;color:#111;text-align:center;border-radius:12px;padding:8px 8px 16px;margin:20px 0}.barcode-wrap svg{width:100%;height:auto;display:block}#customer-code{letter-spacing:.12em}#punches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 5px;margin:22px -8px}#punches .fish-punch{display:block;min-width:0}.fish-punch svg{width:100%;height:auto;display:block;overflow:visible}.fish-body{fill:#111c25;stroke:#00d8ee;stroke-width:1.8;stroke-linejoin:round}.fish-detail{fill:none;stroke:#00d8ee;stroke-width:1.1;opacity:.5}.fish-eye{fill:#00d8ee}.fish-speckles{fill:none;stroke:#00d8ee;stroke-width:2;stroke-linecap:round;opacity:.3}.fish-number{fill:#f5f7fa;font:bold 24px system-ui,sans-serif;paint-order:stroke;stroke:#111c25;stroke-width:4px;stroke-linejoin:round}.earned .fish-body{fill:#ff318b;stroke:#ff75b1;stroke-width:2}.earned .fish-detail,.earned .fish-speckles{stroke:#39091d}.earned .fish-eye{fill:#39091d}.earned .fish-number{fill:#090b0f;stroke:#ff318b}.earned svg{filter:drop-shadow(0 0 5px #ff318b55)}.inactive{border-top:1px solid #46525f;padding-top:16px;font-size:13px;color:#00d8ee}#success h2{margin:0}#identity{overflow-wrap:anywhere}

/* Original website artwork, packaged locally for the card. */
.fw-brand{gap:12px;width:100%}.fw-logo{width:72px;height:76px;flex:none;object-fit:cover;object-position:45.3829% 48.7349%;mix-blend-mode:screen}.fw-brand-lettering{flex:1;min-width:0}.fw-wordmark{display:block;width:100%;height:auto;aspect-ratio:665/190;mix-blend-mode:screen}.fw-brand-lettering small{font-size:9px;letter-spacing:.1em;text-align:center;margin-top:6px}@media(max-width:360px){.fw-brand{gap:8px}.fw-logo{width:60px;height:64px}.fw-brand-lettering small{font-size:8px;letter-spacing:.06em}}

/* Forty Woods website palette. */
#card{border-color:#ff318b66}#card>.badge{color:#ff69a7}button{box-shadow:0 0 18px #00d8ee12}#signout{background:transparent;color:#ff69a7;border:1px solid #ff318b;margin-top:12px}button:hover{filter:brightness(1.08)}.inactive{border-top-color:#ff318b55}#balance{color:#00d8ee}::selection{background:#ff318b;color:#090b0f}
/* Black crappie artwork shared with the redemption celebration. */
.fish-body{stroke-width:2.4}.fish-detail{stroke-width:1.5;opacity:.65}.fish-speckles{stroke-width:3;opacity:.55}.fish-number{font-size:40px;stroke-width:6px}.earned .fish-body{stroke-width:2.5}.crappie-eye-ring{fill:#10161b;stroke:#00d8ee;stroke-width:1.6}.crappie-eye-glint{fill:#fff}.earned .crappie-eye-ring{stroke:#ffb4d5}.earned .fish-eye{fill:#ffb4d5}.crappie-pectoral{fill:#00d8ee14}.earned .crappie-pectoral{fill:#39091d18}

/* v9: restrained silhouettes with more room between punches. */
#punches{gap:18px 10px;margin:24px 0}.fish-punch svg{width:96%;margin:auto}.fish-body{fill:none;stroke:#00cbdc;stroke-width:2.5;stroke-linejoin:round}.earned .fish-body{fill:#ff4796;stroke:none}.earned svg{filter:none}.fish-number{font-size:42px;fill:#edf6fa;stroke:none}.earned .fish-number{fill:#10161b;stroke:none}

.loyalty-intro{margin:24px 0 30px}.loyalty-intro h1{font-size:clamp(2.25rem,8vw,4rem);line-height:1.05;margin:12px 0;overflow-wrap:normal}.program-name{color:#ff3b96;font-size:1.45rem;font-weight:700;margin:0 0 18px}.intro-copy{font-size:1.05rem;line-height:1.6}.benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.benefit-grid article{padding:18px;border:1px solid #29343d;border-radius:18px;background:#11171d}.benefit-grid strong{display:block;color:#00c9df;font-size:1.1rem;line-height:1.35}.benefit-grid p{font-size:.95rem;line-height:1.5;margin:10px 0 0;color:#b8c2cb}.staff-intro{border-left:2px solid #ff3b96;padding-left:12px}@media(max-width:520px){.benefit-grid{grid-template-columns:1fr}.loyalty-intro .badge{font-size:.7rem;letter-spacing:.12em}}

#reward-choice{width:100%;padding:15px;margin:10px 0 16px;background:#10161c;color:#f5f7fa;border:1px solid #00c9df;border-radius:12px;font-size:16px}button:disabled{opacity:.55;cursor:default}
