*{box-sizing:border-box} :root{--ink:#183153;--muted:#617086;--paper:#f7f8fb;--card:#fff;--accent:#2457a6;--line:#dce2ea}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--paper);color:var(--ink);padding-bottom:70px}
header{background:#fff;border-bottom:1px solid var(--line);padding:18px 4vw;display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:5}
h1{margin:0;font-size:clamp(26px,3vw,42px)} header p{margin:4px 0 0;color:var(--muted)} button{font:inherit;cursor:pointer}
.header-actions,.toolBar,.quick{display:flex;gap:10px;flex-wrap:wrap}.header-actions button,.toolBar button,.toolBar+button,#backBtn,#optionsBtn{padding:10px 14px;border:1px solid var(--line);background:#fff;border-radius:10px}
main{max-width:1400px;margin:auto;padding:28px 4vw 80px} h2{margin:26px 0 12px}.quick{margin-bottom:26px}.quick button{border:0;border-radius:14px;background:#eaf1fb;padding:14px 20px;font-weight:750;font-size:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.tile{min-height:170px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;text-align:left;box-shadow:0 4px 16px #1831530c}.tile:hover{transform:translateY(-2px);box-shadow:0 8px 22px #18315318}.tile b{display:block;font-size:42px}.tile strong{display:block;font-size:21px;margin:8px 0 4px}.tile small{color:var(--muted);font-size:14px}
.future{margin-top:32px;padding:18px;background:#fff;border:1px dashed #b8c3d2;border-radius:14px;color:var(--muted)}.hidden{display:none!important}
.toolbar{display:flex;align-items:center;gap:14px;margin-bottom:16px}.toolbar h2{margin:0;flex:1}.toolbar button{padding:10px 14px;border:1px solid var(--line);background:#fff;border-radius:10px}
#options{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}.opts{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.opts label{font-weight:700}.opts input,.opts select,.opts textarea{display:block;margin-top:5px;padding:9px;border:1px solid #b9c3d0;border-radius:8px;font:inherit}.opts textarea{min-width:min(600px,85vw);height:180px}
#workspace{min-height:65vh;background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.bigresult{font-size:clamp(80px,15vw,190px);font-weight:850;line-height:1}.action{margin-top:28px;padding:16px 34px;border:0;border-radius:14px;background:var(--accent);color:white;font-weight:800;font-size:22px}.sub{color:var(--muted);font-size:18px;margin-top:10px}
.dice{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.die{width:125px;height:125px;border:4px solid var(--ink);border-radius:20px;display:grid;place-items:center;font-size:70px;font-weight:900}
.wheel{width:min(58vh,520px);aspect-ratio:1;border-radius:50%;border:10px solid var(--ink);display:grid;place-items:center;background:conic-gradient(#e7eef9 0 25%,#fff 25% 50%,#e7eef9 50% 75%,#fff 75%);font-size:clamp(28px,5vw,60px);font-weight:850;padding:45px}.spin{animation:spin .75s ease-out}@keyframes spin{to{transform:rotate(720deg)}}
.groups{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;text-align:left}.group{border:1px solid var(--line);border-radius:14px;padding:16px}.group h3{margin-top:0}.nameList{font-size:18px;line-height:1.7}
.timer{font-variant-numeric:tabular-nums;font-size:clamp(90px,18vw,220px);font-weight:850;line-height:1}.timerBtns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.cardFace{font-size:clamp(110px,18vw,220px);line-height:1}.coin{font-size:clamp(110px,18vw,220px)}
#miniBar{position:fixed;bottom:0;left:0;right:0;background:#183153;color:white;display:flex;justify-content:center;gap:6px;padding:9px;z-index:8}#miniBar button{border:0;background:transparent;color:white;padding:8px 14px;border-radius:8px}#miniBar button:hover{background:#ffffff20}
#mini{position:fixed;right:20px;bottom:70px;width:min(380px,90vw);background:#fff;border:2px solid var(--ink);border-radius:18px;box-shadow:0 14px 45px #0003;padding:22px;z-index:9;text-align:center}#miniClose{position:absolute;right:8px;top:6px;border:0;background:none;font-size:25px}
@media(max-width:700px){header{align-items:flex-start;flex-direction:column}.header-actions{width:100%}#workspace{padding:16px}.die{width:90px;height:90px;font-size:50px}}
body.presentation header{display:none}body.presentation main{max-width:none;padding:12px}body.presentation #workspace{min-height:calc(100vh - 95px);border:0}

.version{font-size:.38em;color:var(--muted);font-weight:750;vertical-align:middle}
.die.pipdie{position:relative;display:block;background:#fff;box-shadow:inset 0 0 0 2px #fff,0 5px 12px #0002}
.pip{position:absolute;width:18%;height:18%;background:var(--ink);border-radius:50%;transform:translate(-50%,-50%)}
.die.rolling{animation:dieRoll .55s ease-out}@keyframes dieRoll{50%{transform:rotate(12deg) scale(.92)}100%{transform:rotate(0) scale(1)}}
.coinface{width:min(42vw,260px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;margin:auto;border:12px double #8a6a16;background:radial-gradient(circle at 35% 30%,#fff3b0,#d4a72c 60%,#a97910);box-shadow:inset 0 0 0 7px #f6d66a,0 10px 25px #0002;color:#5f4810;text-shadow:0 1px #fff7;font-weight:900}
.coinface .coininner{display:flex;flex-direction:column;align-items:center;gap:4px}.coinface .coinicon{font-size:clamp(62px,11vw,105px);line-height:1}.coinface .coinlabel{font-size:clamp(20px,4vw,34px);letter-spacing:.08em}
.coinface.flipping{animation:coinFlip .7s ease-out}@keyframes coinFlip{0%{transform:rotateY(0)}100%{transform:rotateY(1080deg)}}
.coinsrow{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.coinsrow .coinface{width:150px;border-width:8px}.coinsrow .coinicon{font-size:62px}.coinsrow .coinlabel{font-size:18px}
.cardGraphic{width:min(36vw,240px);aspect-ratio:2.5/3.5;background:white;border:3px solid #202733;border-radius:16px;position:relative;box-shadow:0 10px 25px #0002;margin:auto;display:grid;place-items:center}
.cardGraphic.red{color:#c62828}.cardGraphic.black{color:#161b22}.cardCorner{position:absolute;font-weight:900;font-size:28px;line-height:.9;text-align:center}.cardCorner.tl{top:12px;left:12px}.cardCorner.br{bottom:12px;right:12px;transform:rotate(180deg)}
.cardCenter{font-size:clamp(70px,12vw,125px);font-weight:850}.cardGraphic.dealing{animation:deal .45s ease-out}@keyframes deal{from{transform:translateX(-70px) rotate(-8deg);opacity:.2}to{transform:none;opacity:1}}
.spinnerWrap{position:relative;width:min(62vh,540px);aspect-ratio:1}.spinnerSvg{width:100%;height:100%;filter:drop-shadow(0 8px 12px #0002)}.spinnerPointer{position:absolute;top:-13px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-top:48px solid var(--ink);z-index:2}
.spinnerSvg.spinning{transition:transform 1.35s cubic-bezier(.12,.62,.12,1)}
.group:nth-child(4n+1){background:#f4f8fe}.group:nth-child(4n+2){background:#f8f6ff}.group:nth-child(4n+3){background:#f4fbf6}.group:nth-child(4n){background:#fff9f0}
.pickFlash{animation:pickPulse .35s ease-out}@keyframes pickPulse{50%{transform:scale(1.08);opacity:.65}}
.timerRing{width:min(60vh,520px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:16px solid #e6ebf2;position:relative}.timerRing:before{content:"";position:absolute;inset:-16px;border-radius:50%;border:16px solid var(--accent);clip-path:inset(0 50% 0 0);opacity:.2}
.noanim *{animation:none!important;transition:none!important}

/* v1.5.1 Dice face-style enhancement */
.die.pipdie .pip{width:20%;height:20%;min-width:16px;min-height:16px;background:#111827;box-shadow:inset 0 1px 1px #ffffff55}
