@import "https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap";
:root{--cream:#fdf6ec;--cream-dark:#f5ebd8;--ink:#1a1a1a;--ink-light:#555;--yellow:#f5c842;--blue:#4a90d9;--orange:#e8762b;--red:#c0392b;--yellow-light:#fdf3c0;--blue-light:#d6e8f7;--orange-light:#fae5d3;--red-light:#f5d0cd;--radius:16px;--shadow:0 4px 24px #0000001a;--shadow-lg:0 8px 40px #00000026}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Poppins,sans-serif}.screen{box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;height:100dvh;min-height:100vh;max-height:100dvh;padding:24px 16px 48px;display:flex;overflow-y:auto}@media (min-width:640px){.screen{height:auto;max-height:none}}.screen.centered{justify-content:center}.landing{background:var(--cream);box-sizing:border-box;justify-content:center;height:100dvh;min-height:100dvh;padding:0 16px;overflow:hidden}.landing-inner{flex-direction:column;align-items:center;gap:32px;width:100%;max-width:400px;display:flex}.logo-block{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.logo-dots{gap:8px;display:flex}.dot{border-radius:50%;width:14px;height:14px;display:block}.logo{letter-spacing:-1.5px;color:var(--ink);font-family:Poppins,sans-serif;font-size:48px;font-weight:600;line-height:1}.tagline{color:var(--ink-light);font-family:Poppins,sans-serif;font-size:15px}.btn-row,.form-block{flex-direction:column;gap:12px;width:100%;display:flex}.form-block label{color:var(--ink-light);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.input{border:2px solid var(--cream-dark);border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;outline:none;padding:14px 16px;font-family:Poppins,sans-serif;font-size:16px;transition:border-color .15s}.input:focus{border-color:var(--orange)}.code-input{letter-spacing:4px;text-align:center;background:#ffffff73;font-size:20px;font-weight:700}.btn{border-radius:var(--radius);cursor:pointer;text-align:center;border:none;padding:14px 24px;font-family:Poppins,sans-serif;font-size:16px;font-weight:600;transition:all .15s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover:not(:disabled){background:#333;transform:translateY(-1px)}.btn-outline{color:var(--ink);border:2px solid var(--ink);background:0 0}.btn-outline:hover:not(:disabled){background:var(--cream-dark)}.btn-ghost{color:var(--ink-light);background:0 0;padding:8px;font-size:14px}.btn-ghost:hover{color:var(--ink)}.btn-ghost-small{cursor:pointer;color:var(--ink-light);background:0 0;border:1.5px solid #00000026;border-radius:8px;padding:6px 12px;font-family:Poppins,sans-serif;font-size:13px;font-weight:500;transition:all .15s}.btn-ghost-small:hover{background:var(--cream-dark);color:var(--ink)}.leave-btn:hover{background:var(--red-light)!important;color:var(--red)!important}.leave-lobby-btn{color:var(--ink-light);align-self:center;font-size:13px}.leave-lobby-btn:hover{color:var(--red)}.btn-small{white-space:nowrap;border-radius:10px;padding:10px 16px;font-size:14px}.btn-remove{color:var(--ink-light);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:14px;transition:all .1s}.btn-remove:hover{background:var(--red-light);color:var(--red)}.lobby{justify-content:flex-start;padding-top:48px}.lobby-inner{flex-direction:column;gap:24px;width:100%;max-width:420px;display:flex}.session-code-block{border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);background:#fff;padding:24px}.code-label{text-transform:uppercase;letter-spacing:1px;color:var(--ink-light);margin-bottom:8px;font-size:12px;font-weight:600}.code-display{letter-spacing:8px;color:var(--orange);font-family:Poppins,sans-serif;font-size:48px;font-weight:900;line-height:1}.code-hint{color:var(--ink-light);margin-top:8px;font-size:13px}.player-list{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:10px;padding:20px;display:flex}.player-list h3{margin-bottom:4px;font-family:Poppins,sans-serif;font-size:18px;font-weight:700}.player-row{border-bottom:1px solid var(--cream-dark);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.player-row:last-child{border-bottom:none}.player-name{font-size:15px;font-weight:500}.add-player-block{flex-direction:column;gap:8px;display:flex}.add-label{color:var(--ink-light);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.add-row{align-items:center;gap:8px;display:flex}.add-row .input{flex:1}.btn-start{border-radius:var(--radius);width:100%;padding:18px;font-size:18px}.waiting{text-align:center;color:var(--ink-light);padding:24px 0;font-family:Poppins,sans-serif;font-size:16px;font-style:italic}.game{background:var(--cream);justify-content:flex-start;padding:0}.top-bar{border-bottom:1.5px solid var(--ink);z-index:10;background:#fff;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;display:flex;position:sticky;top:0}.your-turn-badge{background:var(--orange);color:#fff;border-radius:20px;padding:6px 14px;font-size:14px;font-weight:700;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.75}}.other-turn{color:var(--ink-light);font-size:15px;font-weight:500}.top-bar-right{gap:8px;display:flex}.card-area{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:500px;min-height:calc(100vh - 140px);margin:0 auto;padding:24px 20px;display:flex}.card-face{width:100%;box-shadow:var(--shadow-lg);border:3px solid;border-radius:20px;animation:.3s cubic-bezier(.34,1.56,.64,1) cardIn;overflow:hidden}@keyframes cardIn{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.card-header{letter-spacing:2px;text-transform:uppercase;padding:16px 20px;font-family:Poppins,sans-serif;font-size:18px;font-weight:900}.card-body{background:#fff;padding:28px 24px}.card-text{color:var(--ink);font-family:Poppins,sans-serif;font-size:20px;font-weight:400;line-height:1.55}.card-footer{border-top:1px solid var(--cream-dark);background:#fff;flex-wrap:nowrap;align-items:center;gap:10px;padding:16px 24px 20px;display:flex}.next-btn{white-space:nowrap;margin-left:auto}@media (max-width:639px){.card-footer .btn{padding:8px 12px;font-size:13px}}.color-pick-area{flex-direction:column;align-items:center;gap:20px;width:100%;display:flex}.pick-prompt{color:var(--ink);text-align:center;font-family:Poppins,sans-serif;font-size:22px;font-weight:700}.color-grid{grid-template-columns:1fr;gap:20px;width:80%;max-width:320px;display:grid}@media (min-width:640px){.color-grid{grid-template-columns:1fr 1fr;gap:18px;width:100%;max-width:none}}.color-btn{border:2.5px solid var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:0;flex-direction:column;padding:0;transition:all .15s;display:flex;position:relative;overflow:hidden}.color-btn-top{background:var(--card-color);justify-content:center;align-items:center;padding:10px 18px;display:flex}.color-btn-bottom{border-top:2px solid var(--ink);background:#fff;flex-direction:column;flex:1;gap:4px;padding:16px;display:flex}@media (min-width:640px){.color-btn-top{padding:14px 24px}.color-btn-bottom{padding:20px}}.color-btn.can-pick:hover{transform:scale(1.04);box-shadow:0 6px 20px #0003}.color-btn.cant-pick{opacity:.45;cursor:not-allowed}.color-label{color:var(--ink);letter-spacing:1.5px;text-transform:uppercase;text-align:center;font-family:Poppins,sans-serif;font-size:17px;font-weight:900}.color-count,.color-tokens{color:var(--ink);font-size:16px}.blocked-tag{color:var(--ink);text-transform:uppercase;letter-spacing:.5px;background:#0000001f;border-radius:10px;margin-top:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.waiting-card{flex-direction:column;align-items:center;gap:20px;padding:32px 20px;display:flex}.waiting-pips{gap:10px;display:flex}.pip{border-radius:50%;width:16px;height:16px;animation:1.2s ease-in-out infinite bounce;display:block}.pip:nth-child(2){animation-delay:.15s}.pip:nth-child(3){animation-delay:.3s}.pip:nth-child(4){animation-delay:.45s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.waiting-text{color:var(--ink-light);text-align:center;font-family:Poppins,sans-serif;font-size:18px;font-style:italic}.deck-counts{flex-wrap:wrap;justify-content:center;gap:16px;padding:12px 20px;display:flex}.bottom-counts{border-top:1px solid var(--cream-dark);background:#fff;width:100%;position:sticky;bottom:0}.deck-count-item{color:var(--ink-light);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.deck-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:block}.deck-num{color:var(--ink);font-weight:700}.timer{background:var(--cream-dark);border-radius:10px;align-items:center;gap:10px;padding:8px 14px;display:flex}.timer-urgent{background:var(--red-light);animation:.8s ease-in-out infinite urgentPulse}@keyframes urgentPulse{0%,to{background:var(--red-light)}50%{background:#f5a09a}}.timer-display{color:var(--ink);letter-spacing:1px;font-family:Poppins,sans-serif;font-size:22px;font-weight:900}.manage-overlay{border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:100;background:#fff;flex-direction:column;gap:10px;width:280px;max-height:70vh;padding:20px;display:flex;position:fixed;top:60px;right:16px;overflow-y:auto}.manage-overlay h3{font-family:Poppins,sans-serif;font-size:18px;font-weight:700}.loading{color:var(--ink-light);font-family:Poppins,sans-serif;font-size:20px;font-style:italic}.modal-backdrop{z-index:200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{border:2px solid var(--ink);border-radius:var(--radius);background:#fff;flex-direction:column;gap:12px;width:min(320px,90vw);padding:28px 24px;display:flex}.modal-title{color:var(--ink);font-family:Poppins,sans-serif;font-size:20px;font-weight:700}.modal-body{color:var(--ink-light);font-size:14px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#a93226}@media (max-width:380px){.logo{font-size:40px}.code-display{font-size:36px}.card-text{font-size:17px}.color-grid{grid-template-columns:1fr;gap:10px}}
