@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.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{--stage:#2b44d6;--stage-deep:#2237b8;--ink:#15133b;--line:#15133b;--paper:#fff;--haze:#eef0ff;--odd:#ff4f86;--odd-ink:#15133b;--muted:#4a4f73;--link:#2237b8;--on-stage:#fff;--on-stage-soft:#dfe4ff;--error-bg:#fff0f3;--error-text:#9b1037;--ok-bg:#e9f8f0;--ok-text:#0c5b39;--info-bg:#eef0ff;--info-text:#2237b8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font:"Bricolage Grotesque Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--lift:0 4px 0 var(--line);--lift-big:0 8px 0 var(--line);font-family:var(--font);color:var(--ink);font-optical-sizing:auto;font-size:100%;line-height:1.55}:root[data-theme=dark]{--stage:#0f0e2e;--ink:#f2f3ff;--line:#04031a;--paper:#1d1b4d;--haze:#2a2866;--muted:#bcc0e6;--link:#aebaff;--on-stage:#f2f3ff;--on-stage-soft:#c4c9ef;--error-bg:#3a1026;--error-text:#ffb8cc;--ok-bg:#0e3324;--ok-text:#a6f0cb;--info-bg:#23266b;--info-text:#d3d9ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--stage);min-height:100vh;margin:0}h1,h2{letter-spacing:-.02em;margin:0 0 .6em;font-weight:800;line-height:1.1}h1{font-size:2rem}h2{font-size:1.375rem}p{margin:0 0 1rem}a{color:var(--link);text-underline-offset:3px;font-weight:700}:focus-visible{outline:3px solid var(--odd);outline-offset:3px}.tile{background:var(--paper);color:var(--ink);border:2px solid var(--line);box-shadow:var(--lift);border-radius:8px;place-items:center;font-weight:800;line-height:1;display:inline-grid}.tile-odd{background:var(--odd);color:var(--odd-ink);transform:rotate(-9deg)translateY(-3px)}.wordmark{gap:.28em;display:inline-flex}.wordmark .tile{width:1.45em;height:1.55em}.wordmark-sm{gap:.32em;font-size:1.1rem}.wordmark-sm .tile{box-shadow:0 3px 0 var(--line);border-radius:6px}.wordmark-md{font-size:1.5rem}.wordmark-lg{font-size:clamp(1.35rem,4.2vw,2.4rem)}@media (prefers-reduced-motion:no-preference){.wordmark-lg .tile-odd{animation:.7s cubic-bezier(.3,1.6,.5,1) .25s both tip}@keyframes tip{0%{transform:rotate(0)translateY(0)}to{transform:rotate(-9deg)translateY(-3px)}}}.code-tiles{gap:.5rem;font-size:1.75rem;display:inline-flex}.code-tiles .tile{width:2.4rem;height:2.7rem}.auth{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.stage{color:var(--on-stage);flex-direction:column;justify-content:center;gap:2rem;padding:clamp(2rem,6vw,5rem);display:flex}.stage-line{max-width:26ch;color:var(--on-stage-soft);margin:0;font-size:1.25rem}.deal{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.deal-card{background:var(--paper);width:5.5rem;height:7.25rem;color:var(--ink);border:2px solid var(--line);box-shadow:var(--lift);border-radius:12px;place-items:center;font-size:1rem;font-weight:700;display:grid}.deal-card:nth-child(odd){transform:rotate(-2deg)}.deal-card:nth-child(2n){transform:rotate(2deg)}.deal-odd,.deal-card.deal-odd{background:var(--odd);color:var(--odd-ink);transform:rotate(-8deg)translateY(-10px)}.panel-wrap{background:var(--paper);place-items:center;padding:2.5rem 16px;display:grid}.panel-wrap>.panel{width:100%;max-width:400px}.panel{background:var(--paper)}.panel h1{font-size:2.25rem}.field{flex-direction:column;flex:1;gap:.35rem;min-width:0;margin-bottom:1.1rem;display:flex}.field label{font-size:.95rem;font-weight:700}.field input{font:inherit;border:2px solid var(--line);background:var(--haze);color:var(--ink);border-radius:10px;padding:.75rem .9rem;font-size:1rem}.field input:focus{background:var(--paper);box-shadow:0 0 0 3px var(--odd);outline:none}.row{gap:.75rem;display:flex}.code-input{text-transform:uppercase;letter-spacing:.3em;font-weight:800}.switch{color:var(--muted);margin:1.5rem 0 0}.btn{width:100%;font:inherit;border:2px solid var(--line);cursor:pointer;box-shadow:var(--lift);border-radius:10px;justify-content:center;align-items:center;padding:.8rem 1.1rem;font-size:1.05rem;font-weight:800;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 0 0 var(--line);transform:translateY(4px)}.btn:disabled{opacity:.65;cursor:wait}.btn-primary{background:var(--ink);color:var(--paper)}.btn-secondary{background:var(--paper);color:var(--ink)}.btn-ghost{width:auto;color:var(--on-stage);border-color:var(--on-stage);box-shadow:none;background:0 0;padding:.45rem .9rem;font-size:.95rem}.alert{border:2px solid;border-radius:10px;margin:0 0 1.1rem;padding:.8rem 1rem;font-weight:600}.alert-error{background:var(--error-bg);color:var(--error-text)}.alert-success{background:var(--ok-bg);color:var(--ok-text)}.alert-info{background:var(--info-bg);color:var(--info-text)}.theme-toggle{gap:.4rem}.panel-wrap{padding-top:4.5rem;position:relative}.corner-toggle{color:var(--ink);border-color:var(--ink);position:absolute;top:1rem;right:16px}.pw-rules{color:var(--muted);gap:.3rem;margin:-.4rem 0 1.1rem;padding:0;font-size:.92rem;list-style:none;display:grid}.pw-rules li{align-items:center;gap:.5rem;display:flex}.pw-mark{border:2px solid var(--line);background:var(--haze);border-radius:5px;flex:none;place-items:center;width:1.15rem;height:1.15rem;font-size:.75rem;font-weight:800;line-height:1;display:inline-grid}.pw-rules li.met{color:var(--ink)}.pw-rules li.met .pw-mark{background:var(--ok-bg);color:var(--ok-text)}.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}.qr{align-items:center;gap:1rem;margin:.5rem 0 0;display:flex}.qr-img{border:2px solid var(--line);width:7.5rem;height:7.5rem;box-shadow:var(--lift);background:#fff;border-radius:10px;flex:none;padding:.35rem}.qr-img svg{width:100%;height:100%;display:block}.qr figcaption{color:var(--muted);max-width:14ch;font-size:.95rem}form+.alert{margin-top:1.1rem}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1000px;margin:0 auto;padding:1.25rem 16px;display:flex}.topbar-user{color:var(--on-stage);align-items:center;gap:.9rem;display:flex}.home{max-width:1000px;margin:0 auto;padding:1.5rem 16px 4rem}.home>h1{color:var(--on-stage);max-width:18ch;font-size:clamp(2rem,5vw,3rem)}.lede{color:var(--on-stage-soft);max-width:48ch;font-size:1.2rem}.grid{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;margin-top:2rem;display:grid}.panel-host{border:2px solid var(--line);box-shadow:var(--lift-big);border-radius:20px;padding:2rem}.panel-join{border-radius:6px;padding:2rem}.panel p{color:var(--muted)}.room{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.room-label{color:var(--ink);margin:0;font-weight:700}.room .btn{width:auto}.players{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.players li{background:var(--haze);color:var(--ink);border:2px solid var(--line);border-radius:8px;padding:.25rem .7rem;font-weight:700}.how{color:var(--on-stage);max-width:60ch;margin-top:3rem}.how ol{color:var(--on-stage-soft);padding-left:1.4rem;font-size:1.1rem}.how li{margin-bottom:.5rem;padding-left:.3rem}.how li::marker{color:var(--on-stage);font-weight:800}@media (width<=820px){.auth{grid-template-columns:1fr}.stage{gap:1.25rem;padding:2rem 16px 2.5rem}.stage-line{font-size:1.05rem}.deal-card{border-radius:10px;width:3.6rem;height:4.75rem;font-size:.8rem}.deal{gap:.5rem}.panel-wrap{border-radius:20px 20px 0 0;align-items:start}.grid{grid-template-columns:1fr}}@media (width<=480px){.row{flex-direction:column;gap:0}.panel h1{font-size:1.85rem}.panel-host,.panel-join{padding:1.5rem}.code-tiles{gap:.35rem;font-size:1.4rem}.code-tiles .tile{width:2rem;height:2.3rem}}
