@font-face{font-family:Bodoni Moda;src:url(/fonts/BodoniModa-opsz.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/Fraunces-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-500.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-600.woff2) format("woff2");font-weight:600;font-display:swap}:root{--night: #1a0a2a;--night-top: #341556;--night-mid: #24103f;--surface: #2a1446;--line: #462866;--ink: #f3eefc;--muted: #bdb3dc;--pink: #ff8fb8;--orchid: #d79bff;--moon: #cfd8ff;--gold: #efb94f;--gold-hi: #f6dca6;--gold-lo: #d9b26e;--on-gold: #1a0d2e;--scrim: rgba(8, 3, 16, .6);--wordmark: "Bodoni Moda", "Bodoni 72", Didot, Georgia, serif;--serif: "Fraunces", Georgia, serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-scale: 1;--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-pill: 999px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--tap: 44px;--tabbar: 76px;--ease-out: cubic-bezier(.2, .7, .2, 1);color-scheme:dark}*,*:before,*:after{box-sizing:border-box;min-width:0}html,body{margin:0;padding:0;overscroll-behavior:none}html{background:var(--night);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{color:var(--ink);font:calc(15px * var(--text-scale)) / 1.45 var(--sans);min-height:100dvh;overscroll-behavior:none}html:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;transform:translateZ(0);background:radial-gradient(90% 55% at 50% 38%,rgba(170,90,210,.22),transparent 70%),linear-gradient(180deg,var(--night-top) 0%,var(--night-mid) 45%,var(--night) 100%)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.wordmark{font-family:var(--wordmark);font-weight:500;font-variation-settings:"opsz" 11;letter-spacing:-.015em;line-height:1.05;margin:0}.wordmark .c{color:var(--gold)}.serif{font-family:var(--serif);font-style:italic;font-weight:500}.muted{color:var(--muted)}.label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;border-radius:var(--r-pill);border:0;background:linear-gradient(180deg,var(--gold-hi),var(--gold-lo));color:var(--on-gold);font-weight:600;font-size:16px}.btn-secondary{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;border-radius:var(--r-pill);border:1px solid var(--line);background:transparent;color:var(--ink);font-weight:500}.btn-text{border:0;background:none;color:var(--muted);min-height:var(--tap);padding:0 var(--s2)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s4)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0s!important;transition-duration:1ms!important}}.shell{max-width:440px;margin:0 auto;min-height:100dvh;position:relative}.view{min-height:100dvh;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 22px) 0 calc(env(safe-area-inset-bottom) + var(--tabbar) + 12px)}.head{padding:0 22px;display:flex;flex-direction:column;gap:8px}.head .date{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.head .wordmark{font-size:40px}.mirror{margin:10px 22px 0;font-size:14px;color:var(--muted)}.title{padding:0 22px;font-size:30px;margin:0}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;border-top:1px solid var(--line);background:#1a0a2aeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:6px 18px calc(env(safe-area-inset-bottom) + 10px)}.tabbar .in{max-width:440px;margin:0 auto;display:flex;justify-content:space-around}.tabbar button{border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;min-width:88px;min-height:52px;justify-content:center;font-size:11px;font-weight:500}.tabbar button[aria-current=page]{color:var(--gold);font-weight:600}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:8px 0;min-height:360px}.jar-svg{width:min(68vw,262px);height:auto;overflow:visible}.progress{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:15px}.progress b{font-weight:600}.bar{width:62%;max-width:240px;height:6px;border-radius:3px;background:#ffffff1f;overflow:hidden}.bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--pink),var(--orchid),var(--gold));transition:width .6s var(--ease-out)}.slots{padding:0 18px;display:flex;flex-direction:column;gap:8px}.slot-empty{width:100%;text-align:left;border:1px dashed var(--line);border-radius:18px;background:#2a14468c;padding:18px;display:flex;align-items:center;gap:14px;min-height:76px;color:var(--ink)}.slot-empty .plus{width:40px;height:40px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;flex:none}.slot-empty .t{font-size:19px}.slot-empty .s{font-size:13px;color:var(--muted)}.shelf-head{padding:14px 22px 0;display:flex;justify-content:space-between;align-items:baseline}.shelf-head .serif{font-size:24px}.empty{margin:40px 28px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:14px}.plank{height:12px;border-radius:4px;background:linear-gradient(180deg,#8a5a3a,#5b3824);box-shadow:0 10px 22px #0006,inset 0 1px #ffdcb440}.groups{padding:18px 18px 24px;display:flex;flex-direction:column;gap:22px}.group{display:flex;flex-direction:column;gap:8px}.group>.label{padding-left:4px}.rows{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);overflow:hidden}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;min-height:52px;border-bottom:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-top:0;text-align:left;color:var(--ink)}.rows>.row:last-child{border-bottom:0}.row .t{font-size:15px;display:block}.row .d{font-size:13px;color:var(--muted);display:block}.switch{width:50px;height:30px;border-radius:15px;border:0;background:#4a3566;position:relative;flex:none;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--ink);transition:left .2s var(--ease-out),background .2s}.switch[aria-checked=true]{background:var(--gold)}.switch[aria-checked=true]:after{left:23px;background:var(--on-gold)}.copyright{text-align:center;font-size:12px;color:var(--muted);margin:0}.particles{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.particles span{position:absolute;border-radius:50%;animation:pt-drift var(--d) ease-in-out var(--dl) infinite alternate,pt-twinkle calc(var(--d) * .45) ease-in-out var(--dl) infinite alternate}@keyframes pt-drift{0%{transform:translate(0)}to{transform:translate(var(--dx),var(--dy))}}@keyframes pt-twinkle{0%{opacity:.2}to{opacity:1}}@media(prefers-reduced-motion:reduce){.particles span{animation:none;opacity:.6}}.toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 12px);transform:translate(-50%);z-index:50;padding:10px 16px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--gold);font-size:13px;white-space:nowrap;animation:toast-in .3s var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}
