:root{--gold:#d6a845;--gold2:#f1cc74;--text:#efe2be;--muted:#aa9870;--green:#8cbf6d;--red:#c96753;--line:#71501f;--panel:#0b0a07f2}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;background:#050605;color:var(--text);font-family:Georgia,"Times New Roman",serif}body{background:radial-gradient(circle at 50% 0,#20160c 0,#080705 38%,#040504 84%);overflow-x:hidden}button{font:inherit;touch-action:manipulation}.app{width:min(100%,980px);margin:auto;padding:max(6px,env(safe-area-inset-top)) 7px max(8px,env(safe-area-inset-bottom))}.frame{border:1px solid var(--gold);border-radius:15px;background:linear-gradient(#120e09fa,#070705fc);box-shadow:0 0 0 2px #2a1d0b inset;overflow:hidden}.page{display:none}.page.active{display:block}

.opening{position:fixed;inset:0;z-index:9999;background:#020302;display:none;overflow:hidden}.opening.active{display:block}.openingBg{position:absolute;inset:0;background-repeat:no-repeat;background-size:auto 68%;background-position:center 44%;opacity:0;transform:scale(.97);filter:brightness(1.22) saturate(1.05) contrast(1.02)}
.bg1{background-image:url('/assets/opening/bradley.webp');animation:bootBg1 12.8s ease forwards}.bg2{background-image:url('/assets/opening/billy.webp');animation:bootBg2 12.8s ease forwards}.bg3{background-image:url('/assets/opening/black.webp');animation:bootBg3 12.8s ease forwards}.bg4{background-image:url('/assets/opening/bjorn.webp');animation:bootBg4 12.8s ease forwards}.bg5{background-image:url('/assets/opening/bibi.webp');animation:bootBg5 12.8s ease forwards}.bg6{background-image:url('/assets/opening/bingbing.webp');animation:bootBg6 12.8s ease forwards}.openingShade{position:absolute;inset:0;background:radial-gradient(circle at center,#0000 0,#0002 62%,#0009 100%)}.openingLogoWrap{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;opacity:0;animation:bootLogo 12.8s ease forwards}.openingLogo{width:min(42vw,290px);max-height:42dvh;object-fit:contain;filter:drop-shadow(0 0 22px #d6a84588)}.openingTitle{font-size:clamp(26px,6vw,48px);letter-spacing:3px;color:var(--gold2);margin-top:8px}.openingSub{font:700 10px Arial,sans-serif;letter-spacing:4px;color:var(--gold)}.skipOpening{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));border:1px solid #8b6429;border-radius:99px;background:#0009;color:#c8ad70;padding:8px 14px;font:700 10px Arial,sans-serif}
@keyframes bootBg1{0%,2%{opacity:0}5%,15%{opacity:.98}18%,100%{opacity:0}}@keyframes bootBg2{0%,15%{opacity:0}18%,28%{opacity:.98}31%,100%{opacity:0}}@keyframes bootBg3{0%,28%{opacity:0}31%,41%{opacity:.98}44%,100%{opacity:0}}@keyframes bootBg4{0%,41%{opacity:0}44%,54%{opacity:.98}57%,100%{opacity:0}}@keyframes bootBg5{0%,54%{opacity:0}57%,67%{opacity:.98}70%,100%{opacity:0}}@keyframes bootBg6{0%,67%{opacity:0}70%,80%{opacity:.98}83%,100%{opacity:0}}@keyframes bootLogo{0%,81%{opacity:0;transform:scale(.92)}88%,100%{opacity:1;transform:scale(1)}}
.legendsPage.active{display:flex;flex-direction:column;min-height:calc(100dvh - max(14px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)))}.legendsHeader{flex:0 1 auto;min-height:84px;display:grid;grid-template-columns:clamp(48px,9dvh,78px) 1fr auto;gap:8px;align-items:center;padding:clamp(4px,1.1dvh,9px) 10px;border-bottom:1px solid var(--line)}.unionLogo{width:clamp(48px,9dvh,74px);height:clamp(48px,9dvh,74px);object-fit:contain}.legendsBrand{text-align:center}.legendsBrand b{display:block;color:var(--gold2);font-size:clamp(22px,4.2dvh,29px);letter-spacing:1.7px}.legendsBrand span{display:block;color:var(--gold);font:700 clamp(8px,1.5dvh,11px) Arial,sans-serif;letter-spacing:2.6px;margin-top:3px}.entryLink{color:#93a77d;font:700 clamp(7px,1.25dvh,9px) Arial,sans-serif;white-space:nowrap}.stripViewport{flex:0 0 auto;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;background:#020302}.stripCanvas{position:relative;line-height:0}.stripImage{display:block;user-select:none;-webkit-user-drag:none;object-fit:contain}.hit{position:absolute;top:0;bottom:0;width:16.666666%;border:0;background:transparent;cursor:pointer}.hit:active,.hit:focus-visible{outline:2px solid var(--gold2);outline-offset:-3px;background:#d6a84513}.hit.locked::after{content:'DEMO LOCKED';position:absolute;inset:auto 8% 8% 8%;padding:8px 4px;border:1px solid #a57a31;border-radius:6px;background:#080704df;color:#d9bd78;font:700 9px Arial,sans-serif;text-align:center;line-height:1.1}.hit.owned::after{content:'OWNED';position:absolute;right:5%;top:4%;padding:5px 7px;border:1px solid #77975a;border-radius:99px;background:#091008df;color:#b9d59a;font:700 8px Arial,sans-serif;line-height:1}.lockLayer{pointer-events:none}
.runtimeHeader{display:grid;grid-template-columns:48px 1fr auto;gap:8px;align-items:center;padding:7px;border-bottom:1px solid var(--line)}.iconBtn{height:42px;border:1px solid var(--gold);border-radius:9px;background:#151008;color:var(--gold2);font-size:26px}.runtimeBrand{text-align:center}.runtimeBrand b{display:block;color:var(--gold2);font-size:18px;letter-spacing:.5px}.runtimeBrand span{color:var(--gold);font:700 8px Arial,sans-serif}.linkStatus{font:700 8px Arial,sans-serif;color:var(--green);white-space:nowrap}.runtimeContent{padding:7px}.hero{position:relative;width:100%;aspect-ratio:4/3;border:1px solid var(--gold);border-radius:11px;overflow:hidden;background:#080705}.hero img{width:100%;height:100%;object-fit:contain;display:block;background:#050504}.heroTag{position:absolute;left:7px;top:7px;background:#000b;border:1px solid var(--gold);border-radius:99px;padding:4px 8px;color:var(--gold2);font:bold 10px Arial,sans-serif}.stateStrip{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:5px}.stateMini{height:30px;border:1px solid #5c431b;border-radius:6px;background:#100d08;color:#bea45e;font:700 7px Arial,sans-serif}.stateMini.active{border-color:var(--gold2);color:#ffe29a;box-shadow:0 0 8px #8b5d19}.panel{margin-top:7px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:7px}.panel h2{margin:0 0 5px;text-align:center;color:var(--gold2);font-size:15px}.feedback{font-size:12px;line-height:1.35;min-height:34px}.signature{text-align:right;color:var(--gold);font-style:italic;font-size:13px;margin-top:2px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.metric{border:1px solid #4d3717;border-radius:7px;background:#080704;padding:5px 2px;text-align:center}.metric small{display:block;color:var(--gold);font:7px Arial,sans-serif}.metric strong{display:block;margin-top:3px;font:10px Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modeLine{margin-top:5px;text-align:center;color:#d8c18d;font:10px Arial,sans-serif}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.ctrl{min-height:42px;padding:4px;border:1px solid var(--gold);border-radius:8px;background:#151008;color:var(--gold2);font-weight:700;font-size:9px}.ctrl.start{background:#203b18;color:#dff1bd}.ctrl.stop{background:#3a1711;color:#ffc0b3}.ctrl.character{color:#ead28e}.ctrl.mode.active{box-shadow:0 0 0 1px #d6a845 inset;background:#241b0c}.ctrl.madness{color:#efc987}.events{max-height:160px;overflow:auto;font:10px Arial,sans-serif}.evt{display:grid;grid-template-columns:48px 1fr;gap:5px;padding:4px 0;border-top:1px solid #70501f88}.evt:first-child{border-top:0}.evt time{color:#938872}.evt div{color:#ddc58e}.empty{color:#6f6b5d;text-align:center;padding:14px}.demoTests{display:grid;grid-template-columns:1fr 1fr;gap:6px}.testBtn{height:39px;border:1px solid #86703b;border-radius:8px;background:#10110c;color:#c6d8a6;font:700 9px Arial,sans-serif}.jackpotBtn{color:#f4d078;background:#1f1708}
.introBody{padding:8px}.comicZoomBtn{position:relative;display:block;width:100%;padding:0;border:0;background:transparent}.comicZoomBtn span{position:absolute;right:9px;bottom:9px;padding:5px 8px;border:1px solid #a47b35;border-radius:99px;background:#000c;color:#e2c577;font:700 8px Arial,sans-serif;letter-spacing:.6px}.introComic{display:block;width:100%;max-height:calc(100dvh - 150px);object-fit:contain;border:1px solid #74531f;border-radius:12px;background:#050504}.comicViewer{position:fixed;inset:0;z-index:10000;background:#020302;display:none;flex-direction:column}.comicViewer.active{display:flex}.comicViewerBar{height:48px;flex:0 0 48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid #6e501f;color:#e5c775;font:700 11px Arial,sans-serif;letter-spacing:1px}.comicViewerBar button{width:38px;height:38px;border:1px solid #8c682d;border-radius:50%;background:#100d08;color:#f1cc74;font-size:26px}.comicStage{position:relative;flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.comicStage img{max-width:96%;max-height:96%;object-fit:contain;transform-origin:center center;will-change:transform;user-select:none;-webkit-user-drag:none}.comicViewerHint{flex:0 0 auto;padding:8px;text-align:center;color:#8f805d;font:700 8px Arial,sans-serif;letter-spacing:.5px;border-top:1px solid #3c2d14}.introActions{display:grid;grid-template-columns:2fr 1fr;gap:7px;margin-top:8px}.primaryBtn,.secondaryBtn{min-height:44px;border-radius:9px;font-weight:700}.primaryBtn{border:1px solid var(--gold2);background:#2b2110;color:#ffe191}.secondaryBtn{border:1px solid #6c5226;background:#0f0c08;color:#bda56f}
@media (orientation:portrait){.legendsPage.active{height:calc(100dvh - 14px)}.legendsHeader{flex:0 0 auto}.stripViewport{flex:1 1 auto;min-height:0}.stripCanvas{height:100%;min-height:0;width:max-content}.stripImage{height:100%;width:auto;max-width:none;object-fit:contain}}
@media (orientation:landscape){body{overflow-y:auto}.app{width:100%;max-width:none;padding:3px 5px}.legendsPage.active{height:calc(100dvh - 8px)}.legendsHeader{flex:1 1 auto;min-height:60px;padding:3px 8px;grid-template-columns:clamp(48px,14dvh,72px) 1fr auto}.unionLogo{width:clamp(46px,14dvh,68px);height:clamp(46px,14dvh,68px)}.legendsBrand b{font-size:clamp(21px,6dvh,30px)}.legendsBrand span{font-size:clamp(8px,2.2dvh,11px)}.stripViewport{flex:0 0 auto;overflow-x:hidden}.stripCanvas{width:100%;height:auto}.stripImage{width:100%;height:auto;max-height:none;object-fit:contain}.runtimeContent{display:grid;grid-template-columns:minmax(42%,1fr) minmax(46%,1fr);gap:7px}.hero{aspect-ratio:16/10}.panel{margin-top:0;margin-bottom:6px}.events{max-height:115px}.introComic{max-height:calc(100dvh - 115px)}}
@media (max-width:560px){.legendsHeader{grid-template-columns:66px 1fr;min-height:82px}.unionLogo{width:62px;height:62px}.entryLink{grid-column:1/-1;text-align:center;margin-top:-4px}.legendsBrand b{font-size:25px}.runtimeHeader{grid-template-columns:42px 1fr}.linkStatus{grid-column:1/-1;text-align:center;margin-top:-3px}.metrics{grid-template-columns:repeat(4,1fr)}}

@media (orientation:portrait){.openingBg{background-size:auto 64%;background-position:center 44%}.openingLogo{width:min(48vw,260px)}}
@media (orientation:landscape){.openingBg{background-size:auto 84%;background-position:center}.openingLogo{width:min(25vw,230px);max-height:50dvh}.openingTitle{font-size:clamp(24px,4vw,40px)}}

.payoutModal{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#000d;backdrop-filter:blur(5px)}.payoutModal.active{display:flex}.payoutCard{width:min(94vw,520px);max-height:92dvh;overflow:auto;border:1px solid var(--gold2);border-radius:16px;background:linear-gradient(180deg,#181108,#070705 56%,#050504);box-shadow:0 0 0 2px #3b2a10 inset,0 0 34px #d6a84533;padding:14px}.payoutEmblem{text-align:center}.payoutEmblem img{width:min(25vw,118px);height:auto}.payoutKicker{text-align:center;color:#95b77b;font:700 8px Arial,sans-serif;letter-spacing:1.5px;margin-top:3px}.payoutCard h2{margin:7px 0 12px;text-align:center;color:#f2d279;font-size:18px;letter-spacing:.7px}.payoutGrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.payoutGrid>div{border:1px solid #60451c;border-radius:8px;background:#090704;padding:8px;text-align:center}.payoutGrid .wide{grid-column:1/-1}.payoutGrid small{display:block;color:#a99258;font:700 7px Arial,sans-serif;letter-spacing:1px}.payoutGrid strong{display:block;margin-top:4px;color:#f0dfb4;font:700 11px Arial,sans-serif;overflow-wrap:anywhere}.payoutMessage{margin:10px 2px 12px;color:#c9b98e;font:10px/1.45 Arial,sans-serif;text-align:center}.payoutActions{display:grid;grid-template-columns:1.2fr 1fr;gap:8px}.payoutActions button{min-height:46px}@media (orientation:landscape){.payoutCard{width:min(76vw,650px);padding:11px}.payoutEmblem img{width:min(14vw,92px)}.payoutCard h2{font-size:16px;margin:4px 0 8px}.payoutGrid{grid-template-columns:1fr 1fr 2fr 1fr}.payoutGrid .wide{grid-column:auto}.payoutMessage{margin:8px 2px}.payoutActions{max-width:430px;margin:auto}}

/* v0.8 — full treasure Strip. Never distort the artwork; header absorbs viewport differences. */
.legendsPage.active{overflow:hidden}
.legendsHeader{min-height:clamp(104px,15dvh,148px);grid-template-columns:clamp(72px,12dvh,104px) 1fr auto;padding:clamp(8px,1.5dvh,14px) 12px}
.unionLogo{width:clamp(70px,12dvh,100px);height:clamp(70px,12dvh,100px)}
.legendsBrand b{font-size:clamp(27px,4.8dvh,38px)}
.legendsBrand span{font-size:clamp(9px,1.7dvh,13px)}
.stripViewport{margin-top:auto;display:flex;align-items:flex-end;min-height:0}
.stripCanvas{flex:0 0 auto}
.stripImage{display:block;object-fit:contain;object-position:center bottom}
@media (orientation:portrait){
  .legendsPage.active{height:calc(100dvh - 14px)}
  .legendsHeader{min-height:clamp(120px,17dvh,165px);grid-template-columns:82px 1fr;padding:8px 12px 10px}
  .unionLogo{width:78px;height:78px}
  .legendsBrand b{font-size:29px}.legendsBrand span{font-size:10px}
  .entryLink{grid-column:1/-1;text-align:center;margin-top:0}
  .stripViewport{flex:1 1 auto;overflow-x:auto;overflow-y:hidden;align-items:flex-end}
  .stripCanvas{height:100%;width:max-content;display:flex;align-items:flex-end}
  .stripImage{height:100%;width:auto;max-width:none;max-height:100%;object-fit:contain;object-position:left bottom}
}
@media (orientation:landscape){
  .legendsPage.active{height:calc(100dvh - 8px)}
  .legendsHeader{flex:0 0 auto;min-height:clamp(92px,17dvh,126px);grid-template-columns:clamp(70px,16dvh,100px) 1fr auto;padding:5px 11px}
  .unionLogo{width:clamp(68px,15dvh,94px);height:clamp(68px,15dvh,94px)}
  .legendsBrand b{font-size:clamp(27px,6dvh,40px)}
  .legendsBrand span{font-size:clamp(9px,2.2dvh,13px)}
  .stripViewport{flex:1 1 auto;overflow:hidden;align-items:flex-end}
  .stripCanvas{width:100%;height:auto;display:flex;align-items:flex-end}
  .stripImage{width:100%;height:auto;max-height:100%;object-fit:contain;object-position:center bottom}
}

/* v0.8 jackpot confirmation/support flow */
.supportTitle{text-align:center;color:#d7b965;font:700 9px Arial,sans-serif;letter-spacing:1.5px;margin:11px 0 7px}
.supportChoices{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 11px}
.supportChoice{min-height:48px;border:1px solid #60451c;border-radius:8px;background:#090704;color:#e8d8ad;font:700 13px Arial,sans-serif;padding:6px 3px}
.supportChoice small{display:block;color:#8f845f;font:700 6px Arial,sans-serif;letter-spacing:.7px;margin-top:3px}
.supportChoice.active{border-color:#d3a23b;box-shadow:0 0 0 1px #d3a23b55 inset;background:#1a1105;color:#f3d575}
.supportChoice.active small{color:#d6bb75}
.payoutCard.demo .payoutKicker{color:#e2bb5b}.payoutCard.demo h2{color:#f3d575}
@media (orientation:landscape){.supportTitle{margin:7px 0 5px}.supportChoice{min-height:42px}.supportChoices{margin-bottom:8px}}

/* v0.9 — landscape Recent Events is anchored below the state image. */
@media (orientation:landscape){
  .leftCol{display:flex;flex-direction:column;min-width:0}
  .leftCol .stateStrip{flex:0 0 auto}
  .leftCol .eventsPanel{flex:0 0 auto;margin-top:6px;margin-bottom:0;padding:6px 7px}
  .leftCol .eventsPanel h2{font-size:13px;margin-bottom:3px}
  .leftCol .events{max-height:none;height:138px;overflow:hidden;font-size:9px;line-height:1.15}
  .leftCol .evt{min-height:22px;max-height:22px;grid-template-columns:44px minmax(0,1fr);gap:5px;padding:3px 0;overflow:hidden}
  .leftCol .evt div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
