html,body{margin:0;background:#111217;color:#fff;min-height:100%;font-family:'Press Start 2P',monospace}*{box-sizing:border-box}button{font:inherit}#game-container{position:relative;width:100%;height:100dvh;overflow:hidden}.game-start{font-family:'Press Start 2P',monospace;font-size:clamp(18px,4vw,36px);margin-top:32px}.header-buttons button{cursor:pointer}dialog{background:#111217;color:#fff;border:3px solid #8d879f;padding:32px 24px;width:min(480px,92vw);max-height:90dvh;text-align:center;font-size:12px;line-height:1.9}dialog::backdrop{background:rgba(0,0,0,.88)}dialog h1{font-size:20px;color:#ecebef;margin:0 0 25px}dialog p{font-size:10px;line-height:1.9}dialog button{display:block;width:100%;padding:16px 10px;margin:16px 0 0;border:2px solid #ecebef;background:#ecebef;color:#111217;cursor:pointer;font-size:11px}dialog button.secondary{background:#111217;color:#fff;border-color:#444}dialog button:disabled{background:#161616;color:#888;border-color:#444;cursor:default}dialog button:focus-visible{outline:3px solid white;outline-offset:4px}dialog small{display:block;font-size:8px;color:#aaa;margin-top:22px}dl{margin:25px 0}dl div{display:flex;justify-content:space-between;gap:15px;text-align:left;padding:10px 0}dd{margin:0;color:#ecebef}.total{border-top:1px solid #8d879f;margin-top:12px;padding-top:20px}#wallet-message{color:#ffb8ae}.game-ui{font-family:'Press Start 2P',monospace}
/* Keep the reference maze centered at its native pixel scale. */
.game-ui{left:50%;transform:translateX(-50%)}
/* Robinhood-inspired entry screen; preserve the original artwork and layout. */
#game-container .loading-cover{background:#111217}
#logo{filter:hue-rotate(65deg) saturate(.85)}
#game-start{background:#ecebef;color:#17171d;border-color:#ecebef;box-shadow:5px 5px #50515e}
#game-start:hover{background:#ffffff}
#game-start:focus-visible{outline:3px solid #fff;outline-offset:6px}
dialog{border-color:#ecebef}
dialog h1,dd{color:#ffffff}
dialog button{background:#ecebef;border-color:#ecebef;color:#17171d}
.total{border-color:#ecebef}
#results{background:#111217;border-color:#c8c2e3}
#results h1,#results dd{color:#c8c2e3}
#results .total{border-color:#c8c2e3}
#results #replay{background:#c8c2e3;border-color:#c8c2e3;color:#111217}
#results #replay:hover{background:#ded9f2}
#results #mint:disabled{background:#24252e;border-color:#545561;color:#acacb8}
#results::backdrop{background:rgba(0,8,3,.9)}
#results,#album{width:min(720px,94vw);padding:28px;scrollbar-color:#c8c2e3 #111217}
#album{background:#111217;border-color:#c8c2e3}#album h1{color:#c8c2e3}
.ghost-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.ghost-card{border:2px solid #555560;background:#17181e;padding:18px 8px;animation:ghost-reveal .28s steps(4);text-align:center;min-width:0}
.ghost-card.rare{border-color:#c8c2e3;background:#24232c}.ghost-card h2{font-size:12px;margin:12px 0}.ghost-card p{color:#c8c2e3;margin:8px 0}.ghost-card small{font-size:8px;line-height:2;margin-top:8px}.ghost-card.locked{opacity:.35}.ghost-card.locked .nft-ghost{filter:grayscale(1)}
.nft-ghost{display:block;width:64px;height:64px;margin:auto;background-size:128px 64px;image-rendering:pixelated;animation:ghost-step .45s steps(1) infinite}
@keyframes ghost-step{50%{background-position:-64px 0}}
@keyframes ghost-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
#reveal-next,#mint:not(:disabled){background:#c8c2e3;color:#111217;border-color:#c8c2e3}
#arcade-machine{border:2px solid #c8c2e3;padding:16px;margin:22px 0;background:#111217}.machine-slot{height:12px;background:#111217;border:2px solid #62616d;margin:18px 0;box-shadow:0 3px #c8c2e3}#machine-output .ghost-card{max-width:260px;margin:auto}#machine-status{color:#c8c2e3;min-height:38px}
.arcade-extras{display:flex;gap:22px;justify-content:center;margin-top:28px;flex-wrap:wrap}.arcade-extras button{background:transparent;border:0;border-bottom:1px solid #62616d;color:#c0becb;padding:10px 0;font:10px 'Press Start 2P',monospace;cursor:pointer}.arcade-extras button:hover{color:#c8c2e3}.arcade-extras button:focus-visible{outline:2px solid #c8c2e3;outline-offset:5px}
@media(max-width:480px){#results,#album{padding:22px 14px}.ghost-card{padding:14px 5px}.ghost-card h2{font-size:10px}dialog h1{font-size:17px}.arcade-extras{gap:12px}}
@media(prefers-reduced-motion:reduce){.ghost-card,.nft-ghost{animation:none}}
[hidden]{display:none!important}
#loading-container{border-color:#c8c2e3}
#loading-pacman{filter:hue-rotate(65deg)}
#loading-container .loading-dot{filter:grayscale(1) brightness(1.5)}

/* Ghost machine: uses the original arcade palette and sprites. */
#seal-choice{border:1px solid #62616d;padding:14px;margin:20px 0;display:flex;gap:8px;flex-wrap:wrap}#seal-choice legend{font-size:9px;padding:0 8px}#seal-choice button{flex:1;min-width:80px;width:auto;margin:0;background:#111217;color:#c8c2e3;border-color:#62616d}#seal-choice button[aria-pressed=true]{background:#c8c2e3;color:#111217;border-color:#c8c2e3}
.capture-tunnel{height:66px;border:2px solid #62616d;position:relative;overflow:hidden;margin:16px 0;background:#111217}.tunnel-dots{color:#c8c2e3;font-size:24px;line-height:60px;white-space:nowrap}.tunnel-pacman{position:absolute;left:0;top:8px;width:48px;height:48px;background:#111217 url(app/style/graphics/spriteSheets/characters/pacman/pacman_right.svg) 0 0/192px 48px;image-rendering:pixelated;z-index:1}.running .tunnel-pacman{animation:chomp-travel .85s linear infinite,chomp-mouth .2s steps(4) infinite}
@keyframes chomp-travel{from{left:-48px}to{left:100%}}@keyframes chomp-mouth{to{background-position:-192px 0}}
#machine-progress{width:100%;height:12px;accent-color:#c8c2e3}.capsule-seal{border-top:1px dashed #62616d;padding-top:12px}#contract-room{border-color:#c8c2e3;background:#111217;width:min(540px,94vw)}#contract-room h1{color:#c8c2e3;font-size:18px}.contract-cartridge{border:3px solid #62616d;background:#24252e;padding:24px 16px 0;margin:22px auto;max-width:360px}.cartridge-ghost{display:block;color:#c8c2e3;font-size:24px;line-height:1.1;white-space:pre}.cartridge-pins{color:#c8c2e3;border-top:2px solid #62616d;padding-top:10px;margin-top:24px;overflow:hidden;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.running .tunnel-pacman{animation:none}}
#chain-contract-status{overflow-wrap:anywhere;line-height:2}

.play-price-note{color:#c0becb;font-size:9px;line-height:2;text-align:center;max-width:90vw;margin:20px auto}
/* End-of-round arcade screen, matching the maze walls. */
#results,#album,#wallet-dialog{background:#111217;border:6px double #c8c2e3;color:#fff;box-shadow:none;border-radius:0;padding:26px 22px}
#results h1,#album h1,#wallet-dialog h1{color:#c8c2e3;margin-bottom:18px}
#results .ghost-card,#album .ghost-card{background:#111217;border:0;border-bottom:2px dotted #ffb8ae;padding:16px 8px;animation:none}
#results .ghost-card.rare,#album .ghost-card.rare{background:#111217;border-color:#c8c2e3}
#results .round-actions{display:grid;gap:12px;margin:18px 0}
#results .round-actions button,#results #view-album,#wallet-dialog button,#album button{background:#111217;color:#c8c2e3;border:4px double #c8c2e3;border-radius:0;margin:0;padding:16px 10px;line-height:1.8}
#results .round-actions button:hover:not(:disabled),#results #view-album:hover,#wallet-dialog button:hover{background:#c8c2e3;color:#111217}
#results .round-actions button:disabled{background:#111217;color:#777;border-color:#444}
#results #view-album{width:auto;margin:20px auto 0;border:0;color:#ffb8ae;font-size:9px}
#claim-status{color:#c8c2e3;font-size:11px;line-height:2;overflow-wrap:anywhere}#claim-status:empty{display:none}
#results #mint-note{color:#ffb8ae;font-size:9px;line-height:2;margin:18px 0}#results .total{border-top:2px dotted #ffb8ae}
#results::backdrop,#album::backdrop,#wallet-dialog::backdrop{background:rgba(0,0,0,.88)}
#results dl{margin:18px 0}#results dl div{padding:7px 0}#wallet-dialog button{margin-top:12px}
#results #replay{background:#111217;color:#c8c2e3;border:4px double #c8c2e3}#results #replay:hover:not(:disabled){background:#c8c2e3;color:#111217}
/* Individual ghost frames echo the double maze wall. */
#results .ghost-card,#album .ghost-card{position:relative;background:#111217;border:6px double #c8c2e3;border-radius:0;padding:20px 10px;margin:4px;box-shadow:none;clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px))}
#results .ghost-card.rare,#album .ghost-card.rare{background:#111217;border-color:#c8c2e3}
#results .ghost-card small,#album .ghost-card small{color:#ffb8ae}

.opensea-link{position:absolute;right:24px;bottom:22px;z-index:20;display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:9px;background:#111217;padding:10px;border:2px solid #c8c2e3}.opensea-link img{width:32px;height:32px;image-rendering:pixelated}.opensea-link:hover{color:#c8c2e3}.opensea-link:focus-visible{outline:3px solid #fff;outline-offset:4px}#wallet-dialog .network-label{margin:0 0 18px;color:#c8c2e3}@media(max-width:480px){.opensea-link{right:12px;bottom:12px;padding:6px}.opensea-link span{display:none}}
/* Shared PLAY-button treatment for arcade actions. */
#game-start,
#wallet-dialog button,
#results .round-actions button,
#results #replay,
#results #mint,
#results #view-album,
#album button {
  background:#ecebef;
  color:#17171d;
  border:2px solid #ecebef;
  border-radius:10px;
  box-shadow:5px 5px 0 #50515e;
  font-family:'Press Start 2P',monospace;
  cursor:pointer;
  transition:background-color .12s,box-shadow .12s;
}
#wallet-dialog button,#results .round-actions button,#results #view-album,#album button {
  padding:16px 12px;
  line-height:1.8;
  margin-top:14px;
}
#results #view-album {width:100%;font-size:11px;margin:20px 0 5px}
#game-start:hover:not(:disabled),#wallet-dialog button:hover:not(:disabled),
#results .round-actions button:hover:not(:disabled),#results #replay:hover:not(:disabled),
#results #mint:hover:not(:disabled),#results #view-album:hover:not(:disabled),#album button:hover:not(:disabled) {
  background:#ffffff;color:#17171d;border-color:#ffffff;
}
#game-start:active:not(:disabled),#wallet-dialog button:active:not(:disabled),
#results .round-actions button:active:not(:disabled),#results #view-album:active:not(:disabled),#album button:active:not(:disabled) {
  box-shadow:2px 2px 0 #50515e;
}
#wallet-dialog button:disabled,#results .round-actions button:disabled,
#results #mint:disabled,#results #replay:disabled,#album button:disabled {
  background:#363640;color:#b4b3bf;border-color:#363640;box-shadow:5px 5px 0 #22232b;cursor:default;
}
#game-start:focus-visible,#wallet-dialog button:focus-visible,#results button:focus-visible,#album button:focus-visible {
  outline:3px solid #fff;outline-offset:7px;
}
/* Frames share the PLAY button's green edge, corners and offset shadow. */
#results,#album,#wallet-dialog {
  border:3px solid #ecebef;
  border-radius:10px;
  box-shadow:5px 5px 0 #50515e;
  background:#111217;
}
#results .ghost-card,#album .ghost-card,
#results .ghost-card.rare,#album .ghost-card.rare {
  border:2px solid #ecebef;
  border-radius:10px;
  box-shadow:4px 4px 0 #50515e;
  clip-path:none;
  background:#111217;
}
#arcade-side{position:absolute;top:105px;right:20px;width:210px;padding:18px 12px;background:#111217;border:3px solid #ecebef;border-radius:10px;box-shadow:5px 5px #50515e;font-size:9px;line-height:2;color:#c8c2e3;z-index:15}#capture-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.hud-ghost{text-align:center}.hud-ghost .nft-ghost{width:32px;height:32px;background-size:64px 32px;animation:none;margin:8px auto}#arcade-side button,#results #share-run{background:#ecebef;border:2px solid #ecebef;border-radius:10px;box-shadow:4px 4px #50515e;color:#17171d;padding:12px 8px;width:100%;font:inherit;cursor:pointer;margin-top:16px}#rare-alert{color:#ffa543}#perfect-run{color:#c8c2e3;font-size:13px}#arcade-side button:focus-visible{outline:3px solid white;outline-offset:4px}
@media(max-width:1100px){#arcade-side{position:relative;top:auto;right:auto;width:min(94vw,600px);margin:20px auto}#capture-icons{max-width:220px;margin:auto}body{overflow:auto}}
#arcade-side section{border-top:2px dotted #50515e;margin-top:20px;padding-top:12px}#arcade-side h2{font-size:9px;line-height:2;color:#fff}#arcade-side small{font-size:7px;color:#aaa}#arcade-side ol{padding-left:20px;font-size:8px}#arcade-side li{padding:6px 0}#daily-award{color:#ffb8ae;font-size:8px}
#arcade-side{display:none}
/* Wallet entry uses the same lime as the maze. */
#wallet-dialog{border-color:#c8c2e3;box-shadow:5px 5px 0 #555564}
#wallet-dialog h1,#wallet-dialog .network-label{color:#c8c2e3}
#wallet-dialog button{background:#c8c2e3;border-color:#c8c2e3;color:#17171d;box-shadow:5px 5px 0 #555564}
#wallet-dialog button:hover:not(:disabled){background:#e1ddef;border-color:#e1ddef;color:#17171d}
#wallet-dialog button:disabled{background:#56545f;border-color:#56545f;color:#b7b5c3;box-shadow:5px 5px 0 #30313b}
/* Home actions follow the character palette. */
#logo{filter:grayscale(1) sepia(1) saturate(8) hue-rotate(18deg)}
#game-start{background:#c8c2e3;border-color:#c8c2e3;color:#17171d;box-shadow:5px 5px 0 #555564}
#game-start:hover:not(:disabled){background:#e1ddef;border-color:#e1ddef;color:#17171d}
#game-start:active:not(:disabled){box-shadow:2px 2px 0 #555564}
.opensea-link{border:2px solid #c8c2e3;border-radius:10px;box-shadow:4px 4px 0 #555564}
.concept-link{display:block;margin:28px auto 0;color:#c8c2e3;font-family:'Press Start 2P',monospace;font-size:11px;line-height:2;text-underline-offset:6px}.concept-link:focus-visible{outline:3px solid white;outline-offset:6px}
#practice-follow-open{display:flex;align-items:center;justify-content:center;min-height:48px;padding:14px 10px;margin:22px 0 0;border:2px solid #c8c2e3;color:#c8c2e3;font-size:10px;line-height:1.8}#practice-follow-open:focus-visible{outline:3px solid white;outline-offset:4px}
