@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--ink:#182019;--cream:#f7f4ed;--paper:#fffdf8;--lime:#cbf55c;--lime-dark:#76a31a;--coral:#fb725f;--line:#dcdad1;--muted:#687067}*{box-sizing:border-box}body{min-height:100vh;margin:0;color:var(--ink);background:var(--cream);font-family:Manrope,Arial,sans-serif}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 16% 0%,#e9f8be 0 10%,transparent 31%),radial-gradient(circle at 98% 89%,#fce0c7 0 8%,transparent 25%)}a{color:inherit;text-decoration:none}.brand{font-weight:800;letter-spacing:.16em;font-size:.77rem;display:inline-flex;gap:.55rem;align-items:center}.brand span{color:var(--lime-dark);font-size:1.1rem}.eyebrow{margin:0 0 .85rem;color:var(--lime-dark);font:500 .7rem 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.15em}.lead{color:var(--muted);line-height:1.65;font-size:.95rem}h1{margin:0;font:700 clamp(2.1rem,7vw,4.6rem)/.98 Fraunces,Georgia,serif;letter-spacing:-.055em}h1 em{color:var(--lime-dark);font-style:italic}.home-shell{min-height:100vh;max-width:1100px;padding:clamp(1.4rem,4vw,3.5rem);margin:auto;display:flex;flex-direction:column}.welcome-card{width:min(100%,620px);margin:auto}.welcome-card .lead{max-width:430px;margin:1.4rem 0 2.2rem}.player-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;max-width:510px}.player-picker a{min-height:132px;padding:1rem;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:18px;background:#ffffff88;transition:transform .2s,background .2s,box-shadow .2s}.player-picker b{font:700 3.3rem/1 Fraunces,serif}.player-picker span{color:var(--muted);font-size:.78rem}.player-picker a:hover{transform:translateY(-5px) rotate(-1deg);background:var(--lime);box-shadow:0 10px 0 #a6c74d}.rules-link,.back-link{font-size:.78rem;font-weight:700}.rules-link{display:inline-flex;gap:.45rem;margin-top:2.2rem;border-bottom:1px solid var(--ink);padding-bottom:.24rem}.rules-link span,.primary-link span{font-size:1.2em}.footer-note{color:var(--muted);font:.7rem 'DM Mono',monospace;text-align:center}
.game-shell{min-height:100vh;width:min(100%,900px);margin:auto;padding:max(1.25rem,env(safe-area-inset-top)) clamp(1rem,4vw,2.5rem) max(1.25rem,env(safe-area-inset-bottom));display:flex;flex-direction:column}.game-header,nav{display:flex;align-items:center;justify-content:space-between}.game-header>a:last-child{color:var(--muted);font-size:.76rem;font-weight:700}.game-intro{text-align:center;margin:clamp(1.5rem,4vh,3rem) 0 1.4rem}.game-intro h1{font-size:clamp(1.6rem,5vw,2.6rem)}.scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:.55rem;max-width:640px;width:100%;margin:0 auto}.player-card{position:relative;padding:.85rem .8rem .75rem;background:#ffffff88;border:1px solid var(--line);border-radius:14px;text-align:center;transition:.25s}.player-card.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 7px 0 var(--lime-dark);transform:translateY(-3px)}.turn-dot{display:none;width:.42rem;height:.42rem;background:var(--lime);border-radius:50%;position:absolute;top:.75rem;right:.75rem}.active .turn-dot{display:block}.player-label,.player-card small{display:block;font-size:.62rem;font-weight:700;color:var(--muted)}.active .player-label,.active small{color:#cfd5c9}.player-card strong{display:block;margin:.18rem 0 .1rem;font:700 1.7rem/1 Fraunces,serif}.roll-zone{text-align:center;margin:auto}.turn-status{min-height:1.3rem;color:var(--muted);font-size:.76rem;font-weight:700}.die-stage{height:clamp(128px,25vw,185px);display:grid;place-items:center;perspective:700px}.die{width:clamp(92px,19vw,135px);aspect-ratio:1;position:relative;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:16%;background:linear-gradient(135deg,#fff,#dfdfd7);border-radius:22%;box-shadow:inset -8px -9px 15px #c9c9c1,inset 7px 7px 14px #fff,0 18px 17px #19211638;transform:rotateX(7deg) rotateY(-10deg)}.die:after{content:"";position:absolute;inset:7%;border-radius:17%;border:1px solid #1e1e1914}.die i{width:52%;aspect-ratio:1;border-radius:50%;margin:auto;background:#20271f;box-shadow:inset 2px 2px 2px #52604e,1px 2px 2px #0000004d;visibility:hidden}.face-1 i:nth-child(5),.face-2 i:nth-child(1),.face-2 i:nth-child(9),.face-3 i:nth-child(1),.face-3 i:nth-child(5),.face-3 i:nth-child(9),.face-4 i:nth-child(1),.face-4 i:nth-child(3),.face-4 i:nth-child(7),.face-4 i:nth-child(9),.face-5 i:nth-child(1),.face-5 i:nth-child(3),.face-5 i:nth-child(5),.face-5 i:nth-child(7),.face-5 i:nth-child(9),.face-6 i:nth-child(1),.face-6 i:nth-child(3),.face-6 i:nth-child(4),.face-6 i:nth-child(6),.face-6 i:nth-child(7),.face-6 i:nth-child(9){visibility:visible}.is-rolling .die{animation:throw .72s cubic-bezier(.22,.9,.38,1)}.round-score{display:inline-flex;flex-direction:column;background:var(--paper);padding:.55rem 1.25rem;border:1px solid var(--line);border-radius:99px}.round-score span{color:var(--muted);font-size:.61rem;font-weight:700}.round-score strong{font:700 1.5rem/1.15 Fraunces,serif}.actions{display:grid;grid-template-columns:1.15fr .85fr;gap:.6rem;width:min(100%,440px);margin:1.4rem auto .7rem}button{font:700 .82rem Manrope,sans-serif;cursor:pointer;border:0;border-radius:13px;min-height:54px;transition:transform .15s,opacity .15s}button:not(:disabled):active{transform:translateY(3px)}button:disabled{cursor:not-allowed;opacity:.45}.roll-button{background:var(--ink);color:#fff;box-shadow:0 5px 0 #060a06}.roll-icon{display:inline-block;font-size:1.2em}.bank-button{background:var(--lime);color:var(--ink);box-shadow:0 5px 0 #a6cb35}.new-game{display:block;margin:auto;min-height:32px;background:transparent;color:var(--muted);font-size:.68rem;text-decoration:underline}@keyframes throw{0%{transform:translateY(0) rotateX(7deg) rotateY(-10deg)}48%{transform:translateY(-40px) rotateX(420deg) rotateY(300deg) rotateZ(120deg) scale(1.07)}100%{transform:translateY(0) rotateX(367deg) rotateY(350deg) rotateZ(360deg)}}
.rules-shell{max-width:850px;padding:clamp(1.4rem,4vw,3.5rem);margin:auto}.rules-card{max-width:620px;margin:clamp(3rem,10vh,6rem) auto 0}.rules-card .lead{margin:1.4rem 0 1.8rem}.rules-list{list-style:none;padding:0;counter-reset:rule}.rules-list li{counter-increment:rule;display:grid;grid-template-columns:34px 1fr;gap:.15rem .7rem;margin:.8rem 0;padding:1rem;background:#ffffff8f;border:1px solid var(--line);border-radius:13px}.rules-list li:before{content:counter(rule);grid-row:span 2;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--lime);font:700 .8rem Fraunces,serif}.rules-list b{font-size:.8rem}.rules-list span{color:var(--muted);font-size:.76rem;line-height:1.55}.rules-card aside{margin:1.5rem 0;padding:1rem;border-left:4px solid var(--coral);color:var(--muted);font-size:.78rem;line-height:1.55}.primary-link{display:flex;justify-content:space-between;align-items:center;padding:1.05rem 1.2rem;border-radius:13px;color:var(--ink);background:var(--lime);font-size:.78rem;font-weight:800;box-shadow:0 6px 0 #a6cb35}@media(max-width:430px){.home-shell{padding:1.25rem}.welcome-card{margin:auto 0}.player-picker a{min-height:112px}.player-picker b{font-size:2.7rem}.game-intro{margin:1.2rem 0}.scoreboard{grid-template-columns:repeat(2,1fr)}.player-card{padding:.65rem .4rem}.game-page[data-players="3"] .player-card:last-child{grid-column:1/-1;width:50%;justify-self:center}.die-stage{height:144px}.actions{margin-top:1rem}.rules-card{margin-top:3.5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
