:root{--bg: #f4f2ec;--surface: #fffdf8;--surface-2: #eae7da;--ink: #1c2420;--ink-2: #4c5a52;--line: #d6d2c2;--felt: #14532d;--felt-deep: #0c3a1f;--gold: #a8741a;--red: #b3372f;--suit: #23272b;--card-bg: #fffef9;--room: #060f09}:root[data-theme=dark]{--bg: #0d1410;--surface: #16211b;--surface-2: #1e2d24;--ink: #edf2ec;--ink-2: #a9bcb0;--line: #2d4235;--gold: #d9a441;--red: #e0655c;--suit: #23272b;--card-bg: #f7f4ea}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.55}input{font:inherit}.home,.lobby{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:32px 16px 48px;background:radial-gradient(120% 90% at 50% 0%,var(--surface-2) 0%,var(--bg) 55%)}.home-head{text-align:center;margin-bottom:24px}.brand-mark{font-size:44px;color:var(--felt);line-height:1}.home-head h1,.lobby-head h1{font-size:40px;margin:6px 0 4px;letter-spacing:.01em}.home-sub{color:var(--ink-2);margin:0;max-width:34ch}.lobby-head{text-align:center;margin-bottom:20px}.lobby-code span{display:block;color:var(--ink-2);font-size:13px;text-transform:uppercase;letter-spacing:.12em}.lobby-code strong{font-size:34px;letter-spacing:.3em;color:var(--gold)}.lobby-sub{color:var(--ink-2);max-width:36ch;margin:8px auto 0}.lobby-wait{color:var(--ink-2);text-align:center}.sheet{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 32px #0a190f14}.field{display:flex;flex-direction:column;gap:7px}.field>span{font-size:13px;color:var(--ink-2)}.field input{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:11px 12px}.code-input{letter-spacing:.35em;text-transform:uppercase;font-weight:700}.seg{display:flex;gap:6px}.seg button{flex:1;padding:9px 0;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.seg button.seg-on{background:var(--felt);border-color:var(--felt);color:#f2f6ef}.ai-row{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:14px}.chip-on{background:var(--felt);border-color:var(--felt);color:#f2f6ef}.primary{background:var(--felt);color:#f4f8f1;border:none;border-radius:12px;padding:13px 16px;font-weight:600}.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:11px 16px}.plain-link{background:none;border:none;color:var(--ink-2);text-decoration:underline;padding:4px}.divider{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.form-error{color:var(--red);margin:0}.seat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.seat-row{display:flex;align-items:center;gap:10px}.seat-avatar{width:34px;height:34px;border-radius:50%;background:var(--surface-2);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;font-weight:700}.seat-name{flex:1}.stage{position:relative;height:100dvh;display:grid;grid-template-columns:1fr 188px;background:radial-gradient(90% 90% at 50% 42%,#1d3524,#0b1a10 58%,#040805);overflow:hidden}.felt{position:relative;margin:12px 6px 12px 12px;border:10px solid #241a10;border-radius:44px;background:radial-gradient(120% 100% at 50% 38%,#fff6d624,#fff6d600 55%),radial-gradient(ellipse at 50% 45%,#256f40 0%,#22703f 30%,#185c31 58%,var(--felt) 78%,var(--felt-deep) 100%);box-shadow:inset 0 0 90px #00000080,inset 0 0 14px #00000073}.corner{position:absolute;z-index:6;display:flex;flex-direction:column;align-items:center;gap:4px}.corner-tl{top:12px;left:12px;align-items:flex-start}.corner-tr{top:12px;right:12px;align-items:flex-end}.corner-bl{bottom:12px;left:12px;align-items:flex-start}.corner-br{bottom:12px;right:12px;align-items:flex-end}.presence{display:flex;align-items:center;gap:8px;background:#070f0ae0;border:1px solid rgba(243,234,216,.16);border-radius:999px;padding:5px 12px 5px 5px;color:#edf2ec;max-width:44vw}.presence-face{width:30px;height:30px;border-radius:50%;background:#1e2d24;color:#f3e5bd;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:none}.presence-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.presence-cards{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#a9bcb0}.mini-back{width:9px;height:13px;border-radius:2px;background:repeating-linear-gradient(45deg,#7c1f1a 0,#7c1f1a 2px,#932a23 2px,#932a23 4px);border:1px solid #f3ead8;display:inline-block}@keyframes cornerBlink{0%{box-shadow:0 0 #d9a44100}16%{box-shadow:0 0 0 3px #d9a441e6,0 0 18px #d9a44180}34%{box-shadow:0 0 #d9a44100}52%{box-shadow:0 0 0 3px #d9a441e6,0 0 18px #d9a44180}72%,to{box-shadow:0 0 #d9a44100}}.presence-turn{animation:cornerBlink .72s ease-in-out 1;border-color:#d9a441a6}.bubble{background:#f5f1e3;color:#1c2420;border-radius:12px;padding:5px 10px;font-size:13px;font-weight:600;box-shadow:0 4px 14px #00000059;animation:bubbleIn .2s ease-out}@keyframes bubbleIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.pile-zone{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:14px;z-index:4}.pile{position:relative;width:204px;height:178px}.pile-card{position:absolute;left:50%;top:50%;margin:-68px 0 0 -48px}@keyframes cardTravel{0%{opacity:.4;transform:translateY(26px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.travel-anim{animation:cardTravel .34s cubic-bezier(.25,1,.35,1)}@keyframes leaderIn{0%{transform:scale(1)}to{transform:scale(1.045)}}.leader-anim{animation:leaderIn .26s ease-out}.stacks{display:flex;gap:16px;min-height:82px}.stack{position:relative;width:58px;height:82px;background:none;border:none;padding:0}.stack-card{position:absolute;left:0;top:0}.card{position:relative;width:96px;height:136px;border-radius:9px;background:linear-gradient(168deg,#fffefa,#fdfaf1 55%,#f6f0df);border:1px solid rgba(60,50,28,.14);box-shadow:0 6px 16px #00000059;color:var(--suit);flex:none;padding:0;text-align:left;font-family:Bricolage Grotesque,Avenir Next,-apple-system,Segoe UI,sans-serif}.card-small{width:58px;height:82px;border-radius:6px}.card-red{color:var(--red)}.card-black{color:var(--suit)}.card-corner{position:absolute;top:6px;left:7px;display:flex;flex-direction:column;align-items:center;line-height:1}.card-small .card-corner{top:4px;left:5px}.card-rank{font-weight:800;font-size:21px}.card-small .card-rank{font-size:14px}.card-suit{font-size:15px}.card-small .card-suit{font-size:10px}.card-pip{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:44px;opacity:.92}.card-small .card-pip{font-size:24px}.card-leader{outline:3.5px solid #d9a441;box-shadow:0 10px 22px #0006,0 0 0 6px #d9a4412e;filter:brightness(1.045)}.card-suggested{outline:3.5px solid #d9a441;transform:translateY(-8px)}.card-back{background:repeating-linear-gradient(45deg,#7c1f1a 0,#7c1f1a 7px,#932a23 7px,#932a23 14px);border:2px solid #f3ead8}button.card{transition:transform .18s ease-out,box-shadow .18s ease-out}button.card:not(:disabled):hover{transform:translateY(-8px)}button.card:disabled{opacity:1}.deck-spot{position:absolute;left:50%;bottom:178px;transform:translate(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:3px}.deck-spot .card{width:58px;height:82px}.deck-count{color:#f5f1e3bf;font-size:12px}@keyframes deckSetDown{0%{transform:translate(-50%) translateY(-7px)}to{transform:translate(-50%) translateY(0)}}.chalk{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:5;background:linear-gradient(180deg,#141d17,#101713);border:1px solid rgba(243,234,216,.4);border-radius:8px;padding:7px 12px;color:#f5f1e3;min-width:190px;box-shadow:0 6px 18px #00000059}.chalk-rows{display:flex;flex-direction:column;gap:2px}.chalk-row{display:flex;align-items:baseline;gap:8px;font-size:13px}.chalk-name{min-width:52px;color:#d8dfd2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chalk-marks{flex:1;display:inline-flex;gap:8px;color:#a9bcb0;min-width:30px}.chalk-total{color:#f3e5bd;font-weight:700;font-size:15px}@keyframes chalkWrite{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.chalk-total{animation:chalkWrite .38s ease-out}.chalk-note{margin:5px 0 0;font-size:12px;color:#f3e5bd}.hand-zone{position:absolute;left:calc((100% - 188px)/2);bottom:14px;transform:translate(-50%);z-index:8;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.hand{display:flex;pointer-events:auto}.hand .card{width:106px;height:150px;margin-left:-34px;transform:rotate(var(--fan, 0deg));transform-origin:50% 90%}.hand .card:first-child{margin-left:0}@keyframes cardDealIn{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.deal-in{animation:cardDealIn .32s cubic-bezier(.25,1,.35,1) backwards}.hand .card-suggested{transform:rotate(var(--fan, 0deg)) translateY(-10px)}.suggest-note{color:#f5f1e3d9;font-size:12.5px;margin:0;text-shadow:0 1px 4px rgba(0,0,0,.6)}.result-card,.spread{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:9;background:#09120cf0;border:1px solid rgba(243,234,216,.3);border-radius:16px;color:#edf2ec;padding:18px 20px;text-align:center;max-width:min(88%,380px);box-shadow:0 18px 44px #00000080}.result-card p{margin:0 0 8px}.result-line{font-size:19px;font-weight:700;color:#f3e5bd}.spread-cards{display:flex;gap:10px;justify-content:center;margin-bottom:12px}.spread-item{margin:0;display:flex;flex-direction:column;align-items:center;gap:5px}.spread-item figcaption{font-size:12px;color:#a9bcb0}.panel{margin:12px 12px 12px 6px;background:#070f0aeb;border:1px solid rgba(243,234,216,.12);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:8px;align-self:start}.panel button{background:transparent;border:1px solid rgba(243,234,216,.18);color:#edf2ec;border-radius:10px;padding:9px 10px;font-size:14px;text-align:left}.panel button:active{background:#eef2e8;color:#1c2420}.panel-group{display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(243,234,216,.12);padding-top:8px}.panel-code{color:#f3e5bd;font-weight:700;letter-spacing:.3em;text-align:center;font-size:18px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#030604a8;display:flex;align-items:center;justify-content:center;padding:18px}.modal{background:var(--surface);color:var(--ink);border-radius:18px;padding:22px;max-width:520px;max-height:86dvh;overflow:auto}.modal h2{margin-top:0}.modal p{line-height:1.5;color:var(--ink-2)}.modal .primary{width:100%}.modal-foot{margin:12px 0 0;text-align:center;font-size:12.5px}.modal-foot a{color:var(--ink-2)}.licences{max-width:560px;margin:0 auto;padding:40px 20px 56px;font-size:14px}.licences h1{font-size:22px;margin:0 0 14px}.licences p{line-height:1.55;color:var(--ink-2)}.licences a{color:var(--ink)}.toast{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:60;background:#40201c;color:#f7e8e4;padding:10px 16px;border-radius:10px;font-size:14px;box-shadow:0 10px 26px #0006}.offline-note{position:fixed;bottom:12px;left:50%;transform:translate(-50%);z-index:60;background:#070f0aeb;color:#f3e5bd;padding:7px 14px;border-radius:999px;font-size:13px}@media (max-width: 760px){.stage{grid-template-columns:1fr}.felt{margin:8px;border-width:7px;border-radius:30px}.panel{position:absolute;right:8px;bottom:8px;z-index:20;margin:0;padding:8px;flex-direction:row;flex-wrap:wrap;max-width:calc(100% - 16px);align-self:auto}.panel button{font-size:12.5px;padding:7px 9px}.panel-group{flex-direction:row;border-top:none;padding-top:0}.hand-zone{left:50%;bottom:64px}.hand .card{width:84px;height:122px;margin-left:-30px}.hand .card:first-child{margin-left:0}.pile{width:158px;height:142px}.pile-card{margin:-52px 0 0 -36px}.pile .card{width:72px;height:104px}.pile .card-rank{font-size:16px}.pile .card-pip{font-size:30px}.deck-spot{bottom:208px}.deck-spot .card{width:44px;height:62px}.chalk{top:8px;min-width:150px;padding:5px 9px}.chalk-row{font-size:12px}.presence{padding:4px 9px 4px 4px}.presence-face{width:25px;height:25px;font-size:12px}.presence-name{font-size:12px}.stacks{min-height:62px}.stack,.stack .card-small{width:44px;height:62px}.stack .card-rank{font-size:11px}.stack .card-pip{font-size:17px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
