:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:#1e1e2e;border:1px solid #313244;border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:400px;box-shadow:0 8px 32px #0006}.login-logo{text-align:center;font-size:1.6rem;font-weight:900;letter-spacing:.04em;margin:0 0 .4rem}.logo-catch{color:#89b4fa}.logo-drawing{color:#cdd6f4;margin-left:.3rem}.login-subtitle{text-align:center;font-size:.82rem;color:#6c7086;margin:0 0 1.8rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;font-weight:500;color:#a6adc8}.form-group input{padding:.75rem 1rem;border-radius:8px;border:1px solid #45475a;background:#181825;color:#cdd6f4;font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.form-group input:focus{border-color:#89b4fa;box-shadow:0 0 0 3px #89b4fa26}.form-group input::placeholder{color:#585b70}.error-message{color:#f38ba8;font-size:.85rem;margin:0;padding:.6rem .8rem;background:#f38ba81a;border-radius:6px;border-left:3px solid #f38ba8}.login-button{width:100%;padding:.85rem;background:#89b4fa;color:#1e1e2e;border:none;border-radius:8px;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s,transform .1s;margin-top:.25rem}.login-button:hover:not(:disabled){background:#74c7ec}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{opacity:.55;cursor:not-allowed}.login-footer{text-align:center;font-size:.875rem;color:#a6adc8;margin:1.25rem 0 0}.text-link{background:none;border:none;padding:0;color:#89b4fa;font-size:inherit;font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .15s}.text-link:hover{color:#74c7ec}.success-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#a6e3a126;color:#a6e3a1;font-size:1.5rem;margin:0 auto 1.25rem;border:2px solid #a6e3a1}.success-title{text-align:center;font-size:1.4rem;font-weight:700;margin:0 0 .75rem;color:#cdd6f4}.success-message{text-align:center;color:#a6adc8;font-size:.95rem;margin:0 0 1.75rem}.success-message strong{color:#cdd6f4}@media(max-width:480px){.login-card{border-radius:0;min-height:100vh;padding:2rem 1.25rem;border:none;box-shadow:none}}.landing-container{min-height:100vh;width:100%;display:flex;flex-direction:column;background:#181825}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;border-bottom:1px solid #313244}.logo{display:flex;align-items:baseline;gap:.35rem;-webkit-user-select:none;user-select:none}.logo-catch{font-size:1.6rem;font-weight:900;letter-spacing:.08em;color:#89b4fa}.logo-drawing{font-size:1.1rem;font-weight:600;letter-spacing:.12em;color:#a6adc8}.header-user{display:flex;align-items:center;gap:.75rem}.username-badge{font-size:.875rem;color:#cdd6f4;background:#313244;padding:.3rem .75rem;border-radius:999px}.mypage-btn{font-size:.8rem;font-family:inherit;color:#89b4fa;background:none;border:1px solid #89b4fa;border-radius:6px;padding:.3rem .75rem;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.mypage-btn:hover{background:#89b4fa1a}.logout-btn{font-size:.8rem;font-family:inherit;color:#6c7086;background:none;border:1px solid #45475a;border-radius:6px;padding:.3rem .75rem;cursor:pointer;transition:color .15s,border-color .15s}.logout-btn:hover{color:#f38ba8;border-color:#f38ba8}.landing-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;padding:2rem}.landing-subtitle{font-size:1rem;color:#6c7086;margin:0;letter-spacing:.02em}.action-buttons{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.action-card{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:220px;padding:2.5rem 1.5rem;border-radius:16px;border:1px solid transparent;background:#1e1e2e;cursor:pointer;font-family:inherit;transition:transform .18s,box-shadow .18s,border-color .18s}.action-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0006}.action-card.enter{border-color:#89b4fa}.action-card.enter:hover{background:#1a1e2e;box-shadow:0 12px 32px #89b4fa26}.action-card.create{border-color:#a6e3a1}.action-card.create:hover{background:#1a2e1e;box-shadow:0 12px 32px #a6e3a126}.action-icon{font-size:2rem;line-height:1}.action-card.enter .action-icon{color:#89b4fa}.action-card.create .action-icon{color:#a6e3a1}.action-label{font-size:1.05rem;font-weight:700;color:#cdd6f4}.action-desc{font-size:.78rem;color:#6c7086;text-align:center;line-height:1.4}.action-card:disabled{opacity:.5;cursor:not-allowed;transform:none}.landing-error{color:#f38ba8;font-size:.875rem;background:#1e1e2e;border:1px solid #f38ba8;border-radius:8px;padding:.5rem 1.2rem;margin:0}.invite-section{display:flex;flex-direction:column;align-items:center;gap:.75rem}.invite-toggle{background:none;border:none;color:#89b4fa;font-size:.875rem;cursor:pointer;text-decoration:underline;font-family:inherit;padding:0}.invite-toggle:hover{color:#b4d0fa}.invite-form{display:flex;gap:.5rem;align-items:center}.invite-input{padding:.5rem .9rem;background:#1e1e2e;border:1px solid #45475a;border-radius:8px;color:#cdd6f4;font-size:.95rem;letter-spacing:.15em;text-transform:uppercase;width:140px;outline:none;font-family:inherit}.invite-input:focus{border-color:#89b4fa}.invite-submit{padding:.5rem 1rem;background:#89b4fa;color:#1e1e2e;border:none;border-radius:8px;cursor:pointer;font-weight:700;font-family:inherit}.invite-submit:hover:not(:disabled){background:#b4d0fa}.invite-submit:disabled{opacity:.5;cursor:not-allowed}.invite-cancel{padding:.5rem .75rem;background:none;border:1px solid #45475a;border-radius:8px;color:#6c7086;cursor:pointer;font-family:inherit}.invite-cancel:hover{border-color:#6c7086;color:#cdd6f4}@media(max-width:768px){.landing-header{padding:.9rem 1.25rem}.logo-catch{font-size:1.3rem}.logo-drawing{font-size:.95rem}.username-badge{display:none}.landing-main{gap:1.75rem;padding:1.5rem 1rem}.action-card{width:100%;max-width:320px;padding:1.75rem 1.25rem}}@media(max-width:480px){.landing-header{padding:.75rem 1rem}.action-buttons{gap:1rem;width:100%}.action-card{max-width:100%}.invite-form{flex-wrap:wrap;justify-content:center}.invite-input{width:100%}}.game-container{position:relative;display:flex;flex-direction:column;height:100vh;background:#f0f2f5;font-family:Segoe UI,sans-serif}.game-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:#1e1e2e;color:#fff;flex-shrink:0}.game-logo{font-size:1.2rem;font-weight:800;letter-spacing:2px;color:#a78bfa}.game-room-info{display:flex;gap:12px;align-items:center}.room-id-badge{background:#312e81;color:#c7d2fe;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600;letter-spacing:1px}.drawer-badge{background:#7c3aed;color:#fff;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.turn-badge{background:#1e3a5f;color:#93c5fd;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:700;letter-spacing:1px}.timer-badge{min-width:46px;text-align:center;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:800;letter-spacing:1px;background:#1a3a1a;color:#4ade80;transition:background .3s,color .3s}.timer-badge.warning{background:#3a2e10;color:#facc15}.timer-badge.danger{background:#3a1010;color:#f87171;animation:pulse-timer .6s ease-in-out infinite alternate}@keyframes pulse-timer{0%{opacity:1}to{opacity:.6}}.leave-btn{background:#ef4444;color:#fff;border:none;padding:6px 16px;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem}.leave-btn:hover{background:#dc2626}.game-body{display:flex;flex:1;overflow:hidden;gap:0}.players-panel{width:160px;background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;padding:16px 12px;flex-shrink:0}.players-panel h3{margin:0 0 12px;font-size:.9rem;color:#6b7280;text-transform:uppercase;letter-spacing:1px}.player-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto}.player-item{display:flex;justify-content:space-between;align-items:center;padding:8px 6px;border-radius:8px;margin-bottom:4px;font-size:.85rem}.player-item.is-drawer{background:#ede9fe;font-weight:700}.player-name{display:flex;align-items:center;gap:4px;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}.owner-badge{flex-shrink:0;background:#7c3aed;color:#fff;font-size:.62rem;font-weight:700;padding:1px 5px;border-radius:4px;letter-spacing:.02em}.player-score{color:#7c3aed;font-weight:700;font-size:.75rem;white-space:nowrap}.start-btn{margin-top:16px;padding:10px;background:#7c3aed;color:#fff;border:none;border-radius:10px;font-weight:700;cursor:pointer;font-size:.9rem}.start-btn:hover:not(:disabled){background:#6d28d9}.start-btn:disabled{background:#9ca3af;cursor:not-allowed}.my-word-box{margin-top:12px;background:#fef3c7;border:2px solid #f59e0b;border-radius:10px;padding:10px;text-align:center}.my-word-label{display:block;font-size:.7rem;color:#92400e;font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:1px}.my-word{display:block;font-size:1.4rem;font-weight:800;color:#b45309}.canvas-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;background:#f8f9fa;overflow:hidden}.toolbar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#fff;border-radius:12px;box-shadow:0 1px 6px #00000014;margin-bottom:10px;flex-wrap:wrap;justify-content:center}.tool-palette{display:flex;gap:4px}.tool-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:2px solid transparent;border-radius:8px;cursor:pointer;font-size:1rem;transition:background .1s}.tool-btn.selected{border-color:#7c3aed;background:#ede9fe}.tool-btn:hover:not(.selected){background:#e5e7eb}.color-palette{display:flex;gap:6px}.color-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s}.color-swatch.selected{border-color:#7c3aed;transform:scale(1.25)}.width-palette{display:flex;gap:6px;align-items:center}.width-swatch{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:2px solid transparent;border-radius:8px;cursor:pointer}.width-swatch.selected{border-color:#7c3aed;background:#ede9fe}.undo-btn{padding:6px 14px;background:#eff6ff;color:#3b82f6;border:1px solid #93c5fd;border-radius:8px;cursor:pointer;font-weight:600;font-size:.8rem}.undo-btn:hover{background:#dbeafe}.clear-btn{padding:6px 14px;background:#fee2e2;color:#ef4444;border:1px solid #fca5a5;border-radius:8px;cursor:pointer;font-weight:600;font-size:.8rem}.clear-btn:hover{background:#fecaca}.word-blanks{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}.blank-box{width:38px;height:44px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;border-bottom:3px solid #9ca3af;font-size:1.3rem;font-weight:700;color:#9ca3af;transition:color .25s,border-color .25s}.blank-box.hinted{color:#7c3aed;border-bottom-color:#7c3aed}.game-canvas{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;max-width:100%;max-height:calc(100vh - 180px);touch-action:none}.game-canvas.drawable{cursor:crosshair}.game-canvas.tool-fill,.game-canvas.tool-eraser{cursor:cell}.chat-panel{width:220px;background:#fff;border-left:1px solid #e5e7eb;display:flex;flex-direction:column;flex-shrink:0}.message-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:6px}.message-item{font-size:.8rem;line-height:1.4;word-break:break-all}.message-item.system{color:#6b7280;font-style:italic}.message-item.correct{background:#d1fae5;color:#065f46;padding:6px 8px;border-radius:8px;font-weight:700}.message-item.error{color:#dc2626;font-style:italic}.message-item.guessed{background:#ede9fe;color:#4c1d95;padding:4px 8px;border-radius:8px;font-style:italic}.message-item.guessed .msg-sender{color:#6d28d9}.msg-sender{font-weight:700;color:#7c3aed}.msg-content{color:#374151}.guess-form{display:flex;border-top:1px solid #e5e7eb;padding:10px;gap:6px}.guess-input{flex:1;padding:8px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:.85rem;outline:none;min-width:0}.guess-input:focus{border-color:#7c3aed}.guess-input:disabled{background:#f3f4f6;cursor:not-allowed}.guess-btn{padding:8px 12px;background:#7c3aed;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:.8rem;white-space:nowrap}.guess-btn:hover:not(:disabled){background:#6d28d9}.guess-btn:disabled{background:#d1d5db;cursor:not-allowed}.game-over-overlay{position:absolute;inset:0;background:#000000c7;display:flex;align-items:center;justify-content:center;z-index:100}.game-over-card{background:#1e1e2e;border:1px solid #313244;border-radius:20px;padding:2.5rem 3rem;min-width:320px;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.game-over-title{font-size:1.8rem;font-weight:900;color:#cdd6f4;margin:0;letter-spacing:.06em}.game-over-reason{font-size:.875rem;color:#6c7086;margin:0;text-align:center}.game-over-scores{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:.5rem}.score-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .75rem;border-radius:10px;background:#181825}.score-row.first{background:#2d2040;border:1px solid #7c3aed}.score-rank{font-size:.8rem;color:#6c7086;width:20px;text-align:center;font-weight:700}.score-row.first .score-rank{color:#a78bfa}.score-name{flex:1;font-size:.95rem;color:#cdd6f4;font-weight:600}.score-point{font-size:.9rem;color:#7c3aed;font-weight:800}.score-row.first .score-point{color:#a78bfa}.auto-restart-notice{font-size:.9rem;color:#a78bfa;font-weight:600;margin:0;text-align:center;animation:pulse-timer .8s ease-in-out infinite alternate}.leave-btn-overlay{margin-top:.5rem;padding:.65rem 2rem;background:#7c3aed;color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;font-size:.95rem;font-family:inherit;transition:background .15s}.leave-btn-overlay:hover{background:#6d28d9}@keyframes floatUp{0%{transform:translateY(0) scale(1);opacity:1}80%{transform:translateY(-80px) scale(1.3);opacity:.9}to{transform:translateY(-120px) scale(.8);opacity:0}}.floating-reaction{position:fixed;pointer-events:none;z-index:9999;display:flex;flex-direction:column;align-items:center;gap:2px;animation:floatUp 2s ease-out forwards}.floating-emoji{font-size:2.5rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.floating-sender{font-size:11px;color:#fff;background:#00000080;padding:1px 6px;border-radius:8px;white-space:nowrap}.reaction-bar{display:flex;gap:6px;padding:6px 8px;background:#ffffff80;border-bottom:1px solid #e2e8f0}.reaction-btn{font-size:1.3rem;background:none;border:1px solid transparent;border-radius:8px;padding:3px 7px;cursor:pointer;transition:background .12s,transform .1s;line-height:1}.reaction-btn:hover{background:#00000012;transform:scale(1.2)}.reaction-btn:active{transform:scale(.95)}.message-item.near-miss .msg-content{color:#d97706;font-style:italic}.message-item.near-miss .msg-sender{color:#b45309}.message-item.near-miss:before{content:"💫 "}@media(max-width:768px){.game-header{padding:0 12px;height:48px;gap:6px}.game-logo{font-size:1rem}.game-room-info{gap:6px;flex-wrap:nowrap;overflow:hidden}.room-id-badge{display:none}.game-body{flex-direction:column;overflow:auto}.players-panel{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;padding:6px 12px;gap:6px;border-right:none;border-bottom:1px solid #e5e7eb;flex-shrink:0}.players-panel h3{margin:0;font-size:.7rem;white-space:nowrap}.player-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;overflow-y:unset;flex:1}.player-item{flex-direction:row;padding:3px 8px;margin-bottom:0;background:#f3f4f6;border-radius:20px;font-size:.75rem}.player-item.is-drawer{background:#ede9fe}.player-name{max-width:72px}.player-score{font-size:.7rem;margin-left:4px}.start-btn{margin-top:0;padding:5px 14px;font-size:.8rem}.my-word-box{margin-top:0;padding:4px 10px;display:flex;flex-direction:row;align-items:center;gap:6px}.my-word-label{margin-bottom:0}.my-word{font-size:1.1rem}.canvas-area{padding:8px;flex:1;min-height:0}.game-canvas{max-height:calc(100vh - 280px)}.toolbar{padding:6px 10px;gap:8px;margin-bottom:6px;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}.color-palette{gap:4px;flex-shrink:0}.color-swatch{width:22px;height:22px}.width-palette{gap:4px;flex-shrink:0}.undo-btn,.clear-btn{flex-shrink:0;white-space:nowrap;padding:5px 10px;font-size:.75rem}.chat-panel{width:100%;height:200px;border-left:none;border-top:1px solid #e5e7eb;flex-shrink:0}.message-list{padding:8px 10px}.message-item{font-size:.78rem}.game-over-card{padding:1.75rem 1.5rem;min-width:unset;width:calc(100vw - 2rem);max-width:360px}}@media(max-width:480px){.turn-badge,.drawer-badge{display:none}.game-canvas{max-height:calc(100vh - 310px)}.chat-panel{height:175px}.reaction-bar{padding:4px 8px;gap:4px}.reaction-btn{font-size:1.1rem;padding:2px 5px}.guess-form{padding:8px;gap:4px}.guess-input{font-size:.8rem;padding:6px 8px}.guess-btn{padding:6px 10px;font-size:.75rem}}
