:root{--bg: #120e0b;--panel: #1f1914;--panel-2: #2a221b;--line: #3d3228;--text: #f1e6d4;--muted: #a8977f;--gold: #e9b949;--good: #49c47a;--bad: #e65a4f;--feed-w: 210px;--cell: min(calc((100vh - 190px) / 7), calc((100vw - 440px - 2 * var(--feed-w)) / 7), 110px)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(ellipse at 30% 20%,#2a1f16 0%,var(--bg) 70%);color:var(--text);font-family:Nunito,system-ui,sans-serif;overflow:hidden}.app{display:flex;height:100vh}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;min-width:0}.banner{min-height:40px;padding:8px 18px;border-radius:999px;background:var(--panel);border:2px solid var(--color, var(--line));font-size:15px;text-align:center}.banner:empty{visibility:hidden}.cave{position:relative}.cave.shake{animation:shake .6s}.cave.shake:after{content:"";position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background:radial-gradient(circle,#fff6 0%,#ff8a0055 40%,transparent 70%);animation:flash .9s forwards;pointer-events:none}.board{display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-template-rows:repeat(var(--rows),var(--cell));border-radius:18px;overflow:hidden;box-shadow:0 20px 60px #000c,inset 0 0 60px #000;background:#241c16}.cell{position:relative;border:0;padding:0;margin:0;background:none;color:inherit;font:inherit}.wall{background:radial-gradient(circle at 30% 30%,#5a4c3f 0 18%,transparent 19%),radial-gradient(circle at 75% 65%,#4a3e33 0 22%,transparent 23%),linear-gradient(135deg,#3a2f26,#251d17);box-shadow:inset 0 0 12px #0008}.wall.w1{background-position:10px 5px,-6px 3px,0 0}.wall.w2{filter:brightness(.85)}.stone{background:radial-gradient(circle at 50% 55%,#3b3027,#2a211a 70%)}.stone .sprite{width:100%;height:100%;display:block}.stone.closed{transition:transform .12s}.stone.closed.clickable:hover{transform:translateY(-3px) scale(1.04);filter:brightness(1.15);z-index:2}.stone.closed.clickable:active{transform:scale(.95) rotate(-3deg)}.stone.closed:disabled{cursor:default}.stone.ai-target{animation:aiTarget .4s infinite alternate;z-index:2}.stone.open .content{position:absolute;top:14%;right:14%;bottom:14%;left:14%;display:flex;align-items:center;justify-content:center}.stone.open.type-gem .content{opacity:.55;filter:saturate(.7)}.stone.open.last .content{opacity:1;filter:none}.stone.open.last{box-shadow:inset 0 0 0 2px var(--owner)}.stone.open.just-opened .content{animation:reveal .7s cubic-bezier(.2,1.6,.4,1)}.stone.open .rubble{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 80%,#5d5246 0 6%,transparent 7%),radial-gradient(circle at 80% 78%,#4d443a 0 5%,transparent 6%),radial-gradient(circle at 65% 88%,#6a5e50 0 4%,transparent 5%),radial-gradient(circle at 35% 90%,#554a3f 0 3%,transparent 4%)}.stone.just-opened .rubble{animation:rubble .5s ease-out}.stone.open .owner-dot{position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--owner, transparent);box-shadow:0 0 0 2px #0008}.stone.type-bomb{background:radial-gradient(circle,#6b2a12,#2a1209 70%)}.stone.type-trap{background:radial-gradient(circle,#4a1c1c,#2a1414 70%)}.stone.type-switch,.stone.type-mechanism{background:radial-gradient(circle,#1c3a2a,#15241c 70%)}.bonus{position:absolute;bottom:-6px;right:-10px;display:flex;align-items:center}.bonus .sprite.mini{width:22px;height:22px}.gnome-run{position:absolute;top:10%;right:10%;bottom:10%;left:10%;animation:gnomeRun 1.2s ease-in forwards;pointer-events:none}.gnome-run .sprite{width:100%;height:100%}.entrance{background:linear-gradient(135deg,#3a2f26,#251d17);display:flex;align-items:center;justify-content:center}.entrance .arch{position:absolute;top:12%;right:12%;bottom:12%;left:12%;border-radius:50% 50% 10% 10%;background:radial-gradient(ellipse at 50% 80%,#ffdb8a,#b07a2a 35%,#1b1209 75%);box-shadow:inset 0 0 14px #000,0 0 0 4px #4b3c30;overflow:hidden}.entrance.side-top .arch{transform:rotate(180deg)}.entrance.side-left .arch{transform:rotate(90deg)}.entrance.side-right .arch{transform:rotate(-90deg)}.entrance .light{position:absolute;top:0;right:0;bottom:0;left:0;animation:glow 2s infinite alternate;background:radial-gradient(circle at 50% 90%,#fff6 0%,transparent 60%)}.entrance .bars{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0 12%,#6c6c74 12% 20%);border-bottom:6px solid #55555c;transform:translateY(-105%);transition:transform .25s}.entrance.closed .arch{background:radial-gradient(ellipse at 50% 80%,#4a3a28,#1b1209 75%)}.entrance.closed .bars{transform:translateY(0)}.entrance.just-closed .bars{animation:slam .35s cubic-bezier(.6,0,1,1)}.entrance .label{position:relative;z-index:1;font-weight:800;font-size:11px;letter-spacing:1.5px;padding:2px 6px;border-radius:6px;background:#000a;margin-top:55%}.entrance.closed .label{color:var(--bad)}.entrance.clickable{cursor:pointer}.entrance.clickable:hover .arch{box-shadow:inset 0 0 14px #000,0 0 0 4px var(--gold),0 0 24px var(--gold)}.cave-row{display:flex;align-items:flex-start;gap:16px}.feed,.feed-spacer{width:var(--feed-w);flex-shrink:0}.feed{display:flex;flex-direction:column;gap:8px;padding-top:4px}.feed-card{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-left:5px solid var(--color, var(--gold));border-radius:10px;box-shadow:0 6px 18px #0008;animation:feedIn .35s cubic-bezier(.2,1.4,.4,1);transition:opacity .4s,transform .4s}.feed-card:not(:first-child){opacity:.7}.feed-card.leaving{opacity:0;transform:translate(-20px)}.feed-card.danger{border-color:var(--bad);background:#2a1512}.feed-card.good{border-color:var(--good)}.feed-card.epic{border-color:#fff8;border-left-color:var(--color, var(--gold));box-shadow:0 0 22px #e9b94988}.feed-art .sprite{width:40px;height:40px;display:block}.feed-art:empty{display:none}.feed-body{min-width:0}.feed-text{font-size:15px;font-weight:800;line-height:1.2}.feed-text b{color:var(--gold);white-space:nowrap}.feed-sub{color:var(--color, var(--muted));font-size:12px;font-weight:700}@keyframes feedIn{0%{opacity:0;transform:translate(-30px) scale(.9)}to{opacity:1;transform:none}}.race{width:calc(var(--cell) * 7);max-width:100%}.race-labels{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4px}.race-player{display:flex;align-items:center;gap:6px;position:relative;transition:transform .25s}.race-player:last-child{flex-direction:row-reverse}.race-player .token{width:26px;height:26px}.race-value{font-weight:900;font-size:16px;color:var(--muted);font-variant-numeric:tabular-nums}.race-player.lead .race-value{color:var(--color);font-size:19px}.race-player.lead{transform:translateY(-2px)}.race-player.status-expelled .race-value{text-decoration:line-through}.race-player.status-exited,.race-player.status-expelled{opacity:.75}.crown{position:absolute;top:-15px;left:4px;font-size:15px;animation:crownBob 1.2s infinite alternate}.race-player:last-child .crown{left:auto;right:4px}.race-status{font-size:14px}.race-bar{display:flex;height:14px;border-radius:99px;overflow:hidden;background:#0007;box-shadow:inset 0 1px 3px #000a;gap:2px}.race-seg{flex-grow:0;flex-shrink:0;background:linear-gradient(180deg,color-mix(in srgb,var(--color) 75%,#fff),var(--color));transition:flex-basis .6s cubic-bezier(.3,1.3,.5,1);min-width:4px}.race-seg.empty{background:#3d3228}.race-seg.status-exited{background:repeating-linear-gradient(45deg,var(--color) 0 6px,color-mix(in srgb,var(--color) 60%,#000) 6px 12px)}.race-seg.status-expelled{background:#3d3228}.race-caption{text-align:center;font-size:12px;color:var(--muted);margin-top:4px}@keyframes crownBob{0%{transform:translateY(0) rotate(-8deg)}to{transform:translateY(-3px) rotate(8deg)}}.stone.open.inspectable{cursor:help}.stone.open.inspectable:hover{filter:brightness(1.2)}.stone-tip{position:absolute;z-index:6;min-width:180px;max-width:260px;padding:10px 12px;background:#1a140ff2;border:1px solid var(--gold);border-radius:10px;box-shadow:0 8px 30px #000c;font-size:13px;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .15s,transform .15s}.stone-tip.show{opacity:1;transform:none}.stone-tip .sprite{width:22px;height:22px;flex-shrink:0}.tip-title{display:flex;align-items:center;gap:6px;font-weight:800;margin-bottom:6px}.tip-gem{display:flex;align-items:center;gap:6px;margin:2px 0}.tip-gem span{flex:1;font-weight:700}.tip-gem b{color:var(--gold)}.tip-note{color:var(--muted);margin:4px 0}.tip-who{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}.tip-who b{color:var(--text)}.tip-who .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;background:#000a;border-radius:18px;z-index:10}.overlay.show{display:flex;animation:fadeIn .3s}.modal{background:var(--panel);border:2px solid var(--gold);border-radius:16px;padding:22px 26px;min-width:340px;max-width:92%;text-align:center;box-shadow:0 20px 60px #000}.modal h2{font-family:Cinzel,serif;margin:0 0 10px;color:var(--gold)}.modal.final h2{font-size:30px}.bomb-note{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--bad);margin:0 0 8px}.bomb-note .sprite{width:28px;height:28px}.summary{width:100%;border-collapse:collapse;margin:8px 0 12px}.summary th{color:var(--muted);font-size:12px;font-weight:600;text-align:left;padding:4px 6px}.summary td{padding:8px 6px;border-top:1px solid var(--line);text-align:left;vertical-align:middle}.sum-name{font-weight:800;color:var(--color)}.sum-total{font-weight:800;text-align:right!important}.sum-gems{display:flex;flex-wrap:wrap;gap:1px;margin-top:4px}.goal{color:var(--muted);margin:0 0 12px}.good{color:var(--good);font-weight:800}.bad{color:var(--bad);font-weight:800}.sidebar{width:360px;flex-shrink:0;background:var(--panel);border-left:1px solid var(--line);padding:16px;overflow-y:auto;display:flex;flex-direction:column}#side-dynamic,#side-static{display:flex;flex-direction:column;gap:12px}#side-static{margin-top:12px}.brand h1{font-family:Cinzel,serif;font-weight:900;margin:0;font-size:26px;letter-spacing:1px;background:linear-gradient(180deg,#ffe7a3,var(--gold) 55%,#9a6b15);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.sound-btn{font-size:18px;line-height:1;width:36px;height:36px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);cursor:pointer}.sound-btn:hover{border-color:var(--gold)}.brand .meta{color:var(--muted);font-size:13px}.brand .meta b{color:var(--text)}.status-row{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800;background:var(--panel-2);border:1px solid var(--line)}.pill.ok{color:var(--good);border-color:#2c6b45}.pill.bad{color:var(--bad);border-color:#7a2f29;animation:pulse 1s infinite alternate}.pill .sprite.mini{width:16px;height:16px}.players{display:flex;flex-direction:column;gap:10px}.player{background:var(--panel-2);border:2px solid var(--line);border-radius:12px;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.player.turn{border-color:var(--color);box-shadow:0 0 16px color-mix(in srgb,var(--color) 40%,transparent)}.player.status-exited,.player.status-expelled{opacity:.7}.player-head{display:flex;align-items:center;gap:10px}.token{width:34px;height:34px;flex-shrink:0}.who{flex:1}.name{font-weight:800}.name small{color:var(--muted);font-weight:400}.state{font-size:12px;color:var(--muted)}.player.turn .state{color:var(--color);font-weight:800}.status-expelled .state{color:var(--bad)}.status-exited .state{color:var(--good)}.total{font-weight:900;font-size:18px;color:var(--gold)}.progress{height:8px;border-radius:99px;background:#0006;margin:8px 0;display:flex;overflow:hidden}.progress .banked{background:var(--color)}.progress .pending{background:repeating-linear-gradient(45deg,var(--color) 0 4px,transparent 4px 8px);opacity:.7}.bag{font-size:13px}.bag-label{color:var(--muted)}.bag-label b{color:var(--text)}.bag-gems{display:flex;flex-wrap:wrap;gap:1px;min-height:26px;margin-top:4px;align-items:center}.bag-gems em{color:var(--muted);font-size:12px}.sprite.mini{width:24px;height:24px}.btn{font:inherit;font-weight:800;padding:10px 16px;border-radius:10px;border:0;background:linear-gradient(180deg,#f5cd62,#c8921f);color:#2a1a05;cursor:pointer;transition:transform .1s,filter .1s}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed}.btn.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.panel{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.panel h2{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:0 0 8px}.log ol{list-style:none;margin:0;padding:0;max-height:170px;overflow-y:auto;font-size:13px}.log li{padding:3px 0;border-bottom:1px dashed #3d322855}.log li:first-child{color:var(--text);font-weight:600}.log li:not(:first-child){color:var(--muted)}.log .ev-bomb,.log .ev-trapClosed{color:var(--bad)!important}.log .ev-caveStart{color:var(--gold)!important}.coll-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.coll-item{display:flex;flex-direction:column;align-items:center;font-size:12px;font-weight:800}.coll-item .sprite.mini{width:30px;height:30px}.coll-item.none{opacity:.25;filter:grayscale(1)}.coll-total{font-size:12px;color:var(--muted);margin-top:8px}.coll-total b{color:var(--gold)}.options summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--muted)}.options label{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:12px;color:var(--muted)}.options select,.options input{font:inherit;font-size:13px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px}.seed-note{font-size:11px;color:var(--muted);margin-top:8px}.sparkle{animation:twinkle 1.4s infinite alternate;transform-origin:center}.bomb .spark{animation:twinkle .25s infinite alternate}@keyframes reveal{0%{transform:scale(.2) rotate(-20deg);opacity:0}to{transform:scale(1);opacity:1}}@keyframes rubble{0%{transform:scale(1.6);opacity:0}to{transform:none;opacity:1}}@keyframes shake{0%,to{transform:none}15%{transform:translate(-10px,4px) rotate(-1deg)}30%{transform:translate(9px,-6px) rotate(1deg)}45%{transform:translate(-7px,5px)}60%{transform:translate(6px,-3px)}80%{transform:translate(-3px,2px)}}@keyframes flash{0%{opacity:1}to{opacity:0}}@keyframes aiTarget{0%{filter:brightness(1);transform:none}to{filter:brightness(1.4) drop-shadow(0 0 8px #e0712b);transform:translateY(-3px)}}@keyframes glow{0%{opacity:.5}to{opacity:1}}@keyframes slam{0%{transform:translateY(-105%)}to{transform:translateY(0)}}@keyframes pulse{0%{opacity:1}to{opacity:.6}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes twinkle{0%{opacity:.3}to{opacity:1}}@keyframes gnomeRun{0%{transform:translateY(20%) scale(.6);opacity:0}25%{transform:translateY(-10%) scale(1);opacity:1}70%{transform:translate(40%,-20%) scale(.9);opacity:1}to{transform:translate(140%,-60%) scale(.4);opacity:0}}@media(max-width:900px){body{overflow:auto}.app{flex-direction:column;height:auto}:root{--cell: min(calc((100vw - 32px) / 7), 90px)}.sidebar{width:100%;border-left:0;border-top:1px solid var(--line)}.cave-row{flex-direction:column-reverse;align-items:center}.feed{width:calc(var(--cell) * 7);max-width:100%}.feed-spacer{display:none}}
