:root{--wine:#8e1537;--wine-deep:#4a0a22;--wine-bright:#e0335f;--gold:#ffcf4a;--cream:#fff4e0;--goblin:#b57bff;--ink:#2a0f1f;--font:ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "Nunito", "Varela Round", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--cream);font-family:var(--font);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;background:#2a0f1f;margin:0;overflow:hidden}body{touch-action:none;background:radial-gradient(at 50% 120%,#e0335f40,#0000 60%),repeating-linear-gradient(115deg,#ffffff06 0 18px,#0000 18px 36px),linear-gradient(#3a1428,#1c0812);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#frame{background:#2a0f1f;flex:none;width:100%;height:100%;position:relative;overflow:hidden}#frame.boxed{border-radius:22px;box-shadow:0 0 0 3px #fff4e01f,0 20px 60px #0000008c}.rotate{z-index:50;text-align:center;background:#2a0f1f;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:20px;font-weight:900;display:flex;position:fixed;inset:0}.rotate svg{fill:none;width:64px;height:64px;stroke:var(--cream);stroke-width:1.6px;animation:1.6s ease-in-out infinite rot}@keyframes rot{0%,30%{transform:rotate(-90deg)}70%,to{transform:rotate(0)}}#game{touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#flash{pointer-events:none;opacity:0;z-index:5;background:#fff;position:absolute;inset:0}#ui{pointer-events:none;z-index:10;position:absolute;inset:0}.hidden{display:none!important}button{touch-action:manipulation;font-family:inherit}#hud{padding:calc(var(--sat) + 10px) calc(var(--sar) + 12px) calc(var(--sab) + 10px) calc(var(--sal) + 12px);position:absolute;inset:0}.hud-top{justify-content:space-between;align-items:flex-start;display:flex}.hud-left{flex-flow:wrap;align-items:center;gap:6px;display:flex}.pill{-webkit-backdrop-filter:blur(4px);background:#2a0f1f8c;border:2px solid #fff4e040;border-radius:999px;align-items:baseline;gap:8px;width:max-content;padding:6px 14px 6px 12px;display:inline-flex}.pill .label{letter-spacing:.12em;opacity:.8;font-size:11px;font-weight:800}.num{font-variant-numeric:tabular-nums;letter-spacing:.02em;text-shadow:0 2px #00000059;font-size:22px;font-weight:900}.num>span{text-align:center;min-width:.6em;display:inline-block}.dist .num{font-size:16px}.unit{opacity:.8;font-size:12px;font-weight:800}.icon-btn{pointer-events:auto;cursor:pointer;background:#2a0f1f8c;border:2px solid #fff4e059;border-radius:14px;place-items:center;width:46px;height:46px;display:grid}.icon-btn svg{width:22px;height:22px;fill:var(--cream)}.hud-wine{top:calc(var(--sat) + 60px);align-items:center;gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.wine-badge{width:54px;height:54px;position:relative}.wine-badge .ring{position:absolute;inset:0;transform:rotate(-90deg)}.ring-bg{fill:#2a0f1f99;stroke:#fff4e033;stroke-width:6px}.ring-fg{fill:none;stroke:var(--wine-bright);stroke-width:6px;stroke-linecap:round;stroke-dasharray:175.9;stroke-dashoffset:175.9px;transition:stroke-dashoffset .2s ease-out,stroke .3s}.wine-badge.near .ring-fg{stroke:var(--goblin)}.wine-badge .glass{position:absolute;inset:13px}.glass-shell{fill:#ffffffd9}.glass-wine{fill:var(--wine)}.big{-webkit-text-stroke:1.5px var(--wine-deep);paint-order:stroke fill;font-size:34px}.bump{animation:.22s ease-out bump}@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.35)}to{transform:scale(1)}}.shake{animation:.35s ease-out shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.mult{top:calc(var(--sat) + 122px);color:var(--gold);-webkit-text-stroke:1.5px var(--wine-deep);paint-order:stroke fill;opacity:0;font-size:20px;font-weight:900;transition:opacity .2s;position:absolute;left:50%;transform:translate(-50%)}.mult.on{opacity:1}.goblin-bar{bottom:calc(var(--sab) + 18px);border:2px solid var(--goblin);background:#1e0c3099;border-radius:12px;place-items:center;width:min(60vw,320px);height:22px;display:grid;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.goblin-bar #goblin-fill{transform-origin:0;background:linear-gradient(90deg,#6a2fb0,#c48bff);position:absolute;inset:0}.goblin-bar span{letter-spacing:.2em;color:#fff;text-shadow:0 1px #2a0f45;font-size:12px;font-weight:900;position:relative}.toast{color:var(--gold);-webkit-text-stroke:2px var(--wine-deep);paint-order:stroke fill;text-align:center;white-space:nowrap;opacity:0;pointer-events:none;font-size:clamp(26px,7vw,54px);font-weight:900;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)scale(.6)}.toast.show{animation:1.4s ease-out forwards toast}.toast.goblin{color:var(--goblin)}@keyframes toast{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}25%{transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-60%)scale(1)}}.screen{padding:calc(var(--sat) + 16px) calc(var(--sar) + 16px) calc(var(--sab) + 16px) calc(var(--sal) + 16px);pointer-events:auto;background:radial-gradient(#2a0f1f59,#2a0f1fcc);flex-direction:column;justify-content:center;align-items:center;gap:14px;animation:.25s ease-out fadein;display:flex;position:absolute;inset:0;overflow-y:auto}#screen-title{background:linear-gradient(#2a0f1f00 20%,#2a0f1fb3)}@keyframes fadein{0%{opacity:0}}.screen h2{color:var(--gold);-webkit-text-stroke:2px var(--wine-deep);paint-order:stroke fill;text-shadow:0 4px 0 var(--wine-deep);margin:0;font-size:clamp(30px,8vw,48px);font-weight:900}.logo{text-align:center;margin-bottom:8px;line-height:.9;animation:3s ease-in-out infinite logo-bob;transform:rotate(-4deg)}@keyframes logo-bob{50%{transform:rotate(-2deg)translateY(-6px)}}.logo-small{color:var(--cream);-webkit-text-stroke:2px var(--wine-deep);paint-order:stroke fill;font-size:clamp(22px,6vw,34px);font-weight:900}.logo-big{color:var(--wine-bright);-webkit-text-stroke:3px var(--wine-deep);paint-order:stroke fill;text-shadow:0 6px 0 var(--wine-deep), 0 10px 24px #0006;letter-spacing:-.01em;font-size:clamp(46px,13vw,96px);font-weight:900}.title-best{opacity:.9;font-weight:800}.btn{pointer-events:auto;min-width:140px;color:var(--cream);border:3px solid var(--wine-deep);box-shadow:0 5px 0 var(--wine-deep), 0 8px 18px #0000004d;cursor:pointer;background:linear-gradient(#a8436a,#6e1a3c);border-radius:18px;padding:12px 22px;font-size:18px;font-weight:900;transition:transform 60ms}.btn:active{box-shadow:0 1px 0 var(--wine-deep);transform:translateY(4px)}.btn.primary{min-width:200px;color:var(--ink);text-shadow:0 1px #fff9;background:linear-gradient(#ffe27a,#ffb41f);padding:14px 30px;font-size:26px}.row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.hint{opacity:.75;text-align:center;margin-top:8px;font-size:13px;line-height:1.5}.stats{background:#2a0f1f99;border:2px solid #fff4e033;border-radius:18px;grid-template-columns:1fr 1fr;gap:8px 22px;min-width:min(86vw,340px);padding:14px 20px;display:grid}.stats div{flex-direction:column;display:flex}.stats span{letter-spacing:.12em;text-transform:uppercase;opacity:.75;font-size:11px;font-weight:800}.stats b{font-size:22px;font-weight:900}.newbest{color:var(--gold);font-size:20px;font-weight:900;animation:1s ease-in-out infinite logo-bob}.loading{pointer-events:auto;background:#2a0f1f;place-items:center;font-size:22px;font-weight:900;transition:opacity .3s;display:grid;position:absolute;inset:0}.loading.done{opacity:0;pointer-events:none}@media (max-height:480px){.logo-big{font-size:48px}.screen{gap:8px}.hint{display:none}.btn.primary{padding:10px 26px;font-size:22px}}.progress{top:calc(var(--sat) + 124px);background:#2a0f1f73;border:1.5px solid #fff4e059;border-radius:6px;width:min(56vw,260px);height:8px;position:absolute;left:50%;transform:translate(-50%)}.progress #hud-progress{transform-origin:0;background:linear-gradient(90deg,#ffb41f,#ffe27a);border-radius:6px;position:absolute;inset:0;transform:scaleX(0)}.progress .flag{font-size:18px;line-height:1;position:absolute;top:50%;right:-22px;transform:translateY(-50%)}.level-pick{align-items:center;gap:12px;display:flex}.icon-btn.small{width:38px;height:38px;color:var(--cream);font-size:24px;font-weight:900}.icon-btn.small:disabled{opacity:.3;cursor:default}.level-name{flex-direction:column;align-items:center;min-width:150px;display:flex}.level-name b{font-size:22px;font-weight:900}.level-name span{opacity:.8;letter-spacing:.06em;font-size:13px}.complete-sub{opacity:.9;font-weight:800}.btn.bonus{color:#2a1606;background:linear-gradient(#e2c6ff,#9a5ce0);border-color:#3b1766;box-shadow:0 5px #3b1766,0 8px 18px #0000004d}.unlock{color:#e2c6ff;text-align:center;text-shadow:0 2px #3b1766;font-size:18px;font-weight:900}.wine-badge .badge-food{place-items:center;font-size:26px;line-height:1;display:grid;position:absolute;inset:0}.wine-badge.food .glass{display:none}.lb-goblin{color:#e2c6ff;text-shadow:0 2px #3b1766;text-align:center;font-weight:900}.lb-goblin span{opacity:.85;font-weight:700}.lb-list{pointer-events:auto;touch-action:pan-y;background:#2a0f1f99;border:2px solid #fff4e033;border-radius:18px;width:min(100%,360px);max-height:46vh;margin:0;padding:8px 12px;list-style:none;overflow-y:auto}.lb-list:empty{display:none}.lb-list li{align-items:baseline;gap:10px;padding:5px 4px;font-weight:800;display:flex}.lb-list li+li{border-top:1px solid #fff4e01a}.lb-list .rank{text-align:right;min-width:2ch;color:var(--gold)}.lb-list .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lb-list li.me{color:var(--gold)}.lb-list li.gap{opacity:.6;justify-content:center}.lb-status,.lb-mini{opacity:.9;text-align:center;font-size:14px;font-weight:800}.lb-mini{flex-direction:column;align-items:center;gap:6px;display:flex}.lb-name{pointer-events:auto;gap:8px;display:flex}.lb-name input{width:min(52vw,200px);font:inherit;border:2px solid var(--wine-deep);background:var(--cream);color:var(--ink);-webkit-user-select:text;user-select:text;touch-action:manipulation;border-radius:12px;padding:8px 12px;font-size:16px;font-weight:800}.btn.small{min-width:0;padding:8px 16px;font-size:16px}.level-name span:empty{display:none}.countdown{padding:calc(var(--sat) + 150px) calc(var(--sar) + 16px) calc(var(--sab) + 16px) calc(var(--sal) + 16px);pointer-events:none;flex-direction:column;justify-content:flex-start;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.countdown-panel{flex-direction:column;align-items:center;gap:8px;width:min(100%,340px);display:flex}.countdown-board{color:var(--gold);text-shadow:0 2px 0 var(--wine-deep);font-size:18px;font-weight:900}.countdown .lb-list{pointer-events:none;background:#2a0f1fb8;width:100%;max-height:none}.countdown-n{color:var(--gold);-webkit-text-stroke:4px var(--wine-deep);paint-order:stroke fill;text-shadow:0 8px 0 var(--wine-deep);font-size:clamp(80px,26vw,140px);font-weight:900;line-height:1}.countdown-n.tick{animation:.5s ease-out forwards countdown-tick}@keyframes countdown-tick{0%{opacity:0;transform:scale(1.8)}60%{opacity:1;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.error-card{left:16px;right:16px;bottom:calc(var(--sab) + 16px);z-index:100;border:2px solid var(--wine-bright);color:var(--cream);pointer-events:auto;-webkit-user-select:text;user-select:text;background:#2a0f1ff0;border-radius:18px;padding:16px;position:fixed}.error-card h3{color:var(--gold);margin:0 0 8px}.error-card pre{white-space:pre-wrap;word-break:break-word;max-height:40vh;margin:0 0 12px;font-size:12px;overflow:auto}.build{bottom:calc(var(--sab) + 6px);right:calc(var(--sar) + 10px);opacity:.55;font-size:11px;font-weight:700;position:absolute}.credits-link{bottom:calc(var(--sab) + 4px);left:calc(var(--sal) + 6px);color:var(--cream);opacity:.7;pointer-events:auto;background:0 0;border:none;padding:6px;font-size:12px;font-weight:800;position:absolute}.credits-list{pointer-events:auto;touch-action:pan-y;-webkit-user-select:text;user-select:text;background:#2a0f1f99;border-radius:18px;width:min(100%,360px);max-height:58vh;margin:0;padding:10px 14px 10px 32px;font-size:13px;line-height:1.35;overflow-y:auto}.credits-list li+li{margin-top:8px}
