:root{--ink:#1e1a16;--ink-soft:#3a332c;--muted:#6b6258;--ground:#ede7dc;--paper:#faf7f2;--maroon:#7a1b22;--maroon-deep:#5c1219;--brass:#a8823f;--moss:#3d5a45;--error:#b3261e;--line:rgba(30,26,22,0.14);--line-strong:rgba(30,26,22,0.28);--serif:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;--sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;--r-sm:10px;--r-md:16px;--r-pill:999px;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}img,svg{display:block;max-width:100%}h1,h2,h3{margin:0;font-weight:500}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--maroon);outline-offset:3px;border-radius:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:var(--r-pill);border:1px solid transparent;font-weight:600;font-size:15px;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ink{background:var(--ink);color:var(--paper)}.btn-ink:hover:not(:disabled){background:var(--ink-soft)}.btn-maroon{background:var(--maroon);color:#fff}.btn-maroon:hover:not(:disabled){background:var(--maroon-deep)}.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover:not(:disabled){background:rgba(30,26,22,.05)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:0 14px;font-size:14px}.linklike{background:none;border:0;padding:0;color:var(--maroon);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.field{display:grid;grid-gap:6px;gap:6px}.field>span{font-size:14px;font-weight:600;color:var(--ink-soft)}.field small{color:var(--muted);font-size:13px}.input,.select,.textarea{width:100%;min-height:48px;padding:12px 14px;background:#fff;border:1px solid var(--line-strong);border-radius:var(--r-sm);font-size:16px}.textarea{min-height:96px;resize:vertical;line-height:1.45}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(122,27,34,.15)}.phone-input{display:flex;align-items:stretch}.phone-input .prefix{display:flex;align-items:center;padding:0 12px;border:1px solid var(--line-strong);border-right:0;border-radius:var(--r-sm) 0 0 var(--r-sm);background:var(--ground);font-weight:600;color:var(--ink-soft)}.phone-input .input{border-radius:0 var(--r-sm) var(--r-sm) 0;letter-spacing:.04em}.check{display:grid;grid-template-columns:22px 1fr;grid-gap:10px;gap:10px;align-items:start;font-size:14px;color:var(--ink-soft);cursor:pointer}.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--maroon)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{min-height:40px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:#fff;cursor:pointer;font-weight:500}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.error-text{color:var(--error);font-size:14px;font-weight:500}.notice{padding:12px 14px;border-radius:var(--r-sm);font-size:14px}.notice-ok{background:rgba(61,90,69,.12);color:var(--moss)}.notice-warn{background:rgba(168,130,63,.16);color:#6d5222}.notice-error{background:rgba(179,38,30,.1);color:var(--error)}.site{min-height:100dvh;display:flex;flex-direction:column}.site-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;max-width:1120px;width:100%;margin:0 auto}.wordmark{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:.02em;text-decoration:none}.wordmark-sub{font-size:13px;color:var(--muted)}.site-main{flex:1 1;width:100%;max-width:1120px;margin:0 auto;padding:8px 20px 48px}.join-grid{display:grid;grid-gap:28px;gap:28px;grid-template-areas:"intro" "form" "steps"}.join-intro{grid-area:intro}.join-form-wrap{grid-area:form}.join-steps{grid-area:steps}@media (min-width:920px){.join-grid{grid-template-columns:1.05fr 1fr;grid-template-areas:"intro form" "steps form";column-gap:56px;row-gap:0;align-items:start;padding-top:24px}.join-form-wrap{position:-webkit-sticky;position:sticky;top:24px}}.headline{font-family:var(--serif);font-weight:500;font-size:clamp(36px,8.4vw,60px);line-height:1.04;letter-spacing:-.01em;max-width:14ch;text-wrap:balance}.lede{margin-top:14px;color:var(--ink-soft);font-size:17px;max-width:46ch}.steps{list-style:none;padding:0;margin:0;display:grid;grid-gap:14px;gap:14px;max-width:460px}.steps li{display:grid;grid-template-columns:34px 1fr;grid-gap:12px;gap:12px;align-items:start}.steps .n{width:30px;height:30px;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;font-family:var(--serif);font-size:15px}.steps b{display:block;font-weight:600}.steps span{color:var(--muted);font-size:14px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px 20px;box-shadow:0 1px 0 rgba(30,26,22,.04),0 18px 40px -28px rgba(30,26,22,.45)}@media (min-width:520px){.panel{padding:30px 28px}}.panel-title{font-family:var(--serif);font-size:28px;line-height:1.15}.panel-sub{color:var(--muted);font-size:14px;margin-top:6px}.stack{display:grid;grid-gap:18px;gap:18px}.fine{color:var(--muted);font-size:13px;line-height:1.45}.tag{position:relative;isolation:isolate;width:100%;max-width:380px;padding:44px 26px 26px;border-radius:22px;color:var(--paper);background-color:var(--maroon);background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(0,0,0,.07) 0 1px,transparent 1px 4px),radial-gradient(120% 90% at 20% 0,rgba(255,255,255,.12),transparent 60%);box-shadow:0 24px 48px -26px rgba(60,10,14,.8)}.tag:before{inset:9px;border-radius:15px;border:1.5px dashed rgba(224,190,120,.75);pointer-events:none;z-index:-1}.tag:after,.tag:before{content:"";position:absolute}.tag:after{top:14px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--ground);box-shadow:inset 0 2px 3px rgba(0,0,0,.35),0 0 0 3px rgba(224,190,120,.55)}.tag-store{font-size:17px;letter-spacing:.03em;opacity:.9}.tag-amount,.tag-store{font-family:var(--serif)}.tag-amount{font-size:64px;line-height:.95;margin-top:10px;font-weight:500}.tag-amount small{font-size:26px;margin-left:6px}.tag-terms{margin-top:10px;font-size:14px;opacity:.88}.tag-code{margin-top:18px;padding-top:16px;border-top:1px dashed rgba(224,190,120,.6);display:flex;align-items:center;justify-content:space-between;gap:12px}.tag-code .code{font-size:24px;font-weight:700;letter-spacing:.12em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tag-code .code.masked{opacity:.55;letter-spacing:.18em}.tag-qr{margin-top:18px;background:#fff;border-radius:14px;padding:12px}.tag-qr svg{width:100%;height:auto}.tag.is-muted{background-color:#5b534b;box-shadow:none}.tag-status{display:inline-block;margin-top:12px;padding:4px 12px;border-radius:var(--r-pill);background:rgba(255,255,255,.16);font-size:13px;font-weight:600}.tag-wrap{display:flex;justify-content:center}@media (min-width:920px){.join-intro .tag-wrap{justify-content:flex-start;margin-top:32px}.join-steps{margin-top:32px}}.join-intro .tag-wrap{margin-top:24px}.ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}.ticker-track{display:flex;width:max-content;animation:ticker 38s linear infinite}.ticker-track span{padding:14px 18px;font-family:var(--serif);font-size:18px;white-space:nowrap;color:var(--ink-soft)}.ticker-track span:after{content:"✺";margin-left:36px;color:var(--brass);font-family:var(--sans);font-size:14px}@keyframes ticker{to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}}.site-footer{padding:22px 20px 32px;text-align:center;color:var(--muted);font-size:13px}.coupon-page{max-width:440px;margin:0 auto;display:grid;grid-gap:22px;gap:22px}.coupon-page .tag{max-width:none}.coupon-hello{font-family:var(--serif);font-size:34px;line-height:1.1}.coupon-actions{display:grid;grid-gap:10px;gap:10px}.ig-card{display:grid;grid-template-columns:44px 1fr;grid-gap:14px;gap:14px;align-items:center}.ig-badge{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:var(--paper)}.otp-input{text-align:center;font-size:28px;letter-spacing:.5em;font-weight:700;padding-left:.5em}.app{min-height:100dvh;display:grid;grid-template-columns:1fr}@media (min-width:900px){.app{grid-template-columns:232px 1fr}}.sidebar{background:var(--ink);color:var(--paper);padding:18px 16px;display:flex;flex-direction:column;gap:18px}.sidebar .wordmark{color:var(--paper);font-size:22px}.sidebar nav{display:flex;gap:4px;overflow-x:auto}@media (min-width:900px){.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100dvh}.sidebar nav{flex-direction:column;overflow:visible}}.navlink{display:block;padding:9px 12px;border-radius:var(--r-sm);text-decoration:none;color:rgba(250,247,242,.78);font-size:15px;white-space:nowrap}.navlink:hover{background:rgba(250,247,242,.08);color:var(--paper)}.navlink[aria-current=page]{background:rgba(250,247,242,.14);color:#fff;font-weight:600}.sidebar-foot{margin-top:auto;font-size:13px;color:rgba(250,247,242,.6);display:none}@media (min-width:900px){.sidebar-foot{display:block}}.sidebar-foot button{background:none;border:0;color:rgba(250,247,242,.85);padding:0;margin-top:6px;cursor:pointer;text-decoration:underline}.content{padding:22px 18px 60px;min-width:0}@media (min-width:900px){.content{padding:34px 40px 80px}}.page-head{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.page-title{font-family:var(--serif);font-size:34px;line-height:1.1}.page-sub{color:var(--muted);margin-top:4px}.box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:20px}.box+.box{margin-top:18px}.box-title{font-weight:700;font-size:16px;margin-bottom:4px}.box-sub{color:var(--muted);font-size:14px;margin-bottom:16px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}@media (min-width:1100px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px}.stat-label{color:var(--muted);font-size:14px}.stat-value{font-family:var(--serif);font-size:34px;line-height:1.1;margin-top:6px;font-feature-settings:lining-nums tabular-nums;font-variant-numeric:lining-nums tabular-nums}.stat-note{color:var(--muted);font-size:13px;margin-top:2px}.bars{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));grid-gap:6px;gap:6px;align-items:end;height:140px}.bar{display:flex;flex-direction:column;justify-content:end;align-items:center;height:100%;gap:6px}.bar i{display:block;width:100%;min-height:2px;border-radius:4px 4px 0 0;background:var(--maroon)}.bar.is-zero i{background:var(--line)}.bar span{font-size:11px;color:var(--muted)}.bar b{font-size:12px;font-weight:600}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-weight:600;color:var(--muted);white-space:nowrap;background:rgba(237,231,220,.5)}td,th{padding:11px 14px;border-bottom:1px solid var(--line)}td{vertical-align:top}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;white-space:nowrap;background:rgba(30,26,22,.08);color:var(--ink-soft)}.badge-ok{background:rgba(61,90,69,.14);color:var(--moss)}.badge-warn{background:rgba(168,130,63,.18);color:#6d5222}.badge-bad{background:rgba(179,38,30,.1);color:var(--error)}.badge-maroon{background:rgba(122,27,34,.1);color:var(--maroon)}.form-grid{display:grid;grid-gap:16px;gap:16px}@media (min-width:700px){.form-grid.two{grid-template-columns:1fr 1fr}}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.toggle-row:last-child{border-bottom:0}.toggle-row b{display:block;font-weight:600}.toggle-row span{color:var(--muted);font-size:14px}.switch{width:22px;height:22px;accent-color:var(--maroon);flex:none}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.preview-bubble{background:#fff;border-radius:4px 14px 14px 14px;padding:12px 14px;box-shadow:0 1px 1px rgba(0,0,0,.08);white-space:pre-wrap;font-size:15px;max-width:420px}.preview-bg{background:#e8dfd2;border-radius:var(--r-md);padding:16px}.preview-img{height:120px;border-radius:8px;background:var(--ground) center/cover no-repeat;margin-bottom:10px;display:grid;place-items:center;color:var(--muted);font-size:13px}.redeem{max-width:560px}.result-card{border-radius:var(--r-md);border:1px solid var(--line);background:#fff;padding:18px}.result-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.result-name{font-weight:700;font-size:18px}.result-amount{font-family:var(--serif);font-size:34px;line-height:1}.payable{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0 0;margin-top:14px;border-top:1px dashed var(--line-strong)}.payable b{font-family:var(--serif);font-size:30px;font-weight:500}.success-big{text-align:center;padding:28px 18px}.success-big .tick{width:64px;height:64px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;background:var(--moss);color:#fff;font-size:30px}.scanner{border-radius:var(--r-md);overflow:hidden;background:#000}.scanner video{width:100%!important;height:auto!important;display:block}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:20px}.login-wrap .panel{width:100%;max-width:400px}.poster{width:100%;max-width:560px;margin:0 auto;background:var(--paper);border-radius:24px;padding:40px 36px;text-align:center;border:1px solid var(--line)}.poster .wordmark{font-size:38px;display:block}.poster h2{font-family:var(--serif);font-size:46px;line-height:1.05;margin:22px 0 10px}.poster .qr{width:300px;margin:24px auto;padding:14px;background:#fff;border-radius:18px;border:1.5px dashed var(--brass)}.poster p{color:var(--ink-soft);font-size:18px}@media print{@page{size:A4;margin:14mm}body{background:#fff}.no-print,.sidebar{display:none!important}.app{display:block}.content,.poster{padding:0}.poster{border:0;max-width:none}}.unlock{border:1.5px solid var(--ink)}.unlock-head{display:grid;grid-template-columns:44px 1fr;grid-gap:14px;gap:14px;align-items:start}.unlock-steps{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px;counter-reset:u}.unlock-steps li{display:grid;grid-template-columns:28px 1fr;grid-gap:10px;gap:10px;align-items:center;counter-increment:u}.unlock-steps li:before{content:counter(u);width:26px;height:26px;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;font-family:var(--serif);font-size:14px}.unlock-steps li.is-done:before{content:"✓";background:var(--moss);border-color:var(--moss);color:#fff;font-family:var(--sans)}.review-prompts{margin:0;padding:0 0 0 18px;display:grid;grid-gap:6px;gap:6px;color:var(--ink-soft);font-size:15px}.review-prompts li::marker{color:var(--brass)}