:root{color:#1f2421;background:#f7f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px;overflow:hidden;background:radial-gradient(circle at 50% 10%,rgba(215,160,47,.14),transparent 32%),linear-gradient(180deg,rgba(36,90,82,.13),transparent 260px),#f7f5ef}button,input,select{font:inherit}button{min-height:40px;border:1px solid #1f2421;border-radius:8px;background:#fffdf7;color:#1f2421;cursor:pointer;font-size:.9rem;font-weight:850;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.42}.primaryButton{background:#245a52;border-color:#245a52;color:#fff}.quietButton{justify-self:center;min-height:34px;border-color:transparent;background:transparent;color:#68716c;font-size:.82rem;padding:0 10px;text-decoration:underline;text-underline-offset:3px}.leaveButton{min-height:38px;border-color:#b33f3a57;background:#fff7f4d1;color:#9f342f;font-size:.78rem;padding:0 10px}.refreshButton{min-height:38px;border-color:#245a5252;background:#fffdf7bd;color:#245a52;font-size:.78rem;padding:0 10px}.refreshButton.available{border-color:#d7a02fd1;background:#fff7d8;color:#7c5a16}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,9vw,3.1rem);line-height:.9}h2{font-size:1.08rem;line-height:1.05}.eyebrow{color:#b33f3a;font-size:.68rem;font-weight:950;letter-spacing:0;text-transform:uppercase}.statusLine,.promptStats span,.playerSeat .playerStatus,.scorePreview span,.topMeta span,.miniJoker span{color:#68716c}.entryShell,.gameShell{width:min(100%,960px);height:100dvh;margin:0 auto}.entryShell{display:grid;place-items:center;padding:16px}.entryPanel{display:grid;width:min(100%,390px);gap:14px;border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7eb;padding:18px}.field{display:grid;gap:7px;color:#68716c;font-size:.76rem;font-weight:950;text-transform:uppercase}.field input,.field select{width:100%;min-height:46px;border:2px solid rgba(31,36,33,.18);border-radius:8px;background:#fff;color:#1f2421;font-size:1rem;font-weight:800;outline:none;padding:0 12px;text-transform:none}.field input:focus,.field select:focus{border-color:#245a52}.compactField input{text-transform:uppercase}.soloBotPanel{display:grid;grid-template-columns:minmax(0,1fr) 132px;align-items:end;gap:10px;border:2px solid rgba(36,90,82,.16);border-radius:8px;background:#245a520d;padding:10px}.joinRow{display:grid;grid-template-columns:1fr 132px;align-items:end;gap:10px;border:2px solid rgba(31,36,33,.12);border-radius:8px;background:#ffffff73;padding:10px}.entryError{border-radius:8px;background:#fff7f4;color:#b33f3a;font-weight:850;line-height:1.25;padding:10px 12px}.gameShell{display:grid;position:relative;grid-template-rows:auto auto minmax(0,1fr);gap:8px;overflow:hidden;padding:10px}.soloBotFrame{position:fixed;right:0;bottom:0;width:1px;height:1px;border:0;opacity:0;pointer-events:none}.topBar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:50px}.topMeta{display:grid;justify-items:end;gap:2px;border:1px solid rgba(36,90,82,.35);border-radius:8px;background:#fffdf79e;color:#245a52;font-size:.8rem;font-weight:950;padding:7px 9px}.topActions{display:flex;align-items:center;flex:0 0 auto;gap:7px}.helpButton{display:grid;place-items:center;width:34px;min-width:34px;min-height:34px;border-color:#245a5247;border-radius:999px;background:#fffdf77a;color:#245a52b8;font-size:1.18rem;font-weight:950;line-height:1;padding:0}.menuButton{display:grid;align-content:center;justify-items:center;gap:4px;width:42px;min-width:42px;min-height:42px;border-color:#245a5247;border-radius:8px;background:#fffdf7b3;padding:0}.menuButton span{display:block;width:18px;height:2px;border-radius:999px;background:#245a52}.helpButton:focus-visible,.menuButton:focus-visible,.helpCloseButton:focus-visible,.helpTabs button:focus-visible,.helpToggleRow input:focus-visible{outline:3px solid rgba(215,160,47,.52);outline-offset:2px}.helpOverlay{position:fixed;z-index:60;top:0;right:0;bottom:0;left:0}.helpBackdrop{position:absolute;top:0;right:min(90vw,620px);bottom:0;left:0;min-height:0;border:0;border-radius:0;background:#1f242138;padding:0}.helpPanel{position:absolute;top:0;right:0;display:flex;flex-direction:column;width:min(90vw,620px);max-width:calc(100vw - 24px);height:100dvh;gap:12px;overflow-y:auto;overscroll-behavior:contain;border-left:2px solid #1f2421;background:#fffdf7;box-shadow:-18px 0 46px #1f24213d;padding:14px;animation:help-slide-in .26s cubic-bezier(.16,.82,.22,1) both;outline:none}.helpHeader{display:flex;align-items:start;justify-content:space-between;gap:12px}.helpHeader h2{font-size:1.42rem}.helpCloseButton{display:grid;place-items:center;width:38px;min-width:38px;min-height:38px;border-radius:999px;padding:0;font-size:1.42rem;line-height:1}.helpIntro,.helpSection p,.menuSection,.helpList{color:#4e5751;font-size:.92rem;font-weight:750;line-height:1.28}.menuSection{display:grid;align-content:start;flex:0 0 auto;gap:10px;min-height:0;border:2px solid rgba(31,36,33,.1);border-radius:8px;background:#ffffff85;padding:11px}.menuSection h3{color:#1f2421;font-size:1rem}.helpMenuSection{overflow:visible}.menuStatusGrid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;align-items:center;border-radius:8px;background:#245a520f;padding:9px}.menuStatusGrid span{color:#68716c;font-size:.76rem;font-weight:900;text-transform:uppercase}.menuStatusGrid strong{color:#245a52;font-size:.86rem;overflow-wrap:anywhere;text-align:right}.menuActionGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.menuActionGrid .refreshButton,.menuActionGrid .leaveButton{width:100%;min-height:42px;font-size:.86rem}.helpToggleRow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.helpToggleRow label{display:flex;align-items:center;gap:8px;min-width:0;border:2px solid rgba(36,90,82,.16);border-radius:8px;background:#245a520d;color:#1f2421;font-size:.82rem;font-weight:900;line-height:1.1;padding:9px}.helpToggleRow input{flex:0 0 auto;width:18px;height:18px;accent-color:#245a52}.helpTabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;border-radius:8px;background:#1f242114;padding:4px}.helpTabs button{min-height:34px;border-color:transparent;background:transparent;color:#68716c;padding:0 8px}.helpTabs button.active{background:#fffdf7;border-color:#1f242129;color:#1f2421;box-shadow:0 5px 12px #1f242114}.helpContent{display:grid;align-content:start;min-height:0;gap:12px;overflow:visible;padding:2px 2px 12px}.helpSection{display:grid;gap:8px;border:2px solid rgba(31,36,33,.1);border-radius:8px;background:#ffffff85;padding:11px}.helpSection h3{font-size:1rem}.helpList{margin:0;padding-left:20px}.helpList li+li{margin-top:5px}.helpDemoRow,.helpCardRow{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.helpCardRow{grid-template-columns:1fr 1fr}.helpMiniJoker{min-height:86px}.helpDiceDemo{display:grid;grid-template-columns:repeat(3,52px);gap:7px}.helpDiceDemo .dieButton{min-height:52px}.helpScoreGrid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;align-items:center}.helpScoreGrid span{color:#4e5751;font-size:.86rem;font-weight:750;line-height:1.12}.helpScoreGrid strong{font-size:.9rem;text-align:right}@keyframes help-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.jokerBar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:6px;min-height:0;overflow:visible;padding-bottom:14px;padding-top:10px}.jokerSlotWrap{display:flex;position:relative;min-width:0;overflow:visible}.jokerSlotLabel{position:absolute;top:-14px;left:5px;z-index:2;border:0;background:transparent;color:#68716cc7;font-size:.64rem;font-weight:950;line-height:1;padding:0;text-transform:uppercase}.miniJoker{position:relative;display:grid;flex:1;align-content:start;gap:4px;min-height:0;min-width:0;border:2px solid #1f2421;border-radius:8px;background:#fffdf7;padding:8px 28px 8px 8px}.miniJoker.activated{animation:joker-card-shake .44s ease both}.emptyJokerSlot{border-style:dashed;border-color:#1f242147;background:#fffdf785;color:#1f242194}.emptyJokerSlot strong,.emptyJokerSlot p{color:inherit}.miniJoker.locked{padding-bottom:18px}.lockBadge{position:absolute;right:6px;bottom:5px;display:grid;place-items:center;width:22px;height:18px;border:0;border-radius:5px 5px 6px 6px;background:#111611;color:#fffdf7;font-size:.62rem;font-weight:950;line-height:1;box-shadow:inset 0 -2px #ffffff1a,0 1px #1f242138}.lockBadge:before{content:"";position:absolute;left:50%;top:-10px;width:13px;height:14px;border:4px solid #111611;border-bottom:0;border-radius:999px 999px 3px 3px;transform:translate(-50%)}.lockBadge span{position:relative;z-index:1;display:block;min-width:1ch;color:#fffdf7;font-size:inherit;font-weight:1000;line-height:1;text-align:center}.turnLockSeatBadge,.turnLockInventoryChip{position:relative;display:grid;place-items:center;border:0;border-radius:5px 5px 7px 7px;background:#111611;color:#fffdf7;font-weight:1000;line-height:1}.turnLockSeatBadge:before,.turnLockInventoryChip:before{content:"";position:absolute;left:50%;border:solid #111611;border-bottom:0;border-radius:999px 999px 3px 3px;transform:translate(-50%)}.turnLockSeatBadge span,.turnLockInventoryChip span{position:relative;z-index:1;color:#fffdf7;font-weight:inherit}.turnLockSeatBadge{position:absolute;top:10px;right:6px;width:17px;height:13px;font-size:.5rem;box-shadow:inset 0 -2px #ffffff1a,0 1px #1f242138}.turnLockSeatBadge:before{top:-7px;width:10px;height:10px;border-width:3px}.drawnJokerCard .lockBadge{width:28px;height:23px;border-radius:6px 6px 7px 7px;font-size:.78rem}.jokerDecisionStack:not(.packDecisionStack) .drawnJokerCard .lockBadge{top:24px;right:auto;bottom:auto;left:18px}.drawnJokerCard .lockBadge:before{top:-13px;width:17px;height:17px;border-width:5px}.drawnJokerCard.revealing{pointer-events:none;animation:joker-card-reveal 1s cubic-bezier(.16,.82,.22,1) both}.miniJoker.negative,.drawnJokerCard.negative{border-color:#b33f3ac7}.drawnJokerCard.negative .playerNameTab,.miniJoker.negative p,.drawnJokerCard.negative p{color:#9f342f}.playerSeat strong,.promptFooter,.scorePreview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.miniJoker strong{overflow-wrap:anywhere;font-size:.78rem;line-height:1.05;white-space:normal}.miniJoker p{overflow-wrap:anywhere;color:#4e5751;font-size:.66rem;line-height:1.15;white-space:normal}.qualifierChip{position:absolute;top:4px;right:6px;display:grid;place-items:center;width:20px;height:20px;border:0;background:transparent;color:#1f2421;font-size:1rem;font-weight:950;line-height:1}.drawnJokerMeta{display:flex;justify-content:center;min-height:20px}.drawnJokerMeta .qualifierChip{position:static}.qualifier-red,.qualifier-hearts,.qualifier-diamonds,.suit-hearts,.suit-diamonds{color:#c82333}.qualifier-black,.qualifier-clubs,.qualifier-spades,.suit-clubs,.suit-spades{color:#151917}.qualifier-red,.qualifier-black{width:15px;height:15px;border-radius:999px;color:transparent}.qualifier-red{background:#b33f3a}.qualifier-black{background:#1f2421}.tableBoard{position:relative;min-height:0;overflow:visible;border:2px solid rgba(31,36,33,.14);border-radius:8px;background:linear-gradient(145deg,#245a521f,#d7a02f1a),#e7efe9}.tableFelt{position:absolute;top:70px;right:24px;bottom:74px;left:24px;border:2px dashed rgba(36,90,82,.28);border-radius:999px;pointer-events:none}.playerSeat{position:absolute;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:8px;row-gap:2px;width:min(39%,168px);min-height:58px;border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7f2;box-shadow:0 8px 20px #1f242114;padding:9px 10px}.turnScorePileAnchor,.turnScorePile{position:absolute;left:50%;top:51%;--pile-offset-x: -124px;--pile-offset-y: -112px;pointer-events:none;transform:translate(calc(-50% + var(--pile-offset-x)),calc(-50% + var(--pile-offset-y)))}.turnScorePileAnchor{z-index:0;width:1px;height:1px;opacity:0;pointer-events:none}.turnScorePile{z-index:5;display:grid;min-width:74px;justify-items:center;gap:1px;border:2px solid rgba(36,90,82,.36);border-radius:999px;background:#fffdf7f5;box-shadow:0 10px 22px #1f242124;color:#245a52;padding:7px 11px;pointer-events:none}.turnScorePile span{color:#68716c;font-size:.55rem;font-weight:950;line-height:1;text-transform:uppercase}.turnScorePile strong{font-size:1rem;font-weight:1000;line-height:1}.turnScorePile.bank{animation:turn-pile-bank .68s ease both;border-color:#d7a02fb8}.turnScorePile.farkle{animation:turn-pile-farkle-center 1.6s cubic-bezier(.18,.82,.22,1) both;border-color:#b33f3ac7;color:#b33f3a}.scoreFlightLayer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;overflow:visible;pointer-events:none}.jokerMoveLayer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;overflow:visible;pointer-events:none}.jokerMoveClone{position:absolute;left:0;top:0;display:grid;width:var(--joker-move-width);min-height:var(--joker-move-height);align-content:center;gap:7px;border:2px solid #1f2421;border-radius:8px;background:#fffdf7fa;box-shadow:0 26px 58px #1f24214d;padding:18px 16px 16px;text-align:center;transform-origin:top left;animation:joker-move-place .76s cubic-bezier(.16,.82,.22,1) both;will-change:transform,opacity}.jokerMoveClone.negative{border-color:#b33f3ac7}.jokerMoveClone.discarding{animation-name:joker-move-discard}.jokerMoveClone>span{color:#68716c;font-size:.72rem;font-weight:950;line-height:1;text-transform:uppercase}.jokerMoveClone strong{overflow:hidden;font-size:1.18rem;font-weight:1000;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}.jokerMoveClone p{color:#4e5751;font-size:.92rem;font-weight:850;line-height:1.18}.jokerMoveClone .qualifierChip{top:12px;right:12px}.scoreFlight{position:absolute;left:0;top:0;display:inline-grid;place-items:center;min-width:58px;border:3px solid rgba(36,90,82,.45);border-radius:999px;background:#fffdf7fa;box-shadow:0 10px 22px #1f242133;color:#245a52;font-size:1.18rem;font-weight:1000;line-height:1;padding:7px 11px;pointer-events:none;transform:translate3d(var(--start-x),var(--start-y),0) translate(-50%,-50%) rotate(0) scale(.78);animation:score-flight-arc 1.42s cubic-bezier(.18,.82,.22,1) both;will-change:transform,opacity}.jokerScoreFlight{border-color:#245a5280;color:#245a52}.baseScoreFlight{color:#245a52}.bankScoreFlight{border-color:#d7a02fb3;color:#245a52}.negativeScoreFlight{border-color:#b33f3aa3;color:#b33f3a}.positiveScoreFlight{color:#245a52}.suitBurst{position:absolute;left:0;top:0;display:grid;place-items:center;width:46px;height:46px;border:3px solid currentColor;border-radius:999px;background:#fffdf7f5;box-shadow:0 12px 24px #1f24212e;font-size:1.5rem;font-weight:1000;transform:translate3d(var(--burst-x),var(--burst-y),0) translate(-50%,-50%) scale(.65);animation:suit-pop 1.6s cubic-bezier(.18,.82,.22,1) both}.farkleBurst,.farkleShard,.farkleLabel{position:absolute;left:0;top:0}.farkleBurst{transform:translate3d(var(--burst-x),var(--burst-y),0) translate(-50%,-50%)}.farkleShard{display:inline-grid;place-items:center;min-width:92px;border:3px solid rgba(179,63,58,.64);border-radius:999px;background:#fffdf7fa;box-shadow:0 10px 22px #1f242133;color:#b33f3a;font-size:1.42rem;font-weight:1000;line-height:1;padding:10px 15px}.farkleShard.left{animation:farkle-rip-left 2.2s cubic-bezier(.18,.72,.18,1) both;clip-path:inset(0 50% 0 0)}.farkleShard.right{animation:farkle-rip-right 2.2s cubic-bezier(.18,.72,.18,1) both;clip-path:inset(0 0 0 50%)}.farkleLabel{color:#b33f3a;font-size:.92rem;font-weight:1000;letter-spacing:0;text-transform:uppercase;transform:translate(-50%,-190%);animation:farkle-label 1.4s ease both}@keyframes score-flight-arc{0%{opacity:0;transform:translate3d(var(--start-x),var(--start-y),0) translate(-50%,-50%) rotate(0) scale(.78)}12%{opacity:1;transform:translate3d(var(--start-x),var(--start-y),0) translate(-50%,-50%) rotate(0) scale(1.08)}55%{opacity:1;transform:translate3d(var(--mid-x),var(--mid-y),0) translate(-50%,-50%) rotate(var(--mid-rotation)) scale(1.18)}82%{opacity:1}to{opacity:0;transform:translate3d(var(--end-x),var(--end-y),0) translate(-50%,-50%) rotate(var(--end-rotation)) scale(.92)}}@keyframes joker-move-place{0%{opacity:.98;transform:translate3d(var(--joker-move-start-x),var(--joker-move-start-y),0) rotate(0) scale(1)}58%{opacity:1;transform:translate3d(var(--joker-move-mid-x),var(--joker-move-mid-y),0) rotate(var(--joker-move-mid-rotation, 2deg)) scale(1.02)}to{opacity:.12;transform:translate3d(var(--joker-move-end-x),var(--joker-move-end-y),0) rotate(var(--joker-move-rotation)) scale(var(--joker-move-scale-x),var(--joker-move-scale-y))}}@keyframes joker-move-discard{0%{opacity:.98;transform:translate3d(var(--joker-move-start-x),var(--joker-move-start-y),0) rotate(0) scale(1)}to{opacity:0;transform:translate3d(var(--joker-move-end-x),var(--joker-move-end-y),0) rotate(var(--joker-move-rotation)) scale(var(--joker-move-scale-x),var(--joker-move-scale-y))}}@keyframes suit-pop{0%{opacity:0;transform:translate3d(var(--burst-x),var(--burst-y),0) translate(-50%,-30%) scale(.5) rotate(-8deg)}22%{opacity:1;transform:translate3d(var(--burst-x),var(--burst-y),0) translate(-50%,-58%) scale(1.18) rotate(5deg)}70%{opacity:1;transform:translate3d(var(--burst-x),var(--burst-y),0) translate(-50%,-72%) scale(1) rotate(-2deg)}to{opacity:0;transform:translate3d(var(--burst-x),var(--burst-y),0) translate(-50%,-100%) scale(.8) rotate(10deg)}}@keyframes turn-pile-bank{0%,to{transform:translate(calc(-50% + var(--pile-offset-x)),calc(-50% + var(--pile-offset-y))) scale(1)}48%{transform:translate(calc(-50% + var(--pile-offset-x)),calc(-50% + var(--pile-offset-y))) scale(1.08)}}@keyframes turn-pile-farkle-center{0%{transform:translate(calc(-50% + var(--pile-offset-x)),calc(-50% + var(--pile-offset-y))) rotate(0) scale(1)}18%{transform:translate(calc(-50% + var(--pile-offset-x) - 3px),calc(-50% + var(--pile-offset-y))) rotate(-2deg) scale(1.04)}38%{transform:translate(calc(-50% + var(--pile-offset-x) + 3px),calc(-50% + var(--pile-offset-y))) rotate(2deg) scale(1.04)}82%{transform:translate(-50%,-50%) rotate(-1deg) scale(1.42)}to{transform:translate(-50%,-50%) rotate(0) scale(1.5)}}@keyframes farkle-rip-left{0%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1.16)}34%{opacity:1;transform:translate(calc(-50% - 12px),calc(-50% - 4px)) rotate(-8deg) scale(1.18)}to{opacity:0;transform:translate(calc(-50% - 70px),calc(-50% + 142px)) rotate(-28deg) scale(.72)}}@keyframes farkle-rip-right{0%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1.16)}34%{opacity:1;transform:translate(calc(-50% + 12px),calc(-50% - 4px)) rotate(8deg) scale(1.18)}to{opacity:0;transform:translate(calc(-50% + 70px),calc(-50% + 148px)) rotate(28deg) scale(.72)}}@keyframes farkle-label{0%{opacity:0;transform:translate(-50%,-150%) scale(.88)}18%,68%{opacity:1;transform:translate(-50%,-190%) scale(1)}to{opacity:0;transform:translate(-50%,-230%) scale(.94)}}@keyframes joker-card-shake{0%,to{transform:translate(0) rotate(0)}18%{transform:translate(-2px) rotate(-1deg)}38%{transform:translate(3px) rotate(1.2deg)}58%{transform:translate(-2px) rotate(-.8deg)}78%{transform:translate(1px) rotate(.5deg)}}@keyframes joker-card-figure-eight{0%,to{transform:translate(0) rotate(0)}6.25%{transform:translate(2.8px,2px) rotate(.28deg)}12.5%{transform:translate(5px,2.8px) rotate(.52deg)}18.75%{transform:translate(6.6px,2px) rotate(.72deg)}25%{transform:translate(7.2px) rotate(.85deg)}31.25%{transform:translate(6.6px,-2px) rotate(.72deg)}37.5%{transform:translate(5px,-2.8px) rotate(.52deg)}43.75%{transform:translate(2.8px,-2px) rotate(.28deg)}50%{transform:translate(0) rotate(0)}56.25%{transform:translate(-2.8px,2px) rotate(-.28deg)}62.5%{transform:translate(-5px,2.8px) rotate(-.52deg)}68.75%{transform:translate(-6.6px,2px) rotate(-.72deg)}75%{transform:translate(-7.2px) rotate(-.85deg)}81.25%{transform:translate(-6.6px,-2px) rotate(-.72deg)}87.5%{transform:translate(-5px,-2.8px) rotate(-.52deg)}93.75%{transform:translate(-2.8px,-2px) rotate(-.28deg)}}@keyframes turn-lock-chip-jiggle{0%,74%,to{transform:translate(var(--turn-lock-drag-x, 0),var(--turn-lock-drag-y, 0)) rotate(0)}78%{transform:translate(var(--turn-lock-drag-x, 0),var(--turn-lock-drag-y, 0)) rotate(-3deg)}82%{transform:translate(var(--turn-lock-drag-x, 0),var(--turn-lock-drag-y, 0)) rotate(3deg)}86%{transform:translate(var(--turn-lock-drag-x, 0),var(--turn-lock-drag-y, 0)) rotate(-2deg)}90%{transform:translate(var(--turn-lock-drag-x, 0),var(--turn-lock-drag-y, 0)) rotate(1.2deg)}}@keyframes turn-lock-chip-enter{0%{opacity:0;transform:translateZ(0) scale(.94)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes turn-lock-clone-land{0%,72%{opacity:1}to{opacity:0}}@keyframes turn-lock-move{0%{opacity:0;transform:translate(calc(var(--turn-lock-move-start-x) - 17px),calc(var(--turn-lock-move-start-y) - 17px)) rotate(-4deg) scale(.78)}14%{opacity:1}62%{opacity:1;transform:translate(calc(var(--turn-lock-move-mid-x) - 17px),calc(var(--turn-lock-move-mid-y) - 17px)) rotate(7deg) scale(1.04)}to{opacity:0;transform:translate(calc(var(--turn-lock-move-end-x) - 17px),calc(var(--turn-lock-move-end-y) - 17px)) rotate(0) scale(.68)}}@keyframes joker-card-reveal{0%{opacity:0;transform:translateY(-28px) rotateX(72deg) scale(.86)}48%{opacity:1;transform:translateY(4px) rotateX(0) scale(1.06)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}@keyframes player-score-pop{0%{color:#245a52;transform:scale(1)}36%{color:#d7a02f;transform:scale(1.28)}to{color:#1f2421;transform:scale(1)}}.playerSeat.active{border-color:#d7a02f;box-shadow:0 0 0 3px #d7a02f3d}.playerSeat.me{background:#fff}.playerSeat.disconnected{border-color:#1f242124;color:#68716c;opacity:.64}.playerSeat .playerName{grid-column:1 / -1;min-width:0}.playerSeat .playerMetaLine{display:flex;grid-column:1;grid-row:2;align-items:center;min-width:0;gap:4px}.playerSeat .playerName{font-size:.9rem;line-height:1.05}.playerSeat .playerStatus{font-size:.7rem;font-weight:850;text-transform:uppercase}.playerSeat .playerScore{grid-column:2;grid-row:2;font-size:1.03rem;line-height:1;align-self:center}.playerSeat.rightSide{grid-template-columns:auto minmax(0,1fr) auto}.playerSeat.rightSide .playerName{grid-column:2 / -1;justify-self:end;text-align:right}.playerSeat.rightSide .playerMetaLine{grid-column:2 / -1;flex-direction:row-reverse;justify-content:flex-start}.playerSeat.rightSide .playerScore{grid-column:1;justify-self:start}.playerSeat.rightSide .turnLockSeatBadge{right:auto;left:6px}.playerSeat.scorePulse .playerScore{animation:player-score-pop .62s cubic-bezier(.18,.82,.22,1) both}.helpDemoRow .helpPlayerSeat{position:static;z-index:auto;width:min(100%,214px);transform:none}.helpDemoRow .helpPlayerSeat .playerStatus{font-size:.64rem}.suitBadge{display:grid;flex:0 0 auto;place-items:center;width:16px;height:16px;border:0;background:transparent;font-size:1rem;font-weight:950;line-height:1}.miniJoker .qualifierChip,.drawnJokerMeta .qualifierChip,.drawnJokerCard .qualifierChip,.playerSeat .suitBadge{font-size:1rem}.miniJoker .qualifier-hearts,.miniJoker .qualifier-diamonds,.drawnJokerMeta .qualifier-hearts,.drawnJokerMeta .qualifier-diamonds,.drawnJokerCard .qualifier-hearts,.drawnJokerCard .qualifier-diamonds,.playerSeat .suit-hearts,.playerSeat .suit-diamonds{color:#c82333}.miniJoker .qualifier-clubs,.miniJoker .qualifier-spades,.drawnJokerMeta .qualifier-clubs,.drawnJokerMeta .qualifier-spades,.drawnJokerCard .qualifier-clubs,.drawnJokerCard .qualifier-spades,.playerSeat .suit-clubs,.playerSeat .suit-spades{color:#151917}.miniJoker .qualifier-red,.miniJoker .qualifier-black,.drawnJokerMeta .qualifier-red,.drawnJokerMeta .qualifier-black,.drawnJokerCard .qualifier-red,.drawnJokerCard .qualifier-black{color:transparent}.seat-top-center{left:50%;top:10px;transform:translate(-50%)}.seat-upper-left{left:10px;top:40px}.seat-upper-right{right:10px;top:40px}.seat-mid-left{left:10px;top:18%}.seat-mid-right{right:10px;top:18%}.seat-lower-left{left:10px;bottom:12px}.seat-lower-right{right:10px;bottom:12px}.seat-bottom-center{left:50%;bottom:12px;transform:translate(-50%)}.promptModal{position:absolute;z-index:3;isolation:isolate;left:50%;top:51%;display:grid;width:min(76%,312px);max-height:min(58%,410px);transform:translate(-50%,-50%);gap:9px;border:2px solid #1f2421;border-radius:8px;background:#fffdf7fa;box-shadow:0 18px 40px #1f24212e;padding:12px}.playerNameTab{position:absolute;z-index:-1;left:66%;top:0;max-width:min(42%,156px);overflow:hidden;padding:4px 13px 7px;border:2px solid currentColor;border-bottom:0;border-radius:8px 8px 0 0;background:inherit;color:#1f2421;font-size:.82rem;font-weight:950;line-height:1;text-align:center;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 10px 22px #1f24211f;clip-path:inset(-24px -24px 0 -24px);transform:translate(-50%,-100%);transition:opacity .18s ease,transform .18s ease}.promptHeader,.promptBody,.promptFooter,.drawnJokerCard h2,.drawnJokerCard p,.drawnJokerCard>span{position:relative;z-index:2}.jokerDecisionStack{position:absolute;z-index:3;left:50%;top:51%;display:grid;width:min(76%,312px);max-height:min(62%,450px);transform:translate(-50%,-50%);gap:9px}.jokerDragStage{position:relative;z-index:2;display:grid;min-height:214px;place-items:center;overflow:visible}.jokerDecisionStack.immediate .jokerDragStage{min-height:236px}.drawnJokerFloat{position:relative;z-index:2;display:grid;width:100%;place-items:center}.jokerDecisionStack:not(.dragging):not(.settling):not(.tossing) .drawnJokerFloat.taunting{animation:joker-card-figure-eight 6.8s linear infinite}.jokerDropZones{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;pointer-events:none;transition:opacity .14s ease}.jokerDragStage.dragging .jokerDropZones{opacity:1}.jokerDropZone{position:absolute;display:grid;align-items:end;justify-items:center;border:2px dashed rgba(36,90,82,.46);border-radius:8px;background:#245a5214;color:#245a52;font-size:.76rem;font-weight:950;letter-spacing:.02em;text-transform:uppercase;transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}.jokerDropZone span{margin-bottom:10px;padding:3px 8px;border-radius:999px;background:#fffdf7bd}.jokerDropZone:nth-child(4),.jokerDiscardDropZone{right:0;left:0;top:calc(100% + 9px);display:grid;height:152px;align-items:center;border-color:#b33f3a8c;background:#b33f3a1f;color:#9f342f}.jokerDropZone:nth-child(4) span,.jokerDiscardDropZone span{margin:0}.jokerUseDropZone{top:-58px;right:0;left:0;height:112px;align-items:center;border-color:#245a528c;background:#245a5214}.jokerUseDropZone span{margin:0}.jokerDropZone.active{border-color:#245a52f2;background:#245a522e;color:#1d4741;transform:scale(1.03)}.jokerDropZone.disabled{border-color:#68716c57;background:#68716c14;color:#4e5751b8}.jokerDropZone:nth-child(4).active,.jokerDiscardDropZone.active{border-color:#b33f3af2;background:#b33f3a38;color:#87302c}.drawnJokerCard,.jokerControlsPanel{border:2px solid #1f2421;border-radius:8px;background:#fffdf7fa;box-shadow:0 14px 32px #1f242129}.drawnJokerCard{position:relative;isolation:isolate;display:grid;width:100%;min-height:136px;align-content:center;gap:7px;padding:22px 16px 16px;text-align:center}.drawnJokerCard .playerNameTab{font-size:.86rem}.drawnJokerCard.draggable{cursor:grab;box-shadow:0 18px 34px #1f24214d;touch-action:none;transform:translate(var(--joker-drag-x, 0),var(--joker-drag-y, 0)) rotate(var(--joker-drag-rotate, 0deg));transition:transform .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none}.jokerDecisionStack:not(.dragging):not(.settling):not(.tossing) .drawnJokerFloat.taunting .drawnJokerCard.draggable{box-shadow:0 20px 38px #1f242152}.turnLockChipLayer{position:absolute;z-index:2;left:calc(50% - (min(39%,168px)/2) - 68px);top:10px;display:grid;width:58px;height:58px;pointer-events:none}.turnLockInventoryChip{width:58px;height:58px;border:2px solid #1f2421;border-radius:8px;background:#fffdf7;color:#1f2421;cursor:grab;font-size:1.05rem;box-shadow:0 18px 34px #1f24214d;opacity:1;pointer-events:auto;touch-action:none;transform:translateZ(0);transition:transform .15s ease,opacity .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;will-change:transform,opacity}.turnLockInventoryChip:before{top:9px;width:18px;height:18px;border-color:#1f2421;border-width:5px}.turnLockInventoryChip span{display:grid;place-items:center;width:30px;height:24px;margin-top:18px;border-radius:5px;background:#1f2421;color:#fffdf7;font-size:.94rem}.turnLockChipLayer:not(.dragging):not(.settling) .turnLockInventoryChip:not(.turnLockDragClone){animation:turn-lock-chip-enter .18s ease-out both,turn-lock-chip-jiggle 4.8s ease-in-out 1.2s infinite}.turnLockChipLayer.dragging .turnLockInventoryChip{cursor:grabbing;box-shadow:0 24px 46px #1f242161;transition:none}.turnLockChipLayer.dragging{z-index:4}.turnLockChipLayer.dragging .turnLockInventoryChip:not(.turnLockDragClone),.turnLockChipLayer.settling .turnLockInventoryChip:not(.turnLockDragClone){opacity:0}.turnLockChipLayer.settling .turnLockInventoryChip{opacity:.96;pointer-events:none;transition:transform .22s cubic-bezier(.16,.82,.22,1),opacity .14s ease,box-shadow .22s ease}.turnLockDragClone{position:fixed;z-index:5;left:0;top:0;pointer-events:none;transform:translate3d(var(--turn-lock-clone-x, 0),var(--turn-lock-clone-y, 0),0) translate(-50%,-50%);will-change:transform}.turnLockChipLayer.dragging .turnLockDragClone{opacity:1;transition:none}.turnLockChipLayer.settling .turnLockDragClone{animation:turn-lock-clone-land .34s ease-out both;transition:transform .22s cubic-bezier(.16,.82,.22,1),box-shadow .22s ease}.turnLockDropZones{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;opacity:0;pointer-events:none;transition:opacity .14s ease}.turnLockChipLayer.dragging .turnLockDropZones{opacity:1}.turnLockDropZone{position:absolute;display:grid;align-items:end;justify-items:center;border:2px dashed rgba(36,90,82,.54);border-radius:8px;background:#245a521a;color:#245a52;font-size:.72rem;font-weight:950;text-transform:uppercase;transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}.turnLockDropZone span{margin-bottom:8px;padding:3px 8px;border-radius:999px;background:#fffdf7cc}.turnLockDropZone.pendingTarget{align-items:center}.turnLockDropZone.pendingTarget span{margin:0}.turnLockDropZone.active{border-color:#245a52f2;background:#245a5233;color:#1d4741;transform:scale(1.03)}.turnLockDropZone.disabled{border-color:#68716c57;background:#68716c14;color:#4e5751b8}.turnLockMoveLayer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;overflow:visible;pointer-events:none}.turnLockMoveChip{position:absolute;left:0;top:0;display:grid;place-items:center;width:34px;height:34px;border:2px solid #1f2421;border-radius:7px;background:#fffdf7;color:#1f2421;box-shadow:0 18px 34px #1f242147;transform:translate(calc(var(--turn-lock-move-start-x) - 17px),calc(var(--turn-lock-move-start-y) - 17px)) scale(.82);animation:turn-lock-move .68s cubic-bezier(.16,.82,.22,1) both}.turnLockMoveChip:before{content:"";position:absolute;left:50%;top:5px;width:13px;height:13px;border:4px solid #1f2421;border-bottom:0;border-radius:999px 999px 3px 3px;transform:translate(-50%)}.turnLockMoveChip span{position:relative;z-index:1;display:grid;place-items:center;width:20px;height:16px;margin-top:11px;border-radius:4px;background:#1f2421;color:#fffdf7;font-size:.68rem;font-weight:1000;line-height:1}.jokerDragStage.dragging .drawnJokerCard.draggable{cursor:grabbing;box-shadow:0 24px 46px #1f242161;transition:none}.jokerDragStage.dragging .drawnJokerCard .playerNameTab,.jokerDecisionStack.settling .drawnJokerCard .playerNameTab,.jokerDecisionStack.tossing .drawnJokerCard .playerNameTab{opacity:0;transform:translate(-50%,-128%) scale(.92)}.jokerDecisionStack.settling .drawnJokerCard.draggable{pointer-events:none;transform:translate(var(--joker-drag-x, 0),var(--joker-drag-y, 0)) rotate(var(--joker-drag-rotate, 0deg)) scale(var(--joker-drop-scale-x, .82),var(--joker-drop-scale-y, .82));transition:transform .36s cubic-bezier(.16,.82,.22,1),box-shadow .36s ease,opacity .36s ease;box-shadow:0 20px 38px #1f242138;opacity:.92}.jokerDecisionStack.tossing .drawnJokerCard.draggable{transform:translate(var(--joker-drag-x, 0),var(--joker-drag-y, 0)) rotate(var(--joker-drag-rotate, 0deg)) scale(.74);transition:transform .9s cubic-bezier(.16,.72,.24,1),opacity .9s ease;opacity:0}.drawnJokerCard>span{color:#68716c;font-size:.72rem;font-weight:950;line-height:1;text-transform:uppercase}.drawnJokerCard h2{overflow:hidden;font-size:1.18rem;text-overflow:ellipsis;white-space:nowrap}.drawnJokerCard p{color:#4e5751;font-size:.92rem;font-weight:850;line-height:1.18}.drawnJokerCard .qualifierChip{position:absolute;top:12px;right:12px;left:auto;z-index:6}.jokerControlsPanel{position:relative;z-index:1;display:grid;min-height:54px;gap:9px;padding:11px}.jokerDecisionStack.dragging .jokerControlsPanel{border-color:transparent;background:transparent;box-shadow:none}.jokerControlsPanel.immediateControls{gap:8px}.jokerControlsPanel.immediateControls button{min-height:58px}.jokerDecisionStack.dragging .jokerControlsPanel>*{opacity:0}.jokerDecisionStack.revealing .jokerControlsPanel{opacity:.68}.dragHint{color:#68716c;font-size:.76rem;font-weight:900;line-height:1.15;text-align:center}.rollPanel{gap:8px}.rollActionRow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.rollActionRow>button:first-child{justify-self:start;min-height:34px;padding:5px 10px;font-size:.76rem}.rollActionRow.singleAction{grid-template-columns:1fr;justify-items:center}.rollActionRow.singleAction .rollDieButton{grid-column:1;justify-self:center;min-height:78px;padding:0;font-size:1.35rem}.rollOutcomeGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.rollOutcome{display:grid;justify-items:center;gap:2px;min-width:0;border:1px solid rgba(31,36,33,.16);border-radius:8px;background:#fff;padding:6px 3px}.rollOutcome strong{font-size:.92rem;line-height:1}.rollOutcome span{position:relative;overflow:hidden;display:grid;place-items:center;width:100%;min-height:.66rem;max-width:100%;font-size:.58rem;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.rollOutcome b{display:block;overflow:hidden;width:100%;font:inherit;text-align:center;text-overflow:ellipsis;white-space:nowrap}.rollOutcome.positive{border-color:#245a5257;color:#245a52}.rollOutcome.negative{border-color:#b33f3a57;color:#b33f3a}.rollDieButton{position:relative;display:grid;place-items:center;grid-column:2;grid-row:1;justify-self:center;width:78px;height:78px;overflow:hidden;border-width:2px;background:#fff;font-size:1.25rem}.rollDieButton:disabled{opacity:1}.rollDieButton.rolling{color:#245a52}.rollDieButton.positive{border-color:#245a5294;color:#245a52;animation:die-resolve-bounce .46s cubic-bezier(.18,.9,.24,1.2) both;opacity:1}.rollDieButton.negative{border-color:#b33f3a94;color:#b33f3a;animation:die-resolve-bounce .46s cubic-bezier(.18,.9,.24,1.2) both;opacity:1}.packDecisionStack{width:min(92vw,620px)}.packPanel{gap:10px;padding:13px}.packIntro{color:#245a52;font-size:.82rem;font-weight:900;line-height:1.18;text-align:center}.packChoiceGrid{display:grid;grid-template-columns:1fr;gap:6px}.packChoiceButton{min-width:0;min-height:0;border:0;background:transparent;padding:0;text-align:inherit}.packChoiceButton .drawnJokerCard{display:grid;grid-template-columns:28px minmax(0,1fr) 32px;grid-template-areas:"icon text lock";align-items:center;align-content:start;justify-items:stretch;column-gap:7px;width:100%;height:auto;min-height:58px;overflow:hidden;padding:7px 9px;text-align:left;transition:box-shadow .15s ease,transform .15s ease}.packChoiceIconCell,.packChoiceLockCell{display:grid;place-items:center;min-width:0}.packChoiceIconCell{grid-area:icon}.packChoiceText{display:grid;grid-area:text;gap:2px;min-width:0}.packChoiceLockCell{grid-area:lock}.packChoiceButton .drawnJokerCard h2{display:-webkit-box;max-width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;font-size:.88rem;line-height:1.05;text-align:left;text-overflow:clip;white-space:normal}.packChoiceButton .drawnJokerCard p{display:-webkit-box;max-width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.64rem;font-weight:850;line-height:1.1;overflow-wrap:anywhere;text-align:left}.packChoiceButton .drawnJokerCard .qualifierChip{position:static;width:18px;height:18px;font-size:1rem;line-height:1;transform:none}.packChoiceButton .drawnJokerCard .qualifier-red,.packChoiceButton .drawnJokerCard .qualifier-black{width:18px;height:18px}.packChoiceButton .drawnJokerCard .packLockBadge{position:relative!important;top:5px!important;right:auto!important;bottom:auto!important;left:auto!important;width:22px;height:22px;font-size:.62rem;transform:none!important}.packChoiceButton .drawnJokerCard .packLockBadge:before{top:-10px;width:13px;height:14px;border-width:4px}.packChoiceButton:not(:disabled):hover .drawnJokerCard,.packChoiceButton:not(:disabled):focus-visible .drawnJokerCard{box-shadow:0 8px 18px #1f24212e;transform:translateY(-1px)}.packChoiceButton:disabled{opacity:.7}.promptHeader{display:grid;gap:2px;min-width:0;text-align:center}.promptHeader h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.promptBody{display:grid;min-width:0;gap:9px}.promptRule{color:#4e5751;font-size:.9rem;font-weight:750;line-height:1.25;text-align:center}.promptStats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.promptStats div,.scorePreview{display:grid;min-width:0;gap:2px;border:2px solid transparent;border-radius:8px;padding:9px 10px}.promptStats div{background:#e7efe9}.promptStats span{font-size:.68rem;font-weight:950;text-transform:uppercase}.promptStats strong{overflow:hidden;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}.replaceGrid,.actionRow{display:grid;gap:7px}.replaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.replaceGrid button{display:grid;align-content:center;justify-items:center;min-width:0;min-height:48px;gap:1px;overflow:hidden;padding:4px 2px;line-height:1.02}.replaceGrid button span,.replaceGrid button b{display:block;max-width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap}.replaceGrid button span{font-size:clamp(.68rem,3.15vw,.82rem)}.replaceGrid button b{font-size:clamp(.86rem,4vw,1rem)}.actionRow{grid-template-columns:1fr 1fr}.speedRoundToggle{display:flex;align-items:center;justify-content:center;min-height:40px;gap:9px;border:2px solid transparent;border-radius:8px;padding:8px 10px;background:#e7efe9;color:#273b35;font-size:.82rem;font-weight:900}.speedRoundToggle input{width:18px;height:18px;accent-color:var(--color-felt)}.diceGrid{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:7px}.rolledPromptModal{overflow:visible}.rolledPromptModal .promptBody{grid-template-rows:auto auto auto;gap:7px}.rolledPromptModal .diceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.rolledPromptModal .dieButton{min-height:0;font-size:1.24rem}.rolledPromptModal .scorePreview.compact{min-height:36px;align-content:center;padding:5px 8px}.rolledPromptModal .primaryButton{min-height:42px}.dieButton{position:relative;display:grid;place-items:center;aspect-ratio:1;min-height:42px;border-width:2px;background:#fff;font-size:1.35rem;overflow:hidden}.dieButton.rolling{border-color:#245a526b;color:#245a52;box-shadow:inset 0 10px 18px #245a5214,inset 0 -10px 18px #245a5214}.dieButton.resolved{color:#000;animation:die-resolve-bounce .46s cubic-bezier(.18,.9,.24,1.2) both}.dieButton.resolved:disabled{opacity:1}.dieButton.debuffed{border-color:#20222047;background:#ecebe4;color:#20222057;box-shadow:inset 0 0 0 999px #20222014;filter:saturate(.35)}.dieButton.scoreable:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;z-index:3;border:2px dashed #d7a02f;border-radius:5px;pointer-events:none;animation:scoreable-die-pulse 1.35s ease-in-out infinite}.dieButton.rolling:before,.dieButton.rolling:after{content:"";position:absolute;right:0;left:0;z-index:2;height:30%;pointer-events:none}.dieButton.rolling:before{top:0;background:linear-gradient(180deg,#fff,#fff0)}.dieButton.rolling:after{bottom:0;background:linear-gradient(0deg,#fff,#fff0)}.dieSlotWindow{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;line-height:1}.dieSlotTrack{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-auto-rows:100%;filter:blur(.7px);will-change:transform;animation:die-slot-whoosh .34s linear infinite}.dieSlotTrack span{display:grid;place-items:center;height:100%;transform:translateZ(0)}.dieButton.selected{background:#d7a02f;box-shadow:inset 0 0 0 3px #ffffffa6}@keyframes die-slot-whoosh{0%{transform:translateY(-1000%)}to{transform:translateY(100%)}}@keyframes die-resolve-bounce{0%{transform:translateY(-8px) scale(.82)}54%{transform:translateY(3px) scale(1.16)}78%{transform:translateY(-1px) scale(.96)}to{transform:translateY(0) scale(1)}}@keyframes scoreable-die-pulse{0%,to{opacity:.62;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.scorePreview.valid{background:#e7efe9;border:2px solid rgba(36,90,82,.32)}.scorePreview.invalid{background:#fff7f4;border:2px solid rgba(179,63,58,.34)}.scorePreview.empty{visibility:hidden}.scorePreview strong,.bigNumber{font-size:1.25rem;line-height:1;text-align:center}.scorePreview.compact{gap:0;padding:7px 9px}.scorePreview.compact strong{font-size:1.18rem}.scorePreview small{overflow:hidden;color:#4e5751;font-size:.68rem;font-weight:850;line-height:1.12;text-align:center;text-overflow:ellipsis;white-space:nowrap}.bigNumber{color:#245a52;font-weight:950}.promptFooter{display:block;width:100%;min-height:0;border:0;border-radius:8px;background:#1f242112;color:#1f2421;cursor:pointer;font-size:.76rem;font-weight:800;line-height:1.2;padding:8px 9px;text-align:center;transform:none}.promptFooter:active:not(:disabled){transform:none}.promptFooter:disabled{cursor:default;opacity:1}.promptFooter.expanded{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}@media(min-width:700px){button{min-height:56px;border-width:2px;font-size:1.2rem}h1{font-size:4.25rem}h2{font-size:1.65rem}.gameShell{padding:18px;gap:14px}.topBar{min-height:86px}.topMeta{gap:5px;font-size:1.15rem;padding:13px 16px}.eyebrow{font-size:.9rem}.jokerBar{gap:12px;min-height:0;padding-bottom:20px;padding-top:15px}.jokerSlotLabel{top:-16px;font-size:.82rem}.miniJoker{gap:6px;min-height:0;border-width:3px;padding:16px 46px 16px 16px}.miniJoker strong{font-size:1.34rem}.miniJoker p{font-size:1.06rem;line-height:1.18}.miniJoker .qualifierChip,.drawnJokerMeta .qualifierChip,.drawnJokerCard .qualifierChip{font-size:1.35rem}.qualifierChip{width:28px;height:28px}.qualifier-red,.qualifier-black{width:21px;height:21px}.playerSeat{width:min(31%,260px);min-height:100px;border-width:3px;padding:16px 17px}.turnScorePileAnchor,.turnScorePile{--pile-offset-x: -220px;--pile-offset-y: -176px}.turnScorePile{min-width:112px;border-width:3px;padding:12px 18px}.turnScorePile span{font-size:.78rem}.turnScorePile strong{font-size:1.62rem}.scoreFlight{min-width:86px;border-width:3px;font-size:1.76rem;padding:11px 16px}.farkleShard{min-width:118px;border-width:3px;font-size:1.76rem;padding:12px 18px}.farkleLabel{font-size:1.05rem}.playerSeat .playerName{font-size:1.42rem}.playerSeat .playerStatus{font-size:1rem}.playerSeat .playerScore{font-size:1.6rem}.suitBadge{width:26px;height:26px}.playerSeat .suitBadge{font-size:1.5rem}.tableFelt{top:96px;right:40px;bottom:100px;left:40px;border-width:3px}.promptModal{width:min(54%,500px);max-height:min(64%,620px);gap:16px;border-width:3px;padding:22px}.promptHeader{gap:5px}.playerNameTab,.drawnJokerCard>span{font-size:.98rem}.promptBody{gap:14px}.promptStats{gap:12px}.promptStats div,.scorePreview{gap:5px;padding:14px 16px}.promptStats span{font-size:.92rem}.promptStats strong{font-size:1.48rem}.scorePreview strong,.bigNumber{font-size:1.8rem}.scorePreview.compact{padding:10px 14px}.scorePreview.compact strong{font-size:1.55rem}.scorePreview span{font-size:1.05rem}.scorePreview small{font-size:.92rem}.promptFooter{font-size:1rem;padding:12px 14px}.jokerDecisionStack{width:min(54%,500px);max-height:min(66%,660px);gap:14px}.jokerDragStage{min-height:330px}.jokerDropZones{top:0;right:0;bottom:0;left:0}.jokerDropZone{border-width:3px;font-size:1.08rem}.jokerDropZone:nth-child(4){height:76px}.drawnJokerCard{min-height:210px;gap:10px;border-width:3px;padding:30px 26px 24px}.drawnJokerCard h2{font-size:1.9rem}.drawnJokerCard p{font-size:1.28rem}.jokerControlsPanel{gap:12px;border-width:3px;min-height:78px;padding:16px}.jokerControlsPanel.immediateControls button{min-height:82px}.jokerDiscardPanelDrop{border-width:3px;font-size:1.2rem}.dragHint{font-size:1.04rem}.replaceGrid{gap:8px}.replaceGrid button{min-height:68px;gap:3px}.replaceGrid button span{font-size:1rem}.replaceGrid button b{font-size:1.28rem}.actionRow{gap:12px}.diceGrid{grid-template-columns:repeat(3,minmax(76px,1fr));gap:12px}.dieButton{border-width:3px;font-size:2.35rem}}@media(max-height:760px){.gameShell{gap:6px;padding:8px}.topBar{min-height:44px}h1{font-size:1.86rem}.jokerBar{min-height:0}.miniJoker{min-height:0;padding:7px 26px 7px 7px}.miniJoker p{display:block;font-size:.58rem;line-height:1.08}.playerSeat{min-height:52px;padding:7px 8px}.promptModal{gap:7px;padding:10px}}@media(max-width:430px){.promptModal{top:52%;width:min(74%,292px);max-height:min(56%,380px);gap:6px;padding:9px}.rolledPromptModal{max-height:min(58%,390px)}.promptHeader{gap:2px}.playerNameTab{font-size:.62rem}.promptHeader h2{font-size:1.08rem;line-height:1}.promptBody{gap:6px}.rolledPromptModal .promptBody{gap:5px}.rolledPromptModal .scorePreview.compact{min-height:32px}.diceGrid{grid-template-columns:repeat(3,minmax(0,1fr));justify-self:center;width:min(100%,220px);gap:6px}.dieButton{min-height:0;border-width:2px;font-size:1.5rem}.scorePreview.compact{justify-self:center;width:min(100%,220px);padding:6px 8px}.scorePreview.compact strong{font-size:1.05rem}.promptModal .primaryButton{justify-self:center;width:min(100%,220px);min-height:42px;font-size:.94rem}.packDecisionStack{width:min(92vw,372px)}.packPanel{gap:8px;padding:11px}.packChoiceGrid{gap:6px}.packChoiceButton .drawnJokerCard{min-height:54px;column-gap:6px;padding:6px 8px}.packChoiceButton .drawnJokerCard h2{font-size:.82rem}.packChoiceButton .drawnJokerCard p{font-size:.6rem;line-height:1.08}.packChoiceButton .drawnJokerCard .qualifierChip{position:static;width:17px;height:17px;transform:none}.packChoiceButton .drawnJokerCard .packLockBadge{position:relative!important;top:5px!important;right:auto!important;left:auto!important;transform:none!important}}@media(max-width:340px)and (max-height:620px){button{min-height:34px;font-size:.78rem}.gameShell{gap:4px;padding:6px}.topBar{min-height:38px}h1{font-size:1.48rem}.eyebrow{font-size:.56rem}.topMeta{font-size:.66rem;padding:5px 7px}.jokerBar{gap:5px;padding-top:8px;padding-bottom:8px}.jokerSlotLabel{top:-11px;font-size:.54rem}.miniJoker{border-width:1px;gap:2px;padding:5px 20px 5px 5px}.miniJoker.locked{padding-bottom:17px}.lockBadge{right:4px;bottom:4px;width:18px;height:15px;font-size:.48rem;border-radius:4px 4px 5px 5px}.lockBadge:before{top:-8px;width:11px;height:11px;border-width:3px}.miniJoker strong{font-size:.67rem;line-height:1}.miniJoker p{font-size:.54rem;line-height:1.06}.qualifierChip{top:2px;right:3px;width:15px;height:15px;font-size:.78rem}.qualifier-red,.qualifier-black{width:11px;height:11px}.tableFelt{top:48px;right:18px;bottom:56px;left:18px}.playerSeat{width:min(36%,122px);min-height:44px;border-width:1px;column-gap:5px;padding:5px 6px}.playerSeat.active{box-shadow:0 0 0 2px #d7a02f3d}.playerSeat .playerName{font-size:.72rem}.playerSeat .playerStatus{font-size:.56rem}.playerSeat .playerScore{font-size:.86rem}.turnLockSeatBadge{top:7px;right:5px;width:15px;height:12px;font-size:.46rem}.turnLockSeatBadge:before{top:-6px;width:9px;height:9px;border-width:3px}.playerSeat.rightSide .turnLockSeatBadge{left:5px}.turnLockChipLayer{left:calc(50% - (min(36%,122px)/2) - 52px);top:6px;width:44px;height:44px}.turnLockInventoryChip{width:44px;height:44px;border-width:1px}.turnLockInventoryChip:before{top:6px;width:14px;height:14px;border-width:4px}.turnLockInventoryChip span{width:24px;height:20px;margin-top:14px;font-size:.78rem}.suitBadge{width:13px;height:13px}.playerSeat .suitBadge{font-size:.82rem}.seat-top-center{top:6px}.seat-mid-left,.seat-mid-right{top:17%}.seat-lower-left,.seat-lower-right,.seat-bottom-center{bottom:7px}.turnScorePileAnchor,.turnScorePile{--pile-offset-x: -92px;--pile-offset-y: -84px}.turnScorePile{min-width:58px;padding:5px 8px}.turnScorePile span{font-size:.48rem}.turnScorePile strong{font-size:.82rem}.promptModal,.jokerDecisionStack{top:52%;width:min(68%,218px);max-height:min(50%,276px);gap:6px}.promptModal{padding:8px}.rolledPromptModal{max-height:min(54%,300px);padding:7px}.jokerDecisionStack{max-height:min(54%,306px)}.jokerDragStage{min-height:146px}.jokerDropZones{top:0;right:0;bottom:0;left:0}.jokerDropZone{border-width:1.5px;font-size:.56rem}.jokerDropZone:nth-child(4){height:34px}.jokerDropZone span{margin-bottom:6px;padding:2px 6px}.jokerDropZone:nth-child(4){right:8px;left:8px}.drawnJokerCard{min-height:94px;gap:4px;padding:16px 12px 10px}.drawnJokerCard>span,.drawnJokerCard .playerNameTab{font-size:.58rem}.drawnJokerCard .playerNameTab{max-width:min(62%,150px);padding:3px 10px 6px}.drawnJokerCard h2,.promptHeader h2{font-size:.92rem}.drawnJokerCard p,.promptRule{font-size:.72rem;line-height:1.12}.jokerControlsPanel,.promptBody{gap:6px}.jokerControlsPanel{min-height:40px;padding:7px}.jokerControlsPanel.immediateControls button{min-height:42px}.jokerDiscardPanelDrop{border-width:1.5px;font-size:.68rem}.dragHint{font-size:.58rem}.promptStats{gap:5px}.promptStats div,.scorePreview{padding:6px 7px}.promptStats span{font-size:.54rem}.promptStats strong,.scorePreview strong,.bigNumber{font-size:.9rem}.scorePreview.compact{padding:5px 6px}.scorePreview.compact strong{font-size:.86rem}.replaceGrid,.actionRow,.diceGrid{gap:5px}.replaceGrid button{min-height:38px}.replaceGrid button span{font-size:.58rem}.replaceGrid button b{font-size:.76rem}.dieButton{min-height:34px;font-size:1.05rem}.rolledPromptModal .promptBody,.rolledPromptModal .diceGrid{gap:4px}.rolledPromptModal .scorePreview.compact{min-height:28px;padding:3px 6px}.rolledPromptModal .primaryButton{min-height:36px}.scorePreview small,.promptFooter{font-size:.58rem}.promptFooter{padding:6px 7px}}.balanceShell{display:grid;align-content:start;gap:14px;width:min(100%,1180px);height:100dvh;margin:0 auto;overflow:auto;overscroll-behavior:contain;padding:14px}.balanceHeader,.balancePanel,.balanceCategory{border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7f0;box-shadow:0 10px 28px #1f242114}.balanceHeader{position:sticky;z-index:5;top:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px}.balanceHeader h1{font-size:1.85rem;line-height:.95}.balanceHeaderActions{display:flex;flex-wrap:wrap;justify-content:end;gap:7px}.balanceHeaderActions button{min-height:36px;padding:0 10px}.dangerButton{border-color:#b33f3a;background:#b33f3a;color:#fff}.balancePanelHeader span,.balanceCategoryHeader span,.balanceJokerTop span,.balanceTags span,.balanceField span,.balanceRevisionGrid span,.balanceHistoryItem span,.balanceHistoryItem em,.balanceDrawOdds span{color:#68716c;font-size:.69rem;font-weight:950;line-height:1;text-transform:uppercase}.balanceMessage{border-radius:8px;font-size:.9rem;font-weight:850;line-height:1.25;padding:10px 12px}.balanceMessage.ok{background:#245a521f;color:#245a52}.balanceMessage.error{background:#fff7f4;color:#b33f3a}.balanceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.balanceRevisionPanel,.balanceSimulationPanel{grid-column:span 2}.balancePanel,.balanceCategory{display:grid;gap:12px;padding:14px}.balancePanelHeader,.balanceCategoryHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}.balancePanelHeader h2,.balanceCategoryHeader h2{font-size:1.05rem}.balanceRevisionGrid,.balanceWeightGrid{display:grid;gap:8px}.balanceRevisionGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.balanceWeightGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.balanceRevisionGrid div{display:grid;gap:5px;border:1px solid rgba(36,90,82,.16);border-radius:8px;background:#245a5212;padding:9px}.balanceRevisionGrid strong{overflow:hidden;color:#245a52;font-size:1.04rem;line-height:1;text-overflow:ellipsis;white-space:nowrap}.balanceRevisionGrid em{overflow:hidden;color:#68716c;font-size:.68rem;font-style:normal;font-weight:850;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.balanceSimulationStatus{border:1px solid rgba(36,90,82,.18);border-radius:999px;background:#245a5214;color:#245a52;padding:6px 8px}.balanceSimulationStatus.running{border-color:#d7a02f5c;background:#d7a02f29;color:#7b5614}.balanceSimulationStatus.failed{border-color:#b33f3a4d;background:#fff7f4;color:#b33f3a}.balanceSimulationHeaderActions{display:flex;align-items:center;justify-content:end;gap:7px}.balanceSimulationHeaderActions button{min-height:32px;padding:0 9px}.balanceSimulationSummary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.balanceSimulationSummary div{display:grid;gap:5px;border:1px solid rgba(36,90,82,.16);border-radius:8px;background:#245a5212;padding:9px}.balanceSimulationSummary span,.balanceSimulationSummary em,.balanceSimulationRowHeader span,.balanceSimulationStatGrid em,.balanceSimulationRowFooter em{color:#68716c;font-size:.68rem;font-style:normal;font-weight:950;line-height:1;text-transform:uppercase}.balanceSimulationSummary strong{color:#245a52;font-size:1.04rem;line-height:1}.balanceSimulationChart{display:grid;gap:6px;overflow:hidden;border:1px solid rgba(31,36,33,.12);border-radius:8px;background:#fff;padding:8px}.balanceSimulationChart svg{display:block;width:100%;height:auto}.balanceSimulationChartHeader{display:flex;align-items:center;justify-content:space-between;gap:8px}.balanceSimulationChartHeader h3{font-size:.9rem;line-height:1}.balanceSimulationChartHeader span{color:#68716c;font-size:.66rem;font-weight:950;line-height:1;text-transform:uppercase}.balanceChartAxis{stroke:#1f242152;stroke-width:2}.balanceCandleRange{stroke-width:2.5}.balanceCandleRange.before{stroke:#6f6a8f80}.balanceCandleRange.after{stroke:#245a528f}.balanceCandleBox{stroke-width:2}.balanceCandleBox.before{fill:#6f6a8f2e;stroke:#6f6a8f}.balanceCandleBox.after{fill:#245a522e;stroke:#245a52}.balanceCandleMedian{stroke-linecap:round;stroke-width:3}.balanceCandleMedian.before{stroke:#514a75}.balanceCandleMedian.after{stroke:#1f2421}.balanceCandleAverage.before{fill:#6f6a8f;stroke:#fff;stroke-width:2}.balanceCandleAverage.after{fill:#d7a02f;stroke:#fff;stroke-width:2}.balanceCandlePrevious{fill:#6f6a8f;opacity:.85}.balanceChartTick,.balanceChartLabel{fill:#68716c;font-size:.66rem;font-weight:950;text-anchor:middle}.balanceChartTick{text-anchor:end}.balanceSimulationLegend{display:flex;flex-wrap:wrap;gap:6px}.balanceSimulationLegend span{border-radius:999px;background:#1f24210f;color:#68716c;font-size:.65rem;font-weight:950;line-height:1;padding:5px 7px;text-transform:uppercase}.balanceSimulationLegend span.before{background:#6f6a8f24;color:#514a75}.balanceSimulationLegend span.after{background:#245a521f;color:#245a52}.balanceSimulationRows{display:grid;gap:8px}.balanceSimulationRow{display:grid;gap:8px;border:1px solid rgba(31,36,33,.12);border-radius:8px;background:#fff;padding:10px}.balanceSimulationRowHeader,.balanceSimulationRowFooter{display:flex;align-items:center;gap:8px}.balanceSimulationRowHeader{justify-content:space-between}.balanceSimulationRowHeader strong{color:#1f2421;font-size:1rem;line-height:1}.balanceSimulationRowHeader>span{color:#1f2421;font-size:.9rem}.balanceSimulationStatGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.balanceSimulationStatGrid span{display:grid;gap:4px;min-width:0;border-radius:8px;background:#1f24210b;padding:7px}.balanceSimulationStatGrid b{overflow:hidden;color:#39413c;font-size:.92rem;line-height:1;text-overflow:ellipsis;white-space:nowrap}.balanceSimulationRowFooter{justify-content:flex-start}.balanceSimulationRowFooter em{color:#b33f3a}.balanceSimulationRowFooter em.balanced{color:#245a52}.balanceSimulationRowFooter em.below{color:#8c6418}.balanceSimulationDelta{display:inline-flex;align-items:center;max-width:100%;border-radius:999px;background:#6f6a8f1f;color:#514a75;line-height:1.05;padding:4px 6px}.balanceSimulationDelta.longer{background:#b33f3a1c;color:#b33f3a}.balanceSimulationDelta.shorter{background:#245a521f;color:#245a52}.balanceSimulationDelta.unchanged{background:#1f24210f;color:#68716c}.balanceSimulationEmpty,.balanceSimulationError{border-radius:8px;font-size:.82rem;font-weight:800;line-height:1.25;padding:9px}.balanceSimulationEmpty{background:#1f24210f;color:#68716c}.balanceSimulationError{background:#fff7f4;color:#b33f3a}.balanceField{display:grid;gap:6px;min-width:0}.balanceField input,.balanceField select,.balanceField textarea{width:100%;min-height:38px;border:1px solid rgba(31,36,33,.22);border-radius:8px;background:#fff;color:#1f2421;font:inherit;font-size:.9rem;font-weight:800;outline:none;padding:0 9px}.balanceField input:focus,.balanceField select:focus,.balanceField textarea:focus,.balanceJokerInputs input:focus{border-color:#245a52}.balanceHistoryList,.balanceLibrary{display:grid;gap:12px}.balanceHistoryItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(31,36,33,.14);border-radius:8px;background:#fff;padding:10px}.balanceHistoryItem>div{display:grid;gap:5px}.balanceHistoryItem>div:last-child{grid-template-columns:1fr 1fr}.balanceHistoryItem strong{font-size:.94rem}.balanceHistoryItem p{color:#39413c;font-size:.8rem;font-weight:750;line-height:1.2}.balanceCardGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.balanceJokerCard{display:grid;min-height:190px;align-content:space-between;gap:10px;border:2px solid #1f2421;border-radius:8px;background:#fffdf7;padding:12px}.balanceJokerTop{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}.balanceJokerTop>div{display:grid;gap:5px;min-width:0}.balanceJokerTop strong{overflow:hidden;font-size:1rem;line-height:1;text-overflow:ellipsis;white-space:nowrap}.balanceDrawOdds{min-width:68px;justify-items:end}.balanceDrawOdds strong{color:#245a52;font-size:1.12rem}.balanceJokerInputs{display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px}.balanceJokerInputs label{display:grid;gap:4px;color:#68716c;font-size:.68rem;font-weight:950;text-transform:uppercase}.balanceJokerInputs input{width:100%;min-height:34px;border:1px solid rgba(31,36,33,.24);border-radius:8px;font:inherit;font-weight:850;padding:0 7px}.deckCountControl{display:grid;grid-template-columns:30px minmax(44px,1fr) 30px;gap:4px}.deckCountControl button{display:grid;place-items:center;min-width:30px;min-height:34px;padding:0}.balanceJokerCard p{color:#39413c;font-size:.9rem;font-weight:750;line-height:1.25}.balanceTags{display:flex;flex-wrap:wrap;gap:5px}.balanceTags span{border:1px solid rgba(36,90,82,.2);border-radius:999px;background:#245a5214;color:#245a52;padding:5px 7px}@media(max-width:900px){.balanceHeader{position:static;grid-template-columns:1fr;top:auto}.balanceHeader h1{font-size:1.6rem}.balanceHeaderActions{justify-content:stretch}.balanceHeaderActions button{flex:1 1 120px}.balanceGrid,.balanceWeightGrid{grid-template-columns:1fr}.balanceRevisionPanel,.balanceSimulationPanel{grid-column:auto}.balanceRevisionGrid{grid-template-columns:1fr 1fr}.balanceSimulationChart{padding:7px}.balanceSimulationRowHeader{flex-wrap:wrap;justify-content:flex-start}.balanceSimulationRowHeader strong{min-width:40px}.balanceSimulationDelta{border-radius:12px;white-space:normal}.balanceSimulationStatGrid{grid-template-columns:1fr 1fr}.balanceHistoryItem{grid-template-columns:1fr}}.harnessShell{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100dvh;gap:10px;overflow:hidden;padding:12px}.harnessToolbar{display:flex;align-items:center;gap:8px;border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7e6;box-shadow:0 8px 22px #1f242114;padding:8px}.harnessTitle{display:grid;min-width:176px;gap:2px}.harnessTitle span,.harnessRoomBadge span,.harnessRoomBadge em,.harnessObserveControl span,.harnessSpeedControl span,.harnessSeatHeader span,.harnessSeatControls span,.harnessSeatControls label{color:#68716c;font-size:.72rem;font-weight:950;line-height:1;text-transform:uppercase}.harnessTitle strong{font-size:1rem;line-height:1.05}.harnessActions{display:flex;flex:1;flex-wrap:nowrap;gap:5px;min-width:0}.harnessActions button,.harnessObserveControl button,.harnessSpeedControl button,.harnessSeatControls button{min-height:30px;padding:0 8px;font-size:.82rem;white-space:nowrap}.harnessObserveControl{display:grid;align-items:center;gap:3px;border-left:2px solid rgba(31,36,33,.12);padding-left:8px}.harnessObserveControl div{display:grid;grid-template-columns:62px auto;align-items:center;gap:4px}.harnessObserveControl input{width:62px;min-height:30px;border:1px solid rgba(31,36,33,.24);border-radius:8px;background:#fff;color:#1f2421;font-size:.86rem;font-weight:900;outline:none;padding:0 7px;text-transform:uppercase}.harnessObserveControl input:focus{border-color:#245a52}.harnessSpeedControl{display:grid;align-items:center;justify-items:center;gap:3px;border-left:2px solid rgba(31,36,33,.12);padding-left:8px}.harnessSpeedControl div{display:grid;grid-template-columns:30px minmax(48px,auto) 30px;align-items:center;gap:4px}.harnessSpeedControl button{display:grid;place-items:center;min-width:30px;padding:0}.harnessSpeedControl strong{color:#245a52;font-size:.86rem;line-height:1;text-align:center}.harnessRoomBadge{display:grid;justify-items:end;min-width:124px;gap:2px;border-left:2px solid rgba(31,36,33,.12);color:#245a52;padding-left:10px}.harnessRoomBadge strong{color:#245a52;font-size:1.18rem;line-height:1}.harnessRoomBadge em{overflow:hidden;max-width:154px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.harnessScroller{display:flex;min-height:0;gap:14px;overflow:auto;padding:2px 2px 12px}.harnessSeatCard{display:grid;align-content:start;flex:0 0 auto;width:max-content;max-height:100%;gap:8px;overflow:hidden;border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7e6;box-shadow:0 10px 28px #1f242117;padding:10px}.harnessSeatCard.active{border-color:#d7a02f;box-shadow:0 0 0 3px #d7a02f47,0 14px 34px #1f242124}.harnessObserverCard{border-color:#245a5257}.harnessSeatHeader{display:flex;align-items:center;justify-content:space-between;gap:7px}.harnessSeatHeader>div{display:grid;min-width:0;gap:4px}.harnessSeatHeader strong{overflow:hidden;max-width:154px;font-size:1rem;line-height:1;text-overflow:ellipsis;white-space:nowrap}.harnessSwitch{display:flex;align-items:center;flex:0 0 auto;gap:5px;color:#1f2421;font-size:.72rem;font-weight:900}.harnessSwitch input{width:16px;height:16px;accent-color:#245a52}.harnessSeatControls{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:6px}.harnessSeatControls label{display:grid;min-width:0;align-items:center}.harnessSeatControls select{width:100%;min-height:34px;border:1px solid rgba(31,36,33,.24);border-radius:8px;background:#fff;color:#1f2421;font-size:.86rem;font-weight:850;padding:0 7px}.harnessIconButton{display:grid;place-items:center;width:34px;min-width:34px;min-height:34px;padding:0;font-size:1rem;line-height:1}.harnessSeatError{border-radius:8px;background:#fff7f4;color:#b33f3a;font-size:.82rem;font-weight:850;line-height:1.2;padding:8px 9px}.harnessFrameViewport{justify-self:center;overflow:hidden;border:2px solid #1f2421;border-radius:8px;background:#f7f5ef}.harnessFrame{display:block;border:0;border-radius:0;background:#f7f5ef;transform-origin:top left}.harnessLabShell{display:grid;grid-template-columns:minmax(420px,1fr) 430px;width:100%;height:100dvh;gap:12px;overflow:hidden;padding:12px}.harnessLabFramePanel,.harnessDevPanel{min-height:0;border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7e6;box-shadow:0 10px 28px #1f242117}.harnessLabFramePanel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;overflow:hidden;padding:10px}.harnessLabHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}.harnessLabHeader>div:first-child{display:grid;gap:3px}.harnessLabHeader span,.harnessDevSection h2,.harnessStateGrid dt,.harnessQueueItem span,.harnessCommunitySlot span,.harnessDevHint{color:#68716c;font-size:.72rem;font-weight:950;line-height:1;text-transform:uppercase}.harnessLabHeader strong{color:#245a52;font-size:1.1rem;line-height:1}.harnessLabActions{display:flex;flex-wrap:wrap;gap:6px}.harnessLabActions button,.harnessDevPanel button{min-height:34px;padding:0 10px;font-size:.82rem}.harnessLabFrameViewport{display:grid;place-items:center;min-height:0;overflow:auto;border:2px solid #1f2421;border-radius:8px;background:#f7f5ef}.harnessLabFrame{width:390px;height:844px;border:0;background:#f7f5ef}.harnessLabEmpty{display:grid;place-items:center;width:min(100%,390px);min-height:420px;color:#68716c;font-weight:900}.harnessDevPanel{display:grid;align-content:start;gap:10px;overflow:auto;padding:10px}.harnessDevSection{display:grid;gap:8px;border-bottom:2px solid rgba(31,36,33,.1);padding-bottom:10px}.harnessDevSection:last-child{border-bottom:0;padding-bottom:0}.harnessDevSection input,.harnessDevSection select{width:100%;min-height:36px;border:1px solid rgba(31,36,33,.24);border-radius:8px;background:#fff;color:#1f2421;font-size:.86rem;font-weight:850;outline:none;padding:0 9px}.harnessComboField{display:grid;gap:7px;min-width:0}.harnessComboField label{display:grid;gap:5px}.harnessComboField label span,.harnessComboSelected span{color:#68716c;font-size:.72rem;font-weight:950;line-height:1;text-transform:uppercase}.harnessComboSelected{display:grid;gap:4px;border:1px solid rgba(36,90,82,.18);border-radius:8px;background:#245a520d;padding:8px}.harnessComboSelected strong{overflow:hidden;color:#245a52;font-size:.9rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.harnessComboList{display:grid;max-height:210px;gap:4px;overflow:auto;border:1px solid rgba(31,36,33,.14);border-radius:8px;background:#ffffff8a;padding:5px}.harnessComboList button{display:grid;align-content:start;justify-items:start;width:100%;height:auto;min-height:46px;gap:3px;overflow:hidden;border-color:transparent;background:transparent;padding:6px 7px;text-align:left;white-space:normal}.harnessComboList button.selected{border-color:#245a526b;background:#245a521a}.harnessComboList button strong{color:#1f2421;font-size:.84rem;line-height:1.12;overflow-wrap:anywhere}.harnessComboList button span,.harnessComboList p{color:#68716c;font-size:.74rem;font-weight:800;line-height:1.15;overflow:hidden;overflow-wrap:anywhere}.harnessComboList button span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.harnessAttachRow,.harnessSlotEditor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.harnessSlotEditor{grid-template-columns:92px minmax(0,1fr) auto;align-items:start}.harnessStateGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}.harnessStateGrid div{display:grid;gap:4px;border:1px solid rgba(36,90,82,.18);border-radius:8px;background:#245a520d;padding:8px}.harnessStateGrid dd{margin:0;overflow:hidden;color:#245a52;font-size:.95rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.harnessDevMessage{border-radius:8px;background:#fff7d8;color:#7c5a16;font-size:.82rem;font-weight:850;line-height:1.2;padding:8px 9px}.harnessDevHint{line-height:1.25;text-transform:none}.harnessQueueList,.harnessCommunitySlots{display:grid;gap:7px}.harnessQueueList>p{color:#68716c;font-size:.86rem;font-weight:800;line-height:1.25}.harnessQueueItem,.harnessCommunitySlot{display:grid;gap:7px;border:1px solid rgba(31,36,33,.14);border-radius:8px;background:#ffffff7a;padding:8px}.harnessQueueItem{grid-template-columns:minmax(0,1fr) auto;align-items:center}.harnessQueueItem>div,.harnessCommunitySlot{min-width:0}.harnessQueueItem>div:first-child{display:grid;gap:4px}.harnessQueueItem>div:last-child{display:flex;gap:4px}.harnessQueueItem strong,.harnessCommunitySlot strong{overflow:hidden;color:#1f2421;font-size:.9rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.harnessCommunitySlot{grid-template-columns:30px minmax(0,1fr) auto;align-items:center}@media(max-width:760px){.harnessToolbar{align-items:stretch;flex-direction:column}.harnessTitle,.harnessObserveControl,.harnessSpeedControl,.harnessRoomBadge{min-width:0}.harnessSpeedControl{justify-items:start;border-left:0;border-top:2px solid rgba(31,36,33,.12);padding:8px 0 0}.harnessObserveControl{border-left:0;border-top:2px solid rgba(31,36,33,.12);padding:8px 0 0}.harnessRoomBadge{justify-items:start;border-left:0;border-top:2px solid rgba(31,36,33,.12);padding:8px 0 0}.harnessLabShell{grid-template-columns:1fr;overflow:auto}.harnessLabFrameViewport{max-height:70vh}.harnessDevPanel{overflow:visible}}.reviewShell{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;min-height:100dvh;overflow:hidden;padding:14px}.reviewMoved{display:grid;min-height:100dvh;place-items:center;padding:18px}.reviewMoved section{display:grid;gap:10px;width:min(100%,420px);border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7f2;box-shadow:0 18px 60px #1f242114;padding:18px}.reviewMoved h1{font-size:2rem;letter-spacing:0}.reviewMoved a{color:#245a52;font-weight:900}.reviewSidebar,.reviewMainPanel,.reviewPanel,.reviewEventAudit{border:2px solid rgba(31,36,33,.14);border-radius:8px;background:#fffdf7f2;box-shadow:0 18px 60px #1f242114}.reviewSidebar{display:grid;align-content:start;gap:10px;max-height:calc(100dvh - 28px);min-height:0;overflow:auto;padding:14px}.reviewMainPanel{display:grid;align-content:start;gap:14px;max-height:calc(100dvh - 28px);min-width:0;overflow:auto;padding:14px}.reviewHeaderBlock{display:grid;gap:5px}.reviewHeaderBlock h1{font-size:2.1rem;letter-spacing:0}.reviewSearch,.reviewAuditFilters input,.reviewAuditFilters select{width:100%;min-height:40px;border:2px solid rgba(31,36,33,.16);border-radius:8px;background:#fff;color:#1f2421;font-size:.88rem;font-weight:800;outline:none;padding:0 10px}.reviewFilterRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.reviewList{display:grid;gap:8px}.reviewList button{display:grid;justify-items:start;width:100%;min-height:0;border-color:#1f24211f;background:#fff;font-size:.84rem;padding:10px;text-align:left}.reviewList button.active{border-color:#245a52;background:#245a5217}.reviewGamePlayers{width:100%;min-width:0;overflow-wrap:anywhere}.reviewList span,.reviewList small,.reviewGamePlayers,.reviewPanelTitle span,.reviewHeaderMeta span,.reviewSummaryCard span,.reviewMuted,.reviewJokerStat summary span,.reviewJokerDrilldown span,.reviewPackOpen span,.reviewEventAudit>summary span,.reviewEventRow span,.reviewEventRow em,.reviewEventRow small,.reviewEventFacts span{color:#68716c;font-size:.74rem;font-style:normal;font-weight:850}.reviewStatus{display:inline-grid;min-height:22px;align-items:center;border-radius:999px;background:#1f242114;padding:0 8px;text-transform:uppercase}.reviewStatus.completed{background:#245a521f;color:#245a52}.reviewStatus.active{background:#d7a02f2e;color:#8a5f2c}.reviewStatus.abandoned{background:#b33f3a1f;color:#b33f3a}.reviewGameHeader{display:flex;align-items:start;justify-content:space-between;gap:16px;border-bottom:2px solid rgba(31,36,33,.1);padding-bottom:12px}.reviewGameHeader h2{font-size:1.7rem;letter-spacing:0}.reviewHeaderMeta{display:grid;justify-items:end;gap:4px;min-width:150px}.reviewSummaryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.reviewSummaryCard{display:grid;align-content:start;gap:5px;min-height:78px;border:2px solid rgba(31,36,33,.11);border-radius:8px;background:#fff;padding:12px}.reviewSummaryCard strong{min-width:0;overflow-wrap:anywhere;font-size:1rem}.reviewPanel,.reviewEventAudit{display:grid;gap:12px;padding:14px}.reviewPanelTitle,.reviewEventAudit>summary,.reviewJokerStat summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.reviewPanelTitle h2{font-size:1.05rem}.reviewChartWrap{display:grid;gap:8px;min-width:0}.reviewScoreChart{width:100%;min-height:340px;border:1px solid rgba(31,36,33,.08);border-radius:8px;background:#fffdf7}.reviewScoreChart line{stroke:#1f24212e;stroke-width:2}.reviewScoreChart text{fill:#68716c;font-size:13px;font-weight:900;text-anchor:middle}.reviewScoreChart g:first-of-type text,.reviewScoreChart g:nth-of-type(2) text,.reviewScoreChart g:nth-of-type(3) text,.reviewScoreChart g:nth-of-type(4) text,.reviewScoreChart g:nth-of-type(5) text{text-anchor:end}.reviewScoreChart circle+text{fill:#fff;font-size:10px;pointer-events:none;text-anchor:middle}.reviewScoreChart .reviewAdvantageSegment{filter:drop-shadow(0 2px 2px rgba(31,36,33,.16));opacity:.9}.reviewChartLegend,.reviewMarkerLegend{display:flex;flex-wrap:wrap;gap:8px 14px}.reviewChartLegend span,.reviewMarkerLegend span{display:inline-flex;align-items:center;gap:6px;color:#68716c;font-size:.78rem;font-weight:850}.reviewChartLegend i{width:12px;height:12px;border-radius:50%}.reviewEmptyChart,.reviewLoading{display:grid;min-height:240px;place-items:center;border-radius:8px;background:#1f24210a;color:#68716c;font-weight:900}.reviewDetailGrid{display:grid;align-items:start;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:14px}.reviewStandings,.reviewJokerStats,.reviewJokerDrilldown,.reviewEventRows{display:grid;gap:8px}.reviewStandingRow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid rgba(31,36,33,.1);border-radius:8px;background:#fff;padding:10px}.reviewStandingRow span,.reviewStandingRow em{color:#68716c;font-style:normal;font-weight:900}.reviewJokerStat{border:1px solid rgba(31,36,33,.1);border-radius:8px;background:#fff;padding:10px}.reviewJokerStat summary{cursor:pointer;list-style:none}.reviewJokerStat summary::-webkit-details-marker,.reviewEventAudit>summary::-webkit-details-marker{display:none}.reviewJokerBar{height:8px;overflow:hidden;border-radius:999px;background:#1f242114;margin:10px 0}.reviewJokerBar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#245a52,#d7a02f)}.reviewJokerDrilldown>div,.reviewPackOpen{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;border-radius:8px;background:#245a520f;padding:8px}.reviewPackOpen{grid-template-columns:minmax(0,1fr)}.reviewPackOpen p{color:#68716c;font-size:.78rem;font-weight:800;line-height:1.35}.reviewEventAudit>summary{cursor:pointer}.reviewAuditFilters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(150px,1fr));gap:8px}.reviewEventItem{display:grid;gap:0}.reviewEventRow{display:grid;grid-template-columns:58px minmax(160px,1fr) minmax(100px,150px) minmax(180px,1.2fr);align-items:center;gap:10px;width:100%;min-height:46px;border-color:#1f24211f;border-radius:8px;background:#fff;padding:8px 10px;text-align:left}.reviewEventRow[aria-expanded=true]{border-color:#245a52;border-bottom-left-radius:0;border-bottom-right-radius:0;background:#245a5214}.reviewEventRow strong,.reviewEventRow small{min-width:0;overflow-wrap:anywhere}.reviewEventDetail{display:grid;gap:10px;border:2px solid rgba(36,90,82,.18);border-top:0;border-radius:0 0 8px 8px;background:#fffdf7;padding:10px}.reviewEventFacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.reviewEventFacts span,.reviewEventFacts strong{min-width:0;overflow-wrap:anywhere}.reviewEventDetail pre{max-height:340px;overflow:auto;border-radius:8px;background:#1f2421;color:#fffdf7;font-size:.74rem;line-height:1.45;margin:0;padding:10px}@media(max-width:1120px){.reviewShell,.reviewDetailGrid{grid-template-columns:1fr}.reviewSidebar,.reviewMainPanel{max-height:none}.reviewShell{min-height:100dvh;overflow:auto}}@media(max-width:720px){.reviewShell{padding:10px}.reviewGameHeader,.reviewPanelTitle,.reviewEventAudit>summary,.reviewJokerStat summary{align-items:start;flex-direction:column}.reviewHeaderMeta{justify-items:start}.reviewFilterRow,.reviewAuditFilters,.reviewEventFacts{grid-template-columns:1fr}.reviewEventRow{grid-template-columns:44px minmax(0,1fr)}.reviewEventRow em,.reviewEventRow small{grid-column:2}.reviewScoreChart{min-height:300px}}
