:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141016;--ink:#f3e9d2;--muted:#b9ab90;--gold:#c9a35a;--panel:#141016db;--error:#ff9b9b;--info:#9fe8a0;--focus:#8fd3ff}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font-family:PingFang TC,Noto Sans CJK TC,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;line-height:1.6}[hidden]{display:none!important}#app{min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));place-items:center;display:grid}.card{background:var(--panel);border:1px solid var(--gold);border-radius:.75rem;width:min(26rem,100%);padding:1.5rem}.card h1{color:var(--gold);margin:0 0 .25rem;font-size:1.5rem}.card h1 small{color:var(--muted);font-size:.85rem;font-weight:400;display:block}.lead{color:var(--muted);margin:0 0 1rem}.banner{border:1px solid var(--gold);background:#c9a35a1f;border-radius:.5rem;margin:0 0 1rem;padding:.6rem .8rem}.banner.dev{border-color:var(--info);background:#9fe8a01a}form{gap:.75rem;display:grid}label{font-weight:600;display:block}input{width:100%;min-height:44px;font:inherit;color:var(--ink);border:1px solid var(--muted);background:#1e1820;border-radius:.5rem;margin-top:.25rem;padding:.5rem .75rem}input#code{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.6rem}input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input[disabled]{opacity:.6}.consent{color:var(--muted);margin:0;font-size:.85rem}.consent a,.links a{color:var(--gold)}button{min-height:44px;font:inherit;color:var(--ink);border:1px solid var(--gold);cursor:pointer;background:#3a2230;border-radius:.5rem;padding:.5rem 1rem}button.primary{font-weight:600}button.link{min-height:44px;color:var(--gold);background:0 0;border-color:#0000;padding:.25rem .5rem;text-decoration:underline}button[disabled]{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;justify-content:space-between;gap:.5rem;display:flex}#status{min-height:1.6em;margin:0}#status.error{color:var(--error)}#status.info{color:var(--info)}#countdown{color:var(--muted);margin:0;font-size:.9rem}.skeleton{color:var(--muted);text-align:center;padding:2rem 0}
