:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f4f4f5;background:#09090b;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#27272a,#09090b 55%)}button{font:inherit}#app{width:min(1120px,calc(100% - 24px));margin:0 auto;padding:24px 0 48px}.machine{display:flex;flex-direction:column;gap:14px}.masthead{display:flex;justify-content:space-between;align-items:end;gap:16px;border:1px solid #3f3f46;border-radius:22px;padding:18px 20px;background:linear-gradient(145deg,#18181b,#0f0f11)}.eyebrow,h2,.meters span,.modeReadout span,.progressiveTitle span,.debugControls>span{margin:0;color:#a1a1aa;font-size:11px;font-weight:800;letter-spacing:.16em}h1{margin:4px 0 0;font-size:clamp(42px,10vw,78px);line-height:.85;letter-spacing:-.06em}.modeReadout{text-align:right}.modeReadout strong{display:block;margin-top:5px;font-size:clamp(18px,4vw,28px)}.progressiveBank{border:1px solid #3f3f46;border-radius:20px;overflow:hidden;background:#111113}.progressiveTitle{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 16px 0}.progressiveTitle strong{color:#d4d4d8;font-size:10px;letter-spacing:.08em}.progressiveChart{width:100%;height:190px}.meters{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.meters>div{min-width:0;padding:8px 10px 10px;border-bottom:2px solid #3f3f46}.meters strong{display:block;margin-top:3px;font-size:19px;font-variant-numeric:tabular-nums}.cabinet{position:relative;overflow:hidden;border:1px solid #52525b;border-radius:24px;background:linear-gradient(180deg,#18181b,#111113);padding:18px;transition:border-color .25s ease,transform .25s ease}.cabinet.freeMode{border-color:#a1a1aa}.bonusBanner{margin:-2px 0 14px;padding:10px 12px;border:1px solid #52525b;border-radius:12px;text-align:center;background:#09090b}.bonusBanner span,.bonusBanner strong{display:block}.bonusBanner span{font-size:13px;font-weight:950;letter-spacing:.16em}.bonusBanner strong{margin-top:3px;color:#d4d4d8;font-size:11px;letter-spacing:.08em}.reels{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.reel{height:270px;overflow:hidden;position:relative;border:1px solid #52525b;border-radius:17px;background:#09090b}.reel:before,.reel:after{content:"";position:absolute;z-index:4;left:0;right:0;height:27%;pointer-events:none}.reel:before{top:0;background:linear-gradient(#09090b,transparent)}.reel:after{bottom:0;background:linear-gradient(transparent,#09090b)}.reelStrip{height:100%;display:grid;grid-template-rows:repeat(3,1fr)}.symbol{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:clamp(38px,8vw,68px);font-weight:900;opacity:.35}.centerSymbol{opacity:1;background:#f4f4f509;border-top:1px solid rgba(244,244,245,.1);border-bottom:1px solid rgba(244,244,245,.1)}.symbol small{margin-top:6px;color:#a1a1aa;font-size:10px;letter-spacing:.14em}.reel.spinning .reelStrip{filter:blur(1.2px);animation:reelWobble .16s linear infinite}.stickyBadge{position:absolute;z-index:6;top:7px;left:50%;transform:translate(-50%);padding:4px 8px;border-radius:999px;background:#f4f4f5;color:#09090b;font-size:9px;font-weight:950;letter-spacing:.08em;white-space:nowrap}.payline{position:absolute;z-index:5;pointer-events:none;left:9px;right:9px;top:50%;height:2px;background:#fafafa;opacity:.82}.payline:before,.payline:after{content:"";position:absolute;top:-4px;width:9px;height:9px;border-radius:50%;background:#fafafa}.payline:before{left:0}.payline:after{right:0}.result{margin:14px 0 0;min-height:24px;text-align:center;font-weight:950;letter-spacing:.1em}.controls,.debugControls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bets{display:flex;flex-wrap:wrap;gap:6px}button{min-height:44px;padding:0 15px;color:#fafafa;background:#18181b;border:1px solid #52525b;border-radius:12px;font-weight:850;cursor:pointer}button:hover{border-color:#a1a1aa}button:focus-visible{outline:3px solid #fafafa;outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.betBtn.active,.spin{background:#fafafa;color:#09090b;border-color:#fafafa}.spin{flex:1 1 190px;font-size:18px;letter-spacing:.12em}.debugControls{padding:10px 12px;border:1px dashed #3f3f46;border-radius:14px}.debugControls button{min-height:36px;padding:0 11px;font-size:11px}.lower{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(270px,1.25fr) minmax(220px,1fr);gap:16px}.paytable,.bonusHeat,.telemetry{min-width:0;padding-top:12px;border-top:1px solid #3f3f46}.paytable p{display:flex;justify-content:space-between;gap:12px;margin:7px 0;font-size:12px}.heatChart,.historyChart{width:100%;height:190px}.bonusFlash{animation:bonusFlash .9s ease-out}.progressiveHit{animation:progressiveHit 1.15s ease-in-out}footer{color:#71717a;font-size:12px;text-align:center}@keyframes reelWobble{0%{transform:translateY(-5px)}50%{transform:translateY(5px)}to{transform:translateY(-5px)}}@keyframes bonusFlash{0%{transform:scale(1);border-color:#52525b}35%{transform:scale(.992);border-color:#fafafa}70%{transform:scale(1.006);border-color:#a1a1aa}to{transform:scale(1);border-color:#52525b}}@keyframes progressiveHit{0%,to{transform:scale(1)}18%{transform:scale(.985)}35%{transform:scale(1.015)}55%{transform:scale(.995)}75%{transform:scale(1.008)}}@media(max-width:860px){.meters{grid-template-columns:repeat(3,1fr)}.lower{grid-template-columns:1fr 1fr}.telemetry{grid-column:1 / -1}.progressiveChart{height:170px}}@media(max-width:620px){#app{width:min(100% - 16px,1120px);padding-top:12px}.masthead{align-items:center}.progressiveTitle{flex-direction:column;gap:3px}.progressiveChart{height:260px}.meters{grid-template-columns:repeat(2,1fr)}.reel{height:210px}.symbol{font-size:38px}.lower{grid-template-columns:1fr}.telemetry{grid-column:auto}}@media(prefers-reduced-motion:reduce){.reel.spinning .reelStrip{filter:none;animation:none}.bonusFlash,.progressiveHit{animation:none}}.communityLab{margin-top:8px;padding:18px;border:1px solid #3f3f46;border-radius:22px;background:#111113}.communityHead{display:flex;justify-content:space-between;align-items:end;gap:16px}.communityHead h2{margin-top:5px;color:#f4f4f5;font-size:24px}.communityIntro{color:#a1a1aa;font-size:12px}.communityCabinets{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.communityCabinet{min-width:0;border:1px solid #3f3f46;border-radius:14px;overflow:hidden;background:#09090b}.communityCabinet header,.communityCabinet footer{display:flex;justify-content:space-between;gap:8px;padding:8px 9px;font-size:10px;color:#a1a1aa}.communityCabinet header strong{color:#fafafa;font-size:13px}.communityCabinet code{overflow:hidden;text-overflow:ellipsis}.communityGrid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #27272a;border-left:1px solid #27272a}.communityCell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-right:1px solid #27272a;border-bottom:1px solid #27272a;background:#111113}.communityCell b{font-size:clamp(14px,2vw,22px)}.communityCell small{position:absolute;right:3px;bottom:2px;color:#71717a;font-size:8px}.communityCell.composed{outline:2px solid #fafafa;outline-offset:-3px;background:#27272a}.communityLower{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;padding-top:12px;border-top:1px solid #3f3f46}.provenanceChart{width:100%;height:180px}.receiptPanel pre{max-height:180px;overflow:auto;margin:8px 0 0;padding:10px;border-radius:10px;background:#09090b;color:#d4d4d8;font-size:10px;white-space:pre-wrap;word-break:break-all}@media(max-width:860px){.communityCabinets{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.communityHead{align-items:stretch;flex-direction:column}.communityCabinets,.communityLower{grid-template-columns:1fr}}.communityLab.compositionLive .communityCell.composed{animation:compositionPulse .9s cubic-bezier(.2,.8,.2,1)}@keyframes compositionPulse{0%{transform:scale(.78);box-shadow:0 0 #fafafacc}45%{transform:scale(1.12);box-shadow:0 0 0 8px #fafafa1f}to{transform:scale(1);box-shadow:0 0 #fafafa00}}@media(prefers-reduced-motion:reduce){.communityLab.compositionLive .communityCell.composed{animation:none}}
