
/* ============ Kasinoet (liv-spill.js) ============
   Rommet er ett lag med tre bilder: døra, salen og filten. Vi bytter bare
   data-sted på .ks-rom, så får overgangene gå ferdig uten ny tegning. */
.lv-root .ks-rom{ position:relative; min-height:calc(100dvh - 180px); margin:8px; border-radius:26px; overflow:hidden;
  background:#0f1412; color:#f3f4f4; display:flex; flex-direction:column; isolation:isolate; }
.lv-root .ks-foto{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 0%; will-change:transform,opacity;
  transition:transform 1.5s cubic-bezier(.3,.7,.2,1), opacity 1.05s cubic-bezier(.4,.1,.3,1); }
.lv-root .ks-filtfoto{ z-index:1; opacity:0; transform:scale(1.1) translateY(8%); }
.lv-root .ks-salfoto{ z-index:2; opacity:0; transform:scale(1.14) translateY(2%); }
.lv-root .ks-dorfoto{ z-index:3; opacity:1; object-position:50% 50%; }
.lv-root .ks-sprekk{ position:absolute; top:10%; bottom:16%; left:50%; z-index:2; width:6px; margin-left:-3px; border-radius:40px;
  background:linear-gradient(180deg,rgba(255,231,186,.95),rgba(255,196,118,.75)); filter:blur(5px);
  transition:width 1.3s cubic-bezier(.4,.05,.2,1), opacity 1s ease, transform 1.3s ease; }
.lv-root .ks-dim{ position:absolute; inset:0; z-index:4; pointer-events:none;
  background:linear-gradient(180deg,rgba(10,7,6,.62) 0%,rgba(8,14,11,.12) 25%,rgba(8,14,11,.2) 58%,rgba(8,14,11,.8) 100%); }

.lv-root .ks-rom[data-sted="sal"] .ks-dorfoto, .lv-root .ks-rom[data-sted="kast"] .ks-dorfoto, .lv-root .ks-rom[data-sted="bord"] .ks-dorfoto{ opacity:0; transform:scale(1.9) translateY(6%); }
.lv-root .ks-rom[data-sted="sal"] .ks-sprekk, .lv-root .ks-rom[data-sted="kast"] .ks-sprekk, .lv-root .ks-rom[data-sted="bord"] .ks-sprekk{ width:300px; margin-left:-150px; opacity:0; transform:scale(1.5); }
.lv-root .ks-rom[data-sted="sal"] .ks-salfoto{ opacity:1; transform:scale(1) translateY(0); }
.lv-root .ks-rom[data-sted="kast"] .ks-salfoto{ opacity:0; transform:scale(1.16) translateY(-9%); }
.lv-root .ks-rom[data-sted="bord"] .ks-salfoto{ opacity:0; transform:scale(1.16) translateY(-9%); }
.lv-root .ks-rom[data-sted="bord"] .ks-filtfoto{ opacity:1; transform:scale(1) translateY(0); }

/* Statuslinja ligger øverst, aldri oppå filten */
.lv-root .ks-topp{ position:relative; z-index:6; display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
  padding:14px 14px 0; text-shadow:0 2px 12px rgba(0,0,0,.8); }
.lv-root .ks-topp h1{ margin:2px 0 0; font-family:var(--lv-display); font-size:1.1rem; font-weight:400; color:#fbf2e4; }
.lv-root .ks-m{ margin:0; font-family:var(--lv-mono); font-size:.62rem; letter-spacing:.08em; color:#d8c6b2; }
.lv-root .ks-mono{ font-family:var(--lv-mono); font-size:.62rem; letter-spacing:.07em; color:#c3cdc6; }
.lv-root .ks-gull{ color:#f0c79a; }
.lv-root .ks-ut{ flex:none; width:44px; height:44px; font-size:1.05rem; border-radius:50%; background:rgba(10,18,14,.6); border:1px solid rgba(255,255,255,.22);
  display:flex; align-items:center; justify-content:center; color:#dbe3de; cursor:pointer; }

.lv-root .ks-flate{ position:relative; z-index:6; flex:1; display:flex; flex-direction:column; padding:12px 13px 14px; min-height:0; overflow-y:auto; overflow-x:hidden; }
.lv-root .ks-lag{ display:none; flex:1; flex-direction:column; min-height:0; }
.lv-root .ks-rom[data-sted="dor"] .ks-lagdor{ display:flex; align-items:center; justify-content:flex-end; gap:12px; padding-bottom:28px; }
.lv-root .ks-rom[data-sted="sal"] .ks-lagsal{ display:flex; align-items:center; justify-content:flex-end; gap:10px; padding-bottom:60px; }
.lv-root .ks-rom[data-sted="bord"] .ks-lagbord,
.lv-root .ks-rom[data-sted="kast"] .ks-lagbord{ display:flex; gap:10px; }

.lv-root .ks-apne{ height:50px; padding:0 30px; border-radius:15px; background:#e8b482; color:#1d1410; font-weight:600; font-size:.78rem;
  letter-spacing:.13em; text-transform:uppercase; display:flex; align-items:center; cursor:pointer; border:0;
  box-shadow:0 5px 0 #a9774c, 0 16px 32px rgba(0,0,0,.6); }
.lv-root .ks-apne:active{ transform:translateY(3px); box-shadow:0 2px 0 #a9774c, 0 10px 20px rgba(0,0,0,.5); }
.lv-root .ks-punkter{ display:inline-flex; gap:6px; }
.lv-root .ks-punkter i{ width:5px; height:5px; border-radius:50%; background:#f0c79a; animation:ks-p 1.1s ease-in-out infinite; }
.lv-root .ks-punkter i:nth-child(2){ animation-delay:.16s } .lv-root .ks-punkter i:nth-child(3){ animation-delay:.32s }
@keyframes ks-p{ 0%,100%{ opacity:.22 } 50%{ opacity:1 } }

/* Potten */
.lv-root .ks-pott{ display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; text-align:left; cursor:pointer;
  padding:9px 12px; border-radius:14px; background:rgba(9,16,12,.62); border:1px solid rgba(255,255,255,.12); color:inherit; }
.lv-root .ks-pott b{ display:block; margin-top:2px; font-size:.88rem; font-weight:500; color:#fbf7ef; }
.lv-root .ks-dagrad{ display:flex; flex-wrap:wrap; gap:6px; }
.lv-root .ks-dagchip{ height:32px; padding:0 12px; border-radius:999px; background:rgba(10,18,14,.62); border:1px solid rgba(255,255,255,.22);
  font-size:.72rem; display:flex; align-items:center; gap:6px; color:inherit; cursor:pointer; }
.lv-root .ks-dagchip em{ font-style:normal; font-family:var(--lv-mono); font-size:.56rem; color:#9fb0a6; }
.lv-root .ks-dagchip.valgt{ background:#c1d1cf; color:#13201c; border-color:#c1d1cf; } .lv-root .ks-dagchip.valgt em{ color:#3a544a; }

/* Vifta på bordet – kortformat 1 : 1,4 */
.lv-root .ks-vifte{ position:relative; flex:1; min-height:250px; }
.lv-root .ks-kort{ position:absolute; left:50%; bottom:18px; width:104px; height:146px; margin-left:-52px; transform-origin:50% 100%;
  border-radius:13px; background:linear-gradient(170deg,#f3f0e7,#e3dfd3); color:#19231f; padding:10px 11px; cursor:pointer;
  display:flex; flex-direction:column; text-align:left; border:0; box-shadow:0 14px 32px rgba(0,0,0,.66);
  animation:ks-inn .5s cubic-bezier(.2,.8,.25,1) backwards; animation-delay:calc(var(--i) * .06s);
  transition:transform .3s cubic-bezier(.2,.8,.22,.78,.2,1.02), opacity .34s ease, box-shadow .45s ease; }
.lv-root .ks-kort::after{ content:""; position:absolute; inset:4px; border-radius:9px; border:1px solid rgba(25,35,31,.14); pointer-events:none; }
.lv-root .ks-kort:nth-of-type(1){ transform:translate(-96px,6px) rotate(-14deg) }
.lv-root .ks-kort:nth-of-type(2){ transform:translate(-32px,-10px) rotate(-4.5deg) }
.lv-root .ks-kort:nth-of-type(3){ transform:translate(32px,-10px) rotate(4.5deg) }
.lv-root .ks-kort:nth-of-type(4){ transform:translate(96px,6px) rotate(14deg) }
.lv-root .ks-kort:active{ box-shadow:0 22px 44px rgba(0,0,0,.7), 0 0 0 1px rgba(255,225,190,.5) }
@keyframes ks-inn{ from{ opacity:0; transform:translateY(220px) } }
.lv-root .ks-rang{ font-family:var(--lv-mono); font-size:.62rem; letter-spacing:.1em; color:#6b7a71; }
.lv-root .ks-kortnavn{ margin-top:7px; font-size:.76rem; font-weight:500; line-height:1.15; }
.lv-root .ks-kortfot{ margin-top:3px; font-family:var(--lv-mono); font-size:.44rem; color:#6b7a71; }
.lv-root .ks-hint{ position:absolute; left:0; right:0; bottom:180px; text-align:center; }

.lv-root .ks-spill{ flex:1; display:flex; flex-direction:column; gap:10px; min-height:0; }
.lv-root .ks-tilbord{ height:36px; padding:0 16px; border-radius:999px; background:rgba(12,20,16,.6);
  border:1px solid rgba(255,255,255,.26); color:#eef1ee; font-size:.84rem; cursor:pointer; display:inline-flex; align-items:center;
  margin-bottom:2px; }
.lv-root .ks-angre{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px; border-radius:14px;
  background:rgba(12,20,16,.8); border:1px solid rgba(232,180,130,.5); font-size:.76rem; animation:ks-opp .4s ease; }
.lv-root .ks-angre button{ flex:none; height:32px; padding:0 14px; border-radius:999px; background:#e8b482; color:#1a2420; font-weight:600;
  font-size:.74rem; border:0; cursor:pointer; }
@keyframes ks-opp{ from{ opacity:0; transform:translateY(14px) } }
.lv-root .ks-tomt{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; padding:20px; }

.lv-root .ks-b{ height:44px; border-radius:999px; font-size:.85rem; display:flex; align-items:center; justify-content:center; width:100%;
  border:0; cursor:pointer; box-sizing:border-box; }
.lv-root .ks-b.pri{ background:#e8b482; color:#1a2420; font-weight:600; box-shadow:0 5px 0 #a9774c; }
.lv-root .ks-b.sek{ background:rgba(10,18,14,.62); border:1px solid rgba(255,255,255,.24); color:#eef1ee; }
.lv-root .ks-b[disabled]{ opacity:.35; pointer-events:none; }

/* ---- Enten eller ---- */
.lv-root .ks-duell{ flex:1; display:flex; align-items:flex-end; gap:12px; position:relative; min-height:232px; }
.lv-root .ks-k{ flex:1; height:min(228px, 54vh); border-radius:16px; background:linear-gradient(170deg,#f3f0e7,#e2ded2); color:#19231f;
  padding:13px 12px 11px; box-sizing:border-box; position:relative; display:flex; flex-direction:column;
  box-shadow:0 16px 34px rgba(0,0,0,.5); animation:ks-ton .3s ease backwards; }
/* Duellkortene tegnes på nytt hver runde: bare toning, ellers legger de seg over
   hverandre mens de flyr inn og stjeler trykket fra knappene. */
.lv-root .ks-k::after{ content:""; position:absolute; inset:5px; border-radius:11px; border:1px solid rgba(25,35,31,.14); pointer-events:none; }
.lv-root .ks-rolle{ font-family:var(--lv-mono); font-size:.52rem; letter-spacing:.13em; color:#63756b; }
.lv-root .ks-seire{ display:flex; gap:3px; margin-top:8px; min-height:4px; }
.lv-root .ks-seire i{ width:13px; height:4px; border-radius:999px; background:rgba(25,35,31,.15); }
.lv-root .ks-seire i.v{ background:#4c7a6c; }
.lv-root .ks-k .ks-navn{ margin-top:10px; font-size:1.05rem; font-weight:500; line-height:1.14; }
.lv-root .ks-fakta{ margin-top:auto; display:flex; flex-direction:column; gap:5px; }
.lv-root .ks-fakta span{ font-family:var(--lv-mono); font-size:.52rem; color:#3f564a; display:flex; align-items:center; gap:6px; }
.lv-root .ks-pip{ width:5px; height:5px; border-radius:50%; flex:none; }
.lv-root .ks-velg{ margin-top:10px; height:38px; border-radius:999px; font-size:.75rem; font-weight:500; border:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center; }
.lv-root .ks-velg.m{ background:#c1d1cf; color:#13201c; } .lv-root .ks-velg.u{ background:#2a3c35; color:#eef1ee; }
.lv-root .ks-mot{ position:absolute; left:50%; bottom:116px; transform:translate(-50%,50%); width:32px; height:32px; border-radius:50%;
  background:#0d1512; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center;
  font-family:var(--lv-mono); font-size:.5rem; color:#c3cdc6; z-index:3; }
.lv-root .ks-stokk{ display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
.lv-root .ks-bunke{ display:flex; flex-direction:column; gap:5px; } .lv-root .ks-bunke.h{ align-items:flex-end; }
.lv-root .ks-rygg{ position:relative; width:50px; height:34px; display:block; }
.lv-root .ks-rygg i{ position:absolute; left:0; top:0; width:42px; height:32px; border-radius:7px;
  background:linear-gradient(165deg,#32483e,#1f2e28); border:1px solid rgba(255,255,255,.14); }
.lv-root .ks-rygg i:nth-child(2){ left:4px; top:-3px } .lv-root .ks-rygg i:nth-child(3){ left:8px; top:-6px }
.lv-root .ks-rygg.ut i{ background:linear-gradient(165deg,#271f1b,#171310); border-color:rgba(255,255,255,.08); }
.lv-root .ks-omigjen{ height:38px; padding:0 15px; border-radius:999px; background:rgba(10,18,14,.62); border:1px solid rgba(255,255,255,.2);
  color:inherit; font-size:.76rem; display:flex; align-items:center; gap:7px; align-self:center; cursor:pointer; }
.lv-root .ks-omigjen b{ font-family:var(--lv-mono); font-size:.62rem; color:#f0c79a; font-weight:400; }
.lv-root .ks-omigjen[disabled]{ opacity:.32; pointer-events:none; }

.lv-root .ks-slutt{ position:absolute; inset:0; z-index:7; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:12px; padding:22px; overflow:hidden; animation:ks-ton .5s ease; }
@keyframes ks-ton{ from{ opacity:0 } }
.lv-root .ks-slutt > *{ position:relative; z-index:2; }
.lv-root .ks-takfoto{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 20%; z-index:0; }
.lv-root .ks-sluttdim{ position:absolute; inset:0; z-index:1;
  background:radial-gradient(64% 40% at 50% 40%, rgba(255,222,180,.26), transparent 70%), rgba(7,12,10,.66); }
.lv-root .ks-vk{ width:172px; height:241px; display:flex; flex-direction:column; border-radius:18px; color:#19231f; box-sizing:border-box;
  background:linear-gradient(170deg,#f6f3ea,#e4e0d4); padding:16px 15px 14px; transform:rotate(-2deg);
  box-shadow:0 26px 56px rgba(0,0,0,.66), 0 0 0 2px rgba(232,180,130,.75), 0 0 54px rgba(232,180,130,.3); }
.lv-root .ks-vk .ks-navn{ margin-top:8px; font-size:1.25rem; font-weight:500; line-height:1.15; }
.lv-root .ks-stempel{ display:inline-block; margin-top:auto; align-self:flex-start; font-family:var(--lv-mono); font-size:.52rem;
  letter-spacing:.14em; color:#8a5f3a; border:1px solid rgba(138,95,58,.55); border-radius:4px; padding:4px 7px; transform:rotate(-3deg); }
.lv-root .ks-vinnertekst{ text-align:center; } .lv-root .ks-vinnertekst h2{ margin:0; font-size:1.3rem; font-weight:400; color:#fbf7ef; }
.lv-root .ks-knapper{ display:flex; flex-direction:column; gap:8px; width:100%; max-width:240px; }

/* ---- Magefølelsen ---- */
.lv-root .ks-historikk{ display:flex; gap:5px; }
.lv-root .ks-hc{ flex:1; height:30px; border-radius:999px; border:1px dashed rgba(255,255,255,.22); display:flex; align-items:center;
  justify-content:center; font-family:var(--lv-mono); font-size:.5rem; letter-spacing:.05em; color:#9fb0a6; }
.lv-root .ks-hc.satt{ border-style:solid; border-color:rgba(193,209,207,.68); background:rgba(193,209,207,.17); color:#f1efe8; }
.lv-root .ks-spor{ text-align:center; padding:4px 6px 0; }
.lv-root .ks-spor h2{ margin:6px 0 0; font-size:1.2rem; font-weight:400; color:#fbf7ef; line-height:1.2; text-shadow:0 2px 14px rgba(0,0,0,.85); }
.lv-root .ks-bord{ flex:1; min-height:120px; }
/* Feltene er malt på bildet. JS måler hvor bildet faktisk ligger (object-fit:cover)
   og legger knappene nøyaktig oppå – ellers glipper de så snart skjermen har en
   annen høyde enn den artboardet ble målt på. */
.lv-root .ks-boks{ position:fixed; border-radius:14px; background:none; border:0; color:inherit; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:2px; padding:0 8px 8px; text-align:center;
  z-index:7; transition:background .3s ease, box-shadow .3s ease; }
.lv-root .ks-boks b{ font-size:1.05rem; font-weight:600; color:#fdf6e8; text-shadow:0 2px 9px rgba(0,0,0,.85); }
.lv-root .ks-boks span{ font-size:.56rem; line-height:1.25; color:#e6ddcc; text-shadow:0 1px 6px rgba(0,0,0,.9); }
.lv-root .ks-boks:active{ background:rgba(232,180,130,.2); box-shadow:inset 0 0 0 2px rgba(232,180,130,.95), 0 0 40px rgba(232,180,130,.34); }
.lv-root .ks-chip{ width:62px; height:62px; border-radius:50%; align-self:center; display:flex; align-items:center; justify-content:center;
  background:repeating-conic-gradient(#c1d1cf 0 20deg, #efece3 20deg 40deg); box-shadow:0 10px 22px rgba(0,0,0,.6); }
.lv-root .ks-kjerne{ width:45px; height:45px; border-radius:50%; background:linear-gradient(170deg,#f3f0e7,#e3dfd3); color:#19231f;
  display:flex; align-items:center; justify-content:center; border:1px solid rgba(25,35,31,.14);
  font-family:var(--lv-mono); font-size:.44rem; letter-spacing:.06em; text-align:center; line-height:1.2; }
.lv-root .ks-chiphint{ text-align:center; }
.lv-root .ks-treff{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:12px; }
.lv-root .ks-rad{ display:flex; gap:9px; }
.lv-root .ks-rk{ flex:1; height:146px; border-radius:14px; background:linear-gradient(170deg,#f3f0e7,#e2ded2); color:#19231f;
  padding:11px 10px 10px; box-sizing:border-box; display:flex; flex-direction:column; position:relative; text-align:left;
  box-shadow:0 14px 28px rgba(0,0,0,.5); border:0; }
.lv-root .ks-rk::after{ content:""; position:absolute; inset:4px; border-radius:10px; border:1px solid rgba(25,35,31,.14); pointer-events:none; }
.lv-root .ks-rk em{ font-style:normal; font-family:var(--lv-mono); font-size:.46rem; letter-spacing:.11em; color:#63756b; }
.lv-root .ks-rk b{ margin-top:8px; font-size:.86rem; font-weight:500; line-height:1.14; }
.lv-root .ks-rk i{ margin-top:auto; font-style:normal; font-family:var(--lv-mono); font-size:.5rem; color:#3f564a; }
.lv-root .ks-rk.beste{ box-shadow:0 18px 34px rgba(0,0,0,.54), 0 0 0 2px rgba(232,180,130,.9); }

/* ---- Rest-kabal ---- */
.lv-root .ks-retter{ display:flex; gap:9px; }
.lv-root .ks-restkort{ cursor:pointer; transition:transform .3s cubic-bezier(.2,.8,.24,1), box-shadow .3s ease, opacity .3s ease; }
.lv-root .ks-restkort.av{ transform:translateY(10px) scale(.95); opacity:.4; }
.lv-root .ks-restkort.valgt{ transform:translateY(-8px); box-shadow:0 20px 38px rgba(0,0,0,.56), 0 0 0 2px rgba(193,209,207,.85); }
.lv-root .ks-restkort.valgt.allin{ box-shadow:0 20px 38px rgba(0,0,0,.56), 0 0 0 2px rgba(232,180,130,.95), 0 0 44px rgba(232,180,130,.3); }
.lv-root .ks-merke{ align-self:flex-start; font-family:var(--lv-mono); font-size:.46rem; letter-spacing:.09em; padding:4px 7px; border-radius:999px;
  background:rgba(25,35,31,.1); color:#3f564a; border:1px solid rgba(25,35,31,.18); }
.lv-root .ks-tar{ margin-top:auto; display:flex; gap:6px; }
.lv-root .ks-tar i{ width:8px; height:8px; border-radius:50%; flex:none; border:1px solid rgba(25,35,31,.28); }
.lv-root .ks-tar i.av{ opacity:.28; }
.lv-root .ks-allin{ align-self:center; font-family:var(--lv-mono); font-size:.8rem; letter-spacing:.2em; font-weight:600; color:#1a2420;
  background:#e8b482; padding:8px 16px; border-radius:7px; transform:rotate(-5deg) scale(.86); opacity:0;
  box-shadow:0 10px 30px rgba(0,0,0,.5), 0 0 40px rgba(232,180,130,.45); transition:opacity .3s ease .2s, transform .3s ease .2s; }
.lv-root .ks-allin.pa{ opacity:1; transform:rotate(-5deg) scale(1); }
.lv-root .ks-sjetonger{ display:flex; justify-content:center; gap:14px; margin-top:auto; }
.lv-root .ks-vchip{ width:66px; height:66px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:repeating-conic-gradient(var(--c) 0 20deg, #efece3 20deg 40deg); box-shadow:0 10px 22px rgba(0,0,0,.55);
  transition:transform .45s cubic-bezier(.2,.8,.24,1), opacity .3s ease; }
.lv-root .ks-vchip.av{ transform:scale(.88); opacity:.26; }
.lv-root .ks-midt{ width:48px; height:48px; border-radius:50%; background:linear-gradient(170deg,#f3f0e7,#e3dfd3); color:#19231f;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; border:1px solid rgba(25,35,31,.14); }
.lv-root .ks-midt b{ font-size:.58rem; font-weight:600; }
.lv-root .ks-midt em{ font-style:normal; font-family:var(--lv-mono); font-size:.4rem; color:#63756b; }

/* ---- Hemmelig valg ---- */
.lv-root .ks-rute{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; }
.lv-root .ks-vk3{ height:132px; border-radius:14px; background:linear-gradient(170deg,#f3f0e7,#e2ded2); color:#19231f; padding:11px 10px 10px;
  box-sizing:border-box; display:flex; flex-direction:column; position:relative; text-align:left; border:0; cursor:pointer;
  box-shadow:0 12px 26px rgba(0,0,0,.48); transition:transform .26s cubic-bezier(.2,.8,.24,1), box-shadow .26s ease, opacity .26s ease; }
.lv-root .ks-vk3::after{ content:""; position:absolute; inset:4px; border-radius:10px; border:1px solid rgba(25,35,31,.14); pointer-events:none; }
.lv-root .ks-vk3 em{ font-style:normal; font-family:var(--lv-mono); font-size:.46rem; letter-spacing:.1em; color:#63756b; }
.lv-root .ks-vk3 b{ margin-top:8px; font-size:.82rem; font-weight:500; line-height:1.14; }
.lv-root .ks-vk3.valgt{ transform:translateY(-7px); box-shadow:0 18px 32px rgba(0,0,0,.55), 0 0 0 2px rgba(193,209,207,.9); }
.lv-root .ks-vk3.ute{ opacity:.42; }
.lv-root .ks-midtstilt{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:13px; text-align:center; padding:0 16px; }
.lv-root .ks-midtstilt h2{ margin:0; font-size:1.5rem; font-weight:400; color:#fbf7ef; text-shadow:0 2px 16px rgba(0,0,0,.85); }
.lv-root .ks-midtstilt p{ margin:0; font-size:.86rem; line-height:1.5; color:#e4ded2; max-width:258px; }
.lv-root .ks-rygger{ display:flex; gap:9px; }
.lv-root .ks-rygg2{ width:68px; height:95px; border-radius:11px; background:linear-gradient(165deg,#30453c,#1e2d27);
  border:1px solid rgba(255,255,255,.18); box-shadow:0 12px 26px rgba(0,0,0,.6); }
.lv-root .ks-rygg2:nth-child(1){ transform:rotate(-6deg) } .lv-root .ks-rygg2:nth-child(3){ transform:rotate(6deg) }
.lv-root .ks-fasit{ flex:1; display:flex; flex-direction:column; justify-content:space-between; gap:9px; min-height:0; }
.lv-root .ks-lk{ flex:1; border-radius:13px; background:linear-gradient(170deg,#eeeae1,#dcd8cb); color:#19231f; padding:10px 9px; box-sizing:border-box;
  height:120px; display:flex; flex-direction:column; position:relative; box-shadow:0 11px 24px rgba(0,0,0,.46); }
.lv-root .ks-lk::after{ content:""; position:absolute; inset:4px; border-radius:9px; border:1px solid rgba(25,35,31,.15); pointer-events:none; }
.lv-root .ks-lk em{ font-style:normal; font-family:var(--lv-mono); font-size:.46rem; letter-spacing:.1em; color:#63756b; }
.lv-root .ks-lk b{ margin-top:7px; font-size:.78rem; font-weight:500; line-height:1.14; }
.lv-root .ks-rad.motsatt .ks-lk{ height:104px; opacity:.86; }
.lv-root .ks-lk.treff{ background:linear-gradient(170deg,#f8f5ec,#e6e2d6); box-shadow:0 14px 28px rgba(0,0,0,.5), 0 0 0 2px rgba(232,180,130,.9); }
.lv-root .ks-midtfelt{ display:flex; flex-direction:column; align-items:center; gap:7px; }
.lv-root .ks-vinnerkort{ width:128px; height:179px; border-radius:15px; background:linear-gradient(170deg,#f8f5ec,#e6e2d6); color:#19231f;
  padding:13px 12px; box-sizing:border-box; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  transform:rotate(-2deg); text-align:center;
  box-shadow:0 24px 46px rgba(0,0,0,.66), 0 0 0 2px rgba(232,180,130,.95), 0 0 46px rgba(232,180,130,.34); }
.lv-root .ks-vinnerkort em{ font-style:normal; font-family:var(--lv-mono); font-size:.46rem; letter-spacing:.12em; color:#63756b; }
.lv-root .ks-vinnerkort b{ font-size:1.25rem; font-weight:500; line-height:1.12; }
.lv-root .ks-ingen{ width:128px; height:179px; border-radius:15px; border:1px dashed rgba(255,255,255,.3); display:flex; align-items:center;
  justify-content:center; text-align:center; padding:14px; box-sizing:border-box; font-size:.78rem; line-height:1.4; color:#d4dbd5; }
.lv-root .ks-bloon{ display:inline-flex; align-items:center; height:26px; padding:0 11px; border-radius:999px; background:#e8b482; color:#1a2420;
  font-weight:600; font-family:var(--lv-mono); font-size:.5rem; letter-spacing:.07em; box-shadow:0 0 22px rgba(232,180,130,.45); }

/* Inngangen til kasinoet i ukeplanen */
.lv-root .lv-kasinorad{ display:flex; flex-direction:column; gap:6px; align-items:center; }
.lv-root .lv-kasinoknapp{ width:100%; height:48px; border-radius:15px; background:#e8b482; color:#1a2420; font-weight:600; font-size:.78rem;
  letter-spacing:.11em; text-transform:uppercase; display:flex; align-items:center; justify-content:center; border:0; cursor:pointer;
  box-shadow:0 5px 0 #a9774c, 0 14px 26px rgba(0,0,0,.3); }
.lv-root .lv-kasinoknapp:active{ transform:translateY(3px); box-shadow:0 2px 0 #a9774c; }
.lv-root .lv-dagspill{ width:26px; height:38px; border-radius:9px; display:flex; align-items:center; justify-content:center; color:#e8b482;
  background:none; border:0; cursor:pointer; }
.lv-root .lv-dagspill[disabled]{ color:#4b5559; opacity:.5; pointer-events:none; }

@media (prefers-reduced-motion: reduce){
  .lv-root .ks-foto, .lv-root .ks-sprekk, .lv-root .ks-kort, .lv-root .ks-restkort, .lv-root .ks-vchip, .lv-root .ks-allin{ transition:none !important; }
  .lv-root .ks-kort, .lv-root .ks-k, .lv-root .ks-slutt, .lv-root .ks-angre{ animation:none !important; }
  .lv-root .ks-punkter i{ animation:none; opacity:.7; }
}
@media (min-width:641px){
  .lv-root .ks-rom{ min-height:min(82vh, 900px); max-width:620px; margin-inline:auto; }
}

/* Dagraden i ukeplanen får kort-ikonet ved siden av seg */
.lv-root .lv-ukerad-ytre{ display:flex; align-items:center; gap:6px; }
.lv-root .lv-ukerad-ytre > .lv-ukerad{ flex:1; min-width:0; }


/* Kortet er plukket opp: filten synker litt og salen begynner å komme til syne.
   Halve bevegelsen her, resten i kastet. */
.lv-root .ks-rom[data-loftet="1"] .ks-filtfoto{ transform:scale(1.05) translateY(5%); }
/* Rombildets NÆRE bordkant må ut av bildet under løftet, ellers skjærer den
   tvers over filten. Zoomet hit ligger bordets egen filt der vår filt ligger,
   og de to grønne flatene møtes. */
.lv-root .ks-rom[data-loftet="1"] .ks-romfoto{ opacity:.45; transform:scale(1.62) translateY(0); }

/* ============ Kastet: kortet legges ned, og du ser opp ============
   Filten synker og rommet med folk kommer imot deg – begge nedover, slik
   verden gjør når du løfter blikket. */
.lv-root .ks-romfoto{ z-index:2; opacity:0; transform:scale(1.1) translateY(-10%); }
.lv-root .ks-rom[data-sted="kast"] .ks-filtfoto{ opacity:0; transform:scale(1.12) translateY(13%); }
.lv-root .ks-rom[data-sted="kast"] .ks-romfoto{ opacity:1; transform:scale(1.2) translateY(8%); }

.lv-root .ks-plass{ position:absolute; left:50%; bottom:18px; width:104px; height:146px; margin-left:-52px; border-radius:12px;
  border:1px dashed rgba(255,225,190,.7); background:rgba(255,225,190,.08); transform-origin:50% 100%; pointer-events:none;
  transform:perspective(760px) translate(0px,-216px) rotateX(56deg) rotateZ(6deg) scale(.95);
  opacity:0; transition:opacity .3s ease; }
.lv-root .ks-spillkort{ position:absolute; left:50%; bottom:312px; z-index:12; transform:translateX(-50%); height:46px; padding:0 24px;
  border-radius:14px; background:#e8b482; color:#1a2420; font-weight:600; font-size:.72rem; letter-spacing:.11em; text-transform:uppercase;
  display:flex; align-items:center; white-space:nowrap; border:0; cursor:pointer; opacity:0;
  box-shadow:0 5px 0 #a9774c, 0 16px 30px rgba(0,0,0,.5); transition:opacity .28s ease; pointer-events:none; }
.lv-root .ks-leggtilbake{ position:absolute; left:10px; bottom:14px; z-index:12; height:34px; padding:0 14px;
  border-radius:999px; background:rgba(12,20,16,.62); border:1px solid rgba(255,255,255,.22); color:#eef1ee; font-size:.74rem;
  display:flex; align-items:center; cursor:pointer; opacity:0; transition:opacity .3s ease .3s; pointer-events:none; }
.lv-root .ks-kastetekst{ position:absolute; left:0; right:0; bottom:146px; z-index:11; text-align:center; opacity:0;
  transition:opacity .34s ease .35s; pointer-events:none; }

/* ============ Fullskjerm: rommet fyller skjermen, hjul og navbar foran ============
   .lv-bezel har backdrop-filter, og en slik filter lager et nytt feste for
   position:fixed. Derfor må ramma slås av, ikke bare skjules. */
body.ks-fullskjerm{ overflow:hidden; }
body.ks-fullskjerm #app{ padding:0; max-width:none; }
body.ks-fullskjerm .lv-bezel{ padding:0; border:0; border-radius:0; background:none; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none; }
body.ks-fullskjerm .lv-root{ gap:0; }
/* Hjulet ligger på 900 og bunnbaren på 9000. Rommet legges under begge,
   men over alt annet innhold – da flyter de foran uten at noe må flyttes. */
.lv-root .ks-rom{ position:fixed; inset:0; z-index:800; margin:0; border-radius:0; min-height:0; }
.lv-root .ks-rom .ks-topp{ padding-top:calc(14px + env(safe-area-inset-top)); }
body.ks-fullskjerm .lv-disk{ display:none; }   /* hjulet er i veien her inne */
@media (max-width:640px){
  .lv-root .ks-flate{ padding-bottom:calc(86px + env(safe-area-inset-bottom)); }
}
@media (min-width:641px){
  .lv-root .ks-rom{ max-width:none; margin:0; }
  body.ks-fullskjerm .lv-navrow{ position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:860;
    width:min(620px, 92vw); }
  .lv-root .ks-flate{ padding-bottom:96px; }
  .lv-root .ks-rom .ks-flate, .lv-root .ks-rom .ks-topp{ max-width:620px; margin-inline:auto; width:100%; box-sizing:border-box; }
}

/* Bunnbaren senkes litt i kasinoet – den trenger ikke like mye luft under seg her. */
body.ks-fullskjerm .lv-tab ul{ padding-bottom:max(0px, env(safe-area-inset-bottom) - 30px);
  height:calc(54px + max(0px, env(safe-area-inset-bottom) - 30px)); }
body.ks-fullskjerm .lv-tabbg{ height:calc(62px + max(0px, env(safe-area-inset-bottom) - 30px)); }
