:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a1a}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#f4f4f4;display:flex}#root{margin:auto;padding:24px}#root:has(.app.in-game){margin:0 auto;padding-top:4px}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:600;font-display:swap;src:url(data:font/woff2;base64,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) format("woff2")}.app{display:flex;flex-direction:column;align-items:center;gap:20px}.server-mode-switch{position:fixed;top:6px;left:50%;z-index:100;display:flex;align-items:center;gap:4px;padding:4px;border:2px solid #1f1f1f;border-radius:999px;background:#fff;box-shadow:3px 3px #1f1f1f;transform:translate(-50%)}.server-mode-switch>span{padding:0 5px 0 7px;color:#555;font-size:.72rem;font-weight:900;text-transform:uppercase}.server-mode-switch button{min-height:28px;padding:3px 9px;border:0;border-radius:999px;background:transparent;color:#555;font:inherit;font-size:.78rem;font-weight:900;cursor:pointer}.server-mode-switch button.active{background:#1f1f1f;color:#fff}.server-mode-switch button:not(.active):hover,.server-mode-switch button:not(.active):focus-visible{background:#fff4bf;color:#1f1f1f;outline:none}#root:has(.server-mode-switch){padding-top:58px}#root:has(.server-mode-switch):has(.app.in-game){padding-top:58px}#root:has(.server-mode-switch) .game-top-tray,#root:has(.server-mode-switch) .tournament-topbar{top:50px}h1{margin:0;font-size:1.8rem}.board-wrap{display:inline-grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:6px}.game-play-area{display:flex;align-items:flex-start;justify-content:center;gap:16px;width:min(96vw,900px)}.game-play-area:not(.with-chat){width:auto}.history-ledger{width:min(320px,90vw);height:min(90vw,540px);min-width:0;display:flex;flex-direction:column;gap:10px;padding:12px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:6px 6px #1f1f1f}.history-ledger-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.history-ledger-header strong{font-size:1.05rem;font-weight:900}.history-ledger-header span{color:#666;font-size:.78rem;font-weight:800}.history-ledger-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;gap:5px;overflow-y:auto;padding:2px 5px 5px 2px}.history-move-row{min-width:0;display:grid;grid-template-columns:20px repeat(2,minmax(0,1fr));align-items:center;gap:5px}.history-move-card{width:100%;min-width:0;min-height:0;height:35px;display:grid;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:2px;padding:2px 7px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button.history-move-card:hover,button.history-move-card:focus-visible,.history-move-card.active{background:#f3f3f3;box-shadow:3px 3px #1f1f1f;outline:none;transform:translate(-1px,-1px)}.history-move-card.active{background:#fff4bf}.history-move-number{color:#1f1f1f;font-size:.78rem;font-weight:900;text-align:right}.history-piece-icon{display:flex;align-items:center;justify-content:center;width:25px;height:25px}.history-move-notation{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:3px;font-size:.78rem;font-weight:900}.history-move-notation>span:not(.history-move-action){overflow:hidden;text-overflow:ellipsis}.history-move-action{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:25px;color:inherit;font-size:1rem;line-height:1}.history-move-action.capture{font-size:1.7rem;transform:translateY(-1px)}.game-play-area.with-history-ledger{width:min(96vw,920px)}.live-side-rail{width:min(300px,90vw);height:min(90vw,540px);min-width:0;display:grid;grid-template-rows:minmax(0,7fr) 34px minmax(0,3fr);background:transparent;transition:grid-template-rows .35s ease}.live-side-rail.expand-chat{grid-template-rows:minmax(0,3fr) 34px minmax(0,7fr)}.live-side-rail.moves-only{display:flex}.live-moves-panel,.live-chat-panel{min-height:0;display:flex;flex-direction:column;gap:8px;padding:10px;overflow:hidden;border:3px solid #1f1f1f;border-radius:8px;background:#fff}.live-moves-panel .history-ledger-grid{grid-auto-rows:max-content;overflow-y:auto}.live-moves-panel .history-move-card{align-self:start}.live-side-rail.moves-only .live-moves-panel{flex:1}.side-rail-divider{position:relative;align-self:center;justify-self:stretch;height:30px;margin:2px 0;padding:0;border:0;background:transparent;color:#1f1f1f;cursor:pointer}.side-rail-divider span{position:absolute;left:50%;top:50%;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:2px solid #1f1f1f;border-radius:999px;background:#fff;font-size:1.1rem;font-weight:900;transform:translate(-50%,-50%);transition:box-shadow .12s ease,transform .12s ease}.side-rail-divider:hover span,.side-rail-divider:focus-visible span{box-shadow:3px 3px #1f1f1f;transform:translate(calc(-50% - 1px),calc(-50% - 1px))}.side-rail-divider:focus-visible{outline:none}.live-panel-empty{grid-column:1 / -1;margin:auto;color:#666;font-size:.85rem;font-weight:800;text-align:center}.game-chat-header{display:flex;align-items:center;justify-content:space-between;min-height:24px;font-weight:900}.game-chat-messages{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:3px}.game-chat-empty{margin:auto 0;color:#666;font-weight:800;text-align:center}.game-chat-read-only{margin:0;color:#666;font-size:.78rem;font-weight:700;text-align:center}.game-chat-message{display:grid;gap:2px;padding:8px 9px;border:2px solid #1f1f1f;border-radius:6px;background:#f7f7f7;overflow-wrap:anywhere}.game-chat-message strong{font-size:.82rem;line-height:1.1}.game-chat-message span{line-height:1.25}.game-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.game-chat-form input{min-width:0;min-height:38px;padding:8px 10px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit}.game-chat-form button{min-height:38px;padding:6px 10px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.game-chat-form button:hover:not(:disabled),.game-chat-form button:focus-visible:not(:disabled){background:#1f1f1f;color:#fff;outline:none}.game-chat-form button:disabled,.game-chat-form input:disabled{cursor:not-allowed;opacity:.5}.board{position:relative;grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:2px;width:min(90vw,540px);aspect-ratio:1 / 1;padding:2px;background:#333;border:2px solid #333;border-radius:4px}.cell{position:relative;background:#fff;cursor:pointer;transition:background .1s ease;display:flex;align-items:center;justify-content:center}.cell:hover{background:#cde3ff}.cell.last-move{background:#fff7ce}.cell.last-move .piece{filter:drop-shadow(0 0 0px #f4c542) drop-shadow(0 0 0px #f4c542)}.premove-enabled .piece{cursor:grab;touch-action:none}.premove-enabled .piece:active{cursor:grabbing}.cell.premove-target{background:#dfe3e6}.premove-arrows{position:absolute;z-index:2;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);overflow:visible;pointer-events:none}.premove-arrows line{stroke:#2f9e44;stroke-width:.12;stroke-linecap:round;opacity:.48}.premove-arrows marker path{fill:#2f9e44;opacity:.48}.base-blue{background:#6f8fe8}.base-red{background:#ea8080}.piece{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;width:92%;height:92%;-webkit-user-select:none;user-select:none;transform-origin:center;transition:transform .12s ease}.piece-icon{width:100%;height:100%;background:currentColor;mask:var(--piece-icon) center / contain no-repeat;-webkit-mask:var(--piece-icon) center / contain no-repeat;pointer-events:none}.piece-blue{color:#4b6fd9}.piece-red{color:#d94b4b}.status{display:flex;align-items:center;gap:16px}.turn{font-weight:700;font-size:1.1rem}.turn-status{display:flex;flex-direction:column;align-items:center;gap:4px}.stagnation-warning{color:#d97706;font-size:.95rem;font-weight:700}.turn-blue{color:#4b6fd9}.turn-red{color:#d94b4b}.reset{padding:6px 14px;border:1px solid #bbb;border-radius:6px;background:#fff;font:inherit;cursor:pointer}.reset:hover{background:#eee}.practice-reset{border:2px solid #1f1f1f;box-shadow:3px 3px #1f1f1f;font-weight:800;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.practice-reset:hover,.practice-reset:focus-visible{background:#fff;box-shadow:5px 5px #1f1f1f;outline:none;transform:translate(-2px,-2px)}.cell.selected{box-shadow:inset 0 0 0 3px #f4c542}.move-animation-target .piece{opacity:0}.moving-piece-overlay,.captured-piece-overlay{position:fixed;display:flex;align-items:center;justify-content:center;pointer-events:none}.moving-piece-overlay{z-index:91;transform:translate(0);transition:transform .2s cubic-bezier(.2,.8,.2,1)}.captured-piece-overlay{z-index:90}.moving-piece-overlay.active{transform:translate(var(--move-x),var(--move-y))}.moving-piece-overlay.active.capture-paper-rock{animation:paper-smother-move .4s cubic-bezier(.2,.8,.2,1) forwards}.moving-piece-overlay.active.capture-scissors-paper{animation:scissors-cut-move .4s cubic-bezier(.25,.8,.25,1) forwards}.moving-piece-overlay.active.capture-rock-scissors{animation:rock-jump-move .4s cubic-bezier(.2,.8,.2,1) forwards}.captured-paper-rock.active .piece,.captured-scissors-paper.active .piece{animation:captured-shrink-out .32s ease-in forwards}.captured-rock-scissors.active .piece{animation:captured-flatten-out .36s ease-in forwards;transform-origin:center bottom;animation-delay:.17s}@keyframes captured-shrink-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes captured-flatten-out{0%{opacity:1;transform:scaleY(1)}70%,to{opacity:0;transform:scaleY(0)}}@keyframes paper-smother-move{0%{transform:translate(0) scale(1)}55%{transform:translate(var(--move-x),var(--move-y)) scale(1.5)}to{transform:translate(var(--move-x),var(--move-y)) scale(1)}}@keyframes scissors-cut-move{0%{transform:translate(0)}58%{transform:translate(calc(var(--move-x) + var(--over-x)),calc(var(--move-y) + var(--over-y)))}to{transform:translate(var(--move-x),var(--move-y))}}@keyframes rock-jump-move{0%{transform:translate(0)}50%{transform:translate(calc(var(--move-x) * .5),calc(var(--move-y) * .5 - 46px)) scale(1.08)}82%{transform:translate(var(--move-x),var(--move-y)) scale(1.12,.86)}to{transform:translate(var(--move-x),var(--move-y))}}.cell.selected .piece{transform:scale(.82)}@keyframes capture-nervous{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-1px) rotate(-2deg)}40%{transform:translate(1px) rotate(2deg)}60%{transform:translate(-1px) rotate(1deg)}80%{transform:translate(1px) rotate(-1deg)}}.cell.capturable .piece{animation:capture-nervous .36s ease-in-out infinite}.cell.capturable{box-shadow:inset 0 0 0 3px #14141499}.move-dot{width:30%;height:30%;border-radius:50%;background:#1e1e1e59}.ranks{grid-column:1;grid-row:1;display:grid;grid-template-rows:repeat(9,1fr);gap:2px;padding:2px 0;border-block:2px solid transparent}.files{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(9,1fr);gap:2px;padding:0 2px;border-inline:2px solid transparent}.ranks .label,.files .label{display:flex;align-items:center;justify-content:center;min-width:1.2rem;color:#555;font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:.9rem;font-weight:600;text-transform:uppercase;-webkit-user-select:none;user-select:none}@keyframes shake{0%,to{transform:translate(0)}25%,75%{transform:translate(-8px)}50%{transform:translate(8px)}}.shake-error{animation:shake .5s ease-in-out;border-color:#d94b4b!important}.home-account-cluster{position:fixed;top:18px;left:18px;z-index:20;display:flex;align-items:stretch;gap:10px}.account-button{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:104px;max-width:calc(100vw - 36px);padding:8px 12px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;box-shadow:3px 3px #1f1f1f;font:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.account-button:hover,.account-button:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px #1f1f1f;outline:none}.account-button span{font-size:.72rem;font-weight:700;line-height:1;text-transform:uppercase;color:#555}.account-button strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;line-height:1.1}.admin-open-button{min-width:78px;padding:8px 12px;border:2px solid #1f1f1f;border-radius:6px;background:#fff4bf;color:#1f1f1f;box-shadow:3px 3px #1f1f1f;font:inherit;font-weight:900;cursor:pointer}.admin-open-button:hover,.admin-open-button:focus-visible{outline:none;transform:translate(-2px,-2px);box-shadow:5px 5px #1f1f1f}.local-login-buttons{display:flex;align-items:stretch;gap:8px}.local-login-buttons button{min-width:58px;padding:8px 10px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;box-shadow:3px 3px #1f1f1f;font:inherit;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.local-login-buttons button:hover,.local-login-buttons button:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px #1f1f1f;outline:none}.auth-modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000059}.auth-modal{width:min(360px,calc(100vw - 32px));display:flex;flex-direction:column;gap:14px;padding:22px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:8px 8px #1f1f1f}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-tab,.auth-confirm-btn,.auth-logout-btn{min-height:38px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.auth-tab:hover,.auth-confirm-btn:hover,.auth-tab:focus-visible,.auth-confirm-btn:focus-visible{background:#1f1f1f;color:#fff;outline:none}.auth-tab.active{background:#1f1f1f;color:#fff}.auth-modal input{width:100%;min-height:42px;padding:9px 11px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit}.auth-modal input:focus{outline:3px solid rgba(75,111,217,.25)}.admin-modal-overlay{z-index:120}.admin-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;gap:16px;padding:22px;overflow-y:auto;border:3px solid #1f1f1f;border-radius:10px;background:#fff;box-shadow:9px 9px #1f1f1f}.admin-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-modal-header span,.admin-user-row span,.admin-blocklist-row span,.admin-note{color:#555;font-size:.78rem;font-weight:700}.admin-modal-header h2,.admin-note{margin:0}.admin-modal button,.admin-modal input{min-height:38px;padding:7px 10px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-weight:800}.admin-modal button:not(:disabled){cursor:pointer}.admin-modal button:disabled{cursor:not-allowed;opacity:.5}.admin-modal-header button{width:38px;padding:0;font-size:1.3rem}.admin-section{display:flex;flex-direction:column;gap:9px}.admin-list,.admin-blocklist{max-height:260px;display:flex;flex-direction:column;gap:7px;overflow-y:auto}.admin-user-row,.admin-blocklist-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;border:2px solid #1f1f1f;border-radius:6px}.admin-user-row>div:first-child,.admin-blocklist-row>div:first-child{min-width:0;display:flex;flex-direction:column}.admin-user-row strong,.admin-user-row span,.admin-blocklist-row strong,.admin-blocklist-row span{overflow-wrap:anywhere}.admin-row-actions,.admin-blocklist-form{display:flex;gap:7px}.admin-blocklist-form input{flex:1;min-width:0}.admin-danger-button{border-color:#b42318!important;color:#b42318!important}.past-game-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.past-game-delete-button{min-width:76px}.error-container{min-height:20px}.error-container:not(.visible) .error-text{visibility:hidden}.error-text{margin:0;color:#b42318;font-size:.9rem;font-weight:700}.auth-logged-in-label{margin:0;color:#555;font-size:.78rem;font-weight:800;text-align:center;text-transform:uppercase}.auth-logged-in-username{margin:-8px 0 2px;overflow-wrap:anywhere;font-size:1.6rem;font-weight:900;text-align:center}.auth-profile-group{display:flex;flex-direction:column;gap:10px;padding:14px;border:2px solid #1f1f1f;border-radius:6px;background:#f7f7f7}.auth-profile-group h3{margin:0;font-size:1rem;line-height:1.2}.auth-profile-stats{display:flex;flex-direction:column;gap:8px}.auth-stat-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:28px}.auth-stat-label{color:#555;font-weight:700}.auth-stat-value{font-weight:900}.auth-logout-btn:hover,.auth-logout-btn:focus-visible{background:#d94b4b;color:#fff;outline:none}@media(max-width:640px){@keyframes shake{0%,to{transform:translate(0)}25%,75%{transform:translate(-8px)}50%{transform:translate(8px)}}.shake-error{animation:shake .5s ease-in-out;border-color:#d94b4b!important}.account-button{position:static;align-self:flex-start;margin-bottom:4px}.app{align-items:stretch}h1,.status,.board-wrap{align-self:center}}.game-top-tray{position:sticky;top:4px;z-index:30;width:min(92vw,720px);min-height:68px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding:12px 14px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:6px 6px #1f1f1f}.game-info-pill,.matchup-pill{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:6px 12px;border:2px solid #1f1f1f;border-radius:999px;background:#f7f7f7;font-weight:800}.player-name-blue,.player-name-red{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900}.player-name-blue{color:#4b6fd9}.player-name-red{color:#d94b4b}.matchup-vs{color:#555;font-size:.82rem;font-weight:900;text-transform:uppercase}.game-home-button{position:absolute;left:12px;top:50%;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;cursor:pointer;transform:translateY(-50%);transition:box-shadow .12s ease,transform .12s ease,background .12s ease}.game-home-button:hover,.game-home-button:focus-visible{background:#f7f7f7;box-shadow:3px 3px #1f1f1f;outline:none;transform:translate(-2px,calc(-50% - 2px))}.game-home-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.game-link-pill,.workshop-history-button{cursor:pointer;font:inherit;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.game-link-pill:hover,.game-link-pill:focus-visible,.workshop-history-button:hover,.workshop-history-button:focus-visible{transform:translate(-2px,-2px);box-shadow:4px 4px #1f1f1f;outline:none}.game-link-pill.copied{background:#dff7e8}.invite-overlay{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000059}.invite-modal{width:min(380px,calc(100vw - 32px));display:flex;flex-direction:column;gap:14px;padding:22px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:8px 8px #1f1f1f}.invite-modal h2,.invite-modal p{margin:0}.invite-modal h2{font-size:1.35rem;line-height:1.15}.invite-modal input{width:100%;min-height:42px;padding:9px 11px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit}.invite-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.invite-actions button{min-height:38px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease}.invite-actions button:hover:not(:disabled),.invite-actions button:focus-visible:not(:disabled){background:#1f1f1f;color:#fff;outline:none}.invite-actions button:disabled{cursor:not-allowed;opacity:.42}.draw-offer-button{cursor:pointer;font:inherit;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.draw-offer-button:hover,.draw-offer-button:focus-visible{transform:translate(-2px,-2px);box-shadow:4px 4px #1f1f1f;outline:none}.dev-random-moves-button{cursor:pointer;background:#fff4bf;font:inherit;transition:transform .12s ease,box-shadow .12s ease}.dev-random-moves-button:hover:not(:disabled),.dev-random-moves-button:focus-visible:not(:disabled){transform:translate(-2px,-2px);box-shadow:4px 4px #1f1f1f;outline:none}.dev-random-moves-button:disabled{cursor:default;opacity:.7}.resign-button{cursor:pointer;color:#8d1b16;font:inherit;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.resign-button:hover,.resign-button:focus-visible{color:#fff;background:#a52a24;transform:translate(-2px,-2px);box-shadow:4px 4px #1f1f1f;outline:none}.draw-offer-note{margin:-8px 0 0;color:#555;font-weight:800}.lobby-panel{width:min(92vw,720px);display:grid;gap:10px;padding:14px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:6px 6px #1f1f1f}.lobby-panel.expanded{grid-template-columns:minmax(190px,1fr) minmax(220px,1.2fr)}.lobby-panel.home-tray{width:max-content;max-width:min(92vw,820px);grid-template-columns:1fr;box-shadow:none}.lobby-panel.home-tray .player-box>button{flex:0 0 auto;white-space:nowrap}.player-box,.join-box,.rps-options{display:flex;gap:8px}.player-box,.join-box{align-items:stretch}.player-box input,.join-box input,.time-settings input::-webkit-outer-spin-button,.time-settings input::-webkit-inner-spin-button{margin:0;appearance:none;-webkit-appearance:none}.time-settings input[type=number]{appearance:textfield;-moz-appearance:textfield}.time-settings input{min-height:38px;min-width:0;padding:8px 10px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit}.player-box input,.join-box input{flex:1}.player-box input[readonly]{background:#e9e9e9;color:#666;cursor:not-allowed}.signed-player{flex:1;display:flex;align-items:center;min-height:38px;min-width:0;padding:8px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;font-weight:900}.lobby-panel button,.option-selector button{min-height:38px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.lobby-panel button:hover:not(:disabled),.lobby-panel button:focus-visible:not(:disabled),.option-selector button:hover:not(:disabled),.option-selector button:focus-visible:not(:disabled),.option-selector button.active,.lobby-panel button.active{background:#1f1f1f;color:#fff;outline:none}.lobby-panel button:disabled{cursor:not-allowed;opacity:.42}.lobby-panel.home-tray button:not(:disabled){box-shadow:3px 3px #1f1f1f;transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.lobby-panel.home-tray button:hover:not(:disabled),.lobby-panel.home-tray button:focus-visible:not(:disabled){background:#fff;color:#1f1f1f;box-shadow:5px 5px #1f1f1f;transform:translate(-2px,-2px)}.lobby-panel .lobby-shadow-button{box-shadow:3px 3px #1f1f1f;transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.lobby-panel .lobby-shadow-button:hover:not(:disabled),.lobby-panel .lobby-shadow-button:focus-visible:not(:disabled){background:#fff;color:#1f1f1f;box-shadow:5px 5px #1f1f1f;transform:translate(-2px,-2px)}.rps-options{grid-column:1 / -1;flex-direction:column;padding-top:4px}.option-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px}.option-toggle>span,.time-settings span{color:#555;font-size:.9rem;font-weight:800}.option-selector{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.option-selector button{padding:6px 10px}.time-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.time-settings label{display:grid;grid-template-columns:auto minmax(70px,1fr);align-items:center;gap:8px}.initial-time-label{grid-template-columns:auto minmax(138px,max-content)!important}.time-pair{display:inline-grid;grid-template-columns:58px auto 58px;align-items:center;gap:3px;justify-content:end}.time-pair input{width:58px;min-width:0;padding-inline:6px;text-align:center}.time-colon{color:#1f1f1f!important;font-size:1.1rem!important;line-height:1}.increment-time-label{display:flex!important;justify-content:flex-end}.increment-control{display:inline-grid;grid-template-columns:auto 58px auto;align-items:center;gap:3px;justify-content:end}.increment-control input{width:58px;min-width:0;padding-inline:6px;text-align:center}.increment-affix{color:#1f1f1f!important;font-size:.95rem!important;line-height:1}.lobby-error{grid-column:1 / -1;margin:0;color:#b42318;font-weight:800}.past-games-panel{grid-column:1 / -1;display:flex;flex-direction:column;gap:10px;padding-top:2px}.history-section{display:flex;flex-direction:column;gap:10px}.history-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:2px solid #1f1f1f;border-radius:6px}.lobby-panel .history-view-tabs button,.lobby-panel.home-tray .history-view-tabs button:not(:disabled){min-height:36px;border:0;border-radius:0;box-shadow:none;transform:none}.lobby-panel .history-view-tabs button+button{border-left:2px solid #1f1f1f}.lobby-panel.home-tray .history-view-tabs button:hover:not(:disabled),.lobby-panel.home-tray .history-view-tabs button:focus-visible:not(:disabled){background:#f1f1f1;color:#1f1f1f;box-shadow:none;transform:none}.lobby-panel .history-view-tabs button.active,.lobby-panel.home-tray .history-view-tabs button.active:not(:disabled){background:#1f1f1f;color:#fff}.history-section+.history-section{margin-top:4px;padding-top:14px;border-top:2px solid #1f1f1f}.past-games-panel input{min-height:38px;min-width:0;padding:8px 10px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit}.active-games-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.active-games-header strong{font-weight:900}.active-games-header button{min-height:32px;padding:5px 10px}.past-games-list{display:flex;flex-direction:column;gap:8px}.past-games-list.refreshing,.leaderboard-list.refreshing{opacity:.72}.leaderboard-list{display:flex;flex-direction:column;gap:6px}.browse-workshops-list{display:flex;flex-direction:column;gap:8px}.browse-workshops-list.refreshing{opacity:.72}.browse-workshop-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px}.browse-workshop-main strong,.browse-workshop-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browse-workshop-main span{color:#666;font-size:.78rem;font-weight:700}.lobby-panel .browse-workshop-row>button:last-child{min-width:92px}.lobby-panel .browse-workshop-row>button.published{background:#eaf8ef}.leaderboard-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto 54px;align-items:center;gap:10px;min-height:38px;padding:7px 9px;border:2px solid #1f1f1f;border-radius:6px;background:#fff}.leaderboard-rank{color:#555;font-size:.82rem;font-weight:900;text-align:center}.leaderboard-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-record{color:#666;font-size:.78rem;font-weight:800}.leaderboard-rating{font-weight:900;text-align:right}.past-games-loading{min-height:1.1rem;font-size:.85rem}.past-games-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}.past-games-pagination>span{color:#555;font-size:.85rem;font-weight:800}.past-games-pagination>div{display:flex;align-items:center;gap:4px}.past-games-pagination button{width:34px;min-height:32px;padding:4px}.past-games-pagination button.active{background:#1f1f1f;color:#fff}.pagination-ellipsis{width:24px;color:#555;font-weight:900;text-align:center}.past-game-row{width:100%;display:grid;grid-template-columns:1fr;justify-items:stretch;gap:4px;min-height:0!important;padding:10px;text-align:left;box-shadow:0 0 #1f1f1f;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease}.past-game-row:hover,.past-game-row:focus-visible{background:#fff!important;color:#1f1f1f!important;box-shadow:4px 4px #1f1f1f;outline:none;transform:translate(-2px,-2px)}.active-game-row.your-turn{border-color:#238a45;background:#eaf8ef}.active-game-row.your-turn:hover,.active-game-row.your-turn:focus-visible{background:#eaf8ef!important;box-shadow:4px 4px #238a45}.past-game-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.past-game-matchup{display:inline-flex;align-items:center;gap:6px;font-weight:900}.winner-trophy{flex:0 0 auto;font-size:.95rem;line-height:1}.past-games-note{margin:0;color:#555;font-weight:800}.lobby-list{grid-column:1 / -1;display:flex;flex-direction:column;gap:8px;padding-top:4px}.lobby-list h2{margin:0;font-size:1rem}.public-games-list{margin-top:4px;padding-top:12px;border-top:2px dashed #bbb}.workshop-page{width:min(1180px,96vw);min-height:min(760px,94vh);display:flex;flex-direction:column;gap:16px}.workshop-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:12px 16px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:6px 6px #1f1f1f}.workshop-header h1,.workshop-header p{margin:0}.workshop-heading-row{display:flex;align-items:center;gap:10px}.workshop-header .workshop-id-button,.workshop-header .workshop-invite-button{min-height:28px;padding:3px 9px;border-radius:999px;background:#f7f7f7;font-size:.76rem}.workshop-header .workshop-invite-button.copied{background:#dff7e8}.workshop-header p,.workshop-header-actions>span{color:#666;font-size:.82rem;font-weight:700}.workshop-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.workshop-header button,.workshop-sidebar button,.workshop-browser button,.workshop-sidebar input,.workshop-sidebar textarea{border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit}.workshop-header button,.workshop-sidebar button,.workshop-browser button{min-height:34px;padding:5px 9px;font-weight:800;cursor:pointer}.workshop-header button:hover,.workshop-header button:focus-visible,.workshop-sidebar button:hover:not(:disabled),.workshop-sidebar button:focus-visible:not(:disabled),.workshop-browser button:hover:not(:disabled),.workshop-browser button:focus-visible:not(:disabled),.workshop-sidebar button.active{background:#1f1f1f;color:#fff;outline:none}.workshop-header .workshop-invite-button:hover:not(:disabled),.workshop-header .workshop-invite-button:focus-visible:not(:disabled){background:#f7f7f7;color:#1f1f1f}.workshop-header .workshop-invite-button.copied:hover:not(:disabled),.workshop-header .workshop-invite-button.copied:focus-visible:not(:disabled){background:#dff7e8}.workshop-header button:disabled,.workshop-browser button:disabled,.workshop-sidebar input:disabled{cursor:not-allowed;opacity:.5}.workshop-sidebar button:disabled{cursor:not-allowed;opacity:.4}.workshop-layout{min-height:0;display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:20px}.workshop-sidebar{height:min(76vh,680px);min-height:560px;display:flex;flex-direction:column;gap:10px;padding:12px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:6px 6px #1f1f1f}.workshop-title,.workshop-node-label-input{width:100%;padding:7px 9px}.workshop-title[readonly]{background:#f7f7f7;cursor:default}.workshop-mode-tabs,.workshop-toggle-row,.workshop-piece-tools,.workshop-button-row,.workshop-share-controls{display:flex;gap:6px}.workshop-mode-tabs>button,.workshop-toggle-row>button,.workshop-share-controls>button{flex:1}.workshop-toggle-row button.blue.active{background:#4b6fd9}.workshop-toggle-row button.red.active{background:#d94b4b}.workshop-controls{display:flex;flex-direction:column;gap:7px;padding:9px;border:2px solid #1f1f1f;border-radius:6px;background:#f7f7f7}.workshop-controls p{margin:0;color:#666;font-size:.75rem;font-weight:700}.workshop-control-label{color:#555;font-size:.78rem;font-weight:900;text-transform:uppercase}.workshop-piece-tools button{flex:1;height:42px;min-width:0;display:flex;align-items:center;justify-content:center}.workshop-piece-tools .piece-icon{width:27px;height:27px}.workshop-piece-tools button.erase{background:#a52a24}.workshop-button-row{flex-wrap:wrap}.workshop-button-row button{flex:1 1 90px}.workshop-import-lines-button{width:100%}.workshop-tree-header{display:flex;align-items:baseline;justify-content:space-between;padding-top:2px}.workshop-tree-header span{color:#666;font-size:.75rem;font-weight:800}.workshop-tree{flex:1;min-height:90px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding:2px 5px 5px 2px}.workshop-tree>button,.workshop-tree-row{margin-left:calc(var(--tree-indent, 0) * 12px)}.workshop-tree-row{position:relative;min-width:0;display:block}.workshop-tree-row>button:first-child{width:100%;min-width:0;display:flex;align-items:center;gap:7px;padding-left:34px;padding-right:84px;overflow:hidden;text-align:left}.workshop-node-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workshop-turn-number{width:18px;flex:0 0 18px;color:#666;font-size:.76rem;font-weight:900;text-align:right}.workshop-child-count{flex:0 0 auto;padding:1px 5px;border-radius:4px;background:#ddd;color:#555;font-size:.68rem;font-weight:900;line-height:1.25}.workshop-tree-row>button:first-child.active .workshop-child-count{background:#555;color:#fff}.workshop-sidebar .workshop-tree>button:hover:not(:disabled),.workshop-sidebar .workshop-tree>button:focus-visible:not(:disabled),.workshop-sidebar .workshop-tree-row>button:first-child:hover:not(:disabled),.workshop-sidebar .workshop-tree-row>button:first-child:focus-visible:not(:disabled){background:#fff;color:#1f1f1f;box-shadow:3px 3px #1f1f1f;outline:none;transform:translate(-1px,-1px)}.workshop-node-label-input{height:34px;padding-left:34px;padding-right:84px;font-size:.82rem!important;font-weight:800!important}.workshop-node-control{position:absolute;top:50%;width:24px;min-height:24px!important;padding:0!important;border:0!important;background:transparent!important;color:#a52a24!important;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .12s ease,background .12s ease}.workshop-edit-node{right:31px;font-size:.72rem!important}.workshop-collapse-node{left:5px;color:#666!important;font-size:.72rem!important;opacity:1;pointer-events:auto}.workshop-delete-node{right:5px}.workshop-tree-root>button:first-child,.workshop-tree-root .workshop-node-label-input{padding-left:34px;padding-right:58px}.workshop-tree-root .workshop-edit-node{right:5px}.workshop-tree-row:hover .workshop-node-control,.workshop-tree-row:focus-within .workshop-node-control,.workshop-node-control:focus-visible{opacity:1;pointer-events:auto}.workshop-sidebar .workshop-delete-node:hover:not(:disabled),.workshop-sidebar .workshop-delete-node:focus-visible:not(:disabled){background:#fee2e2!important;color:#a52a24!important;box-shadow:none;outline:1px solid #a52a24;transform:translateY(-50%)}.workshop-sidebar .workshop-edit-node:hover:not(:disabled),.workshop-sidebar .workshop-edit-node:focus-visible:not(:disabled){background:#e8eefc!important;color:#1f1f1f!important;box-shadow:none;outline:1px solid #4b6fd9;transform:translateY(-50%)}.workshop-sidebar .workshop-collapse-node:hover:not(:disabled),.workshop-sidebar .workshop-collapse-node:focus-visible:not(:disabled){background:#eee!important;color:#1f1f1f!important;box-shadow:none;outline:1px solid #777;transform:translateY(-50%)}.workshop-color-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%}.workshop-branch-indicator{flex:0 0 auto;color:#777;font-size:.8rem;font-weight:900}.workshop-color-dot.blue{background:#4b6fd9}.workshop-color-dot.red{background:#d94b4b}.workshop-share-controls{flex-wrap:wrap;padding-top:8px;border-top:2px solid #ddd}.workshop-share-controls button{flex:1 1 64px}.workshop-status-message{min-height:1rem;margin:0;color:#238a45;font-size:.78rem;font-weight:800;text-align:center}.workshop-browser-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000061}.workshop-browser{width:min(520px,92vw);max-height:min(620px,86vh);display:flex;flex-direction:column;gap:12px;padding:16px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:7px 7px #1f1f1f}.workshop-browser>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.workshop-browser h2,.workshop-browser p{margin:0}.workshop-browser header span{color:#666;font-size:.78rem;font-weight:800}.workshop-browser-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto}.workshop-browser-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.workshop-browser-row>button:first-child{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;overflow:hidden;text-align:left}.workshop-browser-row>button:first-child strong,.workshop-browser-row>button:first-child span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workshop-browser-row>button:first-child span,.workshop-browser-empty,.workshop-browser-error{color:#666;font-size:.76rem;font-weight:700}.workshop-browser-delete{color:#a52a24!important}.workshop-browser-delete:hover,.workshop-browser-delete:focus-visible{background:#a52a24!important;color:#fff!important}.workshop-browser-error{color:#a52a24}.workshop-import-dialog textarea{width:100%;min-height:190px;resize:vertical;padding:9px 10px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;line-height:1.45}.workshop-import-dialog textarea:disabled{opacity:.6}.workshop-import-help{color:#666;font-size:.82rem;font-weight:700}.workshop-setup-warning>p{color:#444;font-weight:700;line-height:1.45}.workshop-import-actions{display:flex;justify-content:flex-end;gap:8px}.workshop-stage{min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px}.workshop-position-status{font-size:1.1rem;font-weight:900;text-transform:capitalize}.workshop-board .cell{min-width:0;min-height:0;padding:0;border:0;border-radius:0;font:inherit}.workshop-board.editing .cell:hover{box-shadow:inset 0 0 0 3px #f0a020}.workshop-board.read-only .cell{cursor:default}.workshop-help{max-width:540px;margin:0;color:#666;font-size:.85rem;font-weight:700;text-align:center}.lobby-user-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:2px solid #1f1f1f;border-radius:6px;background:#f7f7f7}.tournament-page{min-height:100vh;color:var(--ink, #302c2a);background:#f4efe5}.tournament-topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1rem clamp(1rem,4vw,3rem);background:#f4efe5f0;border-bottom:1px solid rgba(48,44,42,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tournament-topbar>:last-child{justify-self:end}.tournament-topbar>button:first-child{justify-self:start;width:max-content}.tournament-topbar button,.tournament-actions button,.tournament-card button,.tournament-create button,.tournament-confirm button,.tournament-score-editor button,.tournament-placement-overlay button{border:1px solid rgba(48,44,42,.22);border-radius:999px;padding:.65rem 1rem;color:inherit;background:#fffaf0;font:inherit;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.tournament-topbar button:hover,.tournament-actions button:hover,.tournament-card button:hover,.tournament-create button:hover:not(:disabled){box-shadow:0 5px 14px #302c2a29;transform:translateY(-1px)}.tournament-lobby,.tournament-browser{width:min(1100px,calc(100% - 2rem));margin:0 auto;padding:clamp(2rem,6vw,5rem) 0}.tournament-browser{width:min(820px,calc(100% - 2rem))}.tournament-browser-section+.tournament-browser-section{margin-top:2.5rem}.tournament-browser-section>h1,.tournament-browser-section>h2{margin:0 0 1.5rem}.tournament-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem 2rem;align-items:end;margin-bottom:2rem}.tournament-hero h1{margin:0;font-size:clamp(2.2rem,6vw,4.7rem);line-height:.95}.tournament-hero>p:not(.tournament-eyebrow){max-width:680px;white-space:pre-wrap}.tournament-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem}.tournament-countdown{grid-row:1 / span 3;grid-column:2;display:grid;justify-items:end}.tournament-countdown strong{font-size:clamp(1.8rem,4vw,3rem)}.tournament-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.8rem}.tournament-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:1.25rem;align-items:stretch}.tournament-card{padding:1.25rem;border:1px solid rgba(48,44,42,.15);border-radius:24px;background:#fffaf0b3}.tournament-card h2{display:flex;justify-content:space-between;margin:0 0 1rem}.tournament-card summary{cursor:pointer;font-size:1.2rem;font-weight:700}.tournament-player-list{display:grid;gap:.5rem}.tournament-player-card-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1rem}.tournament-player-card-header h2{margin:0}.tournament-player-card-header>div{display:flex;align-items:center;gap:.65rem}.tournament-player-count{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:900;font-variant-numeric:tabular-nums}.tournament-compact-player-list p{margin:0;line-height:1.5}.tournament-players-card{display:flex;flex-direction:column;min-height:0}.tournament-heart-groups{flex:1;min-height:0;display:grid;grid-auto-rows:minmax(0,1fr);gap:.6rem;overflow:hidden}.tournament-heart-group{min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center}.tournament-heart-count{display:flex;align-items:center;gap:.35rem;min-width:72px;padding-right:.8rem;line-height:1}.tournament-heart-count strong,.tournament-heart-count span{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1.45rem;font-weight:900;font-variant-numeric:tabular-nums}.tournament-heart-count span{color:#d94b4b}.tournament-heart-player-names{position:relative;min-width:0;height:100%;display:flex;align-items:center;overflow:hidden;padding-left:.8rem;border-left:2px solid #1f1f1f}.tournament-heart-player-names p{max-height:100%;margin:0;overflow:hidden;line-height:1.5}.tournament-heart-player-names .tournament-name-measure{position:absolute;inset:0 auto auto .8rem;width:calc(100% - .8rem);max-height:none;visibility:hidden;pointer-events:none}.tournament-player{display:grid;grid-template-columns:1fr auto;gap:.15rem .8rem;align-items:center;padding:.75rem;border-radius:14px;background:#ffffff85}.tournament-player span{grid-column:1;color:#302c2aad;font-size:.85rem}.tournament-player button{grid-column:2;grid-row:1 / span 2;padding:.4rem .75rem}.tournament-rule{display:grid;gap:.25rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(48,44,42,.12)}.tournament-rule span{font-size:.9rem;color:#302c2ab8}.tournament-hosts{display:grid;gap:.5rem;margin-top:1.5rem}.tournament-hosts form{display:flex;gap:.5rem}.tournament-hosts input,.tournament-create input,.tournament-create textarea,.tournament-create select{width:100%;box-sizing:border-box;border:1px solid rgba(48,44,42,.2);border-radius:12px;padding:.7rem;background:#fffaf0;font:inherit}.tournament-games-card{margin-top:1.25rem}.tournament-games-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.tournament-games-header h2{margin:0}.tournament-game-filters{display:flex;flex-wrap:wrap;gap:.65rem}.tournament-game-filters label{display:grid;gap:.2rem;color:#555;font-size:.75rem;font-weight:900}.tournament-game-filters select{min-width:112px;padding:.5rem 2rem .5rem .65rem;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-weight:800}.tournament-game-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:.8rem}.tournament-game-row{min-width:0}.tournament-game-summary{height:100%;box-sizing:border-box;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f}.tournament-game-summary.ongoing{background:#fff4bf}.tournament-game-summary.ongoing:hover,.tournament-game-summary.ongoing:focus-visible{background:#fff4bf!important}.tournament-list{display:grid;gap:.7rem}.tournament-list>button{display:flex;justify-content:space-between;gap:1rem;width:100%;padding:1.1rem 1.25rem;border:1px solid rgba(48,44,42,.16);border-radius:18px;color:inherit;background:#fffaf0b8;text-align:left;cursor:pointer}.tournament-list>button:hover{box-shadow:0 8px 22px #302c2a21}.tournament-list span{display:grid;gap:.2rem}.tournament-list span:last-child{text-align:right}.tournament-list small{color:#302c2aa6}.tournament-create-overlay,.tournament-placement-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#26221f75;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.tournament-create{width:min(680px,100%);max-height:calc(100vh - 2rem);overflow:auto;box-sizing:border-box;padding:1.4rem;border-radius:24px;background:#f8f2e7;box-shadow:0 20px 70px #0000003d}.tournament-create header{display:flex;align-items:center;justify-content:space-between}.tournament-create header h2{margin:0}.tournament-create label{display:grid;gap:.35rem;margin-top:.9rem;font-size:.9rem}.tournament-edit-note{margin:12px 0 0;color:#555;font-weight:700}.tournament-create textarea{min-height:100px;resize:vertical}.tournament-create fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .8rem;margin:1.2rem 0;padding:1rem;border:1px solid rgba(48,44,42,.16);border-radius:16px}.tournament-create fieldset>button{justify-self:start;margin-top:.8rem}.tournament-create .tournament-check{display:flex;align-items:center}.tournament-create .tournament-check input{width:auto}.tournament-create .tournament-create-submit{display:block;margin:1.2rem 0 0 auto;background:#302c2a;color:#fffaf0}.tournament-create button:disabled{opacity:.42;cursor:not-allowed}.tournament-create input:disabled,.tournament-create select:disabled{cursor:not-allowed;opacity:.5;background:#e8e5df}.tournament-placement-overlay section{width:min(500px,100%);padding:2rem;border-radius:24px;background:#f8f2e7;text-align:center;box-shadow:0 20px 70px #00000047}.tournament-placement-overlay h2{margin-top:0}@media(max-width:720px){.tournament-hero{grid-template-columns:1fr}.tournament-countdown{grid-row:auto;grid-column:auto;justify-items:start}.tournament-columns{grid-template-columns:1fr}.tournament-heart-groups{flex:none;grid-auto-rows:auto;overflow:visible}.tournament-heart-player-names{min-height:2.25rem;height:auto}.tournament-create fieldset{grid-template-columns:1fr}.tournament-games-header{align-items:stretch;flex-direction:column}}.tournament-page{width:min(92vw,1000px);min-height:calc(100vh - 48px);display:flex;flex-direction:column;gap:18px;color:#1f1f1f;background:transparent}.tournament-topbar{position:sticky;top:4px;display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:12px 14px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:6px 6px #1f1f1f;-webkit-backdrop-filter:none;backdrop-filter:none}.tournament-topbar strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.05rem;font-weight:900}.tournament-topbar button,.tournament-actions button,.tournament-card button,.tournament-create button,.tournament-confirm button,.tournament-placement-overlay button{min-height:38px;padding:7px 11px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-weight:800;box-shadow:none;transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.tournament-topbar button:hover,.tournament-topbar button:focus-visible,.tournament-actions button:hover:not(:disabled),.tournament-actions button:focus-visible:not(:disabled),.tournament-card button:hover:not(:disabled),.tournament-card button:focus-visible:not(:disabled),.tournament-create button:hover:not(:disabled),.tournament-create button:focus-visible:not(:disabled),.tournament-confirm button:hover:not(:disabled),.tournament-confirm button:focus-visible:not(:disabled),.tournament-score-editor button:hover:not(:disabled),.tournament-score-editor button:focus-visible:not(:disabled),.tournament-placement-overlay button:hover:not(:disabled),.tournament-placement-overlay button:focus-visible:not(:disabled){color:#1f1f1f;background:#fff;box-shadow:4px 4px #1f1f1f;outline:none;transform:translate(-2px,-2px)}.tournament-lobby,.tournament-browser{width:100%;margin:0;padding:22px 0 0}.tournament-browser{width:min(760px,100%);align-self:center}.tournament-browser-section>h1,.tournament-browser-section>h2,.tournament-hero h1{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.08}.tournament-eyebrow{color:#555;font-weight:900;letter-spacing:.1em}.tournament-countdown{min-width:180px;padding:12px 14px;border:3px solid #1f1f1f;border-radius:8px;background:#fff4bf;box-shadow:5px 5px #1f1f1f}.tournament-countdown span{color:#555;font-size:.75rem;font-weight:900;text-transform:uppercase}.tournament-countdown strong{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:clamp(1.6rem,4vw,2.35rem);font-variant-numeric:tabular-nums}.tournament-card{padding:14px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:6px 6px #1f1f1f}.tournament-card h2,.tournament-card summary{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-weight:900}.tournament-player{border:2px solid #1f1f1f;border-radius:6px;background:#f7f7f7}.tournament-player span,.tournament-rule span,.tournament-list small{color:#555;font-weight:700}.tournament-player strong{display:flex;align-items:center;gap:8px}.tournament-player-management{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 12px}.tournament-player-actions{grid-column:2;grid-row:1 / span 2;display:flex;gap:6px}.tournament-player .tournament-player-actions button{grid-column:auto;grid-row:auto}.tournament-player .tournament-player-rating{grid-column:auto;padding:2px 6px;border:2px solid #1f1f1f;border-radius:999px;background:#fff;color:#1f1f1f;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:.72rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}.tournament-card h2>span,.tournament-list>button>span:last-child strong{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-variant-numeric:tabular-nums}.tournament-rule{border-top:2px solid #1f1f1f}.tournament-hosts input,.tournament-create input,.tournament-create textarea,.tournament-create select{border:2px solid #1f1f1f;border-radius:6px;background:#fff}.tournament-list>button{border:3px solid #1f1f1f;border-radius:8px;background:#fff;color:#1f1f1f;box-shadow:4px 4px #1f1f1f;font:inherit;transition:transform .12s ease,box-shadow .12s ease}.tournament-list>button:hover,.tournament-list>button:focus-visible{background:#fff;box-shadow:6px 6px #1f1f1f;outline:none;transform:translate(-2px,-2px)}.tournament-list>button strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-weight:900}.tournament-create-overlay,.tournament-placement-overlay{padding:20px;background:#00000059;-webkit-backdrop-filter:none;backdrop-filter:none}.tournament-create,.tournament-placement-overlay section,.tournament-confirm,.tournament-score-editor{border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:8px 8px #1f1f1f}.tournament-placement-overlay section{position:relative}.tournament-placement-overlay .tournament-placement-modal{width:min(430px,calc(100vw - 40px));display:grid;justify-items:center;gap:12px;padding:24px}.tournament-placement-modal h2,.tournament-placement-modal p{margin:0}.tournament-placement-modal p{max-width:340px;color:#555;font-weight:700;line-height:1.4}.tournament-placement-round{padding:4px 8px;border:2px dashed #1f1f1f;border-radius:6px;background:#fff4bf;font-size:.78rem;font-weight:900;text-transform:uppercase}.tournament-placement-matchup{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:2px solid #1f1f1f;border-radius:999px;background:#f7f7f7}.tournament-placement-close{position:absolute;top:10px;right:10px;width:34px;min-height:34px!important;padding:0!important;font-size:1.25rem!important;line-height:1}.tournament-placement-join{margin-top:12px;background:#1f1f1f!important;color:#fff!important;box-shadow:3px 3px #777!important}.tournament-placement-join:hover,.tournament-placement-join:focus-visible{background:#1f1f1f!important;color:#fff!important;box-shadow:5px 5px #777!important}.tournament-create header h2,.tournament-placement-overlay h2,.tournament-confirm h2,.tournament-score-editor h2{font-family:Roboto Slab,Georgia,Times New Roman,serif}.tournament-create fieldset{border:2px solid #1f1f1f;border-radius:8px;background:#f7f7f7}.tournament-create fieldset.tournament-round-locked{opacity:.56;background:#e9e9e9}.tournament-create legend{padding:0 6px;font-family:Roboto Slab,Georgia,Times New Roman,serif;font-weight:900}.tournament-create .tournament-create-submit{background:#1f1f1f;color:#fff;box-shadow:3px 3px #777}.tournament-actions .tournament-stop-button,.tournament-confirm .tournament-stop-confirm,.tournament-actions .tournament-withdraw-button,.tournament-confirm .tournament-withdraw-confirm,.tournament-actions .tournament-delete-button,.tournament-confirm .tournament-delete-confirm{color:#a52a24;border-color:#a52a24}.tournament-actions .tournament-stop-button:hover,.tournament-actions .tournament-stop-button:focus-visible,.tournament-confirm .tournament-stop-confirm:hover,.tournament-confirm .tournament-stop-confirm:focus-visible,.tournament-actions .tournament-withdraw-button:hover,.tournament-actions .tournament-withdraw-button:focus-visible,.tournament-confirm .tournament-withdraw-confirm:hover,.tournament-confirm .tournament-withdraw-confirm:focus-visible,.tournament-actions .tournament-delete-button:hover,.tournament-actions .tournament-delete-button:focus-visible,.tournament-confirm .tournament-delete-confirm:hover:not(:disabled),.tournament-confirm .tournament-delete-confirm:focus-visible:not(:disabled){color:#fff;background:#a52a24;border-color:#1f1f1f;box-shadow:4px 4px #1f1f1f}.tournament-confirm{width:min(430px,calc(100vw - 40px));padding:22px}.tournament-confirm input,.tournament-score-editor input{width:100%;min-width:0;padding:7px 9px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit}.tournament-confirm>input{margin-top:14px}.tournament-delete-name{display:grid;gap:6px;margin-top:16px;color:#555;font-size:.86rem;font-weight:800}.tournament-confirm button:disabled{cursor:not-allowed;opacity:.42}.tournament-score-editor{width:min(560px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow-y:auto;padding:22px}.tournament-score-editor header{display:flex;align-items:center;justify-content:space-between;gap:12px}.tournament-score-editor h2,.tournament-score-editor p{margin:0}.tournament-score-editor>p{margin-top:8px;color:#555;font-weight:700}.tournament-score-list{display:grid;gap:8px;margin-top:16px}.tournament-participants-modal header>div{display:flex;align-items:baseline;gap:10px}.tournament-participants-modal header span{color:#555;font-weight:900;font-variant-numeric:tabular-nums}.tournament-all-players-list{margin-top:16px}.tournament-score-row{display:grid;grid-template-columns:minmax(120px,1fr) 100px;align-items:end;gap:8px;padding:9px;border:2px solid #1f1f1f;border-radius:6px;background:#f7f7f7}.tournament-score-row strong{align-self:center;overflow:hidden;text-overflow:ellipsis}.tournament-score-row label{display:grid;gap:3px;color:#555;font-size:.72rem;font-weight:900;text-transform:uppercase}.tournament-confirm h2{margin:0 0 10px}.tournament-confirm p{margin:0;color:#444;font-weight:700;line-height:1.45}.tournament-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media(max-width:720px){.tournament-page{width:min(94vw,1000px)}.tournament-topbar{grid-template-columns:auto 1fr auto}.tournament-countdown{justify-items:start}.tournament-score-row{grid-template-columns:1fr 90px}}.lobby-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.game-id-pill,.color-note,.clock-row{font-weight:800}.game-id-pill{padding:4px 8px;border:2px solid #1f1f1f;border-radius:999px;background:#fff}.color-note{margin:-8px 0 0;color:#555}.clock-row{display:flex;gap:10px}.clock-row span{min-width:90px;padding:6px 10px;border:2px solid currentColor;border-radius:6px;background:#fff;text-align:center}.clock-blue{color:#4b6fd9}.clock-red{color:#d94b4b}.clock-blue.active{background:#4b6fd9;color:#fff}.clock-red.active{background:#d94b4b;color:#fff}@media(max-width:900px){.workshop-page{min-height:0}.workshop-header{grid-template-columns:auto 1fr}.workshop-header-actions{grid-column:1 / -1;justify-content:center;flex-wrap:wrap}.workshop-layout{display:flex;flex-direction:column-reverse;align-items:stretch}.workshop-sidebar{width:100%;height:auto;min-height:520px}.game-play-area{flex-direction:column;align-items:center;width:min(96vw,540px)}.live-side-rail,.live-side-rail.expand-chat,.live-side-rail.expand-moves{width:min(90vw,540px);height:auto;display:flex;flex-direction:column;gap:16px}.live-side-rail .side-rail-divider{display:none}.live-side-rail .live-moves-panel,.live-side-rail .live-chat-panel{flex:none;height:min(52vw,300px)}.history-ledger{width:min(90vw,540px);height:min(70vh,420px)}}@media(max-width:720px){.lobby-panel,.lobby-panel.expanded{grid-template-columns:1fr}.player-box,.join-box,.option-toggle,.lobby-user-row{flex-direction:column;align-items:stretch}.option-selector,.lobby-actions{justify-content:stretch}.invite-actions{grid-template-columns:1fr}.option-selector button,.lobby-actions button{flex:1}}.recovery-modal h2{margin:0;font-size:1.35rem;line-height:1.15;text-align:center}.recovery-modal p{margin:0;color:#444;font-weight:700;text-align:center}.recovery-close-btn{background:#fff}.reconnect-banner{position:fixed;top:10px;left:50%;z-index:80;padding:8px 14px;border:2px solid #1f1f1f;border-radius:999px;background:#fff;box-shadow:4px 4px #1f1f1f;color:#1f1f1f;font-weight:900;transform:translate(-50%)}.recovery-error{color:#b42318!important}.history-scrubber{width:min(92vw,620px);display:grid;grid-template-columns:1fr;gap:8px;padding:12px 14px;border:3px solid #1f1f1f;border-radius:8px;background:#fff;box-shadow:5px 5px #1f1f1f}.history-scrubber-label,.history-move-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800}.history-move-label{justify-content:center;color:#555;font-size:.92rem}.history-scrubber input[type=range]{width:100%;accent-color:#1f1f1f}.rules-help-button{position:fixed;top:18px;right:18px;z-index:20;width:42px;height:42px;border:2px solid #1f1f1f;border-radius:50%;background:#fff;color:#1f1f1f;box-shadow:3px 3px #1f1f1f;font:inherit;font-size:1.25rem;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.rules-help-button:hover,.rules-help-button:focus-visible{box-shadow:5px 5px #1f1f1f;outline:none;transform:translate(-2px,-2px)}.rules-modal-overlay{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:20px;background:#0000007a}.rules-modal{width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;padding:22px;border:3px solid #1f1f1f;border-radius:10px;background:#fff;box-shadow:9px 9px #1f1f1f}.rules-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.rules-modal-header h2{margin:2px 0 0;font-size:1.75rem;line-height:1}.rules-kicker{color:#555;font-size:.72rem;font-weight:900;text-transform:uppercase}.rules-modal-header button{flex:0 0 auto;width:38px;height:38px;border:2px solid #1f1f1f;border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-size:1.35rem;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.rules-modal-header button:hover,.rules-modal-header button:focus-visible{box-shadow:4px 4px #1f1f1f;outline:none;transform:translate(-2px,-2px)}.rules-panes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.rules-pane{min-width:0;display:grid;grid-template-rows:1fr auto;gap:16px;padding:16px;border:2px solid #1f1f1f;border-radius:8px;background:#f7f7f7}.rules-pane p{min-height:2.8em;margin:0;font-size:.98rem;font-weight:900;line-height:1.35;text-align:center}.rules-grid{position:relative;width:min(100%,220px);aspect-ratio:1;align-self:center;justify-self:center;display:grid;gap:3px;padding:3px;border:2px solid #333;border-radius:5px;background:#333;overflow:hidden}.rules-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.rules-cell{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;background:#fff}.rules-piece,.rules-zone-piece{display:flex;align-items:center;justify-content:center;width:82%;height:82%}.rules-movement-board{position:relative;grid-column:auto;grid-row:auto;width:min(100%,220px);aspect-ratio:1;align-self:center;justify-self:center;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);overflow:hidden}.rules-movement-board .cell{cursor:default}.rules-movement-board .cell:hover{background:#fff}.rules-moving-paper{position:absolute;left:calc(2px + var(--rules-column) * ((100% - 4px) / 3));top:calc(2px + var(--rules-row) * ((100% - 4px) / 3));z-index:2;display:flex;align-items:center;justify-content:center;width:calc((100% - 8px) / 3);height:calc((100% - 8px) / 3);padding:5%;transition:left .48s ease-in-out,top .48s ease-in-out;pointer-events:none}.rules-real-board-wrap{position:relative;width:min(100%,220px);align-self:center;justify-self:center}.rules-real-board{width:100%;aspect-ratio:3 / 2;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.rules-real-board .cell{cursor:default}.rules-real-board .cell:hover{background:#fff}.rules-real-board .rules-animation-source .piece{opacity:0}.rules-real-board .rules-victim-return .piece{animation:rules-victim-return .55s ease-out both}.rules-real-board-wrap .rules-returning-piece{position:absolute;z-index:91;display:flex;align-items:center;justify-content:center;pointer-events:none;transform:translate(0);transition:transform .55s ease-in-out}.rules-real-board-wrap .rules-returning-piece.active{transform:translate(var(--return-x),var(--return-y))}.rules-real-board-wrap .moving-piece-overlay,.rules-real-board-wrap .captured-piece-overlay{position:absolute}.rules-real-board-wrap .moving-piece-overlay.active.capture-paper-rock,.rules-real-board-wrap .moving-piece-overlay.active.capture-scissors-paper,.rules-real-board-wrap .moving-piece-overlay.active.capture-rock-scissors{animation-duration:.6s}.rules-real-board-wrap .captured-paper-rock.active .piece,.rules-real-board-wrap .captured-scissors-paper.active .piece{animation-duration:.48s}.rules-real-board-wrap .captured-rock-scissors.active .piece{animation-delay:.25s;animation-duration:.3s}.rules-red-zone{background:#ea8080}.rules-zone-piece{position:absolute;left:36%;top:36%;width:28%;height:28%;z-index:2}.rules-zone-piece-moving{animation:rules-zone-win 3s ease-in-out infinite}.rules-zone-piece-reset{opacity:0;animation:rules-zone-reset 3s ease-in-out infinite}.rules-confetti{position:absolute;z-index:3;width:1px;height:1px;pointer-events:none}.rules-confetti-zone{top:17%;right:17%}.rules-confetti-left{top:50%;left:17%}.rules-confetti-right{right:17%;bottom:17%}.rules-confetti i{--confetti-angle: calc(var(--confetti-index) * 51deg);position:absolute;width:4px;height:12px;border-radius:2px;background:#4b6fd9;opacity:0;transform:rotate(var(--confetti-angle)) translateY(0) scale(.5);animation:rules-confetti-pop 3s ease-out infinite}.rules-confetti i:nth-child(3n+2){background:#8aa4f0}.rules-confetti i:nth-child(3n){background:#2749ad}@keyframes rules-victim-return{0%{opacity:0}to{opacity:1}}@keyframes rules-dot-pulse{0%,to{opacity:.35;transform:scale(.75)}50%{opacity:1;transform:scale(1.18)}}@keyframes rules-zone-win{0%,18%{opacity:1;transform:translate(0) scale(1)}52%,84%{opacity:1;transform:translate(112%,-112%) scale(1.06)}94%,to{opacity:0;transform:translate(112%,-112%) scale(1.06)}}@keyframes rules-zone-reset{0%,84%{opacity:0}94%,to{opacity:1}}@keyframes rules-confetti-pop{0%,49%{opacity:0;transform:rotate(var(--confetti-angle)) translateY(0) scale(.5)}55%{opacity:1}72%,to{opacity:0;transform:rotate(var(--confetti-angle)) translateY(-42px) scale(1)}}@media(max-width:760px){.rules-panes{grid-template-columns:1fr}.rules-pane{grid-template-columns:minmax(130px,180px) 1fr;grid-template-rows:1fr;align-items:center}.rules-pane p{min-height:0;text-align:left}.rules-grid,.rules-real-board-wrap{width:100%}}@media(max-width:480px){.rules-modal-overlay{padding:10px}.rules-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:15px;box-shadow:5px 5px #1f1f1f}.rules-pane{grid-template-columns:1fr}.rules-pane p{text-align:center}.admin-modal-overlay{padding:10px}.admin-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:15px;box-shadow:5px 5px #1f1f1f}.admin-user-row,.admin-blocklist-row,.past-game-admin-row{grid-template-columns:1fr}.admin-row-actions button,.past-game-delete-button{flex:1}}@media(prefers-reduced-motion:reduce){.rules-modal *{animation-play-state:paused!important}}
