:root{--ink:#111312;--ink-raised:#181b19;--ink-soft:#20231f;--felt:#1c3b31;--felt-deep:#102920;--ivory:#f5eddc;--muted:#aaa89f;--gold:#caa833;--gold-bright:#e4c34b;--red:#a51f2f;--red-bright:#d52e3f;--line:#e5c44c61}*{box-sizing:border-box}html{background:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:radial-gradient(circle at 8% 0%, #b7942b17, transparent 28rem), var(--ink);color:var(--ivory);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,summary,input,select{font:inherit}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold-bright);outline-offset:4px}.play-lab{width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:22px clamp(18px,3vw,46px) 56px}.site-header,.brand-lockup,.action-bar,.action-controls,.score-heading,.hand-heading,.draw-pile,.event-history>summary,.event-row>summary{align-items:center;display:flex}.site-header{border-bottom:1px solid #caa83338;justify-content:space-between;min-height:58px}.brand-lockup{gap:13px}.brand-mark{width:34px;height:34px;color:var(--red-bright);border:1px solid var(--gold);place-items:center;font-size:12px;display:grid;transform:rotate(45deg)}.brand-mark:first-letter{transform:rotate(-45deg)}.brand-name,.lab-name,.eyebrow,.action-copy p,.empty-state,.event-empty{margin:0}.brand-name,.action-copy h1,.score-heading h2,.hand-heading h2{font-family:Georgia,Times New Roman,serif;font-weight:500}.brand-name{color:var(--ivory);font-variant:small-caps;letter-spacing:.05em;font-size:23px;line-height:1}.lab-name{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-top:5px;font-size:10px}.text-button{color:var(--muted);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;padding:9px 0 9px 14px;font-size:12px}.text-button:hover{color:var(--ivory)}.connection-state{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;font-size:10px;font-weight:700;display:inline-flex}.connection-state>span{background:#b99338;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #b993381f}.connection-state--connected>span{background:#68a47e;box-shadow:0 0 0 3px #68a47e1f}.room-strip{color:#888a83;letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:20px;min-height:38px;font-size:9px;font-weight:700;display:flex}.entry-hero{text-align:center;max-width:800px;margin:clamp(56px,8vw,110px) auto 36px}.entry-hero h1,.entry-card h2,.lobby-heading h1{font-family:Georgia,Times New Roman,serif;font-weight:500}.entry-hero h1{letter-spacing:-.04em;margin:10px 0 14px;font-size:clamp(38px,5vw,66px);line-height:1}.entry-hero>p:last-child{color:#aaa9a2;max-width:600px;margin:0 auto;font-size:15px;line-height:1.7}.entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:940px;margin:0 auto;display:grid}.entry-card{background:linear-gradient(145deg, #caa8330b, transparent 55%), var(--ink-raised);border:1px solid #caa83347;flex-direction:column;min-height:410px;padding:clamp(24px,4vw,42px);display:flex}.entry-card h2{margin:7px 0 28px;font-size:34px}.entry-card label,.capacity-control label{color:#b8b7b0;letter-spacing:.1em;text-transform:uppercase;gap:8px;margin-bottom:18px;font-size:10px;font-weight:700;display:grid}.entry-card input,.entry-card select,.capacity-control select{width:100%;min-height:50px;color:var(--ivory);background:#111412;border:1px solid #caa8334d;border-radius:0;padding:0 14px}.entry-card input::placeholder{color:#656760}.field-help{color:#7f817a;letter-spacing:0;text-transform:none;font-size:10px;font-weight:400;line-height:1.45}.entry-action{width:100%;margin-top:auto}.form-error{color:#efc6c9;text-align:center;background:#7e15232e;border:1px solid #d52e3f52;max-width:940px;margin:16px auto 0;padding:12px 14px;font-size:13px}.room-error{margin:0 0 12px}.lobby-card{background:radial-gradient(circle at top right, #caa8330f, transparent 28rem), var(--ink-raised);border:1px solid #caa83352;max-width:820px;margin:clamp(34px,6vw,82px) auto 0;padding:clamp(24px,5vw,48px)}.lobby-heading,.lobby-actions,.capacity-control{justify-content:space-between;align-items:center;gap:22px;display:flex}.lobby-heading h1{color:var(--ivory);letter-spacing:.03em;margin:8px 0 0;font-size:clamp(38px,6vw,68px)}.seat-count{color:var(--muted);text-transform:uppercase;align-items:baseline;gap:6px;display:flex}.seat-count strong{color:var(--gold-bright);font-family:Georgia,Times New Roman,serif;font-size:35px;font-weight:500}.seat-count span{letter-spacing:.1em;font-size:10px}.player-list,.table-player-list{padding:0;list-style:none}.player-list{border-top:1px solid #caa8332e;margin:32px 0 18px}.player-list li{border-bottom:1px solid #caa83321;grid-template-columns:10px 30px minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:54px;display:grid}.player-list small{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.player-list .empty-seat{color:#686a64}.player-presence{background:#51534e;border-radius:50%;width:7px;height:7px}.player-presence.is-online{background:#68a47e;box-shadow:0 0 0 3px #68a47e1a}.seat-number{color:#777970;text-align:center;font-size:10px;font-weight:700}.lobby-waiting,.lobby-note,.lobby-actions>p{color:#91928c;font-family:Georgia,Times New Roman,serif;font-size:14px}.capacity-control{border-top:1px solid #caa83321;border-bottom:1px solid #caa83321;margin-top:24px;padding:18px 0}.capacity-control label{margin:0}.capacity-control select{width:180px}.wrong-call-rule-control{border-bottom:1px solid #caa83321;justify-content:space-between;align-items:center;gap:22px;padding:18px 0;display:flex}.wrong-call-rule-control>div{gap:5px;display:grid}.wrong-call-rule-control .setting-label{color:#b8b7b0;letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:10px;font-weight:700}.wrong-call-rule-control strong{color:var(--ivory);font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:500}.wrong-call-rule-control small{color:#7f817a;max-width:430px;font-size:10px;line-height:1.45}.wrong-call-rule-control select{width:210px;min-height:44px;color:var(--ivory);background:#111412;border:1px solid #caa8334d;border-radius:0;padding:0 12px}.setting-locked{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;font-size:9px}.lobby-actions{margin-top:26px}.invite-button{padding-left:0}.lobby-note{text-align:center;margin:18px auto 0}.action-bar{background:linear-gradient(90deg,#caa8330a,#0000 55%),#151716;border:1px solid #caa83340;border-top:0;justify-content:space-between;gap:32px;min-height:170px;padding:24px clamp(18px,3vw,34px)}.action-copy{max-width:650px}.eyebrow{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:700}.action-copy h1{letter-spacing:-.025em;margin:7px 0 8px;font-size:clamp(29px,3vw,44px);line-height:1.03}.action-copy>p:last-child,.action-copy>p:nth-of-type(2){color:#bdbcb5;font-size:14px;line-height:1.6}.action-copy .claim-notice{color:#c7a5a8;border-left:2px solid var(--red-bright);letter-spacing:.04em;background:#a51f2f1a;margin:12px 0 0;padding:6px 9px;font-size:11px;display:inline-block}.action-copy .claim-notice.is-valid{color:#c9d9cd;background:#68a47e14;border-left-color:#68a47e}.action-controls{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:18px}.bones-lock-message,.bones-warning-message{color:#c7a5a8;letter-spacing:.08em;text-align:right;text-transform:uppercase;flex-basis:100%;font-size:9px}.bones-warning-message{color:var(--gold)}.roll-button,.commit-button{min-width:148px;min-height:58px;color:var(--ink);border:1px solid var(--gold-bright);background:var(--gold-bright);cursor:pointer;letter-spacing:.12em;text-transform:uppercase;padding:11px 20px;font-size:16px;font-weight:800}.roll-button span{letter-spacing:.08em;margin-top:5px;font-size:9px;font-weight:700;display:block}.roll-button:disabled,.commit-button:disabled{color:#76766f;cursor:not-allowed;background:#242724;border-color:#3e403c}.bones-button{color:#fff8e8;cursor:pointer;font-variant:small-caps;letter-spacing:.04em;text-transform:uppercase;background:radial-gradient(circle at 35% 28%,#d93c4c,#9b1727 68%,#6d0e1b);border:2px solid #ef4252;border-radius:50%;flex:0 0 116px;place-items:center;width:116px;height:116px;font-family:Georgia,Times New Roman,serif;font-size:24px;font-weight:700;display:grid;position:relative;box-shadow:inset 0 0 0 5px #0e0e0d7a,0 10px 30px #5e0a1852}.bones-button:before,.bones-button:after{background:var(--gold);content:"";width:18px;height:1px;position:absolute}.bones-button:before{left:-13px}.bones-button:after{right:-13px}.bones-button:not(:disabled):hover{transform:translateY(-2px);box-shadow:inset 0 0 0 5px #0e0e0d6b,0 14px 36px #860d1e75}.bones-button.is-calling{color:#fffdf5;border-color:#ff6976;font-size:18px;transform:scale(.97)}.bones-button:disabled{color:#958587;cursor:not-allowed;background:radial-gradient(circle at 35% 28%,#5a3337,#3b2427 70%);border-color:#613039;box-shadow:inset 0 0 0 5px #0e0e0d7a}.table-layout{grid-template-columns:minmax(0,1fr) 320px;gap:18px;margin-top:18px;display:grid}.table-field{isolation:isolate;background:radial-gradient(circle,#ffffff09,#0000 55%),linear-gradient(130deg,#0f352aeb,#0a231cfa);border:1px solid #caa8338a;border-radius:4px;height:500px;position:relative;overflow:hidden;box-shadow:inset 0 0 70px #00000047}.table-field:after{z-index:0;pointer-events:none;content:"";border:1px solid #e6c85d29;position:absolute;inset:8px}.zone{z-index:0;position:absolute;inset-inline:0}.zone--boneyard{background:#080e0c94;border-bottom:1px solid #e1c35347;height:34%;top:0}.zone--pit{top:34%;bottom:0}.zone__heading{pointer-events:none;flex-direction:column;gap:3px;display:flex;position:absolute;top:17px;left:22px}.zone--pit .zone__heading{top:20px}.zone__heading span{color:var(--gold-bright);font-variant:small-caps;letter-spacing:.06em;font-family:Georgia,Times New Roman,serif;font-size:20px}.zone__heading small{color:#f5eddc7a;letter-spacing:.12em;text-transform:uppercase;font-size:9px}.dice-layer{z-index:2;pointer-events:none;position:absolute;inset:0}.die{pointer-events:auto;cursor:pointer;background:0 0;border:0;width:76px;height:98px;padding:0;transition:left .43s cubic-bezier(.2,.75,.25,1),top .43s cubic-bezier(.2,.75,.25,1);position:absolute;transform:translate(-50%,-50%)}.die:disabled{cursor:default}.die__face{border:1px solid #ffffff47;border-radius:14px;grid-template:repeat(3,1fr)/repeat(3,1fr);width:76px;height:76px;padding:12px;display:grid;position:relative;box-shadow:0 9px 18px #0000005c,inset 5px 5px 12px #ffffff2e,inset -6px -7px 14px #00000040}.die--red .die__face{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(145deg,#fff3,#0000 34%),#b21428de}.die--lucky .die__face{background:linear-gradient(145deg,#fff8e8,#d9ccb1);border-color:#796b4a85}.pip{background:0 0;border-radius:50%;place-self:center;width:0;height:0;display:block}.pip--on{background:#fff8e6;width:10px;height:10px;box-shadow:inset 0 1px 2px #00000052}.die--lucky .pip--on{background:#252521}.die__name{color:#f5eddc94;letter-spacing:.08em;text-align:center;text-transform:uppercase;margin-top:8px;font-size:8px;display:block}.die.is-selected .die__face{outline:3px solid var(--ivory);outline-offset:5px}.die.is-rolling{animation:.62s ease-in-out dice-roll}@keyframes dice-roll{0%{transform:translate(-50%,-50%)rotate(0)scale(1)}35%{transform:translate(-50%,-62%)rotate(11deg)scale(1.05)}70%{transform:translate(-50%,-48%)rotate(-8deg)scale(.98)}to{transform:translate(-50%,-50%)rotate(0)scale(1)}}.freeze-badge{z-index:4;color:var(--ivory);letter-spacing:.14em;text-transform:uppercase;background:#0c110ed1;border:1px solid #f5eddc59;padding:7px 11px;font-size:9px;font-weight:700;position:absolute;top:calc(34% + 20px);right:20px}.score-rail,.hand-area,.event-history{background:var(--ink-raised);border:1px solid #caa83340}.score-rail{flex-direction:column;min-height:500px;padding:20px;display:flex}.players-rail{gap:20px}.players-rail .score-heading{align-items:flex-start}.players-rail .score-heading h2{font-size:22px;line-height:1.1}.table-player-list{gap:8px;margin:0;display:grid}.table-player-list li{background:#0000001f;border:1px solid #caa8331f;grid-template-columns:26px minmax(0,1fr) auto;align-items:start;gap:9px;min-height:64px;padding:10px 9px;display:grid}.table-player-list li.is-shooter{background:#caa83312;border-color:#e4c34b7a}.table-player-list li.is-claimant{background:#a51f2f14;border-color:#d52e3f99}.table-player-list li.is-inactive{opacity:.48}.table-player-list>li>span{width:24px;height:24px;color:var(--gold);border:1px solid #caa83340;place-items:center;font-size:10px;display:grid}.table-player-list strong,.table-player-list small{display:block}.table-player-list strong{font-size:12px}.table-player-list small{color:#777970;text-transform:uppercase;margin-top:3px;font-size:9px}.table-player-list b{color:var(--gold-bright);letter-spacing:.08em;text-transform:uppercase;font-size:8px}.player-table-flags{color:var(--ivory);white-space:nowrap;justify-items:end;gap:5px;font-size:10px;display:grid}.player-table-flags>strong{font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:500}.player-luck-pile{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.player-luck-pile .playing-card--compact{border-radius:2px;width:30px;box-shadow:0 3px 7px #00000040}.authority-note{border-top:1px solid #caa83329;margin-top:auto;padding-top:16px}.authority-note p:not(.eyebrow){color:#888a83;margin:7px 0 0;font-size:11px;line-height:1.55}.score-heading,.hand-heading{justify-content:space-between;gap:16px}.score-heading h2,.hand-heading h2{margin:4px 0 0}.score-heading h2{font-size:28px}.score-heading>span,.hand-heading>span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.luck-pile{background:#0000001f;border:1px dashed #caa83338;flex-wrap:wrap;flex:1;align-content:flex-start;gap:8px;min-height:238px;margin-top:18px;padding:14px;display:flex}.empty-state{color:#777970;text-align:center;align-self:center;width:100%;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.5}.playing-card{background:#111312;border:1px solid #e5c44c47;border-radius:7px;width:clamp(124px,12vw,170px);display:block;position:relative;overflow:hidden;box-shadow:0 13px 24px #00000047}.playing-card img,.card-back img{width:100%;height:auto;display:block}.playing-card--compact{border-radius:4px;width:72px;box-shadow:0 6px 12px #00000038}.playing-card--button{color:inherit;cursor:pointer;padding:0}.playing-card--button:disabled{cursor:default}.playing-card--button:not(:disabled):hover{border-color:#f5eddcb3;transform:translateY(-5px)}.playing-card--button.is-selected{border-color:var(--ivory);outline:3px solid var(--ivory);outline-offset:5px;transform:translateY(-5px)}.draw-pile{border-top:1px solid #caa8332e;gap:14px;margin-top:16px;padding-top:16px}.card-back{border:1px solid var(--gold);border-radius:4px;width:58px;overflow:hidden;box-shadow:4px 4px #262925,8px 8px #20231f}.draw-pile strong{margin-top:4px;font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:500;display:block}.hand-area{margin-top:18px;padding:22px clamp(18px,3vw,32px) 28px}.hand-heading h2{color:#cfcec5;font-size:clamp(18px,2vw,25px)}.hand-cards{justify-content:center;align-items:flex-end;gap:clamp(14px,2.6vw,34px);min-height:244px;margin-top:22px;display:flex}.hand-card-shell{justify-items:center;gap:12px;display:grid}.exchange-button{min-width:104px;min-height:34px;color:var(--muted);cursor:pointer;letter-spacing:.12em;text-transform:uppercase;background:#131613;border:1px solid #caa83342;padding:7px 11px;font-size:9px;font-weight:700}.exchange-button:hover{color:var(--ivory);border-color:#caa83394}.event-history{margin-top:18px}.event-history>summary{cursor:pointer;justify-content:space-between;min-height:58px;padding:0 20px;list-style:none}.event-history>summary::-webkit-details-marker{display:none}.event-row>summary::-webkit-details-marker{display:none}.event-history>summary span{color:var(--ivory);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700}.event-history>summary small{color:var(--muted);font-size:10px}.event-empty{color:var(--muted);padding:0 20px 20px;font-size:12px}.event-list{padding:0 14px 14px}.event-row{border-top:1px solid #caa83321}.event-row>summary{cursor:pointer;color:#a9aaa4;grid-template-columns:180px 1fr auto;gap:16px;min-height:46px;padding:0 8px;font-size:11px;display:grid}.event-row code{color:var(--gold-bright)}.event-row time{color:#74766f}.event-row pre{color:#c5c6bf;white-space:pre-wrap;background:#101210;border:1px solid #caa83324;max-height:340px;margin:0 0 10px;padding:16px;font-size:10px;line-height:1.55;overflow:auto}@media (width<=920px){.action-bar{align-items:flex-start}.table-layout{grid-template-columns:1fr}.score-rail{min-height:auto}.luck-pile{min-height:130px}}@media (width<=700px){.play-lab{padding-inline:12px}.site-header{min-height:68px}.lab-name{max-width:190px;line-height:1.4}.action-bar{flex-direction:column;min-height:0}.entry-grid{grid-template-columns:1fr}.entry-card{min-height:380px}.lobby-heading,.lobby-actions,.capacity-control,.wrong-call-rule-control{flex-direction:column;align-items:stretch}.lobby-heading{gap:6px}.seat-count{align-self:flex-start}.capacity-control select,.wrong-call-rule-control select,.lobby-actions .commit-button{width:100%}.room-strip{flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;padding-block:8px}.action-controls{width:100%}.roll-button,.commit-button{flex:1}.bones-button{flex-basis:94px;width:94px;height:94px;font-size:20px}.table-field{height:440px}.die{width:56px;height:75px}.die__face{border-radius:11px;width:56px;height:56px;padding:8px}.pip--on{width:8px;height:8px}.zone__heading{top:12px;left:14px}.zone__heading span{font-size:16px}.hand-cards{align-items:center;min-height:190px}.hand-card-shell{gap:8px}.exchange-button{width:100%;min-width:0}.playing-card{width:min(28vw,140px)}.event-history>summary{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px}.event-row>summary{grid-template-columns:120px 1fr}.event-row time{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
