.landing-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.landing-content{text-align:center;max-width:500px;width:100%}.landing-logo{max-width:200px;width:100%;height:auto;margin:0 auto 1.5rem;display:block}.landing-title{font-size:3rem;font-weight:700;color:#fff;margin:0 0 1rem;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.landing-subtitle{font-size:1.25rem;color:#ffffffe6;margin:0 0 2rem}.landing-form{margin:0 0 2rem}.landing-form .form-group{display:flex;flex-direction:column;gap:.5rem;text-align:left}.landing-form label{color:#fff!important;font-size:.9rem;font-weight:500}.landing-input{padding:.75rem 1rem;font-size:1rem;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:#fffffff2;color:#000;transition:border-color .2s,box-shadow .2s,color .2s;width:100%;box-sizing:border-box}.landing-input-fantasy{color:#999}.landing-input:focus{outline:none;border-color:#fff;box-shadow:0 0 0 3px #fff3}.landing-input::placeholder{color:#999;opacity:.8}.landing-buttons{display:flex;flex-direction:column;gap:1rem}.landing-button{padding:1rem 2rem;font-size:1.125rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:transform .2s,box-shadow .2s;min-height:56px}.landing-button:active{transform:scale(.98)}.landing-button-primary{background:#fff;color:#667eea}.landing-button-primary:hover{box-shadow:0 4px 12px #0003}.landing-button-secondary{background:#fff3;color:#fff;border:2px solid white}.landing-button-secondary:hover{background:#ffffff4d}@media (max-width: 480px){.landing-title{font-size:2.5rem}.landing-subtitle{font-size:1rem}.landing-button{font-size:1rem;padding:.875rem 1.5rem}}.logo-header{position:absolute;top:1rem;left:1rem;max-width:120px;width:auto;height:auto;cursor:pointer;transition:opacity .2s,transform .2s;z-index:10}.logo-header:hover{opacity:.8;transform:scale(1.05)}.logo-header:active{transform:scale(.95)}@media (max-width: 480px){.logo-header{max-width:80px;top:.75rem;left:.75rem}}.create-room-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem;position:relative}.create-room-content{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:100%;text-align:center;box-shadow:0 10px 40px #0003}.create-room-content h1{margin:0 0 1rem;color:#333;font-size:2rem;text-align:center}.create-room-content p{text-align:center;color:#666;margin:1rem 0}.passphrase-display{margin:2rem 0;padding:1.5rem;background:#f5f5f5;border-radius:8px}.passphrase-label{margin:0 0 .5rem;color:#666;font-size:.9rem}.passphrase-value{margin:0;font-size:1.5rem;font-weight:700;color:#667eea;font-family:monospace;word-break:break-all}.redirect-message{color:#666;font-size:.9rem;margin-top:1rem}.create-button,.back-button{width:100%;padding:1rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:transform .2s,opacity .2s;min-height:48px;margin-bottom:.5rem}.create-button{background:#667eea;color:#fff}.create-button:hover:not(:disabled){opacity:.9}.create-button:disabled{opacity:.6;cursor:not-allowed}.create-button:active,.back-button:active{transform:scale(.98)}@media (max-width: 480px){.create-room-content{padding:1.5rem}.create-room-content h1{font-size:1.5rem}.passphrase-value{font-size:1.25rem}}.join-room-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem;position:relative}.join-room-content{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:100%;box-shadow:0 10px 40px #0003}.join-room-content h1{margin:0 0 2rem;color:#333;font-size:2rem;text-align:center}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.form-group input{width:100%;padding:.875rem;font-size:1rem;border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;transition:border-color .2s;min-height:48px}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.join-button,.back-button{width:100%;padding:1rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:transform .2s,opacity .2s;min-height:48px;margin-bottom:.5rem}.join-button{background:#667eea;color:#fff}.join-button:hover:not(:disabled){opacity:.9}.join-button:disabled{opacity:.6;cursor:not-allowed}.back-button{background:#f5f5f5;color:#333}.join-button:active,.back-button:active{transform:scale(.98)}@media (max-width: 480px){.join-room-content{padding:1.5rem}.join-room-content h1{font-size:1.5rem}}.player-list{margin-top:2rem}.player-list-title{margin:0 0 1rem;color:#333;font-size:1.25rem}.empty-message{color:#666;font-style:italic;text-align:center;padding:2rem}.player-list-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.player-item{background:#f5f5f5;padding:1rem;border-radius:8px;display:flex;align-items:center;justify-content:space-between;transition:background .2s}.player-item:hover{background:#e8e8e8}.player-item-current{background:#e3e8ff;border:2px solid #667eea}.player-badge{background:#667eea;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.room-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem;position:relative}.room-content{background:#fff;border-radius:12px;padding:2rem;max-width:600px;width:100%;box-shadow:0 10px 40px #0003}.room-title{margin:0 0 1.5rem;color:#333;font-size:1.75rem;text-align:center}.passphrase-section{margin:0 0 2rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;border:2px solid #667eea}.passphrase-label{margin:0 0 .75rem;color:#666;font-size:.9rem;font-weight:500}.passphrase-container{display:flex;align-items:center;gap:.75rem}.passphrase-value{flex:1;margin:0;font-size:1.5rem;font-weight:700;color:#667eea;font-family:monospace;word-break:break-all;padding:.75rem;background:#fff;border-radius:6px;border:1px solid #e0e0e0}.copy-button{padding:.75rem 1rem;font-size:1.25rem;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s,transform .2s;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center}.copy-button:hover{background:#5568d3}.copy-button:active{transform:scale(.95)}.error-message{background:#fee;color:#c33;padding:1rem;border-radius:6px;margin-bottom:1rem}.room-actions{margin-top:2rem}.back-button{width:100%;padding:1rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:transform .2s,background .2s;min-height:48px;background:#f5f5f5;color:#333}.back-button:hover{background:#e0e0e0}.back-button:active{transform:scale(.98)}.game-status-section{margin:1.5rem 0;padding:1rem;background:#f8f9fa;border-radius:8px;text-align:center}.player-count{margin:0;color:#666;font-size:1rem;font-weight:500}.player-count-warning{color:#c33;font-weight:600}.game-active-message{margin:0 0 1rem;color:#667eea;font-size:1.1rem;font-weight:600}.role-display{margin-top:1rem;padding:1rem;background:#fff;border-radius:8px;border:2px solid #667eea}.role-label{margin:0 0 .5rem;color:#666;font-size:.9rem;font-weight:500}.role-value{margin:0;font-size:1.5rem;font-weight:700;text-transform:capitalize}.role-swiper{color:#667eea}.role-swipefish{color:#f59e0b}.role-match{color:#ec4899}.swiper-persona-card{margin-top:1rem;padding:1.5rem;background:#fff;border-radius:8px;border:2px solid #667eea}.swiper-persona-label{margin:0 0 1rem;color:#666;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.swiper-persona-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.swiper-persona-image{max-width:100%;max-height:300px;border-radius:8px;box-shadow:0 4px 8px #0000001a}.swiper-persona-name{margin:0;font-size:1.5rem;font-weight:700;color:#333;text-align:center}.swiper-persona-tagline{margin:0;font-size:1rem;font-style:italic;color:#666;text-align:center}.start-game-button{width:100%;padding:1rem;font-size:1.1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:transform .2s,background .2s;min-height:48px;background:#667eea;color:#fff;margin-bottom:.75rem}.start-game-button:hover:not(:disabled){background:#5568d3}.start-game-button:active:not(:disabled){transform:scale(.98)}.start-game-button:disabled{background:#ccc;color:#666;cursor:not-allowed}@media (max-width: 480px){.room-content{padding:1.5rem}.room-title{font-size:1.5rem}}.dev-room-content{max-width:800px}.dev-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e0e0e0}.dev-tab{flex:1;padding:1rem;background:#f8f9fa;border:none;border-bottom:3px solid transparent;border-radius:8px 8px 0 0;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:.5rem;align-items:center;min-height:80px}.dev-tab:hover{background:#e9ecef}.dev-tab.active{background:#fff;border-bottom-color:#667eea;box-shadow:0 -2px 8px #0000001a}.dev-tab-name{font-weight:600;color:#333;font-size:.9rem}.dev-tab-role{font-size:.85rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;background:#667eea1a}.dev-tab-role.role-swiper{color:#667eea;background:#667eea1a}.dev-tab-role.role-swipefish{color:#f59e0b;background:#f59e0b1a}.dev-tab-role.role-match{color:#ec4899;background:#ec48991a}@media (max-width: 768px){.dev-tabs{flex-direction:column;border-bottom:none}.dev-tab{border-bottom:2px solid #e0e0e0;border-radius:8px}.dev-tab.active{border-bottom-color:#667eea;border-left:3px solid #667eea}}.select-persona-button{width:100%;padding:1rem;font-size:1rem;font-weight:600;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .2s,transform .2s}.select-persona-button:hover{background:#5568d3}.select-persona-button:active{transform:scale(.98)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}button,input{font-family:inherit}
