:root{--pf-noir:#0c1410;--pf-felt:#1b5740;--pf-felt-lit:#246b4e;--pf-felt-deep:#133d2c;--pf-felt-edge:#0e2c20;--pf-gold:#e8b84b;--pf-gold-deep:#b6852a;--pf-gold-lite:#f8dd8c;--pf-gold-glow:#e8b84b8c;--pf-red:#d8392f;--pf-card:#fbf6ea;--pf-card-ink:#16110c;--pf-ink:#08120d;--pf-cream:#f4ecd8;--pf-cream-dim:#f4ecd89e;--pf-neon:#46e0c0;--pf-p1:#e8b84b;--pf-p2:#4dc4ff;--pf-p3:#6be0ac;--pf-p4:#ff7a4d;--pf-p5:#ff6fb0;--pf-p6:#9b8cff;--pf-p7:#ffd23f;--pf-p8:#46e0c0;--pf-shadow-md:7px 7px 0 0 var(--pf-ink);--pf-shadow-lg:11px 11px 0 0 var(--pf-ink);--pf-display:"Lilita One", system-ui, sans-serif;--pf-body:"Nunito", system-ui, sans-serif}*{box-sizing:border-box}body{font-family:var(--pf-body);background:var(--pf-noir);color:var(--pf-cream);-webkit-font-smoothing:antialiased;margin:0;font-weight:700}.pf-felt{background-color:var(--pf-felt);background-image:radial-gradient(120% 90% at 50% 38%, var(--pf-felt-lit) 0%, var(--pf-felt) 42%, var(--pf-felt-deep) 78%, var(--pf-felt-edge) 100%)}.pf-noir{background-color:var(--pf-noir);background-image:radial-gradient(140% 120% at 50% 22%,#246b4e33 0%,#0c141000 55%),radial-gradient(60% 80% at 50% 120%,#e8b84b1a 0%,#0c141000 60%)}.pf-scope{font-family:var(--pf-body);color:var(--pf-cream)}.pf-host :-webkit-any(a,button,[tabindex]):focus{outline:4px solid var(--pf-gold);outline-offset:3px}.pf-host :-moz-any(a,button,[tabindex]):focus{outline:4px solid var(--pf-gold);outline-offset:3px}.pf-host :is(a,button,[tabindex]):focus{outline:4px solid var(--pf-gold);outline-offset:3px}.pf-display{font-family:var(--pf-display);font-weight:400;line-height:.95}.pf-gold-text{color:var(--pf-gold);background:linear-gradient(176deg, var(--pf-gold-lite), var(--pf-gold) 55%, var(--pf-gold-deep));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.pf-sticker{border:4px solid var(--pf-ink);box-shadow:var(--pf-shadow-md);border-radius:26px}.pf-press{transition:transform 90ms,box-shadow 90ms}.pf-press:active{transform:translate(5px,5px);box-shadow:2px 2px 0 0 var(--pf-ink)!important}@keyframes pf-pulse-gold{0%{box-shadow:0 0 0 0 var(--pf-gold-glow), var(--pf-shadow-md)}70%{box-shadow:0 0 0 22px #e8b84b00, var(--pf-shadow-md)}to{box-shadow:0 0 0 0 #e8b84b00, var(--pf-shadow-md)}}@keyframes pf-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pf-winner-pop{0%{opacity:0;transform:scale(.6)rotate(-6deg)}60%{opacity:1;transform:scale(1.12)rotate(2deg)}to{transform:scale(1)rotate(0)}}.pf-anim-bob{animation:2.6s ease-in-out infinite pf-bob}.pf-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:max(.3rem,min(1.1vh,1rem));min-height:100vh;padding:max(.5rem,min(2.8vh,2rem));display:flex}.pf-title{font-family:var(--pf-display);letter-spacing:.08em;color:var(--pf-gold);text-shadow:3px 3px 0 var(--pf-ink);margin:0;font-size:2.6rem;font-weight:400}.pf-roomcode{font-family:var(--pf-display);letter-spacing:.3em;color:var(--pf-gold);text-shadow:4px 4px 0 var(--pf-ink);font-size:4.5rem}.pf-hint,.pf-notice{color:var(--pf-cream-dim)}.pf-join-qr{background:var(--pf-card);border:4px solid var(--pf-ink);box-shadow:var(--pf-shadow-md);border-radius:18px;padding:max(8px,min(1.4vmin,14px));line-height:0}.pf-notice{font-family:var(--pf-display);color:var(--pf-cream);font-size:1.3rem}.pf-roster{flex-wrap:wrap;justify-content:center;gap:.5rem;padding:0;list-style:none;display:flex}.pf-roster-player{background:var(--pf-felt-deep);border:3px solid var(--pf-ink);box-shadow:4px 4px 0 var(--pf-ink);border-radius:999px;padding:.4rem 1rem;font-weight:800}.pf-offline{opacity:.4}.pf-button{font-family:var(--pf-display);letter-spacing:.02em;border:3px solid var(--pf-ink);background:linear-gradient(150deg, var(--pf-gold-lite), var(--pf-gold) 45%, var(--pf-gold-deep));color:var(--pf-ink);box-shadow:var(--pf-shadow-md);cursor:pointer;border-radius:16px;padding:.8rem 1.8rem;font-size:1.2rem}.pf-button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.5)}.pf-form{flex-direction:column;gap:.8rem;width:min(20rem,90vw);display:flex}.pf-field{text-align:left;flex-direction:column;gap:.3rem;display:flex}.pf-field label{color:var(--pf-cream-dim);font-weight:800}.pf-field input{border:3px solid var(--pf-ink);background:var(--pf-card);color:var(--pf-card-ink);border-radius:10px;padding:.6rem;font-size:1rem;font-weight:800}.pf-error{color:var(--pf-red);font-weight:800}
