:root{--bg:#f4e7c5;--panel:#fffdf3;--panel-2:#fbf3da;--ink:#211c15;--muted:#8c8167;--yellow:#ffd23f;--yellow-dk:#c98a00;--coral:#ff6f61;--coral-dk:#c63b2f;--teal:#2ec4b6;--teal-dk:#138a78;--blue:#5b8def;--blue-dk:#2f5bc0;--radius:14px;--bw:2.5px}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:"Space Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);background-image:radial-gradient(rgba(33,28,21,.06) 1.4px,transparent 0);background-size:18px 18px;color:var(--ink);overflow-x:hidden}.App{text-align:center;min-height:100svh;flex-direction:column}.App,.page{display:flex}.page{flex:1 1;width:100%;max-width:440px;margin:0 auto;padding:22px max(18px,env(safe-area-inset-right)) 22px max(18px,env(safe-area-inset-left));flex-direction:column;grid-gap:16px;gap:16px}.brand{font-size:2.5rem;font-weight:700;letter-spacing:-.03em;margin:0;line-height:1.05}.brand span{display:inline-block;background:var(--coral);color:var(--panel);border:var(--bw) solid var(--ink);border-radius:10px;padding:0 10px;transform:rotate(-2deg);box-shadow:3px 3px 0 var(--coral-dk)}.tagline{color:var(--ink);opacity:.7;margin:8px 0 0;font-size:.95rem;font-weight:500}.card{background:var(--panel);border:var(--bw) solid var(--ink);border-radius:var(--radius);padding:18px;text-align:left;box-shadow:5px 5px 0 var(--ink)}.card h2{margin:0 0 14px;font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.field{margin-bottom:12px}.field:last-of-type{margin-bottom:14px}.input{width:100%;padding:11px 13px;border-radius:11px;border:var(--bw) solid var(--ink);background:var(--panel);color:var(--ink);font-size:1rem;font-family:inherit;font-weight:600;outline:none;box-shadow:3px 3px 0 var(--ink);transition:transform .06s ease,box-shadow .06s ease}.input::placeholder{color:var(--muted);font-weight:500}.input:focus{transform:translate(-1px,-1px)}.btn,.input:focus{box-shadow:4px 4px 0 var(--yellow-dk)}.btn{width:100%;padding:12px 16px;border:var(--bw) solid var(--ink);border-radius:12px;background:var(--yellow);color:var(--ink);font-size:1rem;font-family:inherit;font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:transform .06s ease,box-shadow .06s ease}.btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--yellow-dk)}.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--yellow-dk)}.btn-ghost{background:var(--panel);box-shadow:4px 4px 0 var(--ink)}.btn-ghost:active,.btn-ghost:hover{box-shadow:1px 1px 0 var(--ink)}.btn-danger{background:var(--coral);color:var(--panel);box-shadow:4px 4px 0 var(--coral-dk)}.btn-danger:hover{box-shadow:5px 5px 0 var(--coral-dk)}.btn-danger:active{box-shadow:1px 1px 0 var(--coral-dk)}.divider{display:flex;align-items:center;grid-gap:10px;gap:10px;color:var(--ink);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.divider:after,.divider:before{content:"";flex:1 1;height:var(--bw);background:var(--ink);border-radius:2px}.room-code{display:flex;align-items:center;justify-content:space-between;grid-gap:12px;gap:12px;background:var(--yellow);border:var(--bw) solid var(--ink);border-radius:11px;padding:10px 14px;margin-bottom:16px;box-shadow:3px 3px 0 var(--yellow-dk)}.room-code .code{font-size:1.35rem;font-weight:700;letter-spacing:.06em}.copy-btn{background:var(--panel);border:var(--bw) solid var(--ink);border-radius:8px;color:var(--ink);cursor:pointer;font-size:.8rem;font-weight:700;font-family:inherit;padding:5px 9px;box-shadow:2px 2px 0 var(--ink)}.copy-btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;grid-gap:8px;gap:8px}.player-list li{background:var(--panel-2);border:var(--bw) solid var(--ink);border-radius:10px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;font-weight:600}.label{color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}.game-header{text-align:left}.game-line{display:flex;align-items:center;flex-wrap:wrap;grid-gap:10px;gap:10px;margin:0}.adu-suit{font-size:1.7rem;font-weight:700;background:var(--yellow);border:var(--bw) solid var(--ink);border-radius:10px;padding:1px 10px;box-shadow:3px 3px 0 var(--yellow-dk);line-height:1.25}.game-meta{color:var(--ink);opacity:.75;font-size:.9rem;font-weight:600}.scoreboard{display:flex;flex-direction:column;grid-gap:8px;gap:8px}.score-row{display:flex;align-items:center;justify-content:space-between;background:var(--panel);border:var(--bw) solid var(--ink);border-radius:10px;padding:9px 12px;font-weight:600}.score-row .points{font-weight:700;font-size:1.05rem}.value{font-weight:700}.hint{opacity:.7;font-size:.9rem;font-weight:500;margin:0}.hint,.tag{color:var(--ink)}.tag{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--panel-2);border:2px solid var(--ink);transform:rotate(-3deg)}.tag.done{background:var(--teal);color:var(--panel)}.score-row.winner{background:var(--yellow);box-shadow:4px 4px 0 var(--yellow-dk)}.score-row.winner .points{color:var(--ink)}.pname,.row-tags{display:flex;align-items:center;grid-gap:8px;gap:8px}.dot{width:11px;height:11px;border-radius:50%;border:2px solid var(--ink);flex:0 0 auto}.dot.on{background:var(--teal)}.dot.off{background:var(--muted)}.player-list li.offline,.score-row.offline{opacity:.5}.kick-btn{border:2px solid var(--ink);background:var(--panel);color:var(--ink);font-size:.8rem;font-weight:700;line-height:1;padding:3px 7px;border-radius:7px;cursor:pointer;box-shadow:2px 2px 0 var(--ink)}.kick-btn:hover{background:var(--coral);color:var(--panel)}.kick-btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.score-row .name{display:flex;align-items:center;grid-gap:8px;gap:8px;flex-wrap:wrap}.card{animation:card-in .28s ease both}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}}.tag.done{animation:pop .32s cubic-bezier(.18,1.4,.4,1) both}@keyframes pop{0%{transform:scale(0) rotate(-3deg)}to{transform:scale(1) rotate(-3deg)}}.toast{position:fixed;top:16px;left:50%;z-index:1500;transform:translateX(-50%);background:var(--yellow);color:var(--ink);font-weight:700;padding:10px 18px;border-radius:999px;border:var(--bw) solid var(--ink);box-shadow:4px 4px 0 var(--yellow-dk);animation:toast-in 1.5s ease forwards;pointer-events:none;white-space:nowrap}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-20px) scale(.9)}12%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-16px) scale(.96)}}.score-row.flash-gain{animation:flash-gain 1.4s ease}.score-row.flash-loss{animation:flash-loss 1.4s ease}@keyframes flash-gain{0%,to{background:var(--panel)}20%{background:var(--teal)}}@keyframes flash-loss{0%,to{background:var(--panel)}20%{background:var(--coral)}}.points{position:relative}.delta-float{position:absolute;right:0;bottom:100%;font-size:.95rem;font-weight:700;pointer-events:none;animation:delta-rise 1.6s ease forwards}.delta-float.gain{color:var(--teal-dk)}.delta-float.loss{color:var(--coral-dk)}@keyframes delta-rise{0%{opacity:0;transform:translateY(6px) scale(.8)}20%{opacity:1;transform:translateY(-2px) scale(1.1)}to{opacity:0;transform:translateY(-22px) scale(1)}}.confetti-piece{position:fixed;top:-16px;width:10px;height:14px;z-index:2000;pointer-events:none;border:1.5px solid var(--ink);animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) translateX(0) rotate(0)}to{opacity:.9;transform:translateY(105svh) translateX(var(--drift)) rotate(var(--spin))}}.confetti-emoji{position:fixed;top:-28px;z-index:2000;pointer-events:none;line-height:1;animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:forwards}.shake{animation:shake .52s ease}@keyframes shake{0%,to{transform:translateX(0) rotate(0)}15%{transform:translateX(-8px) rotate(-1deg)}30%{transform:translateX(8px) rotate(1deg)}45%{transform:translateX(-6px) rotate(-.6deg)}60%{transform:translateX(6px) rotate(.6deg)}78%{transform:translateX(-3px)}}.modal-backdrop{position:fixed;inset:0;z-index:1800;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(33,28,21,.45);animation:fade-in .16s ease both}.modal{width:100%;max-width:350px;background:var(--panel);border:var(--bw) solid var(--ink);border-radius:var(--radius);padding:22px;text-align:center;box-shadow:6px 6px 0 var(--ink);animation:modal-in .2s cubic-bezier(.18,1.2,.4,1) both}.modal-title{margin:0 0 8px;font-size:1.2rem;font-weight:700}.modal-msg{margin:0 0 18px;color:var(--ink);opacity:.8;font-weight:500;line-height:1.5}.modal-actions{display:flex;grid-gap:10px;gap:10px}.modal-actions .btn{flex:1 1}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.96)}}.overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.overlay-card{text-align:center;max-width:340px}.overlay-title{font-size:1.1rem;font-weight:700;margin:18px 0 8px}.overlay-sub{color:var(--ink);opacity:.75;font-size:.9rem;font-weight:500;line-height:1.5;margin:0}.spinner{width:46px;height:46px;margin:0 auto;border:4px solid var(--ink);border-top-color:var(--yellow);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:420px){.page{padding-top:16px;grid-gap:13px;gap:13px}.brand{font-size:2.1rem}.card{padding:15px}}@media (prefers-reduced-motion:reduce){.card,.confetti-emoji,.confetti-piece,.delta-float,.modal,.modal-backdrop,.score-row.flash-gain,.score-row.flash-loss,.shake,.tag.done,.toast{animation:none}}
/*# sourceMappingURL=main.83f733f1.chunk.css.map */