@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:root{--bg:#0f0f1e;--bg-card:#1e1e35;--bg-card-2:#252544;--accent:#8a2be2;--accent-2:#b85aff;--danger:#e74c3c;--success:#2ecc71;--text:#f5f5fa;--text-muted:#cfcfdc;--border:#44446a}*{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}.screen,body,html{background:var(--bg)}body,html{margin:0;padding:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;overscroll-behavior:none}#app,body{min-height:100vh;min-height:100dvh}.screen{display:none;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;height:100dvh;overflow:hidden;z-index:1}.screen.active{display:block;z-index:10}#app,.screen-inner{width:100%;position:relative}.screen-inner{display:flex;flex-direction:column;height:100%;padding:1.25rem;padding-top:max(1.25rem,env(safe-area-inset-top));padding-bottom:max(1.25rem,env(safe-area-inset-bottom));box-sizing:border-box;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.btn-back{position:absolute;top:max(.75rem,env(safe-area-inset-top));left:.75rem;background:0 0;border:0;color:var(--text);font-size:1.75rem;width:44px;height:44px;line-height:1;padding:0;z-index:5}.btn-back:active{color:var(--accent-2)}.form-control{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:.85rem 1rem}.form-control:focus{background:var(--bg-card-2);border-color:var(--accent);color:var(--text);box-shadow:0 0 0 .2rem rgba(138,43,226,.25)}.form-control::placeholder{color:var(--text-muted)}.stepper-input{width:100px;font-size:2rem;font-weight:700}.stepper-btn{width:64px;height:64px;font-size:2rem;padding:0;border-radius:12px}.stepper-btn-sm{width:44px;height:44px;font-size:1.5rem;padding:0;border-radius:8px}.btn{border-radius:10px;font-weight:500}.btn-lg{padding:.9rem 1.5rem;font-size:1.1rem}.btn-primary,.role-toggle.active .toggle-check{background:var(--accent);border-color:var(--accent)}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background:var(--accent-2)!important;border-color:var(--accent-2)!important}.btn-primary:disabled{background:var(--bg-card);border-color:var(--border);color:var(--text-muted);opacity:1}.btn-outline-light{border-color:var(--border);color:var(--text)}.btn-outline-light:active,.btn-outline-light:focus,.btn-outline-light:hover{background:var(--bg-card-2)!important;border-color:var(--accent)!important;color:var(--text)!important}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-success{background:var(--success);border-color:var(--success)}.role-box{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem}.role-title{font-size:1.05rem;font-weight:600}.role-toggle{background:var(--bg-card);border:2px solid var(--border);border-radius:12px;padding:.85rem 1rem;margin-bottom:.5rem;cursor:pointer;transition:all .15s}.role-toggle.active{border-color:var(--accent);background:var(--bg-card-2)}.role-toggle .toggle-check{width:24px;height:24px;border-radius:50%;justify-content:center;flex-shrink:0}.role-toggle.active .toggle-check::after{content:"✓";color:#fff;font-weight:700}.role-toggle-desc{font-size:.8rem;color:var(--text-muted);margin-top:.25rem;line-height:1.3}.player-card,.role-toggle .toggle-check{border:2px solid var(--border);display:flex;align-items:center}.player-card{background:var(--bg-card);border-radius:12px;padding:.9rem 1rem;margin-bottom:.5rem;justify-content:space-between;cursor:pointer;transition:all .15s}.player-card:active{background:var(--bg-card-2);transform:scale(.99)}.player-card.revealed{border-color:var(--success);opacity:.7}.player-card.dead{opacity:.4;text-decoration:line-through}.player-card.selected{border-color:var(--accent);background:var(--bg-card-2)}.player-card.lover{border-color:#e91e63}.player-name{font-size:1.1rem;font-weight:500}.player-meta{font-size:.85rem;color:var(--text-muted)}.custom-role-row{display:flex;gap:.5rem;margin-bottom:.5rem}.custom-role-row .form-control{flex:1}.phase-screen{text-align:center;justify-content:safe center}.phase-emoji{font-size:5rem;margin-bottom:1rem}.phase-title{font-size:2rem;font-weight:700;margin-bottom:.5rem}.phase-subtitle{color:var(--text-muted);font-size:1.1rem;margin-bottom:1.25rem}.phase-player-names{display:inline-block;align-self:center;font-size:1.3rem;font-weight:700;color:var(--accent-2);background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.7rem 1.4rem;margin-bottom:1.5rem;max-width:100%;word-wrap:break-word}.phase-buffer{background:linear-gradient(180deg,#0a0a15 0,#1a1a35 100%)}.fullscreen-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:100;display:flex;align-items:center;justify-content:center}.fullscreen-overlay[hidden]{display:none}.overlay-inner{padding:2rem 1.5rem;text-align:center;width:100%;max-width:500px}.overlay-emoji{font-size:6rem;margin-bottom:.5rem}.overlay-greeting{font-size:1.1rem;color:var(--text-muted);margin:0}.overlay-name{font-size:2rem;font-weight:700;margin:0 0 1.5rem}.overlay-role{font-size:2.5rem;font-weight:800;color:var(--accent-2);margin:.25rem 0 1rem}.overlay-desc{color:var(--text-muted);font-size:.95rem;line-height:1.4;padding:0 .5rem}.overlay-extra{background:var(--bg-card);border-radius:12px;padding:1rem;text-align:left}.text-accent{color:var(--accent-2)}.bg-card{background:var(--bg-card)}.text-muted,small.text-muted{color:var(--text-muted)!important}.dead-badge{background:var(--danger)}.dead-badge,.lover-badge,.pending-death-badge{color:#fff;font-size:.7rem;padding:.15rem .5rem;border-radius:4px}.pending-death-badge{background:#ff9800}.lover-badge{background:#e91e63}.role-badge{background:var(--bg-card-2);color:var(--text);font-size:.75rem;padding:.2rem .55rem;border-radius:5px}.victory-screen{background:linear-gradient(180deg,#1a0033 0,#0f0f1e 100%)}.victory-emoji{font-size:7rem}.screen.active .screen-inner>*{animation:fadeIn .25s ease-out}.footer-link{color:#565e64;text-decoration:none;transition:color ease .4s;padding-left:5px;padding-right:5px}.footer-link:focus,.footer-link:hover{color:#fff;transition:color ease .3s}.loving-couple-name{font-size:2rem;font-weight:700;color:var(--accent-2)}