@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#193b32;background:#f5f3eb;--green:#153e33;--gold:#e4b66a;--line:#dedfd4}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c59547;outline-offset:3px}header{height:78px;margin:0 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;color:var(--green);text-decoration:none;font-weight:700;font-size:14px;letter-spacing:2px}.brand-icon{border:1px solid var(--green);border-radius:4px;font-size:25px;padding:2px 7px;margin-right:12px}.brand-dot{color:#a77b3e}.header-actions{display:flex;gap:12px}.quiet{border:0;background:transparent;padding:10px;color:var(--green);font-size:12px}.quiet span{margin-left:8px}.quiet[hidden]{display:none}main{max-width:1200px;margin:auto;padding:32px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#8c734d;margin:0 0 18px}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;margin:0 0 20px}h1{font-size:76px;letter-spacing:-3px}h2{font-size:30px}p{line-height:1.65}.hero{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;min-height:570px}.intro{max-width:360px;color:#69786b;font-size:16px}.entry{max-width:380px;margin-top:28px}label{display:block;font-size:12px;font-weight:600;margin-bottom:10px}input:not([type=range]){width:100%;padding:14px;border:1px solid #ccd2c5;border-radius:6px;background:#fffdf7;color:var(--green);min-width:0}.primary,.secondary{border-radius:7px;padding:15px 20px;font-weight:600;font-size:14px;border:1px solid transparent;min-height:48px}.primary{background:var(--green);color:#fffaf0}.secondary{background:transparent;border-color:#b7c3b4;color:var(--green)}.entry>.primary{width:100%;margin-top:12px}.join-row{display:flex;gap:10px;margin-top:12px}.join-row input{width:55%;text-transform:uppercase}.join-row button{flex:1;white-space:nowrap}.fine{font-size:12px;color:#728070}.table-art{height:450px;background:radial-gradient(ellipse,#2c5b49,#153e33);border-radius:130px 130px 20px 20px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#c6d0b7;overflow:hidden}.table-art>p{font-size:11px;margin-top:40px}.art-cards{display:flex;align-items:center;justify-content:center}.card{position:relative;flex-shrink:0;width:104px;height:148px;background:#fffdf4;color:#193b32;border:1px solid #dedbcc;border-radius:8px;box-shadow:0 4px 12px #0002;font-family:Georgia,serif}.card.red{color:#b25042}.corner{position:absolute;top:8px;left:9px;font-size:21px;line-height:1}.corner small{display:block;font-size:14px;margin-top:3px}.corner.bottom{top:auto;left:auto;bottom:8px;right:9px;transform:rotate(180deg)}.card>.suit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:39px;line-height:1}.card.back{background:repeating-linear-gradient(45deg,#254b3b,#254b3b 4px,#315642 4px,#315642 5px);border:6px solid #f4eddc;z-index:1}.card.back>.suit{color:var(--gold)}.art-cards>.card:first-child{transform:rotate(-12deg) translate(8px,8px)}.art-cards>.card:last-child{transform:rotate(12deg) translate(-8px,8px)}footer{padding:20px;text-align:center;color:#798477;font-size:11px;border-top:1px solid var(--line)}.room-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.room-bar>div:first-child{display:flex;align-items:center;gap:14px}.room-id{font-size:11px;letter-spacing:1px;color:#70806f}.room-actions{display:flex;align-items:center;gap:4px}.exit-button{background:#a33531;border:1px solid #a33531;color:#fff;border-radius:6px;padding:10px 13px;font-weight:600;font-size:12px;min-height:38px}.lobby-panel{max-width:600px;margin:30px auto;padding:32px;border:1px solid var(--line);border-radius:16px;background:#fbf9f1}.lobby-panel>p{color:#6b796a}.lobby-players{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.lobby-players>div{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:8px;font-size:13px}.lobby-players small{display:block;color:#7a8975;font-size:10px}.lobby-players .quiet{margin-left:auto;font-size:10px}.avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#e5e9dc}.lobby-controls,.decision-buttons{display:flex;gap:10px}.lobby-controls>* ,.decision-buttons>*{flex:1}.connection{font-size:10px;color:#7c8879;text-align:center;margin-top:8px}.in-game header{height:52px}.in-game main{max-width:1100px;padding:12px 28px 8px}.in-game footer{display:none}.in-game .room-bar{margin-bottom:8px;height:38px}.game-table{height:calc(100svh - 166px);min-height:430px;max-height:720px;position:relative;border-radius:110px;background:radial-gradient(ellipse at center,#2c5b48,#123c31);box-shadow:inset 0 0 0 5px #193d32,inset 0 0 0 6px #7e9b713b;color:#fff7e4}.seat{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:110px;padding:9px 6px;border:1px solid #92aa7955;border-radius:12px;background:#12372e;text-align:center;z-index:2;line-height:1.35;box-shadow:0 3px 10px #0002}.seat-name{display:block;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.seat strong{display:block;font-size:15px;margin:3px 0;color:#f0e4c8}.seat small{display:block;font-size:9px;color:#a6bba0}.seat.current{border:2px solid var(--gold);box-shadow:0 0 0 3px #e4b66a28}.seat.current small{color:var(--gold);font-weight:700}.seat.spectator{opacity:.58}.seat .negative{color:#ffbba7}.table-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:60%;max-width:440px;text-align:center}.pot-caption{font-size:10px;letter-spacing:2px;color:#bbccad}.pot-caption strong{font-family:Georgia,serif;display:block;font-size:42px;font-weight:400;letter-spacing:0;color:#f9eed6;margin-top:2px}.turn-caption{font-size:13px;margin:5px 0 14px;color:#d9e2cc}.playing-cards{display:flex;justify-content:center;gap:10px;margin-bottom:16px}.card.placeholder{background:#ffffff05;border:1px dashed #a8b69388;box-shadow:none;color:#9caf93}.bet-controls{max-width:350px;margin:auto}.bonus{font-size:12px;line-height:1.45;color:#f5d894;background:#e4b66a18;border-radius:5px;padding:7px;margin:4px 0 10px}.bet-hint{font-size:10px;color:#bdcbb0;margin:5px 0 12px}.slider-label{display:flex;justify-content:space-between;align-items:center}.slider-label label{margin:0;font-size:11px;color:#c9d4bf}.slider-label output{font-size:23px;color:#f2d296;font-weight:700}input[type=range]{width:100%;accent-color:var(--gold);height:28px;margin:3px 0;cursor:pointer;touch-action:pan-y}.range-ends{display:flex;justify-content:space-between;font-size:10px;color:#aec3a8;margin-bottom:9px}.bet-buttons{display:flex;gap:12px}.bet-buttons button{flex:1;font-size:18px;min-height:52px}.game-table .primary{background:var(--gold);color:#193b32}.game-table .secondary{color:#f7edda;border-color:#8ca383}.turn-result{min-height:116px;display:flex;flex-direction:column;justify-content:center;gap:10px}.turn-result strong{font-size:20px;color:#f1d090}.turn-result small,.waiting{font-size:12px;color:#bdceb3}.waiting{min-height:75px}.game-meta{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#72806f;margin-top:9px}.last-event{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}.round-choice h2{font-size:29px;color:#f5ead5}.round-choice .eyebrow{color:#d8bc83}.round-choice p{font-size:12px;color:#c8d5bf}.round-choice .decision-buttons{flex-direction:column}.round-choice .fine{margin-bottom:0}.results{max-width:600px;margin:35px auto;padding:25px;border:1px solid var(--line);border-radius:14px}.results p{font-size:13px;color:#687865}.result-list>div{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:12px 0;font-size:14px}.negative{color:#ad4a3c}.result-list small{color:#7c8a75}dialog{border:1px solid var(--line);border-radius:14px;background:#faf8ef;color:var(--green);padding:32px;width:min(510px,92vw);max-height:85svh}dialog::backdrop{background:#0c261caa;backdrop-filter:blur(4px)}dialog li,dialog p{font-size:14px;line-height:1.7}dialog li{margin-bottom:9px}.close{position:absolute;right:9px;top:9px}#error{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#853d32;color:white;padding:14px 22px;border-radius:8px;z-index:10;max-width:90vw;width:max-content;font-size:13px}
@media(max-width:700px){header{height:64px;margin:0 16px}.brand{font-size:11px;letter-spacing:1px}.brand-icon{font-size:20px;margin-right:7px}.header-actions{gap:0}.quiet{font-size:11px;padding:8px}.quiet span{margin-left:2px}main{padding:26px 20px}.hero{grid-template-columns:1fr;gap:28px;min-height:0}h1{font-size:57px}.intro{font-size:14px}.entry{max-width:none}.table-art{height:300px;border-radius:75px 75px 15px 15px}.table-art>p{font-size:10px;margin-top:28px}.art-cards .card{width:86px;height:124px}.art-cards .corner{font-size:18px}.art-cards .card>.suit{font-size:32px}.lobby-panel{padding:22px;margin:20px auto}.lobby-players{grid-template-columns:1fr}.room-bar{flex-wrap:wrap}.in-game header{height:46px}.in-game main{padding:8px 8px 6px}.in-game .room-bar{height:57px;gap:2px;align-content:center;padding:0 6px}.room-bar>div:first-child{gap:8px}.room-bar strong{font-size:12px}.room-actions{gap:0;margin-left:auto}.room-id{font-size:10px}.exit-button{padding:8px 10px;font-size:11px}.game-table{height:calc(100svh - 164px);min-height:470px;max-height:780px;border-radius:75px}.seat{width:70px;padding:6px 3px;border-radius:9px}.seat-name{font-size:10px}.seat strong{font-size:12px;margin:2px 0}.seat small{font-size:8px}.table-center{width:60%;max-width:350px}.pot-caption strong{font-size:32px}.turn-caption{font-size:11px;margin:3px 0 10px}.playing-cards{gap:6px;margin-bottom:10px}.playing-cards .card{width:64px;height:94px;border-radius:5px}.playing-cards .corner{font-size:15px;top:5px;left:5px}.playing-cards .corner small{font-size:10px;margin-top:2px}.playing-cards .corner.bottom{top:auto;left:auto;bottom:5px;right:5px}.playing-cards .card>.suit{font-size:25px}.bet-hint{font-size:9px;line-height:1.45;margin-bottom:8px}.bonus{font-size:10px;padding:5px;margin-bottom:7px}.slider-label output{font-size:20px}.bet-buttons{gap:8px}.bet-buttons button{font-size:16px;padding:12px 8px;min-height:48px}.range-ends{margin-bottom:6px}.turn-result{min-height:135px}.turn-result strong{font-size:16px}.turn-result small{font-size:10px}.game-meta{font-size:9px;padding:0 5px;gap:8px;margin-top:6px}.last-event{max-width:50%}.connection{margin-top:4px;font-size:9px}.round-choice h2{font-size:24px}.round-choice p{font-size:11px}.round-choice .primary,.round-choice .secondary{padding:12px 8px;font-size:12px;min-height:44px}.results{margin:20px 8px;padding:20px}}
@media(max-height:700px) and (min-width:701px){.game-table{min-height:400px}.card{width:85px;height:120px}.pot-caption strong{font-size:30px}.turn-caption{margin-bottom:8px}.playing-cards{margin-bottom:9px}.bet-buttons button{min-height:44px;padding:10px}.turn-result{min-height:95px}}
@media(prefers-reduced-motion:no-preference){.seat{transition:border-color .2s,opacity .2s}.playing-cards .card{animation:deal .18s ease-out}@keyframes deal{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:700px){.seat.slot-1,.seat.slot-3{left:91%}.seat.slot-5,.seat.slot-7{left:9%}}
/* Fixed geometry keeps cards still as results, hints and controls change. */
.table-center{height:430px}.pot-caption{height:64px}.turn-caption{height:24px;margin:0 0 12px;line-height:24px}.playing-cards{height:148px;margin:0 0 16px;align-items:center}.controls-container{height:190px}.round-choice{height:100%;display:flex;flex-direction:column;justify-content:center}.playing-cards .card{animation:none!important}.turn-result{height:170px;min-height:0}.waiting{min-height:0}.seat-feedback{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none;z-index:5;width:max-content;max-width:150px}.slot-3 .seat-feedback,.slot-4 .seat-feedback,.slot-5 .seat-feedback{top:auto;bottom:calc(100% + 5px)}.seat:has(.seat-feedback:not(:empty)){z-index:6}.seat-action{font-size:11px;line-height:1.3;background:#f5e7c4;color:#183e32;border:1px solid #d2b373;border-radius:9px;padding:6px 9px;box-shadow:0 3px 10px #0002;animation:action-fade 4s linear forwards}.seat-reaction{font-size:30px;line-height:1.2;filter:drop-shadow(0 2px 3px #0004);animation:reaction-fade 3.2s linear forwards}@keyframes action-fade{0%,75%{opacity:1}100%{opacity:0}}@keyframes reaction-fade{0%,65%{opacity:1}100%{opacity:0}}
.chat-panel{max-width:900px;margin:24px auto 60px;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fbf9f1}.chat-panel[hidden],#emoji-widget[hidden],#emoji-picker[hidden]{display:none}.chat-panel h2{font-family:'DM Sans',sans-serif;font-size:16px;font-weight:600;margin-bottom:14px}.chat-messages{height:180px;overflow:auto;overscroll-behavior:contain;padding:6px 3px}.chat-message{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;font-size:13px;line-height:1.5}.chat-message strong{flex-shrink:0;max-width:125px;overflow-wrap:anywhere}.chat-message span{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.chat-empty{font-size:12px;color:#798475}.chat-panel form{display:flex;gap:10px;margin-top:12px}.chat-panel input{flex:1}.chat-panel .primary{min-height:44px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#emoji-widget{position:fixed;right:18px;bottom:18px;z-index:8;display:flex;flex-direction:column;align-items:flex-end;gap:10px}#emoji-toggle{border:1px solid #cbb781;border-radius:50%;background:#f9efda;color:#193b32;width:44px;height:44px;font-size:30px;line-height:1;box-shadow:0 3px 12px #0002}#emoji-picker{display:grid;grid-template-columns:repeat(4,1fr);padding:10px;background:#fffaf0;border:1px solid #d2c8aa;border-radius:12px;box-shadow:0 5px 24px #0003;gap:4px}#emoji-picker button{font-size:26px;width:44px;height:44px;border:0;border-radius:6px;background:transparent}#emoji-picker button:hover{background:#e8e9db}
@media(max-height:700px) and (min-width:701px){.table-center{height:385px}.pot-caption{height:48px}.playing-cards{height:120px;margin-bottom:9px}.turn-caption{margin-bottom:8px}}
@media(max-width:700px){.table-center{height:354px}.pot-caption{height:49px}.turn-caption{height:22px;line-height:22px;margin:0 0 9px}.playing-cards{height:94px;margin:0 0 10px}.controls-container{height:170px}.turn-result{height:150px}.seat-feedback{max-width:112px}.seat-action{font-size:9px;padding:5px 6px}.seat-reaction{font-size:26px}.chat-panel{margin:20px 12px 75px;padding:16px}.chat-message{gap:8px;font-size:12px}.chat-message strong{max-width:85px}#emoji-widget{right:10px;bottom:10px}}
@media(prefers-reduced-motion:reduce){.seat-action,.seat-reaction{animation:none}}
@media(min-width:701px){.pot-caption{height:50px}.pot-caption strong{font-size:32px}.playing-cards{height:120px}.playing-cards .card{width:85px;height:120px}}
.slot-4 .seat-feedback{left:calc(100% + 7px);top:auto;bottom:0;transform:none;max-width:100px}
@media(max-height:700px) and (min-width:701px){.game-table{min-height:520px}.table-center{height:430px}}

.round-setting{margin:20px 0}.round-setting input{display:block;max-width:110px;margin:8px 0}.round-setting small{font-weight:400;color:#728070}.action-timer{font-variant-numeric:tabular-nums;font-size:11px;color:#dac69d;white-space:nowrap}.turn-caption .action-timer{display:inline-block;min-width:28px;margin-left:5px}.action-timer.urgent{color:#ffbba7}.round-choice h2{margin-bottom:8px}.round-choice p{margin:5px 0}.round-choice .eyebrow{margin-bottom:10px}.round-choice .decision-buttons{gap:7px;margin:8px 0}.round-choice .exit-button{min-height:44px}.departure{text-align:center}.departure-score{font-size:38px}.departure .primary{margin-top:20px}
