*{box-sizing:border-box}html{min-height:100%;background:#18395e}body{margin:0;color:#fff;font-family:Arial,sans-serif;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline:3px solid #fff;outline-offset:3px}button:active:not(:disabled){filter:brightness(.91);transform:translateY(1px)}svg{display:block;width:100%;height:100%;fill:currentColor}.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}#stage{position:relative;isolation:isolate;width:100%;max-width:560px;min-height:max(640px,100svh);margin:0 auto;display:flex;flex-direction:column;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));overflow:hidden;background:#0577ae}#scenery{position:absolute;z-index:-2;inset:0;background:#0577ae url('assets/scenery.png') center center/cover no-repeat;pointer-events:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;z-index:2}.navigation{display:flex;gap:7px}.round{border:1px solid #d499f2;border-radius:50%;width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(145deg,#7722cb,#440c89);box-shadow:0 2px 5px #250b4040;padding:9px}.round svg{width:100%;height:100%}.balance{display:flex;align-items:center;gap:4px;padding-left:14px;border-radius:999px;background:#4d118e;border:1px solid #be7ce3;box-shadow:0 2px 4px #250b4030;font-size:clamp(14px,3.7vw,21px);font-weight:700;white-space:nowrap;line-height:1}.pink{background:linear-gradient(#ff188f,#f5008a);border:2px solid #ffa2db;width:42px;height:42px;margin:-2px;-webkit-box-shadow:0 1px 4px #51148340;box-shadow:0 1px 4px #51148340}#sound[aria-pressed="false"] .sound-waves,#sound[aria-pressed="true"] .sound-cross{display:none}#places{position:absolute;inset:0;pointer-events:none;z-index:1}.place-marker,.venue-hotspot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto}.place-marker:active:not(:disabled){transform:translate(-50%,-50%) scale(.96)}.place-marker{width:43px;height:46px;border-radius:50% 50% 45% 45%;border:1.5px solid #edb5ff;background:linear-gradient(#9529ec,#590da5);box-shadow:0 3px 10px #260a5655;padding:10px;transform-origin:center bottom}.place-marker.small{width:32px;height:34px;padding:8px}.venue-hotspot{width:30%;height:12%;border:0;background:transparent;border-radius:12px}.venue-hotspot:focus-visible{background:#ffffff20;outline:2px solid #efc5ff}.gift-appear{animation:gift-rise 4.8s ease-in-out both}.motion-paused .gift-appear{animation-play-state:paused}@keyframes gift-rise{0%{opacity:0;translate:0 5px;scale:.96}15%,80%{opacity:1;translate:0 -3px;scale:1}45%{scale:1.045}100%{opacity:0;translate:0 -7px;scale:.98}}.gameplay{z-index:2;margin-top:auto;padding-top:clamp(250px,43svh,490px);display:flex;flex-direction:column;align-items:center;gap:8px}.ticket{position:relative;width:100%;padding:12px 9px 10px;border-radius:24px;background:linear-gradient(145deg,#9c24ed 0%,#7814cf 45%,#680fc2 100%);box-shadow:inset 0 0 0 1.5px #dda2ff,0 3px 10px #31105655;mask-image:radial-gradient(circle 8px at 0 80%,transparent 96%,#000 100%),radial-gradient(circle 8px at 100% 80%,transparent 96%,#000 100%);mask-composite:intersect;-webkit-mask-image:radial-gradient(circle 8px at 0 80%,transparent 96%,#000 100%),radial-gradient(circle 8px at 100% 80%,transparent 96%,#000 100%);-webkit-mask-composite:source-in}.ticket h1{position:relative;text-align:center;font-size:clamp(14px,3.8vw,21px);font-weight:700;line-height:1.15;margin:0 0 10px;white-space:nowrap}.ticket h1::before,.ticket h1::after{content:'✧';position:absolute;top:0;color:#e9c5ff;font-size:.9em}.ticket h1::before{left:1px}.ticket h1::after{right:1px}#board-wrap{position:relative;width:100%;aspect-ratio:785/292;overflow:hidden;border-radius:10px}#scratch-board{position:absolute;inset:0;touch-action:none}#scratch-board canvas{display:block;width:100%!important;height:100%!important}#scratch-board.locked{pointer-events:none}#purchase-cover{position:absolute;inset:0;display:grid;place-items:center;background:#7e20d9ed;border-radius:11px;pointer-events:none;text-align:center;font-size:clamp(17px,4.6vw,26px);font-weight:700;line-height:1.35;will-change:transform,opacity}#purchase-cover[hidden]{display:none}.ticket-stub{margin-top:8px;display:grid;justify-items:center;gap:3px;position:relative;padding-top:5px}.ticket-stub::before{content:'';position:absolute;left:7%;right:7%;top:0;border-top:1px dashed #d9a5ff60}.ticket-stub p{padding:3px 12px;margin:0;min-height:23px;max-width:96%;border-radius:10px;background:#580ca48c;line-height:1.1;font-size:clamp(13px,3.5vw,19px);font-weight:700;text-align:center}#ticket-status{min-width:58%}#ticket-status.win{color:#fff}#max-win strong{color:#ff65c5;font-size:1.08em}#price-selector{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:52%;height:43px;border-radius:999px;background:#4e118d;border:1px solid #cb78ff;box-shadow:0 2px 5px #260a5640}#price{font-weight:700;font-size:clamp(18px,4.8vw,25px);white-space:nowrap}.price-step{width:42px;height:42px;background:linear-gradient(#ad4cf0,#8220d7);border:1.5px solid #dca0ff;padding:11px}.price-step:disabled{background:linear-gradient(#b5b4b9,#8d8a95);border-color:#dad7e2;color:#f5f4f6;opacity:.86}.primary{display:block;background:linear-gradient(#ff199f,#ff008c);border:1.5px solid #ff93d2;border-radius:999px;font-size:clamp(18px,4.8vw,26px);font-weight:700;line-height:1.15;min-height:48px;padding:10px 20px;box-shadow:inset 0 2px 2px #fff3,0 3px 8px #4a0e6d55}#action{width:84%;max-width:430px}.primary:disabled{background:#93639f;border-color:#caa4d2;box-shadow:none;color:#f0e5f3}.secondary{border:0;border-radius:999px;min-height:44px;padding:8px 20px;background:#e8d4f7;color:#48157a;font-weight:700}.dialog-content>.primary,.dialog-content>.secondary{width:100%;margin-top:12px}dialog{color:#fff;background:linear-gradient(145deg,#8f25dd,#5d129f);border:1px solid #d89aff;border-radius:24px;padding:0;width:min(390px,calc(100% - 36px));max-height:calc(100svh - 40px);box-shadow:0 12px 50px #16082d66;overscroll-behavior:contain}dialog::backdrop{background:#1c073a99;backdrop-filter:blur(3px)}.dialog-content{padding:28px 22px 24px;position:relative}dialog h2{margin:0 25px 18px 0;font-size:24px}dialog p{font-size:16px;line-height:1.45}.close{position:absolute;top:8px;right:8px;border:0;border-radius:50%;width:36px;height:36px;background:#fff1;font-size:28px;line-height:1}.muted{color:#e7cff8}.legend{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.legend-item{display:grid;justify-items:center;gap:5px;text-align:center;font-size:12px;padding:10px 3px;background:#4b0b873b;border-radius:12px}.legend-symbol{display:block;width:48px;height:48px;background:url('assets/symbols.png') 0 0/300% 200% no-repeat}.legend-item strong{display:block;font-size:17px;margin-top:3px}.notification{position:fixed;z-index:10;bottom:20px;left:50%;translate:-50% 0;width:max-content;max-width:90%;border-radius:14px;padding:12px 18px;background:#481478;color:#fff;text-align:center;box-shadow:0 3px 16px #22083266}.notification[hidden]{display:none}
@media(min-width:561px){#stage{box-shadow:0 0 80px #102141aa}.gameplay{padding-top:clamp(280px,43svh,510px)}.round{width:45px;height:45px}.pink{width:47px;height:47px}.balance{font-size:23px}.ticket{padding:16px 13px 13px}.ticket h1{font-size:23px}.ticket-stub p{font-size:20px}#price-selector{min-width:54%;height:48px}.price-step{width:47px;height:47px}.primary{min-height:54px}}
@media(max-width:360px){#stage{padding-left:9px;padding-right:9px}.topbar{gap:7px}.navigation{gap:5px}.round{width:36px;height:36px;padding:8px}.pink{width:39px;height:39px}.balance{padding-left:9px;font-size:13px}.ticket{padding:11px 7px 9px}.ticket h1{font-size:13px}.ticket h1::before,.ticket h1::after{display:none}.ticket-stub p{font-size:12px}.gameplay{padding-top:clamp(245px,42svh,370px);gap:7px}.price-step{width:39px;height:39px;padding:10px}#price-selector{height:40px}.primary{min-height:45px;font-size:18px}}
@media(max-height:680px) and (min-width:361px){.gameplay{padding-top:235px}.ticket{padding-top:10px;padding-bottom:8px}.ticket h1{margin-bottom:7px}.ticket-stub{margin-top:5px}.gameplay{gap:6px}}
.gameplay{pointer-events:none}.gameplay>.ticket,.gameplay>#price-selector,.gameplay>#action{pointer-events:auto}
.venue-hotspot:active:not(:disabled){transform:translate(-50%,-50%)}
/* The full illustration keeps its native aspect: buildings never lose their
   sides to a tall-screen cover crop. Only the snow continues beneath the UI. */
#snow-extension{position:absolute;z-index:-3;left:0;top:calc(var(--scene-height,700px)*.82);width:100%;height:calc(100% - var(--scene-height,700px)*.82);pointer-events:none;overflow:hidden}
#scenery{bottom:auto;width:100%;height:auto;aspect-ratio:var(--scene-ratio,941 / 1672);background-size:cover;background-position:center;mask-image:linear-gradient(#000 88%,transparent);-webkit-mask-image:linear-gradient(#000 88%,transparent)}
.gameplay{padding-top:max(0px,calc(var(--scene-height,700px)*.65 - 56px))}
#scenery .flag-pole,#scenery .scenery-art{position:absolute;pointer-events:none;user-select:none;-webkit-user-drag:none}
.flag-pole{clip-path:polygon(0 0,37% 0,37% 68%,100% 68%,100% 100%,0 100%)}
.flag-cloth{transform:none;animation:none}
#art-wheel{display:none}
#gift{width:clamp(30px,8.6vw,42px);height:clamp(33px,9.4vw,46px);padding:8px}
.ticket h1::before,.ticket h1::after{content:'';display:block;width:16px;height:19px;top:-2px;background:url('assets/kyrgyz-ornament.svg') center/contain no-repeat}
.ticket h1::after{transform:scaleX(-1)}
.ticket::before,.ticket::after{content:'';position:absolute;bottom:11px;width:20px;height:23px;background:url('assets/kyrgyz-ornament.svg') center/contain no-repeat;pointer-events:none;opacity:.92}
.ticket::before{left:9px;transform:scaleY(-1)}
.ticket::after{right:9px;transform:scale(-1,-1)}
#max-win strong{color:#ff8dd7}
@media(max-width:360px){.ticket h1::before,.ticket h1::after{width:12px;height:15px;top:0}.ticket::before,.ticket::after{width:16px;height:19px;bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
