:root{--bg: #15111d;--bg-raised: #1f1929;--bg-sunk: #0f0c15;--surface: #261f33;--border: #3a3049;--text: #ece4d6;--text-dim: #a89cb5;--accent: #d4a64a;--accent-soft: rgba(212, 166, 74, .14);--accent-text: #1a1206;--wands: #e07a3f;--cups: #4f9bd9;--swords: #b9c2cf;--pentacles: #7cb36a;--major: #c18ae0;--good: #6fbf73;--bad: #e06c6c;--radius: 10px;--shadow: 0 6px 24px rgba(0, 0, 0, .35);--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;color-scheme:dark}:root[data-theme=light]{--bg: #f6f1e7;--bg-raised: #fffaf0;--bg-sunk: #ece4d4;--surface: #fffdf8;--border: #ddd0b8;--text: #2a2233;--text-dim: #6b5f78;--accent: #9b6b12;--accent-soft: rgba(155, 107, 18, .1);--accent-text: #fffaf0;--wands: #b5531a;--cups: #2a6fa8;--swords: #5d6875;--pentacles: #4b7f3a;--major: #8a4cb0;--shadow: 0 4px 18px rgba(60, 40, 10, .12);color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.15;margin:0 0 .5em}h1{font-size:2.3rem}h2{font-size:1.7rem}h3{font-size:1.3rem}p{margin:0 0 .9em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--accent);letter-spacing:.02em}.brand:hover{text-decoration:none}.nav{display:flex;gap:2px;flex-wrap:wrap;flex:1}.nav a{padding:6px 11px;border-radius:7px;color:var(--text-dim);font-weight:500}.nav a:hover{color:var(--text);background:var(--surface);text-decoration:none}.nav a.active{color:var(--accent);background:var(--accent-soft)}.topbar-right{display:flex;align-items:center;gap:8px}main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:28px 24px 64px}.footer{text-align:center;color:var(--text-dim);font-size:.8rem;padding:18px;border-top:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-weight:500;white-space:nowrap;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){border-color:var(--accent);text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:transparent}.btn.small{padding:4px 10px;font-size:.85rem}.btn.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad)}input[type=text],input[type=search],select,textarea{background:var(--bg-sunk);border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical;min-height:70px}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:.82rem;color:var(--text-dim);margin-bottom:4px;font-weight:500}.panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.muted{color:var(--text-dim)}.small{font-size:.85rem}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.stack>*+*{margin-top:16px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--accent);font-weight:600;margin-bottom:6px}.page-head{margin-bottom:24px}.page-head p{color:var(--text-dim);max-width:70ch}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:transparent;cursor:pointer;font-size:.85rem;color:var(--text-dim)}.chip:hover{color:var(--text)}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tag{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.78rem;margin:0 4px 4px 0}.tag.rev{border-style:dashed}.suit-wands{--suit: var(--wands)}.suit-cups{--suit: var(--cups)}.suit-swords{--suit: var(--swords)}.suit-pentacles{--suit: var(--pentacles)}.suit-major{--suit: var(--major)}.suit-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--suit, var(--accent));margin-right:6px}.tcard{position:relative;aspect-ratio:7 / 12;perspective:1000px;width:100%}.tcard-inner{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .6s cubic-bezier(.3,.7,.3,1);transform-style:preserve-3d}.tcard.face-down .tcard-inner{transform:rotateY(180deg)}.tcard-face,.tcard-back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:8px;overflow:hidden;box-shadow:var(--shadow);background:#e9dfc8}.tcard-face img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.tcard.reversed .tcard-face img{transform:rotate(180deg)}.tcard-back{transform:rotateY(180deg);background:radial-gradient(circle at 50% 50%,rgba(212,166,74,.35) 0 14%,transparent 15%),repeating-linear-gradient(45deg,#2b1f40 0,#2b1f40 8px,#241a36 8px,#241a36 16px);border:3px solid var(--accent)}.tcard-back:after{content:"✦";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--accent);font-size:2rem}.tcard-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px;color:#3a2c18;font-family:var(--font-display);font-weight:700;background:linear-gradient(160deg,#f1e6cc,#dccaa3);border:3px double #8a6a2c}.tcard-placeholder .num{font-size:1.6rem}.tcard-placeholder .nm{font-size:1rem}button.tcard-btn{all:unset;display:block;width:100%;cursor:pointer}button.tcard-btn:focus-visible .tcard-face{outline:3px solid var(--accent)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:18px 14px}.card-tile{display:block;color:var(--text)}.card-tile:hover{text-decoration:none}.card-tile:hover .tcard-face{transform:translateY(-3px);box-shadow:0 10px 28px #00000073}.card-tile .tcard-face{transition:transform .2s,box-shadow .2s}.card-tile .cap{font-size:.8rem;text-align:center;margin-top:6px;line-height:1.25}.card-tile .mastery{display:block;height:3px;border-radius:2px;margin:4px auto 0;width:40%;background:var(--border)}.card-tile .mastery.learning{background:var(--accent)}.card-tile .mastery.known{background:var(--good)}.group-title{margin:28px 0 12px;display:flex;align-items:center;gap:8px}.detail{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:36px;align-items:start}.detail-side{position:sticky;top:80px}.meaning-block{border-left:3px solid var(--suit, var(--accent));padding-left:16px;margin-bottom:22px}.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:.9rem}.facts dt{color:var(--text-dim)}.facts dd{margin:0}.symbols{padding-left:18px}.symbols li{margin-bottom:6px}.neighbors{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:8px}.compare-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.compare-col .tcard{max-width:200px;margin:0 auto 14px}.hero{display:grid;grid-template-columns:1fr minmax(160px,220px);gap:32px;align-items:center}.stat{font-family:var(--font-display);font-size:2.4rem;font-weight:700;color:var(--accent);line-height:1}.stat-label{color:var(--text-dim);font-size:.85rem}.ring{display:block}.ring-track{stroke:var(--border)}.ring-known{stroke:var(--good)}.ring-learning{stroke:var(--accent)}.study{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:32px;align-items:start}.grade-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.grade-row .btn{flex-direction:column;gap:0;padding:8px 4px}.grade-row .btn small{color:var(--text-dim);font-weight:400;font-size:.75rem}.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-bar>span{display:block;height:100%;background:var(--accent);transition:width .3s}.quiz-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.quiz-option{text-align:left;padding:12px 14px;justify-content:flex-start;white-space:normal}.quiz-option.correct{border-color:var(--good);background:color-mix(in srgb,var(--good) 15%,var(--surface))}.quiz-option.wrong{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 15%,var(--surface))}.quiz-card-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,150px));gap:14px}.quiz-card-options .quiz-option{padding:6px;flex-direction:column}.spread-board{position:relative;margin:0 auto}.spread-slot{position:absolute}.spread-slot .pos-label{position:absolute;left:0;right:0;top:100%;text-align:center;font-size:.72rem;color:var(--text-dim);margin-top:3px;line-height:1.2}.spread-slot.crossing{z-index:2}.spread-slot.crossing .tcard{transform:rotate(90deg)}.spread-slot.crossing .pos-label{display:none}.spread-slot.selected .tcard-face,.spread-slot.selected .tcard-back{outline:3px solid var(--accent);outline-offset:2px}.reading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,1fr);gap:28px;align-items:start}.reading-side{position:sticky;top:80px;max-height:calc(100vh - 100px);overflow:auto}.insights li{margin-bottom:6px}.coach-output h3{font-size:1.15rem;margin-top:1.1em;color:var(--accent)}.coach-output ul{padding-left:20px}.position-card{display:grid;grid-template-columns:70px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.position-card:last-child{border-bottom:0}.journal-item{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;color:var(--text)}.journal-item:hover{text-decoration:none;border-color:var(--accent)}.thumb-strip{display:flex;gap:4px}.thumb-strip .tcard{width:34px}.lesson-body{max-width:72ch}.lesson-body h3{margin-top:1.4em}.lesson-body ul{padding-left:20px}.lesson-body li{margin-bottom:4px}.lesson-list{counter-reset:lesson}.lesson-link{display:flex;gap:14px;align-items:center;padding:14px 16px;color:var(--text)}.lesson-link:hover{text-decoration:none;border-color:var(--accent)}.lesson-num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);font-weight:600;font-size:.85rem;flex-shrink:0}.lesson-num.done{background:var(--good);border-color:var(--good);color:#0d1a0d}.editor{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}.editor-list{max-height:calc(100vh - 140px);overflow:auto;position:sticky;top:80px;padding:8px}.editor-list button{all:unset;display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:.86rem}.editor-list button:hover{background:var(--surface)}.editor-list button.on{background:var(--accent-soft);color:var(--accent)}.editor-list .tcard{width:26px;flex-shrink:0}.fallback-hint{font-size:.78rem;color:var(--text-dim);font-style:italic;margin-top:3px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:18px;text-align:center;color:var(--text-dim)}.dropzone.over{border-color:var(--accent);color:var(--accent)}.empty{text-align:center;padding:40px 20px;color:var(--text-dim)}.notice{padding:10px 14px;border-radius:8px;background:var(--accent-soft);border:1px solid var(--accent);font-size:.9rem}@media (max-width: 860px){main{padding:20px 16px 48px}.topbar{padding:10px 16px;gap:10px}.detail,.study,.reading,.editor,.hero{grid-template-columns:1fr}.detail-side,.reading-side,.editor-list{position:static;max-height:none}.detail-side .tcard{max-width:240px;margin:0 auto}.card-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.grade-row{grid-template-columns:repeat(2,1fr)}h1{font-size:1.9rem}}
