@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');
:root{--ink:#f8f2e7;--muted:#aebbb5;--felt:#17362d;--felt2:#0d241e;--card:#f5ecdc;--paper:#fffaf0;--text:#193028;--accent:#e06a4d;--gold:#d8b96f;--line:rgba(255,255,255,.13);--shadow:0 22px 60px rgba(0,0,0,.28);--radius:24px}
*{box-sizing:border-box}html{background:#0c211b;scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;background:radial-gradient(circle at 50% -10%,#2b5749 0,var(--felt) 38%,var(--felt2) 100%);min-height:100svh;overflow-x:hidden}#ambient{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:.35}button,select{font:inherit}button{cursor:pointer}.shell{min-height:100svh;max-width:1460px;margin:auto;padding:18px clamp(16px,3vw,40px) 32px;position:relative}.grain{position:fixed;inset:0;opacity:.08;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;border-radius:13px;background:var(--card);display:grid;grid-template:repeat(3,4px)/repeat(3,4px);place-content:center;gap:3px;box-shadow:0 8px 25px #0004}.brand-mark i{width:4px;height:4px;border-radius:50%;background:var(--accent)}.brand h1{font:600 25px/1 'Playfair Display',serif;margin:0}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-top:4px}.top-actions{display:flex;gap:8px}.icon-btn,.pill-btn{border:1px solid var(--line);color:var(--ink);background:#ffffff0b;backdrop-filter:blur(10px);height:42px;border-radius:14px;padding:0 14px;transition:.2s}.icon-btn{width:42px;padding:0;font-size:18px}.icon-btn:hover,.pill-btn:hover{background:#ffffff17;transform:translateY(-1px)}.game-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.72fr);gap:22px;align-items:start}.table-card{border:1px solid var(--line);border-radius:32px;background:linear-gradient(145deg,#ffffff0c,#0000000d);box-shadow:var(--shadow);min-height:700px;padding:clamp(22px,4vw,50px);position:relative;overflow:hidden}.table-card:after{content:"";position:absolute;inset:16px;border:1px solid #ffffff09;border-radius:24px;pointer-events:none}.turnline{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:10px;color:var(--gold);font-weight:700}.turnline h2{font:600 clamp(30px,5vw,58px)/1 'Playfair Display',serif;margin:7px 0 0;max-width:560px}.turnline h2 em{color:var(--gold)}.round-badge{text-align:right;color:var(--muted);font-size:12px}.round-badge strong{display:block;color:var(--ink);font-size:18px;margin-top:3px}.dice-stage{min-height:280px;display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,18px);position:relative;z-index:2;padding:35px 0 22px}.die-wrap{display:grid;gap:9px;justify-items:center}.die{--s:clamp(53px,9vw,92px);width:var(--s);height:var(--s);border:0;border-radius:22%;background:linear-gradient(145deg,#fffef8,#e8ddc9);box-shadow:inset -6px -7px 12px #b8aa9560,inset 5px 5px 9px #fff,0 14px 24px #06130e70;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:16%;position:relative;transition:transform .2s,box-shadow .2s,background .2s}.die:hover{transform:translateY(-4px)}.die.held{background:linear-gradient(145deg,#f3c781,#d9a858);box-shadow:0 0 0 3px #ffe7ad,0 14px 25px #06130e80;transform:translateY(-9px)}.die.rolling{animation:roll .55s cubic-bezier(.2,.8,.3,1)}.pip{width:37%;aspect-ratio:1;border-radius:50%;background:#21362f;place-self:center;box-shadow:inset 1px 2px 2px #0008}.held .pip{background:#6f402d}.p1{grid-area:1/1}.p2{grid-area:1/2}.p3{grid-area:1/3}.p4{grid-area:2/1}.p5{grid-area:2/2}.p6{grid-area:2/3}.p7{grid-area:3/1}.p8{grid-area:3/2}.p9{grid-area:3/3}.hold-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:transparent;font-weight:700}.held+.hold-label{color:var(--gold)}@keyframes roll{0%{transform:rotate(0) scale(1)}35%{transform:rotate(16deg) scale(.88)}70%{transform:rotate(-8deg) scale(1.08)}100%{transform:rotate(0) scale(1)}}.roll-area{text-align:center;position:relative;z-index:2}.roll-btn{min-width:220px;height:60px;border:0;border-radius:18px;background:var(--accent);color:white;font-weight:700;letter-spacing:.04em;box-shadow:0 13px 30px #541b1060,inset 0 1px #fff5;transition:.2s}.roll-btn:hover:not(:disabled){background:#ec7659;transform:translateY(-2px)}.roll-btn:disabled{opacity:.45;cursor:not-allowed}.roll-help{color:var(--muted);font-size:12px;margin:12px 0 0}.roll-dots{display:flex;justify-content:center;gap:7px;margin-top:15px}.roll-dots i{width:5px;height:5px;border-radius:50%;background:#ffffff2e}.roll-dots i.used{background:var(--gold)}.score-panel{background:var(--card);color:var(--text);border-radius:28px;box-shadow:var(--shadow);overflow:hidden;max-height:calc(100svh - 90px);display:flex;flex-direction:column;position:sticky;top:18px}.score-head{padding:23px 22px 15px;border-bottom:1px solid #19302818}.players{display:flex;gap:7px;overflow:auto;padding-bottom:3px}.player-tab{border:1px solid #19302820;background:transparent;padding:8px 12px;border-radius:12px;color:#617068;white-space:nowrap;font-size:12px}.player-tab.active{background:var(--text);color:white}.score-title{display:flex;justify-content:space-between;align-items:end;margin-top:16px}.score-title h3{margin:0;font:600 23px 'Playfair Display',serif}.total-now{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#78827d}.total-now strong{display:block;font-size:23px;color:var(--accent);letter-spacing:0}.sheet{overflow:auto;padding:8px 12px 18px}.section-label{display:flex;justify-content:space-between;padding:13px 8px 6px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:#8b7a63;font-size:9px}.score-row{width:100%;min-height:45px;border:0;border-bottom:1px solid #19302813;background:transparent;display:grid;grid-template-columns:34px 1fr auto;align-items:center;text-align:left;color:var(--text);padding:3px 7px;border-radius:10px;transition:.18s}.score-row:not(:disabled):hover,.score-row.option{background:#fff9ec}.score-row.option{box-shadow:inset 3px 0 var(--accent)}.score-row:disabled{cursor:default}.score-icon{width:25px;height:25px;border:1px solid #9a856a66;border-radius:8px;display:grid;place-items:center;font:600 12px 'Playfair Display',serif}.score-name{font-size:12px;font-weight:600}.score-name small{display:block;font-weight:400;color:#8c958f;font-size:9px;margin-top:2px}.score-value{font-weight:700;font-size:13px}.score-value.preview{color:var(--accent)}.subtotal{margin:6px 5px 0;border-radius:13px;background:#e8ddc9;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;font-size:11px}.subtotal strong{font-size:14px}.bonus-track{height:4px;border-radius:8px;background:#c9baa4;margin-top:8px;overflow:hidden}.bonus-track i{display:block;height:100%;background:var(--accent);transition:width .4s}.toast{position:fixed;z-index:20;left:50%;bottom:24px;transform:translate(-50%,120px);background:#fffaf0;color:var(--text);border-radius:14px;padding:12px 18px;box-shadow:var(--shadow);font-size:13px;transition:.35s}.toast.show{transform:translate(-50%,0)}.modal-back{position:fixed;inset:0;z-index:30;background:#07130fc9;backdrop-filter:blur(10px);display:grid;place-items:center;padding:18px}.modal{width:min(520px,100%);background:var(--paper);color:var(--text);border-radius:28px;padding:28px;box-shadow:0 30px 90px #0008}.modal h2{font:600 34px 'Playfair Display',serif;margin:0 0 8px}.modal p{color:#637068;font-size:13px;line-height:1.55}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:22px 0}.choice{border:1px solid #19302825;background:white;border-radius:14px;padding:13px;text-align:left;color:var(--text)}.choice.active{border-color:var(--accent);box-shadow:0 0 0 2px #e06a4d26}.choice b{display:block;font-size:13px}.choice small{color:#7b8781}.field{margin:16px 0}.field label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.field select{width:100%;margin-top:7px;border:1px solid #19302825;background:white;border-radius:13px;padding:12px;color:var(--text)}.primary{width:100%;height:52px;border:0;border-radius:15px;background:var(--text);color:white;font-weight:700}.modal-actions{display:flex;gap:9px}.modal-actions .primary{flex:1}.secondary{height:52px;border:1px solid #19302825;border-radius:15px;background:white;color:var(--text);padding:0 18px}.winner{text-align:center}.winner .cup{font-size:54px}.winner-list{margin:22px 0}.winner-row{display:flex;justify-content:space-between;padding:11px;border-bottom:1px solid #19302818}.winner-row:first-child{font-weight:700;color:var(--accent)}body[data-theme="neon"]{--felt:#1a1040;--felt2:#080616;--accent:#ff4eae;--gold:#66fadd;--card:#eeebff}body[data-theme="pastel"]{--felt:#5d7f7b;--felt2:#334f50;--accent:#e98582;--gold:#ffd395;--card:#fff1e7}body[data-theme="dark"]{--felt:#24262c;--felt2:#101116;--accent:#cf654d;--gold:#cbb280;--card:#e9e5dc}body[data-theme="minimal"]{--felt:#4c5e59;--felt2:#26332f;--accent:#d15c42;--gold:#e1c180;--card:#f4f0e8}@media(max-width:820px){.shell{padding:14px 12px 20px}.brand small{display:none}.pill-btn{display:none}.game-grid{grid-template-columns:1fr;gap:14px}.table-card{min-height:auto;padding:22px 16px 25px;border-radius:25px}.turnline h2{font-size:31px}.dice-stage{min-height:190px;padding:25px 0 15px}.die{border-radius:18%;padding:14%}.roll-btn{height:55px}.score-panel{position:static;max-height:none;border-radius:24px}.sheet{max-height:none}.score-row{min-height:43px}}@media(max-width:430px){.topbar{margin-bottom:12px}.table-card{padding-top:19px}.round-badge{font-size:10px}.round-badge strong{font-size:14px}.dice-stage{gap:5px}.die{--s:calc((100vw - 65px)/5);border-radius:16%}.hold-label{font-size:8px}.setup-grid{grid-template-columns:1fr}.modal{padding:23px}.modal h2{font-size:29px}}@media(orientation:landscape) and (max-height:620px){.shell{padding-top:10px}.topbar{margin-bottom:9px}.game-grid{grid-template-columns:1.2fr .8fr}.table-card{min-height:calc(100vh - 78px);padding:18px 28px}.turnline h2{font-size:29px}.dice-stage{min-height:145px;padding:10px 0}.die{--s:min(12vw,68px)}.roll-help{margin-top:6px}.score-panel{max-height:calc(100vh - 20px);position:sticky}.score-head{padding:15px}.section-label{padding-top:9px}.score-row{min-height:38px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
