:root{--ink:#0b1220;--muted:#64748b;--line:#e5e7eb;--acc:#22c55e;--acc2:#60a5fa;--radius:16px;--card-w:clamp(54px,8vw,120px)}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}.hidden{display:none}.theme-light-1{background:radial-gradient(1200px 800px at 50% -10%,#fdfcfb,#f3f8ff 60%);color:#0f172a}.theme-light-2{background:radial-gradient(1200px 800px at 50% -10%,#f7fafc,#e8f3ff 60%);color:#0b1220}.theme-light-3{background:radial-gradient(1200px 800px at 50% -10%,#fffaf0,#f0f7ff 60%);color:#111827}.theme-light{background:radial-gradient(1200px 800px at 50% -10%,#f1f5f9,#e0e7ef 60%);color:#0f172a}.theme-mid{background:radial-gradient(1200px 800px at 50% -10%,#a5b4fc,#64748b 60%);color:#111827}.theme-dark{background:radial-gradient(1200px 800px at 50% -10%,#1e293b,#0b1220 60%);color:#e2e8f0}.wrap{max-width:min(1200px,96vw);margin:24px auto;padding:clamp(12px,2vw,20px)}header h1{margin:8px 0 6px;font-size:clamp(18px,2.6vw,22px)}header .lead{opacity:0.9;font-size:clamp(13px,1.8vw,15px)}.top-actions{position:sticky;top:8px;display:flex;gap:8px;justify-content:flex-end;z-index:10}.btn{appearance:none;border:1px solid var(--acc2);background:#fff;color:#334155;border-radius:999px;padding:8px 14px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px rgba(96,165,250,0.18);display:inline-flex;gap:8px;align-items:center}.btn.primary{background:var(--acc);border-color:var(--acc);color:#052e1b;box-shadow:0 6px 16px rgba(34,197,94,0.28)}.btn.secondary{background:rgba(255,255,255,0.9)}.btn:disabled{opacity:0.6;cursor:not-allowed}.btn svg{width:16px;height:16px}@media (max-width:520px){.btn .txt{display:none}.btn{padding:8px 10px}}.panel{margin-top:14px;padding:12px;border-radius:var(--radius);background:rgba(148,163,184,0.08);border:1px solid rgba(148,163,184,0.22);backdrop-filter:saturate(120%) blur(4px)}.ctrls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}.status{font-weight:700}.field{display:flex;align-items:center;gap:8px}.grid-compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.spread{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--card-w),1fr));gap:clamp(4px,1vw,10px);padding:clamp(2px,1vw,8px);perspective:2000px;position:relative;min-height:400px;transition:all 0.5s ease}.spread.deck-mode{display:flex;justify-content:center;align-items:center;min-height:500px}.deck-stack{position:relative;width:clamp(100px,15vw,180px);aspect-ratio:46/69;cursor:pointer;transform-style:preserve-3d;transition:transform 0.3s ease}.deck-stack::before,.deck-stack::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 60% 40%,#e0f7fa 60%,#b2ebf2 100%);border:2px solid #b2ebf2;border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,0.18),inset 0 2px 8px rgba(255,255,255,0.4),inset 0 -2px 8px rgba(0,0,0,0.1)}.deck-stack::before{transform:translateY(-8px) translateX(-3px) rotateZ(-3deg);opacity:0.7;z-index:-2}.deck-stack::after{transform:translateY(-4px) translateX(3px) rotateZ(2deg);opacity:0.85;z-index:-1;background:radial-gradient(circle at 60% 40%,#b2ebf2 60%,#80deea 100%)}.deck-stack .deck-prompt{position:relative;width:100%;height:100%;background:radial-gradient(circle at 60% 40%,#e0f7fa 60%,#b2ebf2 100%);border:2px solid #b2ebf2;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px rgba(0,0,0,0.18),inset 0 2px 8px rgba(255,255,255,0.4),inset 0 -2px 8px rgba(0,0,0,0.1);z-index:1}.deck-stack .deck-prompt::after{content:'✦';position:absolute;font-size:48px;color:#e573b7;opacity:0.3;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.deck-stack .deck-text{position:absolute;top:-60px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#22c55e,#60a5fa);color:white;padding:12px 24px;border-radius:999px;font-weight:800;font-size:16px;box-shadow:0 8px 24px rgba(34,197,94,0.3);white-space:nowrap;animation:deckPulse 2s ease-in-out infinite;pointer-events:none}.deck-stack:hover{transform:scale(1.1) translateY(-10px)}.deck-stack:active{transform:scale(0.95)}@keyframes deckPulse{0%,100%{transform:translateX(-50%) translateY(0) scale(1);opacity:1}50%{transform:translateX(-50%) translateY(-5px) scale(1.05);opacity:0.9}}.spread.deck-mode .tarot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotateZ(0deg);animation:none;margin:0;pointer-events:none;opacity:1}.spread.deck-mode .tarot:nth-child(1){transform:translate(-50%,-50%) rotateZ(-2deg) translateY(-1px);z-index:1}.spread.deck-mode .tarot:nth-child(2){transform:translate(-50%,-50%) rotateZ(1deg) translateY(-2px);z-index:2}.spread.deck-mode .tarot:nth-child(3){transform:translate(-50%,-50%) rotateZ(-1deg) translateY(-3px);z-index:3}.spread.deck-mode .tarot:nth-child(4){transform:translate(-50%,-50%) rotateZ(2deg) translateY(-4px);z-index:4}.spread.deck-mode .tarot:nth-child(5){transform:translate(-50%,-50%) rotateZ(-1.5deg) translateY(-5px);z-index:5}.spread.deck-mode .tarot:nth-child(6){transform:translate(-50%,-50%) rotateZ(0.5deg) translateY(-6px);z-index:6}.spread.deck-mode .tarot:nth-child(7){transform:translate(-50%,-50%) rotateZ(-0.8deg) translateY(-7px);z-index:7}.spread.deck-mode .tarot:nth-child(8){transform:translate(-50%,-50%) rotateZ(1.2deg) translateY(-8px);z-index:8}.spread.deck-mode .tarot:nth-child(9){transform:translate(-50%,-50%) rotateZ(-0.3deg) translateY(-9px);z-index:9}.spread.deck-mode .tarot:nth-child(10){transform:translate(-50%,-50%) rotateZ(0.7deg) translateY(-10px);z-index:10}.spread.deck-mode .tarot:nth-child(n + 11){transform:translate(-50%,-50%) rotateZ(calc(var(--i,0) * 0.1deg)) translateY(calc(-11px - var(--i,0) * 1px));z-index:calc(11 + var(--i,0))}@keyframes cardFanIn{0%{opacity:0;transform:translateY(-100px) translateZ(-200px) rotateX(45deg) scale(0.3)}50%{opacity:0.5;transform:translateY(-20px) translateZ(-50px) rotateX(20deg) scale(0.8)}100%{opacity:1;transform:translateY(0) translateZ(0) rotateX(0) scale(1)}}@keyframes cardFloat{0%,100%{transform:translateY(0) translateZ(0)}50%{transform:translateY(-8px) translateZ(20px)}}.tarot{position:relative;width:var(--card-w);aspect-ratio:46/69;perspective:1500px;border-radius:12px;margin:0 auto;transform-style:preserve-3d;cursor:pointer;transition:all 0.4s cubic-bezier(0.4,0,0.2,1)}.spread:not(.deck-mode) .tarot{animation:cardFanIn 0.8s cubic-bezier(0.34,1.56,0.64,1) backwards}.tarot:nth-child(1){animation-delay:0.02s}.tarot:nth-child(2){animation-delay:0.04s}.tarot:nth-child(3){animation-delay:0.06s}.tarot:nth-child(4){animation-delay:0.08s}.tarot:nth-child(5){animation-delay:0.1s}.tarot:nth-child(6){animation-delay:0.12s}.tarot:nth-child(7){animation-delay:0.14s}.tarot:nth-child(8){animation-delay:0.16s}.tarot:nth-child(9){animation-delay:0.18s}.tarot:nth-child(10){animation-delay:0.2s}.tarot:nth-child(n + 11){animation-delay:calc(0.2s + (var(--i,0) * 0.015s))}.inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform 0.6s cubic-bezier(0.4,2,0.3,1)}.tarot.flipped .inner{transform:rotateY(180deg)}.tarot.selected{animation:cardFloat 2s ease-in-out infinite}.tarot.selected .inner{box-shadow:0 0 30px rgba(34,197,94,0.6)}.back,.face{position:absolute;inset:0;backface-visibility:hidden;border-radius:12px}.back{background:radial-gradient(circle at 60% 40%,#e0f7fa 60%,#b2ebf2 100%);border:2px solid #b2ebf2;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px rgba(0,0,0,0.18),inset 0 2px 8px rgba(255,255,255,0.4),inset 0 -2px 8px rgba(0,0,0,0.1);transition:all 0.3s ease}.back::after{content:'';position:absolute;inset:0;opacity:0.25;background:url('data:image/svg+xml;utf8,<svg xmlns="https://www.w3.org/2000/svg" width="92" height="138"><g opacity="0.18"><polygon points="10,18 12,22 16,22 13,25 14,29 10,27 6,29 7,25 4,22 8,22" fill="%23e573b7"/></g></svg>') center/cover no-repeat}.back span{color:#e573b7;font-weight:900;letter-spacing:2px;font-size:10px;background:rgba(255,255,255,0.18);padding:2px 6px;border-radius:8px}.face{transform:rotateY(180deg);background:linear-gradient(135deg,#fffde4 60%,#f7e8ff 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,0.15),inset 0 2px 8px rgba(255,255,255,0.5),inset 0 -2px 8px rgba(0,0,0,0.08);border:1px solid rgba(255,255,255,0.6)}.cardimg{width:18px;height:18px;margin-bottom:4px}.title,.subtitle{background:rgba(255,255,255,0.7);border-radius:6px;padding:2px 6px;box-shadow:0 2px 8px rgba(0,0,0,0.08)}.title{font-weight:800;font-size:12px}.subtitle{font-size:11px;color:#475569;margin-top:4px}.badge{position:absolute;top:-8px;right:-8px;background:#10b981;color:#052e1b;border:1px solid #34d399;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;display:none}.tarot.selected .badge{display:inline-block}.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.slot{min-height:110px;border:1px dashed rgba(148,163,184,0.35);border-radius:12px;padding:6px;display:flex;align-items:flex-start;gap:8px}.mini{width:46px;height:69px;border-radius:8px;background:#0ea5e9;border:1px solid rgba(255,255,255,0.5);box-shadow:0 6px 12px rgba(0,0,0,0.3);display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}.info{font-size:13px}.tip{margin-top:2px;font-size:12px;color:#64748b}.kw{margin-top:6px;font-size:12px;color:#475569}.kw b{font-weight:800;color:#0b1220}.result{white-space:pre-wrap;margin-top:8px}.error-banner{display:none;margin-top:12px;padding:10px;border-radius:12px;background:#fee2e2;color:#7f1d1d;border:1px solid #fecaca;font-weight:700}select,option{font-size:14px}.group-label{font-weight:800;font-size:12px;color:#475569;margin-top:6px}