@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(/fonts/manrope-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Manrope;font-weight:500 600;font-display:swap;src:url(/fonts/manrope-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(/fonts/manrope-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Manrope;font-weight:800;font-display:swap;src:url(/fonts/manrope-latin-800-normal.woff2) format("woff2")}:root{--brand: #003D2C;--brand-accent: #7FAE32;--brand-on: #FFFFFF;--brand-bg: #F7F7F5;--brand-font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--brand-ink: var(--brand);--bg: var(--brand-bg);--surface: #FFFFFF;--surface-2: #EFF1EE;--ink: #111111;--muted: #666A68;--line: #E1E4E0;--ok: #2F7D4F;--ok-bg: #E7F3EC;--warn: #A15C07;--warn-bg: #FDF3E1;--err: #B42318;--err-bg: #FDECEA;--info: #0F4C3A;--info-bg: #E8F0EC;--shadow: 0 8px 24px rgba(17, 17, 17, .1);--r-btn: 10px;--r-card: 14px;--r-block: 22px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0B1411;--surface: #121E1A;--surface-2: #18261F;--ink: #EEF2EF;--muted: #9BA7A1;--line: #24352E;--ok: #6FCF97;--ok-bg: #12291D;--warn: #F2B35B;--warn-bg: #2B2112;--err: #F97066;--err-bg: #2D1614;--info: #9FD2B8;--info-bg: #132520;--brand-ink: color-mix(in srgb, var(--brand) 40%, #FFFFFF);--shadow: 0 8px 24px rgba(0, 0, 0, .35);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.55 var(--brand-font);-webkit-font-smoothing:antialiased}button,input{font:inherit}h1,h2,h3{text-wrap:balance;letter-spacing:-.02em}.icon{flex-shrink:0}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 14px) 16px 14px;background:var(--brand);color:var(--brand-on)}.topbar-logo{height:36px;width:auto;max-width:110px;object-fit:contain;border-radius:9px;background:#fff;padding:3px}.topbar-mark{width:34px;height:34px;border-radius:10px;background:#fff;color:var(--brand);display:grid;place-items:center;font-weight:800;font-size:.8rem;flex-shrink:0}.topbar-title{font-weight:800;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{flex:1;width:100%;max-width:520px;margin:0 auto;padding:20px 16px 8px}.footer{max-width:520px;margin:0 auto;padding:16px 16px calc(env(safe-area-inset-bottom) + 20px);text-align:center;display:grid;gap:8px;justify-items:center}.legal{font-size:.75rem;color:var(--muted);margin:0}.powered{font-size:.72rem;color:var(--muted);margin:4px 0 0}.powered span{color:#7fae32;font-weight:700}.panel{background:var(--surface);border-radius:var(--r-block);padding:22px 18px;border:1px solid var(--line);display:grid;gap:4px}.hero-title{font-size:1.5rem;line-height:1.15;margin:2px 0 6px;font-weight:800}.greeting{font-size:1.5rem;margin:0 0 14px;font-weight:800;letter-spacing:-.02em}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;color:var(--muted);margin:0;font-weight:700}.hero-icon{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin-bottom:8px;background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand-ink)}.muted{color:var(--muted)}.small{font-size:.85rem}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0;gap:10px}.center-text{text-align:center;justify-items:center}p{margin:0}.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);border-radius:12px;padding:4px;margin:14px 0 10px}.tabs button{border:0;background:transparent;padding:10px;border-radius:9px;color:var(--muted);font-weight:600;cursor:pointer}.tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000014}.form{display:flex;flex-direction:column;gap:14px;margin-top:10px}.field{display:flex;flex-direction:column;gap:6px;font-size:.86rem;font-weight:600;color:var(--ink)}.field input:not(.pin-input){border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;font-size:1rem;background:var(--surface);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s;width:100%;font-weight:500}.field input:focus{border-color:var(--brand-ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 15%,transparent)}.check{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;color:var(--muted);line-height:1.4}.check input{width:20px;height:20px;margin-top:1px;accent-color:var(--brand);flex-shrink:0}.pin{position:relative;display:flex;gap:8px;cursor:text}.pin-input{position:absolute;inset:0;opacity:0;width:100%;height:100%;font-size:16px}.pin-box{flex:1;max-width:52px;height:56px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);display:grid;place-items:center;font-weight:800;font-size:1.4rem;font-variant-numeric:tabular-nums}.pin-box.on{border-color:var(--brand-ink)}.pin:focus-within .pin-box.caret{border-color:var(--brand-ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 15%,transparent)}.btn{border:0;border-radius:var(--r-btn);padding:14px 18px;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .08s,filter .15s,opacity .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:3px solid color-mix(in srgb,var(--brand-accent) 70%,transparent);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--brand-on)}.btn-primary:hover{filter:brightness(.94)}.btn-accent{background:var(--brand-accent);color:#111}.btn-secondary{background:transparent;color:var(--brand-ink);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--brand-ink) 55%,transparent);margin-top:14px}.btn-ghost{background:var(--surface-2);color:var(--ink);margin-top:14px}.btn-block{width:100%}.btn-lg{padding:18px;font-size:1.08rem}.btn-sm{padding:8px 12px;font-size:.88rem;margin-top:8px}.link{background:none;border:0;color:var(--muted);text-decoration:underline;font-size:.8rem;cursor:pointer}.icon-btn{border:0;background:var(--surface-2);width:34px;height:34px;border-radius:50%;cursor:pointer;color:var(--muted);display:grid;place-items:center}.notice{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 14px;margin:10px 0;font-size:.93rem;line-height:1.4;animation:slide .35s ease}.notice>div{display:grid;gap:2px}.notice b{font-weight:800}.notice .icon{margin-top:1px}.notice-info{background:var(--info-bg);color:var(--info)}.notice-success{background:var(--ok-bg);color:var(--ok)}.notice-celebrate{background:color-mix(in srgb,var(--brand-accent) 18%,var(--surface));color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--brand-accent)}.notice-warn{background:var(--warn-bg);color:var(--warn)}.notice-error{background:var(--err-bg);color:var(--err)}.cards{display:flex;flex-direction:column;gap:16px}.stamp-card{--card: var(--brand);background:var(--surface);border-radius:var(--r-block);box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--line)}.stamp-card.is-complete{box-shadow:0 0 0 2px var(--brand-accent),var(--shadow)}.sc-head{background:var(--card);color:var(--brand-on);padding:16px 18px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.sc-title{min-width:0}.sc-head h2{margin:0;font-size:1.08rem;line-height:1.25;font-weight:800}.sc-head small{display:block;font-size:.75rem;opacity:.8;font-weight:600;margin-top:2px}.sc-count{font-weight:800;font-size:1.45rem;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}.sc-count span{font-size:.9rem;opacity:.75}.sc-body{padding:16px 18px 18px;display:grid;gap:14px}.stamps{display:grid;gap:10px}.stamp{aspect-ratio:1;border-radius:50%;border:2px dashed color-mix(in srgb,var(--card) 35%,transparent);display:grid;place-items:center;color:var(--brand-on);max-width:100%}.stamp .icon{width:55%;height:55%}.stamp.on{background:var(--card);border:2px solid var(--card)}.stamp.goal{border:2px solid var(--brand-accent);background:color-mix(in srgb,var(--brand-accent) 15%,var(--surface));color:var(--brand-ink)}.stamp.goal.on{background:var(--brand-accent);color:#111}.stamp.pop{animation:pop .6s cubic-bezier(.2,1.6,.4,1)}.progress-copy{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.progress-copy b{font-weight:800;font-size:1.02rem}.progress-copy span{color:var(--muted);font-size:.85rem}.reward-line{display:flex;gap:10px;align-items:center;background:var(--surface-2);border-radius:12px;padding:10px 12px;font-size:.92rem}.reward-line .icon{color:var(--brand-ink)}.history{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#0a141080;display:flex;align-items:flex-end;justify-content:center;z-index:20;animation:fade .2s}.modal{background:var(--surface);width:100%;max-width:520px;border-radius:22px 22px 0 0;padding:18px 18px calc(env(safe-area-inset-bottom) + 22px);animation:up .25s ease;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0;font-weight:800}.redeem-box{text-align:center;padding:12px 0 4px;display:grid;justify-items:center;gap:4px}.gift-badge{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand-accent) 22%,var(--surface));color:var(--brand-ink)}.reward-big{font-size:1.35rem;font-weight:800;margin:6px 0 0}.member-box{background:color-mix(in srgb,var(--brand) 8%,var(--surface));border-radius:var(--r-card);padding:14px;margin:10px 0;display:grid;gap:6px}.member-plan{font-weight:700;color:var(--brand-ink);font-size:.9rem}.member-big{display:flex;align-items:baseline;gap:8px}.member-big big{font-size:2.3rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.member-big span{color:var(--muted)}.bar{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar i{display:block;height:100%;background:var(--brand);border-radius:999px}.spinner{width:36px;height:36px;border-radius:50%;border:4px solid color-mix(in srgb,var(--brand) 20%,transparent);border-top-color:var(--brand);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{transform:scale(.3)}60%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes slide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(40px);opacity:.5}}@media (min-width: 560px){.modal{border-radius:22px;margin-bottom:10vh}.modal-backdrop{align-items:center}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.legal-text{font-size:.9rem;line-height:1.55;color:var(--ink)}.legal-text h3{font-size:.95rem;font-weight:800;margin:14px 0 4px}.legal-text p{margin:6px 0}.legal-text ul{margin:4px 0 8px;padding-left:20px}.legal-text li{margin:2px 0}.legal-scroll{max-height:62vh;overflow-y:auto;margin-top:8px;padding-right:4px}.legal-links{display:grid;gap:6px;margin:8px 0 12px;justify-items:start}.link.inline{padding:0;font-size:inherit;color:var(--brand-ink);display:inline}.section-title{font-size:1.05rem;font-weight:800;margin:18px 0 2px}
