: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(14px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;gap:16px;margin:0 auto;display:flex}.stage{flex-direction:column;flex:1;justify-content:center;gap:18px;display:flex}.place{text-align:left;align-items:center;gap:12px;display:flex}.place__icon{border-radius:11px;flex:none;width:40px;height:40px;box-shadow:0 6px 14px -6px #16a34a99}.place__text{flex-direction:column;flex:1;min-width:0;display:flex}.place__city{color:var(--muted);letter-spacing:.2px;font-size:12.5px;font-weight:600}.place__name{letter-spacing:-.3px;margin:0;font-size:18px;font-weight:800;line-height:1.2}.status{background:var(--brand-soft);color:var(--brand-ink);border-radius:99px;flex:none;align-items:center;gap:7px;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:20px clamp(12px,4vw,20px) 16px}.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:6px;display:flex;container-type:inline-size}.digits span{aspect-ratio:5/7;font-variant-numeric:tabular-nums;background:var(--cell);border:1px solid var(--cell-edge);border-radius:14px;flex:1 1 0;place-items:center;max-width:66px;font-family:ui-rounded,SF Pro Rounded,ui-sans-serif,system-ui,sans-serif;font-size:min(15.5cqi,60px);font-weight:800;line-height:1;transition:opacity .2s;display:grid}.digits span:nth-child(3){margin-right:8px}.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{--ring:var(--brand);margin:20px 0 0}.countdown.is-low{--ring:var(--warn)}.bar{background:var(--track);border-radius:99px;height:8px;overflow:hidden}.bar span{border-radius:inherit;background:var(--ring);transform-origin:0;height:100%;transition:transform .25s linear,background .3s;display:block}.countdown__text{text-align:left;font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-top:10px;display:flex}.countdown__text strong{font-size:16px}.countdown.is-low .countdown__text strong{color:var(--warn)}.countdown__text span{color:var(--muted);font-size:14px}.previous{border-top:1px dashed var(--line);min-height:39px;color:var(--muted);font-variant-numeric:tabular-nums;margin:16px 0 0;padding-top:14px;font-size:13.5px;line-height:24px}.enlarge{background:var(--brand-soft);width:100%;min-height:48px;color:var(--brand-ink);font:inherit;cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;margin:12px 0 0;padding:0 16px;font-size:15px;font-weight:700;transition:transform .1s,filter .2s;display:inline-flex}.enlarge:hover{filter:brightness(.97)}.enlarge:active{transform:scale(.98)}.enlarge:disabled{opacity:.5;cursor:default;transform:none}.enlarge:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.enlarge svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.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}.foot{flex-direction:column;gap:6px;display:flex}.foot:empty{display:none}.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;--cell-w:min(26vw, 19vh);--cell-h:min(34vw, 25vh);--gap:min(3.5vw, 2.5vh);--cols:3;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{grid-template-columns:repeat(var(--cols), var(--cell-w));gap:var(--gap);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{--cell-w:min(13vw, 24vh);--cell-h:min(17vw, 34vh);--cols:6;gap:14px}}.door .countdown{width:calc(var(--cols) * var(--cell-w) + (var(--cols) - 1) * var(--gap));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}.bar span{transition:none}}
