:root{--bg:#150f11;--surface:#261a1d;--surface2:#342326;--line:#634448;--text:#f1ded1;--muted:#b69c98;--red:#b44849;--gold:#e7c5a6}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0%,#402529,transparent 53%),var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;min-height:100dvh;transition:background .9s,color .9s}body.day{--bg:#bfa998;--surface:#e1cbb9;--surface2:#e9d8c8;--line:#9e7e72;--text:#402923;--muted:#6d5049;--red:#a33e3f;--gold:#704b3e;background:radial-gradient(ellipse at 20% 0%,#f2e1cc,transparent 60%),var(--bg)}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:13px 18px;border-radius:4px}button:hover:not(:disabled){border-color:var(--gold)}button:disabled{opacity:.35;cursor:not-allowed}.primary{background:var(--red);border-color:var(--red);color:#fff1e8;font-weight:700}.outline{background:transparent}.shell{max-width:1120px;margin:0 auto;padding:22px 24px 65px}.brand{font-family:Georgia,serif;font-weight:bold;letter-spacing:-.065em;font-size:clamp(27px,5vw,44px)}.brand span{color:#ce6661}.top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:20px;border-bottom:1px solid var(--line)}.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:700;text-transform:uppercase;color:var(--muted)}h1,h2,h3{font-family:Georgia,serif;letter-spacing:-.045em}h1{font-size:clamp(40px,7vw,76px);line-height:1.05;margin:25px 0 15px}h2{font-size:clamp(27px,4vw,42px);margin:14px 0}h3{font-size:26px;margin:8px 0}.lead{font-size:17px;line-height:1.65;color:var(--muted);max-width:610px}.hero{padding:55px 0 30px;max-width:730px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{border:1px solid var(--line);background:var(--surface);padding:24px;border-radius:5px}.panel p{color:var(--muted);line-height:1.5}.field{margin:15px 0}.field label{display:block;font-size:12px;font-weight:700;letter-spacing:.07em;margin-bottom:8px}.field input,.field select{width:100%;padding:15px;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:3px;outline:none}.field input:focus{border-color:var(--gold)}.buttons{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.6}.code{font-family:Georgia,serif;font-size:clamp(44px,9vw,90px);letter-spacing:.12em;font-weight:bold;color:var(--gold);margin:12px 0}.people{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.person{padding:12px 15px;border:1px solid var(--line);background:var(--surface);border-radius:3px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:25px;margin-top:22px}.sidebar{border-left:1px solid var(--line);padding-left:25px}.timer{font-size:clamp(44px,8vw,80px);font-weight:bold;letter-spacing:-.06em;font-variant-numeric:tabular-nums;color:var(--gold)}.timer.urgent{color:#f25e56}.board{position:relative;width:100%;max-width:630px;aspect-ratio:1.12;margin:15px auto 25px}.table{position:absolute;inset:21% 20%;border:1px solid var(--line);border-radius:50%;background:radial-gradient(ellipse at 45% 25%,var(--surface2),var(--surface));box-shadow:inset 0 0 0 11px var(--surface),inset 0 0 0 12px var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px}.table .timer{font-size:clamp(29px,6vw,53px)}.seat{position:absolute;transform:translate(-50%,-50%);width:clamp(48px,8vw,68px);height:clamp(48px,8vw,68px);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px;font-size:10px;background:var(--surface2);box-shadow:0 4px 13px #0004}.seat b{font-family:Georgia,serif;font-size:17px}.seat.me{outline:3px solid var(--gold);outline-offset:2px}.seat.dead{opacity:.68;text-decoration:none}.seat.selected{background:var(--red);color:#fff}.seat .count{position:absolute;top:-9px;right:-8px;background:#d34443;color:white;border-radius:50px;padding:3px 6px;font-size:11px}.seat .ally{position:absolute;bottom:-13px;color:#d66860;font-size:14px}.pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin:16px 0}.pick button.selected{background:var(--red);color:white}.tag{display:inline-block;border:1px solid var(--line);padding:7px 10px;border-radius:3px;font-size:12px}.chatlog{height:270px;overflow:auto;border:1px solid var(--line);padding:12px;background:var(--bg);display:flex;flex-direction:column;gap:10px}.bubble{max-width:86%;align-self:flex-start;background:var(--surface2);padding:10px 13px;border-radius:5px;line-height:1.45;overflow-wrap:anywhere}.bubble.mine{align-self:flex-end;background:var(--red);color:white}.send{display:flex;gap:8px;margin-top:10px}.send input{min-width:0;flex:1;padding:13px;background:var(--bg);color:var(--text);border:1px solid var(--line)}.notice{padding:13px;border-left:3px solid var(--red);background:var(--surface);margin:15px 0}.curtain{position:fixed;inset:0;z-index:50;background:radial-gradient(ellipse at 50% 35%,#492b2c,#130d0f 75%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;color:#f1ded1}.curtain h1{max-width:950px}.curtain .eyebrow{color:#d6a29c}.curtain .timer{font-size:24px;margin-top:20px}.error{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:99;background:#8d272c;color:white;padding:15px 22px;border:1px solid #e78883;max-width:90vw}.center{text-align:center}.progress{height:5px;background:var(--line);border-radius:6px;overflow:hidden}.progress>div{height:100%;background:var(--red);transition:width .2s}.endroles{display:grid;gap:9px;margin:20px 0}.endroles div{padding:10px;border-bottom:1px solid var(--line)}@media(max-width:760px){.grid,.layout{grid-template-columns:1fr}.sidebar{border-left:0;border-top:1px solid var(--line);padding:20px 0}.shell{padding:17px 16px 50px}.hero{padding:35px 0 15px}.panel{padding:18px}.board{aspect-ratio:1.04}.seat{width:48px;height:48px;font-size:9px}.seat b{font-size:14px}.table{inset:23% 21%}.top .eyebrow{font-size:9px}} 
/* Special mode: private night-only screens. Original mode is unaffected. */
.special-screen .hero{max-width:760px;margin:0 auto}.special-screen .timer{font-size:clamp(34px,7vw,60px);margin:18px 0}.special-screen .panel{margin:20px 0}.special-screen .chatlog{height:auto;max-height:340px;overflow-y:auto}.special-screen .bubble{max-width:100%;margin:5px 0}.special-screen .bubble b{display:block;margin-bottom:6px;color:var(--gold)}

/* v11 – restrained dark fantasy radar: native CSS, no generated-image background */
.seating-board{margin:22px auto 30px;max-width:590px;min-height:370px}
.seating-board .seat{cursor:pointer}
.seating-board .seat.taken:not(.me){opacity:.8}
.radar-on{isolation:isolate}
.radar-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}
.radar-sector{fill:rgba(205,28,49,.32);stroke:rgba(255,77,96,.8);stroke-width:.55;animation:radarPulse 1.9s ease-in-out infinite;filter:drop-shadow(0 0 3px rgba(255,37,59,.65))}
.radar-on .table{z-index:1}
.radar-on .seat{z-index:2}
.radar-on .radar-seat{border-color:#fa6378!important;box-shadow:0 0 13px rgba(224,40,67,.65),inset 0 0 9px rgba(216,37,63,.2);animation:radarSeatPulse 1.9s ease-in-out infinite}
.radar-notice{padding:12px 16px;border-left:3px solid #d3475b;background:rgba(144,32,50,.13);margin:14px 0;color:inherit}
.radar-notice b{letter-spacing:.09em;font-size:12px}
.radar-notice p{font-size:13px;margin:5px 0 0}
@keyframes radarPulse{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes radarSeatPulse{0%,100%{box-shadow:0 0 5px rgba(224,40,67,.3)}50%{box-shadow:0 0 22px rgba(224,40,67,.95)}}
@media(prefers-reduced-motion:reduce){.radar-sector,.radar-on .radar-seat{animation:none;opacity:.8}}
body.day .radar-notice{background:rgba(166,32,51,.1);color:#47212b}

/* v12: red X on eliminated players, names remain readable */
.seat.dead{isolation:isolate;filter:grayscale(.25)}
.seat.dead::before,.seat.dead::after{content:"";position:absolute;left:10%;top:47%;width:80%;height:4px;background:#b21f30;border-radius:4px;box-shadow:0 0 2px #351016;z-index:1;pointer-events:none}
.seat.dead::before{transform:rotate(45deg)}
.seat.dead::after{transform:rotate(-45deg)}
.seat.dead>b,.seat.dead>span{position:relative;z-index:2}
.seat.dead>span:not(.count):not(.ally){background:var(--surface2);padding:1px 3px;border-radius:3px;color:var(--text);text-decoration:none}

/* v18 lobby statuses and delayed knife impact */
.seating-board .seat.seat-free{background:#173b2b;border:2px solid #59c68b;color:#e5ffe9;box-shadow:0 0 0 2px #59c68b22,0 0 13px #59c68b35}
.seating-board .seat.seat-free span{font-size:10px;font-weight:800}
.seating-board .seat.seat-occupied{background:#302326;border:1px solid #70545a;color:#c1a8a5;opacity:.62}
.seating-board .seat.seat-occupied:disabled{opacity:.62}
.seating-board .seat.seat-mine{background:#29435c;border:2px solid #80baff;color:#fff;outline:2px solid #80baff;outline-offset:3px;box-shadow:0 0 14px #80baff44}
.seating-board .seat.seat-mine span{font-size:9px;font-weight:800}
.knife-impact.knife-delayed{opacity:0;animation:knifeImpactReveal .45s ease-out 7.4s forwards}
@keyframes knifeImpactReveal{to{opacity:1}}
@media(prefers-reduced-motion:reduce){.knife-impact.knife-delayed{animation:knifeImpactReveal .01s linear 7.4s forwards}}

/* v19: restored knife scene styles */
.knife-screen{text-align:center}.knife-board{position:relative;width:min(92vw,530px);height:min(70vw,400px);margin:25px auto 20px;background:radial-gradient(ellipse,#271b21 0%,#151015 68%);border-radius:50%;border:2px solid #50303c;overflow:visible}.knife-table{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);letter-spacing:.22em;font-size:12px;color:#8c6470}.knife-seat{position:absolute;transform:translate(-50%,-50%);width:77px;min-height:46px;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #77535d;border-radius:12px;background:#282027;font-size:12px;z-index:2}.knife-dead{opacity:.35}.knife-private-shield{border-color:#5bd6a2;box-shadow:0 0 13px #268d6d}.shield-icon{color:#80ffba;font-size:20px}.knife-token{position:absolute;top:8%;left:50%;font-size:36px;z-index:5;transform:translate(-50%,-50%);animation:knifeMove 8.5s ease-in-out forwards;filter:drop-shadow(0 0 9px #d13b51)}@keyframes knifeMove{0%{top:8%;left:50%;transform:translate(-50%,-50%) rotate(-20deg)}12%{top:30%;left:90%}25%{top:85%;left:75%}40%{top:90%;left:30%}55%{top:40%;left:6%}70%{top:8%;left:50%}85%{top:var(--target-y);left:var(--target-x);transform:translate(-50%,-50%) rotate(10deg)}100%{top:var(--target-y);left:var(--target-x);transform:translate(-50%,-50%) rotate(135deg)}}.knife-impact{position:absolute;transform:translate(-50%,-50%);font-size:54px;color:#e4475b;opacity:0;z-index:7;animation:knifeReveal 8.5s forwards}.knife-protected{color:#80ffba}@keyframes knifeReveal{0%,89%{opacity:0}90%,100%{opacity:1}}.knife-secret{color:#9de5bb;font-size:13px}

.knife-impact.knife-delayed{animation:knifeImpactReveal .45s ease-out 7.4s forwards}

/* v20 – hackad spelares läsbara livekonversationer */
.hacked-conversations{border:1px solid #a34a58;background:linear-gradient(145deg,#371c27,#24171d);border-radius:10px;padding:16px;margin:0 0 18px;color:#fff}
.hacked-conversations h3{margin:7px 0 6px}
.hacked-thread-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.hacked-thread{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;text-align:left;background:#2b2228;border:1px solid #76515a;border-radius:8px;color:#fff;cursor:pointer}
.hacked-thread.active{border-color:#ed7887;background:#46303a}
.hacked-thread strong,.hacked-thread small{display:block}
.hacked-thread small{font-size:12px;color:#d3b7bc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px;margin-top:4px}
.hacked-thread em{font-style:normal;font-weight:700;font-size:11px;color:#fff;background:#a82c43;border-radius:20px;padding:5px 8px;white-space:nowrap}
.thread-open{font-size:11px;color:#cfabb4}
.hacked-readonly{padding:10px;border-left:3px solid #c34c5c;background:#38252e;color:#fff}

/* v21: readable chat previews and prominent unread badges for hijacked players */
.hacked-thread{min-height:64px;gap:12px;transition:border-color .15s,background .15s}
.hacked-thread>span:first-child{min-width:0;flex:1}
.hacked-thread strong{font-size:15px;line-height:1.25}
.hacked-thread small{max-width:100%;line-height:1.4;margin-top:5px}
.hacked-thread:has(em){border-color:#d85b72;background:#42252f;box-shadow:inset 3px 0 #e9677f}
.hacked-thread em{font-size:12px;min-width:46px;text-align:center;box-shadow:0 0 0 2px #a82c4333}
.hacked-thread.active{outline:2px solid #ed7887;outline-offset:1px}
@media(max-width:650px){.hacked-conversations{padding:13px}.hacked-thread{padding:12px 10px}.hacked-thread small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}

/* v22: doctor's explicit pass selection */
.doctor-pass{width:100%;margin:12px 0;padding:14px;border:2px solid #85646b;border-radius:8px;background:#32252a;color:#f4d9d4;font-weight:700;cursor:pointer}
.doctor-pass-selected{border-color:#f2b46b;background:#5a3526;color:#fff;box-shadow:0 0 0 2px #f2b46b44}
.doctor-pass-confirm{padding:12px;background:#473327;border-left:4px solid #f2b46b;color:#fff;font-weight:700}

/* Local test studio: confirmed hacker target */
.pick button.hacker-selected,.pick button.hacker-selected:disabled{background:#a52f37!important;color:#fff!important;border:3px solid #ff8882!important;box-shadow:0 0 0 2px #41191d,0 0 16px #b4484966;font-weight:800;opacity:1!important}
.hacker-confirm{background:#3c2025;border:2px solid #e66b69;border-radius:6px;padding:14px;margin:12px 0;color:#fff0e8;font-weight:700;line-height:1.6}
.hacker-confirm .small{color:#eab6ad;font-weight:400}


/* Regelbok v27 – läsbar från alla spelfaser */
.rules-fab{position:fixed;right:14px;bottom:14px;z-index:100;border:1px solid #84505b;background:#291c25;color:#fff;border-radius:99px;padding:10px 15px;font-weight:700;box-shadow:0 8px 25px #0009;cursor:pointer}
.rules-overlay{position:fixed;inset:0;background:#09070de8;z-index:200;overflow:auto;padding:18px 10px}
.rules-open{overflow:hidden}
.rules-dialog{max-width:900px;margin:10px auto 50px;position:relative;border:1px solid #653b47;background:#17141c;border-radius:18px;padding:clamp(15px,3vw,30px);color:#f5ecee}
.rules-close{position:sticky;top:0;float:right;z-index:1;background:#42262e;color:white;border:1px solid #8e5861;border-radius:8px;padding:10px 15px;cursor:pointer}
.rules-lead{padding:18px 0 8px}.rules-lead h1{font-size:clamp(28px,5vw,46px);margin:10px 0}.rules-lead p{color:#d3c5c9}
.rules-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 24px}.rules-tab{background:#2c232c;color:#eadfe1;border:1px solid #604650;border-radius:8px;padding:11px 13px;cursor:pointer;font-weight:700}.rules-tab.active{background:#792e43;border-color:#c86b83;color:#fff}
.rules-content{line-height:1.7}.rules-content[hidden]{display:none}.rules-content h2{font-size:23px;margin:25px 0 8px;color:#fff}.rules-content h3{font-size:18px;margin:20px 0 7px;color:#f3bdc9}.rules-content p,.rules-content li{color:#ded2d5;margin:9px 0}.rules-content li{padding-left:4px}.rules-content ul,.rules-content ol{padding-left:24px}.rules-ability{border:1px solid #563541;border-radius:10px;background:#221922;padding:3px 16px 13px;margin:12px 0}.rules-ability h3{margin-top:13px}
@media(max-width:600px){.rules-fab{bottom:8px;right:8px;padding:8px 12px}.rules-dialog{padding:14px}.rules-close{padding:8px}.rules-tabs{gap:5px}.rules-tab{padding:9px 10px;font-size:13px}}

/* v28 visual refresh: 2.5D atmosphere, preserves all seat coordinates and click areas. */
.board{filter:drop-shadow(0 24px 23px rgba(0,0,0,.22));isolation:isolate}
.board::before{content:"";position:absolute;inset:21% 20%;border-radius:50%;background:rgba(0,0,0,.45);transform:translateY(13px) scale(1.015);filter:blur(9px);z-index:-1;pointer-events:none}
.board .table{background:radial-gradient(ellipse at 28% 16%,rgba(255,225,201,.15),transparent 37%),radial-gradient(ellipse at 56% 62%,#372329,#1b1118 75%);border:2px solid #8c5855;box-shadow:0 5px 0 #2b161b,0 11px 0 #100b0e,0 23px 28px #0009,inset 0 0 0 7px #3c2629,inset 0 0 0 9px #9a6660,inset 0 0 32px #090709;z-index:1}
.board .table::before{content:"";position:absolute;inset:15px;border-radius:50%;border:1px solid rgba(243,178,151,.17);pointer-events:none}
.board .table::after{content:"";position:absolute;inset:24px;border-radius:50%;background:repeating-linear-gradient(12deg,transparent 0 18px,rgba(255,255,255,.013) 19px 20px);pointer-events:none}
.board .table>*{position:relative;z-index:1}
.board .seat{z-index:3;border:1px solid #846267;background:linear-gradient(145deg,#50343a 0%,#2c2026 62%,#21171c 100%);box-shadow:inset 0 2px 2px #ffffff1c,0 4px 0 #140d11,0 9px 17px #0008;transition:box-shadow .2s,border-color .2s}
.board .seat.me{box-shadow:inset 0 2px 2px #ffffff1c,0 4px 0 #140d11,0 0 16px rgba(234,188,149,.28)}
.board .seat.selected{background:linear-gradient(145deg,#b9555a,#6c242d);box-shadow:0 4px 0 #3d1016,0 0 18px #e7555a55}
body.day .board .table{background:radial-gradient(ellipse at 25% 15%,#f1dcc7,#9c776b 95%);border-color:#765248;box-shadow:0 5px 0 #69453d,0 11px 0 #3d2723,0 22px 27px #0005,inset 0 0 0 7px #b58d7d,inset 0 0 0 9px #69483f}
body.day .board .seat{background:linear-gradient(145deg,#ecd5c4,#b08b7d);border-color:#866358;color:#3e2622}
body.day .board .seat.selected{background:linear-gradient(145deg,#ba5453,#8e3236);color:#fff}
.knife-board.cinematic-board{background:radial-gradient(ellipse at 25% 20%,#56323b 0%,#2c1921 45%,#100b12 100%);border:5px ridge #75474b;box-shadow:0 9px 0 #241118,0 23px 35px #000b,inset 0 0 0 9px #29191f,inset 0 0 0 11px #a26c66,inset 0 0 40px #09070a}
.knife-board .knife-seat{box-shadow:0 5px 0 #150d12,0 9px 13px #0007,inset 0 1px 1px #ffffff20}
.knife-token{filter:drop-shadow(0 4px 3px #000) drop-shadow(0 0 8px #dc475d);text-shadow:0 0 15px #e95465}
.dagger-shape{display:block;transform:rotate(-32deg);font-size:42px}
.knife-impact{filter:drop-shadow(0 0 13px currentColor)}
/* v33: all seats pulse identically; no pre-reveal target styling. */
.verdict-screen{text-align:center;color:#f1ded1;min-height:100dvh;background:radial-gradient(ellipse at 50% 35%,#342027,#140e13 76%)}
.verdict-screen h1{font-size:clamp(34px,7vw,66px);margin:16px 0}
.verdict-board{position:relative;width:min(88vw,570px);height:min(68vw,430px);min-height:270px;margin:20px auto 16px;border-radius:50%;background:radial-gradient(ellipse at 30% 22%,#4c2d36,#20151e 70%);border:5px ridge #805359;box-shadow:0 9px 0 #2a151b,0 25px 45px #000b,inset 0 0 0 10px #322026,inset 0 0 0 12px #9d6562;isolation:isolate}
.verdict-table{position:absolute;inset:25%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-family:Georgia,serif;letter-spacing:.2em;color:#c7a6a1;font-size:14px}
.verdict-table small{font-family:Arial,sans-serif;font-size:10px;letter-spacing:.3em;color:#d9878d}
.verdict-seat{position:absolute;transform:translate(-50%,-50%);width:clamp(51px,11vw,75px);min-height:49px;padding:10px 3px;border-radius:12px;border:1px solid #8d5e62;background:linear-gradient(140deg,#4d3139,#21181f);box-shadow:0 5px 0 #160d11,0 8px 13px #0009;display:flex;align-items:center;justify-content:center;font-size:12px;z-index:2;animation:verdictSuspense 12s linear both}
/* All players pulse together. No target-specific seat animation. */
@keyframes verdictSuspense{0%,9%,20%,31%,42%,53%,66%,100%{border-color:#8d5e62;box-shadow:0 5px 0 #160d11,0 8px 13px #0009}5%,15%,26%,37%,48%,58%{border-color:#e77b83;box-shadow:0 0 17px #e34d6077}}
.verdict-cross{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#ff5968;font-size:58px;font-weight:900;opacity:0;animation:verdictCross 12s linear both;filter:drop-shadow(0 0 8px #d52a40)}
@keyframes verdictCross{0%,66%{opacity:0}69%,100%{opacity:1}}
.verdict-flash{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse,rgba(235,64,76,.4),transparent 70%);opacity:0;animation:verdictFlash 12s linear both}
@keyframes verdictFlash{0%,55%,59%,62%,66%,100%{opacity:0}57%,61%,64%{opacity:1}}
.verdict-reveal{opacity:0;animation:verdictReveal 12s linear both;min-height:90px}
@keyframes verdictReveal{0%,66%{opacity:0;transform:translateY(10px)}68%,100%{opacity:1;transform:translateY(0)}}
.verdict-reveal h2{font-size:clamp(27px,5vw,40px);margin:6px 0}
.verdict-reveal p{color:#d3ada8}
.verdict-slap{position:absolute;left:50%;top:50%;z-index:8;font-size:clamp(38px,9vw,65px);opacity:0;pointer-events:none;transform-origin:75% 80%;animation:verdictSlap 12s linear both;filter:drop-shadow(0 4px 7px #000a)}
@keyframes verdictSlap{0%,54%,59%,61%,63%,65%,67%,100%{opacity:0;transform:translate(25%,-85%) rotate(-50deg) scale(.8)}56%,62%,66%{opacity:1;transform:translate(-65%,-70%) rotate(22deg) scale(1.18)}58%,62.5%,66.5%{opacity:.8;transform:translate(-48%,-52%) rotate(-8deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.verdict-slap{display:none}}
/* v32: place the version footer at the bottom of the viewport, centered. */
body{display:flex;flex-direction:column;min-height:100dvh}
#app{flex:1 0 auto;width:100%;box-sizing:border-box}
.game-version{display:block;position:static;box-sizing:border-box;width:100%;max-width:100%;margin:0 auto;text-align:center;flex-shrink:0;padding:18px 15px 22px;font-size:11px;letter-spacing:.1em;color:#9d7778}
/* V34: cinematic home, no external images */
.home-shell{max-width:1160px}.home-intro{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:24px;min-height:400px;padding:42px 0 28px;border-bottom:1px solid #58353a;position:relative}.home-copy h1{font-size:clamp(49px,6.6vw,88px);line-height:.98;letter-spacing:-.065em}.home-copy h1 em{font-style:normal;color:#d36e68}.home-copy .lead{max-width:510px;font-size:16px}.home-ritual{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#b99891;font-size:10px;font-weight:700;letter-spacing:.13em;margin-top:28px}.home-ritual i{width:3px;height:3px;background:#bf6660;border-radius:50%}.home-art{position:relative;height:340px;isolation:isolate}.home-art-halo{position:absolute;inset:8% 0;background:radial-gradient(ellipse,#ab4b4b35,transparent 66%);filter:blur(14px)}.home-art-table{position:absolute;width:235px;height:235px;left:50%;top:45%;transform:translate(-50%,-50%) rotate(-14deg);border-radius:50%;background:repeating-linear-gradient(110deg,transparent 0 21px,#ffffff06 22px 23px),radial-gradient(ellipse at 35% 20%,#533039,#1c1419 68%);border:3px solid #915659;box-shadow:0 0 0 8px #23191d,0 0 0 10px #70474a,0 23px 28px #000b,inset 0 0 0 8px #291a20,inset 0 0 0 10px #a86b64}.home-art-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:italic 74px Georgia,serif;color:#b67c7455}.home-art-ring{position:absolute;inset:24px;border:1px solid #bd817033;border-radius:50%}.home-art-seat{position:absolute;width:44px;height:44px;border:1px solid #916067;border-radius:50%;background:radial-gradient(circle at 35% 25%,#654046,#2b1b22 72%);box-shadow:0 5px 15px #000a,0 0 15px #c4484430;animation:homeSeatBreath 5s ease-in-out infinite alternate}.home-art-seat.seat-a{left:45%;top:0}.home-art-seat.seat-b{right:8%;top:22%;animation-delay:.7s}.home-art-seat.seat-c{right:13%;bottom:16%;animation-delay:1.4s}.home-art-seat.seat-d{left:45%;bottom:8%;animation-delay:2.1s}.home-art-seat.seat-e{left:9%;bottom:20%;animation-delay:2.8s}.home-art-seat.seat-f{left:5%;top:24%;animation-delay:3.5s}.home-art-caption{position:absolute;bottom:0;width:100%;text-align:center;font-size:10px;letter-spacing:.22em;color:#b98e8b}@keyframes homeSeatBreath{to{box-shadow:0 5px 15px #000a,0 0 19px #c4484470}}.home-actions{margin-top:24px;gap:20px}.home-action{padding:28px 30px 32px;position:relative;background:linear-gradient(155deg,#322125,#21171b 75%);border-color:#6a4447;box-shadow:0 14px 35px #0002}.home-action:before{content:"";position:absolute;top:0;left:30px;right:30px;height:2px;background:linear-gradient(90deg,#b45d5d,transparent)}.home-action h2{font-size:clamp(30px,3.4vw,42px)}.home-action-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.home-action-symbol{font:28px Georgia,serif;color:#c87b70}.home-action .primary{margin-top:10px;padding:15px 23px}.home-action input,.home-action select{background:#1a1216;border-color:#69474a}.home-action input:focus,.home-action select:focus{border-color:#e2a494;box-shadow:0 0 0 3px #b4484930}.home-action .field label{font-size:10px;letter-spacing:.14em;color:#d7b6ab}.home-resume{margin-top:23px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border:1px solid #745052;border-left:3px solid #bb6c66;background:linear-gradient(100deg,#382328,#26191d)}.home-resume strong{display:block;font:24px Georgia,serif;margin-top:8px}.home-resume p{margin:5px 0 0;font-size:13px;color:#c8a9a3}.role-distribution{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:22px 0 12px}.role-tile{min-width:0;padding:17px 8px 15px;text-align:center;border:1px solid #65474b;background:linear-gradient(160deg,#39252a,#24191d);border-radius:5px}.role-traitor{border-top:3px solid #c45a5c}.role-doctor{border-top:3px solid #8ab8a0}.role-civil{border-top:3px solid #bfa58e}.role-number{display:block;font:clamp(28px,4vw,41px) Georgia,serif;color:#f4dcd0;line-height:1.15}.role-label{display:block;margin-top:7px;font-size:11px;line-height:1.35;color:#cbb0aa;overflow-wrap:anywhere}.role-hint{font-size:12px!important;line-height:1.5!important;margin-bottom:20px}@media(max-width:760px){.home-intro{grid-template-columns:1fr;gap:0;padding:35px 0 20px}.home-copy h1{font-size:clamp(46px,11vw,74px)}.home-art{height:255px;max-width:380px;width:100%;margin:15px auto}.home-art-table{width:178px;height:178px}.home-art-seat{width:36px;height:36px}.home-action{padding:23px 20px}.home-resume{align-items:flex-start;flex-direction:column}.role-tile{padding:14px 4px}.role-label{font-size:10px}}@media(prefers-reduced-motion:reduce){.home-art-seat{animation:none}}

/* V35: original split mask artwork from selected concept 1 */
.home-mask-art{display:flex;align-items:center;justify-content:center;isolation:isolate}
.home-mask-art:before{content:"";position:absolute;width:75%;height:85%;background:radial-gradient(ellipse,#a83c4738,transparent 68%);filter:blur(22px);z-index:-1}
.home-mask-image{display:block;width:min(100%,420px);height:auto;max-height:370px;object-fit:contain;filter:drop-shadow(0 22px 30px #0008)}
@media(max-width:760px){.home-mask-art{height:290px}.home-mask-image{max-height:300px;width:min(90%,340px)}}

/* Optional host-controlled bots */
.bot-controls{margin:18px 0;padding:14px;border:1px solid #785348;border-radius:10px;background:#190f16}.bot-controls button{width:100%}.bot-controls p{margin-bottom:0}.bot-remove{display:inline-flex;align-items:center;justify-content:center;margin-left:9px;border:1px solid #975c55;border-radius:6px;background:#2b131b;color:#ffd3c0;min-width:27px;min-height:27px;cursor:pointer}

/* v40: phase clarity and voting warning */
body.day{background-color:#302a26}body.day .shell{color:#f7e8d8}body.day .panel,body.day .sidebar .notice{background:rgba(75,59,51,.86);border-color:rgba(242,201,153,.26)}body.day .lead,body.day .small{color:#f0d9c7}body.day .hero,body.day .layout main{color:#fff0df}
.phase-guidance{padding:15px 18px;margin:15px 0 18px;border:1px solid #b79b70;background:rgba(119,87,56,.27);border-radius:12px;color:#fff0da}.phase-guidance b{letter-spacing:.09em;font-size:13px;color:#ffe0a0}.phase-guidance p{margin:7px 0 0;line-height:1.5;font-size:14px}.phase-guidance-vote{border-color:#e77666;background:rgba(123,40,40,.27)}.phase-guidance-vote b{color:#ffb0a0}
.vote-alert-screen{min-height:90vh;display:flex;flex-direction:column}.vote-alert{margin:auto;text-align:center;max-width:660px;padding:40px 20px;border:2px solid #d65a4c;border-radius:18px;background:radial-gradient(circle at center,rgba(144,34,34,.42),rgba(26,12,18,.95));animation:vote-alert-pulse 1.05s ease-in-out infinite alternate}.vote-alert h1{color:#ffe0c7;font-size:clamp(38px,8vw,76px);margin:12px 0;text-shadow:0 0 25px #d33434}.vote-alert-icon{font-size:58px;color:#ff8b76;animation:vote-alert-flash .55s steps(2,end) infinite}.vote-alert-instruction{font-size:16px;color:#ffd4b6}.vote-alert .timer{font-size:48px;color:#fff}@keyframes vote-alert-pulse{from{box-shadow:0 0 20px rgba(220,35,35,.2)}to{box-shadow:0 0 75px rgba(255,60,60,.7)}}@keyframes vote-alert-flash{50%{opacity:.2}}
.special-award{border:2px solid #d6ac60!important;background:linear-gradient(140deg,rgba(108,76,40,.62),rgba(43,27,41,.9))!important;box-shadow:0 0 22px rgba(213,158,62,.16)}.special-award h2{color:#ffe3a5}.special-step{color:#ffe1aa;font-weight:700;letter-spacing:.05em}

/* v41: clearer private night information, allies and secret table choices */
.night-warning{margin:clamp(28px,7vh,75px) auto;text-align:center;max-width:680px;padding:24px}
.night-warning h1{font-size:clamp(36px,7vw,68px);color:#f5d7df}
.night-warning-moon{font-size:62px;color:#c5a4d0}
.night-warning-rule{border:2px solid #9c5868;background:rgba(96,31,49,.4);border-radius:14px;padding:22px;margin:24px auto;color:#ffe7ed}
.night-warning-rule h2{color:#ffb9b9;letter-spacing:.06em}
.night-warning-rule p{line-height:1.6}
.night-silence{padding:12px 16px;border:1px solid #a46d73;border-radius:10px;background:rgba(92,38,47,.4);color:#ffd4d2;font-size:13px;font-weight:700;letter-spacing:.04em;margin:14px 0}
.no-special{max-width:600px;margin:20px auto;padding:20px 24px;border:1px solid #85656c;border-radius:14px;background:rgba(67,42,54,.55);color:#f6dcd5;text-align:center}
.no-special-symbol{font-size:32px;color:#dfb6d2}
.no-special h2{font-size:clamp(22px,4vw,32px);margin:12px 0;color:#fbe1d0}
.no-special strong{display:block;margin:16px 0 8px;color:#ffe0ae}
.no-special p{line-height:1.5}
.traitor-allies{margin:18px 0;border:1px solid #c45d67;background:rgba(79,26,39,.62);border-radius:12px;padding:16px;color:#f6d8d5}
.traitor-allies-title{font-weight:800;letter-spacing:.075em;color:#ffb6b4;font-size:12px;margin-bottom:10px}
.traitor-ally{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid rgba(255,255,255,.12);border-radius:8px;margin:6px 0;background:rgba(18,10,16,.35)}
.traitor-alive{color:#b9f0cb;font-size:13px}
.traitor-dead{color:#e5a2a2;font-size:13px}
.traitor-allies .small{margin:12px 0 0;color:#e8c5c2}
.board .seat.secret-target{z-index:3!important;box-shadow:0 0 0 4px rgba(255,255,255,.12),0 0 22px var(--target-glow,#edba65)!important;border:3px solid var(--target-glow,#edba65)!important;transform:translate(-50%,-50%) scale(1.09)!important}
.board .seat.secret-murder{--target-glow:#ed6464;background:#67272d!important}
.board .seat.secret-protect{--target-glow:#5ed39c;background:#214a39!important}
.board .seat.secret-vote,.board .seat.secret-suspect{--target-glow:#e6b65e;background:#5d4527!important}
.board .seat.secret-target::after{content:'✓ DITT VAL';position:absolute;left:50%;top:100%;transform:translateX(-50%);white-space:nowrap;font-size:9px;font-weight:900;color:var(--target-glow);text-shadow:0 1px 4px #000;padding-top:4px}
@media(max-width:600px){.traitor-ally{font-size:13px}.board .seat.secret-target::after{font-size:8px}}

/* v42 – legendary Dubbelspel ability */
.doubleplay-panel{border:2px solid #d5a653;background:linear-gradient(130deg,rgba(95,65,35,.75),rgba(37,22,39,.93));border-radius:15px;padding:20px;margin:20px 0;box-shadow:0 0 30px rgba(213,166,83,.17);color:#f8e6ce}
.doubleplay-heading{font-size:12px;font-weight:800;letter-spacing:.1em;color:#f5c774}
.doubleplay-panel h2{color:#ffe0a4;margin:10px 0;font-size:clamp(25px,4vw,39px)}
.doubleplay-panel p{line-height:1.55}
.doubleplay-options{display:grid;gap:12px;margin:16px 0}
.doubleplay-options>button,.doubleplay-target{border:1px solid #987448;background:rgba(27,19,27,.76);border-radius:11px;padding:14px;color:#fce6cb;text-align:left}
.doubleplay-options>button{cursor:pointer;font-weight:700;font-size:17px}
.doubleplay-options>button small{display:block;margin-top:7px;font-weight:400;line-height:1.4}
.doubleplay-target strong{color:#f5d49d}
.doubleplay-picks{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.doubleplay-picks button{border:1px solid #b78b52;border-radius:8px;padding:9px 12px;background:#493326;color:#fff0d7;cursor:pointer}
.doubleplay-options button:hover,.doubleplay-picks button:hover{border-color:#ffdf91;background:#755038}

/* v44: Verdict board retains previously eliminated players, without revealing roles. */
.verdict-seat.verdict-seat-out{background:linear-gradient(145deg,#282329,#19171b);border-color:#6b6067;box-shadow:0 4px 9px #0007;color:#aaa1a8;opacity:.55;filter:saturate(.35);flex-direction:column;gap:2px;animation:none!important}
.verdict-seat.verdict-seat-out b{font-size:inherit}
.verdict-dead-mark{display:block;font-size:9px;line-height:1.2;color:#d0bfc8;letter-spacing:.01em;white-space:nowrap}
.verdict-seat.verdict-seat-chosen{border-color:#db8187}
.verdict-table small{font-size:clamp(10px,2.2vw,15px);text-align:center;line-height:1.3}
@media(max-width:600px){.verdict-seat.verdict-seat-out{min-height:46px;padding:5px 2px}.verdict-dead-mark{font-size:8px}.verdict-table small{font-size:clamp(9px,2.4vw,13px)}}

/* Dubbelspel: explicit local selection, no browser confirm dialogs */
.doubleplay-panel .double-draft-selected{background:#765034!important;border:2px solid #e9bd75!important;color:#fff6e5!important;box-shadow:0 0 0 2px rgba(233,189,117,.18)}
.double-draft-status{margin:14px 0;padding:13px 15px;border:1px solid #ad8653;border-radius:9px;background:rgba(174,121,61,.13);color:#f7e1c1}
.double-draft-status p{margin:7px 0 0}

/* Mobile action locator: fixed, directional, red pulse; respects reduced motion. */
.action-direction{display:none}
@media(max-width:700px){.action-direction:not([hidden]){position:fixed;bottom:calc(75px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:9000;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:11px 17px;border:2px solid #ff4b59;border-radius:999px;background:#5b101b;color:#fff;font-size:13px;font-weight:800;box-shadow:0 0 0 4px rgba(255,36,62,.12),0 8px 24px #000b;cursor:pointer;animation:action-pulse 1.5s ease-in-out infinite}.action-direction-arrow{font-size:25px;line-height:1}.action-direction-urgent:not([hidden]){animation-duration:.65s;background:#8c1020}.action-direction-new:not([hidden]){outline:2px solid #ff8b94;outline-offset:3px}}
@keyframes action-pulse{0%,100%{box-shadow:0 0 0 2px rgba(255,52,72,.15),0 8px 24px #0009}50%{box-shadow:0 0 0 9px rgba(255,52,72,.34),0 8px 30px #000b}}
@media(prefers-reduced-motion:reduce){.action-direction:not([hidden]){animation:none!important}}

/* Shared unanimous restart vote */
.restart-request{position:fixed;right:14px;bottom:16px;z-index:800;background:#301d23;color:#f3d7d2;border:1px solid #895759;border-radius:8px;padding:10px 13px;font-size:12px;box-shadow:0 5px 18px #0008;cursor:pointer}
.restart-request:disabled{opacity:.55;cursor:not-allowed}
.restart-shade{position:fixed;inset:0;background:#080508e8;z-index:10000;display:flex;align-items:center;justify-content:center;padding:18px}
.restart-modal{width:min(100%,440px);padding:25px 20px;background:#21161d;border:1px solid #b07a69;border-radius:12px;text-align:center;color:#f7dfd1;box-shadow:0 15px 55px #000b}
.restart-modal h2{font-size:23px;margin:0 0 12px}.restart-modal p{line-height:1.55}.restart-clock{font-size:42px;font-weight:800;color:#f0b4a4;margin:14px 0;font-variant-numeric:tabular-nums}.restart-actions{display:flex;gap:12px;justify-content:center}.restart-actions button{min-width:110px}
@media(max-width:600px){.restart-request{right:10px;bottom:12px;font-size:12px}.restart-modal{padding:24px 16px}}

/* v20: Keep restart control on the left, clear of rules and mobile action prompts. */
.restart-request{left:14px;right:auto;bottom:16px}
@media(max-width:600px){.restart-request{left:10px;right:auto;bottom:12px;max-width:calc(100vw - 20px)}}

/* Double vote: visible only during the private vote; animation stops once locked. */
.double-vote-notice{border:1px solid #cda65e;background:linear-gradient(115deg,#493521,#302321);color:#f8e3b4;animation:doubleVoteGlow 2.6s ease-in-out infinite}
.double-vote-notice p{color:#f1d9b0}
.double-vote-notice.double-vote-locked{animation:none;box-shadow:none}
@keyframes doubleVoteGlow{0%,100%{box-shadow:0 0 0 0 rgba(230,181,83,.12)}50%{box-shadow:0 0 0 5px rgba(230,181,83,.23),0 0 20px rgba(230,181,83,.17)}}
@media(prefers-reduced-motion:reduce){.double-vote-notice{animation:none}}

/* v11 special phase: persistent readiness, visible without scrolling */
.v11-special-ready{position:fixed;z-index:9999;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(16px,env(safe-area-inset-right));background:#190d12f5;border-top:2px solid #b68a52;color:#fff;box-shadow:0 -8px 32px #0009;font-size:13px}.v11-special-ready strong{color:#eac38d}.v11-special-ready button{border:1px solid #eac38d;background:#8e2734;color:white;padding:13px 18px;border-radius:8px;font-weight:800;white-space:nowrap}.v11-special-ready button:disabled{opacity:.55}.v11-special-ready~*{}body:has(.v11-special-ready) #app{padding-bottom:100px}@media(max-width:600px){.v11-special-ready{flex-direction:column;align-items:stretch}.v11-special-ready button{width:100%}body:has(.v11-special-ready) #app{padding-bottom:150px}}
/* v11.1: Specialval använder den tidigare informationsvyn, utan spelbord. */
.v11-focus-special .hero{max-width:850px;margin:0 auto;padding-bottom:70px}
.v11-focus-special .special-choice-controls{width:100%;margin:24px 0;text-align:left}
.v11-focus-special .special-choice-controls>.eyebrow{margin-bottom:12px}
.v11-focus-special .special-choice-controls .pick{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0}
.v11-focus-special .special-choice-controls .pick button.selected{border-color:#e4b98b;background:#543329;color:#fff}
.v11-focus-special .special-choice-controls .panel{margin:12px 0}
.v11-focus-special .buttons{justify-content:center;margin-top:24px}
