:root{--plum:#24072e;--plum-2:#3b0d44;--plum-3:#5c1754;--pink:#ff6fb5;--hot:#ff3d9a;--text:#ffe9f4;--muted:#d7a9c8;--gold:#fff2a8;--rainbow:linear-gradient(90deg, #ff4f6e, #ff9f1c, #ffe14d, #5fdd6b, #3fb6ff, #a66bff, #ff6fd8);--pixel:"Press Start 2P", monospace;--body:"Pixelify Sans", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--plum)}body{min-height:100vh;color:var(--text);font-family:var(--body);background:radial-gradient(ellipse at 50% -10%, #ff6fb559, transparent 60%), radial-gradient(ellipse at 50% 120%, #a66bff40, transparent 60%), var(--plum);background-attachment:fixed;margin:0;font-size:18px;font-weight:500;line-height:1.45}body:before{content:"";pointer-events:none;background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,#0000 51%),radial-gradient(1.5px 1.5px at 78% 12%,#fff2a8 50%,#0000 51%),radial-gradient(1.5px 1.5px at 33% 72%,#ffd1e8 50%,#0000 51%),radial-gradient(1.5px 1.5px at 88% 64%,#b3e0ff 50%,#0000 51%),radial-gradient(1.5px 1.5px at 55% 40%,#fff 50%,#0000 51%),radial-gradient(1.5px 1.5px at 6% 88%,#fff2a8 50%,#0000 51%),radial-gradient(1.5px 1.5px at 66% 92%,#ffd1e8 50%,#0000 51%);animation:3s ease-in-out infinite alternate twinkle;position:fixed;inset:0}@keyframes twinkle{0%{opacity:.25}to{opacity:1}}.app{flex-direction:column;align-items:center;gap:12px;max-width:720px;margin:0 auto;padding:16px 16px 40px;display:flex}.stage{width:min(100%,64vh,640px);min-width:240px;position:relative}#game{aspect-ratio:1;width:100%;image-rendering:pixelated;touch-action:none;cursor:crosshair;box-shadow:0 0 0 3px var(--plum), 0 0 0 6px var(--pink), 0 0 40px #ff6fb573;border-radius:6px;display:block}body[data-scene=title] #game{cursor:pointer}.card-holder{place-items:center;padding:6px 0 2px;display:grid}.card{--mx:50%;--my:50%;--px:50%;--py:50%;--rx:0deg;--ry:0deg;--hyp:0;aspect-ratio:250/350;perspective:1100px;touch-action:pan-y;cursor:grab;width:min(94vw,460px,57.1429vh)}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));position:relative}.card-face{backface-visibility:hidden;isolation:isolate;border-radius:4.8%/3.43%;position:absolute;inset:0;overflow:hidden;box-shadow:0 14px 34px #0a001499,0 0 40px #ff6fb559}.card-back{transform:rotateY(180deg)}.card-img{width:100%;height:100%;image-rendering:pixelated;display:block}.card-foil,.card-glitter,.card-glare{pointer-events:none;position:absolute;inset:0}.card-foil,.card-glitter{-webkit-mask-image:var(--mask);-webkit-mask-image:var(--mask);mask-image:var(--mask);-webkit-mask-size:100% 100%;mask-size:100% 100%}.card-foil{background-image:repeating-linear-gradient(90deg,#00000047 0 1px,#0000 1px 3px),repeating-linear-gradient(115deg,#ff5c8a 0%,#ffcf5c 4%,#7dff8f 8%,#5ce1ff 12%,#9b7bff 16%,#ff6fd8 20%,#ff5c8a 24%);background-size:100% 100%,300% 300%;background-position:0 0, var(--px) var(--py);mix-blend-mode:color-dodge;filter:brightness(.85)contrast(1.25)saturate(1.5);opacity:calc(.5 + var(--hyp) * .5)}.card-glitter{background-image:var(--glitter), radial-gradient(circle at var(--mx) var(--my), #fff 0%, #aaa 35%, #1a1a1a 80%), linear-gradient(115deg, #ff5c8a, #ffcf5c, #7dff8f, #5ce1ff, #9b7bff, #ff6fd8);background-size:140px 140px,100% 100%,300% 300%;background-position:var(--px) var(--py), 0 0, var(--px) var(--py);background-blend-mode:multiply, multiply;mix-blend-mode:color-dodge;opacity:.8}.card-glare{background:radial-gradient(farthest-corner circle at var(--mx) var(--my), #fffc 0%, #ffffff40 25%, #00000026 90%);mix-blend-mode:overlay;opacity:calc(.35 + var(--hyp) * .5)}.card[data-style=reverse] .card-foil{opacity:calc(.6 + var(--hyp) * .4)}.card[data-style=reverse] .card-glitter{opacity:1}.card[data-style=full] .card-foil{background-image:repeating-conic-gradient(from 0deg at 50% 29%, transparent 0deg 3deg, #0000008c 3deg 6deg), var(--cosmos), repeating-linear-gradient(115deg, #ff5c8a 0%, #ffcf5c 4%, #7dff8f 8%, #5ce1ff 12%, #9b7bff 16%, #ff6fd8 20%, #ff5c8a 24%);background-size:100% 100%,200px 200px,300% 300%;background-position:0 0, var(--px) var(--py), var(--px) var(--py);background-blend-mode:normal, screen;opacity:calc(.65 + var(--hyp) * .35)}.card[data-style=full] .card-glitter{opacity:1}.card.flash .card-front:after{content:"";pointer-events:none;background:#fff;animation:.8s ease-out forwards flash;position:absolute;inset:0}@keyframes flash{0%{opacity:.95}to{opacity:0}}.toast{background:var(--hot);color:#fff;text-align:center;opacity:0;pointer-events:none;border-radius:999px;width:max-content;max-width:calc(100% - 24px);padding:8px 14px;font-size:16px;font-weight:700;transition:opacity .2s,transform .2s;position:absolute;bottom:12px;left:50%;transform:translate(-50%,8px);box-shadow:0 4px #a0306a,0 0 20px #ff3d9a99}.toast.show{opacity:1;transform:translate(-50%)}.hud{text-align:center;max-width:560px;min-height:1.4em;color:var(--gold);margin:0}.panel{width:min(100%,560px);box-shadow:0 0 0 2px var(--plum), 0 0 0 4px var(--pink);background:#3b0d44bf;border-radius:8px;padding:16px}.panel.slim{box-shadow:none;background:0 0;padding:10px}.intro{margin:0 0 14px}.intro em{color:var(--pink);font-style:normal}.note{text-align:center;margin:0 0 12px}h2{font-family:var(--pixel);color:var(--gold);margin:18px 0 8px;font-size:12px}form{gap:12px;display:grid}label{gap:4px;font-weight:700;display:grid}.opt{color:var(--muted);font-weight:400}input,textarea{border:2px solid var(--pink);background:var(--plum);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:4px;padding:10px 12px;font-size:17px}input::placeholder,textarea::placeholder{color:#b48aac}input:focus-visible,textarea:focus-visible,.btn:focus-visible,.entry:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px;display:flex}.btn{border:2px solid var(--pink);background:var(--plum-2);min-height:44px;color:var(--text);font-family:var(--pixel);cursor:pointer;border-radius:4px;padding:10px 14px;font-size:12px;line-height:1.4;transition:transform 50ms,box-shadow 50ms,background .15s;box-shadow:0 4px #a0306a}.btn:hover{background:var(--plum-3)}.btn:active{transform:translateY(3px);box-shadow:0 1px #a0306a}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--hot);color:#fff;text-shadow:1px 1px #a0306a;border-color:#fff}.btn.primary:hover{background:#ff5aab}.btn.small{min-height:36px;padding:8px 10px;font-size:10px}form .btn.primary{justify-self:center;padding:14px 18px;font-size:14px}.ledger{gap:8px;margin:0;padding:0;list-style:none;display:grid}.entry{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#24072eb3;border:0;border-radius:6px;align-items:center;gap:12px;padding:6px 10px;display:flex}.entry:hover{background:#5c1754cc}.thumb{width:72px;height:auto;image-rendering:pixelated;flex:none}.entry-text{display:grid}.entry-text strong{color:var(--gold)}.entry-text span{color:var(--muted);font-size:16px}.foot{color:var(--muted);text-align:center;justify-items:center;gap:10px;margin-top:8px;display:grid}.egg{opacity:.85;margin:0;font-size:14px}.traits{flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.traits li{color:var(--text);background:#ff6fb52e;border-radius:999px;padding:4px 10px;font-size:16px;box-shadow:inset 0 0 0 1px #ff6fb599}.traits li span{color:var(--gold)}.token{text-align:center;color:var(--muted);overflow-wrap:anywhere;margin:0 0 12px;font-size:15px}@media (prefers-reduced-motion:reduce){body:before,.card.flash .card-front:after{animation:none}}
