:root{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#252824;background:#f5f5f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input{font:inherit}.shell{width:min(100%,760px);margin:auto;padding:28px 20px 32px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:54px}.mark{font-size:25px;font-weight:800;letter-spacing:-.06em}.edition,.eyebrow,footer{color:#6c716a;font-size:13px}.card{background:#fff;border:1px solid #e5e7e2;border-radius:22px;padding:clamp(24px,6vw,46px);box-shadow:0 12px 40px #20282008}.eyebrow{margin:0 0 14px;letter-spacing:.11em}.card h1{font-size:clamp(31px,7vw,46px);line-height:1.18;letter-spacing:-.045em;margin:0 0 18px}.intro{color:#5c625a;line-height:1.8;max-width:570px;margin:0 0 30px}label{display:block;font-size:14px;font-weight:650;margin:18px 0 9px}input{width:100%;border:1px solid #d8dcd5;border-radius:12px;padding:14px 15px;outline:0;background:#fff;color:#252824}input:focus{border-color:#596b5d;box-shadow:0 0 0 3px #596b5d24}button,.button-link{border:1px solid #d8dcd5;border-radius:12px;background:#fff;color:#252824;padding:12px 17px;cursor:pointer;min-height:48px;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:hover,.button-link:hover{background:#f3f5f1}button:disabled{opacity:.55;cursor:not-allowed}.primary{background:#263d30;color:#fff;border-color:#263d30}.primary:hover{background:#34503d}.actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}.divider{height:1px;background:#e9ebe7;position:relative;margin:32px 0}.divider span{position:absolute;background:#fff;color:#8a9089;padding:0 12px;font-size:12px;top:-9px;left:50%;transform:translateX(-50%);white-space:nowrap}.join-row{display:flex;gap:10px}.join-row input{flex:1}.hidden{display:none!important}.room-head,.room-code{display:flex;justify-content:space-between;align-items:center;gap:14px}.room-head h1{margin-bottom:0}.room-code{background:#f5f6f3;border:1px solid #e7e9e4;border-radius:12px;padding:10px 14px;margin:25px 0}.room-code strong{font-size:18px;letter-spacing:.08em;margin-left:6px}.quiet{border:0;background:transparent;color:#596b5d;font-size:13px;min-height:auto;padding:8px}.quiet:hover{background:#e8eee8}.section-title{font-size:17px;margin:26px 0 12px}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.player,.word-card{border:1px solid #e5e7e2;border-radius:12px;padding:14px}.player{display:flex;justify-content:space-between;gap:8px}.player span:last-child{font-size:12px;color:#777e75}.hint{color:#6c716a;line-height:1.7}.status{background:#f4f5f1;border-radius:12px;padding:14px;margin-top:18px}.word-form{margin-top:25px}.word-form input{font-size:20px}.words{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.word-card small{display:block;color:#737a70;margin-bottom:10px}.word-card strong{font-size:24px;overflow-wrap:anywhere}.history{border-top:1px solid #e9ebe7;margin-top:30px;padding-top:8px}.history details{padding:9px 0}.history summary{cursor:pointer;color:#687268}.message{min-height:24px;color:#a43d2c;margin:14px 2px}footer{text-align:center;margin-top:30px}.win{font-size:23px;font-weight:750;color:#263d30}.new-room{margin-top:25px}@media(max-width:520px){.top{margin-bottom:28px}.edition{font-size:11px}.room-head h1{font-size:31px}.room-code{align-items:flex-start;flex-direction:column}.join-row{flex-direction:column}.join-row button{width:100%}}

/* Halloween theme shared by lobby, room, rounds, and results. */
:root{color:#fff0d9;background:#160e20}
body{background:radial-gradient(circle at 85% 8%,#58315b 0,#2b1937 20%,transparent 44%),radial-gradient(circle at 10% 82%,#302044 0,transparent 42%),#160e20}
.mark{color:#ffbd69}.edition,.eyebrow,footer{color:#d1accb}.eyebrow{color:#ffb86b}
.card{background:#25162f;border-color:#754578;box-shadow:0 22px 60px #08040e66,inset 0 1px #ffffff10}
.intro,.hint{color:#d6c1d5}
input{border-color:#80547e;background:#1a1025;color:#fff0d9}
input::placeholder{color:#ad94b1}input:focus{border-color:#ffb86b;box-shadow:0 0 0 3px #ffb86b33}
button,.button-link{border-color:#895f87;background:#35203e;color:#fff0d9}button:hover,.button-link:hover{background:#4b2b55}
.primary{background:#f69a43;color:#2b142a;border-color:#ffbd69}.primary:hover{background:#ffb867}
.divider{background:#704a73}.divider span{background:#25162f;color:#d1accb}
.room-code,.status{background:#3a2446;border-color:#6c4774;color:#ffe1ab}
.room-code strong{color:#ffcb84}.quiet{color:#e6b4e4}.quiet:hover{background:#4b2b55}
.player,.word-card{border-color:#784b7b;background:#301d3a}.player span:first-child{font-size:21px}.player span:last-child,.word-card small{color:#d4add2}
.word-card strong,.win{color:#ffcb84}.history{border-color:#704a73}.history summary{color:#f4b567}.message{color:#ff9d8e}
.role-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:12px}
.role-choice{font-size:25px;min-width:0;padding:8px 0;line-height:1.2}.role-choice.selected{border-color:#ffbd69;background:#613255;box-shadow:0 0 0 2px #ffbd6940}
.player-actions{display:flex;align-items:center;gap:8px}.player-actions span{font-size:12px;color:#d4add2}.player .kick{min-height:30px;padding:4px 8px;font-size:12px;color:#ffcf9c;border-color:#895f87;background:#4a2747}.player .kick:hover{background:#6a3153}
.selected-role{font-size:13px;color:#ffd18b;margin:12px 0 0}
@media(max-width:520px){.role-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
