.login-page{flex:1;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg-deep, #0f0f12)}.login-card{width:min(440px,100%);padding:2rem}.login-card h1{margin:0 0 1.25rem;font-size:1.5rem}.login-mode-toggle{display:flex;gap:.5rem;margin-bottom:1.25rem}.login-mode-toggle button{flex:1;padding:.5rem .75rem;border:1px solid var(--border, #444);background:var(--bg-card, #1a1a20);color:var(--text, #e8e8e8);border-radius:6px;cursor:pointer;font-family:inherit;font-size:.9rem}.login-mode-toggle button.is-active{border-color:var(--accent-gold-dim, #a67c00);background:#a67c0026}.login-form{display:flex;flex-direction:column;gap:1rem}.login-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.login-form input{padding:.55rem .75rem;border-radius:6px;border:1px solid var(--border, #444);background:var(--bg-deep, #0f0f12);color:var(--text, #e8e8e8);font-family:inherit}.login-error{margin:0;color:var(--accent-blood, #c44);font-size:.9rem}.login-submit{margin-top:.25rem;padding:.65rem 1rem;border:none;border-radius:6px;background:var(--accent-gold-dim, #8a7020);color:var(--bg-deep, #0f0f12);font-weight:600;cursor:pointer;font-family:inherit}.login-submit:disabled{opacity:.6;cursor:not-allowed}.auth-loading{min-height:40vh;display:flex;align-items:center;justify-content:center;color:var(--text-dim, #aaa)}.bot-add-form-stack{display:flex;flex-direction:column;gap:.75rem;width:100%;margin-top:.5rem}.bot-add-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.5rem .65rem;border:none;padding:0;margin:0}.bot-add-grid legend{grid-column:1 / -1;padding:0;margin:0 0 .35rem;font-size:.85rem;color:var(--text-dim)}.bot-add-name-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr);gap:.5rem .65rem;grid-column:1 / -1;align-items:end}.bot-add-name-label-line{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.35rem}.bot-add-name-priority-hint{font-size:.72rem;font-weight:400;font-style:italic;color:var(--text-dim);white-space:nowrap}@media (max-width: 720px){.bot-add-name-row{grid-template-columns:1fr}}.bot-add-rules{padding-top:.35rem;border-top:1px solid var(--border)}.bot-add-catalog-hint{font-size:.82rem;color:var(--text-dim);margin:.35rem 0 0;font-style:italic;line-height:1.35}.bot-add-preview.muted{font-size:.82rem;color:var(--text-dim);margin:.35rem 0 0;line-height:1.4}.bot-add-preview .bot-add-preview-bits{display:block;font-size:.78rem;opacity:.92}.bot-add-form-stack select,.bot-add-form-stack input{margin-top:.25rem;padding:.45rem .5rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit}.bot-add-form-stack label{display:block;font-size:.85rem;color:var(--text-dim)}.city-explorer{width:100%;max-width:52rem;margin:0 auto}.city-explorer-head{text-align:center;margin-bottom:1rem}.city-explorer-title{margin:0 0 .35rem;font-size:1.35rem}.city-explorer-sub{margin:0;font-size:.9rem}.city-wallet{margin:.75rem 0 0;font-size:1rem}.city-explorer-loading,.city-explorer-err{text-align:center}.city-map-wrap{position:relative;margin:0 auto 1rem}.city-map-bg{position:relative;min-height:280px;border-radius:12px;background:radial-gradient(ellipse 120% 80% at 50% 40%,rgba(60,90,120,.35),transparent 55%),linear-gradient(165deg,#1a2636,#243447 45%,#152028);border:1px solid var(--border, rgba(255, 255, 255, .12));overflow:hidden}.city-map-pin{position:absolute;transform:translate(-50%,-50%);background:none;border:none;padding:0;cursor:pointer;text-align:center;max-width:min(140px,40vw)}.city-map-pin-dot{display:block;width:18px;height:18px;margin:0 auto .25rem;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f4d58d,#c0842f);box-shadow:0 0 0 3px #00000059,0 2px 8px #00000073}.city-map-pin.is-active .city-map-pin-dot{box-shadow:0 0 0 4px #b4dcff8c,0 2px 10px #00000080}.city-map-pin-label{display:block;font-size:.72rem;line-height:1.25;color:var(--text, #e8e4dc);text-shadow:0 1px 3px rgba(0,0,0,.85)}.city-map-hint{text-align:center;font-size:.85rem;margin-top:.5rem}.city-venue-detail.card-like{padding:1rem 1.1rem;border-radius:10px;border:1px solid var(--border, rgba(255, 255, 255, .12));background:var(--bg-panel, rgba(20, 28, 38, .92))}.city-venue-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.city-venue-detail-head h3{margin:0;font-size:1.15rem}.btn-city-back{flex-shrink:0;padding:.35rem .65rem;font-size:.85rem;border-radius:6px;border:1px solid var(--border);background:transparent;color:inherit;cursor:pointer}.city-venue-desc{margin:.65rem 0;line-height:1.45;font-size:.92rem}.city-table-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.65rem}.city-table-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border-radius:8px;background:#0000002e;border:1px solid rgba(255,255,255,.06)}.city-table-meta{display:flex;flex-direction:column;gap:.2rem;min-width:0}.city-table-name{font-weight:600}.city-table-code,.city-table-stakes,.city-table-players{font-size:.82rem;opacity:.92}.btn-join-city-table{padding:.45rem .85rem;border-radius:8px;border:none;cursor:pointer;font-size:.88rem;background:linear-gradient(180deg,#c9983e,#9a7028);color:#1a1410;font-weight:600}.btn-join-city-table:disabled{opacity:.45;cursor:not-allowed}.city-table-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;max-width:min(100%,18rem)}.city-table-why{margin:0;font-size:.78rem;line-height:1.35;text-align:right}.city-table-access{font-size:.78rem;margin-top:.15rem}.city-table-access--open{color:#8ecf9a}.city-table-access--closed{color:#e8a87c}.city-table-access--running{color:#b8c5e0}.muted{opacity:.82}.lobby{flex:1;padding:2rem;max-width:900px;margin:0 auto;width:100%;animation:motion-fade-in var(--duration-slow, .65s) var(--ease-out, ease) forwards}.lobby.home-view .hero{text-align:center;margin-bottom:2rem;color:var(--text-dim);font-style:italic}.lobby .actions{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.lobby .actions.actions-single{grid-template-columns:1fr;max-width:520px;margin:0 auto}.lobby .actions.actions-single .card.join{min-width:min(30vw,95vw);min-height:30vh}.rooms-list h2{margin-top:0}.no-rooms{margin:0;color:var(--text-dim);font-style:italic}.rooms-list-ul{list-style:none;padding:0;margin:0}.room-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border);transition:background-color var(--duration-instant, .12s) var(--ease-soft, ease)}.room-item:hover{background:#c9a2270a;border-radius:6px;padding-left:.35rem;padding-right:.35rem;margin-left:-.35rem;margin-right:-.35rem}.room-item:last-child{border-bottom:none}.room-name-wrap{display:inline-flex;align-items:center;gap:.25rem}.room-name-btn{font-weight:600;min-width:100px;text-align:left;background:none;border:none;color:var(--text);cursor:pointer;padding:0;font-family:inherit;font-size:inherit}.room-name-btn:hover:not(:disabled){color:var(--accent-gold);text-decoration:underline}.room-name-btn:disabled{opacity:.7;cursor:not-allowed}.room-delete-x{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;font-size:1.1rem;line-height:1;color:var(--accent-blood);background:none;border:none;border-radius:2px;cursor:pointer;opacity:0;transition:opacity .15s}.room-item:hover .room-delete-x{opacity:1}.room-delete-x:hover:not(:disabled){background:#b4323233;color:#fff}.room-delete-x:disabled{opacity:0;cursor:not-allowed}.room-code{font-family:monospace;color:var(--accent-gold);font-size:.9rem}.room-meta{margin-left:auto;font-size:.85rem;color:var(--text-dim)}.lobby.lobby-mj-home{max-width:1200px}.lobby .actions.actions-mj{grid-template-columns:1fr;row-gap:1.5rem;align-items:stretch}.lobby .actions.actions-mj>.card{min-width:0;min-height:0;display:flex;flex-direction:column;align-self:stretch}.lobby .actions.actions-mj .mj-home-actions{order:1}.lobby .actions.actions-mj .mj-home-lists{order:2;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:stretch}.lobby .actions.actions-mj .mj-home-lists .rooms-list,.lobby .actions.actions-mj .mj-home-lists .waiting-players-home{display:flex;flex-direction:column;min-height:0}.lobby .actions.actions-mj .mj-home-lists .rooms-list .rooms-list-ul,.lobby .actions.actions-mj .mj-home-lists .waiting-players-home .waiting-players-home-list{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.lobby .actions.actions-mj .mj-home-actions{display:flex;flex-direction:column;justify-content:center;align-items:center}.mj-home-actions-buttons{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;justify-content:center}.mj-home-actions-buttons button{min-width:190px;width:190px;padding:.65rem .95rem;background:var(--accent-gold-dim);color:var(--bg-deep);border:none;border-radius:6px;font-weight:600;font-family:inherit;cursor:pointer}.mj-home-actions-buttons button:hover:not(:disabled){background:var(--accent-gold)}.mj-home-actions-buttons button:disabled{opacity:.55;cursor:not-allowed}.character-create-form{border-top:1px solid var(--border);margin-top:.35rem;padding-top:.5rem}.character-skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .6rem}.character-skills-grid .character-skill-cell{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--text-dim)}.character-skill-title{font-weight:600}.character-skills-grid .character-skill-cell>input[type=number]{width:100%}.character-skill-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;cursor:pointer;-webkit-user-select:none;user-select:none}.character-skill-toggle input{margin:0}.waiting-players-home h2{margin-top:0}.no-waiting{margin:0;color:var(--text-dim);font-style:italic}.characters-table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.characters-table{width:100%;border-collapse:collapse}.characters-table th,.characters-table td{text-align:left;vertical-align:middle;padding:.45rem .35rem;border-bottom:1px solid var(--border)}.characters-table th{font-size:.78rem;color:var(--text-dim);font-weight:600}.waiting-player-name{font-weight:600;color:var(--text)}.character-row-actions{display:inline-flex;gap:.35rem}.character-icon-btn{width:1.2rem;height:1.2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font-size:.95rem;line-height:1;padding:0}.character-icon-btn:hover:not(:disabled){color:var(--text);border-color:var(--accent-gold)}.character-icon-btn.danger{color:var(--accent-blood);border-color:var(--accent-blood)}.character-icon-btn.danger:hover:not(:disabled){background:#b4323233;color:#fff}.character-icon-btn.link-break{color:#89b2ff;border-color:#89b2ff}.character-icon-btn.link-break:hover:not(:disabled){background:#89b2ff2e;color:#d9e7ff}.character-key{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;color:var(--accent-gold);letter-spacing:.06em}.character-status{font-size:.75rem;padding:.12rem .45rem;border-radius:999px;border:1px solid var(--border);color:var(--text-dim)}.character-status.waiting{color:var(--accent-gold);border-color:var(--accent-gold)}.character-status.in_room{color:#8fd9ea;border-color:var(--accent-sea)}.character-edit-actions{display:flex;gap:.5rem;margin-top:.4rem}.character-key-btn{background:none;border:none;padding:0;cursor:pointer}.character-key-btn:hover .character-key{text-decoration:underline}.mj-home-popup-form label{display:block;margin-bottom:.7rem}.mj-home-popup-form input:not([type=radio]){display:block;width:100%;margin-top:.2rem}.mj-home-popup-form input[type=radio]{width:auto;margin:.15rem .4rem 0 0;flex-shrink:0;accent-color:var(--accent-gold, #c9a227)}.room-open-join-block{margin-bottom:.85rem}.room-open-join-title{display:block;font-size:.85rem;color:var(--text-dim);margin-bottom:.35rem}.room-open-join-options{display:flex;flex-direction:column;gap:.55rem}.room-open-join-radio{display:flex;align-items:flex-start;gap:0;font-size:.88rem;line-height:1.4;cursor:pointer}@media (max-width: 900px){.lobby .actions.actions-mj .mj-home-lists{grid-template-columns:1fr}}@media (max-width: 700px){.lobby .actions{grid-template-columns:1fr}}.lobby .card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:1.5rem;transition:border-color var(--duration-fast, .22s) var(--ease-soft, ease),box-shadow var(--duration-fast, .22s) var(--ease-soft, ease);animation:motion-fade-in-up var(--duration-normal, .4s) var(--ease-out, ease) backwards}.lobby .actions .card:nth-child(1){animation-delay:.06s}.lobby .actions .card:nth-child(2){animation-delay:.14s}.lobby .card:hover{border-color:#c9a22759;box-shadow:0 8px 28px #00000059}.lobby .card h2{margin-top:0;font-size:1.2rem;color:var(--accent-gold)}.lobby form label{display:block;margin-bottom:.75rem;font-size:.9rem;color:var(--text-dim)}.lobby form input{display:block;width:100%;margin-top:.25rem;padding:.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit}.join-skills{margin:1rem 0;padding-top:.75rem;border-top:1px solid var(--border)}.join-skills-label{display:block;font-size:.9rem;color:var(--text-dim);margin-bottom:.5rem}.join-skills-row{display:flex;flex-wrap:wrap;gap:1rem}.join-skills-row label{margin:0;min-width:0}.join-skills-row input{width:4.25rem;margin-top:.25rem;text-align:center}.lobby form button,.lobby .btn-start,.lobby .btn-add-bot,.lobby .btn-remove{margin-top:1rem;padding:.5rem 1rem;background:var(--accent-gold-dim);color:var(--bg-deep);border:none;border-radius:4px;font-weight:600}.lobby form button:hover:not(:disabled),.lobby .btn-start:hover:not(:disabled),.lobby .btn-add-bot:hover:not(:disabled){background:var(--accent-gold)}.lobby .disconnected{text-align:center;color:var(--text-dim);margin-top:2rem}.lobby.room-view .room-info{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.lobby.room-view .room-info h2{margin-top:0;color:var(--accent-gold);letter-spacing:.1em}.invite{color:var(--text-dim);margin-bottom:1.5rem}.room-add-panel{margin-bottom:1rem;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card)}.room-add-panel h3{margin:0 0 .55rem;color:var(--text-dim);font-size:.9rem}.room-add-panel label{display:block;margin-bottom:.5rem;font-size:.85rem;color:var(--text-dim)}.room-add-panel input,.room-add-panel select{display:block;width:100%;margin-top:.25rem;padding:.45rem .5rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit}.room-add-inline{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}.room-add-inline>label{margin:0;min-width:10rem;flex:1 1 220px}.player-list ul{list-style:none;padding:0;margin:0 0 1.5rem}.player-list li{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-bottom:1px solid var(--border)}.player-list li .player-row-name{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.player-list li .name{font-weight:600}.player-list li .bot-lineage{font-size:.75rem;color:var(--text-dim);font-weight:400}.player-list li .badge{font-size:.75rem;color:var(--text-dim)}.player-list li .badge.host{color:var(--accent-gold)}.btn-remove{margin:0;padding:.25rem .5rem;font-size:.8rem;background:var(--accent-blood);color:#fff}.waiting-players-mj{margin-bottom:1rem;padding:.75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px}.waiting-players-mj h3{margin:0 0 .5rem;font-size:.95rem}.waiting-players-list{list-style:none;margin:0;padding:0}.waiting-players-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.waiting-players-list li:last-child{border-bottom:none}.btn-assign{padding:.35rem .6rem;font-size:.85rem;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-assign:hover:not(:disabled){filter:brightness(1.1)}.btn-assign:disabled{opacity:.6;cursor:not-allowed}.add-bots{margin-bottom:1rem}.add-bots-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.add-bots-form label{margin:0;min-width:120px}.add-bots-form input,.add-bots-form select{display:block;margin-top:.25rem;padding:.4rem .5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit}.add-bots-form input,.add-bots-form select{width:140px}.room-view-pj .room-info-waiting h2{text-align:center;font-size:1.1rem;color:var(--text)}.room-quit-wrap{margin-top:1.5rem;text-align:center}.btn-quit-table-lobby{background:transparent;border:1px solid var(--accent-blood);color:var(--accent-blood);padding:.45rem 1rem;border-radius:6px;font-size:.95rem;cursor:pointer;font-family:inherit}.btn-quit-table-lobby:hover{background:#6b202033;color:#e8b4b4}.btn-add-bot{margin:0}.btn-start{display:block;width:100%;padding:.75rem;font-size:1rem}.room-start-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:stretch;margin-top:1rem}.room-start-actions .btn-start{display:inline-block;width:auto;flex:1 1 160px;margin-top:0}.lobby .room-start-actions .btn-back-mj-menu{flex:1 1 160px;margin-top:0;padding:.75rem;font-size:1rem;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:4px;font-weight:600;cursor:pointer;font-family:inherit}.lobby .room-start-actions .btn-back-mj-menu:hover:not(:disabled){background:#ffffff0f}.lobby-delete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.lobby-delete-popup{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:1.5rem;width:min(520px,90vw);min-width:min(30vw,90vw);min-height:30vh}.lobby-delete-popup p{margin:0 0 1rem;color:var(--text)}.lobby-delete-actions{display:flex;gap:.75rem;justify-content:flex-end}.lobby-delete-cancel{padding:.5rem 1rem;background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:4px;cursor:pointer;font-family:inherit}.lobby-delete-confirm{padding:.5rem 1rem;background:var(--accent-blood);border:none;color:#fff;border-radius:4px;cursor:pointer;font-family:inherit}.lobby-delete-cancel:hover,.lobby-delete-confirm:hover:not(:disabled){filter:brightness(1.1)}.lobby-delete-confirm:disabled{opacity:.6;cursor:not-allowed}.waiting-intro{margin-top:.5rem;color:var(--text-dim);line-height:1.45}.open-rooms-block{margin-top:1.75rem;padding:1.25rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card, rgba(0, 0, 0, .25))}.open-rooms-block h3{margin:0 0 .75rem;font-size:1rem}.open-rooms-empty{margin:0;color:var(--text-dim);font-style:italic}.open-rooms-list{list-style:none;padding:0;margin:0}.open-rooms-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.open-rooms-row:last-child{border-bottom:none;padding-bottom:0}.open-rooms-meta{display:flex;flex-direction:column;gap:.2rem;min-width:0}.open-rooms-name{font-weight:600;color:var(--text)}.open-rooms-code,.open-rooms-count{font-size:.85rem;color:var(--text-dim)}.room-badge-open{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .4rem;border-radius:4px;background:#22c55e26;color:#86efac;border:1px solid rgba(34,197,94,.35)}.room-badge-closed{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .4rem;border-radius:4px;background:#94a3b81f;color:var(--text-dim, #94a3b8);border:1px solid rgba(148,163,184,.28)}.btn-join-open-room{flex-shrink:0;padding:.45rem .85rem;border-radius:6px;border:1px solid var(--accent-gold, #c9a227);background:#c9a2271f;color:var(--accent-gold, #e8d49a);font-family:inherit;font-size:.85rem;cursor:pointer}.btn-join-open-room:hover:not(:disabled){background:#c9a22738}.btn-join-open-room:disabled{opacity:.55;cursor:not-allowed}.player-seat{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;max-width:180px;transition:opacity .3s ease}.seat-plate{background:#150400eb;background:oklch(14% .042 48 / .92);border:1px solid var(--wood-light);border-radius:6px;padding:6px 12px;display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;box-shadow:0 4px 12px #00000080;transition:border-color .3s,box-shadow .3s}.player-seat.current-turn .seat-plate{border-color:var(--accent-gold);box-shadow:0 4px 16px #00000080,0 0 0 1px var(--accent-gold-dim)}.seat-turn-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-gold);box-shadow:0 0 8px var(--accent-gold);animation:seat-blink 1.2s ease-in-out infinite}@keyframes seat-blink{0%,to{opacity:1}50%{opacity:.2}}.seat-label{display:flex;align-items:center;gap:.4rem}.seat-label .name{font-family:var(--font-title);font-size:.68rem;letter-spacing:.06em;color:var(--text);white-space:nowrap}.me-tag{font-family:var(--font-title);font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-gold-dim);border:1px solid var(--accent-gold-dim);padding:0 4px;border-radius:2px}.seat-gold{font-family:var(--font-body);font-size:.68rem;color:var(--accent-gold-dim);font-style:italic}.seat-cards{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.mini-card{width:24px;height:34px;border-radius:3px;border:1.5px solid oklch(38% .06 48);background:#180500;display:flex;align-items:center;justify-content:center;font-family:var(--font-title);font-size:.6rem;font-weight:700;color:var(--text);position:relative;overflow:hidden}.mini-card.hidden{background:#250b00;background:oklch(19% .055 48);border-color:#4e270d}.mini-card.hidden:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(-45deg,#2b1000,#2b1000 2px,#331604 2px,#331604 4px)}.mini-card img{width:100%;height:100%;object-fit:cover;object-position:top center;border-radius:2px}.mini-card[data-ship=kurth]{border-color:var(--ship-kurth)}.mini-card[data-ship=baram]{border-color:var(--ship-baram)}.mini-card[data-ship=rethnor]{border-color:var(--ship-rethnor)}.mini-card[data-ship=taerl]{border-color:var(--ship-taerl)}.mini-card[data-ship=suljack]{border-color:var(--ship-suljack)}.player-seat.folded{opacity:.38}.player-seat.eliminated{opacity:.25}.player-seat.join-next-round{opacity:.55}.seat-status{font-family:var(--font-title);font-size:.52rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-blood-lit);padding:1px 5px;border:1px solid var(--accent-blood);border-radius:2px}.seat-status--next{color:var(--accent-gold-dim);border-color:var(--accent-gold-dim)}.seat-eval{font-family:var(--font-body);font-size:.68rem;font-style:italic;color:var(--accent-gold);text-align:center;max-width:100%}.hand{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%}.hand-cards{display:flex;gap:14px;justify-content:center;align-items:flex-end;flex-wrap:nowrap}.game-card{width:120px;height:174px;border-radius:9px;background:#160400;border:2px solid var(--border);position:relative;cursor:pointer;overflow:hidden;flex-shrink:0;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-soft),border-color .18s var(--ease-soft)}.game-card:hover:not(.hidden){transform:translateY(-14px);box-shadow:0 22px 48px #000000a6}.game-card.selected{transform:translateY(-22px);box-shadow:0 26px 52px #000000b3,0 0 0 2px var(--accent-blood-lit);border-color:var(--accent-blood-lit)!important}.game-card[data-ship=kurth]{border-color:var(--ship-kurth)}.game-card[data-ship=baram]{border-color:var(--ship-baram)}.game-card[data-ship=rethnor]{border-color:var(--ship-rethnor)}.game-card[data-ship=taerl]{border-color:var(--ship-taerl)}.game-card[data-ship=suljack]{border-color:var(--ship-suljack)}.card-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:top center;border-radius:7px}.card-img.dimmed{opacity:.6}.game-card.hidden{cursor:default}.card-corner{position:absolute;top:6px;left:7px;z-index:8}.card-corner-bot{bottom:24px;right:8px;top:auto;left:auto;transform:rotate(180deg)}.card-rank{font-family:var(--font-title);font-size:1.18rem;font-weight:900;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,1),0 0 8px rgba(0,0,0,.9),1px 1px 0 rgba(0,0,0,.8);line-height:1}.card-ship-name{position:absolute;bottom:0;left:0;right:0;text-align:center;font-family:var(--font-title);font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-gold-pale);padding:7px 3px 6px;background:linear-gradient(transparent,#010000e6);background:linear-gradient(transparent,color(xyz 0.001 0 -0 / 0.902));border-radius:0 0 7px 7px;z-index:8}.card-exchange-x{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#7201158c;font-family:var(--font-title);font-size:2.35rem;color:#f17070;z-index:15;border-radius:inherit}.hand-actions{display:flex;justify-content:center}.hand-actions button,.exchange-confirm-btn{font-family:var(--font-title);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;padding:.38rem 1.1rem;background:#2c000280;background:oklch(18% .09 22 / .5);border:1px solid var(--accent-blood-lit);color:var(--accent-blood-lit);border-radius:4px;cursor:pointer;transition:all .16s ease}.hand-actions button:hover,.exchange-confirm-btn:hover{background:#4600098c;background:oklch(25% .11 22 / .55);color:#e45c5e}.action-panel{display:flex;flex-direction:column;gap:.45rem;padding:.8rem 1rem;border-left:1px solid var(--border);overflow:hidden;flex:0 0 auto;align-self:stretch;justify-content:flex-start}.action-panel-title{font-family:var(--font-title);font-size:.52rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim);padding-bottom:.35rem;border-bottom:1px solid var(--border)}.betting-flow{display:flex;flex-direction:column;gap:.32rem;flex:0 0 auto}.btn-bet{font-family:var(--font-title);font-size:.66rem;letter-spacing:.08em;padding:.42rem .7rem;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .15s ease;border:1px solid;text-align:left}.btn-bet-cost{font-size:.76rem;font-weight:700}.btn-bet--check{background:#00120659;background:oklch(16% .055 155 / .35);border-color:#005d33;border-color:oklch(42% .14 155);color:#60bb83}.btn-bet--check:hover:not(.active){background:#00220f80;background:oklch(22% .08 155 / .5);border-color:#007e46;border-color:oklch(52% .15 155)}.btn-bet--check.active{background:#00572f;background:oklch(40% .14 155);border-color:#0e9254;color:#effdf3}.btn-bet--check.active .btn-bet-cost{color:#e3f8e9}.btn-bet--call{background:#00101759;background:oklch(16% .05 225 / .35);border-color:#005066;border-color:oklch(40% .15 225);color:#00afd8;color:oklch(70% .13 222)}.btn-bet--call:hover:not(.active){background:#001e2980;background:oklch(22% .07 225 / .5);border-color:#006e89;border-color:oklch(50% .16 222)}.btn-bet--call.active{background:#00537c;background:oklch(42% .16 240);border-color:#0086b1;border-color:oklch(58% .14 230);color:#f0faff;color:oklch(98% .02 240)}.btn-bet--call.active .btn-bet-cost{color:#d4f0ff;color:oklch(94% .04 230)}.btn-bet--raise{background:#150b0059;background:oklch(16% .07 78 / .35);border-color:var(--accent-gold-dim);color:#c8942d}.btn-bet--raise:hover:not(.active){background:#2c1c0080;background:oklch(24% .09 78 / .5);border-color:var(--accent-gold)}.btn-bet--raise.active{background:#7c5500;background:oklch(48% .12 78);border-color:#ca9d42;color:#0a0500;color:oklch(12% .04 78)}.btn-bet--raise.active .btn-bet-cost{color:#1b0f00;color:oklch(18% .05 78)}.btn-bet--fold{background:#1b000159;background:oklch(14% .06 22 / .35);border-color:var(--accent-blood);color:var(--accent-blood-lit)}.btn-bet--fold:hover:not(.active){background:#3a000673;background:oklch(22% .09 22 / .45)}.btn-bet--fold.active{background:#7c111d;border-color:#b3363d;color:#fff6f5;color:oklch(98% .02 22)}.bet-raise-field{display:flex;align-items:center;gap:.35rem}.bet-raise-label{font-size:.7rem;color:var(--text-dim);font-style:italic;flex:1}.bet-raise-input{width:58px;padding:.26rem .32rem;background:#130300;border:1px solid var(--wood-mid);border-radius:3px;color:var(--text);font-family:var(--font-title);font-size:.8rem;text-align:center}.action-panel-quit-separator{height:1px;margin:.5rem 0 .35rem;width:100%;flex-shrink:0;background:linear-gradient(90deg,transparent,var(--border) 12%,var(--border) 88%,transparent)}.action-panel .btn-quit-table{align-self:stretch;width:100%;box-sizing:border-box}.btn-primary{font-family:var(--font-title);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;padding:.45rem;background:#26170080;background:oklch(22% .08 78 / .5);border:1px solid var(--accent-gold);color:var(--accent-gold-pale);border-radius:4px;cursor:pointer;transition:all .16s ease;flex-shrink:0}.btn-primary:hover{background:#3f2900a6;background:oklch(30% .1 78 / .65)}.btn-primary:disabled{opacity:.38;cursor:not-allowed}.wait-message{font-style:italic;color:var(--text-dim);font-size:.82rem;margin:0;text-align:center;line-height:1.5}.hint{font-style:italic;color:var(--text-dim);font-size:.8rem;line-height:1.5}.btn-exchange-discard{align-self:stretch;width:100%;box-sizing:border-box;font-family:var(--font-title);font-size:.66rem;letter-spacing:.06em;padding:.48rem .75rem;border-radius:4px;cursor:pointer;border:1px solid oklch(42% .14 155);background:#00220f8c;background:oklch(22% .08 155 / .55);color:#88d9a5;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-exchange-discard:hover{background:#00381cb3;background:oklch(30% .11 155 / .7);border-color:#007e46;border-color:oklch(52% .15 155);color:#ccf8da}.btn-exchange-discard:active{background:#004a27d9;background:oklch(36% .12 155 / .85)}.log-panel{display:flex;flex-direction:column;overflow:hidden;background:#090100f2;border-left:1px solid var(--wood-mid)}.log-title{font-family:var(--font-title);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-gold);padding:.5rem .75rem;border-bottom:1px solid var(--wood-mid);text-align:center;background:#050100;flex-shrink:0}.log-panel-scroll{flex:1;overflow-y:auto;padding:.55rem .7rem;display:flex;flex-direction:column;gap:.35rem;scrollbar-width:thin;scrollbar-color:var(--wood-mid) transparent}.log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.log-entry{font-family:var(--font-body);font-size:.92rem;line-height:1.48;color:var(--text);border-bottom:1px solid oklch(20% .04 48 / .5);padding-bottom:.35rem;font-style:italic}.log-entry.win{color:var(--accent-gold);font-style:normal;font-weight:600}.log-entry.fold{color:var(--accent-blood-lit)}.log-entry.bet{color:var(--text);font-style:normal}.log-entry.info{color:var(--text-dim)}.character-panel{display:flex;flex-direction:column;gap:.5rem;overflow:hidden;padding:.8rem 1rem;border-right:1px solid var(--border)}.char-you-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-width:0}.char-you-label{margin:0;font-family:var(--font-title);font-size:.58rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);flex:1;min-width:0}.char-name{font-family:var(--font-title);font-size:.78rem;font-weight:700;color:var(--text);letter-spacing:.05em}.stat.gold{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.coin-icon{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--accent-gold-pale),var(--accent-gold-dim));border:1.5px solid var(--accent-gold);flex-shrink:0}.stat.gold .value{font-family:var(--font-title);font-size:1.05rem;font-weight:700;color:var(--accent-gold)}.char-divider{height:1px;background:linear-gradient(90deg,transparent,var(--wood-mid),transparent);flex-shrink:0}.skill-list{display:flex;flex-direction:column;gap:.25rem}.skill-row{display:flex;align-items:center;gap:.35rem;padding:.24rem .45rem;border:1px solid transparent;border-radius:4px}.skill-name{font-size:.76rem;color:var(--text);flex:1}.skill-mod{font-family:var(--font-title);font-size:.7rem;font-weight:700;color:var(--accent-gold);min-width:24px;text-align:right}.skill-once-notice{font-size:.72rem;font-style:italic;color:var(--text-dim)}.skill-betting-below{display:flex;flex-direction:column;gap:.4rem;margin-top:.15rem;padding-top:.35rem;border-top:1px solid oklch(22% .04 48 / .5)}.skill-entry,.skill-buttons{display:flex;flex-direction:column;gap:.35rem}.btn-skill-open,.btn-skill-test,.btn-skill-cancel{font-family:var(--font-title);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .7rem;border-radius:4px;cursor:pointer;transition:all .15s ease}.btn-skill-open{background:#150b0066;background:oklch(16% .06 78 / .4);border:1px solid var(--accent-gold-dim);color:var(--accent-gold-dim)}.btn-skill-open:hover:not(:disabled){background:#26170080;background:oklch(22% .08 78 / .5);color:var(--accent-gold);border-color:var(--accent-gold)}.btn-skill-open:disabled{opacity:.4;cursor:not-allowed}.btn-skill-test{background:#1b0f0073;background:oklch(18% .07 78 / .45);border:1px solid var(--accent-gold);color:var(--accent-gold-pale);display:flex;align-items:center;gap:.5rem;justify-content:space-between}.btn-skill-test:hover{background:#3220008c;background:oklch(26% .1 78 / .55)}.btn-skill-mod{font-weight:700;color:var(--accent-gold)}.btn-skill-cancel{background:transparent;border:1px solid var(--border);color:var(--text-dim)}.btn-skill-cancel:hover{border-color:var(--accent-blood);color:var(--accent-blood-lit)}.skill-target,.skill-choice{font-family:var(--font-body);font-size:.8rem;padding:.3rem .5rem;background:#130300;border:1px solid var(--wood-mid);border-radius:4px;color:var(--text);width:100%}.skill-flow-actions{display:flex;gap:.35rem}.game-table{flex:1;height:100%;min-height:0;width:100%;box-sizing:border-box;display:grid;grid-template-rows:minmax(0,1fr) auto;row-gap:10px;column-gap:0;align-content:start}.game-table>.player-area{align-self:start;justify-self:stretch;width:100%;min-width:0}.game-table-measure-host{position:fixed;left:-99999px;top:0;visibility:hidden;pointer-events:none;z-index:-1;box-sizing:border-box}.game-table-main{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,2fr);grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;width:100%;box-sizing:border-box;background:repeating-linear-gradient(90deg,oklch(13% .015 260 / .5) 0,oklch(13% .015 260 / .5) 1px,transparent 1px,transparent 80px),repeating-linear-gradient(0deg,oklch(13% .015 260 / .5) 0,oklch(13% .015 260 / .5) 1px,transparent 1px,transparent 80px),#02040a}.game-phase-cell,.game-pot-cell{display:flex;align-items:center;justify-content:center;padding:.4rem 1rem;background:#040000;border-bottom:2px solid var(--wood-mid);box-shadow:0 2px 12px #00000059;box-sizing:border-box}.game-phase-cell{padding-right:.5rem;grid-column:1;grid-row:1}.game-pot-cell{padding-left:.5rem;grid-column:2;grid-row:1}.game-board-log-wrap{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,2fr);grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;overflow:hidden}.game-board-log-wrap--height-locked{flex-shrink:0;align-self:stretch}.phase{font-family:var(--font-title);font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-gold-pale);text-align:center;text-shadow:0 0 20px oklch(74% .14 82 / .45),0 1px 2px oklch(0% 0 0 / .75)}.pot-hero{width:100%;max-width:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:.4rem .65rem;background:#100700cc;background:oklch(14% .06 78 / .8);border:1px solid var(--accent-gold-dim);border-radius:4px}.pot-hero-line{font-family:var(--font-title);font-size:.72rem;font-weight:600;letter-spacing:.06em;color:var(--accent-gold-dim);text-align:center;line-height:1.35}.pot-hero-value{font-size:1.05rem;font-weight:700;color:var(--accent-gold-pale);text-shadow:0 0 10px oklch(74% .14 82 / .5);font-variant-numeric:tabular-nums}.game-board-cell,.game-log-cell{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.game-board-cell{position:relative}.table-surface{flex:1;min-width:0;min-height:0;margin:12px 0 12px 12px;border-radius:14px;position:relative;overflow:hidden;background:radial-gradient(ellipse 18% 8% at 22% 38%,oklch(18% .06 45 / .5) 0%,transparent 100%),radial-gradient(ellipse 12% 6% at 68% 61%,oklch(18% .06 45 / .4) 0%,transparent 100%),repeating-linear-gradient(180deg,#471e00,#401a01 18px,#4d2300 19px,#441c01 36px,#3d1801 37px,#4b1f00 54px),#441c00;background:radial-gradient(ellipse 18% 8% at 22% 38%,oklch(18% .06 45 / .5) 0%,transparent 100%),radial-gradient(ellipse 12% 6% at 68% 61%,oklch(18% .06 45 / .4) 0%,transparent 100%),repeating-linear-gradient(180deg,#471e00,#401a01 18px,color(xyz 0.037 0.028 0.003) 19px,#441c01 36px,#3d1801 37px,#4b1f00 54px),oklch(28% .075 51);border:5px solid oklch(20% .055 48);box-shadow:0 0 0 2px #6e401f,0 0 0 4px #1c0600,0 20px 60px #000000b3,inset 0 1px #7a471b80}.table-surface:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(182deg,transparent 0,transparent 10px,oklch(22% .05 48 / .16) 10px,oklch(22% .05 48 / .16) 11px);pointer-events:none;z-index:1}.table-surface:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 40px #00000073;background:radial-gradient(ellipse 65% 55% at 50% 50%,oklch(60% .12 72 / .08) 0%,transparent 70%);pointer-events:none;z-index:1;animation:candle-flicker 3s ease-in-out infinite}@keyframes candle-flicker{0%,to{opacity:1}33%{opacity:.85}66%{opacity:.92}}.seats{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;grid-template-rows:1fr;gap:.75rem 1rem;padding:1rem 1.25rem;align-items:center;align-content:center;box-sizing:border-box}.game-log-cell .log-panel{flex:1;min-height:0;width:100%;margin:12px 8px;box-sizing:border-box;border-radius:6px;border:1px solid var(--wood-mid)}.player-area{width:100%;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,6fr) minmax(0,2fr);gap:0;background:linear-gradient(#0c0200,#070100);border-top:3px solid var(--wood-mid);box-shadow:0 -4px 20px #0006;align-items:stretch;justify-items:stretch;height:max-content;min-height:0;overflow:visible}.player-area--height-locked{overflow-x:hidden;overflow-y:auto}.player-area-character{display:flex;flex-direction:column;min-width:0;min-height:0}.player-area-character .character-panel{flex:1 1 auto;min-height:0}.player-area-hand{min-height:0;min-width:0;max-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.45rem .5rem;gap:.35rem}.player-area-sidebar{display:flex;flex-direction:column;gap:0;min-width:0;min-height:0;width:100%;box-sizing:border-box}.player-area-sidebar-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;gap:.5rem;overflow:visible;width:100%}.btn-quit-table{background:transparent;border:1px solid var(--accent-blood);color:var(--accent-blood-lit);padding:.35rem .55rem;border-radius:4px;font-family:var(--font-title);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.25;white-space:normal;text-align:center}.btn-quit-table:hover{background:#2b000366;background:oklch(18% .08 22 / .4);color:#e06062}.btn-help{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:.25rem .5rem;border-radius:4px;font-family:var(--font-title);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}.btn-help:hover{color:var(--text);border-color:var(--accent-gold-dim)}.my-hand-rank{font-family:var(--font-title);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-gold);margin:0 0 .4rem}@media (max-width: 900px){.game-table{grid-template-rows:minmax(0,1fr) auto}.game-table-main{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr)}.game-phase-cell{grid-column:1;grid-row:1}.game-pot-cell{grid-column:1;grid-row:2}.game-board-log-wrap{grid-column:1;grid-row:3;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(10rem,40vh)}.game-log-cell .log-panel{margin:0 0 8px;max-height:40vh;min-height:10rem}.table-surface{margin:8px 12px 4px}.player-area{grid-template-columns:1fr}}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:motion-backdrop-in var(--duration-fast, .22s) var(--ease-out, ease) forwards}.help-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;max-width:520px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:motion-modal-in var(--duration-normal, .4s) var(--ease-spring, cubic-bezier(.34, 1.2, .64, 1)) forwards;box-shadow:0 24px 48px #00000073}.help-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.help-header h2{margin:0;font-size:1.1rem;color:var(--accent-gold)}.help-close{background:none;border:none;color:var(--text-dim);font-size:1.5rem;line-height:1;padding:0 .25rem}.help-close:hover{color:var(--text)}.help-body{overflow-y:auto;padding:1rem 1.25rem}.help-body section{margin-bottom:1.25rem}.help-body h3{margin:0 0 .5rem;font-size:.95rem;color:var(--text)}.help-body p,.help-body li{margin:0 0 .35rem;color:var(--text-dim);font-size:.9rem;line-height:1.45}.help-body ul,.help-body ol{margin:.5rem 0;padding-left:1.25rem}.help-skills .help-skill{margin-bottom:1rem}.help-skills .help-skill:last-child{margin-bottom:0}.help-skill strong{display:block;margin-bottom:.35rem;color:var(--text)}.help-skill-narrative{font-style:italic;margin-bottom:.4rem!important}.help-skill-gameplay{margin-bottom:0!important}.app{flex:1;width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app--in-game{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;box-sizing:border-box}.app--in-game .app-header{flex:0 0 auto;min-height:0;overflow:hidden}.app>main,.app-main{flex:1;min-height:0;display:flex;flex-direction:column}.app-header{padding:.75rem 1.5rem;background:linear-gradient(180deg,var(--bg-panel) 0%,var(--bg-deep) 100%);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:1rem;flex-shrink:0}.app-header h1{margin:0;font-size:1.5rem;color:var(--accent-gold);letter-spacing:.05em}.tagline{margin:0;font-size:.9rem;color:var(--text-dim);font-style:italic}.pj-header-wallet{margin:0;font-size:.92rem;color:var(--text)}.pj-header-wallet strong{color:var(--accent-gold)}.app-nav{margin-left:auto;margin-right:.5rem}.app-nav a{color:var(--accent-gold);text-decoration:none;font-size:.9rem;transition:color var(--duration-fast, .22s) var(--ease-soft, ease),opacity var(--duration-fast, .22s) var(--ease-soft, ease)}.app-nav a:hover{text-decoration:underline;opacity:.92}.app-header-mj .tagline{color:var(--accent-gold);font-style:normal}.header-help-btn{margin-left:auto;width:1.6rem;height:1.6rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-weight:700;cursor:pointer;line-height:1;padding:0}.header-help-btn:hover{border-color:var(--accent-gold);color:var(--accent-gold)}.header-logout-btn{margin-left:.5rem;padding:.35rem .65rem;font-size:.85rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;font-family:inherit}.header-logout-btn:hover{border-color:var(--accent-blood);color:var(--accent-blood)}.app-header-trailing{margin-left:auto;display:flex;align-items:center;gap:.5rem;flex-shrink:0}.app-header-trailing .app-header-help-icon.header-help-btn,.app-header-trailing .header-logout-btn{margin-left:0}.global-error{background:var(--accent-blood);color:#fff;padding:.5rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.global-error button{background:transparent;border:none;color:#fff;font-size:1.2rem;padding:0 .25rem}.version-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.version-modal{width:min(460px,95vw);background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:1rem 1.1rem}.version-modal h2{margin:0 0 .5rem;color:var(--accent-gold)}.version-date{margin:.35rem 0;color:var(--text-dim);font-size:.9rem}.version-notes{margin:.5rem 0 .9rem 1rem;padding:0}.version-modal button{padding:.45rem .8rem;border-radius:4px;border:1px solid var(--border);background:var(--bg-card);color:var(--text)}.mj-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-deep);padding:2rem}.mj-gate-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:2rem;max-width:360px;width:100%;animation:motion-modal-in var(--duration-slow, .65s) var(--ease-spring, cubic-bezier(.34, 1.2, .64, 1)) forwards;box-shadow:0 20px 40px #0006}.mj-gate-card h2{margin:0 0 .5rem;color:var(--accent-gold);font-size:1.25rem}.mj-gate-hint{margin:0 0 1.5rem;font-size:.9rem;color:var(--text-dim)}.mj-gate-card label{display:block;margin-bottom:1rem;font-size:.9rem;color:var(--text-dim)}.mj-gate-card input{display:block;width:100%;margin-top:.25rem;padding:.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit}.mj-gate-card button{width:100%;padding:.6rem;background:var(--accent-gold-dim);color:var(--bg-deep);border:none;border-radius:4px;font-weight:600;cursor:pointer}.mj-gate-card button:hover:not(:disabled){background:var(--accent-gold)}.mj-gate-error{margin:0 0 .75rem;color:var(--accent-blood);font-size:.9rem}.reconnect-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:motion-backdrop-in var(--duration-fast, .22s) var(--ease-out, ease) forwards}.reconnect-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:1.5rem;max-width:360px;animation:motion-modal-in var(--duration-normal, .4s) var(--ease-spring, cubic-bezier(.34, 1.2, .64, 1)) forwards;box-shadow:0 20px 40px #00000073}.reconnect-modal h2{margin:0 0 .5rem;font-size:1.25rem;color:var(--accent-gold)}.reconnect-modal p{margin:0 0 1rem;color:var(--text)}.reconnect-actions{display:flex;gap:.75rem;justify-content:flex-end}.reconnect-btn-yes{padding:.5rem 1rem;background:var(--accent-sea);color:#fff;border:none;border-radius:4px;font-weight:600;cursor:pointer}.reconnect-btn-yes:hover:not(:disabled){filter:brightness(1.1)}.reconnect-btn-no{padding:.5rem 1rem;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:4px;cursor:pointer}.reconnect-btn-no:hover:not(:disabled){background:var(--border)}.mj-dashboard{flex:1;padding:1rem;display:flex;flex-direction:column;gap:1rem;min-height:0}.mj-dashboard-center{flex:1;display:flex;flex-direction:column;gap:1rem;min-height:0;min-width:0}.mj-players-aside-log{width:280px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.mj-players-aside-log .log-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}@media (max-width: 900px){.mj-players-body{flex-direction:column}.mj-players-aside-log{width:100%;max-height:200px}}.mj-wait,.mj-forbidden{text-align:center;color:var(--text-dim);padding:2rem}.mj-back{display:inline-block;margin-top:1rem;color:var(--accent-gold);text-decoration:none}.mj-back:hover{text-decoration:underline}.mj-header{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px}.mj-header h2{margin:0;font-size:1.1rem;color:var(--accent-gold);flex:0 1 auto}.mj-table-mgmt{padding:.75rem 1rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;font-size:.9rem}.mj-table-mgmt-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.mj-table-mgmt-bar .mj-autoplay-wrap{margin-bottom:0}.mj-btn-manage-pj{padding:.35rem .85rem;border-radius:6px;border:1px solid var(--accent-gold);background:transparent;color:var(--accent-gold);font-size:.9rem;cursor:pointer;font-family:var(--font-body)}.mj-btn-manage-pj:hover{background:#c9a2271f}.mj-players-mgmt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.mj-players-mgmt-modal{width:min(520px,100%);max-height:min(85vh,720px);overflow:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem 1.25rem;box-shadow:0 8px 32px #00000073}.mj-players-mgmt-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.mj-players-mgmt-head h3{margin:0;font-size:1.1rem;color:var(--accent-gold)}.mj-players-mgmt-close{border:none;background:transparent;color:var(--text-dim);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .25rem}.mj-players-mgmt-close:hover{color:var(--text)}.mj-mgmt-section{margin-top:1rem}.mj-mgmt-section h4{margin:0 0 .5rem;font-size:.95rem}.mj-mgmt-empty{margin:0;color:var(--text-dim);font-size:.9rem}.mj-mgmt-table-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.mj-mgmt-table-list li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mj-mgmt-name{flex:1;min-width:0;font-weight:500}.mj-mgmt-badge{font-size:.7rem;padding:.1rem .45rem;border-radius:4px;border:1px solid var(--border);color:var(--text-dim)}.mj-mgmt-badge.human{border-color:var(--accent-sea);color:#8fd9ea}.mj-btn-remove-seat{padding:.25rem .55rem;font-size:.8rem;border-radius:4px;border:1px solid var(--accent-blood);background:transparent;color:var(--accent-blood);cursor:pointer;font-family:var(--font-body)}.mj-btn-remove-seat:hover:not(:disabled){background:#b43c3c26}.mj-btn-remove-seat:disabled{opacity:.5;cursor:not-allowed}.mj-table-mgmt-title{margin:0 0 .35rem;font-size:1rem;color:var(--accent-gold)}.mj-table-mgmt-hint{margin:0 0 .75rem;color:var(--text-dim);font-size:.85rem;line-height:1.35}.mj-table-mgmt h4{margin:0 0 .5rem;font-size:.9rem;font-weight:600}.mj-waiting-block{margin-bottom:1rem}.mj-waiting-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.mj-waiting-list li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mj-waiting-name{flex:1;min-width:0}.mj-player-status-chip{font-size:.75rem;border-radius:999px;padding:.15rem .5rem;border:1px solid var(--border);color:var(--text-dim);background:#ffffff08}.mj-player-status-chip.waiting{border-color:var(--accent-gold);color:var(--accent-gold);background:#c9a2271f}.mj-player-status-chip.in-room{border-color:var(--accent-sea);color:#8fd9ea;background:#2d6c7c33}.mj-btn-assign{padding:.25rem .6rem;font-size:.85rem;cursor:pointer;border-radius:4px;border:1px solid var(--accent-gold);background:transparent;color:var(--accent-gold);font-family:var(--font-body)}.mj-btn-assign:hover:not(:disabled){background:#c9a22726}.mj-btn-assign:disabled{opacity:.45;cursor:not-allowed}.mj-add-bot-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.mj-add-bot-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}.mj-add-bot-form input,.mj-add-bot-form select{min-width:8rem;padding:.35rem .5rem;border-radius:4px;border:1px solid var(--border);background:var(--bg-deep);color:inherit;font-family:var(--font-body)}.mj-btn-add-bot{padding:.4rem .85rem;border-radius:4px;border:1px solid var(--border);background:var(--bg-deep);color:var(--text);cursor:pointer;font-family:var(--font-body)}.mj-btn-add-bot:hover:not(:disabled){border-color:var(--accent-gold)}.mj-btn-add-bot:disabled{opacity:.45;cursor:not-allowed}.mj-btn-delete{padding:.35rem .75rem;background:transparent;border:1px solid var(--accent-blood);color:var(--accent-blood);border-radius:4px;font-size:.85rem;cursor:pointer;font-family:var(--font-body)}.mj-btn-delete:hover{background:var(--accent-blood);color:#fff}.mj-btn-back-home{padding:.35rem .75rem;background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:4px;font-size:.85rem;cursor:pointer;font-family:var(--font-body)}.mj-btn-back-home:hover{border-color:var(--accent-gold);color:var(--accent-gold)}.mj-meta{flex:1 1 auto;display:flex;justify-content:center;gap:1rem}.mj-auto-bots-btn{padding:.35rem .75rem;border-radius:4px;border:1px solid transparent;font-size:.85rem;cursor:pointer;font-family:var(--font-body);color:#fff}.mj-auto-bots-btn.is-auto{background:#1f8f47;border-color:#2cab5c}.mj-auto-bots-btn.is-manual{background:#9f2f2f;border-color:#cf4a4a}.mj-autoplay-wrap{margin-bottom:.6rem}.mj-delete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.mj-delete-popup{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:1.5rem;max-width:360px}.mj-delete-popup p{margin:0 0 1rem;color:var(--text)}.mj-delete-actions{display:flex;gap:.75rem;justify-content:flex-end}.mj-delete-cancel{padding:.5rem 1rem;background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:4px;cursor:pointer;font-family:var(--font-body)}.mj-delete-confirm{padding:.5rem 1rem;background:var(--accent-blood);border:none;color:#fff;border-radius:4px;cursor:pointer;font-family:var(--font-body)}.mj-delete-cancel:hover,.mj-delete-confirm:hover{filter:brightness(1.1)}.mj-phase{font-weight:600}.mj-pot{color:var(--accent-gold)}.mj-play-for-bot{padding:1rem;background:var(--bg-card);border:1px solid var(--accent-gold);border-radius:8px}.mj-play-for-bot h3{margin:0 0 .75rem;font-size:1rem;color:var(--accent-gold)}.mj-play-hint,.mj-to-call{margin:0 0 .5rem;font-size:.9rem;color:var(--text-dim)}.mj-play-bot-exchange .hand{margin-top:.5rem}.mj-play-bot-bet,.mj-bet-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.mj-btn-check,.mj-btn-call,.mj-btn-raise,.mj-btn-fold{padding:.4rem .75rem;border-radius:4px;font-size:.9rem;cursor:pointer;font-family:inherit}.mj-btn-check{background:var(--accent-sea);color:#fff;border:none}.mj-btn-call{background:var(--accent-gold-dim);color:var(--bg-deep);border:none}.mj-btn-raise{background:var(--accent-gold);color:var(--bg-deep);border:none}.mj-btn-fold{background:transparent;color:var(--accent-blood);border:1px solid var(--accent-blood)}.mj-raise-row{display:flex;align-items:center;gap:.35rem}.mj-raise-row input{width:4rem;padding:.35rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit}.mj-grid{flex:1;min-height:0;display:flex;flex-direction:column}.mj-players{flex:1;min-height:0;display:flex;flex-direction:column;gap:.5rem;overflow:hidden}.mj-players h3{margin:0;font-size:.9rem;color:var(--text-dim);flex-shrink:0}.mj-players-body{flex:1;min-height:0;display:flex;flex-direction:row;align-items:stretch;gap:1rem}.mj-player-cards-wrap{flex:1;min-width:0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.mj-player-card{margin:5px;border-radius:8px;padding:.75rem;border:1px solid transparent}.mj-player-card--human{background:linear-gradient(135deg,#b48c502e,#785a321f);border-color:#b48c5066}.mj-player-card--bot{background:linear-gradient(135deg,#46648233,#324b6424);border-color:#46648280}.mj-player-card.folded{opacity:.7}.mj-player-card--join-next{outline:1px dashed rgba(201,162,39,.45);outline-offset:2px}.mj-player-card.eliminated{opacity:.5;filter:grayscale(.3)}.mj-player-card--current{box-shadow:0 0 0 2px var(--accent-gold);position:relative}.mj-turn-cursor{color:var(--accent-gold);font-size:.85rem;margin-right:.35rem;animation:mj-cursor-pulse 1s ease-in-out infinite}@keyframes mj-cursor-pulse{0%,to{opacity:1}50%{opacity:.5}}.mj-player-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.mj-player-name{font-weight:600}.mj-badge{font-size:.7rem;padding:.15rem .35rem;border-radius:4px}.mj-badge.bot{background:var(--border);color:var(--text-dim)}.mj-badge.host{background:var(--accent-gold-dim);color:var(--bg-deep)}.mj-player-gold{margin-left:auto;color:var(--accent-gold);font-size:.9rem}.mj-player-hand{min-height:80px;max-width:100%;overflow-x:auto}.mj-player-eval{font-size:.8rem;color:var(--text-dim);margin-top:.35rem}.mj-player-status{font-size:.75rem;color:var(--accent-blood);margin-top:.25rem}:root{--bg-deep: oklch(9% .022 45);--bg-table: oklch(28% .075 51);--bg-panel: oklch(11% .03 46);--bg-card: oklch(14% .04 46);--wood-dark: oklch(20% .06 48);--wood-mid: oklch(30% .08 52);--wood-light: oklch(40% .09 55);--accent-gold: oklch(74% .14 82);--accent-gold-dim: oklch(54% .1 78);--accent-gold-pale:oklch(88% .1 88);--accent-blood: oklch(35% .14 22);--accent-blood-lit:oklch(50% .16 22);--accent-sea: oklch(40% .1 215);--text: oklch(88% .028 82);--text-dim: oklch(65% .028 78);--border: oklch(22% .05 48);--ship-kurth: oklch(55% .18 295);--ship-baram: oklch(52% .18 225);--ship-rethnor: oklch(50% .16 155);--ship-taerl: oklch(64% .18 62);--ship-suljack: oklch(52% .18 22);--font-title: "Cinzel", serif;--font-deco: "Cinzel Decorative", serif;--font-body: "Crimson Text", Georgia, serif;--duration-instant: .12s;--duration-fast: .22s;--duration-normal: .4s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;height:100%}body{margin:0;background:var(--bg-deep);color:var(--text);font-family:var(--font-body);font-size:16px;min-height:100%;min-height:100dvh;-webkit-font-smoothing:antialiased}#root{min-height:100%;min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-title);font-weight:600}button{font-family:var(--font-body);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-soft),color var(--duration-fast) var(--ease-soft),border-color var(--duration-fast) var(--ease-soft),box-shadow var(--duration-fast) var(--ease-soft),transform var(--duration-instant) var(--ease-out),opacity var(--duration-fast) var(--ease-soft)}button:active:not(:disabled){transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.6}:root{--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.2, .64, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1);--duration-instant: .12s;--duration-fast: .22s;--duration-normal: .4s;--duration-slow: .65s}@keyframes motion-fade-in{0%{opacity:0}to{opacity:1}}@keyframes motion-fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes motion-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes motion-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes motion-modal-in{0%{opacity:0;transform:scale(.94) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes motion-seat-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes motion-turn-glow{0%,to{box-shadow:0 0 #c9a22759}50%{box-shadow:0 0 20px 2px #c9a22773}}@keyframes motion-table-ambient{0%,to{opacity:.45}50%{opacity:.75}}@keyframes motion-log-line{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){:root{--duration-instant: .01ms;--duration-fast: .01ms;--duration-normal: .01ms;--duration-slow: .01ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
