/* Entry: a quiet product object and two deliberate choices. */
body.view-home{min-height:100dvh}.view-home main,.view-home #lobby-surface{display:none!important}.view-home .scoreboard,.view-home #round-number,.view-home #level-card,.view-home #room-btn,.view-home #new-btn,.view-home #history-btn{display:none!important}.view-home .site-header{grid-template-columns:1fr 1fr}.view-home .header-tools{grid-column:2}.view-home .brand{font-size:19px;letter-spacing:3px;color:#96878d}.view-home #settings-btn{color:#a99ba1}.entry{max-width:1160px;min-height:calc(100dvh - 100px);margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;align-items:center;padding:0 55px 60px;gap:35px}.entry-object{position:relative;margin:0 -55px 0 -65px}.entry-object img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 1px 1px #fff8)}.entry-content{padding:0 0 8px 25px}.entry-wordmark{margin:0;font-family:'Songti SC','Noto Serif CJK SC',serif;font-size:69px;font-weight:500;line-height:1.3;letter-spacing:.2em;color:#51434b}.entry-roman{font:12px Georgia,serif;letter-spacing:.42em;color:#78666f;margin:12px 0 48px 4px}.mode-choices{border-top:1px solid #7e66752e}.mode-choice{position:relative;display:grid;grid-template-columns:30px 1fr 20px;align-items:center;width:100%;padding:25px 5px;text-align:left;border-bottom:1px solid #7e66752e;gap:14px;transition:padding .22s,background .22s,color .22s}.mode-index{font:14px Georgia,serif;color:#78666f;font-variant-numeric:tabular-nums;align-self:start;padding-top:4px}.mode-name{display:block;font-family:'Songti SC','Noto Serif CJK SC',serif;font-size:23px;letter-spacing:.12em;line-height:1.4}.mode-note{display:block;font-size:12px;letter-spacing:.06em;color:#78666f;line-height:1.4;margin-top:7px}.mode-choice>svg{width:16px;height:16px;color:#9b7c8c;transition:transform .22s}.mode-choice:hover{padding-left:13px;padding-right:0;background:linear-gradient(90deg,#81516407,transparent)}.mode-choice:hover>svg{transform:translateX(3px)}.mode-choice:active{color:#815164}.mode-choice:disabled{opacity:.5}.entry:not([hidden]) .entry-object{animation:object-arrive .65s cubic-bezier(.2,.7,.2,1) both}.entry:not([hidden]) .entry-content{animation:entry-arrive .5s .08s ease-out both}.entry[hidden]{display:none}.site-header .brand{transition:color .2s}
@keyframes object-arrive{from{opacity:0;transform:translateY(12px) rotate(-2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes entry-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
/* Lobby: four seats surround one table, with no enclosing player panels. */
#lobby-surface{width:min(700px,calc(100% - 56px));margin:12px auto 28px;animation:entry-arrive .25s ease-out}.room-lobby main{display:none}.room-lobby .scoreboard,.room-lobby #round-number,.room-lobby #level-card{visibility:hidden}.room-active #new-btn{display:none}.room-heading{display:flex;justify-content:space-between;align-items:center;margin:0 12px 7px}.eyebrow{display:block;color:#78666f;font-size:11px;letter-spacing:.2em;margin-bottom:8px}.room-code{border:0;background:none;padding:0;display:flex;align-items:center;gap:13px;font-family:Georgia,serif;font-size:22px;letter-spacing:.08em;color:#634c5a;cursor:pointer;font-variant-numeric:tabular-nums}.room-code svg{width:13px;height:13px;opacity:.45}.connection-state{font-size:11px;letter-spacing:.06em;color:#78666f;display:flex;align-items:center;gap:7px}.connection-state i{width:4px;height:4px;background:#806573;border-radius:50%}.connection-state.offline i{background:#b29a77;animation:room-pulse 1s infinite alternate}.room-table{position:relative;width:100%;max-width:520px;margin:0 auto;height:440px;isolation:isolate}.room-table:before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:292px;height:292px;border-radius:50%;background:radial-gradient(circle at 31% 23%,#f3f0ea,#e1dadd 85%);border:1px solid #fffaf3a6;box-shadow:inset 2px 3px 8px #baacb313,1px 1px 2px #fff9,10px 18px 32px -15px #aa949e35;z-index:-1}.room-table:after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:275px;height:275px;border-radius:50%;border:1px solid #9c839413;pointer-events:none;z-index:-1}.room-seat{position:absolute;width:160px;min-height:100px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;padding:0;border:0;background:none}.room-seat[data-seat="2"]{left:50%;top:0;transform:translateX(-50%)}.room-seat[data-seat="0"]{left:50%;bottom:0;transform:translateX(-50%)}.room-seat[data-seat="3"]{left:0;top:50%;transform:translateY(-50%)}.room-seat[data-seat="1"]{right:0;top:50%;transform:translateY(-50%)}.seat-position{display:flex;width:35px;height:35px;justify-content:center;align-items:center;font-family:'Songti SC',serif;font-size:11px;color:#78666f;border-radius:50%;background:linear-gradient(140deg,#f9f6ef,#eae3e2);border:1px solid #fff8;box-shadow:1px 3px 7px #a58d9b12;margin-bottom:9px}.room-seat>.team-badge{position:absolute;top:-5px;left:50%;transform:translate(-50%,-100%);pointer-events:none}.room-seat.mine .seat-position{color:#7c5269;border-color:#ac91a477;box-shadow:0 0 0 3px #9c7d9110,1px 3px 7px #a58d9b12}.seat-identity{max-width:100%}.seat-identity strong{display:block;font-weight:450;letter-spacing:.08em;font-size:17px;max-width:158px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5}.seat-identity>span{display:block;margin-top:3px;font-size:11px;color:#78666f;letter-spacing:.06em}.room-seat.mine .seat-identity strong{color:#6e4d62}.seat-vacant{font-size:13px;line-height:1.5;letter-spacing:.12em;color:#b8abb1}.seat-options{display:flex;gap:7px;align-items:center;margin-top:7px;height:22px}.seat-options select{border:0;border-bottom:1px solid #c7bbbe77;background:none;color:#78666f;font:inherit;font-size:11px;padding:2px 12px 3px 0;width:60px;cursor:pointer}.seat-remove{display:flex;align-items:center;justify-content:center;border:0;background:none;color:#ad98a5;padding:4px;cursor:pointer}.seat-remove svg{width:10px;height:10px}.add-bot{border:1px solid #997f9228;border-radius:20px;background:#f9f6ef55;color:#78666f;font-size:11px;letter-spacing:.08em;padding:5px 12px;margin-top:8px;cursor:pointer;min-height:26px}.add-bot:hover{border-color:#997f9277;color:#725367}.room-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;min-width:126px}.seated-count{font:19px Georgia,serif;color:#ac98a5;letter-spacing:.04em;line-height:1}.seated-count b{font-size:43px;color:#806476;font-weight:400;letter-spacing:-.05em}.seated-count i{font-size:15px;font-style:normal;margin:0 8px;color:#baa8b3}.room-center-label{font-size:11px;color:#78666f;letter-spacing:.2em;margin:0 0 6px}.room-center .button{min-width:118px;min-height:37px;height:37px;font-size:12px;padding:8px 18px}.room-center .button:disabled{opacity:.48}.room-wait{font-size:11px;color:#78666f;letter-spacing:.1em;margin-top:8px}.room-footer{display:flex;justify-content:space-between;align-items:center;min-height:35px;margin:3px 10px 0}.room-footer .quiet-button{color:#78666f;font-size:11px}.room-footer .button{min-width:106px;min-height:36px}.room-dialog{width:min(520px,calc(100% - 30px))!important}.room-dialog .dialog-header{margin-bottom:24px}.room-dialog .room-heading{margin:0 0 12px}.room-dialog .room-code{font-size:20px}.room-table.compact{height:348px}.room-table.compact:before{width:210px;height:210px}.room-table.compact:after{width:197px;height:197px}.room-table.compact .room-seat{width:109px;min-height:85px}.room-table.compact .seat-position{width:28px;height:28px;margin-bottom:7px}.room-table.compact .seat-identity strong{font-size:14px;max-width:105px}.room-table.compact .seated-count b{font-size:35px}.room-table.compact .room-center-label{margin:0}.room-tabs{display:flex;border-bottom:1px solid #c4b8bd66;margin:0 0 27px;gap:27px}.room-tabs button{border:0;background:none;color:#a09299;font:inherit;font-size:12px;padding:0 0 12px;cursor:pointer;position:relative}.room-tabs [aria-selected=true]{color:#624152}.room-tabs [aria-selected=true]:after{content:'';height:1px;background:#795466;position:absolute;bottom:-1px;left:0;right:0}.room-field{display:block;font-size:12px;color:#78666f;letter-spacing:.1em;margin-bottom:20px}.room-field input{display:block;border:0;border-bottom:1px solid #ad9ca666;background:none;font:inherit;font-size:18px;color:#4a3c43;letter-spacing:.06em;width:100%;padding:12px 0 13px;border-radius:0;outline:none;box-sizing:border-box}.room-field input:focus{border-color:#7a5266}.room-field input::placeholder{color:#c0b4b7;font-size:14px;letter-spacing:.06em}.room-submit{width:100%;margin-top:5px}.room-error{font-size:11px;min-height:15px;color:#995d70;margin:4px 0 13px}@keyframes room-pulse{to{opacity:.3}}
@media(max-width:800px){.entry{grid-template-columns:1fr 1fr;padding:0 32px 50px;gap:0}.entry-content{padding-left:10px}.entry-object{margin:0 -22px 0 -40px}.entry-wordmark{font-size:52px}.entry-roman{margin-bottom:32px}.mode-choice{padding:21px 0;grid-template-columns:23px 1fr 16px;gap:9px}.mode-name{font-size:20px}}
@media(max-width:600px){.view-home .site-header{height:64px;padding:0 23px}.view-home .brand{font-size:17px}.entry{display:flex;flex-direction:column;justify-content:center;min-height:calc(100dvh - 64px);padding:0 32px 32px;gap:0}.entry-object{width:min(400px,112vw);margin:-36px -25px -25px}.entry-content{width:100%;max-width:340px;padding:0}.entry-wordmark{font-size:38px;letter-spacing:.2em;line-height:1.2}.entry-roman{font-size:11px;letter-spacing:.38em;margin:9px 0 25px 2px}.mode-choices{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #7e66752e}.mode-choice{grid-template-columns:19px 1fr 13px;padding:21px 4px 20px;gap:5px;align-items:start}.mode-choice+ .mode-choice{padding-left:18px;border-left:1px solid #7e66751b}.mode-index{font-size:12px;padding-top:3px}.mode-name{font-size:17px;letter-spacing:.05em;white-space:nowrap}.mode-note{font-size:11px;letter-spacing:.02em}.mode-choice>svg{width:13px;height:13px;margin-top:5px}.mode-choice:hover{padding-left:4px}.mode-choice+.mode-choice:hover{padding-left:18px}.room-entry{font-size:11px;padding:5px;gap:4px}.room-entry svg{width:17px;height:17px}.room-entry.in-room #room-label{display:none}.hand-tools{gap:10px!important}#lobby-surface{width:calc(100% - 28px);margin:18px auto 24px}.room-heading{margin:0 10px 16px}.room-code{font-size:20px;gap:10px}.room-table{height:408px}.room-table:before{width:224px;height:224px}.room-table:after{width:210px;height:210px}.room-seat{width:102px;min-height:100px}.seat-position{width:31px;height:31px;margin-bottom:9px}.seat-identity strong{font-size:14px;max-width:99px;letter-spacing:.04em}.seat-vacant{font-size:12px}.seat-options select{width:55px}.room-center{min-width:110px;gap:9px}.seated-count b{font-size:37px}.seated-count{font-size:17px}.room-center .button{min-width:104px;padding:7px 12px}.room-footer{margin:12px 12px 0}.room-dialog{padding:23px!important}.room-table.compact{height:328px}.room-table.compact:before{width:179px;height:179px}.room-table.compact:after{width:167px;height:167px}.room-table.compact .room-seat{width:81px}.room-table.compact .seat-identity strong{max-width:79px;font-size:12px}.room-table.compact .room-center{min-width:94px}.room-table.compact .room-wait{letter-spacing:0}.room-dialog .room-code{font-size:18px}}
@media(max-height:650px) and (min-width:801px){.entry{padding-bottom:25px;min-height:calc(100dvh - 78px)}.entry-object{max-width:520px}.entry-wordmark{font-size:57px}.entry-roman{margin-bottom:28px}.mode-choice{padding-top:20px;padding-bottom:20px}.room-table{height:365px}.room-table:before{width:250px;height:250px}.room-table:after{width:236px;height:236px}.room-seat{min-height:94px}#lobby-surface{margin-top:0}.room-heading{margin-bottom:0}}
@media(max-width:600px) and (max-height:700px){.entry-object{width:330px;margin:-34px -25px -28px}.entry-wordmark{font-size:33px}.entry-roman{margin-bottom:21px}.entry{padding-bottom:24px}.room-table{height:370px}.room-table:before{width:212px;height:212px}.room-table:after{width:199px;height:199px}}
@media(max-width:360px){.entry{padding-inline:20px}.entry-object{width:100vw}.mode-choice+.mode-choice,.mode-choice+.mode-choice:hover{padding-left:11px}}
@media(prefers-reduced-motion:reduce){.entry:not([hidden]) .entry-object,.entry:not([hidden]) .entry-content,#lobby-surface,.connection-state.offline i{animation:none}.mode-choice,.mode-choice>svg{transition:none}}
