/* Tallgenerator.no – wow-pakke 2. Bygges av tools/wow2_bygg.py */
.tgw-rist{position:absolute;top:.7rem;left:5.1rem;display:inline-flex;align-items:center;gap:.3rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:8px;padding:.32rem .55rem;font:inherit;font-size:12.5px;font-weight:700;line-height:1.2;cursor:pointer;z-index:3}
.tgw-rist[aria-pressed=false]{opacity:.7}
.tg-idle .tgw-rist{opacity:0!important}
.tgw-lyd.lys,.tgw-rist.lys{background:#fff;border-color:#e5e0d5;color:#4f4f4f}
/* Blanke kuler */
.lotto-ball,.ball,.current-ball:not(.empty),.drawn-ball{--b:#d7263d;--bl:#ff8a8a;--bd:#7d0f1f;color:#1a1a1a!important;font-family:'Source Sans 3',sans-serif;font-variant-numeric:tabular-nums;font-weight:800!important;border-radius:50%!important;
 background:radial-gradient(circle at 50% 50%,#fff 0 44%,rgba(255,255,255,0) 46%),radial-gradient(circle at 30% 22%,rgba(255,255,255,.95) 0 6%,rgba(255,255,255,0) 24%),radial-gradient(circle at 36% 30%,var(--bl) 0,var(--b) 52%,var(--bd) 100%)!important;
 box-shadow:0 7px 14px rgba(0,0,0,.35),inset 0 -5px 9px rgba(0,0,0,.28)!important;animation:none}
.lotto-ball,.ball{width:60px!important;height:60px!important;font-size:1.3rem!important}
.ball.main{--b:#2563c9;--bl:#8fb8ff;--bd:#123a80;padding:0!important;margin:0;max-width:none}
.ball.star{--b:#e0a315;--bl:#ffe08a;--bd:#8a5d05}
.ball.viking{--b:#e8641b;--bl:#ffb27d;--bd:#8f3605}
#ballsContainer .ball{--b:#0f9f8f;--bl:#7fe6d8;--bd:#075e55}
.current-ball:not(.empty),.drawn-ball{--b:#7c3aed;--bl:#c4a6ff;--bd:#43178f}
.drawn-ball{box-shadow:0 2px 5px rgba(0,0,0,.25),inset 0 -2px 4px rgba(0,0,0,.25)!important}
.lm{flex:0 0 100%;display:flex;justify-content:center;margin:0 0 .9rem}
.lm canvas{width:150px;height:150px;display:block}
.tg-balls .lm{flex:0 0 auto}
.lm-wait{visibility:hidden}
.lm-in{animation:lmin .62s cubic-bezier(.2,.8,.3,1)!important}
@keyframes lmin{from{transform:translate(var(--dx),var(--dy)) scale(.3) rotate(-540deg);opacity:.3}}
.current-ball.lm-drop{animation:lmdrop .55s cubic-bezier(.3,1.5,.5,1)!important}
@keyframes lmdrop{from{transform:translateY(-60px) scale(.5);opacity:0}}
.tg-stage.fs .lm canvas,.tg-stage:fullscreen .lm canvas{width:min(30vh,240px);height:min(30vh,240px)}
.tgo .lotto-balls.tg-stage,.tgo .tg-stage.tg-balls,.tgo .balls-container.tg-stage{padding-top:3rem!important}
.tgo .tg-stage.tg-balls.fs .ball,.tgo .tg-stage.tg-balls:fullscreen .ball{transform:scale(1.3);margin:.8rem 1rem}
.tgo .tg-stage.tg-balls.fs .lm canvas,.tgo .tg-stage.tg-balls:fullscreen .lm canvas{width:min(20vh,170px);height:min(20vh,170px)}
.tgo .tg-stage.tg-balls.fs .balls-divider,.tgo .tg-stage.tg-balls:fullscreen .balls-divider{margin:.3rem 0}
.tgo .tg-stage.tg-balls.fs .lm,.tgo .tg-stage.tg-balls:fullscreen .lm{margin-bottom:.3rem}
@media(max-width:600px){.lotto-ball,.ball{width:50px!important;height:50px!important;font-size:1.1rem!important}.lm canvas{width:120px;height:120px}}
.current-ball.b75{font-size:2rem!important}
.tg-skjerm.tgs-bingo.fs .current-ball.b75,.tg-skjerm.tgs-bingo:fullscreen .current-ball.b75{font-size:min(11vh,8vw)!important}
/* Joker: tavle med siffer */
.joker-digit{background:linear-gradient(#34302d 0 49%,#0d0d0d 49% 51%,#262321 51%)!important;border-radius:9px!important;font-family:'Fraunces',Georgia,serif!important;box-shadow:0 6px 14px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.12)!important;animation:none!important;width:56px!important;height:76px!important;font-size:2.2rem!important}
/* Gruppeinndeling: navnene deles ut ett og ett */
.gd-in{animation:gdin .4s cubic-bezier(.2,1.4,.4,1) both}
@keyframes gdin{from{opacity:0;transform:translateY(-10px) scale(.92)}}
/* Yatzy: terninger i samme stil som terningkast */
.tgo .dice-container.tg-stage .die{background:radial-gradient(120% 120% at 28% 22%,#fff 0,#f7f1e6 45%,#ddd3c2 100%)!important;border:none!important;border-radius:19%!important;box-shadow:0 8px 16px rgba(0,0,0,.4),inset 0 -5px 10px rgba(90,70,40,.18),inset 0 4px 7px rgba(255,255,255,.9)!important}
.tgo .dice-container.tg-stage .die .dot.visible{background:radial-gradient(circle at 38% 32%,#55504a 0,#1a1a1a 55%,#000 100%)!important;box-shadow:inset 0 2px 3px rgba(0,0,0,.7)}
.tgo .dice-container.tg-stage .die.held{box-shadow:0 0 0 4px #f4a68f,0 8px 16px rgba(0,0,0,.4)!important;transform:translateY(-6px)}
/* Stein saks papir */
.tgs-ssp{background:#faf8f5;border-radius:18px;padding:3rem 1rem 1.4rem;color:#fff;margin-bottom:1rem}
.tgs-ssp .game-area{display:flex;align-items:center;justify-content:center;gap:clamp(1rem,6vw,3rem);margin-bottom:1.2rem}
.tgs-ssp .player-label{color:#f4a68f;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem;text-align:center}
.tgs-ssp .vs{color:rgba(255,255,255,.55);font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:700}
.tgs-ssp .choice-display{width:clamp(96px,26vw,140px);height:clamp(96px,26vw,140px);border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff,#f1eadf 60%,#d9cfbf)!important;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px rgba(0,0,0,.45),inset 0 -6px 12px rgba(120,95,60,.25);font-size:0;animation:none!important;transition:transform .25s,box-shadow .25s,opacity .25s}
.tgs-ssp .choice-display svg{width:68%;height:68%}
.tgs-ssp .choice-display.q::after{content:'?';font-family:'Fraunces',Georgia,serif;font-size:3rem;font-weight:700;color:#b9ad99}
.tgs-ssp .choice-display.bob{animation:sspbob .38s ease-in-out 3!important}
@keyframes sspbob{50%{transform:translateY(-22px) rotate(-8deg)}}
.tgs-ssp .choice-display.pop{animation:tgwpop .4s cubic-bezier(.2,1.5,.4,1)!important}
.tgs-ssp .choice-display.winner{box-shadow:0 0 0 5px #f4a68f,0 0 34px rgba(244,166,143,.6),0 12px 26px rgba(0,0,0,.45);transform:scale(1.08)}
.tgs-ssp .choice-display.loser{opacity:.55;transform:scale(.92)}
.tgs-ssp .result-text{color:#fff!important;background:none!important;font-family:'Fraunces',Georgia,serif;font-size:clamp(1.4rem,4.5vw,2rem)!important;min-height:1.4em;margin:0 0 1.1rem!important;padding:0!important;text-align:center}
.tgs-ssp .result-text.win{color:#f3d27a!important}.tgs-ssp .result-text.lose{color:#f4a68f!important}
.tgs-ssp .choices{display:flex;justify-content:center;gap:.7rem;margin-bottom:1.2rem}
.tgs-ssp .choice-btn{width:clamp(84px,24vw,112px)!important;height:auto!important;padding:.6rem .4rem .5rem!important;border-radius:16px!important;background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.25)!important;color:#fff!important;font:inherit!important;font-size:14px!important;font-weight:700!important;display:flex!important;flex-direction:column;align-items:center;gap:.25rem;cursor:pointer;transition:transform .12s,background .12s}
.tgs-ssp .choice-btn svg{width:46px;height:46px}
.tgs-ssp .choice-btn:hover:not(:disabled){background:rgba(255,255,255,.2)!important;transform:translateY(-3px)}
.tgs-ssp .choice-btn:disabled{opacity:.5;cursor:default}
.tgs-ssp .stats{display:flex;justify-content:center;gap:.6rem;border:none!important;padding:0!important;margin:0!important}
.tgs-ssp .stat{background:rgba(255,255,255,.08);border-radius:10px;padding:.4rem .9rem;text-align:center;min-width:5rem}
.tgs-ssp .stat-label{color:rgba(255,255,255,.75)!important;font-size:12px}
.tgs-ssp .stat-value.win{color:#86efac!important}.tgs-ssp .stat-value.lose{color:#fca5a5!important}.tgs-ssp .stat-value.draw{color:#fde68a!important}
.tgs-ssp .tg-skjerm-btn.tg-abs{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff}
.tgs-ssp.fs .choice-display,.tgs-ssp:fullscreen .choice-display{width:min(30vh,28vw);height:min(30vh,28vw);font-size:0}
.tgs-ssp.fs .choice-btn,.tgs-ssp:fullscreen .choice-btn{width:clamp(110px,13vw,170px)!important;height:auto!important;font-size:clamp(1rem,1.6vw,1.4rem)!important}
.tgs-ssp.fs .choice-btn svg,.tgs-ssp:fullscreen .choice-btn svg{width:clamp(56px,7vw,96px);height:clamp(56px,7vw,96px)}
@media(prefers-reduced-motion:reduce){.lm-in,.current-ball.lm-drop,.gd-in,.tgs-ssp .choice-display.bob,.tgs-ssp .choice-display.pop{animation:none!important}}

/* ---------- Runde 3: navn, bokstav, liste, timer og passord ---------- */
.tgo .name-display.tg-stage,.tgo .letter-display.tg-stage,.tgo .result-display.tg-stage,.tgo .timer-display.tg-stage{padding-top:3.2rem!important}
/* Navn: navneskilt */
.tgo .tg-stage .name-text{display:inline-block;position:relative;min-width:min(340px,86%);max-width:92%;background:#fffdf8;color:#1a1a1a!important;border-radius:16px;padding:3.1rem 1.6rem 1.3rem;font-family:'Fraunces',Georgia,serif;font-size:clamp(1.9rem,6vw,2.9rem)!important;font-weight:700;line-height:1.15;
 box-shadow:0 14px 30px rgba(0,0,0,.45);opacity:1!important;overflow-wrap:anywhere}
.tgo .tg-stage .name-text::before{content:'HEI, JEG HETER';position:absolute;left:0;right:0;top:0;height:2.3rem;display:flex;align-items:center;justify-content:center;background:#ba2d0b;color:#fff;border-radius:16px 16px 0 0;font-family:'Source Sans 3',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.16em}
.tgo .tg-stage.fs .name-text,.tgo .tg-stage:fullscreen .name-text{font-size:clamp(3rem,10vw,8rem)!important;padding:5.5rem 3rem 2.2rem;border-radius:28px}
.tgo .tg-stage.fs .name-text::before,.tgo .tg-stage:fullscreen .name-text::before{height:4rem;font-size:clamp(1rem,2vw,1.6rem);border-radius:28px 28px 0 0}
/* Bokstav: brikke som vendes */
.tgo .letter-display.tg-stage{perspective:700px;font-size:1rem!important;min-height:230px!important}
.lt-tile{display:flex;align-items:center;justify-content:center;width:150px;height:150px;border-radius:22px;background:#fff;color:#1a1a1a;font-family:'Fraunces',Georgia,serif;font-size:6.2rem;font-weight:700;line-height:1;
 box-shadow:0 14px 28px rgba(0,0,0,.5),inset 0 -8px 14px rgba(140,105,50,.28),inset 0 6px 8px rgba(255,255,255,.9);backface-visibility:hidden}
.lt-flip{animation:ltflip .11s linear}
@keyframes ltflip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}
.lt-land{animation:ltland .5s cubic-bezier(.2,1.5,.4,1)}
@keyframes ltland{0%{transform:rotateX(90deg) scale(.8)}100%{transform:none}}
.tgo .tg-stage.fs .lt-tile,.tgo .tg-stage:fullscreen .lt-tile{width:min(52vh,60vw);height:min(52vh,60vw);font-size:min(34vh,40vw);border-radius:12%}
.history-letter{background:#fff!important;border:1px solid #e5e0d5;color:#1a1a1a!important;font-family:'Fraunces',Georgia,serif}
/* Liste: rull som stopper på vinneren */
.ls-reel{--lh:1.9em;position:relative;height:calc(var(--lh)*3);width:min(560px,92%);margin:0 auto;overflow:hidden;font-family:'Fraunces',Georgia,serif;font-size:clamp(1.4rem,5vw,2.2rem);font-weight:700;border-radius:14px;background:rgba(0,0,0,.28);box-shadow:inset 0 0 0 1px rgba(255,236,190,.25);
 -webkit-mask-image:linear-gradient(transparent,#000 28%,#000 72%,transparent);mask-image:linear-gradient(transparent,#000 28%,#000 72%,transparent)}
.ls-reel::after{content:'';position:absolute;left:.5rem;right:.5rem;top:var(--lh);height:var(--lh);border-top:2px solid #f4a68f;border-bottom:2px solid #f4a68f;pointer-events:none}
.ls-strip{will-change:transform}
.ls-i{height:var(--lh);line-height:var(--lh);padding:0 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(255,255,255,.55);text-align:center}
.ls-strip>.ls-i.on:only-child{margin-top:var(--lh)}
.ls-i.on{color:#fff}.ls-i.win{color:#f4a68f;animation:tgwpop .45s cubic-bezier(.2,1.5,.4,1)}.ls-i.msg{font-family:'Source Sans 3',sans-serif;font-size:.7em;color:#f4a68f}
.tgo .result-display.tg-stage .result-text{position:absolute!important;width:1px;height:1px;min-height:0;overflow:hidden;clip:rect(0 0 0 0)}
.tgo .tg-stage.fs .ls-reel,.tgo .tg-stage:fullscreen .ls-reel{width:min(1300px,92vw);font-size:clamp(2.4rem,7.5vw,6.5rem)}
/* Timer: ring som tømmes */
.tgo .timer-display.tg-stage{display:flex;justify-content:center;align-items:center;font-size:1rem!important;letter-spacing:0!important;animation:none!important;min-height:0}
.td{position:relative;width:min(280px,70vw);aspect-ratio:1;display:grid;place-items:center;cursor:pointer}
.td svg{position:absolute;inset:0;width:100%;height:100%}
.td-in{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.td-t{font-family:'Fraunces',Georgia,serif;font-variant-numeric:tabular-nums;font-size:clamp(2.6rem,13vw,4.2rem);font-weight:700;color:#fff;line-height:1}
.td-t.long{font-size:clamp(2rem,10vw,3.2rem)}
.td-m{min-height:1.4em;font-size:1.05rem;font-weight:700;color:#f4a68f}
.td-done{animation:tddone 1s 3}
@keyframes tddone{50%{filter:brightness(1.6)}}
.tgo .tg-stage.fs .td,.tgo .tg-stage:fullscreen .td{width:min(78vh,86vw)}
.tgo .tg-stage.fs .td-t,.tgo .tg-stage:fullscreen .td-t{font-size:min(19vh,21vw)}.tgo .tg-stage.fs .td-t.long,.tgo .tg-stage:fullscreen .td-t.long{font-size:min(14vh,15vw)}
.tgo .tg-stage.fs .td-m,.tgo .tg-stage:fullscreen .td-m{font-size:clamp(1.4rem,3.5vw,2.8rem)}
/* Passord */
.password-display{background:#1a1a1a!important;border-radius:16px!important;padding:1.3rem 1.2rem 1.3rem 1.5rem!important;min-height:4.6rem}
.password-display:hover{background:#262626!important}
.password-display:focus-visible{outline:3px solid #ba2d0b;outline-offset:3px}
.password-text{color:#fff!important;font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace!important;font-size:clamp(1.05rem,3.6vw,1.5rem)!important;letter-spacing:.06em;line-height:1.45}
.password-text .c-d{color:#f3d27a}.password-text .c-s{color:#ff9d80}
.password-copy{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff!important;border-radius:100px;padding:.4rem .9rem;font-weight:700!important}
.strength-bar.pw-seg{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;height:8px;background:none!important;overflow:visible}
.pw-seg i{display:block;border-radius:4px;background:#e5e0d5;transition:background .25s}
.strength-text{font-weight:700!important;font-size:14px!important}
@media(prefers-reduced-motion:reduce){.lt-flip,.lt-land,.td-done{animation:none}}
