:root{--bg:#120e1f;--card:#201936;--line:rgba(232,201,138,0.18);--gold:#e8c98a;--gold-2:#b8945a;--text:#efe9ff;--muted:#a79fc2;--lock:#7d74a3;--radius:16px;--serif:Georgia,"Times New Roman",serif}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}body{min-height:100vh;background:radial-gradient(120% 60% at 50% -10%,#2a1f4d 0,var(--bg) 60%)}button{font-family:inherit}.wrap{max-width:520px;margin:0 auto;padding:22px 16px 40px}.brand{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:.01em;color:var(--gold)}.status{margin-top:2px;color:var(--muted);font-size:14px}.spreads{display:grid;grid-gap:12px;gap:12px;margin-top:24px}.spread{display:flex;align-items:center;gap:14px;width:100%;padding:14px;text-align:left;color:inherit;font-size:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:transform .15s ease,border-color .15s ease}.spread:active{transform:scale(.98)}.spread.open:hover{border-color:rgba(232,201,138,.45)}.spread:disabled{opacity:.6}.glyph{flex:none;display:grid;place-items:center;width:44px;height:44px;font-size:20px;color:var(--gold);background:linear-gradient(160deg,#3a2c66,#1d1636);border-radius:12px}.spread.locked .glyph{color:var(--lock);font-size:17px}.spread.soon{opacity:.55;cursor:default}.label{display:grid;min-width:0}.t{font-weight:600;line-height:1.3}.h{font-size:13px;color:var(--muted)}.badge{flex:none;margin-left:auto;padding:4px 10px;color:var(--gold);white-space:nowrap;border:1px solid var(--line);border-radius:999px}.badge,.note{font-size:12px}.note{margin-top:22px;line-height:1.45;color:var(--muted);text-align:center}.err{margin-top:16px;padding:12px 14px;font-size:14px;color:#ffd6e0;background:#3a1d2c;border-radius:12px}.loader{width:28px;height:28px;margin:48px auto;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}.back{padding:4px 0;font-size:15px;color:var(--muted);background:none;border:0;cursor:pointer}.title{margin:8px 0 20px;font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.25;color:var(--gold)}.cards{display:flex;justify-content:center;gap:10px}.card{flex:1 1;max-width:150px;padding:0;color:inherit;background:none;border:0;cursor:pointer;perspective:900px;animation:deal .5s ease both}.card-inner{position:relative;display:block;aspect-ratio:7/12;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.card.is-flipped .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.card-back{display:grid;place-items:center;background:repeating-linear-gradient(45deg,#2b2150 0 6px,#251c45 6px 12px);box-shadow:inset 0 0 0 6px #1b1530,inset 0 0 0 7px var(--gold-2)}.back-sigil{font-size:28px;color:var(--gold)}.card-front{background:#f3ead6;transform:rotateY(180deg)}.card-front img{display:block;width:100%;height:100%;object-fit:cover}.front-fallback{display:grid;place-items:center;height:100%;padding:8px;font-family:var(--serif);font-size:14px;line-height:1.3;color:#2b2150;text-align:center}.card-caption{display:block;margin-top:8px;font-size:12px}.card-caption,.hint{color:var(--muted);text-align:center}.hint{margin-top:18px}.hint,.names{font-size:14px}.names{display:grid;grid-gap:4px;gap:4px;margin-top:20px;color:var(--muted)}.names b{font-weight:600;color:var(--gold)}.text{padding:18px;white-space:pre-line;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);animation:fade .6s ease both}.cta,.text{margin-top:16px}.cta{display:block;width:100%;padding:15px;font-size:16px;font-weight:600;color:#1b1530;background:linear-gradient(180deg,var(--gold),var(--gold-2));border:0;border-radius:14px;cursor:pointer}@keyframes spin{to{transform:rotate(1turn)}}@keyframes deal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}