:root{--bg:#dfe3d3;--bg2:#cdd5bd;--ink:#2a2236;--muted:#5d5568;--panel:#f4f2e8;--brass:#9a7426;--brass-hi:#c99b3a;--iron:#3a3440;--iron-hi:#5a5262;--glow:#2f9e7e;--danger:#b8432f;--wood:#7a5636;--wood-hi:#9a7350;--broth:#4a4452;--glass:#ffffff8c;--glass-edge:#2a223659;--halo:#c99b3a40;--plate-ink:#2a2236;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1e1830;--bg2:#2a2142;--ink:#efe7d6;--muted:#a99fbd;--panel:#2f2749;--brass:#d4ad55;--brass-hi:#f0cb73;--iron:#120e1a;--iron-hi:#2c2538;--glow:#6fe0bd;--danger:#ef7a64;--wood:#4f3624;--wood-hi:#6d4c33;--broth:#2b2535;--glass:#ffffff1f;--glass-edge:#efe7d64d;--halo:#f0a05038;--plate-ink:#1e1830;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1e1830;--bg2:#2a2142;--ink:#efe7d6;--muted:#a99fbd;--panel:#2f2749;--brass:#d4ad55;--brass-hi:#f0cb73;--iron:#120e1a;--iron-hi:#2c2538;--glow:#6fe0bd;--danger:#ef7a64;--wood:#4f3624;--wood-hi:#6d4c33;--broth:#2b2535;--glass:#ffffff1f;--glass-edge:#efe7d64d;--halo:#f0a05038;--plate-ink:#1e1830;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:inherit}html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px);background:var(--bg)}body{overscroll-behavior:none;height:100%;color:var(--ink);background:radial-gradient(ellipse 60% 40% at 50% 42%, var(--halo), transparent 70%), var(--bg);-webkit-tap-highlight-color:transparent;margin:0;font-family:Alegreya Sans,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--brass-hi);outline-offset:3px;border-radius:10px}.shop{flex-direction:column;gap:10px;max-width:560px;height:100%;margin:0 auto;padding:10px 16px 14px;display:flex;overflow:hidden}.bar,.counter,.shelf,.recipe,.actions{flex-shrink:0}.bar{justify-content:space-between;align-items:baseline;gap:12px;padding-top:4px;display:flex}.wordmark{margin:0;font-family:IM Fell English,Georgia,serif;font-size:1.35rem;font-weight:400}.stats{font-variant-numeric:tabular-nums;color:var(--muted);align-items:center;gap:14px;font-weight:700;display:flex}.coins{color:var(--ink);align-items:center;gap:5px;display:inline-flex}.coin{background:radial-gradient(circle at 35% 35%,var(--brass-hi),var(--brass));border-radius:50%;width:14px;height:14px;box-shadow:inset 0 0 0 1.5px #00000026}.queue{gap:4px;display:inline-flex}.queue i{background:var(--muted);opacity:.45;border-radius:50%;width:7px;height:7px}.queue i.on{opacity:1;background:var(--ink)}.counter{grid-template-columns:64px 1fr auto;align-items:center;gap:10px 12px;min-height:96px;display:grid}.portrait{background:var(--bg2);width:64px;height:64px;box-shadow:0 0 0 3px var(--brass);border-radius:50%;overflow:hidden}.portrait svg{width:100%;height:100%;display:block}.portrait.arrive{animation:.5s cubic-bezier(.2,.8,.3,1.2) arrive}.portrait.depart{animation:.26s ease-in forwards depart}.flycoin{background:radial-gradient(circle at 35% 35%,var(--brass-hi),var(--brass));z-index:16;pointer-events:none;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:fixed;box-shadow:0 0 0 1.5px #00000026,0 2px 6px #00000040}.coins.pop{animation:.25s pop}.bubble{background:var(--panel);border-radius:16px 16px 16px 4px;min-height:64px;padding:9px 13px 10px}.bubble .who{color:var(--muted);margin-bottom:2px;font-size:.85rem;font-weight:700}.bubble .says{font-family:IM Fell English,Georgia,serif;font-size:1.08rem;line-height:1.3}.ticket{background:var(--panel);text-align:center;box-shadow:0 2px 0 var(--bg2), 0 6px 14px #00000026;border-top:4px solid var(--brass);border-radius:4px;min-width:62px;padding:8px 12px 7px;transform:rotate(3deg)}.ticket b{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1;display:block}.ticket span{color:var(--muted);font-size:.78rem}.patience{background:var(--bg2);border-radius:3px;grid-column:1/-1;height:6px;overflow:hidden}.patience div{background:var(--glow);border-radius:3px;width:100%;height:100%;transition:background-color .4s}.patience.low div{background:var(--danger)}.patience.bonus div{background:var(--brass)}.patience-row{grid-column:1/-1;align-items:center;gap:10px;display:flex}.patience-row .patience{flex:1}.clock{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:7.5em;font-size:.85rem;font-weight:700}.clock.low{color:var(--danger)}.brew{flex-direction:column;flex:1 1 0;align-items:center;gap:8px;min-height:0;display:flex}.cauldron{flex:1 1 0;place-items:center;width:100%;min-height:90px;display:grid;container-type:size}.pot{aspect-ratio:260/230;width:min(100cqw,113cqh,340px);position:relative}.pot svg{width:100%;height:100%;display:block;overflow:visible}.liquid{transition:fill .5s}.vapor circle{opacity:0;animation:3.2s ease-in infinite rise}.flame{transform-origin:50% 100%;animation:1.1s ease-in-out infinite alternate flicker}.flame:nth-of-type(2){animation-duration:.9s;animation-delay:-.4s}.flame:nth-of-type(3){animation-duration:1.3s;animation-delay:-.7s}.strength-num{fill:var(--plate-ink);font-variant-numeric:tabular-nums;font:800 34px Alegreya Sans,system-ui,sans-serif}.strength-lbl{fill:var(--plate-ink);opacity:.75;font:500 11px Alegreya Sans,system-ui,sans-serif}.plate.pop{animation:.3s pop}.sparks circle{opacity:0}.cauldron.ready .liquid{filter:drop-shadow(0 0 10px var(--brass-hi))}.cauldron.ready .sparks circle{animation:1.6s ease-out infinite spark}.cauldron.ready .plate rect{fill:var(--brass-hi)}.drop{pointer-events:none;border-radius:50%/60% 60% 40% 40%;width:14px;height:18px;margin-left:-7px;animation:.42s cubic-bezier(.5,0,1,1) forwards fall;position:absolute;top:-6%;left:50%}.flyjar{z-index:15;pointer-events:none;will-change:transform;filter:drop-shadow(0 8px 10px #00000040);position:fixed}.flyjar svg{width:100%;height:100%;display:block;overflow:visible}.stream{z-index:14;pointer-events:none;border-radius:4px;position:fixed}.splash{pointer-events:none;border:2px solid;border-radius:50%;width:40px;height:12px;margin-left:-20px;animation:.5s ease-out forwards splash;position:absolute;top:31%;left:50%}.recipe{flex-direction:column;gap:6px;width:100%;display:flex}.recipe-head{color:var(--muted);justify-content:space-between;font-size:.88rem;display:flex}.chips{scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:6px;min-height:30px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--panel);border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 6px;font-size:.9rem;font-weight:700;animation:.25s pop;display:inline-flex}.chip i{border-radius:50%;width:12px;height:12px}.chip{flex-shrink:0}.empty-note{color:var(--muted);font-size:.95rem}.note{min-height:1.3em;color:var(--danger);text-align:center;font-size:.92rem}.actions{gap:8px;width:100%;display:flex}.btn{background:var(--panel);border:none;border-radius:12px;flex:1;padding:12px 14px;font-weight:700}.btn.primary{background:var(--ink);color:var(--bg);flex:2;font-size:1.05rem}.cauldron.ready~.actions .btn.primary,.btn.primary.lit{background:var(--brass);color:var(--plate-ink)}.btn:active{transform:translateY(1px)}.shelf{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:4px 16px 0;scroll-padding-inline:16px;display:flex;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 14px calc(100% - 30px),#0000);mask-image:linear-gradient(90deg,#0000 0,#000 14px calc(100% - 30px),#0000)}.shelf::-webkit-scrollbar{display:none}.shelf .jar{scroll-snap-align:start;flex:0 0 96px}.jar{background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:4px 2px 12px;display:flex;position:relative}.jar:after{content:"";background:linear-gradient(var(--wood-hi),var(--wood));height:9px;position:absolute;bottom:0;left:0;right:0}.jar svg{width:52px;height:62px;transition:transform .15s}.jar:hover svg{transform:translateY(-3px)rotate(-3deg)}.jar .name{text-align:center;font-size:.86rem;font-weight:500;line-height:1.1}.jar .op{background:var(--brass);color:var(--plate-ink);font-variant-numeric:tabular-nums;border-radius:6px;padding:0 8px;font-size:.95rem;font-weight:800}.jar .op.faded{background:var(--bg2);color:var(--muted)}.jar.shake svg{animation:.35s shake}.jar:disabled{opacity:.5;cursor:default}.overlay{padding:calc(20px + env(safe-area-inset-top,0px)) 18px calc(20px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(4px);z-index:20;background:#140f1e8c;place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.overlay[hidden]{display:none}.card{background:var(--panel);border-radius:20px;width:100%;max-width:420px;padding:26px 22px 22px;animation:.4s arrive;box-shadow:0 20px 50px #0000004d}.card h2{margin:0 0 8px;font-family:IM Fell English,Georgia,serif;font-size:2.1rem;font-weight:400;line-height:1.05}.card p{color:var(--ink);margin:0 0 12px;line-height:1.45}.card .muted{color:var(--muted)}.card .mini-shelf{flex-wrap:wrap;justify-content:center;gap:4px;margin:14px 0 16px;display:flex}.card .mini-shelf .jar{cursor:default;width:92px}.card .mini-shelf .jar:hover svg{transform:none}.card .btn.primary{width:100%;padding:14px}.tally{grid-template-columns:1fr auto;gap:6px 12px;margin:6px 0 18px;font-size:1.02rem;display:grid}.tally b{font-variant-numeric:tabular-nums;text-align:right}.toast{left:50%;top:calc(14px + env(safe-area-inset-top,0px));background:var(--ink);color:var(--bg);z-index:30;text-align:center;border-radius:14px;max-width:90vw;padding:10px 16px;font-weight:700;animation:2.2s forwards toast;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #00000040}.toast small{opacity:.8;font-weight:500;display:block}@keyframes rise{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:.8}to{opacity:0;transform:translateY(-70px)scale(1.3)}}@keyframes flicker{0%{transform:scaleY(.85)skew(-3deg)}to{transform:scaleY(1.12)skew(3deg)}}@keyframes fall{to{top:30%;transform:scale(.7)}}@keyframes splash{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(2.2)}}@keyframes pop{0%{transform:scale(.85)}60%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)rotate(-6deg)}75%{transform:translate(5px)rotate(6deg)}}@keyframes arrive{0%{opacity:0;transform:translateY(14px)scale(.95)}to{opacity:1;transform:none}}@keyframes depart{to{opacity:0;transform:translate(-40px)}}@keyframes spark{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-40px)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,-10px)}10%,80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}@media (max-height:680px){.jar svg{width:42px;height:50px}.ticket b{font-size:1.6rem}.bubble .says{font-size:1rem}.counter{min-height:0}.btn{padding:10px 12px}.shop{gap:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.vapor,.sparks{display:none}}
