@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@700;900&family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-bg-dark: #0a0f1e;--color-bg-lighter: #1e293b;--color-primary: #8b5cf6;--color-primary-hover: #7c3aed;--color-text: #f8fafc;--color-text-muted: #cbd5e1;--font-main: "Inter", system-ui, sans-serif;--font-title: "Cinzel", Georgia, serif;--glass-bg: rgba(10, 15, 30, .55);--glass-border: rgba(139, 92, 246, .25)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box;margin:0;padding:0}.tooltip-container{position:relative;display:inline-flex;align-items:center;cursor:help}.tooltip-container .tooltip-text{visibility:hidden;width:max-content;max-width:250px;background-color:#0f172af2;color:#fff;text-align:center;border-radius:8px;padding:8px 12px;position:absolute;z-index:1000;bottom:125%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s,visibility .2s;font-size:.85rem;font-family:var(--font-main);border:1px solid var(--glass-border);box-shadow:0 4px 15px #00000080}.tooltip-container:hover .tooltip-text{visibility:visible;opacity:1}body{background-color:var(--color-bg-dark);background-image:url(/nocturna-bg.png);background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat;color:var(--color-text);font-family:var(--font-main);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}#root{flex:1;display:flex;flex-direction:column;background:linear-gradient(to bottom,#00000026,#0a0f1ebf)}nav{padding:1rem 2rem;display:flex;gap:1.5rem;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border);align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:100}nav a{color:var(--color-text);text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;transition:all .3s ease;font-weight:500}nav a:hover{color:#c4b5fd;text-shadow:0 0 10px rgba(139,92,246,.8)}nav .nav-brand{color:#c4b5fd;font-weight:900;font-size:1.4rem;letter-spacing:.15em;font-family:var(--font-title);text-shadow:0 0 20px rgba(139,92,246,.9);margin-right:auto}.btn-primary,.btn-secondary{padding:.75rem 1.8rem;border-radius:50px;border:1px solid rgba(255,255,255,.1);font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.btn-primary{background-color:#8b5cf699;color:#fff;box-shadow:0 0 20px #8b5cf666,inset 0 0 10px #ffffff1a;border-color:#8b5cf680}.btn-primary:hover:not(:disabled){background-color:#8b5cf6d9;transform:translateY(-2px);box-shadow:0 0 30px #8b5cf6b3}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background-color:#1e293b80;color:var(--color-text);border-color:#fff3}.btn-secondary:hover:not(:disabled){background-color:#1e293bd9;border-color:#fff6;transform:translateY(-2px)}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--glass-border);border-radius:1rem;padding:1.5rem;width:100%;box-shadow:0 8px 32px #00000080}.home-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;padding:2rem 1rem;z-index:10}.home-container h1{font-size:clamp(2.5rem,8vw,6rem);margin-bottom:1rem;color:#fff;text-shadow:0 0 30px rgba(139,92,246,.9),0 5px 20px rgba(0,0,0,.9);letter-spacing:.05em;font-family:var(--font-title);line-height:1.1}.home-container p{font-size:clamp(1rem,3vw,1.5rem);color:#f1f5f9;margin-bottom:3rem;text-shadow:0 2px 8px rgba(0,0,0,.9);max-width:700px;line-height:1.6;font-weight:300}.buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.rules-container{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;flex:1;z-index:10;overflow-y:auto}.rules-container h2{font-size:clamp(1.8rem,5vw,3rem);margin-bottom:2rem;color:#fff;text-shadow:0 0 15px rgba(139,92,246,.8);font-family:var(--font-title)}.rules-content h3{color:#c4b5fd;font-size:1.4rem;margin:1.5rem 0 .8rem}.rules-content p,.rules-content ul{font-size:1.05rem;color:#f1f5f9;line-height:1.6;margin-bottom:1rem}.rules-content ul{padding-left:1.5rem}.roles-image-wrapper{margin-top:2rem;width:100%;border-radius:1rem;overflow:hidden;border:2px solid var(--glass-border)}.roles-image{width:100%;height:auto;display:block}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem;padding:.5rem;min-height:120px;max-height:300px;background:#00000040;border-radius:.5rem;margin-bottom:.8rem}.chat-msg{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#f1f5f9}.chat-system{color:#fbbf24;font-style:italic;font-size:.85rem}.chat-form{display:flex;gap:.5rem}.chat-form input{flex:1;padding:.7rem 1rem;background:#0f172a99;border:1px solid var(--glass-border);border-radius:.5rem;color:#fff;font-size:.95rem;transition:border-color .2s}.chat-form input:focus{outline:none;border-color:var(--color-primary)}.lobby-container{display:flex;flex-direction:column;flex:1;padding:1rem;gap:1rem;z-index:10}.lobby-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.2rem;flex-wrap:wrap;gap:.5rem}.lobby-main{display:flex;gap:1rem;flex:1;min-height:0}.lobby-side{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:.7rem;overflow-y:auto}.lobby-chat{flex:1;display:flex;flex-direction:column;min-width:0}.lobby-chat h3{color:#c4b5fd;margin-bottom:.8rem}.room-list{display:flex;flex-direction:column;gap:.5rem;flex:1;overflow-y:auto}.room-card{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;background:#ffffff0d;border-radius:.5rem;border:1px solid var(--glass-border)}.player-list{display:flex;flex-direction:column;gap:.4rem;flex:1;overflow-y:auto}.player-card{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;background:#ffffff08;border-radius:.5rem}@media (max-width: 640px){.lobby-main{flex-direction:column}.lobby-side{width:100%}nav{gap:.8rem;padding:.8rem 1rem}nav .nav-brand{font-size:1.1rem}}.game-container{display:flex;flex-direction:column;flex:1;overflow:hidden}.game-night{--phase-accent: #8b5cf6;background:linear-gradient(135deg,#05001e80,#1400324d)}.game-day{--phase-accent: #fbbf24;background:linear-gradient(135deg,#1e140066,#3c280033)}.phase-banner{display:flex;align-items:center;gap:1rem;padding:.8rem 1.2rem;border-radius:0!important;border-left:none;border-right:none;border-top:none;border-bottom:2px solid var(--phase-accent, #8b5cf6);flex-wrap:wrap}.phase-icon{font-size:1.6rem;flex-shrink:0}.phase-title{font-size:1.1rem;font-weight:700;color:var(--phase-accent, #8b5cf6)}.my-role-badge{margin-left:auto;padding:.3rem .9rem;border-radius:2rem;border:1px solid;font-weight:600;font-size:.85rem;white-space:nowrap}.game-main{display:flex;gap:1rem;flex:1;padding:1rem;overflow:hidden}.game-left{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:.8rem;overflow-y:auto}.role-card{display:flex;align-items:center;gap:.8rem;padding:.8rem;border:1px solid}.players-panel{flex:1;overflow-y:auto}.players-panel h4{color:#94a3b8;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.player-row{display:flex;align-items:center;gap:.6rem;padding:.4rem .6rem;border-radius:.5rem;cursor:pointer;transition:background .2s;margin-bottom:.25rem}.player-row:hover{background:#ffffff12}.player-selected{background:#8b5cf640!important;border:1px solid #8b5cf6}.game-center{flex:1;display:flex;flex-direction:column;overflow-y:auto;min-width:0}.action-panel{display:flex;flex-direction:column;gap:.8rem;flex:1}.action-panel h3{font-size:1.2rem;color:var(--phase-accent, #c4b5fd);margin-bottom:.3rem}@media (max-width: 768px){.game-main{flex-direction:column;padding:.7rem;overflow-y:auto}.game-left{width:100%;flex-direction:row;flex-wrap:wrap;overflow-y:visible}.role-card{flex:1;min-width:0}.players-panel{width:100%}.game-center{overflow-y:visible}.phase-banner{padding:.6rem .8rem}.phase-title{font-size:.95rem}.my-role-badge{font-size:.75rem;padding:.25rem .6rem}.glass-panel{padding:1rem}.btn-primary,.btn-secondary{padding:.6rem 1.2rem;font-size:.85rem}}@media (max-width: 480px){.phase-banner{flex-wrap:wrap}.my-role-badge{margin-left:0}nav a{font-size:.75rem}nav{gap:.6rem}.home-container h1{font-size:2.2rem}}@keyframes roleRevealIn{0%{opacity:0;transform:scale(.3) translateY(60px);letter-spacing:.5em;filter:blur(10px)}40%{opacity:1;transform:scale(1.1) translateY(0);letter-spacing:.2em;filter:blur(0)}60%{transform:scale(1) translateY(0);letter-spacing:.15em}80%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(2.5) translateY(-20px);letter-spacing:.4em;filter:blur(8px)}}@keyframes revealBgFade{0%{opacity:0}15%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes revealIconPop{0%{transform:scale(0) rotate(-20deg);opacity:0}50%{transform:scale(1.3) rotate(5deg);opacity:1}70%{transform:scale(.95) rotate(-2deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes revealSubtitle{0%{opacity:0;transform:translateY(20px)}40%{opacity:0;transform:translateY(20px)}60%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0}}@keyframes particleFloat{0%{transform:translateY(0) scale(1);opacity:.8}to{transform:translateY(-120px) scale(0);opacity:0}}@keyframes nightPulse{0%,to{box-shadow:0 0 30px #8b5cf64d}50%{box-shadow:0 0 80px #8b5cf6cc,0 0 120px #8b5cf64d}}.role-reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:revealBgFade 3.5s ease-in-out forwards;pointer-events:none}.role-reveal-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,var(--reveal-color, rgba(139,92,246,.4)) 0%,rgba(5,0,20,.97) 70%)}.role-reveal-icon{position:relative;font-size:clamp(4rem,15vw,8rem);z-index:1;animation:revealIconPop 3.5s ease-out forwards;filter:drop-shadow(0 0 30px var(--reveal-glow, rgba(139,92,246,.9)));margin-bottom:1rem}.role-reveal-name{position:relative;font-family:var(--font-title);font-size:clamp(2.5rem,10vw,7rem);font-weight:900;text-transform:uppercase;letter-spacing:.2em;color:#fff;z-index:1;animation:roleRevealIn 3.5s cubic-bezier(.16,1,.3,1) forwards;text-shadow:0 0 40px var(--reveal-glow, rgba(139,92,246,1)),0 0 80px var(--reveal-glow, rgba(139,92,246,.5));white-space:nowrap}.role-reveal-desc{position:relative;font-size:clamp(.9rem,3vw,1.3rem);color:#ffffffbf;z-index:1;animation:revealSubtitle 3.5s ease-in-out forwards;text-align:center;max-width:80vw;margin-top:.5rem;font-style:italic}.reveal-particle{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--reveal-glow, #8b5cf6);animation:particleFloat 2s ease-out infinite;opacity:.6}@keyframes phaseFlash{0%{opacity:.7}to{opacity:0}}.phase-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;pointer-events:none;animation:phaseFlash .8s ease-out forwards}.phase-flash-night{background:radial-gradient(ellipse,rgba(100,0,200,.6) 0%,transparent 70%)}.phase-flash-day{background:radial-gradient(ellipse,rgba(255,200,0,.5) 0%,transparent 70%)}.dashboard-container{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dashboard-layout{display:grid;grid-template-columns:320px 1fr;gap:2rem}.dashboard-sidebar{display:flex;flex-direction:column;gap:1.5rem}.dashboard-main{display:flex;flex-direction:column;gap:2rem}.welcome-header{display:flex;justify-content:space-between;align-items:center;padding:2.5rem!important;background:linear-gradient(135deg,#8b5cf633,#0a0f1e99)!important}.welcome-text h1{font-family:var(--font-title);font-size:2.5rem;margin-bottom:.5rem}.highlight{color:#c4b5fd;text-shadow:0 0 15px rgba(139,92,246,.5)}.user-badge-large img{width:100px;height:100px;border-radius:50%;border:4px solid var(--color-primary);box-shadow:0 0 25px #8b5cf666;object-fit:cover}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem}.action-card{display:flex;align-items:center;gap:1.2rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)!important;padding:1.8rem!important}.action-card:hover{transform:translateY(-5px);background:#8b5cf626!important;border-color:#8b5cf680}.highlight-card{border-color:#8b5cf699!important;box-shadow:0 8px 32px #8b5cf626!important}.action-icon{font-size:2.2rem;background:#0000004d;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:15px}.action-info h3{font-size:1.2rem;margin-bottom:.2rem;color:#fff}.action-info p{font-size:.85rem;color:var(--color-text-muted)}.platform-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.5rem!important}.stat-icon{font-size:1.5rem;opacity:.8}.stat-details{display:flex;flex-direction:column}.stat-num{font-size:1.5rem;font-weight:700;color:#fff}.stat-desc{font-size:.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.dashboard-sidebar h3{font-size:1rem;margin-bottom:1.2rem;color:#c4b5fd;text-transform:uppercase;letter-spacing:.1em}.user-mini-card{display:flex;align-items:center;gap:.8rem;padding:.6rem;background:#ffffff08;border-radius:8px;margin-bottom:.5rem}.user-mini-card img{width:32px;height:32px;border-radius:50%}.mini-room-list{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.mini-room-card{background:#ffffff0d;padding:.8rem;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .2s;border:1px solid transparent}.mini-room-card:hover{background:#ffffff14;border-color:var(--glass-border)}.room-info{display:flex;flex-direction:column}.room-name{font-weight:600;font-size:.95rem}.room-players{font-size:.8rem;color:var(--color-text-muted)}.room-status-dot{width:10px;height:10px;background:#10b981;border-radius:50%;box-shadow:0 0 10px #10b981}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.9rem;padding:0;font-weight:500}.btn-link:hover{text-decoration:underline}.guest-view{padding:4rem 2rem!important}.hero-section{max-width:800px;margin-bottom:4rem}.subtitle{font-size:2rem;color:#c4b5fd;margin-bottom:1.5rem;font-family:var(--font-title);letter-spacing:.2em}.main-play{padding:1rem 3rem!important;font-size:1.2rem!important}.landing-stats{display:flex;align-items:center;gap:3rem;padding:2rem 4rem!important;width:auto!important}.stat-item{display:flex;flex-direction:column}.stat-value{font-size:2.5rem;font-weight:800;color:#fff;line-height:1}.stat-label{color:var(--color-text-muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.1em}.stat-divider{width:1px;height:50px;background:var(--glass-border)}.empty-msg{color:var(--color-text-muted);font-style:italic;font-size:.9rem;text-align:center;padding:1rem 0}@media (max-width: 1100px){.dashboard-layout{grid-template-columns:1fr}.dashboard-sidebar{order:2;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}}.user-badge-large{position:relative}.level-badge{position:absolute;bottom:0;right:0;background:linear-gradient(135deg,#fbbf24,#d97706);color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.1rem;border:3px solid #0a0f1e;box-shadow:0 4px 10px #00000080;animation:pulse-gold 2s infinite}@keyframes pulse-gold{0%{box-shadow:0 0 #fbbf24b3}70%{box-shadow:0 0 0 10px #fbbf2400}to{box-shadow:0 0 #fbbf2400}}.dashboard-row{display:flex;gap:1.5rem;margin-bottom:2rem}.last-game-panel,.xp-panel{padding:1.8rem!important}.last-game-card{background:#ffffff08;border-radius:12px;padding:1.2rem;display:flex;justify-content:space-between;align-items:center;border:1px solid var(--glass-border)}.game-res{font-weight:900;font-size:1.2rem;letter-spacing:.1em}.game-info{display:flex;flex-direction:column;text-align:right;gap:.2rem}.game-info span:first-child{font-weight:600;color:#f8fafc}.game-info span:last-child{font-size:.85rem;color:var(--color-text-muted)}.xp-container{display:flex;flex-direction:column}.xp-info{display:flex;justify-content:space-between;font-size:.9rem;color:#c4b5fd;margin-bottom:.5rem;font-weight:600}.xp-bar-bg{width:100%;height:12px;background:#0006;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.05)}.xp-bar-fill{height:100%;background:linear-gradient(90deg,#8b5cf6,#ec4899);box-shadow:0 0 15px #8b5cf680;transition:width .5s cubic-bezier(.4,0,.2,1)}@media (max-width: 768px){.dashboard-container{padding:1rem}.welcome-header{padding:1.5rem!important;flex-direction:column-reverse;text-align:center;gap:1.5rem}.dashboard-sidebar,.platform-stats-grid{grid-template-columns:1fr}.landing-stats{flex-direction:column;gap:2rem}.stat-divider{width:100px;height:1px}.dashboard-row{flex-direction:column}}.btn-small{padding:.3rem .6rem;font-size:.75rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;cursor:pointer;transition:all .2s}.btn-small:hover{background:#fff3}.pulse-tension{animation:pulseTension 1.2s infinite ease-in-out}@keyframes pulseTension{0%{box-shadow:inset 0 0 50px #ef444400}50%{box-shadow:inset 0 0 100px #ef444433}to{box-shadow:inset 0 0 50px #ef444400}}.tester-player-card.dead{opacity:.5;filter:grayscale(.8)}.tester-player-card.dead:after{content:"ÉLIMINÉ";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-15deg);font-weight:900;color:#ef4444;border:2px solid #ef4444;padding:.2rem .5rem;pointer-events:none}
