.game{position:relative;height:calc(100svh - 57px);min-height:540px;background:#0c0a08;overflow:hidden;color:var(--text);isolation:isolate}.game .stage{position:absolute;inset:0}.board3d{display:block;width:100%;height:100%;touch-action:none;outline:none}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,transparent 52%,rgba(0,0,0,.55) 100%)}.is-2d .stage{display:grid;place-items:center;padding:76px 12px 128px;background:radial-gradient(ellipse at 50% 40%,#1d1915,#0c0a08 75%)}.board2d-wrap{width:min(100%,calc(100svh - 57px - 220px),760px);aspect-ratio:1}.hud{position:absolute;left:0;right:0;z-index:5;padding:10px 12px;pointer-events:none}.hud>*{pointer-events:auto}.hud-top{top:0;background:linear-gradient(180deg,rgba(12,10,8,.82),rgba(12,10,8,0))}.hud-bottom{bottom:0;background:linear-gradient(0deg,rgba(12,10,8,.9),rgba(12,10,8,0));padding-bottom:max(10px,env(safe-area-inset-bottom))}.seat{display:flex;align-items:center;gap:10px;max-width:760px;margin:0 auto}.seat-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.seat-text strong{font-family:var(--font-display),serif;font-size:1.15rem}.you-dot{width:30px;height:30px;border-radius:50%;border:2px solid var(--gold);flex:none;margin:0 8px}.captured{display:inline-flex;align-items:center;gap:0;margin-left:auto;flex-wrap:wrap;max-width:40%}.captured svg{margin-right:-6px}.captured b{margin-left:10px;font-size:.85rem;color:var(--muted)}.clock{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;font-size:1.25rem;background:#1c1a17;border:1px solid var(--line);padding:4px 12px;border-radius:10px;min-width:84px;text-align:center}.clock.is-running{background:var(--gold);color:#1a1407;border-color:var(--gold-hi)}.clock.is-running.is-low{background:var(--red);color:#fff;border-color:#ff8a7a;animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{filter:brightness(1.25)}}.dots i{animation:blink 1.2s infinite;font-style:normal}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.bubble{position:relative;max-width:min(520px,86%);margin:10px auto 0 max(12px,calc(50% - 380px + 30px));background:#f4ecdc;color:#1a1612;padding:9px 14px;border-radius:14px;font-weight:600;font-size:.98rem;box-shadow:0 8px 24px rgba(0,0,0,.4);animation:pop .25s cubic-bezier(.3,1.6,.5,1);width:-moz-fit-content;width:fit-content}.bubble:before{content:"";position:absolute;left:18px;top:-7px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:0;border-bottom:8px solid #f4ecdc}@keyframes pop{0%{transform:scale(.6);opacity:0}}.toolbar{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:10px auto 0;max-width:760px}.toolbar button,.toolbar-link{background:rgba(28,26,23,.92);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none}.toolbar button:hover:not(:disabled),.toolbar-link:hover{border-color:var(--gold);color:var(--text)}.toolbar button:disabled{opacity:.4}.movestrip{margin:8px auto 0;max-width:760px;text-align:center;color:var(--muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.movestrip span{margin:0 4px}.movestrip em{font-style:normal;margin-right:3px;color:#6f675b}.sheet{position:absolute;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:min(720px,100%);max-height:88%;overflow-y:auto;background:rgba(22,20,18,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(201,165,76,.25);border-bottom:0;border-radius:20px 20px 0 0;padding:18px 18px max(18px,env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(0,0,0,.5);animation:rise .35s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{transform:translate(-50%,30px);opacity:0}}.sheet h2{margin:.1em 0 .5em}.cast{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:8px;gap:8px}.cast-card{display:flex;flex-direction:column;align-items:center;gap:4px;background:#1c1a17;border:1px solid var(--line);border-radius:14px;padding:10px 6px 8px;color:var(--text);cursor:pointer;font:inherit;transition:border-color .15s,transform .15s}.cast-card:hover{border-color:rgba(201,165,76,.55)}.cast-card.is-on{border-color:var(--gold);background:#2a2419;transform:translateY(-2px);box-shadow:0 6px 18px rgba(201,165,76,.18)}.cast-name{font-weight:700;font-size:.86rem;text-align:center;line-height:1.2}.beat{color:var(--green);margin-left:4px}.level{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:99px;background:#2a2622;color:var(--muted)}.level-dum{background:#3b2f45;color:#d9c2f0}.level-nybörjare{background:#24402f;color:#a8e2bd}.level-lätt{background:#2a3c4a;color:#b3d6f0}.level-medel{background:#4a3d22;color:#f0d79a}.level-svår{background:#4a2a22;color:#f0b3a0}.level-mästare{background:#3d2440;color:#e8b2ee}.level-omöjlig{background:#111;color:var(--gold-hi);border:1px solid var(--gold)}.cast-style{color:var(--muted);margin:12px 2px;min-height:2.6em}.setup-row{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 14px}.seg{display:inline-flex;background:#1c1a17;border:1px solid var(--line);border-radius:12px;padding:3px}.seg button{background:none;border:0;color:var(--muted);padding:8px 16px;border-radius:9px;font:inherit;font-weight:700;cursor:pointer}.seg button.is-on{background:var(--raised);color:var(--text);box-shadow:inset 0 0 0 1px rgba(201,165,76,.5)}.sheet select{background:#1c1a17;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:9px 12px;font:inherit;font-weight:600}.cta.big{width:100%;justify-content:center;font-size:1.1rem;padding:15px 22px}.setup-links{text-align:center;margin:12px 0 0}.setup-links a{color:var(--muted)}.result{text-align:center}.result h2{font-size:2.2rem}.result-line{display:flex;align-items:center;justify-content:center;gap:12px;margin:6px 0 14px}.result-line p{margin:0;font-style:italic;color:#e2d8c6}.result .button-row{justify-content:center}.menu .menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin:16px 0}.menu label{display:grid;grid-gap:6px;gap:6px;font-weight:700;font-size:.85rem;color:var(--muted)}.promo{text-align:center}.promo-row{display:flex;justify-content:center;gap:10px}.promo-row button{background:#ecd9b6;border:2px solid var(--gold);border-radius:14px;padding:8px 10px 6px;cursor:pointer;font:inherit;font-weight:700;color:#1a1612}.promo-row button,.welcome{display:flex;flex-direction:column;align-items:center}.welcome{position:absolute;inset:0;z-index:30;justify-content:center;gap:16px;background:radial-gradient(ellipse at 50% 45%,rgba(20,17,14,.55),rgba(0,0,0,.92));animation:fade .6s ease}.title-card p,.welcome-word{font-family:var(--font-display),serif;font-weight:700;font-size:clamp(2.4rem,9vw,4.6rem);letter-spacing:.2em;text-transform:uppercase;margin:0;background:linear-gradient(180deg,#f3de97,#c9a54c 60%,#9a7a30);-webkit-background-clip:text;background-clip:text;color:transparent;padding-left:.2em}.welcome .cta.big{width:auto;padding:16px 34px}.skip{position:absolute;right:14px;bottom:max(14px,env(safe-area-inset-bottom));z-index:31;background:rgba(0,0,0,.55);color:#d9d0bf;border:1px solid #3a352f;border-radius:99px;padding:8px 16px;font:inherit;cursor:pointer}.title-card{position:absolute;inset:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;pointer-events:none;animation:titleIn 4.6s ease both}@keyframes titleIn{0%{opacity:0;transform:scale(1.2);filter:blur(8px)}7%{opacity:1;transform:scale(.98);filter:none}12%{transform:scale(1)}86%{opacity:1;transform:scale(1.03)}to{opacity:0;transform:scale(1.04)}}.phase-setup .sheet.setup{animation:rise .7s cubic-bezier(.2,.8,.2,1)}@keyframes fade{0%{opacity:0}}.replay-bar .seat{justify-content:center}@media (max-width:520px){.seat-text strong{font-size:1rem}.clock{font-size:1.05rem;min-width:70px;padding:3px 8px}.toolbar button{padding:7px 9px;font-size:.82rem}.cast{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}}.reel-caption{position:absolute;z-index:8;left:0;right:0;top:14%;text-align:center;pointer-events:none;animation:reelIn 2.6s ease both}.reel-title{margin:0;font-family:var(--font-display),serif;font-weight:700;font-size:clamp(2rem,7vw,3.6rem);letter-spacing:.06em;background:linear-gradient(180deg,#f3de97,#c9a54c 60%,#9a7a30);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 6px 30px rgba(0,0,0,.5)}.reel-sub{margin:4px 0 0;font-weight:800;color:#ede6d8;text-shadow:0 2px 10px rgba(0,0,0,.8)}@keyframes reelIn{0%{opacity:0;transform:translateY(10px) scale(1.06)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}.rec-dot{position:absolute;z-index:9;top:12px;right:14px;margin:0;background:rgba(0,0,0,.6);color:#ff6b5a;font-weight:800;padding:6px 12px;border-radius:99px;animation:pulse 1.2s infinite}.friend-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.5rem;background:radial-gradient(circle at 35% 30%,#4a4033,#221d17);color:var(--gold-hi)}.typed input{background:rgba(28,26,23,.92);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-size:.9rem;font-weight:600;width:9.5em}.typed input:focus{border-color:var(--gold);outline:none}.typed.is-bad input{border-color:var(--red);animation:shake .3s}@keyframes shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@media (max-width:520px){.typed{display:none}}.photo-on .bubble,.photo-on .hud,.photo-on .sheet,.photo-on .vignette{display:none}.photo-bar{position:absolute;z-index:30;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center;background:rgba(12,10,8,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(201,165,76,.3);border-radius:16px;padding:10px 14px;width:max-content;max-width:calc(100% - 24px)}.setup-foot{position:-webkit-sticky;position:sticky;bottom:calc(-1 * max(18px, env(safe-area-inset-bottom)));margin:8px -18px calc(-1 * max(18px, env(safe-area-inset-bottom)));padding:12px 18px max(14px,env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(22,20,18,.9),rgba(22,20,18,.99) 30%);border-top:1px solid rgba(201,165,76,.15)}.setup-foot .setup-row{margin:0 0 10px}.setup-foot .setup-links{margin:10px 0 0}@media (max-width:640px){.sheet.setup{max-height:66%;padding-top:14px}.sheet.setup h2{font-size:1.35rem;margin-bottom:8px}.sheet.setup .cast{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;margin:0 -18px;padding:2px 18px 8px;scrollbar-width:none}.sheet.setup .cast::-webkit-scrollbar{display:none}.sheet.setup .cast-card{flex:0 0 92px;scroll-snap-align:center}.sheet.setup .cast-style{margin:8px 2px;min-height:0;font-size:.92rem}.setup-foot .setup-row{flex-wrap:nowrap}.setup-foot .seg button{padding:8px 11px}.setup-foot select.time{flex:1 1;min-width:0}}@media (min-width:1100px) and (min-height:600px){.sheet.setup{left:auto;right:24px;bottom:20px;top:20px;transform:none;width:540px;max-height:none;border-radius:20px;border-bottom:1px solid rgba(201,165,76,.25);animation:slideIn .6s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}.sheet.setup .cast{grid-template-columns:repeat(4,1fr);overflow-y:auto}.sheet.setup .setup-foot{margin-top:auto;position:static;margin-bottom:-18px}.phase-setup .sheet.setup{animation:slideIn .7s cubic-bezier(.2,.8,.2,1)}}@keyframes slideIn{0%{transform:translateX(40px);opacity:0}}