.home{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.home-card{background:#1a1a2e;border-radius:24px;padding:48px 40px;text-align:center;max-width:400px;width:100%;box-shadow:0 8px 40px #0006}.home-title{font-size:3rem;font-weight:700;color:#f0c040;line-height:1}.home-subtitle{font-size:1.3rem;color:#888;margin-bottom:20px}.home-quote{background:#16162a;border-radius:12px;padding:14px 18px;margin-bottom:24px;border-left:3px solid #f0c040;text-align:left}.home-quote-text{font-size:.85rem;color:#bbb;line-height:1.5;font-style:italic}.home-quote-author{font-size:.75rem;color:#666;margin-top:6px;text-align:right}.home-input{width:100%;text-align:center}.home-btn{width:100%;margin-top:12px}.home-divider{display:flex;align-items:center;margin:24px 0;gap:16px}.home-divider:before,.home-divider:after{content:"";flex:1;height:1px;background:#3a3a5c}.home-divider span{color:#666;font-size:.9rem}.home-join{display:flex;flex-direction:column;gap:0}.code-input{font-size:1.5rem;letter-spacing:8px;font-weight:600}.lobby{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.lobby-card{background:#1a1a2e;border-radius:24px;padding:48px 40px;text-align:center;max-width:420px;width:100%;box-shadow:0 8px 40px #0006}.lobby-title{font-size:2.5rem;color:#f0c040;margin-bottom:24px}.lobby-label{color:#aaa;margin-bottom:12px}.lobby-code{font-size:3rem;font-weight:700;letter-spacing:12px;color:#f0c040;background:#0f0f1a;padding:16px 24px;border-radius:16px;cursor:pointer;transition:background .2s;-webkit-user-select:all;user-select:all}.lobby-code:hover{background:#1a1a30}.lobby-hint{font-size:.8rem;color:#666;margin-top:8px}.lobby-waiting{margin-top:32px;display:flex;flex-direction:column;align-items:center;gap:16px}.lobby-waiting p{color:#888}.charcard{perspective:600px;cursor:pointer;-webkit-user-select:none;user-select:none}.charcard-inner{position:relative;width:100%;aspect-ratio:3 / 4;transition:transform .5s ease;transform-style:preserve-3d}.charcard--flipped .charcard-inner{transform:rotateY(180deg)}.charcard-front,.charcard-back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;backface-visibility:hidden;overflow:hidden}.charcard-front{background:#1e1e36;display:flex;flex-direction:column;border:2px solid #2a2a4c;transition:border-color .2s}.charcard:hover .charcard-front{border-color:#f0c040}.charcard--secret .charcard-front{border-color:#f0c040;box-shadow:0 0 12px #f0c0404d}.charcard-img{width:100%;flex:1;object-fit:cover}.charcard-placeholder{flex:1;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#555;background:#16162a}.charcard-name{padding:6px 0;text-align:center;font-size:.85rem;font-weight:600;background:#16162a;color:#ccc}.charcard-back{background:linear-gradient(135deg,#2a2a4c,#1a1a2e);transform:rotateY(180deg);display:flex;align-items:center;justify-content:center;border:2px solid #3a3a5c}.charcard-x{font-size:2.5rem;color:#e74c3c;opacity:.7}.charcard--small .charcard-inner{aspect-ratio:3 / 4}.charcard--small .charcard-name{font-size:.75rem;padding:4px 0}.board{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:12px;flex:1;align-content:start}@media (max-width: 768px){.board{grid-template-columns:repeat(4,1fr);gap:6px;padding:8px}}@media (max-width: 400px){.board{grid-template-columns:repeat(3,1fr);gap:5px;padding:6px}}.chat{width:100%;background:#1a1a2e;border-left:1px solid #2a2a4c;display:flex;flex-direction:column;flex:1;min-height:0}.chat-section{display:flex;flex-direction:column;flex:1;min-height:0;border-bottom:1px solid #2a2a4c}.chat-section--casual{flex:.6;border-bottom:none}.chat-section-header{padding:10px 14px;font-weight:600;font-size:.85rem;border-bottom:1px solid #2a2a4c;color:#f0c040;flex-shrink:0;text-transform:uppercase;letter-spacing:.5px}.chat-section-header--casual{color:#888}.chat-messages{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px;min-height:0}.chat-empty{color:#444;text-align:center;margin-top:12px;font-size:.8rem}.chat-msg--question,.chat-msg--answer{display:flex;flex-direction:column;gap:2px}.chat-sender{font-weight:600;color:#f0c040;font-size:.75rem}.chat-bubble{display:inline-block;padding:6px 12px;border-radius:12px;font-size:.85rem;max-width:90%}.chat-bubble--q{background:#2a2a4c;color:#e0e0e0;align-self:flex-start}.chat-bubble--a{font-weight:700;font-size:.95rem;align-self:flex-start}.chat-bubble--yes{background:#2ecc7133;color:#2ecc71}.chat-bubble--no{background:#e74c3c33;color:#e74c3c}.chat-msg--casual{font-size:.85rem;line-height:1.3;word-break:break-word}.chat-msg--casual .chat-sender{font-size:.85rem}.chat-waiting{padding:10px 14px;text-align:center;color:#555;font-size:.8rem;border-top:1px solid #2a2a4c;flex-shrink:0}.chat-input-row{display:flex;gap:6px;padding:8px;border-top:1px solid #2a2a4c;flex-shrink:0}.chat-input{flex:1;min-width:0;padding:8px 10px;border:2px solid #3a3a5c;border-radius:10px;background:#0f0f1a;color:#e0e0e0;font-family:Fredoka,sans-serif;font-size:.85rem;outline:none}.chat-input:focus{border-color:#f0c040}.chat-send{padding:8px 12px;font-size:.8rem;flex-shrink:0}.chat-quick-row{display:flex;gap:8px;padding:8px;border-top:1px solid #2a2a4c;flex-shrink:0}.btn-yes{flex:1;background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;font-size:1rem;font-weight:700}.btn-no{flex:1;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;font-size:1rem;font-weight:700}.btn-idk{flex:1;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;font-size:1rem;font-weight:700}.chat-bubble--idk{background:#f39c1233;color:#f39c12}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:12px}.modal{background:#1a1a2e;border-radius:20px;padding:24px;max-width:700px;width:100%;max-height:90dvh;overflow-y:auto;box-shadow:0 12px 48px #00000080}.modal-title{font-size:1.3rem;color:#f0c040;margin-bottom:6px}.modal-subtitle{color:#999;font-size:.85rem;margin-bottom:16px;line-height:1.4}.modal-subtitle strong{color:#e74c3c}.modal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:20px}.modal-card-wrap{border-radius:10px;border:3px solid transparent;cursor:pointer;transition:border-color .2s}.modal-card-wrap:hover{border-color:#555}.modal-card-wrap--selected{border-color:#e74c3c!important;box-shadow:0 0 12px #e74c3c66}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-actions .btn{padding:10px 20px;font-size:.9rem}@media (max-width: 768px){.modal{padding:16px}.modal-grid{grid-template-columns:repeat(4,1fr);gap:6px}}@media (max-width: 400px){.modal-grid{grid-template-columns:repeat(3,1fr)}}.game{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.turn-banner{position:fixed;top:0;left:0;right:0;z-index:300;text-align:center;padding:16px 20px;font-size:1.4rem;font-weight:700;animation:bannerSlide 2s ease forwards;pointer-events:none}.turn-banner--yours{background:linear-gradient(135deg,#2ecc71f2,#27ae60f2);color:#fff}.turn-banner--theirs{background:linear-gradient(135deg,#e67e22f2,#d35400f2);color:#fff}@keyframes bannerSlide{0%{transform:translateY(-100%);opacity:0}10%{transform:translateY(0);opacity:1}75%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}.game-topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#1a1a2e;border-bottom:1px solid #2a2a4c;flex-shrink:0;gap:12px}.game-turn-indicator{font-size:1rem;font-weight:600}.turn-yours{color:#2ecc71}.turn-theirs{color:#e67e22}.turn-text{color:#888}.game-players{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#888}.player-name{color:#ccc;font-weight:500}.vs{color:#555}.chat-toggle{padding:8px 16px;font-size:.85rem}.game-secret-banner{display:flex;align-items:center;gap:12px;padding:8px 16px;background:linear-gradient(90deg,rgba(240,192,64,.1),transparent);border-bottom:1px solid #2a2a4c;flex-shrink:0}.secret-img{width:40px;height:40px;border-radius:8px;border:2px solid #f0c040;object-fit:cover}.secret-info{display:flex;flex-direction:column}.secret-label{font-size:.7rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.secret-name{font-size:1rem;font-weight:600;color:#f0c040}.game-body{display:flex;flex:1;overflow:hidden;position:relative}.game-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;min-width:0}.game-chat-wrap{width:280px;flex-shrink:0;display:flex}.game-bottombar{display:flex;gap:10px;padding:10px 16px;justify-content:center;background:#1a1a2e;border-top:1px solid #2a2a4c;flex-shrink:0}.game-bottombar .btn{flex:1;max-width:200px;padding:10px 16px;font-size:.95rem}.gameover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.gameover-card{background:#1a1a2e;border-radius:24px;padding:40px 32px;text-align:center;max-width:400px;width:100%;box-shadow:0 12px 48px #00000080}.gameover-win{font-size:2rem;color:#2ecc71;margin-bottom:12px}.gameover-lose{font-size:2rem;color:#e74c3c;margin-bottom:12px}.gameover-detail{color:#aaa;margin-bottom:20px;line-height:1.5}.gameover-detail strong{color:#f0c040}.gameover-reveal{display:flex;justify-content:center;gap:20px;margin-bottom:24px}.gameover-char{display:flex;flex-direction:column;align-items:center;gap:6px}.gameover-char-img{width:72px;height:72px;border-radius:12px;border:2px solid #f0c040;object-fit:cover}.gameover-char-info{display:flex;flex-direction:column;align-items:center}.gameover-char-player{font-size:.7rem;color:#888}.gameover-char-name{font-size:.95rem;font-weight:600;color:#f0c040}.gameover-actions{display:flex;gap:10px;justify-content:center}.gameover-actions .btn{flex:1}.luna-banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:400;font-size:3rem;font-weight:700;color:#f0c040;text-shadow:0 0 30px rgba(240,192,64,.6);pointer-events:none;animation:lunaFade 5s ease forwards}@keyframes lunaFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}20%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0}}@media (max-width: 768px){.game-chat-wrap{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;z-index:50;display:none}.game-chat-wrap--visible{display:flex}.game-main--hidden{display:none}.game-bottombar .btn{max-width:none}}@media (min-width: 769px){.chat-toggle{display:none}.game-chat-wrap{display:flex}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Fredoka,sans-serif;background:#0f0f1a;color:#e0e0e0;min-height:100vh;overflow-x:hidden}.app{min-height:100vh;display:flex;flex-direction:column}.error-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#e74c3c;color:#fff;padding:12px 28px;border-radius:12px;font-size:1rem;z-index:1000;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translate(-50%) translateY(-20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.generating-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:20px}.generating-screen h1{font-size:2.5rem;color:#f0c040}.generating-screen .sub{color:#888;font-size:.95rem}.spinner{width:50px;height:50px;border:4px solid rgba(240,192,64,.2);border-top-color:#f0c040;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{padding:12px 32px;border:none;border-radius:12px;font-family:Fredoka,sans-serif;font-size:1.05rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,#f0c040,#e8a020);color:#1a1a2e}.btn-danger{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.btn-secondary{background:linear-gradient(135deg,#3a3a5c,#2a2a4c);color:#e0e0e0}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}input[type=text]{padding:12px 16px;border:2px solid #3a3a5c;border-radius:12px;background:#1a1a2e;color:#e0e0e0;font-family:Fredoka,sans-serif;font-size:1rem;outline:none;transition:border-color .2s}input[type=text]:focus{border-color:#f0c040}input[type=text]::placeholder{color:#666}
