@font-face{font-family:Deck;src:url('/fonts/LiberationSerif-Regular.ttf')}@font-face{font-family:Deck;src:url('/fonts/LiberationSerif-Bold.ttf');font-weight:700}:root{color-scheme:dark;--bg:#101d1a;--ink:#f1e7d2;--muted:#b6bbaa;--gold:#d6b875;--line:#b8995a40}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 35% 15%,#263f31,transparent 65%),var(--bg);color:var(--ink);font:15px/1.5 system-ui,sans-serif;min-height:100vh}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--gold);border-radius:6px;padding:.65rem 1.05rem;background:var(--gold);color:#1d231d;font-weight:650}button:hover:enabled{filter:brightness(1.12)}button:disabled{cursor:not-allowed;opacity:.4}button.quiet{background:transparent;color:var(--ink);border-color:var(--line)}a{color:var(--gold)}input,select{width:100%;padding:.65rem;background:#0d1e19;color:var(--ink);border:1px solid #526457;border-radius:5px}label{display:block;color:var(--muted);font-size:.85rem;margin-bottom:12px}label input,label select{margin-top:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Deck,Georgia,serif;font-weight:400}h1{font-size:clamp(3.2rem,6vw,5.8rem);line-height:1.02;letter-spacing:-.03em;margin-bottom:22px}h2{font-size:2rem;margin-bottom:14px}h3{font-size:1.4rem;margin-bottom:8px}.eyebrow{font-size:11px;letter-spacing:.19em;color:var(--gold);font-weight:700}.muted{color:var(--muted)}.masthead{height:91px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;border-bottom:1px solid var(--line);gap:16px}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;color:var(--ink);font-size:11px;letter-spacing:.16em}.brand-mark{font-size:36px;color:var(--gold)}.brand small{display:block;font:26px Deck;letter-spacing:0}.masthead nav{display:flex;align-items:center;gap:18px}#connection{font-size:12px;color:var(--muted)}main{max-width:1600px;margin:auto;padding:28px 4% 45px}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:center;min-height:400px}.hero-copy>p:not(.eyebrow){max-width:520px;color:var(--muted);font-size:17px}.hero-art{position:relative;height:370px;display:flex;align-items:center;justify-content:center}.hero-art img{height:310px;border-radius:10px;box-shadow:0 18px 40px #0008;position:absolute}.hero-art img:nth-child(1){transform:translateX(-105px) rotate(-14deg)}.hero-art img:nth-child(2){transform:translateX(105px) rotate(14deg)}.hero-art img:nth-child(3){transform:translateY(-12px)}.home-forms{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.panel{background:#172a24e8;border:1px solid var(--line);border-radius:12px;padding:24px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.full{grid-column:1/-1}.small{font-size:12px}.badge{display:inline-block;font-size:11px;letter-spacing:.06em;border:1px solid var(--line);padding:4px 9px;border-radius:30px;color:var(--gold)}details{margin:12px 0}summary{cursor:pointer;color:var(--gold)}.score-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.score-fields label{font-size:11px}.lobby-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.seat-list{display:grid;gap:10px}.seat{padding:14px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:12px}.seat-dot,.owner-dot{display:inline-grid;place-items:center;color:var(--ink);background:var(--owner,#516751);border-radius:50%;width:29px;height:29px;flex-shrink:0;text-shadow:0 1px 3px #000;font-weight:bold}.seat .seat-info{flex:1}.seat-info small{display:block;color:var(--muted)}.room-code{font-family:monospace;font-size:1.5rem;letter-spacing:.15em}.table-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.table-heading h2{margin:0}.table-heading .row{justify-content:flex-end}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:14px}.player{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#14281f;min-width:0}.player.active{border-color:var(--gold);box-shadow:inset 0 3px var(--gold)}.player .name{display:flex;gap:7px;align-items:center;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player .owner-dot{width:22px;height:22px;font-size:10px}.player .stats{font-size:12px;color:var(--muted);margin-top:5px}.table-surface{border:1px solid #9d8e524d;background:radial-gradient(ellipse,#314c38,#1b3428 75%);border-radius:65px;min-height:290px;padding:22px 26px;box-shadow:inset 0 0 0 7px #0e21194d;display:flex;flex-direction:column;justify-content:center;align-items:center}.table-status{text-align:center;color:var(--gold);font-size:12px;margin-bottom:15px}.trick{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center;min-height:170px;width:100%}.played{text-align:center;position:relative}.played img{width:88px;aspect-ratio:440/709;border-radius:6px;box-shadow:0 4px 10px #0006;display:block;cursor:zoom-in}.played small{display:block;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;margin-top:5px}.played.winner img{outline:3px solid var(--gold)}.empty-table{display:flex;align-items:center;gap:22px;color:#e1d9bd8c;font:24px Deck}.empty-table img{width:70px;border-radius:5px;transform:rotate(-8deg)}.turn-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:82px;padding:15px 0}.turn-bar p{margin:0}.turn-bar strong{color:var(--gold)}.bid-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bid-form input{width:100px}.hand-shell{padding:18px 16px 16px;border:1px solid var(--line);border-radius:12px;background:#111f1b}.hand-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:10px}.hand-title p{margin:0}.hand-scroll{overflow-x:auto;padding:15px 5px 8px;scrollbar-color:var(--gold) #13271f}.hand{display:flex;justify-content:center;min-width:max-content;padding-right:5px}.card-button{background:none;border:0;padding:0;width:112px;flex:0 0 112px;margin-left:-30px;position:relative;transition:transform .16s ease;border-radius:7px}.card-button:first-child{margin-left:0}.card-button img{display:block;width:100%;border-radius:7px;box-shadow:-3px 3px 8px #0009}.card-button:hover,.card-button:focus-visible{transform:translateY(-12px);z-index:2}.card-button.selected{transform:translateY(-15px);z-index:3;outline:3px solid var(--gold);outline-offset:2px}.card-button.illegal img{filter:brightness(.62) saturate(.6)}.sidebar .panel{padding:18px;margin-bottom:14px}.sidebar h3{margin-bottom:14px}.book{padding:10px 0;border-top:1px solid var(--line)}.book-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:5px}.gem{width:17px;height:22px;object-fit:contain;vertical-align:middle;margin-right:7px}.book-name{display:flex;align-items:center}.book-state{font-size:10px;color:var(--muted)}.slots{display:flex;gap:6px;margin-top:8px}.slot{flex:1;text-align:center;border:1px solid var(--line);border-radius:5px;background:#102019;padding:4px 0;font-size:12px;min-width:0;color:var(--muted);font-weight:400}.slot.owned{background:var(--owner);color:white;border-color:#ffffff50;text-shadow:0 1px 3px #000}.slot small{display:block;font-size:9px;line-height:1.2}.book.controlled{border-left:2px solid var(--owner);padding-left:8px}.book.completed{border-left:3px solid var(--gold);padding-left:8px;background:#c4a7550b}.scoreline{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;gap:8px}.result-table{border-collapse:collapse;width:100%;font-size:13px}.result-table td,.result-table th{text-align:left;padding:10px 7px;border-bottom:1px solid var(--line)}.result-table td:last-child{font-weight:bold;color:var(--gold)}.result-wrap{overflow-x:auto}.history-trick{padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.history-trick b{color:var(--gold)}.history-list{max-height:320px;overflow:auto}.foot-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;background:#e8d4a5;color:#201c15;box-shadow:0 4px 30px #0008;border-radius:8px;padding:14px 22px;z-index:20}dialog{border:1px solid var(--gold);border-radius:12px;background:#172a24;color:var(--ink);max-width:min(680px,94vw);max-height:92vh;padding:30px;box-shadow:0 20px 80px #000b}dialog::backdrop{background:#000b}dialog .close{position:absolute;right:10px;top:8px;padding:1px 8px;font-size:24px;background:#14271e;color:var(--ink);z-index:1}#inspect{text-align:center}#inspect img{display:block;max-height:72vh;max-width:75vw;border-radius:8px;margin:10px auto}#inspect p{margin:12px 0 0}.rules-copy h3{margin-top:22px}.recovery{overflow-wrap:anywhere}.recovery code{font-size:11px}.round-results{margin-bottom:20px}.notice{border-left:3px solid var(--gold);padding:8px 12px;background:#c7ab6020;font-size:13px}.hidden{display:none!important}:focus-visible{outline:2px solid #f0d58e;outline-offset:4px}@media(min-width:1500px){.card-button{width:128px;flex-basis:128px;margin-left:-35px}.played img{width:100px}}@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr) 250px}.card-button{width:98px;flex-basis:98px;margin-left:-29px}.table-surface{border-radius:35px;padding:18px}.played img{width:70px}.hero-art img{height:265px}.hero-art img:nth-child(1){transform:translateX(-80px) rotate(-14deg)}.hero-art img:nth-child(2){transform:translateX(80px) rotate(14deg)}}@media(max-width:800px){main{padding:20px 16px 35px}.masthead{height:78px;padding:0 16px}.brand{font-size:9px}.brand small{font-size:22px}.brand-mark{display:none}#connection{max-width:100px}.masthead nav{gap:8px}.masthead button{font-size:12px;padding:8px}.hero{grid-template-columns:1fr;gap:0;min-height:0}.hero-art{height:280px;grid-row:1}.hero-art img{height:230px}.hero-copy{padding-top:12px}.hero h1{font-size:3.5rem}.home-forms,.lobby-layout{grid-template-columns:1fr}.game-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sidebar .panel{margin:0}.sidebar .books-panel{grid-row:span 3}.table-heading{align-items:flex-start}.table-heading h2{font-size:1.7rem}.table-heading .row{gap:5px}.players{grid-template-columns:repeat(2,1fr)}.table-surface{min-height:250px}.hand{justify-content:flex-start}.turn-bar{flex-wrap:wrap}.played img{width:75px}.hand-title{font-size:12px}.hand-title button{padding:6px 10px}.panel{padding:18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
