@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:1rem;--shadow:0 .25rem 1.5rem #0000001a;--shadow-lg:0 .5rem 2.5rem #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:1.5rem 1rem 3rem;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 1rem;overflow:hidden}.landing-inner{flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:25rem;display:flex}.logo-block{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.logo-dots{gap:.5rem;display:flex}.dot{border-radius:50%;width:.875rem;height:.875rem;display:block}.logo{letter-spacing:-.09375rem;color:var(--ink);font-family:Poppins,sans-serif;font-size:3rem;font-weight:600;line-height:1}.tagline{color:var(--ink-light);font-family:Poppins,sans-serif;font-size:.9375rem}.btn-row,.form-block{flex-direction:column;gap:.75rem;width:100%;display:flex}.form-block label{color:var(--ink-light);text-transform:uppercase;letter-spacing:.03125rem;font-size:.8125rem;font-weight:600}.input{border:2px solid var(--cream-dark);border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;outline:none;padding:.875rem 1rem;font-family:Poppins,sans-serif;font-size:1rem;transition:border-color .15s}.input:focus{border-color:var(--orange)}.code-input{letter-spacing:.25rem;text-align:center;background:#ffffff73;font-size:1.25rem;font-weight:700}.code-input::placeholder{letter-spacing:.0625rem;font-size:1.125rem;font-weight:400}.btn{border-radius:var(--radius);cursor:pointer;text-align:center;border:none;padding:.875rem 1.5rem;font-family:Poppins,sans-serif;font-size:1rem;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(-.0625rem)}.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:.5rem;font-size:.875rem}.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:.5rem;padding:.375rem .75rem;font-family:Poppins,sans-serif;font-size:.8125rem;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:.8125rem}.leave-lobby-btn:hover{color:var(--red)}.btn-small{white-space:nowrap;border-radius:.625rem;padding:.625rem 1rem;font-size:.875rem}.btn-remove{color:var(--ink-light);cursor:pointer;background:0 0;border:none;border-radius:.375rem;padding:.25rem .5rem;font-size:.875rem;transition:all .1s}.btn-remove:hover{background:var(--red-light);color:var(--red)}.lobby{justify-content:flex-start;padding-top:3rem}.lobby-inner{flex-direction:column;gap:1.5rem;width:100%;max-width:26.25rem;display:flex}.session-code-block{border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);background:#fff;padding:1.5rem}.code-label{text-transform:uppercase;letter-spacing:.0625rem;color:var(--ink-light);margin-bottom:.5rem;font-size:.75rem;font-weight:600}.code-display{letter-spacing:.5rem;color:var(--orange);font-family:Poppins,sans-serif;font-size:3rem;font-weight:900;line-height:1}.code-hint{color:var(--ink-light);margin-top:.5rem;font-size:.8125rem}.player-list{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:.625rem;padding:1.25rem;display:flex}.player-list h3{margin-bottom:.25rem;font-family:Poppins,sans-serif;font-size:1.125rem;font-weight:700}.player-row{border-bottom:1px solid var(--cream-dark);justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.player-row:last-child{border-bottom:none}.player-name{font-size:.9375rem;font-weight:500}.add-player-block{flex-direction:column;gap:.5rem;display:flex}.add-label{color:var(--ink-light);text-transform:uppercase;letter-spacing:.03125rem;font-size:.8125rem;font-weight:600}.add-row{align-items:center;gap:.5rem;display:flex}.add-row .input{flex:1}.btn-start{border-radius:var(--radius);width:100%;padding:1.125rem;font-size:1.125rem}.waiting{text-align:center;color:var(--ink-light);padding:1.5rem 0;font-family:Poppins,sans-serif;font-size:1rem;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:1rem 1.25rem;display:flex;position:sticky;top:0}.your-turn-badge{background:var(--orange);color:#fff;border-radius:1.25rem;padding:.375rem .875rem;font-size:.875rem;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:.9375rem;font-weight:500}.top-bar-right{gap:.5rem;display:flex}.card-area{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:31.25rem;min-height:calc(100vh - 8.75rem);margin:0 auto;padding:1.5rem 1.25rem;display:flex}.card-face{width:100%;box-shadow:var(--shadow-lg);border:3px solid;border-radius:1.25rem;animation:.3s cubic-bezier(.34,1.56,.64,1) cardIn;overflow:hidden}@keyframes cardIn{0%{opacity:0;transform:translateY(1rem)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.card-header{letter-spacing:.125rem;text-transform:uppercase;padding:1rem 1.25rem;font-family:Poppins,sans-serif;font-size:1.125rem;font-weight:900}.card-body{background:#fff;padding:1.75rem 1.5rem}.card-text{color:var(--ink);font-family:Poppins,sans-serif;font-size:1.25rem;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:.625rem;padding:1rem 1.5rem 1.25rem;display:flex}.next-btn{white-space:nowrap;margin-left:auto}@media (max-width:639px){.card-footer .btn{padding:.5rem .75rem;font-size:.8125rem}}.color-pick-area{flex-direction:column;align-items:center;gap:1.25rem;width:100%;display:flex}.pick-prompt{color:var(--ink);text-align:center;font-family:Poppins,sans-serif;font-size:1.375rem;font-weight:700}.color-grid{grid-template-columns:1fr;gap:1.25rem;width:80%;max-width:20rem;display:grid}@media (min-width:640px){.color-grid{grid-template-columns:1fr 1fr;gap:1.125rem;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:.625rem 1.125rem;display:flex}.color-btn-bottom{border-top:2px solid var(--ink);background:#fff;flex-direction:column;flex:1;gap:.25rem;padding:1rem;display:flex}@media (min-width:640px){.color-btn-top{padding:.875rem 1.5rem}.color-btn-bottom{padding:1.25rem}}.color-btn.can-pick:hover{transform:scale(1.04);box-shadow:0 .375rem 1.25rem #0003}.color-btn.cant-pick{opacity:.45;cursor:not-allowed}.color-label{color:var(--ink);letter-spacing:.09375rem;text-transform:uppercase;text-align:center;font-family:Poppins,sans-serif;font-size:1.0625rem;font-weight:900}.color-count,.color-tokens{color:var(--ink);font-size:1rem}.blocked-tag{color:var(--ink);text-transform:uppercase;letter-spacing:.03125rem;background:#0000001f;border-radius:.625rem;margin-top:.25rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-block}.waiting-card{flex-direction:column;align-items:center;gap:1.25rem;padding:2rem 1.25rem;display:flex}.waiting-pips{gap:.625rem;display:flex}.pip{border-radius:50%;width:1rem;height:1rem;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(-.375rem)}}.waiting-text{color:var(--ink-light);text-align:center;font-family:Poppins,sans-serif;font-size:1.125rem;font-style:italic}.deck-counts{flex-wrap:wrap;justify-content:center;gap:1rem;padding:.75rem 1.25rem;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:.375rem;font-size:.8125rem;font-weight:500;display:flex}.deck-dot{border-radius:50%;flex-shrink:0;width:.625rem;height:.625rem;display:block}.deck-num{color:var(--ink);font-weight:700}.timer{background:var(--cream-dark);border-radius:.625rem;align-items:center;gap:.625rem;padding:.5rem .875rem;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:.0625rem;font-family:Poppins,sans-serif;font-size:1.375rem;font-weight:900}.manage-overlay{border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:100;background:#fff;flex-direction:column;gap:.625rem;width:17.5rem;max-height:70vh;padding:1.25rem;display:flex;position:fixed;top:3.75rem;right:1rem;overflow-y:auto}.manage-overlay h3{font-family:Poppins,sans-serif;font-size:1.125rem;font-weight:700}.loading{color:var(--ink-light);font-family:Poppins,sans-serif;font-size:1.25rem;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:.75rem;width:min(20rem,90vw);padding:1.75rem 1.5rem;display:flex}.modal-title{color:var(--ink);font-family:Poppins,sans-serif;font-size:1.25rem;font-weight:700}.modal-body{color:var(--ink-light);font-size:.875rem}.modal-actions{justify-content:flex-end;gap:.625rem;margin-top:.5rem;display:flex}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#a93226}@media (max-width:380px){.logo{font-size:2.5rem}.code-display{font-size:2.25rem}.card-text{font-size:1.0625rem}.color-grid{grid-template-columns:1fr;gap:.625rem}}.duplicate-warning{flex-direction:column;gap:.75rem;display:flex}.duplicate-msg{color:var(--ink);font-size:.875rem;font-weight:500}.duplicate-actions{gap:.5rem;display:flex}.settings-panel{border:1px solid var(--cream-dark);border-radius:var(--radius);background:#fff;flex-direction:column;gap:1rem;width:100%;padding:1rem 1.25rem;display:flex}.settings-readonly{background:var(--cream)}.settings-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-light);font-size:.75rem;font-weight:600}.settings-row{color:var(--ink);justify-content:space-between;align-items:center;font-size:.875rem;display:flex}.settings-value{font-weight:600}.setting-row{flex-direction:column;gap:.5rem;display:flex}.setting-label{color:var(--ink);font-size:.875rem;font-weight:500}.setting-chips{flex-wrap:wrap;gap:.375rem;display:flex}.setting-chip{border:1px solid var(--ink);cursor:pointer;background:#fff;border-radius:2rem;padding:.3125rem .75rem;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s}.setting-chip:hover{background:var(--cream-dark)}.setting-chip.active{background:var(--ink);color:#fff}.setting-stepper{align-items:center;gap:.75rem;display:flex}.stepper-btn{border:1px solid var(--ink);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.125rem;line-height:1;transition:background .15s;display:flex}.stepper-btn:hover:not(:disabled){background:var(--cream-dark)}.stepper-btn:disabled{opacity:.35;cursor:not-allowed}.stepper-value{text-align:center;min-width:1.5rem;font-size:1rem;font-weight:600}
