@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-vietnamese-wdth-normal-Rd0aZl9c.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-latin-ext-wdth-normal-CQ1tG6In.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-latin-wdth-normal-BMVx8nn_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0a1424}body{margin:0}#gate{z-index:1000;overscroll-behavior:contain;--font-sans:"Mona Sans Variable", ui-sans-serif, system-ui, sans-serif;color:#f2f5f9;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background:#0a1424;place-items:safe center;display:grid;position:fixed;inset:0;overflow:hidden auto}.gate-backdrop{background:linear-gradient(#0a14248c,#0a1424d9),url(/media/img/corner-evening-ambient.webp) 50%/cover no-repeat;position:absolute;inset:-4%}.gate-panel{text-align:center;flex-direction:column;align-items:center;width:min(100% - 48px,360px);display:flex;position:relative}.gate-logo{border-radius:14px;width:56px;height:56px;box-shadow:0 12px 30px -10px #0009}.gate-date{color:#f2f5f9d9;margin:22px 0 0;font-size:17px;font-weight:560}.gate-time{letter-spacing:-.03em;margin:0;font-size:clamp(3rem,22vw,6rem);font-weight:650;font-stretch:112%;line-height:1}.gate-title{margin:28px 0 0;font-size:19px;font-weight:650;font-stretch:108%}.gate-hint{color:#f2f5f9bf;margin:4px 0 0;font-size:15px}.gate-grid{aspect-ratio:1;touch-action:none;cursor:pointer;border-radius:24px;outline:none;grid-template-columns:repeat(3,1fr);width:min(78vw,270px);margin-top:28px;display:grid;position:relative}.gate-grid:focus-visible{box-shadow:0 0 0 2px #f5b967}.gate-dot{pointer-events:none;place-items:center;display:grid}.gate-dot>span{background:#ffffff29;border-radius:999px;width:22px;height:22px;transition:transform .18s cubic-bezier(.16,1,.3,1),background-color .18s;box-shadow:inset 0 1px .5px #ffffff8c,inset 0 0 0 1px #ffffff40}.gate-dot.is-on>span{background:#f2f5f9;transform:scale(1.35);box-shadow:0 0 0 6px #ff523359}.gate-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.gate-lines polyline{fill:none;stroke:#ff5233;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.gate-grid[data-state=error]{animation:.42s cubic-bezier(.36,.07,.19,.97) gate-shake}.gate-grid[data-state=error] polyline{stroke:#e71f01;opacity:.6}.gate-grid[data-state=error] .gate-dot.is-on>span{background:#ff5233}.gate-grid[data-state=success] polyline{stroke:#34c759}.gate-grid[data-busy] .gate-dot.is-on>span{animation:.9s ease-in-out infinite gate-pulse}.gate-message{color:#ff5233;min-height:1.5em;margin:22px 0 0;font-size:15px}.gate-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (max-height:560px){.gate-panel{padding-block:12px}.gate-logo,.gate-date,.gate-keys{display:none}.gate-time{font-size:3rem}.gate-title{margin-top:8px}.gate-grid{width:min(60vh,270px);margin-top:12px}.gate-message{margin-top:8px}}.gate-keys{color:#f2f5f980;margin:28px 0 0;font-size:12px}#gate.is-leaving{pointer-events:none;animation:.7s cubic-bezier(.7,0,.84,0) forwards gate-leave}@keyframes gate-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-8px)}40%,60%{transform:translate(8px)}}@keyframes gate-pulse{50%{transform:scale(1.1)}}@keyframes gate-leave{to{opacity:.6;transform:translateY(-100%)}}@media (prefers-reduced-motion:reduce){.gate-grid[data-state=error],.gate-grid[data-busy] .gate-dot.is-on>span,#gate.is-leaving{animation:none}}
