:root{--bg:#f4f7f5;--bg-glow:#d9f2e2;--surface:#fff;--cell:#f1f6f3;--cell-edge:#e2ebe5;--text:#13201a;--muted:#5f6f66;--brand:#16a34a;--brand-ink:#0b5c2c;--brand-soft:#e3f5ea;--track:#dcefe2;--warn:#b45309;--warn-soft:#fdf0e1;--line:#e6ece8;--shadow:0 1px 2px #1018280d, 0 18px 48px -12px #103c222e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0c0f0d;--bg-glow:#12301f;--surface:#151a17;--cell:#1d2420;--cell-edge:#27302b;--text:#e8eee9;--muted:#95a59b;--brand:#3ec474;--brand-ink:#a6f0c2;--brand-soft:#173523;--track:#22362a;--warn:#f0a24a;--warn-soft:#3a2a17;--line:#232b26;--shadow:0 1px 2px #00000080, 0 22px 50px -12px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(120% 60% at 50% 0%, var(--bg-glow), var(--bg) 70%) var(--bg) no-repeat;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.screen{max-width:460px;min-height:100%;padding:calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;justify-content:center;gap:20px;margin:0 auto;display:flex}.place{flex-direction:column;align-items:center;gap:4px;display:flex}.place__icon{border-radius:15px;width:56px;height:56px;margin-bottom:10px;box-shadow:0 8px 20px -6px #16a34a8c}.place__city{color:var(--muted);letter-spacing:.2px;font-size:14px;font-weight:600}.place__name{letter-spacing:-.6px;margin:0;font-size:clamp(25px,7.4vw,31px);font-weight:800;line-height:1.15}.status{background:var(--brand-soft);color:var(--brand-ink);border-radius:99px;align-items:center;gap:7px;margin-top:10px;padding:5px 11px 5px 9px;font-size:12.5px;font-weight:700;display:inline-flex}.status i{background:currentColor;border-radius:50%;width:8px;height:8px}.status--live i{background:var(--brand);animation:2s ease-out infinite pulse}.status--warn{background:var(--warn-soft);color:var(--warn)}.status--idle{background:var(--cell);color:var(--muted)}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--brand) 55%, transparent)}to{box-shadow:0 0 0 7px #0000}}.card{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:28px;padding:22px clamp(12px,4vw,22px) 20px}.card__label,.door__label{text-transform:uppercase;letter-spacing:1.1px;color:var(--brand-ink);border-radius:99px;margin:0 0 14px;padding:3px 10px;font-size:12.5px;font-weight:700;transition:background .3s,color .3s;display:inline-block}.card__label.is-fresh,.door__label.is-fresh{background:var(--brand);color:#fff}.code-btn{width:100%;color:inherit;font:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:16px;padding:0;display:block}.code-btn:disabled{cursor:default}.code-btn:focus-visible{outline:3px solid var(--brand);outline-offset:6px}.digits{justify-content:center;gap:clamp(4px,1.6vw,8px);display:flex}.digits span{font-variant-numeric:tabular-nums;background:var(--cell);border:1px solid var(--cell-edge);border-radius:14px;place-items:center;width:clamp(38px,11.6vw,56px);height:clamp(56px,17vw,76px);font-family:ui-rounded,SF Pro Rounded,ui-sans-serif,system-ui,sans-serif;font-size:clamp(32px,10vw,46px);font-weight:800;transition:opacity .2s;display:grid}.digits span:nth-child(3){margin-right:clamp(6px,2.4vw,12px)}.digits.is-stale span{opacity:.35}.digits:not(.is-stale) span,.door__digits:not(.is-stale) span{animation:.4s cubic-bezier(.2,.8,.2,1) both digit-in}@keyframes digit-in{0%{opacity:0;transform:translateY(10px)scale(.92)}to{opacity:1;transform:none}}.countdown{text-align:left;--ring:var(--brand);justify-content:center;align-items:center;gap:12px;margin:20px auto 0;display:flex}.countdown.is-low{--ring:var(--warn)}.ring{flex:none;width:48px;height:48px}.ring circle{fill:none;stroke-width:4.5px}.ring__track{stroke:var(--track)}.ring__fill{stroke:var(--ring);stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .25s linear,stroke .3s;transform:rotate(-90deg)}.ring__num{fill:var(--text);text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums;font-size:15px;font-weight:800}.countdown__text{flex-direction:column;gap:1px;display:flex}.countdown__text strong{font-variant-numeric:tabular-nums;font-size:15px}.countdown.is-low .countdown__text strong{color:var(--warn)}.countdown__text span{color:var(--muted);font-size:13px}.previous{border-top:1px dashed var(--line);color:var(--muted);font-variant-numeric:tabular-nums;margin:18px 0 0;padding-top:14px;font-size:13px}.enlarge{color:var(--brand-ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;margin:14px auto 0;padding:7px 12px;font-size:13.5px;font-weight:650;display:inline-flex}.enlarge:hover{background:var(--brand-soft)}.enlarge:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.enlarge svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.nowrap{white-space:nowrap}.previous__code{background:var(--cell);color:var(--text);letter-spacing:2px;border-radius:7px;margin:0 2px;padding:1px 7px;font-weight:700;display:inline-block}.failed p{margin:6px 0 16px;font-size:16px}.retry{font:inherit;color:#fff;background:var(--brand);cursor:pointer;box-shadow:0 8px 18px -8px var(--brand);border:0;border-radius:14px;padding:13px 26px;font-weight:700}.retry:active{transform:scale(.97)}.retry:focus-visible{outline:3px solid var(--brand-ink);outline-offset:2px}.hint{text-align:left;align-items:center;gap:10px;margin:0 auto;font-size:15px;display:inline-flex}.hint svg{fill:none;width:26px;height:26px;stroke:var(--brand);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none}.hint svg path{stroke-width:2.6px}.meta{color:var(--muted);margin:0;font-size:13px}.meta--warn{color:var(--warn);font-weight:600}.door{z-index:10;padding:calc(20px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));background:var(--surface);color:var(--text);text-align:center;cursor:zoom-out;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:22px;animation:.18s ease-out door-in;display:flex;position:fixed;inset:0}@keyframes door-in{0%{opacity:0;transform:scale(.98)}}.door__label{margin:0;font-size:14px}.door__digits{--cell-w:min(26vw, 19vh);--cell-h:min(34vw, 25vh);grid-template-columns:repeat(3, var(--cell-w));gap:min(3.5vw,2.5vh);display:grid}.door__digits span{width:var(--cell-w);height:var(--cell-h);font-family:ui-rounded,SF Pro Rounded,ui-sans-serif,system-ui,sans-serif;font-size:calc(var(--cell-h) * .72);font-variant-numeric:tabular-nums;background:var(--cell);border:1px solid var(--cell-edge);border-radius:min(5vw,4vh);place-items:center;font-weight:800;line-height:1;transition:opacity .2s;display:grid}.door__digits.is-stale span{opacity:.35}@media (orientation:landscape){.door{gap:14px}.door__digits{--cell-w:min(13vw, 24vh);--cell-h:min(17vw, 34vh);grid-template-columns:repeat(6, var(--cell-w))}}.door .countdown{margin-top:0}.door__close{color:var(--muted);margin:0;font-size:13px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.digits:not(.is-stale) span,.door__digits:not(.is-stale) span,.status--live i,.door{animation:none}.ring__fill{transition:none}}
