:root{--void:#0d0a0f;--velvet:#171019;--velvet-2:#221724;--wine:#4f1f2a;--ember:#a5523b;--parchment:#f3e3bd;--parchment-deep:#d7b873;--gold:#d8ad55;--gold-soft:#f2d892;--ink:#211508;--text:#fff2d4;--muted:#bba982;--danger:#7c3328;--danger-soft:#ffd3c6;--hairline:#d8ad5557;--shadow-deep:0 28px 80px #0000007a;--serif:Georgia, "Times New Roman", serif;--sans:Verdana, Tahoma, sans-serif;color:var(--text);background:var(--void);font-family:var(--sans);font-synthesis:none;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at 18% 6%,#a5523b33,#0000 30rem),radial-gradient(circle at 84% 12%,#d8ad5521,#0000 28rem),linear-gradient(135deg,#0d0a0f 0%,#171019 48%,#09070a 100%);min-width:320px;min-height:100vh;margin:0}body:before{pointer-events:none;content:"";background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000c,#0000 78%);mask-image:linear-gradient(#000c,#0000 78%)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);letter-spacing:0}h1{max-width:9ch;font-size:clamp(3rem,7vw,5.8rem);line-height:.92}h2{font-size:clamp(1.6rem,4vw,2.55rem);line-height:1.04}h3{font-size:clamp(1.25rem,3vw,1.8rem)}.app-shell{width:min(1240px,100% - 32px);min-height:100vh;margin:0 auto;padding:26px 0 44px;position:relative}.app-shell.public-mode{width:min(980px,100% - 32px)}.app-shell.auth-mode{width:min(1040px,100% - 32px)}.intro-panel{color:var(--muted);grid-template-columns:1fr auto;align-items:center;gap:18px;padding:10px 0 28px;display:grid}.intro-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.brand-lockup{color:var(--gold);align-items:center;gap:10px;display:flex}.header-auth-action{min-height:38px;color:var(--gold-soft);background:#ffffff09;border:1px solid #d8ad556b;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:.78rem;font-weight:900;text-decoration:none;transition:background .16s,transform .16s;display:inline-flex}.header-auth-action:hover{background:#d8ad5524;transform:translateY(-1px)}.brand,.eyebrow,.position,.orientation{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:800}.workspace{grid-template-columns:minmax(320px,430px) minmax(0,1fr);align-items:start;gap:26px;display:grid}.workspace.reading-active{grid-template-columns:minmax(0,980px);justify-content:center}.control-stack{align-content:start;gap:24px;display:grid}.public-mode .workspace{grid-template-columns:1fr}.reading-form,.reading-surface,.final-summary,.explanation,.reading-history,.auth-panel{border:1px solid var(--hairline);box-shadow:var(--shadow-deep)}.auth-panel{background:linear-gradient(135deg,#d8ad551f,#0000 34%),#171019f0;align-content:start;gap:16px;padding:20px;display:grid}.auth-page{grid-template-columns:minmax(0,1fr) minmax(320px,430px);align-items:start;gap:28px;padding-top:clamp(24px,6vw,74px);display:grid}.auth-copy{gap:18px;min-width:0;display:grid}.auth-copy h1{max-width:7ch}.auth-copy p:not(.eyebrow){max-width:45ch;color:var(--muted)}.auth-panel h2{margin-top:6px;font-size:1.45rem}.auth-note{color:var(--muted);margin-top:8px;font-size:.88rem}.auth-error{color:var(--danger-soft);background:#7c3328b3;padding:10px 12px}.auth-message{color:var(--gold-soft);background:#d8ad551f;padding:10px 12px}.auth-form{gap:12px;display:grid}.auth-form label{color:var(--muted)}.auth-form input{color:var(--text);background:#ffffff0f;border-color:#d8ad5561}.auth-tabs{border:1px solid #d8ad5561;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.auth-tabs button{min-height:42px;color:var(--muted);background:0 0;border:0;font-weight:900}.auth-tabs button+button{border-left:1px solid #d8ad5561}.auth-tabs .active,.auth-tabs button:hover{color:#120d08;background:var(--gold)}.auth-links{flex-wrap:wrap;gap:10px;display:flex}.auth-links button{color:var(--gold-soft);text-underline-offset:4px;background:0 0;border:0;padding:0;font-size:.82rem;font-weight:800;text-decoration:underline}.secondary-action{min-height:44px;color:var(--gold-soft);background:#ffffff0a;border:1px solid #d8ad55a3;justify-content:center;align-items:center;gap:9px;font-weight:900;transition:background .16s,transform .16s;display:inline-flex}.secondary-action:hover{background:#d8ad5524;transform:translateY(-1px)}.reading-form{color:var(--ink);background:linear-gradient(135deg, #fff9e4a6, transparent 34%), linear-gradient(160deg, var(--parchment), #dfc17f 100%);gap:18px;padding:clamp(20px,4vw,34px);display:grid}.form-hero{gap:12px;padding-bottom:4px;display:grid}.intro{color:#6c5224;max-width:34ch}label,fieldset{color:#4a3212;border:0;gap:8px;min-width:0;margin:0;padding:0;font-weight:800;display:grid}legend{color:#4a3212;margin-bottom:8px;font-weight:800}input,textarea{width:100%;min-width:0;color:var(--ink);background:#fff9e2c7;border:1px solid #5b3b128c;border-radius:0;padding:13px 14px}textarea{resize:vertical;min-height:132px}.segmented,.option-grid{background:#fff9e247;border:1px solid #5b3b128c;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented button,.option-grid button{min-width:0;min-height:44px;color:var(--ink);background:0 0;border:1px solid #5b3b128c;border-top:0;border-left:0;font-weight:800;transition:background .16s,color .16s}.segmented button:last-child,.option-grid button:nth-child(2n),.option-grid button:last-child{border-right:0}.segmented button:nth-child(n+1):nth-child(-n+3),.option-grid button:nth-last-child(-n+1){border-bottom:0}.segmented .active,.segmented button:hover,.option-grid .active,.option-grid button:hover{color:#120d08;background:var(--gold)}.switch-row,.check-row{justify-content:space-between;align-items:center;gap:14px;font-weight:600;display:flex}.check-row{align-items:flex-start}.switch-row small{color:#745728;margin-top:2px;font-weight:500;display:block}.switch-row input,.check-row input{width:18px;min-width:18px;height:18px;accent-color:var(--gold);margin-top:2px}.primary,.public-link button{color:#120d08;background:linear-gradient(180deg, var(--gold-soft), var(--gold));border:1px solid #7d5b1e;justify-content:center;align-items:center;gap:9px;min-width:0;min-height:50px;font-weight:900;transition:transform .16s,filter .16s;display:inline-flex}.primary:hover,.public-link button:hover{filter:brightness(1.04);transform:translateY(-1px)}.primary:disabled{filter:grayscale(.5);transform:none}.quota-note{color:#6c5224;font-size:.82rem;font-weight:700}.reading-surface{background:linear-gradient(135deg,#d8ad551c,#0000 28%),linear-gradient(#ffffff08 1px,#0000 1px) 0 0/30px 30px,linear-gradient(90deg,#ffffff06 1px,#0000 1px) 0 0/30px 30px,#171019eb;align-content:start;gap:22px;min-width:0;min-height:580px;padding:clamp(18px,3.5vw,34px);display:grid}.surface-header,.board-header,.summary-heading,.explanation-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.surface-header svg,.summary-heading svg{color:var(--gold);flex:none}.shuffle,.empty-board,.card-grid{grid-template-columns:repeat(3,minmax(150px,1fr));gap:clamp(12px,2vw,18px);min-width:0;display:grid}.shuffle{place-items:center;min-height:270px}.shuffle-card,.empty-card,.tarot-card{aspect-ratio:2/3;min-height:250px;max-height:380px}.shuffle-card,.empty-card,.hidden-card{background:radial-gradient(circle,#d8ad552e,#0000 34%),linear-gradient(135deg,#d8ad5533,#0000 38%),repeating-linear-gradient(45deg,#d8ad550f 0 1px,#0000 1px 10px),#130d15;border:1px solid #d8ad55b8}.empty-card{color:#d8ad5575;font-family:var(--serif);place-items:center;font-size:2.5rem;display:grid}.board{gap:24px;display:grid}.board-header{padding-bottom:4px}.board-header h2{max-width:34ch;margin-top:6px;font-size:2rem}.board-status{border:1px solid var(--hairline);color:var(--gold-soft);flex:none;padding:8px 10px;font-size:.82rem}.reading-category{border-bottom:1px solid var(--hairline);width:fit-content;color:var(--muted);text-transform:capitalize;margin-top:10px;font-size:.85rem}.tarot-card{text-align:left;border-radius:0;grid-template-rows:auto auto 1fr auto;gap:8px;width:100%;min-width:0;padding:clamp(12px,2vw,16px);display:grid;position:relative;overflow:hidden}.card-art{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.revealed:after{content:"";background:linear-gradient(#0000 50%,#0a0608cc);position:absolute;inset:0}.tarot-card>:not(.card-art){z-index:1;position:relative}.tarot-card strong{color:var(--text);font-family:var(--serif);text-transform:capitalize;font-size:.98rem}.hidden-card.can-reveal:after{pointer-events:none;content:"";border:1px solid #d8ad5547;position:absolute;inset:10px}.position{color:#f2d892c7}.card-sigil{color:var(--gold);place-items:center;display:grid}.card-sigil svg{filter:drop-shadow(0 0 18px #d8ad556b)}.spin{animation:.9s linear infinite spin}.card-back-mark{min-height:34px;color:var(--gold-soft);text-transform:uppercase;justify-content:center;align-items:center;font-size:.78rem;font-weight:900;display:inline-flex}.revealed{color:var(--text);background:var(--velvet)}.revealed strong,.revealed .position{color:var(--gold-soft)}.card-name{overflow-wrap:anywhere;min-width:0;color:var(--text);font-family:var(--serif);align-self:end;font-size:1.35rem;line-height:1.06}.keywords{overflow-wrap:anywhere;min-width:0;color:var(--gold-soft);font-size:.74rem;line-height:1.35}.explanations{gap:14px;display:grid}.explanation,.final-summary{color:var(--ink);background:linear-gradient(135deg, #fff9e4a3, transparent 30%), var(--parchment);gap:10px;padding:clamp(17px,3vw,24px);display:grid}.explanation p,.final-summary p{overflow-wrap:anywhere}.explanation-heading span{color:#21150861;font-family:var(--serif);font-size:2rem}.final-summary{margin-top:20px}.public-summary{border-color:#f2d8928a}.reading-history{background:linear-gradient(135deg,#d8ad551a,#0000 38%),#171019eb;gap:14px;padding:20px;display:grid}.history-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.history-heading svg{color:var(--gold)}.history-list{gap:10px;display:grid}.history-item{min-width:0;color:var(--text);background:#ffffff08;border:1px solid #d8ad5538;gap:4px;padding:13px 34px 13px 13px;text-decoration:none;transition:border-color .16s,transform .16s;display:grid;position:relative}.history-item:hover{border-color:#d8ad559e;transform:translateY(-1px)}.history-item span{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:800}.history-item strong,.history-item small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.history-item small{color:var(--muted)}.history-item svg{color:var(--gold);position:absolute;top:14px;right:12px}.public-link{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;margin-top:10px;display:grid}.public-link code{min-width:0;color:var(--ink);background:#fff9e2c7;border:1px solid #5b3b128c;padding:13px;overflow:auto}.public-link button{padding:0 16px}.error-banner{color:var(--danger-soft);background:linear-gradient(90deg, var(--danger), #4f1f2a);align-items:center;gap:9px;margin-bottom:16px;padding:13px;display:flex}.loading-text{color:var(--muted);margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=980px){.workspace,.workspace.reading-active{grid-template-columns:1fr}.board-header{display:grid}.board-header h2{max-width:none;font-size:1.75rem}.board-status{width:fit-content}}@media (width<=680px){.app-shell,.app-shell.public-mode{width:min(100% - 24px,540px);padding:18px 0 32px}.intro-panel{grid-template-columns:1fr;gap:8px}.intro-actions{justify-content:flex-start}.auth-page{grid-template-columns:1fr;padding-top:18px}h1{max-width:8ch}.reading-form,.reading-surface{padding:18px}.segmented,.option-grid{grid-template-columns:1fr}.segmented button,.option-grid button,.option-grid button:nth-child(2n),.option-grid button:last-child{border-bottom:1px solid #5b3b128c;border-right:0}.segmented button:last-child,.option-grid button:last-child{border-bottom:0}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.shuffle-card,.empty-card,.tarot-card{min-height:160px;max-height:none}.tarot-card{gap:6px;padding:10px}.tarot-card strong,.card-back-mark,.keywords{font-size:.68rem}.card-name{font-size:1rem}.surface-header,.summary-heading,.explanation-heading{display:grid}.public-link{grid-template-columns:1fr}}@media (width<=480px){.card-grid,.shuffle,.empty-board{grid-template-columns:1fr}.tarot-card{min-height:220px}.tarot-card strong{font-size:.95rem}.card-name{font-size:1.35rem}}
