:root{--green:#7dffb3;--bg:#14161a;--panel:#1e2127db;--text:#e8ece9;--muted:#8f9aa1;--bad:#ff7a8a;--gold:#ffd36e;--font:"Press Start 2P",ui-monospace,monospace}*{box-sizing:border-box}html,body{overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);height:100%;margin:0}button{font-family:var(--font)}#scene{position:fixed;image-rendering:pixelated;width:100%;height:100%;transition:opacity 1.6s ease-in-out;inset:0}#hud,#labels,#tray,#charms,#controls,#hint{transition:opacity 1.2s ease-in-out}body.intro #scene,body.intro #labels,body.intro #hud,body.intro #tray,body.intro #charms,body.intro #controls,body.intro #hint,body.on-title #hud,body.on-title #labels,body.on-title #tray,body.on-title #charms,body.on-title #hint,body.on-title #foe-panel,body.on-title #tags{opacity:0;pointer-events:none}.line{display:inline-block;opacity:0}body.intro-play .line-presents{animation:presents-in 1.1s cubic-bezier(.16,1,.3,1).15s forwards}body.intro-play .line-name{animation:title-in 1.5s cubic-bezier(.16,1,.3,1)1.2s forwards}body.intro-play .line-pitch{animation:line-fade .9s ease-out 2.3s forwards}body.intro-play .line-start{animation:line-fade .9s ease-out 3s forwards}body.intro-skip .line{opacity:1;animation:none!important}@keyframes presents-in{0%{opacity:0;letter-spacing:16px;filter:blur(6px)}to{opacity:1;letter-spacing:3px;filter:blur(0)}}@keyframes title-in{0%{opacity:0;transform:translateY(28px)scale(1.12);filter:blur(12px);letter-spacing:14px}60%{opacity:1}to{opacity:1;transform:none;filter:blur(0);letter-spacing:6px}}@keyframes line-fade{0%{opacity:0}to{opacity:1}}#hud{position:fixed;display:flex;letter-spacing:1px;text-shadow:0 2px #00000080;pointer-events:none;justify-content:space-between;align-items: flex-start;gap:16px;padding:14px 20px;font-size:12px;top:0;left:0;right:0}#hud-left{display:flex;flex-direction:column;gap:10px}#hud-rival{color:var(--bad);font-size:9px}#hud-score{color:var(--green);font-size:16px}#hud-right{position:relative;display:flex;align-items: center;gap:18px}.coin-pop{position:absolute;color:var(--gold);text-shadow:0 2px #0009;animation:coin-pop 1.2s steps(8)forwards;pointer-events:none;font-size:14px;top:100%;left:0}@keyframes coin-pop{0%{transform:translateY(0);opacity:1}to{transform:translateY(-14px);opacity:0}}#hud-coins{color:var(--gold);font-size:16px}#hud-lives{color:var(--bad);font-size:16px}#banner{position:fixed;text-align:center;background:var(--panel);border:2px solid var(--green);opacity:0;pointer-events:none;min-width:min(520px,92vw);max-width:92vw;padding:12px 20px;transition:opacity .2s,transform .2s;top:54px;left:50%;transform:translate(-50%,-8px)}#banner.show{opacity:1;transform:translate(-50%)}#banner[data-tone=great]{border-color:var(--green);box-shadow:0 0 24px #7dffb359}#banner[data-tone=good]{border-color:#7df9ff}#banner[data-tone=bad]{border-color:var(--bad);box-shadow:0 0 24px #ff7a8a4d}#banner[data-tone=gold]{border-color:var(--gold);box-shadow:0 0 24px #ffd36e4d}#banner-title{margin-bottom:8px;font-size:16px}#banner[data-tone=great] #banner-title{color:var(--green)}#banner[data-tone=bad] #banner-title{color:var(--bad)}#banner[data-tone=gold] #banner-title{color:var(--gold)}#banner-detail{color:var(--muted);font-size:9px;line-height:1.7}#toast{position:fixed;color:var(--bad);background:var(--panel);border:2px solid var(--bad);opacity:0;pointer-events:none;padding:9px 14px;transition:opacity .15s,transform .15s;font-size:10px;top:10px;left:50%;transform:translate(-50%,-6px)}#toast.show{opacity:1;transform:translate(-50%)}#toast[data-tone=good]{color:var(--green);border-color:var(--green)}#toast[data-tone=gold]{color:var(--gold);border-color:var(--gold)}#hint{position:fixed;text-align:center;color:var(--muted);text-shadow:0 2px #0009;pointer-events:none;max-width:min(760px,92vw);margin:0;font-size:9px;line-height:1.8;bottom:148px;left:50%;transform:translate(-50%)}#auto{position:fixed;color:var(--bg);background:var(--gold);pointer-events:none;opacity:0;padding:6px 12px;font-size:10px;bottom:124px;left:50%;transform:translate(-50%)}#auto.show{opacity:1}#labels,#tags{position:fixed;pointer-events:none;inset:0}.label{position:absolute;letter-spacing:1px;color:var(--muted);text-shadow:0 2px #000000b3;font-size:7px;transform:translate(-50%,-50%)}.label.you{color:var(--green)}.label.foe{color:var(--bad)}.tag{position:absolute;display:flex;color:var(--bg);background:var(--green);cursor:pointer;pointer-events:auto;border:2px solid #fff;justify-content:center;align-items: center;min-width:30px;height:30px;padding:0 6px;font-size:12px;transform:translate(-50%,-100%);box-shadow:0 3px #00000080}.tag.capture{background:var(--bad)}.tag.rosette{background:var(--gold)}.tag.home{background:#7df9ff}.tag.picked{border-color:var(--gold);transform:translate(-50%,-100%)scale(1.2)}.tag.dimmed{opacity:.25}.tag small{margin-left:6px;font-size:7px}#tray{position:fixed;display:flex;background:var(--panel);border:2px solid var(--muted);align-items: center;gap:18px;min-height:84px;padding:10px 16px;bottom:14px;left:50%;transform:translate(-50%)}#tray[data-side=you]{border-color:var(--green)}#tray[data-side=foe]{border-color:var(--bad)}#dice{display:flex;gap:8px;min-width:100px}.die{display:flex;color:var(--bg);background:var(--green);border:2px solid #fff;justify-content:center;align-items: center;width:46px;height:46px;font-size:18px;box-shadow:0 3px #00000080}.die.foe{background:var(--bad)}.die.blank{color:var(--muted);border-color:var(--muted);background:#23262c}.die.double{background:var(--gold)}.die.rolling{animation:tumble .14s steps(2)infinite;color:var(--text);border-color:var(--muted);background:#3a3f48}@keyframes tumble{0%{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-6px)rotate(6deg)}to{transform:translateY(0)rotate(-6deg)}}#roll-info{display:flex;flex-direction:column;gap:6px;min-width:130px}#roll-total{color:var(--text);font-size:18px}#roll-notes{color:var(--gold);font-size:7px;line-height:1.8}#actions{display:flex;flex-direction:column;gap:4px}#actions button{padding:6px 10px;font-size:8px}#actions button,#controls button,#shop-buttons button{color:var(--green);background:var(--panel);border:2px solid var(--green);cursor:pointer;text-align:center;padding:9px 12px;font-size:9px}#actions button:hover:not(:disabled),#controls button:hover,#shop-buttons button:hover:not(:disabled){background:#7dffb326}#actions button.hidden,.hidden{display:none}#roll-button{animation:pulse 1s steps(2)infinite;color:var(--bg)!important;background:var(--green)!important}#roll-button:disabled{animation:none;opacity:.4}@keyframes pulse{50%{box-shadow:0 0 14px var(--green)}}#charms{position:fixed;display:flex;gap:6px;bottom:14px;left:16px}.slot{position:relative;display:flex;background:var(--panel);border:2px solid var(--muted);justify-content:center;align-items: center;width:44px;height:44px;font-size:22px}img.pixel{display:block;image-rendering:pixelated;width:32px;height:32px}.card .icon img.pixel{width:64px;height:64px}.deal .icon img.pixel{width:32px;height:32px}.slot.full{border-color:var(--green);cursor:default}.slot.sellable{cursor:pointer}.slot.sellable:hover{border-color:var(--gold)}#tooltip{position:fixed;z-index:40;white-space:pre-line;color:var(--text);border:2px solid var(--green);opacity:0;pointer-events:none;background:#14161af5;max-width:270px;padding:8px 10px;font-size:8px;line-height:1.8;transform:translate(14px,calc(-100% - 12px))}#tooltip.show{opacity:1}#controls{position:fixed;display:flex;flex-direction:column;gap:6px;bottom:14px;right:16px}#controls button{padding:7px 10px;font-size:8px}#fps{position:fixed;letter-spacing:1px;color:var(--green);pointer-events:none;font-size:8px;top:4px;left:50%;transform:translate(-50%)}#fps:empty{display:none}.screen{position:fixed;z-index:20;display:flex;text-align:center;background:#14161a8c;flex-direction:column;justify-content:center;align-items: center;gap:20px;padding:24px;inset:0}#title{background:radial-gradient(#14161a59,#14161ae0)}#title.hidden,.screen.hidden{display:none}#help,#over{background:#14161af2}.screen h1{color:var(--green);letter-spacing:6px;text-shadow:0 0 22px #7dffb380,4px 4px #00000080;margin:0;font-size:clamp(34px,9vw,78px);line-height:1.1}.screen h2{color:var(--green);text-shadow:4px 4px #00000080;margin:0;font-size:20px}.brand{letter-spacing:3px;color:var(--muted);margin:0;font-size:11px}.pitch{color:var(--muted);max-width:560px;margin:0;font-size:9px;line-height:2}.rules{color:var(--muted);max-width:600px;margin:0;font-size:10px;line-height:2}.rules b{color:var(--green)}.cta{color:var(--green);margin:0;font-size:11px}.best{color:var(--gold);margin:0;font-size:8px}.prompt{display:flex;flex-direction:column;align-items: center;gap:14px}.blink{animation:blink 1.1s steps(2,start)infinite}@keyframes blink{to{visibility:hidden}}.button{color:var(--bg);background:var(--green);text-decoration:none;padding:12px 18px;font-size:11px}#help ul{list-style:none;display:flex;text-align:left;flex-direction:column;gap:12px;max-width:680px;margin:0;padding:0}#help li{color:var(--text);position:relative;padding-left:16px;font-size:9px;line-height:1.8}#help li:before{content:"▶";position:absolute;color:var(--green);left:0}body.intro-play .line-modes{animation:line-fade .9s ease-out 2.6s forwards}#modes{display:flex;gap:14px}.mode{display:flex;text-align:center;color:var(--text);border:2px solid var(--muted);cursor:pointer;background:#14161ae6;flex-direction:column;align-items: center;gap:10px;width:210px;padding:14px 10px;transition:transform .1s}.mode:hover{transform:translateY(-3px)}.mode.selected{border-color:var(--green);box-shadow:0 0 20px #7dffb359}.mode .key{color:var(--muted);font-size:9px}.mode.selected .key{color:var(--green)}.mode .name{color:var(--green);font-size:12px}.mode .blurb{color:var(--muted);min-height:6.4em;font-size:7px;line-height:1.9}#store{overflow-y:auto;background:#14161aeb;justify-content:safe center;gap:10px}#store-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;width:min(96vw,1200px)}.deal{position:relative;display:flex;border:2px solid var(--muted);cursor:pointer;background:#14161af2;flex-direction:column;align-items: center;gap:6px;padding:10px 6px}.deal .icon{font-size:28px;line-height:1}.deal .name{color:var(--text);font-size:11px}.deal .blurb{color:var(--muted);min-height:5.4em;font-size:9px;line-height:1.8}.deal .price{color:var(--gold);font-size:13px}.deal.dice{border-color:#7df9ff}.deal.luck{border-color:var(--gold)}.deal.rules{border-color:var(--bad)}.deal.money{border-color:var(--green)}.deal.focus{background:#7dffb31f;box-shadow:0 0 0 3px #fff}.deal.dim{opacity:.38;filter:grayscale(1)}.deal.owned{opacity:.55}.deal.owned:after{content:"OWNED";position:absolute;color:var(--green);font-size:6px;top:4px;right:4px}#store-owned{display:flex;color:var(--muted);align-items: center;gap:8px;font-size:8px}#store-close,#lobby-buttons button,#lobby-link{color:var(--green);background:var(--panel);border:2px solid var(--green);cursor:pointer;padding:10px 14px;font-size:9px}#lobby-link{text-align:center;color:var(--text);width:min(560px,90vw)}#lobby-buttons{display:flex;gap:12px}#lobby-buttons button.primary{color:var(--bg);background:var(--green)}#foe-panel{position:fixed;display:flex;color:var(--bad);text-shadow:0 2px #00000080;flex-direction:column;align-items: flex-end;gap:6px;font-size:8px;top:50px;right:20px}#foe-panel .row{display:flex;gap:4px}#foe-panel .mini{display:flex;background:var(--panel);border:2px solid var(--bad);justify-content:center;align-items: center;width:36px;height:36px}#store-button{color:var(--bg)!important;background:var(--gold)!important;border-color:var(--gold)!important}#shop{background:#14161ad1}#shop-cards{display:flex;justify-content:center;gap:24px;width:min(96vw,1280px)}.card{display:flex;border:2px solid var(--green);cursor:pointer;background:#14161af2;flex-direction:column;flex:1 1 0;align-items: center;gap:16px;max-width:400px;padding:26px 18px;transition:transform .1s}.card:hover:not(.dim){background:#7dffb314;transform:translateY(-4px)}.card .key{color:var(--green);font-size:12px}.card .icon{font-size:56px;line-height:1}.card .name{color:var(--text);font-size:16px}.card .kind{color:var(--muted);font-size:10px}.card .blurb{color:var(--muted);min-height:7.6em;font-size:12px;line-height:1.9}.card .price{color:var(--gold);font-size:20px}.card.rare{border-color:var(--gold);box-shadow:0 0 18px #ffd36e40}.card.uncommon{border-color:#7df9ff}.card.dim{opacity:.4;filter:grayscale(1);cursor:not-allowed}.card.dim .price{color:var(--bad)}.card.sold{opacity:.25;pointer-events:none}.card.nope{animation:nope .3s steps(4)}@keyframes nope{25%{transform:translate(-6px)}75%{transform:translate(6px)}}#shop-owned{display:flex;color:var(--muted);align-items: center;gap:8px;font-size:10px}#shop-next{color:var(--bad);max-width:900px;margin:0;font-size:10px;line-height:2}#shop-buttons{display:flex;gap:14px}#shop-go{color:var(--bg)!important;background:var(--green)!important}#fade{position:fixed;z-index:50;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .6s ease-in-out;inset:0}#fade.on{opacity:1}@media (max-width:760px){#tray{flex-wrap:wrap;justify-content:center;width:96vw;bottom:60px}#controls{flex-direction:row;bottom:8px;right:8px}#charms{bottom:8px;left:8px}#modes{flex-direction:column;gap:8px}.mode{flex-direction:row;width:92vw;padding:8px}.mode .blurb{min-height:0}#store-grid{grid-template-columns:repeat(2,1fr)}#foe-panel{top:auto;bottom:150px}#shop-cards{flex-direction:column;gap:8px}.card{flex-direction:row;flex:none;gap:10px;width:92vw;max-width:none;padding:8px}.card .icon img.pixel{width:32px;height:32px}.card .name{font-size:11px}.card .blurb{min-height:0;font-size:9px}.card .price{font-size:12px}}
