/* Avalon 1.2.1 · warm rendered café. Last presentation layer; no game rules here. */
:root{--paper:#fff4e7;--pink:#ed91a8;--pink-dark:#9b5367;--ink:#633f31;--muted:#926e58;--line:#dbb99c;--radius:23px;font-synthesis:weight}
body{background:#684737 url('./assets/cafe/night-room.webp') center top/cover fixed;color:var(--ink)}
body:before{position:fixed;inset:0;z-index:-1;height:auto;pointer-events:none;background:radial-gradient(ellipse at 22% 25%,#e6b46a19,transparent 70%),linear-gradient(90deg,#37232059,#79492733 48%,#3a231f70);display:block}
.topbar{max-width:1450px;padding:14px 27px;min-height:76px;border:0}.brand{color:#fff0df;text-shadow:0 2px 3px #3a2319;font-size:11px}.brand b{color:#ffe4b6}.brand small{color:#efccb0}.version{color:#ffedcc}
#brandMascot{width:43px;height:48px;filter:drop-shadow(0 3px 3px #3e251b70)}
.icon-btn{border:1px solid #d4aa88;border-radius:14px;background:linear-gradient(135deg,#fff6e9,#f1dac4);box-shadow:inset 0 2px 0 #fffdf6,0 3px 0 #a87758,0 5px 8px #38211440;color:#754f3e;min-height:40px;padding:9px 14px}.icon-btn:hover{background:#fff5e8}.icon-btn:active{transform:translateY(2px)}
.home-grid{max-width:1390px;grid-template-columns:minmax(0,1.28fr) minmax(390px,.92fr);gap:42px;padding:0 30px;margin:12px auto 45px;align-items:center}.hero{padding:15px 10px 8px;text-align:center;isolation:isolate}.hero>.eyebrow{justify-content:center;color:#ffe2b3;letter-spacing:2px;font-size:10px;text-shadow:0 2px 3px #512d25}.dot{background:#ffc481;box-shadow:0 0 12px #ffe9a2}
.cafe-title-plaque{position:relative;display:inline-flex;flex-direction:column;align-items:center;min-width:350px;max-width:96%;padding:18px 55px 26px;margin:25px auto 12px;border:3px solid #f4d0b3;border-top-color:#fff9ed;border-radius:33px 39px 29px 37px;background:radial-gradient(at 18% 15%,#fffaf0 5%,#f7ddce 70%);box-shadow:inset 0 0 0 5px #fff8ee,0 7px 0 #cf9c7e,0 11px 0 #a97054,0 19px 30px #3822185c;transform:rotate(-2deg)}
.cafe-title-plaque:before,.cafe-title-plaque:after{content:"";position:absolute;width:11px;height:30px;top:-16px;border-radius:10px;border:2px solid #9a6742;background:linear-gradient(90deg,#b77548,#f8d49b,#b17b58);box-shadow:2px 2px 2px #69432a40}.cafe-title-plaque:before{left:40px}.cafe-title-plaque:after{right:40px}
.cafe-title-plaque .plaque-crown{font-size:32px;line-height:1;color:#bc8839;text-shadow:0 2px 0 #fff9e2,0 -1px 0 #8a5a25}.hero .cafe-title-plaque h1{font:italic 800 clamp(64px,6.2vw,94px)/1.05 Georgia,'Times New Roman',serif;letter-spacing:-4px;color:#6c3e30;text-shadow:0 2px 0 #fffaf0,0 4px 1px #c28f6b99;margin:0 0 8px}.cafe-title-plaque h2{font-size:23px;letter-spacing:4px;margin:8px 0 8px;color:#76503c}.plaque-sub{font-size:9px;letter-spacing:2.6px;color:#af7e62}.hero-copy{color:#ffe8d0;text-shadow:0 2px 2px #4d2f29b0;margin:16px 0 0;font-size:14px;line-height:1.9;letter-spacing:.6px}.tags{justify-content:center;margin:16px 0 5px;gap:8px}.tags span{border:1px solid #e8c9a75c;background:#4c302b88;color:#ffe9cc;box-shadow:inset 0 1px 0 #ffefcb29;font-size:10px;padding:7px 13px}
.hero-scene{height:292px;margin:0 auto 0;width:100%;max-width:590px;border:0;isolation:isolate}.hero-scene:before{inset:15% 4% 3%;border-radius:50%;background:radial-gradient(ellipse,#ffdca073,transparent 70%);z-index:-2}.cafe-hero-friends{position:absolute;width:292px;height:244px;object-fit:contain;bottom:27px;left:50%;transform:translateX(-50%);z-index:3;filter:drop-shadow(0 12px 7px #381e2275)}
.hero-rabbit,.hero-chick,.scene-moon,.scene-caption{display:none}.hero-bubble{z-index:4;right:0;top:13px;font-size:11px;color:#a16364;padding:10px 13px;background:linear-gradient(#fffaf0,#fce9d6);border:2px solid #f3d4ba;border-top-color:#fffdf7;box-shadow:0 3px 0 #b67e61,0 8px 10px #3f251e40;transform:rotate(4deg)}.hero-bubble:after{content:"";position:absolute;bottom:-6px;left:18px;width:11px;height:11px;background:#fce9d6;transform:rotate(45deg)}
.hero-table{left:5%;width:90%;height:121px;bottom:4px;transform:none;border:8px solid #dbab73;border-top-color:#ffdda7;border-bottom-color:#bc8050;border-radius:50%;background:radial-gradient(ellipse at 35% 24%,#f5d99a40,transparent 55%),url('./assets/cafe/walnut.webp') center/100% 100%;box-shadow:inset 0 3px 7px #714427b8,inset 0 -3px 2px #ffdfad80,0 9px 0 #a16846,0 14px 0 #6d422f,0 24px 28px #311b2250}.hero-table:after{content:"";border:1px solid #ffd9a872;inset:5px;border-radius:50%}.scene-card{z-index:4;background:linear-gradient(145deg,#fac4d0,#dd839c)!important;left:13%!important;bottom:8px!important;width:44px;height:61px;font-size:24px;border:3px solid #fff0da;box-shadow:2px 4px 0 #91614b,0 7px 6px #442c2340;color:#fff8e6!important}.scene-card.c2{left:auto!important;right:13%!important;background:linear-gradient(135deg,#cde7d7,#7da18c)!important}.s1{top:121px;right:30px;color:#ffe5a5;text-shadow:0 0 15px #ffbf49}.s2{top:130px;left:18px;color:#ffe8a9;text-shadow:0 0 18px #ffcf87}
.demo-callout{justify-content:center;gap:8px;margin:22px auto 0;padding:0;max-width:490px}.demo-callout>span{color:#fff0d9;font-size:11px}.demo-callout .text-btn{background:linear-gradient(#ffbdce 0,#f392b0 55%,#e27c9c);border:2px solid #ffdfce;border-radius:18px;box-shadow:inset 0 3px 0 #fff6f2aa,0 4px 0 #ab5b77,0 8px 13px #3720284d;color:white;text-shadow:0 2px 0 #ad617055;min-height:48px;padding:10px 28px;font-size:16px}.demo-callout small{color:#ddbea4;margin:7px 0 0;font-size:10px}
.entry-card,.panel,.voice-panel{background:linear-gradient(133deg,#fffaf1 0%,#f9eadb 80%,#f3dcca);border:2px solid #e5bb9b;border-top-color:#fff4e3;box-shadow:inset 0 0 0 3px #fff7ebdd,0 5px 0 #b68568,0 13px 24px #34201738;border-radius:24px}.entry-card{padding:30px 31px 22px}.entry-card:before{display:none}.entry-card h2{color:#704c37;font-size:24px;line-height:1.5;margin:9px 0 14px}.entry-card .section-label{font-size:9px;color:#b48d70;letter-spacing:2px}.field{margin:13px 0;font-size:12px;color:#87644e}.field input,.field select,#chatInput{background:linear-gradient(#f6e4d5,#fff9ef);border:1px solid #dec0a8;box-shadow:inset 0 2px 4px #96704c22,0 1px 0 #fffdf7;border-radius:12px;padding:11px 13px;min-height:44px;font-size:13px;color:#73513e}.field input::placeholder{color:#b4957f}.field-label{font-size:12px;margin:17px 0 12px}.field-label span{font-size:9px;color:#a1806b}
.avatar-picker{gap:8px;grid-template-columns:repeat(4,1fr)}.avatar-option{padding:0;height:64px;aspect-ratio:auto;border:2px solid #ead0b5;border-top-color:#fff4db;border-radius:18px;background:radial-gradient(ellipse at 38% 20%,#fff6e5,#d8b998);box-shadow:inset 0 0 0 2px #fff4e5,0 3px 0 #b59575;transition:transform .15s}.avatar-option svg{width:54px;height:60px;margin:0 auto;filter:drop-shadow(0 3px 2px #6f4a3440)}.avatar-option:hover{transform:translateY(-2px)}.avatar-option.selected{border-color:#e5a073;background:radial-gradient(ellipse,#ffecdf,#e9b19b);box-shadow:inset 0 0 0 2px #fff4e5,0 3px 0 #b88065,0 0 0 2px #eec78b}.avatar-option.selected:after{right:-4px;top:-5px;background:#cb8b57;border-color:#fff6e7}
.tabs{margin:20px 0 15px;background:#ddc0ad;border:1px solid #c4a08b;box-shadow:inset 0 2px 3px #9a795940;border-radius:13px;padding:4px}.tabs button{color:#a08068;font-size:12px;min-height:37px}.tabs button[aria-selected=true]{background:linear-gradient(#fffaf1,#f5dfcc);box-shadow:0 2px 2px #83604555;color:#8b5d48;border:1px solid #efd2b6}.composition{background:#f1e2ce;border:1px solid #dbc0a0;box-shadow:inset 0 2px 4px #ad896b19;color:#967451;font-size:11px;padding:10px 12px;border-radius:12px}.home-status{font-size:10px;color:#a0836a;margin-top:16px}.settings-details{font-size:11px}.settings-details summary{min-height:37px;padding:9px 0}
.btn{border-radius:16px;min-height:44px;font-size:13px;padding:11px 18px}.btn.primary{background:linear-gradient(#ffc3d3 0%,#f799b4 35%,#e684a0 85%,#eaa0b3);border:2px solid #ffe3d9;border-bottom-color:#d7939d;box-shadow:inset 0 2px 0 #fff8eeaa,0 4px 0 #ae6176,0 6px 12px #86533e3b;color:#fff9ef;text-shadow:0 2px 0 #a4647955}.btn.secondary{background:linear-gradient(#fffaf0,#f2d9c5);border:2px solid #f8dec1;box-shadow:inset 0 2px 0 #fffdf7,0 3px 0 #c09c7b;color:#90664b}.btn.success{background:linear-gradient(#e7f3d9,#bbd5ad);border:2px solid #f1f5df;box-shadow:0 4px 0 #789065;color:#536e45}.btn.danger{background:linear-gradient(#ffdee1,#dda6b0);border:2px solid #ffe8dd;box-shadow:0 4px 0 #b07a86;color:#95465c}.btn:disabled{box-shadow:0 3px 0 #b79b8555}.btn.primary:disabled{background:linear-gradient(#e7ccc0,#d4b5a8);border-color:#f5deca;color:#957b6c}.btn.wide{margin-top:12px}
footer{color:#efd1b3;border-top:1px solid #d3a67c44;max-width:1380px;font-size:9px;text-shadow:0 1px 2px #573420;padding:15px 28px}
/* Live game: warm wood material + independent, real clickable seats. */
#gameScreen{max-width:1490px;padding:0 27px;margin:8px auto 30px}.room-head h1{color:#fff1dc;text-shadow:0 2px 4px #4e291c;font-size:26px}.room-head .eyebrow{color:#e2c19c;font-size:9px}.room-head h1 span{background:#694336;color:#ffe1b4;border:1px solid #bc936b;box-shadow:inset 0 1px 0 #eed2a433}.network{color:#f7e6c6}.network i{box-shadow:0 0 8px #b7e593}.demo-banner{background:#4d372de0;border:1px solid #c59c6e66;color:#f4dfbb;border-radius:10px;font-size:10px;padding:4px 12px}.demo-banner .text-btn{color:#f5c992}.room-info-details{color:#e9c9a7;margin-top:9px}.room-config{color:#ffe7c7}.quest-track{gap:13px;margin:5px 0 18px}.quest-step{min-height:70px;border:2px solid #ebc8a3;border-top-color:#fff6df;background:linear-gradient(145deg,#fff8e8,#efd4b4);box-shadow:inset 0 0 0 2px #fff4e277,0 4px 0 #ad7954,0 8px 10px #42261724;border-radius:15px;padding:10px 13px}.quest-step:after{display:none}.quest-step b{color:#835b3f;font-size:12px}.quest-step small{color:#ab8462;font-size:10px}.quest-symbol{background:linear-gradient(#dbc091,#ba8f5e);border:1px solid #e9c799;box-shadow:inset 0 1px 0 #fff1d19e,0 2px 1px #8c613947;color:#fff0d1;border-radius:50%;width:33px;height:33px;font:700 17px Georgia,serif}.quest-step.current{border-color:#ffcf91;background:linear-gradient(#ffe6b9,#f1c286);box-shadow:inset 0 0 0 2px #fff3d580,0 4px 0 #a67543,0 0 17px #ffcf7860}.quest-step.succeeded{background:linear-gradient(#e5edda,#cad7b2)}.quest-step.failed{background:linear-gradient(#f6dedb,#e6bcb9)}
.game-grid{grid-template-columns:minmax(0,1fr) 285px;gap:21px;align-items:start}.table-panel{padding:19px 20px 16px;background:linear-gradient(145deg,#724b36eF,#4f3228e8);border:2px solid #b9865a;border-top-color:#e4b987;box-shadow:inset 0 0 0 4px #734727,0 6px 0 #432820,0 14px 25px #2b1a2455;border-radius:25px;isolation:isolate}.table-panel:before{display:none}.panel-heading{border:1px solid #d4ae84;border-top-color:#fff4d9;background:linear-gradient(135deg,#fff3db,#e8cdae);box-shadow:inset 0 0 0 2px #ffedce66,0 4px 0 #8c603e;border-radius:13px;padding:12px 18px;align-items:center}.panel-heading h2{font-size:22px;line-height:1.4;color:#765036;margin:4px 0 0}.panel-heading .section-label{color:#ad8461;font-size:9px}.timer{background:#ac7c55;color:#fff2cf;border:1px solid #daba87;border-radius:10px;box-shadow:inset 0 2px 3px #68422833;white-space:nowrap}.phase-hint{color:#eccca5;font-size:11px;margin:12px 5px 0;line-height:1.6}
#playersGrid{height:452px;margin:2px 0 0;position:relative;display:block;padding:0;isolation:isolate;background:transparent;border:0}
#playersGrid[data-count="7"]{height:485px}#playersGrid[data-count="8"],#playersGrid[data-count="9"],#playersGrid[data-count="10"]{height:555px}
#playersGrid:before{content:"";position:absolute;inset:44px 14px 23px;border-radius:50%;height:auto;background:radial-gradient(ellipse at 40% 22%,#eabe7457,transparent 64%),url('./assets/cafe/walnut.webp') center/100% 100%;border:10px solid #c99864;border-top-color:#f7ce93;border-bottom-color:#ac754f;box-shadow:inset 0 0 0 3px #dba56b,inset 0 8px 16px #6c452e9c,0 8px 0 #9b6446,0 14px 0 #754832,0 20px 0 #513025,0 26px 23px #2c1a2a80;transform:none;z-index:-2}
#playersGrid:after{content:"";position:absolute;inset:62px 31px 38px;border:1px solid #fbd7a38c;border-radius:50%;height:auto;pointer-events:none;z-index:-1;background:none}
#playersGrid>.player-seat{position:absolute;left:var(--seat-x);top:var(--seat-y);transform:translate(-50%,-50%);width:118px;height:140px;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border:0!important;background:none!important;padding:0;box-shadow:none!important;opacity:1;z-index:2;overflow:visible;color:#6c4a35;isolation:isolate;transition:filter .15s}
#playersGrid>.player-seat:before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:100px;height:102px;border:5px solid #e6b873;border-top-color:#fff0bf;border-bottom-color:#ad794b;border-radius:50%;background:radial-gradient(circle at 36% 25%,#ffe0df,#e7adc1);box-shadow:inset 0 2px 5px #864b6340,0 0 0 2px #8d5a33,3px 4px 0 #9a6742,5px 8px 0 #654126,0 12px 13px #2d1a285c;z-index:-1}
#playersGrid>.player-seat:has(.is-psuke):before{background:radial-gradient(circle at 35% 25%,#e7faff,#aecddb)}
#playersGrid>.player-seat>svg{width:89px;height:100px;flex-shrink:0;z-index:1;filter:drop-shadow(0 3px 2px #7d4a514d);animation:none;transition:translate .18s}
#playersGrid>.player-seat>.name{position:relative;z-index:3;display:block;min-width:99px;max-width:133px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:800;line-height:1.2;padding:6px 9px;margin:-4px 0 0;background:linear-gradient(#fffdf2,#f3d9c2);border:1px solid #d8ae8c;border-top-color:#fffaf1;border-radius:12px;box-shadow:inset 0 1px 0 #fffbf1,0 3px 0 #bc9070,0 6px 6px #56372935;color:#74513b}
#playersGrid>.player-seat>.seat-status{position:relative;font-size:9px;line-height:1.25;padding:4px 10px;margin:4px 0 0;min-height:18px;border-radius:20px;background:linear-gradient(#694d41,#48372f);color:#f6e6ce;border:1px solid #a4896b66;box-shadow:0 2px 2px #39232a44;max-width:140px;white-space:nowrap}
#playersGrid>.player-seat>.seat-no{position:absolute;left:2px;top:7px;display:grid;place-items:center;width:24px;height:25px;border:2px solid #ffe2b5;border-radius:50%;background:linear-gradient(#9b775c,#59392a);color:#fff5db;font-size:11px;z-index:4;box-shadow:0 2px 1px #603c29}
#playersGrid>.player-seat>.leader-crown{position:absolute;left:50%;right:auto;top:-24px;transform:translateX(-50%);font-size:34px;color:#ffcc66;text-shadow:0 2px 0 #976224,0 0 13px #ffd89b99;z-index:5}
#playersGrid>.player-seat.selected:before{border-color:#fff1bc;box-shadow:inset 0 2px 5px #864b6340,0 0 0 3px #ffbe69,0 0 24px #ffd295,3px 5px 0 #9a6742,0 13px 16px #2d1a285c}.player-seat.selected>svg{translate:0 -4px}#playersGrid>.player-seat.selected>.seat-status{background:linear-gradient(#e6b45e,#b37a35);border-color:#ffe0a7;color:#fff8e9}.player-seat.selectable:hover{filter:brightness(1.07)}.player-seat.selectable:hover>svg{translate:0 -4px}.player-seat.own>.name:after{display:none}.player-seat.empty-seat{filter:opacity(.65)}
#playersGrid[data-count="8"]>.player-seat,#playersGrid[data-count="9"]>.player-seat,#playersGrid[data-count="10"]>.player-seat{width:108px;height:128px;min-height:128px;padding:0}#playersGrid[data-count="8"]>.player-seat:before,#playersGrid[data-count="9"]>.player-seat:before,#playersGrid[data-count="10"]>.player-seat:before{width:90px;height:90px}#playersGrid[data-count="8"]>.player-seat>svg,#playersGrid[data-count="9"]>.player-seat>svg,#playersGrid[data-count="10"]>.player-seat>svg{width:79px;height:89px}#playersGrid[data-count="8"]>.player-seat>.name,#playersGrid[data-count="9"]>.player-seat>.name,#playersGrid[data-count="10"]>.player-seat>.name{font-size:10px;padding:5px 8px;min-width:90px;margin:-3px 0 0}
.av-table-center{left:50%;top:48%;width:44%;max-width:330px;z-index:1;padding:15px 18px 14px;background:linear-gradient(125deg,#fff1d8,#efd3b2);border:2px solid #e9c89f;border-top-color:#fff5db;box-shadow:inset 0 0 0 3px #ffeccf,0 4px 0 #b4865c,0 8px 10px #66422555;border-radius:16px;transform:translate(-50%,-50%);pointer-events:none}.av-table-center:before,.av-table-center:after{content:"";position:absolute;top:4px;bottom:4px;width:11px;border-radius:9px;border:1px solid #b28a60;background:linear-gradient(90deg,#b78754,#ffdfb3 48%,#ca9d6b);box-shadow:1px 2px 3px #94633d4d}.av-table-center:before{left:-7px}.av-table-center:after{right:-7px}.av-table-center .av-duo{display:none}.av-table-center b{color:#80563b;font-size:17px;font-weight:800;letter-spacing:.8px;text-shadow:0 2px 0 #fff3d9}.av-table-center>small{color:#b58a62;font-size:10px;letter-spacing:1px;margin:6px 0 8px}.av-team-slots{gap:7px}.av-team-slot{width:42px;height:46px;border:1px solid #dbb68d;background:linear-gradient(#fff8e6,#e6cba9);border-radius:10px;box-shadow:inset 0 1px 0 #fff8e6,0 3px 0 #c9a17a;color:#be9671}.av-team-slot svg{width:35px;height:41px}.av-team-caption{color:#996d4b!important;font-size:10px!important;line-height:1.4;margin:8px 0 0!important}
.rejection-track{color:#e9c8a3;font-size:10px;margin:0 0 9px;gap:7px}.reject-dot{background:#c59a66;box-shadow:inset 0 1px 0 #ffe7c38a}.reject-dot.active{background:#e9929a}.action-area{border-top:1px solid #c59c6644;padding:15px 5px 0;margin:0;min-height:70px;color:#ffe8c6}.action-area>p,.action-note{color:#edd1ad!important;font-size:11px}.action-area .action-row .btn{min-width:165px;font-size:14px}.waiting-chip{background:#362f27ad;border-color:#ab8c6369;color:#f2dcba;padding:10px 17px;border-radius:13px}.spinner{border-color:#ab8b6350;border-top-color:#ecc990}
.side-column{gap:17px}.identity-panel{padding:17px 20px}.identity-panel h3{font-size:17px;color:#8d6349}.identity-panel:before{color:#d8ad8b}.identity-preview{min-height:127px;margin:8px 0 13px}.card-back{width:91px;height:122px;gap:0;background:radial-gradient(at 32% 18%,#f1bdc3,#b97688);border:4px solid #fce4c4;outline:1px solid #c69271;box-shadow:inset 0 0 0 2px #fff0d33b,3px 4px 0 #ab7758,0 8px 8px #6b453342;border-radius:12px}.card-back svg{width:63px;height:80px;filter:drop-shadow(0 3px 2px #5a3d3245)}.card-back>span{font-size:8px;background:#f7dcbd;color:#966746;border:1px solid #cba079;border-radius:7px;padding:4px 8px;letter-spacing:2px}.identity-panel small{color:#a88a70;font-size:9px}.identity-panel .btn{min-height:40px;font-size:12px}.side-column .voice-panel{background:linear-gradient(#fff8e9,#e9ddc2);border-color:#d3ba8b;padding:15px 17px;border-radius:21px}.voice-heading h3{color:#8a7451;font-size:15px}.voice-controls .btn{font-size:11px;min-height:38px;padding:8px 12px}.voice-count{font-size:9px}.voice-status{font-size:10px;color:#9b8767}.av-voice-toggle{font-size:9px;color:#998261}.chat-panel{padding:16px}.chat-title h3{color:#8e684d;font-size:16px}.chat-title span{font-size:9px}.chat-messages{height:123px}.chat-line .text{background:#eedbc7}.chat-line.self .text{background:#f3c8ce}.send-btn{background:linear-gradient(#eca8b4,#c6798e);box-shadow:0 3px 0 #9f6473;border:1px solid #efd4c4}.chat-panel>small{font-size:9px;color:#a5856a}.history-panel{border-style:solid;margin-top:18px;background:linear-gradient(#fff7e7,#efd7bd);padding:17px 20px}.history-panel summary{color:#8b6547;font-size:13px}.history-panel summary:before{content:"✧ ";color:#b88955}.history-panel .history-item{border-color:#d9b995}.history-panel .vote-tag{box-shadow:0 2px 0 #c6a2854d}
dialog{background:linear-gradient(140deg,#fffaf0,#f2d9bd);border:3px solid #efd0ac;border-top-color:#fffae9;box-shadow:inset 0 0 0 3px #fff7e2,0 8px 0 #a67851,0 35px 110px #251921b3;color:#765139;border-radius:25px}dialog::backdrop{background:#3522228c;backdrop-filter:blur(6px)}.identity-dialog .role-emblem{background:radial-gradient(#fce0cb,#ecb3b4);border:5px solid #efc681;border-top-color:#fff0bc;box-shadow:0 4px 0 #b3894e,0 8px 13px #8d5d5b3b}.identity-dialog .role-emblem.evil{background:radial-gradient(#e9daeb,#c7a1bd)}.role-emblem svg{width:107px;height:126px}.identity-dialog h2{color:#95614b}.identity-dialog .intel{background:#fff1d8;border:1px solid #ddbb96}.quest-card{background:linear-gradient(135deg,#eef7dc,#b9d2a3);border:4px solid #fff1d4;outline:1px solid #b79467;box-shadow:3px 5px 0 #8b9866,0 10px 13px #3c292c42;min-height:182px}.quest-card.fail-card{background:linear-gradient(135deg,#efdbe8,#b993b0);box-shadow:3px 5px 0 #8f687e,0 10px 13px #3c292c42;border-color:#f9e1d2;outline-color:#a87b74}.quest-card .card-mark svg{width:68px;height:80px}.av-moment-card{background:linear-gradient(140deg,#fff9ea,#f0d3b9);border:3px solid #f0c18a;border-top-color:#fff3d7;box-shadow:inset 0 0 0 3px #fff2dd66,0 5px 0 #aa7853,0 22px 70px #30222977}.av-moment-card>strong{color:#aa6473;text-shadow:0 2px 0 #fff8e5}.av-moment-card.is-good>strong{color:#678454}.av-mini-card{box-shadow:2px 4px 0 #9b9b68,0 4px 7px #63432b32}.toast{background:#543d32;border:1px solid #c5a17b;color:#fff4de;border-radius:14px}
/* Narrow screen keeps legible controls and the same rendered materials. */
@media(max-width:1100px){.home-grid{gap:26px;grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);padding:0 22px}.entry-card{padding:24px}.cafe-title-plaque{min-width:300px;padding:19px 37px 22px}.hero .cafe-title-plaque h1{font-size:75px}.cafe-title-plaque h2{font-size:19px;letter-spacing:3px}.hero-scene{height:275px}.game-grid{grid-template-columns:minmax(0,1fr) 258px;gap:16px}.table-panel{padding:15px 12px}.panel-heading h2{font-size:18px}.av-table-center{width:42%;padding:12px 10px}.av-table-center b{font-size:15px}.av-team-slots{gap:4px}.av-team-slot{width:31px;height:36px}.av-team-slot svg{width:27px;height:33px}.av-table-center>small{font-size:9px}.topbar nav{gap:8px}.identity-panel{padding:17px}.side-column{gap:16px}}
@media(max-width:900px){.topbar{padding:12px 18px}.topbar .version{display:none}.home-grid{grid-template-columns:1fr;max-width:690px;padding:0 22px;gap:26px}.hero .cafe-title-plaque h1{font-size:86px}.cafe-title-plaque{min-width:360px}.entry-card{padding:27px}.avatar-picker{grid-template-columns:repeat(8,1fr)}.avatar-option svg{width:45px}.hero-scene{height:290px}.game-grid{grid-template-columns:1fr}.side-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}.side-column>.chat-panel{grid-column:1/-1}.chat-messages{height:125px}.identity-panel{display:block;text-align:center}.identity-preview{display:flex;min-height:127px}.side-column .voice-panel{align-self:start}.room-head h1{font-size:22px}.quest-track{gap:10px}.quest-step{padding:9px 10px;gap:8px}.quest-step b{font-size:11px}.quest-step small{font-size:9px}#gameScreen{padding:0 18px}.av-table-center{width:40%;padding:17px}.av-table-center b{font-size:17px}.av-team-slot{width:37px;height:40px}.av-team-slot svg{width:30px;height:37px}#playersGrid:before{inset-left:17px;inset-right:17px}.panel-heading h2{font-size:21px}}
@media(max-width:600px){body{background-attachment:scroll}.topbar{padding:10px 13px;gap:9px;min-height:65px}.brand{font-size:9px;letter-spacing:.5px;gap:6px}.brand small{font-size:8px;letter-spacing:1px}.brand #brandMascot{width:32px;height:39px}.topbar nav{gap:6px}.topbar .icon-btn{font-size:9px;padding:8px 9px;min-height:34px;border-radius:10px}.topbar .back-link{display:none}.home-grid{padding:0 15px;margin-top:4px;gap:29px}.hero{padding:8px 0 0}.hero>.eyebrow{font-size:8px;letter-spacing:1.3px}.cafe-title-plaque{min-width:285px;max-width:90%;padding:15px 31px 20px;margin:21px auto 11px;border-radius:28px}.hero .cafe-title-plaque h1{font-size:74px;margin-bottom:5px;letter-spacing:-3px}.plaque-crown{font-size:27px!important}.cafe-title-plaque h2{font-size:18px;letter-spacing:2.6px;margin:6px 0}.plaque-sub{font-size:7px;letter-spacing:2px}.hero-copy{font-size:12px;line-height:1.9;margin-top:10px}.tags{gap:5px;margin:13px 0 4px}.tags span{font-size:9px;padding:6px 9px}.hero-scene{height:230px;max-width:400px;margin:0 auto}.cafe-hero-friends{height:203px;width:240px;bottom:18px}.hero-table{height:91px;bottom:1px;left:2%;width:96%;border-width:6px}.hero-bubble{font-size:9px;top:8px;right:0;padding:8px 10px;max-width:150px}.scene-card{width:31px;height:45px;font-size:18px;line-height:33px;left:7%!important;bottom:7px!important}.scene-card.c2{left:auto!important;right:7%!important}.s1{right:8px;top:104px}.s2{left:7px;top:97px}.demo-callout{margin:22px 0 0;gap:8px}.demo-callout>span{font-size:10px}.demo-callout .text-btn{font-size:14px;padding:10px 22px}.demo-callout small{font-size:9px;margin-top:6px}.entry-card{padding:25px 22px}.entry-card h2{font-size:21px}.avatar-picker{grid-template-columns:repeat(4,1fr);gap:10px}.avatar-option{height:64px}.avatar-option svg{width:52px;height:60px}.field-label span{font-size:8px}.room-head{margin:8px 0;gap:6px}.room-head h1{font-size:21px}.room-head h1 span{font-size:10px;letter-spacing:.5px;padding:4px 7px}.room-actions .network{font-size:9px}.room-actions .icon-btn{font-size:10px;min-height:34px;padding:7px 10px}.demo-banner{font-size:9px;line-height:1.6;padding:6px 9px}.demo-banner .text-btn{font-size:9px;min-height:26px}.room-info-details{margin:7px 0 3px;font-size:10px}.room-info-details summary{font-size:9px}.quest-track{gap:5px;margin:5px 0 17px}.quest-step{display:flex;flex-direction:column;padding:8px 2px 7px;min-height:86px;border-radius:12px;gap:5px;text-align:center;border-width:1px}.quest-step b{font-size:9px}.quest-step small{font-size:8px;line-height:1.5}.quest-symbol{width:26px;height:26px;font-size:14px}.quest-step .special{font-size:7px}.table-panel{padding:12px 10px;border-radius:19px}.panel-heading{padding:10px 12px;border-radius:10px}.panel-heading h2{font-size:17px;line-height:1.5}.panel-heading .section-label{font-size:8px;letter-spacing:1.2px}.timer{font-size:9px;white-space:nowrap;max-width:none;padding:7px}.phase-hint{font-size:10px;margin:11px 3px 4px;line-height:1.75}
 #playersGrid,#playersGrid[data-count="7"],#playersGrid[data-count="8"],#playersGrid[data-count="9"],#playersGrid[data-count="10"]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 6px;height:auto;min-height:0;padding:126px 3px 16px;margin:5px 0 8px}
 #playersGrid:before{inset:3px 0 0;height:auto;border-width:6px;border-radius:34px 34px 38% 38%/28px 28px 45px 45px;background-size:auto 100%;box-shadow:inset 0 0 0 2px #dca563,0 6px 0 #9b6446,0 11px 0 #513025,0 17px 14px #2c1a2a55}
 #playersGrid:after{inset:13px 10px 10px;height:auto;border-radius:25px 25px 32% 32%/25px 25px 40px 40px}
 #playersGrid>.player-seat,#playersGrid[data-count="8"]>.player-seat,#playersGrid[data-count="9"]>.player-seat,#playersGrid[data-count="10"]>.player-seat{position:relative;left:auto;top:auto;transform:none;width:100%;height:120px;min-height:120px;padding:0;z-index:2}
 #playersGrid>.player-seat:before,#playersGrid[data-count="8"]>.player-seat:before,#playersGrid[data-count="9"]>.player-seat:before,#playersGrid[data-count="10"]>.player-seat:before{width:78px;height:82px;top:0;border-width:4px;box-shadow:inset 0 2px 5px #864b6340,0 0 0 1px #8d5a33,2px 4px 0 #9a6742,0 7px 8px #2d1a285c}
 #playersGrid>.player-seat>svg,#playersGrid[data-count="8"]>.player-seat>svg,#playersGrid[data-count="9"]>.player-seat>svg,#playersGrid[data-count="10"]>.player-seat>svg{width:70px;height:81px;flex-shrink:0}
 #playersGrid>.player-seat>.name,#playersGrid[data-count="8"]>.player-seat>.name,#playersGrid[data-count="9"]>.player-seat>.name,#playersGrid[data-count="10"]>.player-seat>.name{min-width:76px;max-width:103px;font-size:10px;line-height:1.2;padding:5px 4px;margin:-3px 0 0;border-radius:9px}
 #playersGrid>.player-seat>.seat-status{font-size:8px;line-height:1.2;min-height:17px;padding:3px 5px;margin:4px 0 0;max-width:106px}#playersGrid>.player-seat>.seat-no{left:1px;top:5px;width:21px;height:21px;font-size:9px}#playersGrid>.player-seat>.leader-crown{font-size:28px;top:-22px}
 #playersGrid>.player-seat.selected:before{border-color:#ffefbf;box-shadow:0 0 0 2px #ebbb60,0 0 18px #ffe0a796,2px 4px 0 #9a6742}.av-table-center{display:flex;flex-direction:column;gap:0;position:absolute;width:85%;max-width:none;left:50%;top:51px;transform:translate(-50%,-50%);padding:9px 9px 8px;border-radius:12px;min-height:73px}.av-table-center b{font-size:14px;text-align:center;line-height:1.3;letter-spacing:.5px}.av-table-center .av-duo{display:none}.av-table-center>small:not(.av-team-caption){display:none}.av-table-center .av-team-caption{text-align:center;font-size:8px!important;margin:6px 0 0!important;line-height:1.2;letter-spacing:.4px}.av-team-slots{gap:6px;margin-top:5px;min-height:0}.av-team-slot{width:24px;height:28px;border-radius:7px;font-size:12px}.av-team-slot svg{width:23px;height:27px}.av-table-center:before,.av-table-center:after{width:9px}.rejection-track{font-size:9px;margin:16px 0 11px;gap:5px}.action-area{padding:13px 0 3px;min-height:70px}.action-area>p{font-size:10px;margin-bottom:12px}.action-area .action-row .btn{font-size:12px;min-width:137px;min-height:46px}.waiting-chip{font-size:10px;padding:10px}.action-note{font-size:10px!important}#gameScreen{padding:0 10px}.side-column{display:flex;flex-direction:column;gap:17px}.side-column>.panel,.side-column>.voice-panel{width:100%}.identity-panel{display:grid;grid-template-columns:87px minmax(0,1fr);align-items:center;text-align:left;padding:18px;gap:4px 15px}.identity-panel>.section-label{grid-column:2;font-size:8px}.identity-panel>h3{grid-column:2;margin:3px 0 6px;font-size:16px}.identity-panel>.btn{grid-column:2;margin:0;min-height:40px;font-size:12px}.identity-panel>small{grid-column:2;font-size:8px;margin-top:6px}.identity-preview{grid-column:1;grid-row:1/5;min-height:115px;margin:0}.card-back{width:77px;height:107px}.card-back svg{width:55px;height:69px}.card-back>span{font-size:7px;padding:3px 5px}.voice-heading h3{font-size:15px}.voice-status{font-size:10px;max-width:none}.chat-messages{height:170px}.history-panel{padding:16px 17px}.history-panel summary{font-size:12px}.quest-card{width:125px;min-height:170px}footer{padding:15px 20px;flex-direction:column;gap:5px;font-size:8px}.av-moment-card>strong{font-size:23px}
}
@media(max-width:370px){.topbar .brand small{display:none}.topbar .icon-btn{font-size:8px;padding:7px}.cafe-title-plaque{min-width:261px;padding:16px 24px 20px}.hero .cafe-title-plaque h1{font-size:68px}.cafe-title-plaque h2{font-size:17px}.hero-copy{font-size:11px}.tags span{font-size:8px}.cafe-hero-friends{width:223px;height:190px}.hero-scene{height:220px}.entry-card{padding:22px 18px}.field-label span{margin-left:0}.room-head h1{font-size:19px}#playersGrid>.player-seat>.name{min-width:69px;font-size:9px!important}.panel-heading h2{font-size:16px}.av-table-center b{font-size:13px}.action-area .action-row .btn{min-width:126px}}
/* Real wood grain with fine plank seams; keep dimensional edges in the original layer. */
#playersGrid:before,.hero-table{background-image:radial-gradient(ellipse at 38% 20%,#eabe743f,transparent 60%),repeating-linear-gradient(0deg,transparent 0 38px,#5d38284a 39px,#efd0a52b 40px,transparent 41px),url('./assets/cafe/walnut.webp');background-size:auto,auto,100% 100%}
@media(max-width:600px){#playersGrid>.player-seat>.name,#playersGrid[data-count="8"]>.player-seat>.name,#playersGrid[data-count="9"]>.player-seat>.name,#playersGrid[data-count="10"]>.player-seat>.name{max-width:100%;min-width:70px}.hero-copy{margin-right:0}.hero-scene{transform:none}}
/* Tablet widths need a full-width 10-seat table rather than a compressed sidebar. */
@media(min-width:901px) and (max-width:1150px){.game-grid{grid-template-columns:1fr}.side-column{display:grid;grid-template-columns:1fr 1fr;gap:18px}.side-column>.chat-panel{grid-column:1/-1}.side-column>.voice-panel{align-self:start}}
