@font-face{font-family:Cormorant;src:url('../assets/cormorant.ttf') format('truetype');font-weight:400 700;font-display:swap}
:root{--ink:#10111a;--panel:#191923;--gold:#c6ad80;--gold-bright:#e2cba0;--gold-muted:#887453;--text:#dfd8cd;--muted:#948c9a;--line:rgba(193,167,119,.2);--serif:'Noto Serif SC','Songti SC','SimSun',serif;--sans:'Microsoft YaHei','PingFang SC',sans-serif;--ease:cubic-bezier(.22,.7,.2,1);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--text);font:13px/1.7 var(--sans);overflow-x:hidden}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}a{color:inherit;text-decoration:none}svg{display:block}button{transition:color .25s,background .25s,border-color .25s,transform .25s}button:hover{color:var(--gold-bright)}[hidden]{display:none!important}.container{width:min(1280px,calc(100% - 112px));margin-inline:auto}.eyebrow{font:500 11px/1.6 Cormorant,Georgia,serif;letter-spacing:2.2px;color:var(--gold)}.muted{color:var(--muted)}.scenery{position:fixed;inset:0;pointer-events:none;z-index:-3;background:#10111a;transition:opacity 1.4s,transform 1.5s var(--ease)}.scenery>img{width:100%;height:100%;object-fit:cover;object-position:center 38%;opacity:.96}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,24,.2),transparent 47%,#10111a 98%)}.moon-haze{position:absolute;left:53%;top:22%;width:25vw;height:25vw;background:radial-gradient(ellipse,rgba(137,116,145,.09),transparent 65%);animation:haze 10s ease-in-out infinite}.vignette{position:fixed;inset:0;pointer-events:none;z-index:4;box-shadow:inset 0 0 150px rgba(0,0,0,.22)}#atmosphere{position:fixed;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.topbar{height:96px;padding:0 56px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(175,151,107,.12);position:relative;z-index:5;background:linear-gradient(#10121ac9,#10121a22)}.brand{display:flex;gap:13px;align-items:center}.brand>svg{width:43px;height:43px;stroke:var(--gold);fill:none;stroke-width:.7}.brand>svg path:last-child{fill:var(--gold);stroke:none}.brand>span{font:22px/1.4 var(--serif);letter-spacing:4px}.brand small{display:block;font:9px/1.7 Cormorant,Georgia,serif;letter-spacing:2px;color:var(--gold);margin-top:4px}.topbar nav{display:flex;gap:40px;align-items:center;padding-top:4px}.nav-item{font-size:12px;position:relative;letter-spacing:2px;padding:26px 0;color:#a39ba9}.nav-item.active{color:var(--gold-bright)}.nav-item.active:after{content:'';position:absolute;bottom:10px;left:calc(50% - 2px);width:4px;height:4px;transform:rotate(45deg);background:var(--gold)}.nav-dot{font:10px Cormorant,Georgia,serif;letter-spacing:0;border:1px solid var(--line);padding:1px 4px;margin-left:5px}.header-actions{display:flex;gap:13px}.icon-button{width:36px;height:36px;border:1px solid var(--line);display:grid;place-items:center;border-radius:50%;color:#aaa098}.icon-button>svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.icon-button:hover{background:#c4aa7310;border-color:var(--gold-muted)}.icon-button[aria-pressed=true]{color:var(--gold-bright);border-color:var(--gold)}
.welcome{position:relative;min-height:538px;display:grid;grid-template-columns:440px 1fr;padding-block:55px 35px}.intro{position:relative;z-index:3}.intro>.eyebrow{display:flex;gap:10px;align-items:center}.tiny-star{font-size:19px}.intro h1{font:400 57px/1.38 var(--serif);letter-spacing:5px;margin:18px 0 19px;color:#ebe1d3}.intro h1 span{color:var(--gold-bright)}.intro-copy{font-size:12px;line-height:2.1;letter-spacing:.8px;color:#a59ca9;margin:0 0 22px}.topic-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px}.topic-chips button{font-size:10px;color:#a89da9;border:1px solid #9a879230;padding:5px 13px;letter-spacing:.6px;border-radius:2px}.topic-chips button.selected{border-color:#b89d6866;color:var(--gold-bright);background:#b69a6810}.question-field{display:block;position:relative;width:365px;max-width:100%;border:1px solid var(--line);border-radius:3px;background:#17162088;transition:border-color .25s}.question-field:focus-within{border-color:var(--gold-muted)}.question-field>span:first-child{display:block;margin:10px 15px 0;font-size:10px;letter-spacing:1.3px;color:#b4a38c}.question-field small{margin-left:7px;color:#726d7c;font-size:9px}.question-field textarea{border:0;background:none;color:#e0d5c8;outline:none;width:100%;resize:none;display:block;padding:7px 34px 10px 15px;line-height:1.7;font-size:11px;min-height:60px}.question-field textarea:focus-visible{outline:none}.question-field textarea::placeholder{color:#7e7584}.field-spark{position:absolute;right:14px;bottom:17px;color:#ab9468}.button-primary{display:flex;align-items:center;justify-content:center;gap:30px;min-height:46px;background:linear-gradient(110deg,#ad8d5b,#d2b78a 57%,#bfa072);color:#17151a;padding:12px 28px;border:1px solid #d0b68d;border-radius:2px;box-shadow:0 5px 27px #b48e5412;font-size:12px;letter-spacing:2px}.button-primary:hover{color:#111015;background:linear-gradient(110deg,#c09e68,#e2cba1 57%,#ceb083);transform:translateY(-2px);box-shadow:0 7px 30px #b48e5430}.button-primary:active{transform:translateY(0)}.intro>.button-primary{margin-top:19px;min-width:223px}.privacy-note{font-size:9px;letter-spacing:.6px;color:#807886;margin-top:12px}.privacy-note>span{color:#9e896c;margin-right:4px}.oracle-presence{position:relative}.keeper-caption{position:absolute;right:0;top:100px;display:flex;gap:12px;align-items:flex-start;opacity:.75}.keeper-caption>i{width:5px;height:5px;background:#bfa577;transform:rotate(45deg);margin-top:7px}.keeper-caption>span{font:9px Cormorant,Georgia,serif;letter-spacing:1.4px;color:#c5b3a1}.keeper-caption small{display:block;font:11px var(--serif);letter-spacing:3px;margin-top:7px}.oracle-quote{position:absolute;right:0;top:255px;font:12px/2.1 var(--serif);color:#b7a795;letter-spacing:2px}.oracle-quote span{margin-left:23px}.hero-cards{position:absolute;left:40%;top:320px;width:160px;height:180px;transform:translateX(-50%);perspective:900px}.hero-card{position:absolute;left:28px;top:5px;width:105px;height:180px;filter:drop-shadow(0 20px 20px #05040bb3);transform-origin:center 85%;animation:levitate 7s ease-in-out infinite}.hero-card:nth-child(1){transform:rotate(-17deg) translateX(-45px);animation-delay:-2s}.hero-card:nth-child(2){transform:rotate(16deg) translateX(43px);animation-delay:-4s}.hero-card:nth-child(3){transform:translateY(-16px);z-index:2;animation:none}.hero-card img{width:100%;height:100%;border-radius:5px}.hero-card:nth-child(3):after{content:'';position:absolute;inset:-20px;background:radial-gradient(ellipse,rgba(224,193,135,.13),transparent 68%);z-index:-1}.setup{position:relative;z-index:3;padding:23px 0 0;border-top:1px solid var(--line)}.section-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.section-line h2{font:16px var(--serif);letter-spacing:3px;margin:0;color:#d1c3b0}.section-line>span{font-size:9px;color:#87808c;letter-spacing:1px}.spread-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.spread-option{text-align:left;position:relative;padding:16px 16px 14px;background:linear-gradient(135deg,#26232d8a,#161722d9);border:1px solid #b19b761c;border-radius:3px;min-height:129px;overflow:hidden}.spread-option:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 90% 10%,#9a758620,transparent 65%);opacity:0;transition:opacity .3s}.spread-option.selected{border-color:#b9a0747a;background:linear-gradient(135deg,#3c303c8f,#201d27e3)}.spread-option.selected:before{opacity:1}.spread-option:hover{border-color:#b9a07480;transform:translateY(-3px)}.spread-option>.spread-glyph{width:44px;height:35px;stroke:#9c8565;fill:none;stroke-width:.8;margin-bottom:12px}.spread-option.selected>.spread-glyph{stroke:var(--gold-bright)}.spread-name{font:15px var(--serif);letter-spacing:1.5px;display:block;color:#cfc3b1}.spread-name small{font:9px var(--sans);letter-spacing:.5px;color:#918895;margin-left:8px}.spread-option>.spread-desc{display:block;font-size:9px;color:#8f8694;margin-top:5px;line-height:1.7}.spread-option>.spread-count{position:absolute;right:13px;top:15px;font:10px Cormorant,Georgia,serif;color:#8d7d63;letter-spacing:1px}.spread-option>.selected-star{display:none;position:absolute;right:12px;bottom:12px;color:#c5aa78;font-size:13px}.spread-option.selected>.selected-star{display:block}.setup-options{display:flex;align-items:center;justify-content:space-between;padding-top:19px;gap:20px;font-size:10px;color:#a296a3}.variant-label{display:flex;gap:12px;align-items:center;white-space:nowrap}select{background:#191822;border:1px solid var(--line);padding:7px 24px 7px 10px;color:#c5bcae;font-size:10px;max-width:100%;border-radius:2px}option{background:#191822}.switch-label{display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}.switch-label input{position:absolute;opacity:0;width:30px;height:20px}.switch-track{width:29px;height:15px;border:1px solid #8e7b5d;border-radius:20px;position:relative}.switch-track:after{content:'';position:absolute;top:3px;left:3px;width:7px;height:7px;border-radius:50%;background:#786f7d;transition:transform .2s,background .2s}.switch-label input:checked+.switch-track:after{transform:translateX(13px);background:#d0b588}.switch-label input:checked+.switch-track{background:#c5aa7917}.switch-label input:focus-visible+.switch-track{outline:2px solid var(--gold);outline-offset:3px}.subtle-button{font-size:10px;color:#b6a78f;padding:7px 0;letter-spacing:.8px;white-space:nowrap}.subtle-button:hover{text-decoration:underline;text-underline-offset:4px}.footer{position:relative;z-index:3;display:flex;justify-content:space-between;padding:33px 0 23px;color:#6e6877;font-size:9px;letter-spacing:1px}.footer>span:first-child{display:flex;gap:8px}.footer>span:last-child{font-family:Cormorant,Georgia,serif;letter-spacing:1.5px}.choice-fields{display:flex;gap:10px;max-width:365px;margin-top:12px}.choice-fields>label{width:50%;font-size:10px;color:#b6a489}.choice-fields input{width:100%;background:#17162099;border:1px solid var(--line);color:#d6ccbd;padding:7px;font-size:10px;border-radius:2px}
/* Portraits share an ornate, replaceable frame; reversal rotates the complete face. */
.portrait{position:relative;width:100%;height:100%;background:linear-gradient(135deg,#24212e,#191622 70%,#332735);border-radius:7px;overflow:hidden;isolation:isolate;box-shadow:inset 0 0 15px #0007}.portrait:before{content:'';position:absolute;inset:0;z-index:2;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' seed='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.65' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.portrait-art{position:absolute;inset:10.3% 11.5% 17%;overflow:hidden;border-radius:45% 45% 2px 2px;border:1px solid #b198695c;background:#af956f}.portrait-art img{width:100%;height:115%;object-fit:cover;object-position:center top;display:block;filter:sepia(.28) saturate(.66) contrast(1.07)}.portrait:after{content:'';position:absolute;inset:10% 11% 17%;border-radius:45% 45% 2px 2px;background:linear-gradient(145deg,#f0d8a015,transparent 35%,#251f2938);pointer-events:none}.portrait-number{position:absolute;top:2.2%;left:25%;right:25%;font:11px Cormorant,Georgia,serif;color:#dbc496;text-align:center;letter-spacing:2px;z-index:4}.portrait-title{position:absolute;left:7%;right:7%;bottom:7.9%;text-align:center;color:#e0cb9d;font:12px var(--serif);letter-spacing:2px;z-index:4}.portrait-en{position:absolute;left:5%;right:5%;bottom:4.3%;text-align:center;color:#a48b67;font:6px Cormorant,Georgia,serif;letter-spacing:1px;text-transform:uppercase;z-index:4}.portrait-frame{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.skin-classic .portrait{background:#d9c9a8}.skin-classic .portrait-art{inset:3% 3% 3%;border:0;border-radius:3px}.skin-classic .portrait-art img{height:100%;filter:none;object-fit:contain}.skin-classic .portrait-frame,.skin-classic .portrait-title,.skin-classic .portrait-en,.skin-classic .portrait-number,.skin-classic .portrait:after{display:none}.skin-classic .portrait:before{opacity:.03}
/* Ritual stage */
.in-ritual .scenery{opacity:.46;transform:scale(1.025)}.ritual{position:relative;z-index:3;max-width:1100px;padding-top:24px}.ritual-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.steps{list-style:none;display:flex;gap:32px;padding:0;margin:0;counter-reset:ritual-step}.steps li{font-size:9px;color:#736b7b;position:relative;counter-increment:ritual-step;letter-spacing:1px}.steps li:before{content:counter(ritual-step,decimal-leading-zero);font-family:Cormorant,Georgia,serif;margin-right:6px}.steps li.active{color:#dfc99f}.steps li.done{color:#a4947b}.steps li.active:after{content:'';width:4px;height:4px;background:var(--gold);position:absolute;left:50%;bottom:-12px;transform:rotate(45deg)}.ritual-heading{text-align:center;margin-top:32px;min-height:112px}.ritual-heading h1{font:26px/1.5 var(--serif);letter-spacing:3px;margin:9px 0;color:#e0d3c0}.ritual-heading p{font-size:11px;color:#aba0ae;letter-spacing:1px;margin:0}.table-stage{height:490px;position:relative;margin:0 auto;perspective:1200px}.table-aura{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#5443562c,transparent 65%);pointer-events:none}.spread-board{position:absolute;inset:0 0 60px;max-width:900px;margin:auto;transition:opacity .5s;opacity:1}.spread-board:empty{opacity:0}.slot{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:114px;height:196px;transform:translate(-50%,-50%);perspective:900px;z-index:2}.slot-placeholder{position:absolute;inset:0;border:1px solid #bfa2772b;border-radius:6px;background:#16142122;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#85785e;gap:10px}.slot-placeholder:before,.slot-placeholder:after{content:'✧';font-size:12px;position:absolute;left:calc(50% - 5px)}.slot-placeholder:before{top:12px}.slot-placeholder:after{bottom:12px}.slot-number{font:23px Cormorant,Georgia,serif;opacity:.6}.slot-label{position:absolute;bottom:-37px;left:-25%;right:-25%;text-align:center;pointer-events:none;font:11px var(--serif);letter-spacing:1px;color:#b3a385;line-height:1.5}.slot-label small{display:block;font:8px var(--sans);letter-spacing:.5px;color:#8e8191}.slot.cross{z-index:3}.slot.cross .card-visual,.slot.cross .slot-placeholder{transform:rotate(90deg)}.slot.cross .slot-label{bottom:-4px;left:calc(100% + 20px);right:auto;width:88px;text-align:left;font-size:9px}.spread-celtic .slot{width:79px;height:137px}.spread-celtic .slot-label{bottom:-29px;font-size:9px}.spread-celtic .slot.cross .slot-label{bottom:4px;left:calc(100% + 36px);width:85px;text-align:left;font-size:8px}.spread-celtic .portrait-title{font-size:9px;letter-spacing:1px}.spread-celtic .portrait-number{font-size:8px}.spread-relationship .slot{width:85px;height:147px}.spread-choice .slot{width:83px;height:143px}.spread-relationship .portrait-title,.spread-choice .portrait-title{font-size:9px}.card-visual{position:relative;width:100%;height:100%;padding:0;outline:none;border-radius:6px;display:block;box-shadow:0 15px 27px #0008;transform-style:preserve-3d;transition:box-shadow .4s}.card-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .9s var(--ease)}.card-visual.revealed .card-inner{transform:rotateY(180deg)}.card-side{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:6px;overflow:hidden}.card-back>img{width:100%;height:100%;display:block}.card-front{transform:rotateY(180deg);background:#222030}.card-front .portrait{transition:transform 1s var(--ease);transition-delay:.5s}.card-visual.revealed.reversed .portrait{transform:rotate(180deg)}.card-visual.revealed:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:5px;box-shadow:0 0 24px #d2b27e22;animation:reveal-glow 1.4s ease-out both}.card-visual.revealed .card-front:after{content:'';position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 35%,#e6d6a649 48%,transparent 60%);transform:translateX(-150%);pointer-events:none;animation:foil 1.6s var(--ease) .3s both}.card-visual:hover{box-shadow:0 17px 28px #000a,0 0 25px #c7a46b22}.card-visual:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.slot.reading-highlight .card-visual{box-shadow:0 0 35px #d4b98855}.focus-sigil{position:absolute;width:230px;height:230px;top:42%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center}.sigil-ring{position:absolute;inset:0;border:1px solid #baa17529;border-radius:50%;box-shadow:0 0 50px #b29e8920;animation:ring-breathe 5s ease-in-out infinite}.sigil-ring:before{content:'';position:absolute;inset:13px;border:1px dashed #c8ab7330;border-radius:50%}.sigil-ring:after{content:'';position:absolute;inset:38px;border:1px solid #c8ab7345;transform:rotate(45deg);animation:sigil-turn 70s linear infinite}.focus-sigil>span{font:80px Georgia,serif;color:#cfb886;filter:drop-shadow(0 0 20px #bea5754a)}.focus-sigil>i{position:absolute;font:18px Georgia,serif;color:var(--gold);right:62px;top:55px}.shuffle-stage{position:absolute;top:38%;left:50%;width:114px;height:196px;transform:translate(-50%,-50%);perspective:1000px}.shuffle-card{position:absolute;inset:0;border-radius:5px;box-shadow:0 7px 12px #0006;background-image:url('../assets/card-back.svg');background-size:100% 100%;transform:translate(calc(var(--i)*.8px),calc(var(--i)*-.7px));transform-style:preserve-3d}.deck-fan{position:absolute;bottom:30px;left:50%;width:740px;height:155px;transform:translateX(-50%);perspective:1100px}.fan-card{position:absolute;left:calc(50% - 28px);top:35px;width:56px;height:96px;transform:translate(calc(var(--fan-x)*1px),calc(var(--fan-y)*1px)) rotate(calc(var(--fan-a)*1deg));transform-origin:50% 180%;padding:0;border-radius:4px;box-shadow:0 6px 14px #0007;transition:filter .2s,box-shadow .2s,margin-top .3s var(--ease);background-image:url('../assets/card-back.svg');background-size:100% 100%}.fan-card:hover,.fan-card:focus-visible{margin-top:-20px;filter:brightness(1.2);box-shadow:0 0 23px #d7b9784d,0 15px 15px #0008;z-index:90!important}.fan-card:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.fan-card.chosen{pointer-events:none;opacity:0;transition:opacity .2s}.fan-page{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);display:flex;gap:16px;align-items:center;z-index:3}.fan-page>span{font-size:9px;color:#ab9a80;letter-spacing:1px}.fan-page .icon-button{width:26px;height:26px;font-size:11px}.flying-card{position:fixed;width:56px;height:96px;z-index:30;border-radius:5px;box-shadow:0 0 22px #d2b77b40;pointer-events:none;transform-origin:top left;background-image:url('../assets/card-back.svg');background-size:100% 100%}.ritual-controls{display:flex;flex-direction:column;align-items:center;gap:11px;padding:10px 0 20px;min-height:110px}.ritual-controls>.button-primary{min-width:250px}.keeper-speech{font:11px/1.8 var(--serif);letter-spacing:1px;color:#ad9e8b;min-height:24px;text-align:center;margin:4px 0}.draw-count{font-size:11px;color:var(--gold-bright);letter-spacing:1.2px;margin:0}.cut-controls label{display:flex;align-items:center;gap:15px;font-size:10px;color:#b6a382}.cut-controls input{width:180px;accent-color:var(--gold)}.cut-controls span{font:10px Cormorant,var(--sans);color:#8e8494}.ritual.is-reading .table-stage{height:470px}.ritual.is-reading .ritual-controls{min-height:40px;padding:0}.ritual.is-reading .ritual-heading{min-height:92px}.ritual.is-reading .ritual-heading h1{font-size:22px}.ritual.is-reading .ritual-top .steps{opacity:.6}
/* Results: a complete overview plus expandable, position-aware individual readings. */
.reading{position:relative;z-index:3;max-width:1100px;margin-top:15px;padding-top:26px;border-top:1px solid var(--line)}.reading-header{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:24px}.reading-header h2{font:25px var(--serif);letter-spacing:2px;margin:8px 0 12px}.reading-header p{font-size:11px;color:#a59baa;margin:0;max-width:580px;overflow-wrap:anywhere}.reading-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.button-outline{font-size:10px;letter-spacing:.5px;border:1px solid #aa936950;background:#18161f80;border-radius:2px;padding:9px 14px;color:#cab99d}.button-outline:hover{border-color:var(--gold);background:#b3936020}.reading-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:23px}.summary-panel,.details-panel{background:linear-gradient(135deg,#25202bdb,#161620ec);border:1px solid var(--line);border-radius:4px;padding:26px 29px}.panel-kicker{font:17px var(--serif);letter-spacing:2px;color:#ddc99e;display:flex;gap:10px;align-items:center}.panel-kicker>span{font-size:20px;color:#b49864}.panel-kicker small{font:9px var(--sans);letter-spacing:.5px;color:#8c8092;margin-left:auto}.summary-panel p{font-size:12px;line-height:2.1;color:#bdb2c0;margin:19px 0}.summary-panel p:first-child{color:#dfd4c2}.next-step{border-top:1px solid var(--line);margin-top:25px;padding-top:18px}.next-step h3{font:14px var(--serif);color:#cdb68c;letter-spacing:1px;margin:0}.next-step ol{padding-left:21px;margin:12px 0 0}.next-step li{font-size:11px;line-height:1.9;color:#b2a5b4;padding:5px 0}.reading-links{border-top:1px solid var(--line);padding-top:15px;margin-top:18px}.reading-links h3{font:12px var(--serif);letter-spacing:1px;color:#b79e75;margin:0}.reading-links p{font-size:10px;line-height:1.9;margin:11px 0}.details-hint{font-size:9px;color:#877b8b;margin:10px 0 20px}.reading-detail{border-top:1px solid #aa8c632a}.reading-detail>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:17px 0}.reading-detail>summary::-webkit-details-marker{display:none}.reading-detail>summary:after{content:'+';margin-left:auto;color:#b29b73}.reading-detail[open]>summary:after{content:'−'}.detail-number{font:18px Cormorant,Georgia,serif;color:#967e56;min-width:20px}.detail-name{font:14px var(--serif);letter-spacing:1px;color:#d3c4ab;display:block}.detail-meta{font-size:9px;color:#8c7e90;display:block;margin-top:5px}.direction-tag{font:8px var(--sans);letter-spacing:0;margin-left:7px;padding:2px 5px;border:1px solid #9d89653d;color:#b29b73}.direction-tag.reversed{border-color:#91739060;color:#b392b3}.detail-body{padding:0 0 22px 32px}.keyword-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:15px}.keyword-row span{padding:2px 7px;font-size:9px;border:1px solid #ad956236;border-radius:2px;color:#b7a078}.detail-body h4{font-size:10px;color:#c5b192;font-weight:400;margin:13px 0 4px;letter-spacing:1px}.detail-body p{font-size:11px;color:#a99daa;line-height:1.95;margin:0}.detail-body .card-advice{margin-top:14px;border-left:2px solid #a68a5a;padding:9px 12px;background:#b8986710;color:#cdb995}.tendency-badge{padding:6px 12px;border:1px solid #ae93635c;display:inline-flex;color:var(--gold-bright);font:14px var(--serif);letter-spacing:2px;margin-top:20px}
/* Dialogs and accessible utility views */
dialog{color:var(--text)}.modal{border:1px solid #ad956258;background:linear-gradient(130deg,#28222feF,#15151fea);border-radius:8px;padding:32px;width:min(940px,calc(100% - 36px));max-height:88dvh;max-width:100%;box-shadow:0 25px 100px #000b;backdrop-filter:blur(18px);scrollbar-color:#6e5c4b #191721}.modal::backdrop{background:#090b13cc;backdrop-filter:blur(8px)}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--line)}.modal-heading h2{font:28px var(--serif);letter-spacing:3px;margin:8px 0}.modal-heading p{color:#9c90a2;font-size:11px;margin:0}.modal-heading>.icon-button{flex-shrink:0}.library-tools{display:flex;gap:12px;margin-top:22px}.search-field{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:7px 12px;flex:1;border-radius:2px}.search-field>span{font-size:24px;color:#b49e79;line-height:1}.search-field input{background:none;border:0;outline:0;color:#ccc0ce;width:100%;font-size:11px}.search-field:focus-within{border-color:var(--gold)}.library-tools select{font-size:11px}.library-modal>#library-count{font-size:10px;margin:14px 0}.library-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:24px 17px}.library-card{padding:0;text-align:center;position:relative;min-width:0}.library-card>.library-portrait{aspect-ratio:280/480;width:100%;transition:transform .3s,filter .3s;filter:drop-shadow(0 7px 7px #0004)}.library-card:hover>.library-portrait{transform:translateY(-5px);filter:drop-shadow(0 8px 10px #c69d6226)}.library-card>.library-name{font:12px var(--serif);display:block;margin-top:9px;color:#cdbd9e}.library-card>.library-category{font-size:8px;color:#8f8191;display:block;margin-top:3px}.library-card .portrait-title{font-size:11px}.library-card .portrait-number{font-size:10px}.card-modal{width:min(820px,calc(100% - 36px));position:relative;padding:38px}.corner-close{position:absolute;right:17px;top:17px;z-index:4}.card-detail-layout{display:grid;grid-template-columns:210px 1fr;gap:34px}.card-detail-portrait{width:210px;height:360px;position:sticky;top:0;box-shadow:0 10px 40px #0006}.card-detail-portrait.reversed .portrait{transform:rotate(180deg)}.card-detail-layout h2{font:26px var(--serif);letter-spacing:3px;margin:9px 0 0}.card-detail-layout .card-english{font:18px Cormorant,Georgia,serif;color:#af976e;letter-spacing:1px;margin:3px 0 15px}.card-detail-layout h3{font:14px var(--serif);letter-spacing:1px;color:#ccb790;margin:21px 0 10px}.card-detail-layout p{font-size:11px;line-height:2;color:#afa1b3}.card-detail-layout .keyword-row{margin-bottom:7px}.card-detail-layout .card-detail-meta{font-size:10px;color:#8f8295}.settings-modal{width:min(510px,calc(100% - 36px))}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:20px 0;border-bottom:1px solid var(--line);font-size:12px;color:#c5b898}.setting-row small{display:block;font-size:10px;color:#8e8195;margin-top:5px}.setting-row input[type=checkbox]{accent-color:var(--gold);width:17px;height:17px}.setting-row input[type=range]{accent-color:var(--gold);width:140px}.settings-note,.journal-note{font-size:10px;line-height:1.9;color:#968699;margin-top:24px}.help-modal{width:min(620px,calc(100% - 36px))}.help-modal h3{font:19px var(--serif);color:#cfb58b;letter-spacing:2px;margin:20px 0 7px}.help-modal p{font-size:11px;color:#a998ae;line-height:2}.help-modal ol{padding-left:23px}.help-modal li{font-size:11px;color:#a998ae;padding:8px 0}.help-modal li strong{font-weight:400;color:#ccb48b}.journal-modal{width:min(740px,calc(100% - 36px))}.journal-empty{text-align:center;padding:42px 15px;font:15px/2 var(--serif);color:#ab9470}.journal-entry{border-bottom:1px solid var(--line);padding:23px 0;display:grid;grid-template-columns:1fr auto;gap:12px}.journal-entry h3{font:16px var(--serif);color:#cebb99;margin:0 0 8px}.journal-entry p{font-size:11px;color:#9f8fa5;margin:7px 0;overflow-wrap:anywhere}.journal-entry time{font-size:9px;color:#887690}.journal-entry-actions{display:flex;gap:9px;align-items:center}.delete-entry{font-size:10px;color:#947e92}.confirm-modal{width:min(460px,calc(100% - 36px))}.confirm-modal h2{font:20px var(--serif);letter-spacing:1px;margin:0 0 13px}.confirm-modal p{color:#9e8da4;font-size:12px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.confirm-actions .button-primary{font-size:10px;letter-spacing:1px;min-height:36px;padding:8px 16px}.toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,12px);opacity:0;pointer-events:none;z-index:150;border:1px solid #bca17277;background:#25202fed;backdrop-filter:blur(12px);padding:11px 24px;border-radius:4px;color:#dbc399;font-size:11px;max-width:90vw;transition:opacity .3s,transform .3s;text-align:center}.toast.visible{transform:translate(-50%,0);opacity:1}.loading{position:fixed;inset:0;background:#11121c;z-index:300;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .8s,visibility .8s}.loading.done{opacity:0;visibility:hidden}.loading-sigil{font:76px Georgia,serif;color:#c3a779;margin-bottom:15px;animation:ring-breathe 2s ease-in-out infinite}.loading p{font:13px var(--serif);letter-spacing:3px;color:#a897af;margin:13px 0 25px}.load-track{height:1px;width:180px;background:#66533c44;overflow:hidden}.load-track>i{display:block;height:100%;width:0;background:var(--gold);transition:width .3s}.loading #load-percent{font:10px Cormorant,Georgia,serif;color:#806e59;letter-spacing:1px;margin-top:11px}.noscript{position:fixed;inset:40% 10% auto;z-index:400;text-align:center;background:#211b29;border:1px solid var(--gold);padding:30px}
@keyframes haze{50%{opacity:.4;transform:scale(1.15)}}@keyframes levitate{50%{margin-top:-8px}}@keyframes ring-breathe{50%{opacity:.6;box-shadow:0 0 75px #baa17516}}@keyframes sigil-turn{to{transform:rotate(405deg)}}@keyframes reveal-glow{0%{opacity:0}45%{opacity:1;box-shadow:0 0 40px #d2b27e66}100%{opacity:.2}}@keyframes foil{to{transform:translateX(150%)}}
/* Tablet and phone retain all rules, spread positions and controls. */
@media(min-width:1600px){.welcome{min-height:580px;padding-top:70px}.scenery>img{object-position:center 33%}.hero-cards{top:355px}.intro h1{font-size:64px}.setup{margin-top:10px}}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.topbar{padding-inline:32px}.topbar nav{gap:27px}.welcome{grid-template-columns:380px 1fr}.intro h1{font-size:51px}.oracle-quote{right:0;top:290px;font-size:10px}.keeper-caption{top:80px}.spread-option{padding-inline:12px}.spread-name{font-size:13px;letter-spacing:1px}.spread-name small{display:block;margin:5px 0 0;font-size:8px}.spread-desc{display:none!important}.spread-option{min-height:125px}.setup-options .muted{display:none}.reading-grid{gap:15px}.summary-panel,.details-panel{padding:23px}.library-grid{grid-template-columns:repeat(5,1fr)}.table-stage{height:500px}.spread-board{inset:0 0 65px}.reading-header{align-items:flex-start}.reading-actions{max-width:270px}.hero-cards{left:44%;top:340px}}
@media(max-width:800px){.container{width:calc(100% - 40px)}.topbar{height:80px;padding-inline:20px}.brand>span{font-size:19px;letter-spacing:3px}.brand>svg{width:35px;height:35px}.brand small{font-size:7px;letter-spacing:1.3px}.topbar nav{gap:18px}.nav-item{font-size:10px;letter-spacing:1px}.header-actions{gap:7px}.header-actions .icon-button{width:31px;height:31px}.welcome{min-height:555px;grid-template-columns:335px 1fr;padding-top:52px}.intro h1{font-size:48px}.intro>.eyebrow{font-size:8px;letter-spacing:1.5px}.intro-copy{font-size:11px}.keeper-caption{right:0;top:90px}.keeper-caption>span{font-size:7px}.keeper-caption small{font-size:10px;letter-spacing:2px}.oracle-quote{display:none}.hero-cards{left:50%;top:352px;transform:translateX(-50%) scale(.87)}.scenery>img{object-position:61% 32%}.spread-picker{gap:8px}.spread-option{padding:12px 9px;min-height:115px}.spread-option>.spread-glyph{width:36px;height:30px;margin-bottom:11px}.spread-name{font-size:12px;letter-spacing:.5px}.spread-option>.spread-count{font-size:8px;top:11px;right:9px}.setup-options{flex-wrap:wrap;gap:13px;font-size:9px}.setup-options>.subtle-button{margin-left:auto}.ritual-top{gap:15px}.ritual-top>.eyebrow{display:none}.steps{gap:19px}.ritual-heading h1{font-size:22px;letter-spacing:2px}.table-stage{height:465px}.spread-board{inset:0 0 70px}.slot{width:94px;height:162px}.deck-fan{width:620px;bottom:18px;height:120px}.fan-card{width:46px;height:79px;left:calc(50% - 23px)}.spread-celtic .slot{width:65px;height:112px}.spread-relationship .slot,.spread-choice .slot{width:74px;height:127px}.slot-label{font-size:10px}.cut-controls label{gap:10px}.cut-controls input{width:150px}.reading-grid{grid-template-columns:1fr}.reading-header{gap:18px;flex-direction:column}.reading-actions{justify-content:flex-start;max-width:none}.summary-panel,.details-panel{padding:25px}.footer{font-size:8px;gap:15px}.footer>span:last-child{display:none}.library-grid{grid-template-columns:repeat(4,1fr)}.modal{padding:25px}.card-modal{padding:34px 25px}.card-detail-layout{grid-template-columns:160px 1fr;gap:25px}.card-detail-portrait{width:160px;height:275px}.card-detail-layout h2{font-size:23px}.card-detail-layout .card-english{font-size:16px}}
@media(max-width:560px){.container{width:calc(100% - 36px)}.topbar{height:73px;padding-inline:18px;gap:10px}.brand{gap:9px}.brand>svg{width:32px;height:32px}.brand>span{font-size:18px;letter-spacing:3px}.brand small{font-size:6px;letter-spacing:1px}.topbar nav{position:absolute;top:84px;right:17px;gap:19px;z-index:6}.nav-item{padding:7px 0 13px;font-size:10px;letter-spacing:1px}.nav-item.active{display:none}.nav-item.active:after{display:none}.nav-dot{font-size:8px}.header-actions{gap:6px}.header-actions .icon-button{width:29px;height:29px}.welcome{display:block;min-height:auto;padding:56px 0 24px}.intro{width:100%}.intro h1{font-size:45px;line-height:1.4;letter-spacing:3px;margin:22px 0 19px}.intro-copy{font-size:11px;letter-spacing:.5px;width:260px;line-height:2.1}.intro>.eyebrow{font-size:7px;letter-spacing:1.6px;gap:7px}.intro .tiny-star{font-size:15px}.topic-chips{gap:6px;margin-top:25px;margin-bottom:12px}.topic-chips button{font-size:9px;padding:5px 10px;background:#171620a3}.question-field{width:100%;background:#18151fe6}.question-field textarea{font-size:11px;min-height:59px}.question-field>span:first-child{font-size:10px}.intro>.button-primary{width:100%;margin-top:16px;min-height:46px}.privacy-note{text-align:center;font-size:8px;margin-top:10px}.oracle-presence{position:absolute;right:0;top:91px;width:118px;height:230px;pointer-events:none;z-index:0}.keeper-caption{right:4px;top:40px;display:none}.hero-cards{left:55%;top:140px;transform:translateX(-50%) scale(.56);opacity:.85}.scenery>img{object-position:66% top;opacity:.76;width:100%;height:76vh;min-height:570px}.scene-shade{background:linear-gradient(180deg,#0f121924,transparent 25%,#10111a 66%)}.scenery{background:#10111a}.moon-haze{left:42%;width:55vw;height:55vw;top:14%}.setup{padding-top:19px;margin-top:9px}.section-line{margin-bottom:14px}.section-line h2{font-size:14px;letter-spacing:2px}.section-line>span{font-size:8px;letter-spacing:.2px}.spread-picker{grid-template-columns:repeat(2,1fr);gap:9px}.spread-option{min-height:105px;padding:12px 13px}.spread-option:last-child{grid-column:1/-1;min-height:88px;padding-left:65px;display:flex;justify-content:center;flex-direction:column}.spread-option:last-child>.spread-glyph{position:absolute;left:14px;top:27px;width:35px;height:32px}.spread-option:last-child>.spread-count{right:15px;top:14px}.spread-option>.spread-glyph{width:38px;height:29px;margin-bottom:7px}.spread-name{font-size:14px;letter-spacing:1px}.spread-name small{display:inline;margin-left:8px;font-size:8px}.spread-option>.spread-count{font-size:9px}.spread-desc{display:block!important;font-size:8px!important;line-height:1.5!important}.spread-option>.selected-star{right:10px;bottom:10px;font-size:10px}.setup-options{gap:14px;padding-top:16px}.variant-label{width:100%;font-size:10px;justify-content:space-between}.variant-label select{flex:1;max-width:250px;padding-top:8px;padding-bottom:8px}.switch-label{font-size:10px}.setup-options .subtle-button{font-size:9px}.footer{padding:26px 0;font-size:8px;line-height:1.7}.choice-fields{max-width:none}.in-ritual .topbar nav{display:none}.ritual{padding-top:18px}.ritual-top>.subtle-button{font-size:9px}.steps{gap:10px}.steps li{font-size:8px;letter-spacing:0}.steps li:before{margin-right:3px;font-size:8px}.ritual-heading{margin-top:32px;min-height:113px}.ritual-heading>.eyebrow{font-size:8px;letter-spacing:1.5px}.ritual-heading h1{font-size:19px;letter-spacing:1px;line-height:1.6;margin:9px -6px}.ritual-heading p{font-size:10px;letter-spacing:.3px;line-height:1.9;max-width:310px;margin:auto}.table-stage{height:430px;margin-top:8px}.spread-board{inset:0 0 126px}.slot{width:74px;height:127px}.slot-label{font-size:9px;bottom:-34px;letter-spacing:.5px;left:-13%;right:-13%}.slot-label small{font-size:7px;margin-top:2px}.portrait-title{font-size:10px;letter-spacing:1px}.portrait-number{font-size:8px}.portrait-en{font-size:4px;letter-spacing:.4px}.spread-celtic .slot{width:48px;height:83px}.spread-celtic .slot-label{font-size:7px;bottom:-21px;left:-25%;right:-25%;letter-spacing:0}.spread-celtic .slot-label small{font-size:6px}.spread-celtic .slot.cross .slot-label{font-size:6px;width:49px;left:calc(100% + 14px);bottom:1px;white-space:normal}.spread-celtic .portrait-title{font-size:7px;letter-spacing:.4px}.spread-celtic .portrait-number{font-size:6px}.spread-relationship .slot,.spread-choice .slot{width:55px;height:95px}.spread-relationship .slot-label,.spread-choice .slot-label{font-size:8px;bottom:-26px}.spread-relationship .portrait-title,.spread-choice .portrait-title{font-size:7px;letter-spacing:.6px}.deck-fan{width:100%;height:93px;bottom:31px}.fan-card{width:54px;height:92px;left:calc(50% - 27px);top:0;border-radius:3px}.fan-card:hover{margin-top:-10px}.fan-page{bottom:-6px;gap:12px}.fan-page>span{font-size:8px}.fan-page .icon-button{width:25px;height:25px}.focus-sigil{width:186px;height:186px;top:38%}.focus-sigil>span{font-size:65px}.focus-sigil>i{right:48px;top:44px;font-size:13px}.shuffle-stage{width:94px;height:162px;top:35%}.cut-controls label{flex-wrap:wrap;justify-content:center;font-size:10px;max-width:280px;gap:9px}.cut-controls input{width:140px}.cut-controls span{font-size:9px}.ritual-controls{padding-top:8px;gap:9px}.ritual-controls>.button-primary{width:min(280px,100%);font-size:11px;letter-spacing:1px;min-height:45px}.keeper-speech{font-size:10px;max-width:310px;margin:8px auto;line-height:1.9}.ritual.is-reading .table-stage{height:350px}.ritual.is-reading .spread-board{inset:0 0 20px}.ritual.is-reading .ritual-heading h1{font-size:19px}.ritual.is-reading .ritual-heading{min-height:95px}.reading{padding-top:20px;margin-top:5px}.reading-header h2{font-size:22px;letter-spacing:1px}.reading-header>.eyebrow{font-size:8px}.reading-header p{font-size:10px;line-height:1.9}.reading-actions{gap:7px;width:100%}.reading-actions .button-outline{font-size:9px;padding:8px 10px;flex:1;white-space:nowrap}.reading-actions .subtle-button{font-size:9px;width:100%;text-align:right}.summary-panel,.details-panel{padding:21px 18px}.panel-kicker{font-size:15px;letter-spacing:1px}.panel-kicker small{font-size:8px}.summary-panel p{font-size:11px;line-height:2.1;margin:17px 0}.next-step h3{font-size:13px}.next-step li{font-size:10px}.detail-name{font-size:13px}.detail-meta{font-size:8px}.detail-body{padding-left:0}.detail-body p{font-size:10px;line-height:2.05}.reading-detail>summary{padding-block:15px;gap:9px}.detail-body h4{font-size:10px}.modal{padding:22px 17px;width:calc(100% - 22px);max-height:90dvh;border-radius:6px}.modal-heading{gap:10px;padding-bottom:16px}.modal-heading h2{font-size:25px;letter-spacing:2px}.modal-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.modal-heading p{font-size:10px}.library-tools{gap:8px;margin-top:17px}.library-tools select{font-size:9px;width:110px;padding-left:6px;padding-right:16px}.search-field{padding:6px 7px;gap:4px}.search-field input{font-size:10px}.library-grid{grid-template-columns:repeat(3,1fr);gap:18px 10px}.library-card .portrait-title{font-size:9px}.library-card .portrait-number{font-size:8px}.library-card>.library-name{font-size:10px}.library-card>.library-category{font-size:7px}.card-modal{padding:34px 20px}.card-detail-layout{display:block}.card-detail-portrait{width:150px;height:257px;position:relative;margin:4px auto 23px}.card-detail-layout h2{text-align:center;font-size:24px}.card-detail-layout .card-english{text-align:center;font-size:17px}.card-detail-layout>.card-detail-copy>.eyebrow{display:block;text-align:center;font-size:9px}.card-detail-layout .card-detail-meta{text-align:center;font-size:10px}.card-detail-layout h3{font-size:14px}.card-detail-layout p{font-size:11px}.card-detail-portrait .portrait-title{font-size:13px}.card-detail-portrait .portrait-en{font-size:6px}.journal-entry{grid-template-columns:1fr}.journal-entry-actions{justify-content:flex-end}.journal-entry h3{font-size:14px}.journal-entry p{font-size:10px}.setting-row{font-size:11px;gap:10px}.setting-row small{font-size:9px}.setting-row input[type=range]{width:110px}.confirm-modal h2{font-size:17px}.confirm-modal p{font-size:11px}.confirm-actions{gap:7px}.confirm-actions .button-outline{font-size:9px}.toast{font-size:10px;padding:10px 17px;bottom:24px}.vignette{box-shadow:inset 0 0 70px #0002}}
@media(max-width:360px){.container{width:calc(100% - 28px)}.topbar{padding-inline:14px}.intro h1{font-size:41px}.spread-name{font-size:12px}.spread-name small{margin-left:5px;font-size:7px}.steps{gap:7px}.ritual-top>.subtle-button{font-size:8px}.slot{width:65px;height:112px}.spread-celtic .slot{width:44px;height:76px}.reading-actions .button-outline{font-size:8px;padding-inline:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}}
.reduced-motion{scroll-behavior:auto}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition-duration:.01ms!important}.reduced-motion .scenery>img{content:url('../assets/sanctum-static.svg')}
#ritual-title:focus{outline:none}
#world3d{display:none;position:absolute;inset:0;width:100%;height:100%;touch-action:none}.has-webgl #world3d{display:block}.has-webgl .scene-fallback{display:none}.has-webgl .scenery .scene-shade{background:linear-gradient(90deg,#0e111cd9,transparent 50%),linear-gradient(180deg,transparent 46%,#10111a 99%)}.has-webgl.reduced-motion .scenery>img{content:none}.touring .scenery{z-index:0;opacity:1!important;transform:none!important;pointer-events:auto}.touring .scene-shade,.touring .moon-haze{display:none}.touring main,.touring footer,.touring nav{visibility:hidden;pointer-events:none}.touring{overflow:hidden}.tour-controls{position:fixed;bottom:38px;left:50%;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:25px;background:#1c1921b8;border:1px solid #c3a7763d;padding:13px 20px;border-radius:4px;backdrop-filter:blur(12px);white-space:nowrap}.tour-controls>span{font-size:11px;color:#c1af94}@media(max-width:560px){.tour-controls{gap:15px;padding:10px 14px;bottom:25px}.tour-controls>span{font-size:9px}.tour-controls .button-outline{font-size:9px;padding:6px 10px}.has-webgl .scenery .scene-shade{background:linear-gradient(90deg,#0e111c92,transparent 65%),linear-gradient(180deg,transparent 12%,#10111a 66%)}}
