:root{font-family:system-ui,sans-serif;color-scheme:light dark}main{max-width:32rem;margin:4rem auto;padding:0 1rem}form{display:flex;flex-direction:column;gap:.75rem}input,button{font:inherit;padding:.5rem .75rem}nav{display:flex;gap:1rem;font-size:.9rem}nav a{cursor:pointer;text-decoration:underline}header{display:flex;gap:1rem;align-items:center;font-size:.9rem}header span{flex:1}button.link{background:none;border:none;text-decoration:underline;cursor:pointer;padding:0}pre{background:#7f7f7f1a;padding:.75rem;overflow:auto}.message{color:#c0392b}section{margin-top:2rem;display:flex;flex-direction:column;gap:.75rem}section h2{font-size:1.1rem;margin:0}ul.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}ul.list li{display:flex;gap:1rem;align-items:center;justify-content:space-between}.small{font-size:.85rem;opacity:.75}.codes{columns:2;font-family:ui-monospace,monospace}:root{--page: #efeef2;--panel: #ffffff;--ink: #16141c;--muted: #5c5868;--line: #dad8e0;--accent: #6a32d9;--paper: #fdfcfa;--paper-ink: #111015;--paper-muted: #55515f;--display: "Sora", system-ui, sans-serif;--body: "IBM Plex Sans", system-ui, sans-serif;--ease: cubic-bezier(.22, 1, .36, 1)}@media(prefers-color-scheme:dark){:root{--page: #0f0e13;--panel: #18161e;--ink: #eeedf3;--muted: #9d99aa;--line: #2b2833;--accent: #b08cff}}main.wide{max-width:64rem}.chrome a,.shops a{color:inherit}.eyebrow{font:600 .72rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}button.primary{font:600 .95rem/1 var(--body);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:0 1.25rem;border:0;border-radius:999px;background:var(--accent);color:#fff;cursor:pointer;transition:transform .16s var(--ease),filter .16s var(--ease)}button.primary:hover{filter:brightness(1.08)}button.primary:active{transform:scale(.98)}button.primary svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}button.quiet{font:500 .95rem/1 var(--body);min-height:2.75rem;padding:0 1.25rem;border-radius:999px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink)}:is(button,a):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.monogram{--h2: calc(var(--hue) + 40);flex:none;display:grid;place-items:center;color:#fff;width:2.5rem;height:2.5rem;border-radius:.8rem;font:700 1.05rem/1 var(--display);background:radial-gradient(90% 70% at 15% 10%,oklch(.78 .13 var(--hue)) 0%,transparent 55%),radial-gradient(70% 80% at 95% 95%,oklch(.22 .08 var(--h2)) 0%,transparent 60%),radial-gradient(60% 60% at 72% 22%,oklch(.55 .16 var(--hue)) 0%,transparent 65%),oklch(.36 .12 var(--h2));box-shadow:inset 0 0 0 1px #ffffff1f}.monogram.lg{width:3.25rem;height:3.25rem;border-radius:1rem;font-size:1.4rem}section.shops{margin-top:2.5rem;gap:1.25rem;font-family:var(--body)}.shops-head{display:grid;gap:.4rem}.shops-head h2{font:700 1.5rem/1.15 var(--display);margin:0;letter-spacing:-.01em}.shops-head p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.5}.shop{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}header.shop-head{padding:1rem 1.1rem;gap:.8rem;font-size:1rem}.shop-head h3{margin:0;font:600 1.05rem/1.2 var(--display)}ul.cards{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}ul.cards li+li{border-top:1px solid var(--line)}ul.cards a{display:grid;grid-template-columns:1fr auto;grid-template-areas:"text go" "standing go";gap:.35rem 1rem;align-items:center;padding:.95rem 1.1rem;text-decoration:none;transition:background .16s var(--ease)}ul.cards a:hover{background:color-mix(in oklch,var(--accent) 6%,transparent)}.card-text{grid-area:text;display:grid;gap:.15rem}.card-name{font-weight:600}.card-reward{font-size:.88rem;color:var(--muted)}.standing{grid-area:standing;justify-self:start;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem;color:var(--muted)}.standing:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.standing.active{color:#2a904b}.standing.frozen{color:#c8800d}.card-go{grid-area:go;display:inline-flex;align-items:center;gap:.3rem;font-weight:600;font-size:.9rem;color:var(--accent)}.card-go svg,a.back svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}ul.cards a:hover .card-go svg{transform:translate(2px);transition:transform .16s var(--ease)}.state{display:grid;justify-items:start;gap:.6rem;padding:1.75rem 1.5rem;border:1px solid var(--line);border-radius:16px;background:var(--panel);font-family:var(--body)}.state.compact{border:0;border-top:1px solid var(--line);border-radius:0;padding:1.25rem 1.1rem}.state h2,.state h4{margin:.25rem 0 0;font:700 1.25rem/1.2 var(--display)}.state h4{font-size:1rem}.state p{margin:0;color:var(--muted);line-height:1.5;max-width:34rem}.state-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.6rem}.state-mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.9rem;color:var(--accent);background:color-mix(in oklch,var(--accent) 12%,transparent)}.state.compact .state-mark{width:2.4rem;height:2.4rem;border-radius:.7rem}.state-mark svg{width:60%;height:60%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.code-page{margin-top:2rem;display:grid;grid-template-columns:minmax(15rem,20rem) 1fr;gap:clamp(1.5rem,5vw,4rem);align-items:start;font-family:var(--body)}.code-page.single{grid-template-columns:minmax(0,34rem)}@media(max-width:48rem){.code-page{grid-template-columns:1fr}}.code-aside{display:grid;justify-items:start;gap:.75rem;position:sticky;top:2rem}.code-aside h1{margin:0;font:700 clamp(1.8rem,3.5vw,2.4rem)/1.08 var(--display);letter-spacing:-.02em}.code-aside>p{margin:0 0 .5rem;color:var(--muted);line-height:1.55}.code-aside .small{max-width:17rem}a.back{display:inline-flex;align-items:center;gap:.3rem;font-size:.9rem;font-weight:500;color:var(--muted);text-decoration:none;margin-bottom:1.25rem}a.back:hover{color:var(--ink)}.notice{display:grid;gap:.3rem;padding:.9rem 1rem;border-radius:12px;font-size:.92rem;line-height:1.45;background:color-mix(in oklch,oklch(.75 .14 70) 16%,transparent);border:1px solid color-mix(in oklch,oklch(.75 .14 70) 45%,transparent)}.sheet{justify-self:center;width:min(100%,26rem);aspect-ratio:148 / 210;display:grid;grid-template-rows:auto 1fr auto auto;gap:1.1rem;padding:2rem 2rem 1.6rem;background:var(--paper);color:var(--paper-ink);border-radius:6px;box-shadow:0 1px #0000000a,0 18px 40px -18px #140a2859,0 0 0 1px #0000000f;animation:sheet-in .52s var(--ease) both}@keyframes sheet-in{0%{opacity:0;transform:translateY(10px)}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}header.sheet-head{gap:.85rem;font-size:1rem}.sheet-shop{margin:0;font:700 1.35rem/1.1 var(--display);letter-spacing:-.01em}.sheet-card{font-size:.9rem;color:var(--paper-muted)}.sheet-qr{align-self:center;justify-self:center;width:100%;max-width:19rem;aspect-ratio:1;image-rendering:pixelated}.sheet-qr.none{display:grid;place-content:center;justify-items:center;gap:.5rem;border:1.5px dashed #c9c6d0;border-radius:12px;color:var(--paper-muted);font-weight:600}.sheet-qr.none .state-mark{color:var(--paper-muted);background:#efedf2}.sheet-call{margin:0;text-align:center;font:600 1.1rem/1.3 var(--display)}footer.sheet-reward{display:flex;justify-content:center;align-items:baseline;gap:.6rem;padding-top:.9rem;border-top:1px solid #e4e2e8;font-size:.92rem}.sheet-reward .eyebrow{color:var(--paper-muted)}.sheet.loading{place-items:center;grid-template-rows:auto 1fr auto}.ghost{display:block;height:1rem;border-radius:6px;background:#ecebef;animation:pulse 1.4s ease-in-out infinite}.ghost.w40{width:40%}.ghost.w60{width:60%}.ghost.qr{width:70%;aspect-ratio:1;height:auto}@keyframes pulse{50%{opacity:.5}}@page joining-code{size:A5;margin:12mm}@media print{:root:has(.sheet){color-scheme:light}:root:has(.sheet) body{background:#fff!important;color:#000!important}main:has(.sheet) :is(header.chrome,.code-aside,button){display:none!important}main.wide{max-width:none;margin:0;padding:0}.code-page{display:block;margin:0}.sheet{page:joining-code;width:100%;max-width:124mm;margin:0 auto;aspect-ratio:auto;padding:0;gap:7mm;box-shadow:none;border-radius:0;background:#fff;color:#000;animation:none;break-inside:avoid}.monogram{background:#fff!important;color:#000;box-shadow:inset 0 0 0 .6mm #000;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sheet-card,.sheet-reward .eyebrow{color:#000}.sheet-qr{width:100mm;max-width:none}.sheet-call{font-size:15pt}footer.sheet-reward{border-top:.3mm solid #000;font-size:11pt}}
