*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}html,body{width:100%;height:100dvh;overflow:hidden;background:#050308;color:#f0e8d8;font-family:Cormorant Garamond,Georgia,serif;-webkit-font-smoothing:antialiased;display:flex;justify-content:center;align-items:center}#app{width:100%;height:100dvh;max-width:56.25dvh;max-height:100dvh;display:flex;flex-direction:column;position:relative;background:#0a0612;overflow:hidden;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (min-aspect-ratio: 9/16){#app{border-left:1px solid rgba(107,77,138,.2);border-right:1px solid rgba(107,77,138,.2);box-shadow:0 0 60px #6b4d8a14}}.screen{position:relative;width:100%;min-height:100%;padding:20px 16px 40px;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at top,#1a0f2e,#0a0612,#050308);flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.screen::-webkit-scrollbar{width:4px}.screen::-webkit-scrollbar-thumb{background:#6b4d8a66;border-radius:2px}#loading-splash{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#0a0612;z-index:50;overflow:hidden}#loading-splash img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}#loading-splash .splash-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#0a061240,#0a06128c 70%,#050308d9)}#loading-splash .splash-loading{position:relative;color:#f4e9ceb3;font-size:12px;letter-spacing:5px;font-family:Cormorant Garamond,Georgia,serif;padding-bottom:60px;animation:splash-pulse 1.5s ease-in-out infinite}@keyframes splash-pulse{0%,to{opacity:.4}50%{opacity:1}}.starfield{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,220,180,.8),transparent),radial-gradient(1px 1px at 60% 70%,rgba(200,180,255,.6),transparent),radial-gradient(1px 1px at 85% 20%,rgba(255,255,255,.8),transparent),radial-gradient(2px 2px at 30% 85%,rgba(255,220,180,.5),transparent),radial-gradient(1px 1px at 50% 50%,rgba(180,200,255,.7),transparent),radial-gradient(1px 1px at 75% 40%,rgba(255,255,255,.6),transparent),radial-gradient(1.5px 1.5px at 15% 60%,rgba(255,230,200,.7),transparent),radial-gradient(1px 1px at 90% 80%,rgba(220,200,255,.6),transparent);background-size:400px 400px;animation:twinkle 8s ease-in-out infinite;z-index:0}@keyframes twinkle{0%,to{opacity:.7}50%{opacity:1}}.intro-screen{justify-content:flex-end;padding:0;position:relative;overflow:hidden}.intro-hero{position:absolute;inset:0;z-index:0}.intro-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}.intro-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0a061200 0% 45%,#0a0612bf 75%,#050308f2)}.intro-content{text-align:center;z-index:2;padding:32px 22px 44px;width:100%;position:relative}.subtitle{font-size:14px;font-style:italic;letter-spacing:4px;text-transform:uppercase;color:#e8d7b5;margin-bottom:20px;text-shadow:0 0 12px rgba(0,0,0,.7)}.intro-body{font-size:17px;line-height:1.5;color:#e8d7b5;margin-bottom:22px;font-style:italic;padding:0 4px;text-shadow:0 0 12px rgba(0,0,0,.7)}.primary-btn{background:linear-gradient(180deg,#3a2653,#1f1430);color:#f4e9ce;border:1px solid #6b4d8a;padding:15px 32px;font-size:16px;letter-spacing:2.5px;text-transform:uppercase;font-family:inherit;cursor:pointer;border-radius:999px;transition:all .3s;box-shadow:0 0 20px #6b4d8a4d;min-height:44px}.primary-btn:hover,.primary-btn:active{background:linear-gradient(180deg,#4d3570,#2a1a42);box-shadow:0 0 30px #6b4d8a99}.secondary-btn{background:transparent;color:#c9b590;border:1px solid #6b4d8a;padding:14px 26px;font-size:14px;letter-spacing:2.5px;text-transform:uppercase;font-family:inherit;cursor:pointer;border-radius:999px;transition:all .25s;min-height:44px}.secondary-btn:hover,.secondary-btn:active{color:#f4e9ce;background:#6b4d8a33;border-color:#8a6ba8}.reveal-actions{flex-wrap:wrap}.cost-note{font-size:13px;line-height:1.5;color:#a89780;margin:-6px 0 18px;padding:0 10px;font-style:italic;text-shadow:0 0 12px rgba(0,0,0,.7)}.primary-btn.with-cost{display:inline-flex;align-items:center;gap:10px;padding:12px 22px}.primary-btn.with-cost .btn-label{letter-spacing:3px}.cost-pill{display:inline-flex;align-items:center;gap:4px;background:#22c55e1f;border:1px solid rgba(34,197,94,.5);padding:4px 10px;border-radius:999px;color:#22c55e;font-size:13px;font-weight:600;letter-spacing:1px}.wallet-icon{display:inline-block;vertical-align:middle;flex-shrink:0}.spend-modal-backdrop{position:absolute;inset:0;background:#050308bf;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.spend-modal{background:linear-gradient(180deg,#1a0f2e,#0a0612);border:1px solid #6b4d8a;border-radius:8px;padding:24px 22px;max-width:280px;width:100%;text-align:center;box-shadow:0 12px 40px #000000b3,0 0 30px #6b4d8a4d;animation:modal-in .25s ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.spend-modal.simple .spend-cost-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px}.spend-modal.simple .spend-cost-num{font-size:36px;font-weight:600;color:#22c55e;letter-spacing:0;line-height:1}.spend-continue{font-size:20px;font-weight:300;letter-spacing:2px;color:#f4e9ce;margin-bottom:20px;font-family:inherit}.spend-error{font-size:14px;color:#f0c8c8;background:#a03c5033;border:1px solid #a03c50;padding:9px 13px;border-radius:4px;margin-bottom:14px;font-style:italic;line-height:1.4}.spend-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.spend-actions .primary-btn,.spend-actions .secondary-btn{flex:1;min-width:120px;padding:13px 18px;font-size:14px;letter-spacing:2px;min-height:44px}.spend-actions .primary-btn:disabled{opacity:.6;cursor:not-allowed}.mode-btn-diary{display:inline-flex;align-items:center;gap:4px}.diary-count{display:inline-block;padding:2px 7px;background:#6b4d8a80;border-radius:999px;font-size:11px;letter-spacing:.5px;color:#f4e9ce;line-height:1.4}.diary-screen{justify-content:flex-start;padding:18px 14px 40px}.diary-header{display:flex;align-items:center;width:100%;margin-bottom:18px;z-index:1}.diary-header h2{flex:1;text-align:center;font-size:22px;font-weight:300;letter-spacing:4px;color:#f4e9ce;text-transform:uppercase}.icon-btn{background:transparent;border:none;color:#c9b590;font-size:26px;width:44px;height:44px;cursor:pointer;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:#6b4d8a33;color:#f4e9ce}.diary-count-header{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:#8a7a65;font-size:15px;letter-spacing:1px}.diary-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#a89780;padding:40px 20px;z-index:1}.diary-empty p{font-size:17px;line-height:1.5;margin-bottom:8px}.diary-empty-hint{font-size:13px!important;font-style:italic;color:#6b5d4a}.diary-list{width:100%;display:flex;flex-direction:column;gap:10px;z-index:1}.diary-entry{display:block;width:100%;text-align:left;background:#1a0f2e99;border:1px solid rgba(107,77,138,.4);border-left:3px solid #6b4d8a;border-radius:4px;padding:12px 14px;cursor:pointer;font-family:inherit;color:inherit;transition:all .2s}.diary-entry:hover{background:#3a265380;border-left-color:#c9b590;transform:translate(2px)}.diary-date{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#8a7a65;margin-bottom:10px}.diary-cards{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:14px;color:#e0d0b5;line-height:1.3}.diary-card-item{display:inline-flex;flex-direction:column;gap:3px;flex:1;min-width:0}.diary-card-pos{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#c9b590}.diary-card-name{font-size:14px;color:#e0d0b5;line-height:1.25}.diary-card-name em{color:#a03c50;font-style:italic;font-size:12px}.diary-sep{color:#6b4d8a;font-size:14px;padding:0 2px;align-self:center}.shop-screen{justify-content:flex-start;padding:18px 14px 40px}.shop-balance{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#22c55e1f;border:1px solid rgba(34,197,94,.4);border-radius:999px;font-size:14px;color:#22c55e;font-weight:600;min-width:44px;min-height:32px;justify-content:center}.shop-list{width:100%;display:flex;flex-direction:column;gap:14px;z-index:1;padding-bottom:20px}.deck-tile{background:linear-gradient(180deg,#1a0f2eb3,#0a0612b3);border:1px solid var(--deck-border, #6b4d8a);border-radius:8px;padding:16px 16px 18px;box-shadow:0 0 24px #6b4d8a26;transition:box-shadow .3s,transform .2s}.deck-tile.active{box-shadow:0 0 32px color-mix(in srgb,var(--deck-border) 40%,transparent),inset 0 0 20px color-mix(in srgb,var(--deck-border) 10%,transparent)}.deck-tile-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.deck-name{font-size:22px;font-weight:300;letter-spacing:2px;color:var(--deck-border, #f4e9ce);text-transform:uppercase;flex:1;line-height:1.2}.deck-badge{font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:#22c55e26;border:1px solid rgba(34,197,94,.5);color:#22c55e;font-weight:600}.deck-tagline{font-size:13px;font-style:italic;letter-spacing:1.5px;color:#a89780;margin-bottom:14px}.deck-previews{display:flex;gap:8px;margin-bottom:12px;justify-content:center}.deck-preview-card{flex:1;max-width:80px;aspect-ratio:5 / 8;background:linear-gradient(180deg,#f4e9ce,#e8d7b5);border:1.5px solid;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;gap:4px;color:#3a2653}.deck-preview-name{font-size:10px;font-weight:600;letter-spacing:.3px;text-align:center;line-height:1.1;color:#3a2653}.deck-preview-symbol{font-size:22px;color:#6b4d8a;display:flex;align-items:center;justify-content:center}.deck-preview-symbol svg{color:#6b4d8a;width:26px;height:26px}.deck-description{font-size:14px;line-height:1.45;color:#d6c8b0;margin-bottom:16px}.deck-action{display:flex;justify-content:center}.deck-action .primary-btn,.deck-action .secondary-btn{flex:1;max-width:none}.deck-status{font-size:13px;letter-spacing:2.5px;text-transform:uppercase;color:#22c55e;padding:12px 0;text-align:center;font-weight:600}.mode-btn-disabled,.mode-btn-disabled:hover{opacity:.3;cursor:not-allowed;color:#5a4a40}.coming-soon-badge{display:inline-block;margin-left:4px;padding:2px 7px;background:#5a4a404d;border:1px solid rgba(90,74,64,.5);border-radius:999px;font-size:10px;letter-spacing:.5px;color:#6b5d4a;font-weight:400;text-transform:none;line-height:1.4}.active-deck-line{display:inline-flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#a89780;text-shadow:0 0 12px rgba(0,0,0,.7)}.active-deck-label{color:#8a7a65}.active-deck-name{background:#0a061266;border:1px solid var(--deck-border, #6b4d8a);color:var(--deck-border, #f4e9ce);border-radius:999px;padding:6px 12px;font-family:inherit;font-size:13px;letter-spacing:1.5px;cursor:pointer;transition:all .2s;min-height:32px}.active-deck-name:not(:disabled):hover{background:#0a0612b3;box-shadow:0 0 12px color-mix(in srgb,var(--deck-border) 40%,transparent)}.active-deck-name:disabled{cursor:default}.cycle-hint{font-size:10px;opacity:.7;margin-left:2px}.deck-reveal-flash{position:absolute;inset:0;z-index:25;background:#050308e6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:reveal-fade 2s ease-out forwards;pointer-events:none}.deck-reveal-inner{text-align:center;padding:40px;border:2px solid var(--deck-border, #6b4d8a);border-radius:12px;box-shadow:0 0 60px color-mix(in srgb,var(--deck-border) 50%,transparent);animation:reveal-pop .4s cubic-bezier(.34,1.56,.64,1) backwards}.deck-reveal-label{font-size:11px;letter-spacing:6px;text-transform:uppercase;color:var(--deck-border, #f4e9ce);opacity:.8;margin-bottom:10px}.deck-reveal-name{font-size:24px;font-weight:300;letter-spacing:3px;color:var(--deck-border, #f4e9ce);text-transform:uppercase}@keyframes reveal-fade{0%{opacity:0}15%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes reveal-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.card-back.has-art,.card-face.has-art{padding:0}.card-back-img,.card-face-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:4px}.card-face.has-art .face-fallback,.card-back.has-art .back-fallback{display:none;position:absolute;inset:0}.card-back.has-art.art-missing .back-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.card-face.has-art.art-missing .face-fallback{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:10px 6px}.card-face.has-art.art-missing .face-fallback.reversed{transform:rotate(180deg)}.drawing-screen{justify-content:flex-start;padding-top:24px}.drawing-screen .cards-row{margin-top:auto;margin-bottom:auto}.drawing-screen .action-row{margin-bottom:12px}.drawing-header{text-align:center;margin:8px 0 20px;z-index:1;padding:0 12px}.drawing-title{font-size:24px;font-weight:300;letter-spacing:2px;color:#f4e9ce;margin-bottom:8px;line-height:1.2}.drawing-sub{font-size:14px;font-style:italic;color:#a89780;letter-spacing:1px;line-height:1.4}.cards-row{display:flex;flex-direction:row;gap:8px;justify-content:center;align-items:flex-start;margin:10px 0 22px;z-index:1;width:100%;padding:0 8px}.card-slot{flex:1 1 0;min-width:0;max-width:150px;display:flex;flex-direction:column;align-items:center;gap:6px}.card-slot.empty{opacity:.4}.card-slot.clickable .card{cursor:pointer;animation:breathe 2.5s ease-in-out infinite}.card-slot:focus{outline:none}.card-slot.clickable:focus-visible .card{outline:2px solid #c9b590;outline-offset:4px;border-radius:8px}@media (prefers-reduced-motion: reduce){.starfield,.card-slot.clickable .card{animation:none}.card-inner{transition:none}.tap-hint,.dots{animation:none}.primary-btn{transition:none}}@keyframes breathe{0%,to{transform:scale(1);box-shadow:0 0 20px #c8a06433}50%{transform:scale(1.03);box-shadow:0 0 35px #c8a06480}}.position-label{font-size:13px;letter-spacing:2.5px;text-transform:uppercase;color:#c9b590;font-weight:500;text-align:center}.position-sub{font-size:13px;letter-spacing:.5px;color:#8a7a65;font-style:italic;text-align:center;line-height:1.3}.slot-placeholder{width:100%;aspect-ratio:5 / 8;border:1px dashed #4a3a60;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#4a3a60;font-size:24px}.card{width:100%;aspect-ratio:5 / 8;perspective:800px;position:relative}.card-inner{position:relative;width:100%;height:100%;transition:transform .85s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.card.flipped .card-inner{transform:rotateY(180deg)}.card-back,.card-face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:6px;overflow:hidden}.card-back{background:linear-gradient(135deg,#3a2653,#1f1430,#2a1a42);border:2px solid #6b4d8a;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #0009}.back-pattern{width:86%;height:90%;border:1px solid #8a6ba8;border-radius:3px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,rgba(139,107,168,.2) 0%,transparent 70%)}.back-ornament{width:36px;height:36px;border:1px solid #c9b590;transform:rotate(45deg);position:relative}.back-ornament:before,.back-ornament:after{content:"";position:absolute;inset:5px;border:1px solid #8a6ba8}.back-ornament:after{inset:11px;border-color:#c9b590;border-radius:50%}.card-face{background:linear-gradient(180deg,#f4e9ce,#e8d7b5);color:#3a2653;transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:10px 6px;border:2px solid #c9b590;box-shadow:0 4px 14px #0009,inset 0 0 14px #6b4d8a1f}.card-face.reversed{transform:rotateY(180deg) rotate(180deg)}.card-name{font-size:15px;font-weight:600;text-align:center;letter-spacing:.3px;color:#3a2653;line-height:1.15;padding:0 2px}.card-arcana{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8a6ba8;font-style:italic}.card-symbol{font-size:44px;color:#6b4d8a;display:flex;align-items:center;justify-content:center;margin:2px 0}.card-symbol svg{color:#6b4d8a;width:56px;height:56px}.card-keywords{font-size:11px;text-align:center;color:#5a4373;font-style:italic;line-height:1.3;padding:0 3px;max-height:44px;overflow:hidden}.card-orientation{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8a6ba8;font-weight:600}.tap-hint{font-size:12px;color:#c9b590;font-style:italic;letter-spacing:1px;animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.action-row{margin:14px 0 6px;display:flex;gap:12px;justify-content:center;z-index:1}.synthesizing{font-size:15px;font-style:italic;color:#c9b590;letter-spacing:1.5px;padding:12px 20px;text-align:center}.dots{display:inline-block;animation:dots 1.4s infinite}@keyframes dots{0%,20%{opacity:.2}50%{opacity:1}to{opacity:.2}}.reveal-screen{justify-content:flex-start;padding:20px 14px 40px}.reveal-header{text-align:center;margin:6px 0 16px;z-index:1}.reveal-header h2{font-size:26px;font-weight:300;letter-spacing:3px;color:#f4e9ce;margin-bottom:10px}.reveal-summary{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:6px}.badge{background:#6b4d8a4d;border:1px solid #6b4d8a;color:#e0d0b5;padding:4px 10px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;border-radius:2px;white-space:nowrap}.badge.reversed{background:#a03c5040;border-color:#a03c50;color:#f0c8c8}.badge.pair{background:#b48c3c40;border-color:#b48c3c;color:#f0e0b0}.cards-row.small{gap:6px;margin-bottom:18px}.mini-card{background:linear-gradient(180deg,#f4e9ce,#e8d7b5);color:#3a2653;border:1px solid #c9b590;border-radius:5px;padding:8px 6px;flex:1;max-width:110px;text-align:center;box-shadow:0 2px 8px #00000080}.mini-card.reversed{border-color:#a03c50}.mc-position{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8a6ba8;margin-bottom:4px}.mc-name{font-size:13px;font-weight:600;color:#3a2653;line-height:1.15;margin-bottom:4px}.mc-orientation{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:#8a6ba8}.per-card-readings{width:100%;margin:0 0 22px;display:flex;flex-direction:column;gap:12px;z-index:1;padding:0 4px}.per-card{background:#1a0f2e80;border-left:2px solid #6b4d8a;padding:10px 14px;border-radius:2px}.pc-position{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#c9b590;margin-bottom:6px;font-weight:500}.pc-text{font-size:16px;line-height:1.55;color:#e0d0b5;font-style:italic}.synthesis{width:100%;margin:0 0 22px;background:linear-gradient(180deg,#3a265366,#1a0f2e99);border:1px solid #6b4d8a;border-radius:4px;padding:18px 16px 22px;z-index:1;box-shadow:0 0 30px #6b4d8a33}.synthesis h3{font-size:18px;font-weight:300;letter-spacing:2.5px;color:#f4e9ce;margin-bottom:16px;text-align:center;text-transform:uppercase;line-height:1.3}.synthesis p{font-size:16px;line-height:1.6;color:#e0d0b5;margin-bottom:14px}.synthesis p:last-child{margin-bottom:0;font-style:italic;color:#f4e9ce}.mode-toggle{display:inline-flex;align-items:center;gap:8px;margin:16px 0 18px;padding:0;background:transparent;border:none;flex-wrap:wrap;justify-content:center;max-width:100%}.mode-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#a89780;margin-right:2px}.mode-btn{background:linear-gradient(180deg,#3a2653,#1f1430);color:#f4e9ce;border:1px solid rgba(107,77,138,.6);padding:10px 16px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-family:inherit;cursor:pointer;border-radius:999px;transition:all .25s;min-height:40px;box-shadow:0 0 12px #6b4d8a33;display:inline-flex;align-items:center;gap:4px}.mode-btn:hover,.mode-btn:active{background:linear-gradient(180deg,#4d3570,#2a1a42);box-shadow:0 0 18px #6b4d8a66}.mode-btn.active{border-color:#c9b590;box-shadow:inset 0 0 8px #c9b59040,0 0 14px #c9b59033}.reveal-header .mode-toggle{margin:10px 0 4px}@media (max-height: 640px){.title{font-size:32px;margin-bottom:6px}.subtitle{margin-bottom:16px}.intro-body{font-size:16px;margin-bottom:18px}.drawing-title{font-size:20px}}
