:root{color:#30281f;font-synthesis:none;background:#f3ead7;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{min-width:320px;margin:0}.shell{max-width:760px;margin:0 auto;padding:clamp(24px,6vw,64px) 20px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:#716557;font:.8rem/1.5 system-ui,sans-serif}h1{margin:18px 0 36px;font-size:clamp(2.4rem,8vw,4.5rem);line-height:1.05}.paper{background:#fff9ed;border:1px solid #d6c5a8;border-radius:16px;padding:clamp(24px,5vw,40px);box-shadow:0 6px 16px #44321d0c}h2{margin:0 0 16px;font-size:1.6rem}p{font-size:1.1rem;line-height:1.6}.status{align-items:center;gap:10px;margin-bottom:0;font:.95rem/1.5 system-ui,sans-serif;display:flex}.dot{background:#a89470;border-radius:50%;flex:0 0 10px;width:10px;height:10px}.dot.ready{background:#44885c}.dot.error{background:#ac4837}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #0000;border-radius:9px;min-height:46px;padding:12px 18px;font:600 1rem/1.35 system-ui,sans-serif}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #407796}input,select{color:#30281f;background:#fffcf4;border:1px solid #bfaf96;border-radius:8px;width:100%;min-height:46px;padding:12px;font:1rem/1.4 system-ui,sans-serif}label{margin:20px 0 8px;font:600 .9rem/1.4 system-ui,sans-serif;display:block}.entry .primary{width:100%;margin-top:24px}.primary{color:#fff8ee;background:#aa4534;box-shadow:0 3px #7d3024}.secondary{color:#44362a;background:#eee1c8;border-color:#c5b293}.muted{color:#786b5c;font-weight:400}.alert{background:#f9e2dc;border:1px solid #b14d3a;border-radius:10px;padding:16px;font-family:system-ui,sans-serif}.paper{margin-bottom:20px}.paper p{margin:10px 0}.room-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.room-bar .eyebrow{display:block}.room-code{letter-spacing:.12em;font:700 clamp(1.3rem,5vw,2rem)/1.3 system-ui,sans-serif;display:block}.room-bar .status{white-space:nowrap;font-size:.8rem}.invitation{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.invitation h2{margin:0;font-size:1.3rem}.invitation p{font-size:1rem}.invitation>div{flex:240px}.copy-notice{overflow-wrap:anywhere;flex-basis:100%}.section-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-title h2{margin-bottom:0}.count{color:#887761;font-size:1rem}.role-badge{background:#e9dfca;border-radius:20px;padding:5px 10px;font:.8rem/1.4 system-ui,sans-serif}.participants{margin:20px 0 0;padding:0;list-style:none}.participants li{border-top:1px solid #e2d5bd;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.participant-name{overflow-wrap:anywhere;min-width:0}.participant-name>span{font-size:1.15rem}.participant-name small{color:#786b5c;margin-top:5px;font:.75rem/1.5 system-ui,sans-serif;display:block}.participants select{flex-shrink:0;width:190px;font-size:.85rem}.role-label{text-align:right;font:.85rem/1.5 system-ui,sans-serif}.red-seat .role-label{color:#a13e31}.blue-seat .role-label{color:#2c607f}.readiness ul{padding-left:22px;line-height:1.8}.readiness .muted{font-size:.95rem}.text-button{color:#695b4b;background:0 0;margin:0 auto;display:block}@media (width<=480px){.participants li{flex-direction:column;align-items:stretch;gap:10px}.participants select{width:100%}.role-label{text-align:left}.paper{padding:22px}.shell{padding-top:26px}}.game-table{margin:24px 0 32px}.scoreboard{gap:16px;display:flex}.team-score{border-radius:12px;flex:1;justify-content:space-between;align-items:center;padding:12px 18px;font:600 1rem/1.3 system-ui,sans-serif;display:flex}.team-score strong{font-size:2rem}.red-score{color:#963929;background:#efd4c9}.blue-score{color:#255776;background:#d3e2e8}.turn-heading{text-align:center;margin:24px 0}.turn-heading h2{margin-bottom:8px}.turn-heading p{margin:0;font-size:.95rem}.card-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 10px;display:grid}.word-card{color:#35291c;-webkit-user-select:none;user-select:none;touch-action:pan-y;background:#fff9e9;border:1px solid #bca987;border-radius:7px;min-height:68px;padding:16px 4px;font:700 clamp(.65rem,2.4vw,1.1rem)/1.2 system-ui,sans-serif;position:relative;overflow:hidden;box-shadow:0 3px #cfbea0}.word-card:disabled{opacity:1;cursor:default}.word{overflow-wrap:anywhere;z-index:1;position:relative}.card-red{color:#7e2b20;background:#edc2b4;border-color:#b87765}.card-blue{color:#234d69;background:#bfd5e3;border-color:#789aaf}.card-neutral{color:#655c43;background:#dfd5b9}.card-assassin{color:#fff5df;background:#393a38;border-color:#242722}.word-card.revealed{box-shadow:inset 0 0 0 2px #ffffff65}.card-mark{font-size:.7rem;position:absolute;bottom:2px;right:4px}.card-type{font:600 .55rem/1 system-ui,sans-serif;position:absolute;bottom:2px;left:4px}.card-legend{text-align:center;font:.75rem/1.5 system-ui,sans-serif}.display-toggle{margin:12px 0 12px auto;display:block}.shell.display-mode{max-width:1600px;padding-top:16px}.display-mode .page-heading{display:none}.display-mode .word-card{min-height:clamp(80px,10vh,130px);font-size:clamp(1rem,2.1vw,2rem)}.display-mode .card-grid{gap:24px 16px}.hold-progress{background:#96723e;height:6px;position:absolute;bottom:0;left:0}.word-card.holding{outline-offset:2px;outline:3px solid #96723e}.hold-caption{text-align:center;min-height:2em;font:.85rem/1.5 system-ui,sans-serif}.game-actions{text-align:center;margin-top:24px}.wake-notice{font:.8rem/1.5 system-ui,sans-serif}.participants li{flex-wrap:wrap}.replacement-control{flex-basis:100%}.replacement-control label{margin-top:0}.participants .replacement-control select{width:100%}.ownership-queue{padding-left:24px;font:.95rem/1.8 system-ui,sans-serif}@media (width<=480px){.card-grid{gap:16px 5px}.word-card{min-height:54px;padding:12px 2px}.shell:has(.game-table){padding-left:10px;padding-right:10px}}.identity-bar{z-index:20;background:#fff9ed;border:2px solid #b8a582;border-left-width:7px;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:14px 18px;font-family:system-ui,sans-serif;display:flex;position:sticky;top:8px;box-shadow:0 4px 16px #44321d20}.identity-person{overflow-wrap:anywhere;flex-direction:column;gap:3px;min-width:0;display:flex}.identity-person strong{font-size:1.2rem;line-height:1.3}.identity-label{font-size:.7rem;font-weight:600}.identity-role{font-size:.85rem;font-weight:650}.identity-red{color:#862f22;background:#f8e4db;border-color:#a43e2e}.identity-blue{color:#204e6d;background:#e0edf4;border-color:#235c83}.identity-shared{border-left-color:#a43e2e;border-right:7px solid #235c83}.identity-state{text-align:right;flex:0 45%;margin:0;font-size:.85rem;line-height:1.4}.identity-state strong{font-size:1.3rem;display:block}.identity-state span{display:block}.my-team-red{--turn-color:#ac4432}.my-team-blue{--turn-color:#286992}.turn-frame{z-index:40;border:3px solid var(--turn-color);pointer-events:none;border-radius:14px;animation:2.6s ease-in-out infinite turn-pulse;position:fixed;inset:4px}.identity-active{box-shadow:0 0 0 3px var(--turn-color), 0 5px 20px #44321d20}@keyframes turn-pulse{0%,to{opacity:.35}50%{opacity:.95}}@media (prefers-reduced-motion:reduce){.turn-frame{opacity:.8;animation:none}}.room-tools{align-items:center;gap:14px;display:flex}.settings-button{min-height:36px;padding:8px 12px;font-size:.8rem}.settings-dialog{color:#30281f;background:#fff9ed;border:1px solid #bfab88;border-radius:16px;width:min(560px,100% - 32px);max-height:calc(100dvh - 40px);padding:24px;box-shadow:0 18px 70px #30281f40}.settings-dialog::backdrop{background:#30281f80}.settings-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.settings-heading h2{margin:0}.settings-heading button{flex-shrink:0}.administration h2{font-size:1.2rem}@media (width<=480px){.room-tools{flex-direction:column;align-items:flex-end;gap:6px}.identity-bar{gap:10px;padding:11px 12px}.identity-person strong{font-size:1.05rem}.identity-state strong{font-size:1.15rem}.settings-dialog{padding:20px}}.invite-actions{flex-wrap:wrap;gap:8px;display:flex}.invite-qr{width:min(280px,100%);height:auto;margin:0 auto 16px;display:block}.qr-dialog{text-align:center}.qr-dialog .settings-heading{text-align:left}.qr-caption{font-size:1rem}.invite-address{overflow-wrap:anywhere;color:#2b607e;margin:12px 0;font:.8rem/1.5 system-ui,sans-serif;display:block}.qr-local-note{font:.8rem/1.5 system-ui,sans-serif}.settings-invite{margin-bottom:24px}.room-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.room-footer .display-toggle,.room-footer .text-button{margin:0}.room-footer .text-button{margin-left:auto}.room-footer .wake-notice{flex:220px;margin:0}@media (width>=1100px) and (height>=620px){.shell.desktop-game:not(:has(.takeover)){grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 310px;gap:16px 24px;max-width:1600px;height:100dvh;padding:20px 28px;display:grid}.shell.desktop-game .page-heading{display:none}.shell.desktop-game .identity-bar{grid-area:1/1;margin:0;position:static}.shell.desktop-game .room-bar{grid-area:1/2;margin:0}.shell.desktop-game .room-tools{flex-direction:column;align-items:flex-end;gap:6px}.shell.desktop-game .game-table{flex-direction:column;grid-area:2/1;gap:12px;min-height:0;margin:0;display:flex}.shell.desktop-game .scoreboard{gap:12px}.shell.desktop-game .team-score{padding:6px 16px}.shell.desktop-game .team-score strong{font-size:1.7rem}.shell.desktop-game .turn-heading{margin:0}.shell.desktop-game .turn-heading h2{margin-bottom:4px;font-size:1.5rem}.shell.desktop-game .card-grid{flex:1;grid-template-rows:repeat(5,minmax(0,1fr));gap:12px;min-height:0}.shell.desktop-game .word-card{min-height:0;padding:6px 4px;font-size:clamp(.9rem,1.3vw,1.2rem)}.shell.desktop-game .game-actions{min-height:46px;margin:0}.shell.desktop-game .card-legend{margin:0}.shell.desktop-game .hold-caption{display:none}.shell.desktop-game .participants-panel{grid-area:2/2;min-height:0;margin:0;padding:18px;overflow-y:auto}.shell.desktop-game .participants-panel h2{font-size:1.3rem}.shell.desktop-game .participants{margin-top:12px}.shell.desktop-game .participants li{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 0}.shell.desktop-game .participant-name>span{font-size:1rem}.shell.desktop-game .room-footer{grid-area:3/1/4/-1}.shell.display-mode.desktop-game{grid-template-columns:minmax(0,1fr) 250px}.shell.display-mode .game-table{grid-column:1/-1}.shell.desktop-room:not(.desktop-game){grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 310px;gap:16px 24px;max-width:1600px;height:100dvh;padding:20px 28px;display:grid}.desktop-room .page-heading{display:none}.desktop-room .identity-bar{grid-area:1/1;margin:0;position:static}.desktop-room .room-bar{grid-area:1/2;margin:0}.desktop-room .room-tools{flex-direction:column;align-items:flex-end;gap:6px}.desktop-room:not(.desktop-game) .invitation{grid-area:2/1;margin:0;padding:18px}.desktop-room:not(.desktop-game) .participants-panel{grid-area:2/2/4/3;min-height:0;margin:0;padding:18px;overflow-y:auto}.desktop-room:not(.desktop-game) .readiness{grid-area:3/1;min-height:0;margin:0;padding:18px;overflow-y:auto}.desktop-room:not(.desktop-game) .readiness h2{margin-bottom:10px}.desktop-room:not(.desktop-game) .readiness p{font-size:1rem}.desktop-room:not(.desktop-game) .room-footer{grid-area:4/1/5/-1}.desktop-room .participants li{flex-direction:column;align-items:stretch;gap:6px;padding:10px 0}.desktop-room .participants select{width:100%}}@media (width>=1100px) and (height>=620px) and (height<=750px){.shell.desktop-game .game-table,.shell.desktop-game .card-grid{gap:8px}.shell.desktop-game .word-card{padding:4px}.shell.desktop-game .team-score{padding-top:4px;padding-bottom:4px}}.room-bar{flex-wrap:wrap;min-width:0}@media (width>=1100px) and (height>=620px){.desktop-room .room-bar{flex-direction:column;justify-content:center;align-items:stretch;gap:8px}.desktop-room .room-bar>div:first-child{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.desktop-room .room-bar .eyebrow{letter-spacing:.08em;font-size:.65rem}.desktop-room .room-bar .room-code{letter-spacing:.07em;font-size:1.25rem}.desktop-room .room-bar .room-tools{flex-direction:row;justify-content:space-between;align-items:center;gap:8px}}
