@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--pink: #fc377f;--teal: #04b5ca;--peach: #fecbac;--brown: #411f15;--pink-deep: #d6125f;--pink-ink: #b30e51;--pink-soft: #ffe3ee;--teal-deep: #077d8e;--teal-ink: #00606f;--teal-soft: #d9f4f8;--peach-soft: #fff0e6;--cream: #fff7f0;--card: #ffffff;--ink: #411f15;--ink-2: #7a5244;--line: rgb(65 31 21 / .09);--grad-card: linear-gradient(135deg, #04b5ca 0%, #4fa8e0 36%, #c46fc6 68%, #fc377f 100%);--grad-btn: linear-gradient(180deg, #e0186a 0%, #c9115a 100%);--shadow-1: 0 1px 2px rgb(65 31 21 / .07), 0 6px 16px -4px rgb(65 31 21 / .1);--shadow-2: 0 2px 4px rgb(65 31 21 / .08), 0 14px 32px -8px rgb(65 31 21 / .18);--shadow-3: 0 4px 8px rgb(65 31 21 / .1), 0 28px 56px -12px rgb(65 31 21 / .28);--shadow-pink: 0 2px 3px rgb(150 10 70 / .3), 0 10px 22px -6px rgb(214 18 95 / .55);--r-card: 26px;--r-lg: 22px;--r-md: 16px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--t-fast: .14s;--t-med: .22s;--t-slow: .28s;--e-out: cubic-bezier(.22, 1, .36, 1);--e-spring: cubic-bezier(.34, 1.56, .64, 1);--font-display: "Nunito Variable", "Nunito", ui-rounded, system-ui, sans-serif;--font-body: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3,.display{font-family:var(--font-display);font-weight:900;letter-spacing:-.01em;margin:0;line-height:1.08}p{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--teal-ink);outline-offset:3px;border-radius:8px}.app{max-width:480px;margin:0 auto;min-height:100dvh;position:relative}.screen{padding:calc(var(--s-5) + env(safe-area-inset-top)) var(--s-5) calc(120px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--s-5)}.ground:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 40% at 90% -5%,rgb(252 55 127 / .1),transparent 70%),radial-gradient(55% 35% at -10% 8%,rgb(4 181 202 / .1),transparent 70%),var(--cream)}.pressable{transition:transform var(--t-med) var(--e-spring);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.pressable:active{transform:scale(.98);transition-duration:60ms}.eyebrow{font:800 12px/1 var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-ink)}.h-title{font-size:28px}.muted{color:var(--ink-2)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.surface{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow-1)}.surface.raised{box-shadow:var(--shadow-2)}[data-layer]{transform-origin:50% 100%}[data-reveal=playing] [data-layer],[data-reveal=playing] [data-logo]{will-change:transform,opacity}[data-reveal=pending] [data-layer],[data-reveal=pending] [data-welcome-card]{opacity:0}[data-reveal=done] [data-reveal-stage]{display:none}[data-reveal-stage]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--cream);touch-action:manipulation}[data-logo]{position:relative;z-index:30;transform-origin:50% 50%}@keyframes m-fade{0%{opacity:.35}to{opacity:1}}.m-fade{animation:m-fade .12s linear both}[data-shimmer]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transform:translate(-130%);background:linear-gradient(105deg,transparent 30%,rgb(255 255 255 / .65) 50%,transparent 70%)}::view-transition-group(root){animation-duration:.22s;animation-timing-function:var(--e-out)}::view-transition-old(root){animation:.22s var(--e-out) both vt-out}::view-transition-new(root){animation:.22s var(--e-out) both vt-in}@keyframes vt-out{to{opacity:0;transform:translate(-12px)}}@keyframes vt-in{0%{opacity:0;transform:translate(12px)}}html[data-dir=back]::view-transition-old(root){animation-name:vt-out-back}html[data-dir=back]::view-transition-new(root){animation-name:vt-in-back}@keyframes vt-out-back{to{opacity:0;transform:translate(12px)}}@keyframes vt-in-back{0%{opacity:0;transform:translate(-12px)}}.skeleton{position:relative;overflow:hidden;background:var(--peach-soft);border-radius:var(--r-md)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,#fff,transparent);transform:translate(-100%);animation:sk 1.6s linear infinite}@keyframes sk{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){::view-transition-group(root){animation:none!important}::view-transition-old(root){animation:.12s linear both vt-fade-out!important}::view-transition-new(root){animation:.12s linear both vt-fade!important}@keyframes vt-fade{0%{opacity:0}to{opacity:1}}@keyframes vt-fade-out{to{opacity:0}}.pressable,.pressable:active{transition:none;transform:none}.skeleton:after{animation:none}}[data-motion-pause] *,[data-motion-pause] *:before,[data-motion-pause] *:after{transition:none!important;animation:none!important}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-display);font-weight:900;letter-spacing:.005em;border-radius:var(--r-lg);position:relative;overflow:hidden}.btn-md{min-height:52px;padding:0 22px;font-size:17px}.btn-lg{min-height:64px;padding:0 26px;font-size:20px;border-radius:24px}.btn-primary{color:#fff;background:var(--grad-btn);box-shadow:inset 0 1px #ffffff59,inset 0 -2px #78003240,var(--shadow-pink)}.btn-primary:before{content:"";position:absolute;left:8%;right:8%;top:4px;height:38%;border-radius:999px;pointer-events:none;background:linear-gradient(180deg,#ffffff52,#fff0)}.btn-secondary{color:var(--teal-ink);background:var(--teal-soft);box-shadow:inset 0 0 0 2px #077d8e47}.btn-ghost{color:var(--ink-2);background:transparent;min-height:44px;font-size:15px;font-weight:800}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{min-height:40px;padding:0 16px;font-size:15px;width:auto;border-radius:14px}.c-app .sk-card{height:252px;border-radius:var(--r-card)}.c-app .sk-rows{padding:6px 4px}.c-app .sk-row{display:flex;align-items:center;gap:14px;padding:12px 14px}.c-app .sk-icon{width:40px;height:40px;border-radius:14px;flex:none}.c-app .sk-lines{flex:1;display:flex;flex-direction:column;gap:8px}.c-app .sk-line{height:12px;border-radius:6px}.c-app .sk-line.short{width:55%}.c-app .fade-in{animation:fade-in .15s linear both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.c-app .empty{padding:22px;text-align:center;font-weight:600}.c-app .pill-done{font:900 13px/1 var(--font-display);color:var(--teal-ink);background:var(--teal-soft);padding:9px 12px;border-radius:999px}.c-app .notice{padding:12px 14px;border-radius:var(--r-md);font-size:14px;font-weight:600;background:var(--pink-soft);color:var(--pink-ink)}.c-app .notice.ok{background:var(--teal-soft);color:var(--teal-ink)}.c-app .qr{background:#fff;border-radius:20px;padding:6px;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line)}.c-app .qr img{display:block;width:100%;height:100%;image-rendering:pixelated;border-radius:14px}.c-app .sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:#411f156b;animation:fade-in .18s linear both}.c-app .sheet{width:100%;max-width:380px;max-height:92dvh;overflow:auto;outline:none;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:24px 22px 20px;border-radius:var(--r-card);background:var(--card);box-shadow:var(--shadow-3);animation:sheet-in .28s var(--e-out) both;will-change:transform,opacity}@keyframes sheet-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}.c-app .sheet-title{font-size:28px}.c-app .sheet-sub{font-size:15px;max-width:28ch}.c-app .code-text{font:900 30px/1 var(--font-display);letter-spacing:.1em;color:var(--ink);margin-top:4px}.c-app .sheet-actions{width:100%;display:flex;flex-direction:column;gap:4px;margin-top:6px}.c-app .single-use{font-size:13px;font-weight:600;color:var(--ink-2)}@media (prefers-reduced-motion: reduce){.c-app .sheet{animation:fade-in .15s linear both}.c-app .sheet-wrap{animation:none}.c-app .fade-in{animation-duration:.12s}}.c-app .load-error{padding:18px;display:flex;flex-direction:column;gap:14px}.c-app .field small.err{color:var(--pink-ink);font-weight:600}.logo-stack{position:relative;width:100%;aspect-ratio:1600 / 639;filter:drop-shadow(0 6px 10px rgb(65 31 21 / .12))}.logo-stack img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.welcome{overflow:hidden}.welcome-screen{min-height:100dvh;justify-content:center;padding-top:calc(var(--s-6) + env(safe-area-inset-top));padding-bottom:var(--s-6);gap:44px}.welcome-logo{padding:0 4px}.welcome-card{position:relative;padding:30px 24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.welcome-mark{width:58px;height:58px;margin-top:-58px;filter:drop-shadow(0 6px 8px rgb(150 10 70 / .3))}.welcome-title{font-size:34px;line-height:1.04}.welcome-sub{font-size:16px;max-width:28ch}.welcome-actions{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:14px}.staff-link{margin-top:6px;font:800 14px/1 var(--font-display);color:var(--ink-2);padding:12px 16px;text-decoration:none}.staff-link:hover{color:var(--pink-ink)}.dot{position:absolute;z-index:-1;border-radius:999px;pointer-events:none}.d1{width:12px;height:32px;background:var(--pink);left:6%;top:7%;transform:rotate(32deg);opacity:.8}.d2{width:11px;height:28px;background:var(--teal);right:7%;top:9%;transform:rotate(-24deg);opacity:.8}.d3{width:11px;height:28px;background:var(--peach);right:14%;bottom:5%;transform:rotate(48deg)}.d4{width:10px;height:26px;background:var(--pink);left:12%;bottom:6%;transform:rotate(-52deg);opacity:.6}.c-app .auth-screen{gap:20px}.c-app .auth-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.c-app .back{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--card);cursor:pointer;width:44px;height:44px;border-radius:16px;display:grid;place-items:center;box-shadow:var(--shadow-1);color:var(--ink)}.c-app .back svg{width:22px;height:22px}.c-app .auth-card{padding:24px 20px 20px;display:flex;flex-direction:column;gap:16px}.c-app .auth-title{font-size:32px;line-height:1.04}.c-app .auth-sub{font-size:15px;margin-top:6px}.c-app .form{display:flex;flex-direction:column;gap:14px}.c-app .field{display:flex;flex-direction:column;gap:6px}.c-app .field>span{font:800 14px/1 var(--font-display);color:var(--ink)}.c-app .field input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:52px;padding:0 16px;border-radius:var(--r-md);border:2px solid var(--line);background:#fff;color:var(--ink);font:500 17px/1 var(--font-body);box-shadow:inset 0 1px 2px #411f150d;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.c-app .field input::placeholder{color:var(--ink-2)}.c-app .field input:focus{outline:none;border-color:var(--teal-deep);box-shadow:0 0 0 4px var(--teal-soft)}.c-app .field input[aria-invalid=true]{border-color:var(--pink-deep)}.c-app .field small{font-size:13px;color:var(--ink-2)}.c-app .auth-links{display:flex;flex-direction:column;align-items:center;gap:2px}.c-app .link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;cursor:pointer;font:800 15px/1 var(--font-display);color:var(--teal-ink);padding:12px 14px;text-decoration:none}.c-app .link:hover{color:var(--pink-ink)}.c-app .page-head{display:flex;flex-direction:column;gap:4px}.c-app .present-card{padding:26px 20px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.c-app .present-card .qr{box-shadow:var(--shadow-1),inset 0 0 0 1px var(--line);padding:10px}.c-app .member-label{font:800 12px/1 var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-ink)}.c-app .present-code{font:900 54px/1 var(--font-display);letter-spacing:.06em;color:var(--ink);font-variant-numeric:tabular-nums}.c-app .present-hint{font-size:15px;max-width:28ch}.c-app .wallet-btn{width:100%}.c-app .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.c-app .stat{padding:14px 10px 12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.c-app .stat b{font:900 32px/1 var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums}.c-app .stat.hot b{color:var(--pink-ink)}.c-app .stat span{font:800 12px/1.15 var(--font-display);color:var(--ink-2)}.c-app .reward-actions{display:flex;flex-direction:column;gap:12px}.c-app .reward-hint{font-size:14px;text-align:center}.c-app .codes-list{list-style:none;margin:0;padding:6px 4px}.c-app .code-row{display:flex;align-items:center;gap:12px;padding:12px 14px}.c-app .code-row+.code-row{border-top:1px solid var(--line)}.c-app .code-row .act-main{flex:1}.c-app .code-row .act-title{font-family:var(--font-display);font-weight:900;letter-spacing:.06em}.c-app .profile-head{padding:22px 20px;display:flex;align-items:center;gap:16px}.c-app .cust-avatar{width:64px;height:64px;border-radius:22px;flex:none;display:grid;place-items:center;font:900 26px/1 var(--font-display);color:#fff;background:var(--grad-card);box-shadow:inset 0 1px #fff6,var(--shadow-1)}.c-app .profile-name{font-size:24px}.c-app .profile-mail{font-size:14px;overflow-wrap:anywhere}.c-app .facts{margin:0;padding:6px 4px}.c-app .fact{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 16px}.c-app .fact+.fact{border-top:1px solid var(--line)}.c-app .fact dt{font:800 14px/1.2 var(--font-display);color:var(--ink-2);flex:none}.c-app .fact dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}.c-app .danger-link{color:var(--pink-ink)}.c-app .confirm-actions{width:100%;display:flex;flex-direction:column;gap:4px;margin-top:8px}@media (prefers-reduced-motion: reduce){.c-app .field input{transition:none}}.stamp-card{position:relative;border-radius:28px;overflow:hidden;background:var(--card);box-shadow:var(--shadow-3);transform-style:preserve-3d}.sc-top{position:relative;padding:24px 18px 22px;background:var(--grad-card);box-shadow:inset 0 1px #ffffffb3,inset 0 -14px 28px #960a462e}.sc-top:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M60 18c20 0 34 12 34 28S78 72 60 72 30 62 30 52s12-18 28-18 22 8 22 16-8 12-18 12'/%3E%3Cpath d='M20 100c14-8 26-8 40 0s26 8 40 0'/%3E%3Cpath d='M10 112c16-8 30-8 50 0s34 8 50 0' opacity='.6'/%3E%3C/svg%3E");background-size:120px 120px}.sc-top:after{content:"";position:absolute;left:7%;top:9px;width:56%;height:13px;border-radius:999px;pointer-events:none;background:linear-gradient(90deg,#ffffffd9,#ffffff0d);transform:rotate(-3deg);opacity:.7}.sc-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.slot{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;background:#ffffff38;box-shadow:inset 0 3px 6px #411f1533,0 1px #fff6;border:2px dashed rgb(255 255 255 / .85)}.slot.is-filled{background:radial-gradient(circle at 32% 26%,#fff,#fff 55%,#ffeaf2);border:0;box-shadow:0 2px 3px #411f1538,0 8px 14px -4px #78003273,inset 0 -3px 5px #fc377f2e}.slot-mark{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 2px 2px rgb(150 10 70 / .3))}.slot.is-treat{border-color:var(--peach);border-style:solid;background:#ffcbac47}.slot-gift{width:52%;height:52%;color:#fff;filter:drop-shadow(0 1px 1px rgb(65 31 21 / .4))}.sc-foot{position:relative;display:flex;align-items:center;gap:12px;padding:16px 16px 18px;background:var(--card)}.ring{position:relative;width:52px;height:52px;flex:none}.ring svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--pink-soft);stroke-width:5}.ring-layer{fill:none;stroke:var(--pink);stroke-width:5;stroke-linecap:round;opacity:0;transition:opacity var(--t-slow) var(--e-out)}.ring-layer.on{opacity:1}.ring img{position:absolute;top:14px;right:14px;bottom:14px;left:14px;width:24px;height:24px;object-fit:contain}.sc-text{flex:1;min-width:0;position:relative}.sc-headline{font:900 18px/1.15 var(--font-display);color:var(--ink)}.sc-sub{font-size:12.5px;color:var(--ink-2);margin-top:3px}.sc-unlocked{display:none}.sc-unlocked .sc-headline{color:var(--pink-ink)}.stamp-card[data-unlocked=true] .sc-main{display:none}.stamp-card[data-unlocked=true] .sc-unlocked{display:block}.roll{display:flex;align-items:baseline;gap:1px;font:1000 26px/1 var(--font-display);color:var(--pink-ink);font-variant-numeric:tabular-nums;flex:none}.roll-window{height:1em;overflow:hidden}.roll-track{transition:transform var(--t-med) var(--e-out)}.roll-track span{display:block;text-align:right;height:1em;line-height:1}.roll-of{font-size:15px;font-weight:800;color:var(--ink-2)}@media (prefers-reduced-motion: reduce){.stamp-card .roll-track{transition:none}.stamp-card .ring-layer{transition:opacity .12s linear}}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:center;padding:0 var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom));pointer-events:none}.tabbar-inner{pointer-events:auto;position:relative;display:grid;grid-template-columns:repeat(4,1fr);width:100%;max-width:448px;padding:6px;background:#ffffffeb;border-radius:26px;box-shadow:var(--shadow-2),0 0 0 1px var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.tab-glide{position:absolute;left:6px;top:6px;bottom:6px;width:calc((100% - 12px)/4);border-radius:20px;background:var(--pink-soft);transition:transform var(--t-med) var(--e-spring)}.tab{position:relative;z-index:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0 8px;font:800 12px/1 var(--font-display);color:var(--ink-2)}.tab svg{width:24px;height:24px}.tab.is-active{color:var(--pink-ink)}@media (prefers-reduced-motion: reduce){.tab-glide{transition:none}}.c-app .card-screen{gap:22px}.c-app .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.c-app .head-logo{width:116px;height:auto;filter:drop-shadow(0 3px 5px rgb(65 31 21 / .12))}.c-app .block{display:flex;flex-direction:column;gap:12px}.c-app .block-title{font-size:20px}.c-app .specials{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--s-5) * -1);padding:6px var(--s-5) 18px;scrollbar-width:none}.c-app .specials::-webkit-scrollbar{display:none}.c-app .special{scroll-snap-align:center;flex:0 0 100%;position:relative;overflow:hidden;padding:18px 18px 16px;border-radius:var(--r-card);background:linear-gradient(150deg,#fff 0%,var(--peach-soft) 60%,#ffe2cf 100%);box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:8px}.c-app .special:after{content:"";position:absolute;right:-26px;top:-26px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fc377f33,#fc377f00 70%);pointer-events:none}.c-app .badge{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;background:var(--pink-soft);color:var(--pink-ink);font:900 12px/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase}.c-app .special-title{font-size:24px}.c-app .special-body{font-size:15px;color:var(--ink-2)}.c-app .special-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}.c-app .special-end{font-size:13px;font-weight:600;color:var(--ink-2)}.c-app .activity{list-style:none;margin:0;padding:6px 4px}.c-app .act-row{display:flex;align-items:center;gap:14px;padding:12px 14px}.c-app .act-row+.act-row{border-top:1px solid var(--line)}.c-app .act-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;flex:none}.c-app .act-icon.stamp{background:var(--pink-soft)}.c-app .act-icon.stamp img{width:26px;height:26px;border-radius:6px}.c-app .act-icon.special{background:var(--teal-soft);color:var(--teal-ink)}.c-app .act-main{flex:1;display:flex;flex-direction:column;min-width:0}.c-app .act-title{font-weight:700;font-size:15px}.c-app .act-when{font-size:13px;color:var(--ink-2)}.c-app .act-delta{font:900 16px/1 var(--font-display);color:var(--pink-ink);background:var(--pink-soft);padding:6px 10px;border-radius:999px}.c-app .special-photo{display:block;width:calc(100% + 36px);margin:-18px -18px 4px;height:150px;object-fit:cover;background:var(--peach-soft);position:relative;z-index:1}.c-app .special .badge,.c-app .special-title,.c-app .special-body,.c-app .special-foot{position:relative;z-index:1}.till-app .till-screen{gap:20px}.till-app .till-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.till-app .staff-chip{background:var(--teal-deep);color:#fff;font:800 13px/1 var(--font-display);padding:9px 13px;border-radius:999px;box-shadow:var(--shadow-1);white-space:nowrap}.till-app .till-who{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0}.till-app .owner-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;position:relative;min-height:36px;padding:0 16px;border-radius:999px;background:var(--pink-soft);color:var(--pink-ink);font:900 14px/1 var(--font-display);box-shadow:var(--shadow-1)}.till-app .owner-link:after{content:"";position:absolute;top:-6px;right:-4px;bottom:-6px;left:-4px}.till-app .member-card{padding:20px 18px 18px;display:flex;flex-direction:column;gap:18px;position:relative;overflow:hidden}.till-app .member-card:before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--grad-card)}.till-app .member-top{display:flex;align-items:center;gap:14px;padding-top:4px}.till-app .avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;flex:none;font:1000 22px/1 var(--font-display);color:#fff;background:var(--grad-btn);box-shadow:inset 0 1px #fff6,var(--shadow-pink)}.till-app .member-id{flex:1;min-width:0}.till-app .member-name{font:1000 26px/1.05 var(--font-display)}.till-app .member-code{font-size:14px;color:var(--ink-2);margin-top:3px;font-variant-numeric:tabular-nums}.till-app .stamps-badge{font:800 16px/1 var(--font-display);color:var(--ink-2);background:var(--pink-soft);padding:9px 12px;border-radius:14px}.till-app .stamps-badge b{font-weight:1000;font-size:22px;color:var(--pink-ink)}.till-app .mini-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px 10px;padding:14px;border-radius:20px;background:var(--peach-soft);box-shadow:inset 0 2px 4px #411f1512}.till-app .mini{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:2px dashed rgb(65 31 21 / .22)}.till-app .mini.is-filled{border:0;background:#fff;box-shadow:0 1px 2px #411f1533,0 5px 9px -3px #960a4666}.till-app .mini img{width:76%;height:76%;object-fit:contain}.till-app .member-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.till-app .member-stats>div{background:var(--cream);border-radius:16px;padding:12px 14px}.till-app .member-stats dt{font-size:12px;font-weight:700;color:var(--ink-2)}.till-app .member-stats dd{margin:4px 0 0;font:1000 26px/1 var(--font-display)}.till-app .till-actions{display:flex;flex-direction:column;gap:12px}.till-app .success{padding:18px;display:flex;align-items:center;gap:16px}.till-app .check{width:64px;height:64px;flex:none}.till-app .check-bg{fill:var(--teal-deep)}.till-app .check-mark{transform-box:fill-box;transform-origin:center;fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.till-app .success-title{font:900 22px/1.1 var(--font-display)}.till-app .success-sub{font-size:15px;margin-top:3px}.till-app .btn{min-height:56px}.till-app .btn-lg{min-height:64px}.till-app .notice{padding:12px 14px;border-radius:var(--r-md);font-size:14px;font-weight:600;background:var(--pink-soft);color:var(--pink-ink)}.till-app .home-card{padding:28px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;position:relative;overflow:hidden}.till-app .home-card:before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--grad-card)}.till-app .home-icon{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--grad-btn);box-shadow:inset 0 1px #fff6,var(--shadow-pink);margin-top:6px}.till-app .home-title{font:1000 24px/1.1 var(--font-display)}.till-app .home-sub{font-size:15px;max-width:30ch}.till-app .enter-card{padding:20px 18px 16px}.till-app .code-card .code-note{font-size:14px}.till-app .code-card .member-code{letter-spacing:.04em;word-break:break-all}.till-app .claimed{padding:18px;display:flex;align-items:center;gap:16px;background:var(--pink-soft);box-shadow:var(--shadow-1),inset 0 0 0 2px var(--pink-deep)}.till-app .claimed-icon{width:64px;height:64px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--pink-deep);color:#fff;font:1000 34px/1 var(--font-display)}.till-app .claimed-title{font:900 22px/1.1 var(--font-display);color:var(--pink-ink)}.till-app .claimed-sub{font-size:15px;font-weight:600;margin-top:3px;color:var(--ink)}.till-app .offline-banner{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);background:var(--ink);color:#fff;font:800 15px/1.2 var(--font-display)}.till-app .offline-banner svg{flex:none}.till-app .offline-banner span{flex:1}.till-app .offline-retry{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;min-height:44px;padding:0 14px;border-radius:12px;background:#ffffff29;color:#fff;font:800 14px/1 var(--font-display)}.till-app .scan-card{padding:16px;display:flex;flex-direction:column;gap:14px}.till-app .scan-card[hidden]{display:none}.till-app .viewfinder{position:relative;aspect-ratio:1;border-radius:22px;overflow:hidden;background:var(--ink);display:grid;place-items:center}.till-app .viewfinder video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s linear}.till-app .viewfinder video.is-live{opacity:1}.till-app .vf-wait{position:relative;color:#fff;font-weight:700;font-size:15px}.till-app .vf-corner{position:absolute;width:38px;height:38px;border:5px solid #fff;border-radius:12px;pointer-events:none}.till-app .vf-corner.tl{top:16px;left:16px;border-right:0;border-bottom:0}.till-app .vf-corner.tr{top:16px;right:16px;border-left:0;border-bottom:0}.till-app .vf-corner.bl{bottom:16px;left:16px;border-right:0;border-top:0}.till-app .vf-corner.br{bottom:16px;right:16px;border-left:0;border-top:0}.till-app .scan-hint{text-align:center;font-weight:700;font-size:15px;color:var(--ink-2)}.keep-row{display:flex;align-items:center;gap:12px;min-height:56px;cursor:pointer;font:700 16px/1.2 var(--font-body);color:var(--ink)}.keep-row input{width:26px;height:26px;flex:none;accent-color:var(--pink-deep)}.c-app .confirm-form{width:100%;text-align:left;margin-top:6px}.c-app .confirm-form .btn-ghost{min-height:56px}
