*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:linear-gradient(135deg,#dde8f5,#f8faff,#fff);color:#1a2332;min-height:100vh;min-height:100dvh}.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:2rem 1.25rem 1.5rem;gap:1.5rem}.top-panel{background:#fff;border-radius:20px;box-shadow:0 8px 40px #6482b426;padding:1.25rem 2rem;width:min(92vw,400px);display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.top-panel h1{font-size:1rem;font-weight:700;color:#1a2332}.card-stage{flex:1;width:min(92vw,400px);display:flex;align-items:flex-start}.card-image{width:100%;height:100%;object-fit:contain;border-radius:14px;box-shadow:0 8px 32px #00000026}.card-placeholder{width:100%;aspect-ratio:5 / 7;border:2px dashed #c8d4e8;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:4rem;color:#c0ccda;font-weight:300}@keyframes card-pop{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.card-stage.animated{animation:card-pop .3s ease-out both}button{border:none;border-radius:999px;font-size:.95rem;font-weight:600;padding:.65rem 2rem;cursor:pointer;transition:opacity .15s,transform .1s;width:100%}button:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}.btn-primary{background:#2563eb;color:#fff}.subtle{color:#8898aa;font-size:.8rem}.error{color:#e05c5c;font-size:.85rem}
