:root{--bg-deep:#100c1e;--bg-mid:#1a1430;--bg-felt:#221a3f;--bg-glow-a:#2c2352;--bg-glow-b:#241b45;--table-glow:#ffdc960f;--gold:#c9a53f;--gold-bright:#e8c96a;--accent-rgb:201, 165, 63;--dim-rgb:169, 156, 196;--ink:#2a2140;--text:#e8e2f2;--text-dim:#a99cc4;--danger:#c96a6a;--surface-tint:#100c1e8c;--foil-a:#d6c4ff80;--foil-b:#ffffffb8;--foil-c:#bad8ff80;--font-main:Georgia, "Times New Roman", serif;--card-w:clamp(64px, 9vw, 110px);--card-ratio:200 / 340;--panel-bg:#16112af5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-deck=cyberpunk]{--bg-deep:#04070f;--bg-mid:#0a1120;--bg-felt:#0d1830;--bg-glow-a:#0e2a4a;--bg-glow-b:#1a1038;--table-glow:#00e5ff0e;--gold:#22b8d4;--gold-bright:#55e6ff;--accent-rgb:47, 216, 240;--dim-rgb:122, 160, 196;--text:#dcebf7;--text-dim:#8fadc7;--danger:#ff5c8a;--surface-tint:#060c188c;--foil-a:#00e5ff8c;--foil-b:#ebffffb3;--foil-c:#ff2d9580;--font-main:"Trebuchet MS", "Segoe UI", Verdana, sans-serif;--panel-bg:#070e1bf5}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow-x:hidden}body{font-family:var(--font-main);color:var(--text);background:radial-gradient(ellipse 120% 80% at 50% -10%, var(--bg-glow-a) 0%, transparent 60%), radial-gradient(ellipse 100% 100% at 50% 120%, var(--bg-glow-b) 0%, transparent 55%), var(--bg-deep);background-attachment:fixed;transition:background .5s}#root{min-height:100vh}.app-root{flex-direction:column;min-height:100vh;display:flex;box-shadow:inset 0 0 18vmax #0000008c}.app-main{flex-direction:column;flex:1;min-height:0;display:flex}.navbar{z-index:50;align-items:center;gap:24px;padding:10px 22px;display:flex;position:relative}.nav-brand{letter-spacing:3px;color:var(--gold-bright);text-transform:uppercase;font-size:19px}.nav-links{flex:1;gap:4px;display:flex}.nav-link{color:var(--text-dim);letter-spacing:1px;border-radius:999px;padding:6px 14px;font-size:15px;text-decoration:none;transition:color .2s,background .2s}.nav-link:hover{color:var(--text)}.nav-link-active{color:var(--gold-bright);background:rgba(var(--accent-rgb), .1)}.nav-tools{gap:6px;display:flex;position:relative}.nav-icon-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:4px 8px;font-size:17px;transition:border-color .2s}.nav-icon-btn:hover{border-color:rgba(var(--accent-rgb), .4)}.settings-pop{background:var(--panel-bg);border:1px solid rgba(var(--accent-rgb), .3);border-radius:10px;flex-direction:column;gap:10px;width:220px;padding:14px 16px;display:flex;position:absolute;top:40px;right:0;box-shadow:0 12px 40px #0009}.settings-row{cursor:pointer;align-items:center;gap:10px;font-size:15px;display:flex}.settings-row input{accent-color:var(--gold)}.settings-note{color:var(--text-dim);font-size:12px;font-style:italic}.settings-heading{letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-top:4px;font-size:11.5px}.deck-options{flex-direction:column;gap:6px;display:flex}.deck-option{border:1px solid rgba(var(--dim-rgb), .25);color:var(--text);cursor:pointer;text-align:left;background:0 0;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-family:inherit;transition:border-color .2s,background .2s;display:flex}.deck-option:hover{border-color:rgba(var(--accent-rgb), .5)}.deck-option-active{border-color:var(--gold);background:rgba(var(--accent-rgb), .08)}.deck-swatch{border:1px solid #ffffff40;border-radius:4px;flex-shrink:0;width:26px;height:40px}.deck-swatch[data-deck-swatch=amethyst]{background:linear-gradient(150deg,#3a2d68,#171129 70%),#171129;box-shadow:inset 0 0 8px #c9a53f99}.deck-swatch[data-deck-swatch=cyberpunk]{background:linear-gradient(150deg,#0e2a4a,#060b16 70%),#060b16;box-shadow:inset 0 0 8px #2fd8f0b3}.deck-option-name{font-size:14.5px;display:block}.deck-option-tag{color:var(--text-dim);font-size:11.5px;font-style:italic;display:block}.btn-gold{letter-spacing:1.5px;border:1px solid var(--gold);background:linear-gradient(180deg, rgba(var(--accent-rgb), .22), rgba(var(--accent-rgb), .08));color:var(--gold-bright);cursor:pointer;text-transform:uppercase;border-radius:999px;padding:11px 28px;font-family:inherit;font-size:16px;transition:box-shadow .25s,opacity .2s}.btn-gold:hover:not(:disabled){box-shadow:0 0 24px rgba(var(--accent-rgb), .35)}.btn-gold:disabled{opacity:.35;cursor:default}.btn-ghost{border:1px solid rgba(var(--dim-rgb), .35);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:999px;padding:7px 16px;font-family:inherit;font-size:14px;transition:color .2s,border-color .2s}.btn-ghost:hover{color:var(--text);border-color:var(--text-dim)}.btn-danger:hover{color:var(--danger);border-color:var(--danger)}.table-scene{perspective:1300px;perspective-origin:50% 30%;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.table-surface{background:radial-gradient(ellipse 90% 70% at 50% 35%, var(--table-glow) 0%, transparent 60%), radial-gradient(ellipse 140% 120% at 50% 50%, var(--bg-felt) 0%, var(--bg-mid) 75%);border:1px solid rgba(var(--accent-rgb), .15);transform-style:preserve-3d;transform-origin:50% 100%;border-radius:18px;flex:1;margin:0 14px 14px;position:relative;transform:rotateX(4deg);box-shadow:inset 0 0 80px #00000080,0 20px 60px #0006}.table-header{z-index:40;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:14px;left:22px;right:22px}.table-spread-name{letter-spacing:2px;color:var(--gold-bright);text-transform:uppercase;font-size:17px}.table-question{color:var(--text-dim);margin-top:3px;font-size:14px;font-style:italic}.table-title{text-align:center;letter-spacing:4px;color:var(--gold-bright);text-transform:uppercase;margin:26px 0 4px;font-size:clamp(19px,3vw,27px);font-weight:400}.table-hint{text-align:center;color:var(--text-dim);pointer-events:none;z-index:30;font-size:15px;font-style:italic;position:absolute;top:56px;left:0;right:0}.table-hint-bottom{top:auto;bottom:22px}.spread-picker{flex-direction:column;padding:0 24px 22px;display:flex;position:absolute;inset:0;overflow-y:auto}.spread-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;width:100%;max-width:1100px;margin:18px auto;display:grid}.spread-card{text-align:left;background:var(--surface-tint);border:1px solid rgba(var(--dim-rgb), .2);color:var(--text);cursor:pointer;border-radius:14px;padding:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.spread-card:hover{border-color:rgba(var(--accent-rgb), .5)}.spread-card-active{border-color:var(--gold);box-shadow:0 0 24px rgba(var(--accent-rgb), .25)}.spread-mini{background:#00000040;border-radius:8px;height:84px;margin-bottom:10px;position:relative}.spread-mini-card{background:var(--gold);opacity:.85;border-radius:1.5px;width:9px;height:15px;position:absolute}.spread-card-name{letter-spacing:1px;color:var(--gold-bright);font-size:16px}.spread-card-count{color:var(--text-dim);margin:2px 0 6px;font-size:12px}.spread-card-desc{color:var(--text-dim);font-size:13px;line-height:1.45}.question-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:auto;padding-top:16px;display:flex}.question-input{border:1px solid rgba(var(--dim-rgb), .3);background:var(--surface-tint);color:var(--text);border-radius:999px;outline:none;width:min(420px,90vw);padding:11px 18px;font-family:inherit;font-size:15px;font-style:italic;transition:border-color .2s}.question-input:focus{border-color:var(--gold)}.question-input::placeholder{color:var(--text-dim);opacity:.7}.card3d-shell{width:var(--card-w);aspect-ratio:var(--card-ratio);transform-style:preserve-3d;perspective:900px;-webkit-tap-highlight-color:transparent;position:relative}.card3d-interactive{cursor:pointer}.card3d-inner{width:100%;height:100%;transform-style:preserve-3d;will-change:transform;position:relative}.card3d-face{backface-visibility:hidden;border-radius:6%/3.5%;position:absolute;inset:0;overflow:hidden;box-shadow:0 1px #ffffff14,0 6px 18px #0000008c,0 14px 32px #00000059}.card3d-front{transform:rotateY(0)}.card3d-back{transform:rotateY(180deg)}.card3d-reversed .card-art-svg,.card3d-reversed .card-art-img{transform:rotate(180deg)}.card3d-focused{outline:2px solid var(--gold);outline-offset:3px;border-radius:8px}.card-art-svg,.card-art-img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.foil-tilt{width:100%;height:100%;transform-style:preserve-3d}.foil-art{width:100%;height:100%;transform-style:preserve-3d;border-radius:8px;position:relative;overflow:hidden}.foil-overlay{pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.foil-glare{mix-blend-mode:soft-light;position:absolute;inset:0}.foil-sheen{background-image:linear-gradient(115deg, transparent 32%, var(--foil-a) 45%, var(--foil-b) 50%, var(--foil-c) 55%, transparent 68%);mix-blend-mode:overlay;opacity:.55;background-repeat:no-repeat;background-size:260% 100%;position:absolute;inset:0}.foil-ridge{border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 1.5px 1px #fff6,inset 1px 0 1px #ffffff2e,inset 0 -1.5px 1.5px #000000a6,inset -1px 0 1px #0006,inset 0 0 14px #00000040}.shuffle-stage{transform-style:preserve-3d;flex-direction:column;justify-content:center;align-items:center;gap:30px;display:flex;position:absolute;inset:0}.deck-stack{width:calc(var(--card-w) * 1.4);aspect-ratio:var(--card-ratio);cursor:grab;transform-style:preserve-3d;touch-action:none;position:relative}.deck-stack:active{cursor:grabbing}.deck-half{transform-style:preserve-3d;position:absolute;inset:0}.deck-layer{border-radius:8px;position:absolute;inset:0;overflow:hidden;box-shadow:0 2px 6px #00000080}.shuffle-meta{flex-direction:column;align-items:center;gap:14px;margin-top:8px;display:flex}.shuffle-count{color:var(--text-dim);min-height:1.4em;font-size:15px;font-style:italic}.fan-stage{bottom:calc(var(--card-w) * -.55);height:calc(var(--card-w) * 2.1);z-index:20;pointer-events:none;position:absolute;left:0;right:0}.fan-card{margin-left:calc(var(--card-w) * -.36);width:calc(var(--card-w) * .72);aspect-ratio:var(--card-ratio);cursor:pointer;transform-origin:50% 100%;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;position:absolute}.fan-card-lift{border-radius:6px;width:100%;height:100%;transition:transform .18s ease-out,box-shadow .18s;display:block;overflow:hidden;box-shadow:-2px 0 6px #0000008c}.fan-card:hover .fan-card-lift,.fan-card:focus-visible .fan-card-lift{box-shadow:0 10px 26px #0009, 0 0 18px rgba(var(--accent-rgb), .35);transform:translateY(-26px)scale(1.06)}.fan-counter{bottom:calc(var(--card-w) * 2.2);white-space:nowrap;color:var(--text-dim);pointer-events:none;font-size:14px;font-style:italic;position:absolute;left:50%;transform:translate(-50%)}.spread-layout{position:absolute;inset:60px 24px 24px}.spread-slot{width:0;height:0;position:absolute}.slot-ghost{width:var(--card-w);aspect-ratio:var(--card-ratio);border:1.5px dashed rgba(var(--accent-rgb), .3);border-radius:8px;justify-content:center;align-items:center;padding:6px;display:flex;position:absolute}.slot-ghost-label{letter-spacing:1px;text-transform:uppercase;color:rgba(var(--accent-rgb), .5);text-align:center;font-size:11px}.slot-card{margin-left:calc(var(--card-w) / -2);margin-top:calc(var(--card-w) / var(--card-ratio) / -2);flex-direction:column;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.slot-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim);opacity:.65;white-space:nowrap;margin-top:6px;font-size:11px;transition:color .3s,opacity .3s}.slot-label-revealed{color:var(--gold-bright);opacity:.95}.reading-actions{z-index:40;justify-content:center;gap:14px;display:flex;position:absolute;bottom:20px;left:0;right:0}.focus-overlay{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:zoom-out;background:#08051299;justify-content:center;align-items:center;padding-right:min(400px,32vw);display:flex;position:fixed;inset:0}.focus-card{--card-w:min(38vh, 64vw);filter:drop-shadow(0 30px 60px #000000b3) drop-shadow(0 0 40px rgba(var(--accent-rgb), .18))}.reading-panel{background:var(--panel-bg);border-left:1px solid rgba(var(--accent-rgb), .3);z-index:100;width:min(400px,92vw);padding:54px 28px 28px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-20px 0 60px #00000080}.panel-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px;font-size:26px;line-height:1;position:absolute;top:12px;right:16px}.panel-close:hover{color:var(--text)}.panel-position{letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);font-size:13px}.panel-position-meaning{color:var(--text-dim);margin:6px 0 18px;font-size:14px;font-style:italic;line-height:1.5}.panel-card-name{color:var(--text);margin:0 0 4px;font-size:25px;font-weight:400}.panel-reversed-tag{color:var(--danger);font-size:17px;font-style:italic}.panel-meta{color:var(--text-dim);letter-spacing:1px;margin-bottom:14px;font-size:13px}.panel-keywords{flex-wrap:wrap;gap:7px;margin-bottom:14px;display:flex}.keyword-chip{border:1px solid rgba(var(--accent-rgb), .4);color:var(--gold-bright);background:rgba(var(--accent-rgb), .08);border-radius:999px;padding:4px 11px;font-size:12.5px}.keyword-chip-rev{color:#dfa0a0;background:#c96a6a14;border-color:#c96a6a66}.panel-meaning{color:var(--text);font-size:15.5px;line-height:1.65}.panel-divider{background:linear-gradient(90deg, transparent, rgba(var(--accent-rgb), .4), transparent);height:1px;margin:18px 0}.panel-description{color:var(--text-dim);font-size:14px;font-style:italic;line-height:1.6}.library-view{width:100%;max-width:1250px;margin:0 auto;padding:10px 26px 40px}.library-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.filter-chip{border:1px solid rgba(var(--dim-rgb), .3);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:999px;padding:6px 15px;font-family:inherit;font-size:13.5px;transition:all .2s}.filter-chip:hover{color:var(--text)}.filter-chip-active{border-color:var(--gold);color:var(--gold-bright);background:rgba(var(--accent-rgb), .1)}.library-search{width:min(280px,100%);font-style:normal}.library-section{margin-bottom:34px}.library-section-head{border-bottom:1px solid #0000;border-image:linear-gradient(90deg, rgba(var(--accent-rgb), .55), rgba(var(--accent-rgb), .08) 70%, transparent) 1;align-items:baseline;gap:12px;margin:0 0 16px;padding-bottom:10px;display:flex}.library-section-title{letter-spacing:3px;text-transform:uppercase;color:var(--gold-bright);margin:0;font-size:20px;font-weight:400}.library-section-sub{color:var(--text-dim);font-size:13px;font-style:italic}.library-section-count{color:var(--text-dim);border:1px solid rgba(var(--dim-rgb), .3);border-radius:999px;margin-left:auto;padding:2px 10px;font-size:12.5px}.library-none{text-align:center;color:var(--text-dim);padding:50px 0;font-style:italic}.library-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:16px;display:grid}.library-card{cursor:pointer;aspect-ratio:var(--card-ratio);perspective:700px;background:0 0;border:none;padding:0}.library-card .foil-art,.modal-art .foil-art{box-shadow:0 4px 14px #00000073}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#080512bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-body{background:var(--panel-bg);border:1px solid rgba(var(--accent-rgb), .3);border-radius:16px;gap:26px;width:100%;max-width:760px;max-height:88vh;padding:30px;display:flex;position:relative;overflow-y:auto;box-shadow:0 30px 90px #000000b3}.modal-art{aspect-ratio:var(--card-ratio);perspective:800px;flex:0 0 clamp(150px,26vw,220px);align-self:flex-start}.modal-text{flex:1;min-width:0}.modal-art{cursor:e-resize}.modal-nav{border:1px solid rgba(var(--accent-rgb), .4);width:46px;height:46px;color:var(--gold-bright);cursor:pointer;background:#00000059;border-radius:50%;flex-shrink:0;margin:0 14px;font-size:28px;line-height:1;transition:background .2s,box-shadow .2s}.modal-nav:hover{background:rgba(var(--accent-rgb), .15);box-shadow:0 0 18px rgba(var(--accent-rgb), .3)}.modal-counter{color:var(--text-dim);letter-spacing:1px;font-size:12.5px;position:absolute;bottom:12px;left:20px}@media (width<=700px){.modal-nav{display:none}}.modal-h3{letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin:18px 0 8px;font-size:14px;font-weight:400}.journal-view{flex-direction:column;gap:16px;width:100%;max-width:860px;margin:0 auto;padding:14px 26px 40px;display:flex}.journal-empty{color:var(--text-dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:60px 20px;font-size:18px;display:flex}.journal-empty-sub{font-size:14px;font-style:italic}.journal-entry{background:var(--surface-tint);border:1px solid rgba(var(--dim-rgb), .2);border-radius:14px;padding:18px 20px}.journal-entry-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.journal-spread{color:var(--gold-bright);letter-spacing:1.5px;text-transform:uppercase;font-size:15px}.journal-date{color:var(--text-dim);margin-top:3px;font-size:13px}.journal-question{color:var(--text);margin-top:6px;font-size:14.5px;font-style:italic}.journal-actions{gap:8px;display:flex}.journal-cards{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.journal-card-chip{border:1px solid rgba(var(--dim-rgb), .25);background:#0003;border-radius:8px;flex-direction:column;padding:6px 12px;display:flex}.journal-card-pos{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim);font-size:10px}.journal-card-name{color:var(--text);font-size:13.5px}.journal-card-reversed{color:#dfa0a0}@media (width<=700px){:root{--card-w:clamp(52px, 15vw, 76px)}.navbar{gap:10px;padding:8px 12px}.nav-brand{letter-spacing:2px;font-size:15px}.nav-link{padding:5px 10px;font-size:13.5px}.table-surface{margin:0 6px 6px;transform:none}.spread-layout{inset:56px 8px 8px}.reading-panel{border-left:none;border-top:1px solid rgba(var(--accent-rgb), .3);border-radius:18px 18px 0 0;width:100%;height:54vh;padding-top:40px;top:auto;left:0}.focus-overlay{padding-bottom:54vh;padding-right:0}.focus-card{--card-w:min(23vh, 56vw)}.modal-body{flex-direction:column}.modal-art{align-self:center}.table-header{left:12px;right:12px}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
