*,*:before,*:after{box-sizing:border-box}*{margin:0}:root{color:#1d2520;background:#f4f0e7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{min-width:320px;min-height:100dvh;background:linear-gradient(135deg,rgba(255,255,255,.64),transparent 42%),linear-gradient(160deg,#f7f1e3,#dcead7 42%,#cdd8db)}button,input,select{font:inherit}button{border:0}button:disabled{cursor:not-allowed;opacity:.45}#root{min-height:100dvh}.home-view,.setup-view,.winner-view,.game-layout{width:min(1120px,100%);min-height:100dvh;margin:0 auto;padding:clamp(16px,4vw,32px)}.home-view,.setup-view,.winner-view{display:grid;align-items:center}.home-hero,.setup-panel,.winner-panel,.play-surface,.scoreboard{border:1px solid rgba(29,37,32,.12);background:#fffcf5d6;box-shadow:0 18px 45px #1f302c29;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.home-hero,.setup-panel,.winner-panel{width:min(680px,100%);margin:0 auto;padding:clamp(24px,7vw,52px);border-radius:8px;text-align:center}.hero-dice{display:flex;justify-content:center;gap:clamp(10px,3vw,18px);margin-bottom:26px}.hero-dice span{display:grid;width:clamp(56px,16vw,92px);aspect-ratio:1;place-items:center;border-radius:8px;color:#fffdf7;background:#1f6f63;box-shadow:inset 0 -7px #0000002e,0 11px 22px #1d252038;font-size:clamp(1.55rem,7vw,3.1rem);font-weight:900}.hero-dice span:nth-child(2){background:#a43f3f;transform:translateY(-10px) rotate(4deg)}.hero-dice span:nth-child(3){background:#2f5f94;transform:rotate(-5deg)}.eyebrow{color:#5c6b3b;font-size:.78rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}h1{margin-top:6px;color:#16251f;font-size:clamp(2.25rem,9vw,5.2rem);line-height:.95;letter-spacing:0}.hero-copy{max-width:500px;margin:18px auto 0;color:#526159;font-size:clamp(1rem,2.6vw,1.2rem)}.home-actions,.controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}.btn,.icon-text-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:0 16px;cursor:pointer;font-weight:800;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.btn:active,.icon-text-button:active,.die:active{transform:translateY(1px)}.btn-primary{color:#fffdf7;background:#1f6f63;box-shadow:0 5px #155249}.btn-secondary{color:#16251f;background:#f7c35f;box-shadow:0 5px #c28c26}.btn-quiet,.icon-text-button{color:#24312c;background:#fffcf5bd;box-shadow:inset 0 0 0 1px #1d252021}.btn-danger{color:#fffdf7;background:#a43f3f;box-shadow:0 5px #743131}.wide{width:100%}.setup-panel{text-align:left}.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}.section-heading h1{font-size:clamp(2rem,7vw,3.3rem)}.field{display:grid;gap:8px;color:#44524a;font-weight:800;text-align:left}.field input,.field select{min-height:48px;width:100%;border:1px solid rgba(29,37,32,.18);border-radius:8px;padding:0 14px;color:#16251f;background:#fffdf7}.name-grid{display:grid;gap:14px;margin:18px 0}.setup-actions{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:10px}.setup-actions .btn{width:100%}.game-layout{display:grid;align-content:start;gap:16px}.game-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-radius:8px;padding:clamp(16px,4vw,24px);color:#fffdf7;background:#16251f}.game-header h1{color:#fffdf7;font-size:clamp(2rem,7vw,4rem)}.header-action-group{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.settings-header-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:0 14px;color:#fffdf7;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff2e;cursor:pointer;font-weight:850}.turn-breakdown span{color:#fffdf7bd;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.turn-breakdown strong{font-size:clamp(1.5rem,5vw,2.6rem)}.status-strip,.warning-message,.zilch-message,.hot-dice-message{border-radius:8px;padding:12px 14px;font-weight:850}.status-strip{color:#1f3b35;background:#f7c35f8a}.warning-message{color:#6b3a13;background:#ffe2ac}.zilch-message{color:#fffdf7;background:#a43f3f;font-size:clamp(1.4rem,7vw,3rem);text-align:center}.hot-dice-message{color:#103f38;background:#9de1bb;text-align:center}.board-grid{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.65fr);gap:16px;align-items:start}.scoreboard,.play-surface{border-radius:8px;padding:clamp(14px,3vw,20px)}.scoreboard-title,.score-row,.dice-heading,.turn-breakdown{display:flex;align-items:center;justify-content:space-between;gap:10px}.scoreboard-title{color:#44524a;font-weight:900;margin-bottom:12px}.score-list,.final-scores{display:grid;gap:10px}.score-row{position:relative;isolation:isolate;overflow:hidden;min-height:46px;border-radius:8px;padding:0 12px;color:#1d25209e;background:#edf5ee;opacity:.56;transition:min-height .16s ease,opacity .16s ease,transform .16s ease}.score-row:before{content:"";position:absolute;inset:0 auto 0 0;z-index:-1;width:var(--score-progress, 0%);border-radius:inherit;background:#8fc5a7;opacity:.42;transition:width .24s ease}.score-row.active{min-height:58px;color:#111815;background:#b9d4c9;opacity:1;transform:scale(1.015);box-shadow:0 8px 18px #1f6f631f}.score-row.active:before{background:#1f6f63;opacity:1}.score-row span,.score-row strong,.score-value,.score-name-edit{position:relative;z-index:1}.score-name{display:inline-flex;min-width:0;align-items:center;gap:7px}.score-edit-button,.score-name-edit button{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:999px;color:inherit;background:#fffdf775;cursor:pointer}.score-edit-button{opacity:.78}.score-name-edit{display:grid;grid-template-columns:minmax(80px,1fr) auto auto;align-items:center;gap:5px;width:min(230px,58%)}.score-name-edit input{min-width:0;height:34px;border:1px solid rgba(29,37,32,.18);border-radius:8px;padding:0 9px;color:#16251f;background:#fffdf7;font:inherit;font-weight:850}.score-value{display:grid;justify-items:end;gap:1px}.score-value small{color:#1d25209e;font-size:.7rem;font-weight:850}.score-row.active span,.score-row.active strong{color:#111815;font-size:1.12rem;font-weight:900}.score-row.active .score-value small{color:#111815bd}.play-surface{display:grid;gap:14px}.turn-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;border-radius:8px;padding:10px;background:#2f5f94}.turn-breakdown div{display:grid;gap:4px;border-radius:8px;padding:10px 12px;color:#fffdf7}.turn-breakdown div:first-child{background:#ffffff1a}.turn-breakdown .picked-active{background:#1f6f63}.turn-breakdown strong{line-height:1}.dice-area{display:grid;gap:18px}.dice-heading{margin-bottom:10px}.dice-heading h2{color:#22332d;font-size:1rem}.dice-heading span{color:#64736b;font-size:.86rem;font-weight:800}.dice-grid{display:grid;grid-template-columns:repeat(6,minmax(42px,1fr));gap:8px}.kept-grid{opacity:.88}.empty-dice{grid-column:1 / -1;min-height:72px;display:grid;place-items:center;border:1px dashed rgba(29,37,32,.28);border-radius:8px;color:#68766f;text-align:center;padding:12px}.empty-dice.hot-empty{border-color:#1f6f6373;color:#103f38;background:#9de1bb38;font-weight:850}.die{aspect-ratio:1;min-width:0;border-radius:8px;padding:18%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:10%;background:#fffdf7;box-shadow:inset 0 -5px #1d25201f,0 8px 18px #1d252024;cursor:pointer}.die.selected{background:#f7c35f;outline:4px solid #1f6f63}.die.kept{background:#e2efe7;cursor:default}.die.dimmed{opacity:.42;filter:saturate(.55);box-shadow:inset 0 -4px #1d25201a}.die.selected{opacity:1;filter:none}.pip{border-radius:999px}.pip.visible{background:#16251f}.controls{justify-content:stretch}.controls .btn{flex:1 1 180px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:18px;background:#0d181485}.settings-modal{width:min(460px,100%);max-height:min(720px,calc(100dvh - 36px));display:grid;overflow:hidden;border:1px solid rgba(29,37,32,.14);border-radius:12px;padding:18px;color:#1d2520;background:#fffdf7;box-shadow:0 24px 60px #0d181447}.settings-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.settings-modal h2{margin-top:2px;color:#16251f;font-size:1.8rem;line-height:1}.modal-close{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;color:#24312c;background:#1d252012;cursor:pointer}.settings-actions{display:grid;gap:10px}.settings-actions .btn{width:100%;justify-content:flex-start}.rules-panel{display:grid;min-height:0;gap:14px}.rules-scroll{display:grid;max-height:min(520px,calc(100dvh - 190px));overflow-y:auto;gap:14px;padding-right:4px}.rules-scroll::-webkit-scrollbar{width:8px}.rules-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#1f6f6359}.rules-panel section{border-radius:10px;padding:12px;background:#1f6f6314}.rules-panel h3{margin-bottom:6px;color:#16251f;font-size:1rem}.rules-panel p,.rules-panel li{color:#526159;line-height:1.4}.rules-panel ul{display:grid;gap:5px;padding-left:20px}.score-rules{display:grid;gap:8px}.score-rules div{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:12px;border-radius:8px;padding:8px 10px;background:#fffdf7b8}.score-rules span{color:#24312c;font-weight:850}.score-rules strong{flex-shrink:0;border-radius:999px;padding:4px 9px;color:#103f38;background:#9de1bb6b;font-size:.86rem}.confirm-message{color:#526159;font-size:1rem;line-height:1.45}.confirm-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.confirm-actions .btn{width:100%}.winner-panel svg{color:#c28c26;margin-bottom:10px}.winner-panel h1{margin-bottom:24px}.final-scores{max-width:430px;margin:0 auto}@media(max-width:760px){.board-grid{grid-template-columns:1fr}}@media(max-width:520px){.home-view,.setup-view,.winner-view,.game-layout{padding:12px}.dice-grid{grid-template-columns:repeat(3,minmax(0,82px));justify-content:center;gap:7px}.die{width:100%;max-width:82px;justify-self:center;padding:17%}.dice-area{gap:12px}.dice-heading{margin-bottom:8px}.game-header h1{font-size:clamp(2rem,14vw,3.3rem)}.settings-header-button span{display:none}.settings-header-button{min-width:46px;padding:0}.controls{display:grid;gap:18px}.controls .btn{width:100%}}
