:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-primary:#0b0c10;--bg-secondary:#1f2833;--bg-card:#1f2833a6;--bg-glass:#0f162473;--text-primary:#f5f6f9;--text-secondary:#c5a880;--text-muted:#8b9bb4;--accent:#66fcf1;--accent-glow:#66fcf140;--accent-secondary:#45f3ff;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--border-glass:#ffffff14;--border-accent:#66fcf133;--shadow-glass:0 8px 32px 0 #0000005e;--shadow-glow:0 0 20px #66fcf126;--transition:all .3s cubic-bezier(.4, 0, .2, 1);--border-radius:16px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 0 0,#66fcf10d 0,#0000 50%),radial-gradient(at 100% 100%,#c084fc0d 0,#0000 50%);min-height:100vh;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}.glass-panel{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-glass);border-radius:var(--border-radius);box-shadow:var(--shadow-glass);transition:var(--transition)}.glass-panel:hover{border-color:var(--border-accent);box-shadow:var(--shadow-glass), var(--shadow-glow)}button{font-family:var(--font-sans);cursor:pointer;transition:var(--transition);border:none;outline:none}input{font-family:var(--font-sans);transition:var(--transition);outline:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{flex-direction:column;min-height:100vh;padding:24px;display:flex}@media (width<=768px){.app-container{padding:16px}}.app-header{justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 24px;display:flex}.logo-section{align-items:center;gap:12px;display:flex}.logo-icon{color:var(--accent);filter:drop-shadow(0 0 8px var(--accent))}.app-title{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text-primary) 30%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:28px;font-weight:700}.user-badge{align-items:center;gap:16px;display:flex}.user-info{text-align:right}.user-name{font-size:14px;font-weight:500}.user-email{color:var(--text-muted);font-size:12px}.btn-signout{border:1px solid var(--border-glass);color:var(--text-muted);background:0 0;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500}.btn-signout:hover{color:var(--danger);background:#ef44441a;border-color:#ef444433}.auth-container{flex-grow:1;justify-content:center;align-items:center;padding:40px 20px;display:flex}.auth-card{width:100%;max-width:440px;padding:40px 32px}.auth-header{text-align:center;margin-bottom:24px}.auth-logo{color:var(--accent);box-shadow:var(--shadow-glow);background:#66fcf114;border-radius:50%;margin-bottom:16px;padding:16px;display:inline-flex}.auth-title{margin-bottom:8px;font-size:24px;font-weight:600}.auth-subtitle{color:var(--text-muted);font-size:14px}.auth-tabs{background:#0003;border-radius:8px;margin-bottom:20px;padding:4px;display:flex}.auth-tab{color:var(--text-muted);background:0 0;border-radius:6px;flex:1;padding:10px;font-size:14px;font-weight:500}.auth-tab.active{background:var(--bg-secondary);color:var(--accent);box-shadow:0 2px 8px #0003}.auth-form{flex-direction:column;gap:16px;display:flex}.input-group{flex-direction:column;gap:6px;display:flex}.input-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:600}.input-field{border:1px solid var(--border-glass);color:var(--text-primary);background:#00000040;border-radius:8px;padding:12px 16px;font-size:14px}.input-field:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);color:#000;border-radius:8px;margin-top:8px;padding:12px;font-size:15px;font-weight:600;box-shadow:0 4px 12px #66fcf133}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #66fcf159}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;box-shadow:none;cursor:not-allowed;transform:none}.error-badge{color:#fca5a5;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;align-items:flex-start;gap:8px;padding:12px;font-size:13px;display:flex}.config-help{color:#fde047;background:#f59e0b14;border:1px solid #f59e0b33;border-radius:6px;margin-top:8px;padding:12px}.config-help a{color:var(--accent)}.room-selection-container{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:32px;padding:40px 0;display:flex}.rooms-panel{width:100%;max-width:500px;padding:32px}.rooms-panel-title{text-align:center;justify-content:center;align-items:center;gap:10px;margin-bottom:24px;font-size:22px;font-weight:600;display:flex}.or-divider{color:var(--text-muted);align-items:center;margin:16px 0;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--border-glass);flex:1;height:1px}.or-divider span{text-transform:uppercase;padding:0 16px;font-size:12px}.game-grid{flex-grow:1;grid-template-columns:280px 1fr;gap:24px;display:grid}@media (width<=1024px){.game-grid{grid-template-columns:1fr}}.game-sidebar{flex-direction:column;gap:20px;display:flex}.sidebar-panel{padding:24px}.sidebar-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.player-list{flex-direction:column;gap:12px;display:flex}.player-item{border:1px solid var(--border-glass);background:#00000026;border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.player-item.current-user{border-color:var(--accent);box-shadow:0 0 10px #66fcf11a}.player-meta{align-items:center;gap:10px;display:flex}.player-avatar{background:var(--bg-secondary);width:24px;height:24px;color:var(--accent);border:1px solid var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.player-name{font-size:14px;font-weight:500}.player-status-dot{color:var(--text-muted);font-size:11px;font-weight:500}.player-status-dot.ready{color:var(--success)}.player-score{color:var(--accent);font-size:15px;font-weight:700}.game-arena{flex-direction:column;gap:24px;display:flex}.arena-card{padding:32px}.arena-status-bar{border-bottom:1px solid var(--border-glass);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;display:flex}.room-info{flex-direction:column;gap:4px;display:flex}.room-name-title{color:var(--text-primary);font-size:20px;font-weight:700}.room-id-badge{color:var(--text-muted);font-size:12px}.cards-layout{flex-direction:column;gap:32px;display:flex}.black-card{color:#fff;background:#000;border:2px solid #333;border-radius:12px;flex-direction:column;justify-content:space-between;max-width:380px;min-height:180px;padding:24px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000080}.black-card:after{content:"Cards Against Humanity";letter-spacing:.5px;opacity:.3;font-size:10px;font-weight:700;position:absolute;bottom:16px;left:24px}.black-card-text{word-wrap:break-word;font-size:22px;font-weight:700;line-height:1.4}.white-cards-section{flex-direction:column;gap:16px;display:flex}.section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:14px;font-weight:600}.white-cards-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.white-card{color:#000;cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;justify-content:space-between;min-height:180px;padding:20px;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px #0000000d}.white-card:after{content:"Cards Against Humanity";letter-spacing:.5px;opacity:.2;font-size:8px;font-weight:700;position:absolute;bottom:16px;left:20px}.white-card:hover:not(.disabled){border-color:var(--accent);transform:translateY(-4px)rotate(1deg);box-shadow:0 8px 16px #0000001a}.white-card.selected{border:3px solid var(--accent);box-shadow:0 0 15px #66fcf166}.white-card.disabled{opacity:.5;cursor:not-allowed}.white-card-text{color:#1a202c;font-size:16px;font-weight:600;line-height:1.4}.voting-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.results-container{flex-direction:column;gap:24px;display:flex}.round-winner-card{text-align:center;background:#10b98114;border:1px solid #10b9814d;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:20px;display:flex}.round-tie-card{text-align:center;background:#ef444414;border:1px solid #ef44444d;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:20px;display:flex}.results-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.result-item-card{border:1px solid var(--border-glass);background:#ffffff0d;border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.result-item-card.is-winner{border-color:var(--success);box-shadow:0 0 10px #10b98133}.result-card-preview{color:#000;background:#fff;border-radius:8px;align-items:flex-start;min-height:80px;padding:12px;font-size:13px;font-weight:600;display:flex;box-shadow:0 2px 4px #0000001a}.result-card-meta{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.result-card-votes{color:var(--accent);font-size:13px;font-weight:700}.toilet-paper-container{justify-content:center;width:100%;margin-top:48px;display:flex}.toilet-paper{color:#3b2c20;background-color:#fdfaf2;border-left:2px dashed #0000001a;border-right:2px dashed #0000001a;width:100%;max-width:600px;padding:32px 24px;font-family:Courier New,Courier,monospace;transition:transform .3s;position:relative;transform:rotate(-1.5deg);box-shadow:0 10px 25px #00000040,inset 0 0 30px #0000000d}.toilet-paper:hover{transform:rotate(-.5deg)scale(1.01)}.toilet-paper:before,.toilet-paper:after{content:"";background-repeat:repeat-x;background-size:16px 16px;height:12px;position:absolute;left:0;right:0}.toilet-paper:before{background-image:linear-gradient(135deg,#0000 25%,#fdfaf2 25%),linear-gradient(225deg,#0000 25%,#fdfaf2 25%);top:-12px}.toilet-paper:after{background-image:linear-gradient(45deg,#0000 25%,#fdfaf2 25%),linear-gradient(315deg,#0000 25%,#fdfaf2 25%);bottom:-12px}.tp-roll-core{opacity:.7;background:#d4cbb8;border-radius:4px;width:100%;height:8px;margin-bottom:16px}.tp-title{text-align:center;text-transform:uppercase;letter-spacing:1px;border-bottom:2px dashed #3b2c2033;margin-bottom:16px;padding-bottom:12px;font-size:20px;font-weight:700}.tp-rules-list{flex-direction:column;gap:16px;list-style:none;display:flex}.tp-rule-item{font-size:13px;line-height:1.5}.tp-rule-num{background:#0000000d;border-radius:3px;margin-right:8px;padding:2px 6px;font-weight:700}.tp-footer{text-align:center;opacity:.7;border-top:1px dashed #3b2c2026;margin-top:24px;padding-top:12px;font-size:11px;font-style:italic}.rules-modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:10000;background:#000000bf;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.rules-modal-container{width:100%;max-width:600px;margin:auto;position:relative}.btn-tp-rules{border:1px solid var(--border-glass);color:var(--text-muted);cursor:pointer;transition:var(--transition);background:#fdfaf21a;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;display:flex}.btn-tp-rules:hover{color:#3b2c20;background:#fdfaf2;border-color:#fdfaf2;box-shadow:0 4px 12px #fdfaf226}.btn-tp-close{color:#fff;text-transform:uppercase;letter-spacing:.5px;text-align:center;background:#ef4444;border-radius:8px;width:100%;margin-top:16px;padding:8px 16px;font-size:12px;font-weight:600;display:block;box-shadow:0 4px 10px #ef44444d}.btn-tp-close:hover{background:#dc2626;transform:translateY(-1px)}.btn-panic-flush{color:#fbbf24;transition:var(--transition);background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:8px;padding:12px 20px;font-size:15px;font-weight:600}.btn-panic-flush:hover{background:#f59e0b40;border-color:#fbbf24;box-shadow:0 4px 12px #f59e0b26}.btn-panic-flush:active{transform:translateY(1px)}.insult-banner{color:#fca5a5;background:#ef44441a;border:1px solid #ef444440;border-radius:8px;align-items:center;gap:10px;margin-top:16px;padding:12px 16px;font-size:13px;font-weight:500;animation:.4s ease-in-out shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.certificate-wrapper{perspective:1000px;width:100%;max-width:620px;margin:32px auto}.shake-certificate{animation:.8s cubic-bezier(.36,.07,.19,.97) both screen-shake}@keyframes screen-shake{10%,90%{transform:translate(-1px)rotate(-.5deg)}20%,80%{transform:translate(2px)rotate(.5deg)}30%,50%,70%{transform:translate(-4px)rotate(-1deg)}40%,60%{transform:translate(4px)rotate(1deg)}}.certificate-box{color:#3d2a04;background-color:#faf6ed;border:1px solid #dcd1b4;border-radius:4px;padding:8px;position:relative;box-shadow:0 15px 35px #0006,0 0 40px #66fcf126}.cert-border-outer{border:4px double #8b6b24;padding:16px}.cert-border-inner{border:1px solid #c0aa78;flex-direction:column;align-items:center;padding:32px 24px;display:flex;position:relative}.cert-seal{color:#b91c1c;text-align:center;opacity:.85;background:#b91c1c08;border:3px dashed #b91c1c;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:90px;height:90px;font-family:Courier New,Courier,monospace;font-size:10px;font-weight:700;display:flex;position:absolute;top:16px;right:16px;transform:rotate(12deg)}.cert-title{letter-spacing:2px;color:#5c4308;text-transform:uppercase;margin-bottom:8px;font-family:Georgia,serif;font-size:24px;font-weight:900}.cert-subtitle{color:#786028;margin-bottom:20px;font-family:Georgia,serif;font-size:13px;font-style:italic}.cert-winner-name{color:#b91c1c;text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid #5c4308;margin-bottom:20px;padding:0 24px 8px;font-family:Georgia,serif;font-size:32px;font-weight:700}.cert-description{text-align:center;color:#4a3810;max-width:440px;margin-bottom:32px;font-family:Georgia,serif;font-size:14px;line-height:1.6}.cert-signatures{justify-content:space-between;gap:24px;width:100%;margin-top:12px;display:flex}@media (width<=480px){.cert-signatures{flex-direction:column;gap:16px}}.cert-signature-line{flex-direction:column;flex:1;align-items:center;display:flex}.cert-signature-line .signature{color:#1a202c;text-align:center;border-bottom:1px solid #a0aec0;width:100%;padding-bottom:4px;font-family:Brush Script MT,cursive,Georgia,serif;font-size:20px;font-style:italic}.cert-signature-line .sign-label{text-transform:uppercase;color:#786028;margin-top:4px;font-size:10px;font-weight:700}
