/* Carved terraces ground each row; settings and motion remain secondary to the stones. */
body{background:linear-gradient(158deg,#fff9eb40,transparent 70%)}
#topbar{position:relative;gap:1.4rem}.top-settings{display:flex;align-items:center;gap:1.1rem;margin-left:auto}.top-settings label{font-size:.74rem}.top-volume{display:grid;grid-template-columns:1fr auto;gap:0 .5rem;min-width:100px;max-width:125px}.top-volume output{color:var(--muted);font-weight:400;min-width:30px;text-align:right}.top-volume input{grid-column:1/-1;width:115px;min-height:20px;padding:0;margin:.2rem 0 0;accent-color:var(--burgundy);cursor:pointer}.top-calm{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.top-calm input{width:18px;min-height:18px;margin:0;accent-color:var(--burgundy)}.top-light select{font-size:.78rem;min-width:85px;padding:.5rem}.top-settings button{font-size:.78rem;background:none}.settings-menu{display:none}nav{flex:none}.connection{display:none}.wordmark{flex:none}
.welcome-quarry{position:relative}.welcome #quarry-stage{filter:drop-shadow(0 12px 8px #54382314)}.welcome h1{color:#781a35;text-shadow:0 2px 0 #ffffff80}.welcome-copy{padding-left:.2rem}.menu-actions .primary{box-shadow:0 3px 0 #59152b}.menu-actions button{border-radius:5px}.welcome-detail{font-size:1.03rem}
.game{padding-top:1.4rem}.table-top{margin-bottom:1.1rem}.player.active{box-shadow:0 3px 0 #791b361c}.player{position:relative}.avatar{position:relative}.player.active .avatar:after{content:"";position:absolute;inset:-5px;border:2px solid var(--burgundy);border-radius:50%;animation:turn-ring 3.2s ease-in-out infinite;pointer-events:none}.turn-arrow{font-size:1.15rem;line-height:1;color:var(--burgundy);animation:turn-arrow 2.6s ease-in-out infinite}.turn-mark{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--burgundy);vertical-align:middle}.banner-arrow{display:inline-block!important;flex:none!important;font-size:1.5rem!important;margin-right:.6rem;line-height:1;animation:turn-arrow 2.6s ease-in-out infinite}.opponent-turn .banner-arrow{color:var(--burgundy)}#turn-banner{position:relative;box-shadow:0 2px 0 #a8885938}#turn-banner.your-turn{box-shadow:0 3px 0 #5d152b33}#turn-banner>strong{display:flex;align-items:center}.scoring-cards{gap:.9rem}.scoring-card{transition:transform .2s,box-shadow .2s}.scoring-card:hover:not(:disabled){transform:translateY(-3px) rotate(-.4deg);background:var(--paper);box-shadow:0 6px 10px #4a2e2222}.scoring-card:nth-child(even):hover{rotate:.4deg}.disc{border-color:#493228;border-width:1px}.quarry-area .area-heading{padding:0 .2rem}#quarry-stage{height:400px}.quarry-tooltip{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);padding:.45rem .8rem;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:4px;white-space:nowrap;font-size:.75rem;pointer-events:none;box-shadow:0 2px 6px #38291d15}.camera-controls{gap:.4rem}.camera-controls button{border-color:#a68a65;background:#f9ecd6;box-shadow:0 2px 0 #c0a27666}.quarry-tray-controls{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border-top:1px solid #b29a7a66;padding-top:.7rem;margin-top:1.15rem}.quarry-tray-controls button{background:none;font-size:.8rem}.quarry-tray-controls span{font-size:.76rem;color:var(--muted)}.all-stones{margin:.8rem 0 1rem}.stone-layer{display:grid;grid-template-columns:54px minmax(0,1fr);gap:.5rem;align-items:start;margin:.65rem 0}.stone-layer>strong{font-size:.68rem;color:var(--muted);padding-top:1rem}.stone-layer>div{display:flex;gap:4px;flex-wrap:wrap}.stone-layer .stone-button{padding:3px;min-width:40px;min-height:40px;position:relative}.stone-layer .die{width:34px;height:34px}.stone-layer .stone-button.locked{opacity:1}.stone-layer .stone-button.locked .die{box-shadow:inset 0 2px 2px #ffffff4a,inset -2px -3px 2px #00000028,0 2px 0 #68482c35}.stone-layer .stone-button.removable{border:2px solid var(--green)}.availability-mark{position:absolute;right:-3px;bottom:-4px;width:15px;height:15px;background:var(--green);color:white;border-radius:50%;font-size:10px;line-height:15px}.stone-layer .color-mark{font-size:6px}.available-dice .stone-button{transition:border-color .16s,transform .16s}.available-dice .stone-button:hover .die{transform:translateY(-3px)}
.pyramid-area{position:relative}.pyramid{isolation:isolate;padding-top:1.8rem}.pyramid-row{position:relative;min-height:calc(var(--die) + 17px)}.row-stones{position:relative}.row-stones:before{content:"";position:absolute;width:calc(var(--count)*var(--die) + (var(--count) - 1)*7px + 16px);height:calc(var(--die) + 11px);left:50%;top:-4px;transform:translateX(-50%);background:linear-gradient(#e7cca3,#d6af79);border:1px solid #a87c4899;border-bottom:5px solid #bf905c;box-shadow:0 3px 2px #69472612;border-radius:4px;z-index:-1}.cell{box-shadow:inset 0 1px 3px #79563222}.cell.occupied{box-shadow:none}.cell.legal{border-style:dashed;border-color:#337344}.cell.legal .empty-stone{background:linear-gradient(#f4e7cc,#e2d0a9)}.cell.legal:hover .empty-stone{background:#d8e2bf}.skill-token{border-bottom-width:4px;box-shadow:0 2px 0 #5a7e8c22}.goal-token{border-bottom-width:4px;box-shadow:0 2px 0 #93622c22}.goal-token.met b{font-weight:900}.goal-token:hover:not(:disabled),.skill-token:hover:not(:disabled){filter:brightness(1.06);background:inherit}.cell.recent-play .die{outline:2px solid #b66d26;outline-offset:2px}.turn-callout{position:absolute;right:2.2rem;top:56px;z-index:8;max-width:195px}.turn-callout button{position:relative;background:#fff9ec;border:2px solid var(--burgundy);box-shadow:0 5px 12px #4a2b1e20;color:#5c1c30;border-radius:12px;padding:.65rem .85rem;text-align:left;font-weight:700;font-size:.88rem;animation:callout-arrive .3s ease-out}.turn-callout button:after{content:"";position:absolute;left:17px;bottom:-11px;width:16px;height:16px;background:#fff9ec;border:solid var(--burgundy);border-width:0 2px 2px 0;rotate:45deg}.turn-callout small{display:block;color:#5c1c30;font-size:.75rem;font-weight:400;margin-top:.25rem}.turn-callout span{display:inline-block;font-size:1.15rem;margin-right:.3rem}.skill-panel:not(:empty){box-shadow:0 4px 7px #4b302310;background:linear-gradient(120deg,var(--paper),#f8ecd6);border-radius:3px}.score-contribution{display:block;color:var(--green)!important;font-size:.8rem!important;font-weight:700}.score-detail{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin:1.2rem auto;color:var(--muted);font-size:.8rem}.score-detail span{padding:.3rem .6rem;border-bottom:1px solid var(--line)}.ranking.winner{position:relative}.ranking.winner:before{content:"";position:absolute;width:40px;height:12px;top:-13px;left:50%;transform:translateX(-50%);background:var(--burgundy);clip-path:polygon(0 100%,15% 0,35% 75%,50% 0,65% 75%,85% 0,100% 100%)}
:root[data-theme=night] .welcome h1{color:var(--burgundy);text-shadow:none}:root[data-theme=night] .camera-controls button{background:#523d30;border-color:var(--line)}:root[data-theme=night] .row-stones:before{background:linear-gradient(#866240,#714c2e);border-bottom-color:#57371f}:root[data-theme=night] .skill-panel:not(:empty){background:var(--paper)}:root[data-theme=night] .turn-callout button,:root[data-theme=night] .turn-callout button:after{background:#52382e;color:#fff0d5}:root[data-theme=night] .turn-callout small{color:#f7d5b2}
@keyframes turn-ring{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.13);opacity:.35}}@keyframes turn-arrow{0%,100%{transform:translateX(-2px)}50%{transform:translateX(3px)}}@keyframes callout-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){#quarry-stage{height:460px}.top-settings{gap:1.4rem}.top-volume input{width:125px}}
@media(max-width:1250px){.top-settings{display:none}.settings-menu{display:block}#topbar{gap:.8rem}.game{padding-top:1rem}.pyramid-row{min-height:calc(var(--die) + 14px)}.row-stones:before{width:calc(var(--count)*var(--die) + (var(--count) - 1)*5px + 13px)}#quarry-stage{height:350px}}
@media(max-width:920px){#quarry-stage{height:310px}.row-stones:before{width:calc(var(--count)*var(--die) + (var(--count) - 1)*3px + 10px);border-bottom-width:4px}.pyramid-row{min-height:calc(var(--die) + 12px)}.turn-callout{right:.3rem;top:44px;max-width:150px}.turn-callout button{font-size:.7rem}.turn-callout small{font-size:.65rem}.turn-arrow{font-size:.9rem}.all-stones .stone-layer{grid-template-columns:40px 1fr}.stone-layer .die{width:30px;height:30px}.stone-layer .stone-button{min-width:36px;min-height:36px}}
@media(max-width:760px){.game{padding-top:.7rem}.table-top{margin-bottom:.7rem}#quarry-stage{height:310px}.welcome #quarry-stage{height:260px}.camera-controls button{min-height:44px}.row-stones:before{width:calc(var(--count)*var(--die) + (var(--count) - 1)*4px + 10px)}.pyramid{padding-top:1.2rem}.pyramid-row{min-height:calc(var(--die) + 13px)}.turn-arrow{font-size:.82rem}.player.active .avatar:after{inset:-3px}.turn-callout{right:.8rem;top:49px;max-width:165px}.turn-callout button{font-size:.78rem}.turn-callout small{font-size:.69rem}.quarry-tooltip{font-size:.7rem}.scoring-cards{gap:.5rem}.quarry-tray-controls{margin-top:.8rem}.stone-layer .stone-button{min-width:40px;min-height:40px}.stone-layer .die{width:32px;height:32px}.all-stones .stone-layer{grid-template-columns:42px 1fr}.skill-panel:not(:empty){padding:.9rem}.banner-arrow{font-size:1.15rem!important}.score-detail{gap:.4rem;font-size:.7rem}}
@media(max-width:360px){.row-stones:before{width:calc(var(--count)*var(--die) + (var(--count) - 1)*3px + 8px)}}
:root[data-theme=night] #turn-banner.your-turn{color:#fff4df}
.skill-token:hover:not(:disabled){background:#d0dce0}.goal-token:hover:not(:disabled){background:#efd2ac}.goal-token.met:hover:not(:disabled){background:#d8e2c7}
:root[data-theme=night] .skill-token:hover:not(:disabled){background:#c0d1d5}:root[data-theme=night] .goal-token:hover:not(:disabled){background:#dfb183}:root[data-theme=night] .goal-token.met:hover:not(:disabled){background:#c3d6ab}
.stone-layer .stone-button{min-width:44px;min-height:44px}
@media(max-width:760px){#turn-banner>small{top:.75rem;right:.65rem}#turn-banner>strong{padding-right:3rem}.turn-callout{right:.6rem;max-width:145px}.turn-callout button{font-size:.74rem}}
@media(min-width:761px) and (max-width:920px){.play-area{grid-template-columns:1fr;gap:1.7rem}.quarry-area{max-width:720px;width:100%;margin:auto}#quarry-stage{height:370px}.pyramid-area{max-width:720px;width:100%;margin:auto}:root{--die:3.35rem}.pyramid-row{grid-template-columns:85px minmax(0,1fr) 90px;min-height:calc(var(--die) + 17px)}.row-stones{gap:7px}.row-stones:before{width:calc(var(--count)*var(--die) + (var(--count) - 1)*7px + 16px)}.skill-token strong{font-size:.8rem}.skill-token small,.goal-token small{font-size:.7rem}.goal-token strong{font-size:1rem}}
@media(max-width:369px){:root{--die:2.75rem}#topbar{flex-wrap:wrap;gap:.2rem}.wordmark{width:100%;text-align:center}nav{justify-content:center;width:100%;gap:.2rem}.languages button{width:44px}.pyramid-row{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:.35rem;min-height:104px;margin-bottom:.5rem}.row-stones{grid-column:1/-1;grid-row:1;gap:3px}.row-stones:before{width:calc(var(--count)*var(--die) + (var(--count) - 1)*3px + 8px)}.skill-slot{grid-column:1;grid-row:2}.goal-slot{grid-column:2;grid-row:2}.skill-token,.goal-token{max-width:145px}.skill-token strong{font-size:.75rem}.goal-token small{font-size:.68rem}.goal-token strong{font-size:.9rem}.turn-callout{max-width:130px;right:0;top:37px}}
:root{--burgundy:#28644e}:root[data-theme=night]{--burgundy:#a3d7bb;--paper:#49372f;--ink:#fff4dc;--muted:#e1ceb5}
.wordmark{color:#315c48}.welcome h1{color:#315c48}.primary{background:#28644e;border-color:#28644e;color:#fff7df}.primary:hover:not(:disabled){background:#1b4838}.menu-actions .primary{box-shadow:0 3px 0 #143b2c}
:root[data-theme=night] .wordmark,:root[data-theme=night] .welcome h1{color:#ecd09a}:root[data-theme=night] .primary{background:#28644e;border-color:#649d80;color:#fff7df}:root[data-theme=night] .primary:hover:not(:disabled){background:#347c60}
#turn-banner.your-turn,:root[data-theme=night] #turn-banner.your-turn{background:#1c4f3d;color:#fff9e8;border:1px solid #85c5a0;animation:turn-lantern 2.6s ease-in-out infinite;box-shadow:0 0 0 2px #6bb58d33,0 0 18px #76c29735}
#turn-banner.your-turn strong,#turn-banner.your-turn>span{color:#fff9e8}#turn-banner.your-turn small{color:#e5f6e9}#turn-banner.your-turn strong{font-size:1.4rem}.player.active{border-color:var(--burgundy)}.turn-callout button,.turn-callout small{color:#234c37}:root[data-theme=night] .turn-callout button{background:#234837;color:#fff5dc}:root[data-theme=night] .turn-callout button:after{background:#234837}.turn-callout{opacity:1}
.celebration-preview{margin-top:1.2rem;background:none;border-color:transparent;border-bottom:1px solid var(--line);border-radius:0;padding:.45rem 0;color:var(--ink);font-size:.9rem}
.celebration{max-width:900px;margin:2rem auto 0;text-align:center;scroll-margin-top:1rem}.celebration h2{font-size:clamp(1.8rem,3.4vw,2.7rem);color:#e7c68b;margin-bottom:.6rem}.celebration>p{max-width:560px;margin:0 auto;font-size:.9rem;line-height:1.6;color:var(--muted)}#celebration-stage{height:430px;max-width:800px;margin:auto;touch-action:none}#celebration-stage canvas,#demo-wonder-stage canvas{display:block;width:100%;height:100%;cursor:grab}.victory-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem;margin:.5rem 0 1rem}.victory-controls button{font-size:.8rem}.game[data-phase=finished] .play-area{grid-template-columns:1fr;max-width:760px;margin:auto}.game[data-phase=finished] .quarry-area{display:none}.game[data-phase=finished] .pyramid-area{width:100%}.game[data-phase=finished] .finale{max-width:1000px;margin:auto}.game[data-phase=finished] .pyramid-row{min-height:calc(var(--die) + 17px)}#demo-wonder-stage{height:390px;width:100%;min-width:min(500px,70vw);touch-action:none}.wonder-fallback{display:flex;flex-wrap:wrap;gap:.6rem;max-width:420px;margin:auto}.wonder-fallback .die{width:50px;height:50px}
@keyframes turn-lantern{0%,100%{box-shadow:0 0 0 2px #6bb58d30,0 0 14px #76c29730}50%{box-shadow:0 0 0 3px #a0e0b65c,0 0 28px #76c29765}}
@media(max-width:760px){#turn-banner.your-turn strong{font-size:1.22rem}#celebration-stage{height:340px}#demo-wonder-stage{height:330px;min-width:0}.celebration h2{font-size:1.8rem}.celebration>p{font-size:.8rem}.game[data-phase=finished] .pyramid-row{min-height:calc(var(--die) + 13px)}}
.calm #turn-banner.your-turn{animation:none;box-shadow:0 0 0 2px #9ed3ae66}@media(prefers-reduced-motion:reduce){#turn-banner.your-turn{animation:none;box-shadow:0 0 0 2px #9ed3ae66}}
.celebration h2{color:#654b28}:root[data-theme=night] .celebration h2{color:#e7c68b}
@media(max-width:760px) and (min-width:370px){:root{--die:2.75rem}.pyramid-row{grid-template-columns:40px minmax(0,1fr) 55px;gap:2px}.pyramid-row[data-row="0"]{grid-template-columns:0 minmax(0,1fr) 55px}.pyramid-row[data-row="0"] .row-stones{justify-content:flex-end;padding-right:7px}.pyramid-row[data-row="0"] .row-stones:before{left:auto;right:2px;transform:none}.skill-token strong{font-size:.59rem}.stone-layer .stone-button{min-width:44px;min-height:44px}}
