:root{color:#162016;font-synthesis:none;text-rendering:optimizelegibility;background:#f4efe5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{-webkit-tap-highlight-color:transparent;min-width:320px;margin:0}button,input,textarea{font:inherit}fieldset{border:1px solid #d8c8ad;border-radius:18px;gap:.75rem;margin:0;padding:.85rem;display:grid}legend{color:#5c4d3c;padding:0 .35rem;font-weight:850}button{color:#fff;cursor:pointer;touch-action:manipulation;background:#1f6b45;border:0;border-radius:999px;min-height:48px;padding:.8rem 1rem;font-weight:750;transition:transform .16s,opacity .16s}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.42}button.secondary{color:#2d2418;background:#e2d5be}.shell{gap:1rem;max-width:1180px;margin:0 auto;padding:1rem;display:grid}.narrow-shell,.splash-shell{place-content:center;max-width:720px;min-height:100svh}.splash-card,.ready-card,.game-setup{gap:1rem;display:grid}.splash-card{text-align:center;position:relative;overflow:hidden}.splash-card:before{content:"";z-index:0;background:radial-gradient(circle,#f9d77eb3,#0000 58%);width:18rem;height:18rem;position:absolute;top:-9rem;left:50%;transform:translate(-50%)}.splash-card>*{position:relative}.logo-mark{font-size:4rem;line-height:1}.splash-card h1,.ready-card h1,.game-setup h1{margin:0;font-size:clamp(3rem,16vw,6rem);line-height:.9}.tagline{color:#1f6b45;margin:-.25rem 0 0;font-size:clamp(1.35rem,5vw,2.2rem);font-weight:900}.splash-actions{gap:.75rem;display:grid}.card{background:#fffcf6eb;border:1px solid #3e2d161f;border-radius:28px;padding:1.25rem;box-shadow:0 20px 60px #261c0f14}.hero{background:radial-gradient(circle at 0 0,#f9d77e,#0000 34%),#fffaf1;justify-content:space-between;align-items:center;gap:1rem;display:flex}.hero h1{margin:.1rem 0 .75rem;font-size:clamp(2.3rem,7vw,5rem);line-height:.9}.hero p{color:#554838;max-width:58ch}.eyebrow,.status{color:#8b5d1f;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:850}.round-meter{aspect-ratio:1;color:#fff8ea;text-align:center;background:#1f6b45;border-radius:999px;place-items:center;min-width:190px;padding:1.2rem;display:grid}.round-meter strong{font-size:4.2rem;line-height:.85}.layout,.players{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.play-shell{grid-template-rows:auto minmax(0,1fr);height:100svh;overflow:hidden}.view-toggle{background:#e2d5be;border-radius:999px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.35rem;display:grid}.view-toggle button{min-height:44px}.dashboard-view,.scoreboard-view{gap:1rem;min-height:0;display:grid;overflow:hidden}.dashboard-view{grid-template-rows:auto minmax(0,1fr)}.dashboard-main-grid{grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:1rem;min-height:0;display:grid}.dashboard-side-stack,.scoreboard-view{overflow:auto}.dashboard-side-stack{gap:1rem;min-height:0;display:grid}.section-title-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.compact-scoreboard,.compact-scoreboard ol{gap:.65rem;display:grid}.compact-scoreboard h2,.compact-scoreboard ol{margin:0}.compact-scoreboard ol{padding:0;list-style:none}.compact-scoreboard li{background:#fffaf1;border:1px solid #d8c8adcc;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;gap:.15rem .75rem;padding:.7rem;display:grid}.compact-scoreboard li.banked{border-color:#1f6b4573}.compact-scoreboard li.busted{opacity:.68}.compact-scoreboard li span{text-overflow:ellipsis;white-space:nowrap;font-weight:850;overflow:hidden}.compact-scoreboard li strong{color:#1f6b45;font-size:1.35rem}.compact-scoreboard li small{color:#6d6254;grid-column:1/-1}.setup,.controls,.history{gap:1rem;display:grid}.dashboard-main-grid>.controls{min-height:0;overflow:auto}.setup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.player-name-list{gap:.65rem;display:grid}.player-name-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.player-name-row>span{color:#fff8ea;background:#1f6b45;border-radius:999px;place-items:center;width:2rem;height:2rem;font-weight:900;display:grid}.order-buttons{gap:.3rem;display:flex}button.small{border-radius:12px;min-height:42px;padding:.45rem .65rem}.turn-order{background:#fffaf1;border:1px solid #d8c8ad;border-radius:18px;gap:.35rem;margin:0;padding:1rem 1rem 1rem 2.25rem;display:grid}.setup label{color:#5c4d3c;gap:.4rem;font-weight:700;display:grid}.radio-option{cursor:pointer;background:#fffaf1;border:1px solid #d8c8adcc;border-radius:16px;align-items:center;padding:.75rem;gap:.75rem!important;display:flex!important}.radio-option input{accent-color:#1f6b45;width:1.2rem;height:1.2rem}.radio-option span{gap:.15rem;display:grid}.radio-option strong{color:#1f1b14}textarea,input{color:#1f1b14;background:#fffaf1;border:1px solid #d8c8ad;border-radius:16px;padding:.75rem}.control-header,.button-row,.scoreline,.player>div:first-child{justify-content:space-between;align-items:center;gap:1rem;display:flex}.manual-roll{gap:1rem;display:grid}.manual-roll-prompt{color:#5c4d3c;margin:0;font-weight:850}.manual-total-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;display:grid}.manual-total-grid button{border-radius:18px;min-height:58px;padding:.6rem;font-size:1.25rem}.dice span.total-die{width:auto;min-width:4.4rem}.roll-on-screen-pinned{order:2;min-height:58px;margin-top:.25rem;font-size:1.08rem}.control-header h2,.player h3,.history h2,.setup h2{margin:0}.control-header p,.status,.history p{margin:.25rem 0 0}.turn-dice-showcase{background:radial-gradient(circle at 18% 20%,#f9d77eb3,#0000 36%),linear-gradient(135deg,#fff8ea,#f4e4c5);border:2px solid #1f6b4538;border-radius:28px;grid-template-columns:minmax(8rem,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff8c,0 1rem 2.2rem #261c0f1f}.turn-dice-showcase.is-rolling:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffffc7,#0000 62%);animation:.22s ease-in-out infinite alternate roll-flash;position:absolute;inset:-30%}.dice-copy{z-index:1;gap:.25rem;display:grid;position:relative}.dice-copy span{color:#8b5d1f;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;font-weight:900}.dice-copy strong{color:#1f6b45;font-size:clamp(1.5rem,4vw,2.45rem);line-height:.95}.dice{perspective:900px;z-index:1;flex:none;justify-content:center;gap:1rem;display:flex;position:relative}.dice.dice-rolling{animation:.12s ease-in-out infinite alternate dice-tray-shake}.dice.dice-settling{animation:.42s cubic-bezier(.2,1.35,.32,1) both dice-tray-land}.dice span{background:linear-gradient(145deg,#fff 0%,#fff8ea 68%,#eadfc9 100%);border:5px solid #1f6b45f5;border-radius:26px;place-items:center;width:clamp(5.8rem,10vw,7.3rem);height:clamp(5.8rem,10vw,7.3rem);font-size:2.8rem;font-weight:900;display:grid;box-shadow:inset -.32rem -.38rem .7rem #563e1c33,inset .18rem .18rem .44rem #fffffff5,0 1rem 1.8rem #261c0f3d}.die-face{transform-style:preserve-3d;will-change:transform;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);padding:.9rem;transform:rotateX(0)rotateY(0)rotate(0)}.die-face.die-rolling{animation:.24s cubic-bezier(.36,1.18,.46,1) both die-tumble}.die-face.die-rolling.die-2{animation-name:die-tumble-reverse}.die-face.die-settling{animation:.42s cubic-bezier(.19,1.42,.35,1) both die-settle}.die-face.die-settling.die-2{animation-name:die-settle-reverse}.pip{background:0 0;border-radius:999px;place-self:center;width:clamp(.82rem,1.45vw,1.08rem);height:clamp(.82rem,1.45vw,1.08rem);transition:background 80ms,transform 80ms;display:block;transform:scale(.35)}.pip.visible{background:radial-gradient(circle at 35% 35%,#4a4134,#17130e 72%);transform:scale(1);box-shadow:inset .06rem .08rem .08rem #00000038,0 .02rem .04rem #fff6}@keyframes dice-tray-shake{0%{transform:rotate(-7deg)translate(-7px,5px)scale(1.03)}to{transform:rotate(7deg)translate(7px,-7px)scale(1.08)}}@keyframes roll-flash{0%{opacity:.1;transform:translate(-8%)rotate(-8deg)}to{opacity:.65;transform:translate(8%)rotate(8deg)}}@keyframes dice-tray-land{0%{transform:translateY(-.9rem)scale(1.06)}62%{transform:translateY(.28rem)scale(.98)}to{transform:translateY(0)scale(1)}}@keyframes die-tumble{0%{transform:translate(-.35rem,-.75rem)rotateX(0)rotateY(0)rotate(-18deg)scale(.94)}48%{transform:translate(.32rem,.22rem)rotateX(185deg)rotateY(125deg)rotate(22deg)scale(1.09)}to{transform:translate(-.12rem,-.08rem)rotateX(390deg)rotateY(210deg)rotate(-7deg)scale(1.02)}}@keyframes die-tumble-reverse{0%{transform:translate(.35rem,-.6rem)rotateX(0)rotateY(0)rotate(18deg)scale(.94)}48%{transform:translate(-.28rem,.2rem)rotateX(-175deg)rotateY(-135deg)rotate(-24deg)scale(1.09)}to{transform:translate(.12rem,-.08rem)rotateX(-390deg)rotateY(-210deg)rotate(7deg)scale(1.02)}}@keyframes die-settle{0%{transform:translateY(-1rem)rotate(-10deg)scale(1.08)}58%{transform:translateY(.22rem)rotate(5deg)scale(.96)}to{transform:translateY(0)rotate(0)scale(1)}}@keyframes die-settle-reverse{0%{transform:translateY(-.8rem)rotate(11deg)scale(1.08)}58%{transform:translateY(.22rem)rotate(-5deg)scale(.96)}to{transform:translateY(0)rotate(0)scale(1)}}.dice-overlay{color:#fff8ea;padding:max(1.1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));z-index:20;background:radial-gradient(circle at 28% 18%,#60be7947,#0000 30%),radial-gradient(circle at 68% 76%,#052a1873,#0000 38%),linear-gradient(135deg,#002612f7,#0c5b2dfa);grid-template-rows:auto minmax(0,1fr);align-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.dice-overlay.total{animation:1.15s ease-in forwards overlay-fade-home}.felt-grain{mix-blend-mode:soft-light;opacity:.5;pointer-events:none;background-image:radial-gradient(circle,#ffffff1f 0 1px,#0000 1.5px),repeating-linear-gradient(32deg,#ffffff0b 0 1px,#0000 1px 7px);background-size:18px 18px,100% 100%;position:absolute;inset:0}.overlay-copy{text-align:center;text-shadow:0 .25rem 1rem #00000052;z-index:1;justify-self:center;position:relative}.overlay-copy span{color:#f9d77e;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;font-weight:950}.overlay-copy strong{margin-top:.2rem;font-size:clamp(1.75rem,7vw,4.8rem);line-height:.95;display:block}.dice-table{perspective:1100px;z-index:1;place-items:center;min-height:22rem;display:grid;position:relative}.roll-total-reveal{opacity:0;pointer-events:none;text-align:center;text-shadow:0 .35rem 1.4rem #00000073;z-index:2;position:absolute;top:52%;left:50%;transform:translate(-50%,-42%)scale(.82)}.roll-total-reveal span{color:#f9d77e;letter-spacing:.18em;text-transform:uppercase;font-size:clamp(.9rem,3vw,1.4rem);font-weight:950;display:block}.roll-total-reveal strong{font-size:clamp(6rem,26vw,15rem);line-height:.8;display:block}.dice-overlay.total .roll-total-reveal{animation:1.15s ease-out forwards total-slow-reveal}.dice-overlay.total .dice-table,.dice-overlay.total .overlay-copy{animation:1.15s ease-out forwards dice-table-make-room}.dice-table:before{content:"";background:radial-gradient(#00000073,#0000 62%);border-radius:50%;width:min(76vw,34rem);height:min(52vw,20rem);position:absolute;top:52%;transform:translateY(-50%)}.cinematic-die{--die-size:clamp(4.7rem, 15vw, 7.8rem);animation:cinematic-die-path var(--roll-duration) cubic-bezier(.16, .76, .2, 1) forwards;height:var(--die-size);left:calc(50% - (var(--die-size) / 2));top:calc(50% - (var(--die-size) / 2));transform-style:preserve-3d;width:var(--die-size);will-change:transform;position:absolute}.die-cube{animation:cinematic-cube-spin var(--roll-duration) cubic-bezier(.16, .78, .18, 1) forwards;height:100%;transform-style:preserve-3d;width:100%;position:relative}.cube-face{backface-visibility:hidden;background:linear-gradient(145deg,#fff 0%,#fff9ee 62%,#d9ccb5 100%);border:clamp(3px,.8vw,6px) solid #f5efe2fa;border-radius:20%;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);padding:15%;display:grid;position:absolute;inset:0;box-shadow:inset -.35rem -.45rem .8rem #432d123d,inset .22rem .18rem .45rem #fffffff2}.cube-face .pip{width:clamp(.48rem,1.55vw,.9rem);height:clamp(.48rem,1.55vw,.9rem)}.cube-face-1{transform:translateZ(calc(var(--die-size) / 2))}.cube-face-2{transform:rotateY(90deg) translateZ(calc(var(--die-size) / 2))}.cube-face-3{transform:rotateX(90deg) translateZ(calc(var(--die-size) / 2))}.cube-face-4{transform:rotateX(-90deg) translateZ(calc(var(--die-size) / 2))}.cube-face-5{transform:rotateY(-90deg) translateZ(calc(var(--die-size) / 2))}.cube-face-6{transform:rotateY(180deg) translateZ(calc(var(--die-size) / 2))}@keyframes cinematic-die-path{0%{filter:blur(.6px);transform:translate3d(var(--start-x), var(--start-y), 10rem) rotateZ(-31deg) scale(.82)}21%{filter:blur(1px);transform:translate3d(var(--bounce-1-x), var(--bounce-1-y), 13rem) rotateZ(50deg) scale(1.14)}27%{filter:blur(.35px);transform:translate3d(calc(var(--bounce-1-x) * .94), calc(var(--bounce-1-y) + 2vh), 9rem) rotateZ(68deg) scale(1.05)}47%{filter:blur(.85px);transform:translate3d(var(--bounce-2-x), var(--bounce-2-y), 8rem) rotateZ(-42deg) scale(1.09)}50%{filter:blur(.25px);transform:translate3d(calc(var(--bounce-2-x) * .92), calc(var(--bounce-2-y) - 1vh), 5.5rem) rotateZ(-58deg) scale(1.01)}70%{filter:blur(.25px);transform:translate3d(var(--drift-x), var(--drift-y), 2.5rem) rotateZ(22deg) scale(1.02)}82%{filter:blur();transform:translate3d(calc(var(--end-x) + 2vw), calc(var(--end-y) + 1.35rem), 0) rotateZ(10deg) scale(.95)}89%{transform:translate3d(calc(var(--end-x) - 1vw), calc(var(--end-y) - .9rem), .7rem) rotateZ(calc(var(--land-rotation) * -.45)) scale(1.02)}95%{transform:translate3d(calc(var(--end-x) + .35vw), calc(var(--end-y) + .28rem), .12rem) rotateZ(calc(var(--land-rotation) * .65)) scale(.992)}to{filter:blur();transform:translate3d(var(--end-x), var(--end-y), 0) rotateZ(var(--land-rotation)) scale(1)}}@keyframes cinematic-cube-spin{0%{transform:rotateX(55deg)rotateY(-35deg)rotate(18deg)}24%{transform:rotateX(calc(var(--spin-x) * .34)) rotateY(calc(var(--spin-y) * .32)) rotateZ(calc(var(--spin-z) * .28))}50%{transform:rotateX(calc(var(--spin-x) * .67)) rotateY(calc(var(--spin-y) * .64)) rotateZ(calc(var(--spin-z) * -.58))}78%{transform:rotateX(var(--spin-x)) rotateY(var(--spin-y)) rotateZ(var(--spin-z))}90%{transform:rotateX(calc(var(--spin-x) * 1.08)) rotateY(calc(var(--spin-y) * 1.06)) rotateZ(calc(var(--spin-z) * 1.04))}96%{transform:rotateX(calc(var(--spin-x) * 1.11)) rotateY(calc(var(--spin-y) * 1.09)) rotateZ(calc(var(--spin-z) * 1.07))}to{transform:var(--final-facing)}}@keyframes total-slow-reveal{0%{opacity:0;transform:translate(-50%,-36%)scale(.74)}38%,72%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-56%)scale(1.05)}}@keyframes dice-table-make-room{0%,24%{opacity:1;transform:translateY(0)scale(1)}to{opacity:.26;transform:translateY(12vh)scale(.72)}}@keyframes overlay-fade-home{0%,72%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.035)}}.banner{color:#6d4511;background:#fff0cf;border-radius:18px;padding:.85rem;font-weight:750}.banner.win{color:#15582d;background:#d9f6df}.player{gap:1rem;display:grid}.player.banked{border-color:#1f6b4573}.player.busted{opacity:.68}.scoreline strong{font-size:2rem}.scoreline strong.leader{color:#1f6b45}.scoreline.muted{color:#6d6254}.history ol{gap:.45rem;margin:0;padding-left:1.25rem;display:grid}@media (width<=720px){.shell{padding:max(.75rem, env(safe-area-inset-top)) .75rem max(1rem, env(safe-area-inset-bottom));gap:.75rem}.card{border-radius:22px;padding:1rem}.hero{flex-direction:column;align-items:stretch}.hero h1{font-size:clamp(2.15rem,15vw,3.5rem)}.hero p{margin-bottom:0}.round-meter{aspect-ratio:auto;border-radius:22px;min-width:0;padding:.9rem}.round-meter strong{font-size:3.5rem}.layout,.players,.setup-grid,.dashboard-main-grid{grid-template-columns:1fr}.dashboard-main-grid{overflow:auto}.dashboard-main-grid>.controls,.dashboard-side-stack{overflow:visible}.splash-shell,.narrow-shell{place-content:stretch;min-height:100svh}.controls{top:max(.5rem, env(safe-area-inset-top));z-index:2;position:sticky}.button-row{flex-direction:column;align-items:stretch}.primary-actions button:first-child{min-height:58px;font-size:1.2rem}.control-header{grid-template-columns:1fr;align-items:stretch;display:grid}.turn-dice-showcase{grid-template-columns:1fr;padding:.85rem}.dice{gap:1rem;width:100%}.dice span{border-radius:22px;width:clamp(5.4rem,28vw,6.7rem);height:clamp(5.4rem,28vw,6.7rem)}.pip{width:clamp(.76rem,3.5vw,.98rem);height:clamp(.76rem,3.5vw,.98rem)}.manual-total-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.player{gap:.75rem}.player button,.setup button,.manual-roll button,.splash-actions button,.ready-card button{width:100%}textarea,input{font-size:16px}}@media (width<=420px){.control-header,.scoreline,.player>div:first-child{gap:.5rem}.history{font-size:.95rem}}
