/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-outline-style:solid}}}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-\[160px\]{height:160px}.h-full{height:100%}.max-h-\[160px\]{max-height:160px}.max-h-\[200px\]{max-height:200px}.max-h-\[240px\]{max-height:240px}.min-h-screen{min-height:100vh}.w-\[100px\]{width:100px}.w-auto{width:auto}.w-full{width:100%}.min-w-\[120px\]{min-width:120px}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.overflow-x-auto{overflow-x:auto}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#16c784\]{border-color:#16c784}.border-\[\#6496DC\]{border-color:#6496dc}.border-\[\#DC6464\]{border-color:#dc6464}.bg-\[rgba\(100\,150\,220\,0\.1\)\]{background-color:#6496dc1a}.bg-\[rgba\(220\,100\,100\,0\.1\)\]{background-color:#dc64641a}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.object-contain{object-fit:contain}.text-center{text-align:center}.text-\[\#16c784\]{color:#16c784}.text-\[\#a5b4fc\]{color:#a5b4fc}.uppercase{text-transform:uppercase}.italic{font-style:italic}.shadow-\[0_10px_40px_rgba\(220\,38\,38\,0\.15\)\]{--tw-shadow:0 10px 40px var(--tw-shadow-color,#dc262626);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{color:#f1f5f9;background:linear-gradient(to bottom right,#0f172a,#1e293b);font-family:Segoe UI,Helvetica Neue,sans-serif}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}.game-dialog-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-dialog{color:#ccc;background:#1a1a2e;border:2px solid #16c784;border-radius:12px;flex-direction:column;width:100%;max-width:min(600px,95vw);max-height:calc(100vh - 1rem);padding:2rem;display:flex;overflow-y:auto;box-shadow:0 8px 32px #00000080}.game-dialog--wide{max-width:min(800px,95vw)}.game-dialog--split{align-items:flex-start;gap:2rem;display:flex}.game-dialog-title{color:#16c784;text-align:center;border-bottom:2px solid #16c784;margin:0 0 1.5rem;padding-bottom:.75rem;font-size:1.6rem;font-weight:700}.game-dialog-info{background:#fff3cd;border-left:4px solid #ffc107;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.game-dialog-info-text{color:#856404;margin:.5rem 0 0;font-size:.9rem}.game-dialog-info-text--warning{color:#d32f2f;font-weight:700}.game-dialog-card-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:.75rem;margin:1rem 0;display:grid}.game-dialog-card-btn{appearance:none;cursor:pointer;aspect-ratio:59/92;background:0 0;border:none;border-radius:1px;outline:none;width:59px;padding:0;transition:transform .2s;display:block;position:relative;overflow:hidden}.game-dialog-card-btn:hover{transform:translateY(-2px)}.game-dialog-card-btn img{object-fit:fill;width:100%;height:100%;display:block}.game-dialog-card-selected-overlay{background:#4caf5080;position:absolute;inset:0}.game-dialog-card-reserved-overlay{background:#0000008c;justify-content:center;align-items:center;font-size:1.2rem;display:flex;position:absolute;inset:0}.game-dialog-actions{gap:1rem;margin-top:1.5rem;display:flex}.game-dialog-btn-confirm,.game-dialog-btn-cancel,.game-dialog-btn-neutral{cursor:pointer;border:2px solid #333;border-radius:12px;flex:1;padding:.75rem 1.5rem;font-size:1rem;font-weight:700;transition:all .2s}.game-dialog-btn-confirm{color:#fff;background:#4caf50}.game-dialog-btn-confirm:hover:not(:disabled){background:#45a049;transform:scale(1.02)}.game-dialog-btn-confirm:disabled{color:#666;cursor:not-allowed;opacity:.6;background:#ccc}.game-dialog-btn-cancel{color:#fff;background:#f44336}.game-dialog-btn-cancel:hover{background:#da190b;transform:scale(1.02)}.game-dialog-btn-neutral{color:#fff;background:#444;border-color:#666}.game-dialog-btn-neutral:hover{background:#555;transform:scale(1.02)}@media (width<=767px){.game-dialog-overlay{align-items:flex-end}.game-dialog{width:100%;max-width:100%;max-height:85dvh;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));border-width:2px 0 0;border-radius:16px 16px 0 0}.game-dialog--wide{max-width:100%}}@media (width<=600px){.game-dialog{padding-top:1rem;padding-left:1rem;padding-right:1rem}.game-dialog--split{flex-direction:column;gap:1.5rem}.game-dialog-card-grid{grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:.5rem}.game-dialog-actions{flex-direction:column}}.mobile-board{color:#e2e8f0;touch-action:manipulation;background:#0a0f1e;flex-direction:column;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.mobile-status-bar{padding:5px 8px;padding-top:calc(5px + env(safe-area-inset-top,0px));padding-right:calc(var(--pvm-ingame-action-count,2) * 40px + 6px);background:#0f172af7;border-bottom:1px solid #94a3b840;flex:none;align-items:center;gap:6px;display:flex;overflow:hidden}.mobile-status-bar--compact{gap:5px}.mobile-status-avatar{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:none;align-items:center;gap:1px;width:28px;padding:0;display:flex}.mobile-status-bar--compact .mobile-status-avatar{width:26px}.mobile-status-avatar-circle{color:#0a0f1e;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.7rem;font-weight:700;display:flex;position:relative}.mobile-status-bar--compact .mobile-status-avatar-circle{width:22px;height:22px;font-size:.65rem}.mobile-status-avatar--own .mobile-status-avatar-circle{box-shadow:0 0 0 2px #facc15,0 0 6px 1px #facc1580}.mobile-status-avatar-turn-dot{background:#22c55e;border:1.5px solid #0a0f1e;border-radius:50%;width:9px;height:9px;position:absolute;top:-1px;right:-1px}.mobile-status-avatar-points{color:#fde68a;white-space:nowrap;font-size:.55rem;font-weight:700;line-height:1.15}.mobile-status-detail{cursor:default;background:#1e293bb3;border:1px solid #94a3b84d;border-radius:8px;flex:auto;align-items:center;gap:6px;min-width:0;padding:3px 7px 3px 5px;display:flex}.mobile-status-bar--compact .mobile-status-detail{gap:5px}.mobile-status-detail--tappable{cursor:pointer}.mobile-status-detail--own{border-color:#facc15;box-shadow:0 0 6px 1px #facc1559}.mobile-status-detail--turn{border-color:#22c55e;box-shadow:0 0 6px 1px #22c55e59}.mobile-status-detail-circle{color:#0a0f1e;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:700;display:flex}.mobile-status-bar--compact .mobile-status-detail-circle{width:24px;height:24px;font-size:.7rem}.mobile-status-detail-info{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.mobile-status-detail-line{align-items:center;gap:5px;min-width:0;display:flex}.mobile-status-bar--compact .mobile-status-detail-line{gap:4px}.mobile-status-detail-name{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;max-width:6em;font-size:.7rem;font-weight:700;line-height:1.15;overflow:hidden}.mobile-status-bar--compact .mobile-status-detail-name{max-width:4.5em}.mobile-status-turn-badge{color:#04160f;white-space:nowrap;background:#34d399;border-radius:999px;flex:none;padding:0 4px;font-size:.55rem;font-weight:700;line-height:1.3}.mobile-status-detail-meta{white-space:nowrap;align-items:center;gap:6px;font-size:.62rem;font-weight:700;line-height:1.15;display:flex}.mobile-status-bar--compact .mobile-status-detail-meta{gap:4px}.mobile-status-detail-rank{color:#94a3b8}.mobile-status-detail-points{color:#fde68a}.mobile-status-detail-diamonds{color:#67e8f9}.mobile-status-detail-actions{color:#4ade80}.mobile-status-detail-chevron{color:#64748b;flex:none;font-size:.7rem;line-height:1}.mobile-scroll{-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;gap:12px;padding:8px;display:flex;overflow:hidden auto}.mobile-section-title{text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin:0 0 4px 2px;font-size:.65rem;font-weight:700}.mobile-zone{width:100%;max-width:440px;margin-inline:auto}.mobile-market-row{align-items:start;gap:6px;display:grid}.mobile-market-row--pearls{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-market-row--characters{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-market-zone{flex-direction:column;gap:10px;display:flex}.mobile-card-btn{appearance:none;cursor:pointer;background:0 0;border:none;border-radius:4px;outline:none;flex:none;padding:0;display:block;position:relative;overflow:hidden}.mobile-card-btn:disabled{cursor:default}.mobile-card-btn img{object-fit:fill;border-radius:4px;width:100%;height:100%;display:block}.mobile-card-btn--character,.mobile-card-btn--pearl{aspect-ratio:333/515;width:100%}.mobile-card-btn--deck img{filter:brightness(.85)}.mobile-deck-count{color:#e2e8f0;background:#0a0f1ed9;border-radius:3px;padding:0 3px;font-size:.6rem;font-weight:700;position:absolute;bottom:2px;right:2px}.mobile-portal-section{align-items:flex-start;gap:10px;display:flex}.mobile-portal-slots{flex:224px;gap:6px;min-width:0;max-width:224px;display:flex}.mobile-portal-slots>*{flex:1 1 0;min-width:0}.mobile-portal-slots--sheet{margin-bottom:16px}.mobile-portal-slot-col{flex-direction:column;align-items:center;gap:4px;display:flex}.mobile-portal-swap-btn{flex:none;padding:2px 8px;font-size:.65rem}.mobile-card-btn--portal{aspect-ratio:333/515;border:2px solid #94a3b84d;border-radius:6px;width:100%}.mobile-card-btn--portal-empty{color:#475569;background:#94a3b814;justify-content:center;align-items:center;font-size:1.4rem;display:flex}.mobile-card-btn--actionable{box-shadow:0 0 0 2px #22c55e}.mobile-card-btn--inactive{opacity:.4}.mobile-portal-meta{color:#94a3b8;flex-direction:column;gap:6px;min-width:0;font-size:.7rem;display:flex}.mobile-activated-counter{color:#e2e8f0;cursor:pointer;background:#1e293bcc;border:1px solid #94a3b84d;border-radius:8px;align-items:center;gap:4px;padding:6px 10px;font-size:.72rem;font-weight:700;display:flex}.mobile-hand-dock{-webkit-overflow-scrolling:touch;background:#0f172aeb;border-top:1px solid #94a3b833;flex:none;align-items:flex-end;padding:8px;display:flex;overflow-x:auto}.mobile-card-btn--hand{aspect-ratio:333/515;width:48px;margin-right:-9px;box-shadow:-4px 0 9px #0006}.mobile-card-btn--hand:last-child{margin-right:0}.mobile-card-btn--joker{box-shadow:0 0 0 2px #c4b5fd}.mobile-card-btn--hand.mobile-card-btn--joker{margin-left:6px}.mobile-action-bar{padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));background:#0a0f1efa;border-top:1px solid #94a3b833;flex:none;gap:8px;display:flex}.mobile-action-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#6366f1e6;border:2px solid #6366f1;border-radius:8px;flex:1 1 0;padding:10px 6px;font-size:.78rem;font-weight:700}.mobile-action-btn--end-turn{background:#ef4444e6;border-color:#ef4444}.mobile-action-btn:disabled{opacity:.4;cursor:default}.mobile-banner-row{flex-direction:column;align-items:center;gap:3px;padding:4px 8px;display:flex}.mobile-banner{color:#fde68a;text-align:center;background:#78350feb;border:1px solid #d97706;border-radius:8px;padding:3px 12px;font-size:.72rem;font-weight:700}.mobile-banner--final-round{color:#bfdbfe;background:#1e3a8aeb;border-color:#3b82f6}.mobile-banner--pearl-refresh{color:#e0d0ff;background:#1e143ceb;border-color:#96c}.mobile-banner--reshuffle{background:#0f172ae6}.mobile-activated-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;max-height:60dvh;padding:4px 2px;display:grid;overflow-y:auto}.mobile-activated-grid .mobile-card-btn--portal{width:100%;max-width:84px}.mobile-opponent-sheet-header{align-items:center;gap:10px;margin-bottom:10px;font-size:.75rem;font-weight:700;display:flex}.mobile-opponent-sheet-hand-count{color:#94a3b8}.mobile-opponent-sheet-actions{justify-content:center}.mobile-opponent-sheet-close-btn{flex:none;padding:.6rem 2rem}.lobby-container{background:#1a1a2e;border-radius:12px;max-width:600px;margin:2rem auto;padding:2rem;box-shadow:0 8px 32px #0000004d}.lobby-container h1{text-align:center;color:#16c784;margin-bottom:2rem}.lobby-section{background:#ffffff0d;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.lobby-section h2{color:#fff;margin:0 0 1rem;font-size:1.2rem}.form-group{margin-bottom:1rem}.form-group label{color:#ccc;margin-bottom:.5rem;display:block}.lobby-container input,.lobby-container select{color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;width:100%;padding:.75rem;font-size:1rem}.lobby-container input:focus,.lobby-container select:focus{border-color:#16c784;outline:none}.lobby-container button{color:#fff;cursor:pointer;background:#16c784;border:none;border-radius:6px;width:100%;padding:1rem;font-size:1rem;font-weight:700;transition:background .2s}.lobby-container button:hover{background:#14b876}.lobby-container button:active{transform:scale(.98)}.game-container{position:relative}.in-game-actions{z-index:900;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}@media (width<=767px){.in-game-actions{top:calc(5px + env(safe-area-inset-top,0px));gap:6px;right:6px}.in-game-actions .leave-game-btn{border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:1rem;line-height:1;display:flex}}.leave-game-btn{color:#fff;cursor:pointer;z-index:900;background:#f44336;border:none;border-radius:6px;padding:.75rem 1.5rem;font-weight:700;position:fixed;top:1rem;right:1rem}.leave-game-btn:hover{background:#d32f2f}.lobby-error{color:#856404;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;margin-bottom:1rem;padding:.6rem 1rem}.no-matches{color:#888;font-style:italic}.match-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.match-item{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;grid-template-columns:1fr auto;align-items:start;gap:.5rem 1rem;padding:.7rem 1rem;display:grid}.match-item-info{flex-direction:column;gap:.4rem;display:flex}.match-item-header{color:#fff;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.match-time,.match-players{color:#94a3b8cc}.match-mode-badge{color:#a5b4fc;white-space:nowrap;background:#6366f140;border:1px solid #6366f180;border-radius:4px;padding:.1rem .4rem;font-size:.75rem}.match-creator{color:#fff;font-size:.85rem}.match-creator strong{color:#16c784}.match-player-table{border-collapse:collapse;width:100%}.match-player-table td{vertical-align:middle;padding:.1rem .4rem .1rem 0;font-size:.8rem}.match-player-table td:first-child{color:#94a3b880;font-variant-numeric:tabular-nums;width:1.4rem}.match-player-table td:last-child{color:#cbd5e1e6}.match-player-table td.match-slot-empty{color:#94a3b84d;font-style:italic}.form-group--toggle{margin-bottom:.75rem}.toggle-label{color:#ccc;cursor:pointer;align-items:center;gap:.5rem;font-size:.95rem;display:flex}.toggle-label input[type=checkbox]{cursor:pointer;accent-color:#16c784;width:auto;margin:0;padding:0}.match-join-btn{white-space:nowrap;align-self:start;margin-top:.15rem;width:auto!important;padding:.35rem .85rem!important;font-size:.85rem!important}
