@font-face{font-family:Karla;src:url('/fonts/karla-normal.woff2');font-display:swap}*{box-sizing:border-box} :root{color-scheme:dark;--bg:#121816;--card:#1b2420;--line:#344239;--text:#ece8da;--muted:#a0ada2;--gold:#d6b879;--red:#cf6b54;--green:#a2bd95}body{margin:0;background:radial-gradient(ellipse at 40% 15%,#26392c 0,transparent 60%),var(--bg);color:var(--text);font:15px/1.65 Karla,'PingFang SC','Microsoft YaHei',sans-serif;min-height:100vh}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;background:#26352d;color:var(--text);min-height:44px;padding:9px 16px;transition:background .2s,transform .2s}button:hover:enabled{background:#3b4d40}button:active:enabled{transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px max(20px,calc((100vw - 1140px)/2));border-bottom:1px solid var(--line);background:#111815cc}header a{color:var(--muted);text-decoration:none;font-size:13px}.brand{font-family:serif;font-weight:bold;letter-spacing:2px}.brand small{font:10px Karla,sans-serif;color:var(--gold);margin-left:10px;letter-spacing:2px}header button{font-size:12px;min-height:36px;padding:5px 10px}main{max-width:1140px;margin:auto;padding:28px 20px 50px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:2px;margin:0 0 8px}h1{font-family:'Songti SC',serif;font-weight:500;font-size:clamp(23px,4vw,34px);margin:0;letter-spacing:2px}h2{margin:0;font-size:17px}.quiet{background:transparent;color:var(--muted);font-size:13px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px}.table-panel{border:1px solid #485346;border-radius:14px;overflow:hidden;background:#1a251ee0;box-shadow:0 24px 70px #0004}.scoreboard{display:flex;justify-content:space-between;padding:11px 22px;background:#101b14;color:var(--gold);font-size:12px;letter-spacing:1px}.player{display:flex;gap:12px;align-items:center;padding:18px 24px}.player h2{font-size:14px;margin-bottom:6px}.avatar{height:43px;width:43px;display:grid;place-items:center;font-size:28px;border:1px solid #637157;border-radius:50%;color:var(--gold);background:#2b392d}.effects{margin-left:auto;text-align:right;color:var(--gold);font-size:12px;max-width:125px}.health{display:flex;gap:5px}.health i{width:19px;height:7px;background:#8da781;border-radius:1px;box-shadow:0 0 8px #99c47b33}.health i.empty{background:#3d493c;box-shadow:none}.scene{height:260px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 5%,#4b5236 0,#1e2820 42%,#0d1511 85%)}.lamp{position:absolute;top:-15px;left:calc(50% - 58px);width:116px;height:33px;border-radius:0 0 45% 45%;background:#b6a779;box-shadow:0 10px 60px 20px #d1bd6f25}.dealer{position:absolute;left:calc(50% - 56px);top:25px;width:112px;height:135px}.hat{position:absolute;z-index:2;top:0;left:17px;width:78px;height:37px;background:#0c110e;border-radius:40% 40% 5% 5%;border-bottom:6px solid #705e38;box-shadow:0 8px 0 7px #0c110e}.face{position:absolute;top:37px;left:30px;width:54px;height:58px;background:linear-gradient(110deg,#505346,#1b2820);border-radius:35% 35% 46% 46%;display:flex;justify-content:space-around;padding:15px 10px}.face i{width:5px;height:4px;background:#e0b47a;box-shadow:0 0 10px #d6b879}.coat{position:absolute;top:89px;left:0;width:112px;height:56px;background:linear-gradient(90deg,#0d1510,#293a2a,#0d1510);border-radius:40% 40% 0 0}.felt{position:absolute;left:5%;right:5%;bottom:-70px;height:225px;transform:perspective(500px) rotateX(28deg);border:10px solid #554535;border-radius:40px;background:radial-gradient(ellipse at center,#3c5740,#1c3024);box-shadow:0 -3px 0 #87734e,0 0 50px #0008,inset 0 0 70px #07180cb0}.felt:after{content:'';position:absolute;inset:12px;border:1px solid #7e8b5b45;border-radius:24px;pointer-events:none}.table-mark{position:absolute;left:25px;top:17px;font-size:11px;letter-spacing:3px;color:#b6b57c70}.shotgun{position:absolute;width:83%;left:8%;top:25px;filter:drop-shadow(3px 12px 7px #0009);transform:rotate(-9deg)}.shell-ornament{position:absolute;right:26px;top:12px;display:flex;gap:5px;transform:rotate(16deg)}.shell-ornament i{display:block;width:10px;height:25px;background:linear-gradient(#bdac68 20%,#874335 20%);border:1px solid #0004;border-radius:2px}.scene-caption{position:absolute;bottom:14px;left:10px;right:10px;text-align:center;z-index:3;font-size:12px;color:#d9decd;text-shadow:0 2px 3px #000}.flash{position:absolute;inset:0;pointer-events:none}.scene.bang .flash{animation:flash .4s}.scene.bang .shotgun{animation:recoil .4s}.scene.click .shotgun{animation:recoil .2s}@keyframes flash{0%{background:#eac078aa}100%{background:transparent}}@keyframes recoil{40%{transform:translateX(-18px) rotate(-15deg)}100%{transform:rotate(-9deg)}}.ammo{padding:16px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.label{font-size:10px;letter-spacing:1px;color:var(--muted)}.shells{display:flex;gap:6px;margin-top:8px}.shells i{width:13px;height:26px;background:linear-gradient(#ae9a63 24%,#68736b 24%);border-radius:3px 3px 1px 1px;border:1px solid #90a38855;text-align:center;font:11px/32px sans-serif;color:#e7e5ce}.ammo-count{font-size:14px;color:var(--gold);white-space:nowrap}.you{padding-top:16px;padding-bottom:10px}.turn{text-align:center;color:var(--gold);font-weight:bold;font-size:14px;padding:2px 16px 12px}.intel{margin:0 24px 12px;text-align:center;border:1px dashed var(--gold);background:#b5964020;color:#e3c891;border-radius:7px;padding:9px;font-size:13px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 24px}.actions button{font-size:15px;font-weight:bold;padding:12px}.actions span{display:block;font-size:11px;font-weight:normal;margin-top:2px;opacity:.8}.fire{background:#7d4035;border-color:#a9644b}.fire:hover:enabled{background:#995040}.self{background:#293d30;border-color:#5c7158}.inventory-title{display:flex;justify-content:space-between;gap:8px;padding:20px 24px 10px;font-size:12px}.inventory-title small{color:var(--muted);font-size:10px}.items{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 24px 24px;min-height:105px}.item{display:flex;flex-direction:column;align-items:center;padding:8px 5px;position:relative}.item .symbol{font-size:23px;color:var(--gold);line-height:1.4}.item .item-name{font-size:12px}.item small{font-size:9px;color:var(--muted)}.empty-bag{grid-column:1/-1;font-size:12px;color:var(--muted);text-align:center;align-self:center}.side-card{background:#1b2420a0;border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:16px}.side-card h2{font-family:serif;font-size:21px;margin-bottom:20px}.log{list-style:none;margin:0;padding:0;font-size:12px;color:var(--muted);max-height:350px;overflow:auto;scrollbar-width:thin}.log li{padding:10px 0;border-top:1px solid #34423990}.log li:first-child{color:var(--text)}summary{cursor:pointer;font-size:13px;color:var(--gold);min-height:24px}.rules p{font-size:12px;color:var(--muted);margin:12px 0}.rules .credit{border-top:1px solid var(--line);padding-top:12px;font-size:10px}.local-record{text-align:center;font-size:11px;color:var(--muted)}dialog{color:var(--text);background:#202b23;border:1px solid #827b54;border-radius:16px;padding:32px;width:min(430px,calc(100% - 36px));box-shadow:0 20px 100px #0008}dialog::backdrop{background:#060b08ed;backdrop-filter:blur(10px)}dialog h2{font-family:serif;font-size:32px;font-weight:500;margin:8px 0 14px;letter-spacing:3px}dialog p{color:var(--muted);font-size:13px}dialog label{display:block;font-size:12px;color:var(--gold);margin:18px 0 6px}dialog select{display:block;width:100%;background:#15201a;color:var(--text);padding:12px 10px;border:1px solid var(--line);border-radius:6px;min-height:44px}dialog .primary{margin-top:24px;width:100%;color:#182018;background:var(--gold);border-color:var(--gold);font-weight:bold}.primary:hover:enabled{background:#e7ca90}dialog .quiet{width:100%;margin-top:10px}.fine{text-align:center;font-size:10px!important;margin:20px 0 0}body.private .layout{visibility:hidden}@media(max-width:850px){.layout{grid-template-columns:minmax(0,1fr)}aside{display:grid;grid-template-columns:1fr 1fr;gap:14px}.side-card{margin:0}.local-record{grid-column:1/-1}.log{max-height:180px}.brand small{display:none}}@media(max-width:480px){header{padding:12px}.brand{font-size:13px;letter-spacing:1px}header a{font-size:11px}main{padding:20px 12px 32px}.heading{margin-bottom:16px}.heading .eyebrow{font-size:9px;letter-spacing:1px}.heading .quiet{padding:8px;white-space:nowrap}h1{font-size:23px;letter-spacing:1px}.scoreboard{padding:10px 16px}.player{padding:14px 16px}.scene{height:235px}.ammo{padding:14px 16px}.ammo-count{font-size:12px}.actions{padding:0 16px;gap:8px}.actions button{font-size:14px;padding:10px 6px}.inventory-title{padding:18px 16px 10px}.items{padding:0 16px 18px}.intel{margin-left:16px;margin-right:16px}aside{grid-template-columns:1fr}.side-card{padding:18px}.shells{gap:5px}.effects{max-width:110px;font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.online-status{padding:12px 16px;border:1px solid #617c64;border-radius:10px;color:#d5e7ce;overflow-wrap:anywhere}.join-row{display:flex;gap:8px;margin-top:14px}.join-row input{min-width:0;flex:1;background:#15231c;color:#f1edda;border:1px solid #647968;border-radius:8px;padding:12px;font:inherit;text-transform:uppercase}#room-message{white-space:pre-line;overflow-wrap:anywhere}#lobby button{margin-top:8px}[hidden]{display:none!important}

#room-code,#room-message{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}#room-code[readonly]{cursor:text;letter-spacing:.14em}
