:root{--ink: #f6efe1;--ink-dim: rgba(246, 239, 225, .72);--panel: rgba(24, 20, 14, .62);--panel-solid: #221b12;--line: rgba(246, 239, 225, .16);--gold: #e7b45a;--gold-deep: #b9822c;--us: #6fc3a0;--them: #e78b6a;--red: #c8372d;--black: #1b1b1b;--radius: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#1d2a1c;color:var(--ink);font-family:Inter,Noto Sans Sinhala,Sinhala Sangam MN,Iskoola Pota,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab;outline:none}#scene:active{cursor:grabbing}#scene.can-play{cursor:pointer}#labels,#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}@supports (height: 100dvh){#scene,#labels,#hud,.loading{bottom:auto;height:100dvh}}#hud .interactive,#hud button,#hud .panel{pointer-events:auto}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}.seat-label{position:absolute;left:0;top:0;transform:translate(-50%,-100%);padding:5px 11px 6px;border-radius:999px;background:var(--panel);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);font-size:13px;font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:7px;transition:opacity .2s,border-color .2s,box-shadow .2s}.seat-label .team-dot{width:8px;height:8px;border-radius:50%}.seat-label.us .team-dot{background:var(--us)}.seat-label.them .team-dot{background:var(--them)}.seat-label .tag{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:6px;background:#e7b45a33;color:var(--gold)}.seat-label.active{border-color:var(--gold);box-shadow:0 0 0 3px #e7b45a40,0 6px 20px #00000059}.seat-label .thinking{display:none;gap:3px}.seat-label.active .thinking{display:inline-flex}.seat-label .thinking i{width:4px;height:4px;border-radius:50%;background:var(--gold);animation:blink 1s infinite ease-in-out}.seat-label .thinking i:nth-child(2){animation-delay:.15s}.seat-label .thinking i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.topbar{position:absolute;top:calc(12px + var(--safe-top));left:calc(12px + var(--safe-left));right:calc(12px + var(--safe-right));display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.panel{background:var(--panel);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #00000040}.scoreboard{padding:10px 12px;min-width:210px}.score-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:8px}.score-row+.score-row{margin-top:8px}.score-row .name{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.score-row.us .name{color:var(--us)}.score-row.them .name{color:var(--them)}.tokens{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}.tokens i{height:10px;border-radius:3px;background:#ffffff1f;transition:background .4s,transform .4s}.score-row.us .tokens i.on{background:var(--us)}.score-row.them .tokens i.on{background:var(--them)}.tokens i.pop{transform:scaleY(1.6)}.score-row .count{font-variant-numeric:tabular-nums;font-weight:700;font-size:15px;min-width:38px;text-align:right}.score-row .count small{color:var(--ink-dim);font-weight:500;font-size:11px}.tricks-line{margin-top:9px;padding-top:8px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-dim);display:flex;justify-content:space-between;gap:10px}.tricks-line b{color:var(--ink);font-variant-numeric:tabular-nums}.bonus-chip{color:var(--gold);font-weight:600}.trick-strip{margin-top:9px;padding-top:8px;border-top:1px solid var(--line)}.trick-strip.hidden{display:none}.trick-label{font-size:12px;color:var(--ink-dim);margin-bottom:6px}.mini-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.mini-slot{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.mini-slot .who{font-size:10.5px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-slot .who.us{color:var(--us)}.mini-slot .who.them{color:var(--them)}.mini-card{position:relative;width:38px;height:52px;border-radius:5px;background:#fbf8f1;color:var(--black);box-shadow:0 2px 6px #00000059;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;transition:box-shadow .25s,transform .25s}.mini-card.red{color:var(--red)}.mini-card .r{font-size:16px;font-weight:800;letter-spacing:-.03em}.mini-card .s{font-size:19px;margin-top:2px}.mini-card.empty{background:transparent;border:1.5px dashed rgba(246,239,225,.3);box-shadow:none}.mini-card.trump:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:5px;box-shadow:inset 0 0 0 2px var(--gold-deep)}.mini-card.winner{transform:translateY(-3px);box-shadow:0 0 0 2.5px var(--gold),0 4px 12px #e7b45a8c}.mini-card.fresh{animation:mini-in .3s ease-out}@keyframes mini-in{0%{transform:translateY(-6px) scale(.9);opacity:0}}.trump-badge{padding:8px 14px 9px;text-align:center;min-width:128px;transition:transform .3s}.trump-badge .label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);font-weight:700}.trump-badge .suit{font-size:30px;line-height:1.1;font-family:Fraunces,"Noto Serif Sinhala",Georgia,serif}.trump-badge .suit.red{color:#ff7262}.trump-badge .suit.black{color:#f6efe1}.trump-badge .by{font-size:11px;color:var(--ink-dim)}.trump-badge.empty .suit{color:var(--ink-dim);font-size:18px;padding:6px 0 4px}.top-actions{display:flex;gap:8px}.icon-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-size:18px;font-weight:700}.icon-btn:hover{background:#ffffff1f}.icon-btn svg{width:20px;height:20px}.toast-stack{position:absolute;top:26%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.toast{padding:10px 18px;border-radius:999px;font-weight:600;font-size:15px;white-space:nowrap;animation:toast-in .35s cubic-bezier(.2,.9,.3,1.3) both}.toast.out{animation:toast-out .35s ease forwards}.toast .suit-red{color:#ff7262}@keyframes toast-in{0%{opacity:0;transform:translateY(10px) scale(.92)}}@keyframes toast-out{to{opacity:0;transform:translateY(-8px)}}.turn-prompt{position:absolute;left:50%;bottom:calc(18px + var(--safe-bottom));transform:translate(-50%);padding:9px 16px;font-size:14px;font-weight:600;display:flex;gap:10px;align-items:center;max-width:calc(100% - 32px - var(--safe-left) - var(--safe-right));white-space:normal;text-align:center;transition:opacity .25s,transform .25s}.turn-prompt.hidden{opacity:0;transform:translate(-50%,10px);pointer-events:none}.turn-prompt .pulse{flex-shrink:0}.turn-prompt .pulse{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 #e7b45ab3;animation:pulse 1.4s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px #e7b45a00}to{box-shadow:0 0 #e7b45a00}}.look-hint{position:absolute;left:50%;bottom:calc(66px + var(--safe-bottom));transform:translate(-50%);font-size:12px;color:var(--ink-dim);padding:6px 12px;border-radius:999px;background:#00000040;white-space:nowrap;transition:opacity .6s}.recentre{position:absolute;right:calc(12px + var(--safe-right));bottom:calc(14px + var(--safe-bottom));padding:10px 14px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px;transition:opacity .3s}.recentre.hidden{opacity:0;pointer-events:none}.offscreen-arrow{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#2a1c08;font-weight:800;box-shadow:0 4px 14px #00000059;transition:opacity .2s}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(20px + var(--safe-left));min-height:0;grid-template-rows:minmax(0,1fr);pointer-events:auto;background:radial-gradient(ellipse at center,#0a080459,#0a0804b3);animation:fade-in .3s ease both}.overlay.clear{background:transparent;pointer-events:none}.overlay.clear .sheet{pointer-events:auto}@keyframes fade-in{0%{opacity:0}}.sheet{width:min(460px,100%);max-height:100%;min-width:0;overflow:auto;padding:24px;background:#1e1810db;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 80px #00000073;animation:sheet-in .4s cubic-bezier(.2,.9,.3,1.15) both}@keyframes sheet-in{0%{opacity:0;transform:translateY(16px) scale(.97)}}.sheet h1,.sheet h2{font-family:Fraunces,"Noto Serif Sinhala",Georgia,serif;font-weight:800;margin:0 0 6px;letter-spacing:-.01em}.sheet h1{font-size:40px;line-height:1}.sheet h2{font-size:26px}.sheet p{color:var(--ink-dim);line-height:1.5;margin:0 0 14px;font-size:14px}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:12px;font-weight:700;font-size:15px;transition:transform .15s,background .2s,filter .2s}.btn:active{transform:scale(.97)}.btn.primary{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#2a1c08;box-shadow:0 6px 18px #b9822c59}.btn.primary:hover{filter:brightness(1.07)}.btn.ghost{background:#ffffff14;border:1px solid var(--line)}.btn.ghost:hover{background:#ffffff24}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.btn-row .btn{flex:1}.sheet.lobby{width:min(600px,100%);padding:26px 26px 22px}.lobby .brand-line .brand{font-size:26px}.lobby-title{font-size:34px!important;line-height:1.05!important;margin:2px 0 18px!important}.lobby-label{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 9px}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.game-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;border-radius:16px;text-align:center;color:var(--ink);background:linear-gradient(180deg,#ffffff12,#ffffff06);border:1px solid var(--line);transition:transform .18s,border-color .2s,background .2s,box-shadow .2s}.game-card:hover{transform:translateY(-2px);border-color:#e7b45a73}.game-card.on{border-color:var(--gold);background:linear-gradient(180deg,#e7b45a33,#e7b45a0d);box-shadow:0 0 0 1px var(--gold),0 10px 26px #b9822c40}.game-card .art{display:block;width:100%;max-width:108px;aspect-ratio:3 / 2}.game-card .art svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}.game-card .si{font-family:"Noto Serif Sinhala",Sinhala Sangam MN,serif;font-weight:800;font-size:18px;line-height:1.5;color:var(--gold);margin-top:4px}.game-card .nm{font-family:Fraunces,"Noto Serif Sinhala",Georgia,serif;font-weight:800;font-size:17px;line-height:1.1}.game-card.soon .art,.game-card.soon .si,.game-card.soon .nm{opacity:.55}.game-card.soon.on .art,.game-card.soon.on .si,.game-card.soon.on .nm{opacity:.8}.soon-chip{position:absolute;top:8px;right:8px;padding:2px 7px;border-radius:99px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#2a1c08;background:var(--gold)}.game-detail{margin:12px 2px 18px}.game-detail p{margin:0 0 9px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips span{font-size:12px;padding:4px 9px;border-radius:99px;background:#ffffff12;border:1px solid var(--line);color:var(--ink-dim)}.chips span.soon{color:var(--gold);border-color:#e7b45a66}.mode-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-btn{position:relative;display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:14px;text-align:left;color:var(--ink);background:#ffffff0d;border:1px solid var(--line);transition:border-color .2s,background .2s}.mode-btn .ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#ffffff14}.mode-btn .ic svg{width:22px;height:22px}.mode-btn .tx{display:flex;flex-direction:column;gap:2px;min-width:0}.mode-btn .tx b{font-size:14px}.mode-btn .tx small{font-size:12px;color:var(--ink-dim);line-height:1.35}.mode-btn.on{border-color:var(--gold);background:#e7b45a1f}.mode-btn.on .ic{background:var(--gold);color:#2a1c08}.mode-btn.soon{cursor:default}.mode-btn.soon .ic,.mode-btn.soon .tx{opacity:.55}.mode-btn .soon-chip{top:50%;transform:translateY(-50%);right:12px}.btn[hidden]{display:none}.lobby-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lang-seg{flex:none}.lang-seg button{font-size:12px;padding:5px 9px}.lang-seg button[lang=si]{font-family:Noto Sans Sinhala,Sinhala Sangam MN,sans-serif}:lang(si) .eyebrow,:lang(si) .lobby-label,:lang(si) .trump-badge .label,:lang(si) .seat-label .tag,:lang(si) .score-row .name,:lang(si) .soon-chip{letter-spacing:0;text-transform:none}:lang(si) .sheet p,:lang(si) .award,:lang(si) .toast,:lang(si) .turn-prompt{line-height:1.6}:lang(si) .sheet h1,:lang(si) .sheet h2{line-height:1.35}:lang(si) .lobby-title{line-height:1.3!important}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.4);box-shadow:none}.trump-sheet{width:min(520px,100%);text-align:center}.suit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.suit-btn{padding:14px 4px 12px;border-radius:14px;background:#f4ecd9;color:var(--black);box-shadow:inset 0 -3px #0000001f,0 6px 16px #00000040;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;align-items:center;gap:2px}.suit-btn:hover{transform:translateY(-3px);box-shadow:inset 0 -3px #0000001f,0 10px 22px #0000004d}.suit-btn .glyph{font-size:40px;line-height:1}.suit-btn.red .glyph{color:var(--red)}.suit-btn .nm{font-size:13px;font-weight:700}.suit-btn .ct{font-size:11px;color:#6b5f4b;font-weight:600}.suit-btn.suggested{outline:3px solid var(--gold);outline-offset:2px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 4px}.result-cell{padding:14px;border-radius:14px;background:#ffffff0f;border:1px solid var(--line);text-align:center}.result-cell .big{font-family:Fraunces,"Noto Serif Sinhala",Georgia,serif;font-size:38px;font-weight:800;line-height:1}.result-cell .sub{font-size:12px;color:var(--ink-dim);margin-top:4px}.result-cell.us .big{color:var(--us)}.result-cell.them .big{color:var(--them)}.result-cell.win{border-color:var(--gold);background:#e7b45a1a}.award{margin-top:12px;padding:12px 14px;border-radius:12px;background:#e7b45a1f;color:var(--ink);font-size:14px;line-height:1.45}.award b{color:var(--gold)}.rules{width:min(620px,100%)}.rules h3{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:18px 0 6px}.rules ul{margin:0;padding-left:18px;color:var(--ink-dim);line-height:1.55;font-size:14px}.rules li+li{margin-top:4px}.rules table{width:100%;border-collapse:collapse;font-size:14px;margin-top:6px}.rules td{padding:7px 4px;border-bottom:1px solid var(--line);color:var(--ink-dim)}.rules td:last-child{text-align:right;color:var(--ink);font-weight:600;white-space:nowrap}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;gap:12px}.seg{display:inline-flex;background:#ffffff12;border-radius:10px;padding:3px}.seg button{padding:6px 11px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-dim)}.seg button.on{background:var(--gold);color:#2a1c08}.loading{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#33452c,#141c12 70%);z-index:10;transition:opacity .8s ease}.loading.done{opacity:0;pointer-events:none}.loading .inner{width:min(320px,80vw);text-align:center}.loading .mark{font-family:Fraunces,"Noto Serif Sinhala",Georgia,serif;font-size:54px;font-weight:800;letter-spacing:.04em}.loading .mark span{color:var(--gold)}.brand{font-family:"Noto Serif Sinhala",Sinhala Sangam MN,Iskoola Pota,serif;font-weight:800;letter-spacing:0;color:var(--gold)}.loading .mark.brand{font-size:46px;line-height:1.35}.brand-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:6px}.brand-line .brand{font-size:22px;line-height:1.4}.brand-line .eyebrow{margin-bottom:0}.loading .sub{color:var(--ink-dim);font-size:13px;margin:6px 0 26px}.bar{height:4px;border-radius:4px;background:#ffffff1f;overflow:hidden}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold));transition:width .2s}.loading .pct{margin-top:10px;font-size:12px;color:var(--ink-dim);font-variant-numeric:tabular-nums}.loading .error{color:#ff9b8a;margin-top:14px;font-size:14px;line-height:1.5}.suits-deco{font-size:22px;letter-spacing:10px;margin-bottom:10px}.suits-deco .r{color:#ff7262}@media (max-width: 640px){.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto}.scoreboard{width:min(250px,100%)}.top-actions{grid-column:2;grid-row:1}.trump-badge{grid-column:1;grid-row:2;justify-self:start;max-width:100%}.scoreboard{min-width:0;padding:8px 10px}.mini-card{width:32px;height:44px}.mini-card .r{font-size:14px}.mini-card .s{font-size:16px}.score-row{grid-template-columns:42px 90px auto}.trump-badge{min-width:92px;padding:6px 10px}.trump-badge .suit{font-size:24px}.top-actions{flex-direction:column;gap:6px}.icon-btn{width:38px;height:38px}.sheet{padding:20px}.sheet h1{font-size:32px}.sheet.lobby{padding:20px 16px 16px}.lobby-title{font-size:27px!important;margin-bottom:14px!important}.game-grid{gap:8px}.game-card{padding:10px 4px}.game-card .si,.game-card .nm{font-size:15px}.game-card .soon-chip{top:5px;right:5px;padding:1px 5px;font-size:8.5px}.game-card .art{max-width:84px;margin-top:8px}.mode-btn{padding:10px;gap:9px}.mode-btn .ic{width:32px;height:32px}.mode-btn .soon-chip{top:6px;right:6px;transform:none}.game-detail p{font-size:13px}.suit-btn .glyph{font-size:32px}.look-hint{display:none}.toast{font-size:14px;white-space:normal;text-align:center;max-width:86vw}}@media (max-width: 420px){.mode-row{grid-template-columns:1fr;gap:8px}}@media (max-height: 500px) and (min-width: 641px){.scoreboard{padding:6px 10px;min-width:190px}.score-row+.score-row{margin-top:4px}.tricks-line,.trick-strip{margin-top:5px;padding-top:4px}.mini-card{width:30px;height:40px}.mini-card .r{font-size:13px}.mini-card .s{font-size:15px}.look-hint{display:none}.turn-prompt{left:auto;right:calc(12px + var(--safe-right));max-width:30%;transform:none;font-size:12px;padding:8px 10px}}.radio-dialog{color:var(--text, #f5ebd7);width:min(440px,calc(100vw - 32px - var(--safe-left) - var(--safe-right)));max-height:calc(100dvh - 32px - var(--safe-top) - var(--safe-bottom));margin:auto;background:#241e16}.radio-dialog::backdrop{background:#080704a6}.radio-dialog label{display:block;margin:20px 0 8px;font-size:14px}.radio-dialog select{width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;color:#f5ebd7;background:#342c21;font:inherit;font-size:16px}.radio-note{color:#cbbd9e;line-height:1.6}.radio-note{font-size:14px}.radio-status{min-height:44px;display:flex;align-items:center;margin-top:10px;font-size:14px;color:#e5ca87}.radio-buttons{display:flex;gap:10px}.radio-buttons .btn{flex:1}.radio-volume-row{display:flex;align-items:center;gap:12px}.radio-volume-row input{flex:1;min-width:0;height:32px;accent-color:#d4ad63}.radio-volume-row output{min-width:42px;text-align:right;font-size:14px}.radio-dialog button:focus-visible,.radio-dialog select:focus-visible,.radio-dialog input:focus-visible{outline:2px solid #e8ce91;outline-offset:3px}.icon-btn.radio-on{color:#c8e98e;box-shadow:inset 0 0 0 1px #8fad5c}#scene.over-radio{cursor:pointer}
