*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;touch-action:manipulation}input,textarea{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto;-webkit-touch-callout:default}#root{width:100%;height:100vh}button,.role-card,.reveal-card,.icon-button{position:relative;-webkit-tap-highlight-color:transparent}span.ripple-container{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;border-radius:inherit;pointer-events:none}span.android-ripple-effect{position:absolute;border-radius:50%;transform:scale(0);animation:android-ripple-anim .5s linear;background-color:#00000026;pointer-events:none}.text-button span.android-ripple-effect,.role-card span.android-ripple-effect,.delete-button span.android-ripple-effect,.modal-buttons button:not([type=button]) span.android-ripple-effect{background-color:#ffffff4d}@keyframes android-ripple-anim{to{transform:scale(3);opacity:0}}.toast-overlay{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:2000;pointer-events:none;animation:slideUp .22s cubic-bezier(.2,0,0,1)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-message{background-color:#000;color:#fff;padding:12px 16px;border-radius:16px;font-size:14px;font-weight:500;letter-spacing:.01em;box-shadow:0 1px 2px #0000004d,0 2px 6px #0003;max-width:min(88vw,360px);text-align:center;border:1px solid rgba(255,255,255,.12)}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000061;display:flex;align-items:center;justify-content:center;z-index:3000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog-content{background:#fff;border-radius:28px;min-width:280px;max-width:min(90vw,420px);box-shadow:0 1px 2px #0000004d,0 6px 12px #00000040;animation:slideIn .22s cubic-bezier(.2,0,0,1)}@keyframes slideIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.dialog-title{padding:24px 24px 0;font-size:24px;font-weight:500;line-height:1.25;color:#1d1b20}.dialog-title.rtl{text-align:right}.dialog-message{padding:16px 24px 20px;font-size:14px;color:#49454f;white-space:pre-wrap;line-height:1.5;max-height:60vh;overflow-y:auto}.dialog-message.large{font-size:17px;line-height:1.65}.dialog-message.rtl{text-align:right}.dialog-input{margin:8px 24px 0;padding:12px 0 8px;width:calc(100% - 48px);border:none;border-bottom:2px solid #9e9e9e;border-radius:0;font-size:16px;outline:none;box-sizing:border-box;background:#fff;color:#1d1b20;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.dialog-input:focus{border-bottom:2px solid #000000;outline:none;box-shadow:none}.dialog-actions{display:flex;justify-content:flex-end;padding:16px;gap:8px}.dialog-button{background:transparent;border:none;padding:10px 12px;font-size:14px;font-weight:600;color:#8a8a8a;cursor:pointer;border-radius:20px;text-transform:none;transition:all .2s ease}.dialog-button:hover{background-color:#00000014}.dialog-button-primary{color:#000}.role-selector{display:flex;flex-direction:column;align-items:center;height:100vh;height:100dvh;background-color:#000;color:#fff;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));box-sizing:border-box;position:relative;overflow:hidden}.top-controls{display:flex;align-items:center;min-height:48px;position:absolute;top:12px;left:12px;right:12px;z-index:10}.title{font-size:16px;font-weight:400;margin:0;text-align:center;color:#fff;flex-shrink:0}.text-button{background:transparent;border:none;color:#03a9f4;font-size:14px;cursor:pointer;padding:8px;font-weight:400}.add-custom-button{background-color:#fff;color:#000;border:none;padding:8px 16px;border-radius:32px;font-weight:700;cursor:pointer;margin-bottom:16px;transition:all .2s ease;box-shadow:0 2px 4px #fff3}.role-grid{display:grid;grid-template-columns:repeat(3,100px);gap:24px;overflow-y:auto;overflow-x:hidden;align-content:start;padding:0 12px;justify-content:center;width:100%;max-width:372px;height:472px;max-height:472px;touch-action:pan-y;box-sizing:border-box;scrollbar-gutter:stable}.role-card{width:100px;height:100px;background:red;border-radius:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:relative;box-shadow:0 2px 4px #0003;transition:all .2s ease}.role-card.selected{background:#0f0}.role-card.selected .role-name{color:#000}.delete-button{position:absolute;top:4px;right:4px;width:24px;height:24px;background-color:#000;color:#fff;border:none;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1;padding:0}.delete-button:active{background-color:#333}.role-icon{width:64px;height:64px;object-fit:contain;margin-top:8px;margin-bottom:0;image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none;filter:contrast(1.1) brightness(1.05);-webkit-filter:contrast(1.1) brightness(1.05)}.role-placeholder{width:80px;height:60px;display:flex;align-items:center;justify-content:center;font-size:48px;color:#000;opacity:.3}.role-name{font-size:12px;font-weight:700;color:#fff;text-align:center;word-break:break-word;line-height:1.2;margin-top:auto;margin-bottom:8px}.icon-button{background:transparent;border:none;cursor:pointer;padding:8px;transition:transform .2s ease;flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border-radius:50%}.next-button{background-color:#888;color:#444;border:none;padding:12px 24px;border-radius:20px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;min-width:64px;flex-shrink:0}.next-button:disabled{background-color:#888;color:#444;cursor:default}.modal-content{background:#fff;color:#000;padding:24px;border-radius:16px;min-width:280px;max-width:90%}.modal-content h2{margin:0 0 16px;font-size:20px}.modal-content input{width:100%;padding:12px;border:2px solid #ddd;border-radius:8px;font-size:16px;box-sizing:border-box;margin-bottom:16px}.modal-buttons button{padding:8px 16px;border:none;border-radius:8px;font-weight:700;cursor:pointer;background-color:#000;color:#fff;transition:all .2s ease}.role-reveal{display:flex;flex-direction:column;align-items:center;height:100vh;height:100dvh;background-color:#000;color:#fff;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));box-sizing:border-box;overflow:hidden;position:relative}.reveal-header{display:flex;align-items:center;min-height:48px;position:absolute;top:12px;left:12px;right:12px;z-index:10}.icon-button{background:transparent;border:none;cursor:pointer;padding:8px;transition:background-color .2s ease;flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;position:relative;border-radius:50%}.back-button{background-color:#fff;color:#000;border:none;padding:8px 16px;border-radius:32px;font-weight:700;cursor:pointer;transition:background-color .2s ease;box-shadow:0 2px 4px #fff3;flex-shrink:0;position:relative;overflow:hidden}.retry-button{width:auto;min-width:0;background-color:#fff;color:#000;border:none;padding:12px 18px;border-radius:20px;font-weight:700;cursor:pointer;transition:background-color .2s ease;box-sizing:border-box;text-transform:uppercase;font-size:14px;letter-spacing:.5px;flex-shrink:0;position:relative;overflow:hidden}.retry-anchor{height:19px;width:100%;display:flex;justify-content:center;align-items:center;flex-shrink:0;position:relative}.retry-button.retry-floating{position:absolute;top:50%;transform:translateY(-50%)}.spacer{flex:1}.header-space{height:48px;flex-shrink:0}.action-slot{height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:100%;max-width:420px}.grid-wrapper{flex:1;min-height:0;width:100%;max-width:420px;display:flex;align-items:center;justify-content:center;overflow:hidden}.retry-button:disabled{background-color:#fff;color:gray;opacity:.7}.retry-button.retry-placeholder{visibility:hidden;pointer-events:none}.reveal-extra-row{display:grid;grid-template-columns:repeat(3,100px);gap:24px;justify-content:center;width:100%;max-width:372px;padding:0 12px;box-sizing:border-box}.reveal-grid-stack{position:relative;width:100%;max-width:372px;overflow:visible}.reveal-extra-row-overlay{position:absolute;top:calc(100% + 24px);left:0;right:0}.reveal-grid{display:grid;grid-template-columns:repeat(3,100px);gap:24px;overflow-y:auto;overflow-x:hidden;align-content:start;padding:0 12px;justify-content:center;width:100%;max-width:372px;height:472px;max-height:472px;touch-action:pan-y;box-sizing:border-box;scrollbar-gutter:stable}.reveal-card{width:100px;height:100px;background:linear-gradient(135deg,#fff,#e0e0e0);border-radius:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;position:relative;box-shadow:0 2px 4px #0003;transition:all .15s ease;flex-shrink:0;overflow:hidden}.reveal-card.disabled{cursor:default;opacity:.6;pointer-events:none}.reveal-icon{width:64px;height:64px;object-fit:contain;position:absolute;top:8px;left:50%;transform:translate(-50%);image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none;filter:contrast(1.1) brightness(1.05);-webkit-filter:contrast(1.1) brightness(1.05)}.header-icon{width:24px;height:24px;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.reveal-name{font-size:11px;font-weight:700;color:#000;text-align:center;word-break:break-word;line-height:1.2;position:absolute;bottom:8px;left:4px;right:4px}.player-name{font-size:11px;font-weight:700;color:#000;text-align:center;word-break:break-word;line-height:1.2;padding:0 4px}.player-name.grayed{color:gray}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;color:#000;padding:24px;border-radius:16px;min-width:280px;max-width:90%;max-height:80vh;overflow-y:auto}.modal-content h2.player-edit-title{margin:0;padding:0;flex:1;font-weight:700}.player-edit-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 0;margin-bottom:8px;flex-shrink:0}.player-edit-reset{padding:0;min-width:24px;min-height:24px}.player-edit-reset .header-icon{filter:none}.player-edit-reset.active{opacity:1;filter:none}.player-edit-reset.disabled{opacity:.45;filter:grayscale(1)}.modal-content.player-edit{display:flex;flex-direction:column;min-width:280px;max-width:min(90vw,420px);max-height:calc(100dvh - 24px);border-radius:28px;box-shadow:none;margin:0 auto;overflow:hidden;padding:0}.modal-content.player-edit .player-inputs{display:flex;flex-direction:column;gap:5px;padding:0 24px;margin-bottom:6px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1}.modal-content.player-edit .player-inputs input{width:100%;padding:10px 0 6px;margin:0;border:none;border-bottom:2px solid #9e9e9e;border-radius:0;font-size:16px;box-sizing:border-box;background:#fff;color:#1d1b20;font-weight:400;flex-shrink:0}.modal-content.player-edit .player-inputs input:focus{border-bottom:2px solid #000;outline:none}.modal-content.player-edit .dialog-actions{padding:6px 16px 12px;flex-shrink:0}.modal-buttons{display:flex;gap:8px;justify-content:flex-end}.modal-buttons button{padding:8px 16px;border:none;border-radius:8px;font-weight:700;cursor:pointer;background-color:#000;color:#fff;transition:background-color .2s ease;position:relative;overflow:hidden}.modal-buttons button[type=button]{background-color:#ddd;color:#000}@font-face{font-family:Chococooky;src:url(/Chococooky.ttf) format("truetype")}*{font-family:Chococooky,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.app{width:100%;height:100vh;background-color:#000;overflow:auto;font-family:Chococooky,sans-serif}
