:root{--bg:#0b0812;--bg2:#151020;--ink:#f4eddf;--muted:#aaa0b7;--gold:#d7b978;--gold2:#f2dba3;--line:rgba(237,214,166,.16);--panel:rgba(23,17,33,.72);--radius:22px;--card-w:148px;--card-h:290px}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:Georgia,"Noto Serif SC","Songti SC",serif;scroll-behavior:auto}body{margin:0;min-height:100vh;background:radial-gradient(circle at 18% 14%,#27183c 0,transparent 30%),radial-gradient(circle at 80% 60%,#2e191f 0,transparent 28%),linear-gradient(160deg,#0b0812,#100b17 48%,#08070c);overflow-x:hidden}.stars{position:fixed;inset:0;pointer-events:none;opacity:.34;background-image:radial-gradient(circle,#fff 0 1px,transparent 1px);background-size:83px 83px;mask-image:linear-gradient(to bottom,#000,transparent 84%)}button,textarea,input{font:inherit}.topbar{position:fixed;z-index:20;top:0;left:0;right:0;height:74px;padding:14px clamp(18px,4vw,56px);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#0b0812e8,#0b081200);backdrop-filter:blur(8px)}button{color:var(--ink);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.brand,.icon-btn,.share-btn,.text-btn{border:0;background:none}.brand{font-size:18px;letter-spacing:.08em}.brand span{color:var(--gold);font-size:24px}.top-actions{display:flex;gap:8px}.icon-btn,.share-btn{border:1px solid var(--line);border-radius:999px;padding:10px 15px;background:#15101ca8}.icon-btn{width:42px;padding:0}.share-btn{font-size:13px}main{position:relative;z-index:1;max-width:1160px;margin:auto}.screen{display:none;min-height:calc(100vh - 70px);padding:112px clamp(20px,5vw,72px) 72px}.screen.active{display:block;animation:appear .28s ease both}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.intro{position:relative;grid-template-columns:1.05fr .95fr;align-items:center;gap:40px}.intro.active{display:grid}.eyebrow{color:var(--gold);font:600 11px/1.2 Arial,sans-serif;letter-spacing:.25em;text-transform:uppercase}.hero-copy h1,.heading h2{font-weight:400;margin:.25em 0}.hero-copy h1{font-size:clamp(42px,6vw,78px);line-height:1.05;letter-spacing:-.04em}.hero-copy h1 em{color:var(--gold2);font-weight:400}.lead,.heading>p{color:var(--muted);line-height:1.9;max-width:620px}.hero-actions{display:flex;align-items:center;gap:20px;margin-top:34px}.primary,.secondary{border-radius:999px;padding:14px 22px;transition:.25s}.primary{border:1px solid #e6c98c;background:linear-gradient(135deg,#ecd49f,#b78f4f);color:#17100a;box-shadow:0 10px 34px #b58b4724;font-weight:700}.primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px #b58b4740}.primary:disabled{opacity:.3;filter:grayscale(.6);cursor:not-allowed;transform:none}.secondary{border:1px solid var(--line);background:#17111e88;color:var(--ink)}.text-btn{color:var(--muted);text-decoration:underline;text-underline-offset:5px}.hero-art{height:520px;position:relative;display:grid;place-items:center}.orbit{position:absolute;border:1px solid #d7b97835;border-radius:50%}.orbit-a{width:370px;height:370px}.orbit-b{width:265px;height:265px}.moon{width:160px;height:160px;border-radius:50%;display:grid;place-items:center;font-size:88px;color:#f3dca7;background:radial-gradient(circle at 40% 30%,#3a2b46,#171021 70%);box-shadow:0 0 80px #e4bd7240,inset 0 0 38px #fff1}.float-card{position:absolute;width:120px;height:204px;border:1px solid #d4b87366;border-radius:10px;display:grid;place-items:center;font-size:36px;background:linear-gradient(145deg,#24182f,#120e19);box-shadow:0 20px 60px #0009}.fc-a{transform:translate(-138px,58px) rotate(-18deg)}.fc-b{transform:translate(138px,58px) rotate(18deg)}.fc-c{transform:translateY(-138px) rotate(2deg)}.features{grid-column:1/-1;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding-top:22px}.features div{display:flex;gap:12px}.features b{color:var(--gold);font:12px Arial}.features span{color:var(--muted);font-size:13px}.heading{max-width:760px}.heading .step{float:right;color:#736b7c;font:12px Arial}.heading h2{font-size:clamp(32px,5vw,52px)}.center{text-align:center;margin-inline:auto}.setup-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin:36px 0}.panel{display:block;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);backdrop-filter:blur(18px)}.panel>span,.panel>label,.question>span{display:block;font-size:14px;color:#ddd2c1;margin-bottom:15px}.question{grid-row:span 3}.question textarea{width:100%;min-height:200px;resize:none;border:0;border-bottom:1px solid var(--line);outline:none;background:transparent;color:var(--ink);font-size:22px;line-height:1.7;padding:14px 0}.question textarea::placeholder{color:#645a6d}.question small{display:block;color:#7f7587;margin-top:14px}.spread-options{display:grid;gap:8px}.spread-options button{border:1px solid transparent;border-radius:13px;padding:13px;text-align:left;background:#0e0a15a0;display:grid;grid-template-columns:86px 1fr;align-items:center}.spread-options button.selected{border-color:#d6b77775;background:#251b2e}.spread-options i{color:var(--gold);font-style:normal;letter-spacing:-3px}.spread-options b,.spread-options small{display:block}.spread-options small{color:var(--muted);margin-top:3px}.switch-row{display:flex;justify-content:space-between;align-items:center}.switch-row span{margin:0}.switch-row b,.switch-row small{display:block}.switch-row small{color:var(--muted);margin-top:5px}.switch-row input{width:48px;height:26px;accent-color:#b58b47}nav{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.ritual-space{height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center}.meter{width:190px;height:3px;background:#30283a;border-radius:99px;margin-bottom:34px;overflow:hidden}.meter i{display:block;width:0;height:100%;background:linear-gradient(90deg,#9e7b43,var(--gold2),#9e7b43);transition:width .08s,opacity .2s}.meter.ready i{width:38%!important;animation:shuffleFlow 1.35s ease-in-out infinite}.meter.done i{width:100%!important;animation:none}.meter.cancelled i{width:18%!important;animation:none;opacity:.55}@keyframes shuffleFlow{0%{transform:translateX(-105%);opacity:.55}50%{opacity:1}100%{transform:translateX(270%);opacity:.55}}.deck{position:relative;width:150px;height:258px;border:0;background:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.deck *{pointer-events:none;user-select:none;-webkit-user-select:none}.deck i,.deck b{position:absolute;inset:0;border:1px solid #b99c61;border-radius:11px;background:#17101f}.deck i:nth-child(1){transform:translate(9px,9px)}.deck i:nth-child(2){transform:translate(5px,5px)}.deck i:nth-child(3){transform:translate(2px,2px)}.deck b{display:grid;place-items:center;font-size:72px;color:var(--gold);background:repeating-radial-gradient(circle at center,#251832 0 3px,#100c17 4px 13px);box-shadow:0 25px 70px #000b}.deck b span{position:absolute;font-size:14px}.deck.shuffling{animation:shake .14s infinite alternate}.deck.ready{filter:drop-shadow(0 0 18px rgba(215,185,120,.18))}@keyframes shake{to{transform:translateX(6px) rotate(1.2deg)}}.ritual-space p{color:var(--muted);margin-top:24px}.center-nav{justify-content:center}.cut-zone{text-align:center;margin:60px auto;max-width:480px}.cut-piles{display:flex;justify-content:center;gap:36px;margin-bottom:50px}.cut-piles div{width:120px;height:202px;border:1px solid #b99c61;border-radius:10px;display:grid;place-items:center;font-size:48px;color:var(--gold);background:repeating-radial-gradient(circle,#251832 0 2px,#100c17 3px 12px);box-shadow:0 18px 45px #0008}.cut-piles div:first-child{transform:translateY(8px) rotate(-3deg)}.cut-piles div:last-child{transform:translateY(-4px) rotate(3deg)}#cutRange{width:100%;accent-color:#caa962}.cut-zone p{color:var(--muted)}.fan-shell{width:100vw;margin-left:calc(50% - 50vw);overflow-x:auto;padding:55px max(24px,calc((100vw - 1100px)/2)) 60px;scrollbar-width:thin;scrollbar-color:#6e5b3d transparent}.fan{display:flex;align-items:flex-end;width:max-content;padding-right:100px}.fan-card{width:74px;height:128px;margin-right:-36px;border:1px solid #8e744a;border-radius:7px;background:repeating-radial-gradient(circle at center,#261933 0 2px,#100c17 3px 9px);box-shadow:0 9px 20px #0007;transition:.25s;position:relative}.fan-card::after{content:'☾';position:absolute;inset:7px;border:1px solid #9e835263;display:grid;place-items:center;color:#c4a464}.fan-card:focus-visible{transform:translateY(-20px)!important;z-index:4}@media(hover:hover) and (pointer:fine){.fan-card:hover{transform:translateY(-20px)!important;z-index:4}}.fan-card.picked{transform:translateY(-35px)!important;box-shadow:0 0 0 2px #d9bc7a,0 18px 35px #000a;z-index:5}.draw-status{text-align:center;color:var(--muted)}#dots{display:inline-flex;gap:7px;margin-left:12px}#dots i{width:7px;height:7px;border-radius:50%;background:var(--gold)}.spread-table{display:flex;justify-content:center;align-items:flex-start;gap:clamp(12px,3vw,34px);flex-wrap:wrap;margin:54px auto 70px}.slot{width:var(--card-w);text-align:center}.slot>span{display:block;color:var(--gold);font-size:12px;margin-bottom:12px;letter-spacing:.12em}.tarot-card{width:var(--card-w);height:var(--card-h);perspective:900px;border:0;background:none;padding:0}.card-inner{position:relative;width:100%;height:100%;transition:transform .85s cubic-bezier(.2,.7,.1,1);transform-style:preserve-3d}.tarot-card.flipped .card-inner{transform:rotateY(180deg)}.card-side{position:absolute;inset:0;backface-visibility:hidden;border-radius:10px;overflow:hidden;border:1px solid #b99c61}.card-back{background:repeating-radial-gradient(circle at center,#2a1936 0 3px,#100c17 4px 13px);display:grid;place-items:center;color:var(--gold);font-size:52px}.card-back::after{content:'';position:absolute;inset:10px;border:1px solid #bb9a5a77;border-radius:5px}.card-front{transform:rotateY(180deg);background:#17101f;color:#fff;display:flex;flex-direction:column;padding:4px}.card-front.reversed img,.card-front.reversed .fallback{transform:rotate(180deg)}.card-front img,.fallback{width:100%;height:auto;flex:1;min-height:0;object-fit:contain;object-position:center;background:#e8ddc4;border-radius:6px}.fallback{display:grid;place-items:center;font-size:56px;color:#21182a}.card-front strong{flex:0 0 auto;font-size:11px;line-height:1.25;padding:6px 4px 4px;color:#f6eddc;text-align:center}.reading{border-top:1px solid var(--line);padding-top:40px;max-width:860px;margin:auto}.reading.hidden{display:none}.reading-head{display:flex;justify-content:space-between;align-items:flex-start}.reading-head h2{font-size:36px;font-weight:400;margin:5px 0}.reading-head time{color:var(--muted);font-size:12px}.reading blockquote{margin:18px 0;padding:14px 18px;border-left:2px solid var(--gold);background:#17101c;color:#d7ccba}.summary{font-size:20px;line-height:1.9;color:#e9dfce;margin:28px 0;white-space:pre-line}.details{display:grid;gap:12px}.detail{border:1px solid var(--line);border-radius:16px;padding:18px;background:#15101db3}.detail header{display:flex;justify-content:space-between}.detail header span{color:var(--gold)}.detail p{color:var(--muted);line-height:1.75;margin-bottom:0}.reading aside{display:grid;gap:7px;color:var(--muted);border-radius:14px;background:#0e0b13;padding:18px;margin-top:22px}.reading aside b{color:#dcd0bd}.save-status{margin:16px 0 0;color:#8f8798;font-size:12px}.context-status{margin:8px 0 0;color:var(--gold2);font-size:12px}.history-context-row input:disabled{opacity:.35;cursor:not-allowed}.reading-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-top:18px}.reading-actions .primary,.reading-actions .secondary{min-width:0;width:100%;padding:12px 8px;white-space:nowrap;font-size:13px}.journal-toolbar,.journal-selectbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:22px}.journal-selectbar{padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#120d18}.journal-selectbar.hidden{display:none}.journal-selectbar span{color:var(--muted);font-size:12px;margin-right:auto}.compact{min-height:38px!important;padding:9px 13px!important;font-size:12px}.danger,.danger-ghost{border-radius:999px;transition:.2s}.danger{border:1px solid #d98484;background:#7f2d36;color:#fff;padding:12px 18px;font-weight:700}.danger:hover{background:#963944}.danger:disabled{opacity:.35;cursor:not-allowed}.danger-ghost{border:1px solid #a95d6366;background:#35151b80;color:#e7a9ad;padding:10px 14px}.journal{display:grid;gap:12px;margin:22px 0 35px}.journal-entry{width:100%;border:1px solid var(--line);border-radius:16px;padding:0;background:var(--panel);color:var(--ink);text-align:left;position:relative;overflow:hidden}.journal-open-area{display:block;width:100%;padding:18px;border:0;background:none;color:inherit;text-align:left}.journal-link{transition:.2s}.journal-entry:hover,.journal-entry:focus-within{transform:translateY(-2px);border-color:#d7b97866;background:#1d1526}.journal-check{position:absolute;top:14px;right:14px;z-index:2;width:22px;height:22px;accent-color:#c9a85e}.journal-entry.selecting .journal-open-area{padding-right:52px}.journal-entry.selected{border-color:#d7b97899;background:#251b2e}.journal-link:hover,.journal-link:focus-visible{outline:none}.journal-entry small{color:var(--gold)}.journal-entry h3{margin:8px 0 10px;font-weight:400;font-size:19px}.journal-entry p{color:var(--muted);margin:7px 0}.journal-entry .journal-summary{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);line-height:1.75;color:#c7bdcc}.journal-open{display:block;margin-top:12px;color:var(--gold2);font-size:12px;letter-spacing:.04em}.history-detail{max-width:860px;margin:auto}.history-back{border:0;background:none;color:var(--gold2);padding:0 0 24px}.history-card-list{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.history-card-chip{border:1px solid var(--line);border-radius:999px;padding:9px 12px;background:#15101db3;color:#dcd0bd;font-size:12px}.history-card-chip b{color:var(--gold2);font-weight:400}.history-summary{font-size:19px;line-height:1.9;white-space:pre-line;color:#e9dfce;margin:26px 0 30px}.history-empty{border:1px solid var(--line);border-radius:16px;padding:20px;color:var(--muted);background:var(--panel)}.history-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.confirm-dialog h2{margin:.3em 0}.confirm-dialog p{color:var(--muted);line-height:1.7}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.device-line{margin-top:8px!important;font-size:13px}.device-line code{color:var(--gold2);background:#17101e;padding:5px 8px;border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}footer{position:relative;z-index:1;padding:24px clamp(20px,5vw,60px);display:flex;justify-content:space-between;gap:18px;color:#62596a;font-size:11px;border-top:1px solid #ffffff08}dialog{width:min(420px,calc(100vw - 32px));border:1px solid #d1b36c55;border-radius:22px;padding:30px;background:#15101e;color:var(--ink);box-shadow:0 30px 100px #000d}dialog::backdrop{background:#050308c9;backdrop-filter:blur(8px)}.dialog-close{float:right;border:0;background:none;font-size:24px}#qr{width:220px;height:220px;background:#fff;border-radius:12px;margin:22px auto;display:grid;place-items:center}#qr img,#qr canvas{max-width:190px;max-height:190px}#shareUrl{display:block;white-space:normal;word-break:break-all;padding:11px;border-radius:8px;background:#0c0910;color:#cbbdcb}.share-reading-btn{width:100%;margin-top:20px;border:1px solid #d7b97866;border-radius:14px;padding:14px 18px;background:linear-gradient(135deg,#21172b,#17101f);color:var(--gold2);font-weight:700;letter-spacing:.03em}.share-reading-btn:hover,.share-reading-btn:focus-visible{border-color:#d7b978aa;background:#281c33;outline:none}.reading-share-dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:26px}.reading-share-dialog h2{margin:4px 0 8px;font-weight:400;font-size:30px}.share-privacy,.share-hint{color:var(--muted);line-height:1.7;font-size:13px}.share-question-toggle{display:flex;align-items:center;gap:12px;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#100c16}.share-question-toggle input{width:20px;height:20px;accent-color:#caa962;flex:0 0 auto}.share-question-toggle span,.share-question-toggle b,.share-question-toggle small{display:block}.share-question-toggle b{font-size:14px}.share-question-toggle small{margin-top:4px;color:var(--muted);font-size:12px}.share-canvas-wrap{border:1px solid var(--line);border-radius:16px;background:#0d0912;padding:10px;overflow:hidden}.share-canvas-wrap canvas,.wechat-share-image{display:block;width:100%;height:auto;border-radius:10px;background:#0b0812}.wechat-share-image{-webkit-touch-callout:default;user-select:auto;-webkit-user-select:auto;touch-action:auto}.wechat-share-tip{display:grid;gap:5px;margin:14px 0;padding:13px 15px;border:1px solid #d7b97855;border-radius:14px;background:#21172a;color:#e9dfce}.wechat-share-tip b{color:var(--gold2);font-size:14px}.wechat-share-tip span{color:var(--muted);font-size:13px;line-height:1.65}.reading-share-dialog.wechat-mode{width:min(560px,calc(100vw - 12px));padding:20px}.reading-share-dialog.wechat-mode .share-canvas-wrap{padding:6px}.reading-share-dialog.wechat-mode #readingShareCanvas{display:none}.reading-share-dialog.wechat-mode #nativeShareReadingBtn,.reading-share-dialog.wechat-mode #downloadShareImageBtn{display:none}.reading-share-dialog.wechat-mode .share-result-actions{grid-template-columns:1fr}.reading-share-dialog.wechat-mode #copyShareTextBtn{width:100%}.share-result-actions{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px;margin-top:16px}.share-result-actions button{min-width:0;padding:12px 8px}.toast{position:fixed;left:50%;bottom:26px;z-index:50;transform:translate(-50%,30px);opacity:0;background:#ece1ca;color:#1a1320;padding:10px 18px;border-radius:999px;transition:.3s;pointer-events:none;white-space:nowrap;max-width:calc(100vw - 24px);font-size:13px;overflow:hidden;text-overflow:ellipsis}.toast.show{transform:translate(-50%,0);opacity:1}@media(hover:none),(pointer:coarse){.primary:hover{transform:none;box-shadow:0 10px 34px #b58b4724}.journal-entry:hover{transform:none}.share-reading-btn:hover{background:linear-gradient(135deg,#21172b,#17101f)}}@media(max-width:800px){.share-result-actions{grid-template-columns:1fr 1fr}.share-result-actions .primary{grid-column:1/-1}.reading-actions{gap:6px}.reading-actions .primary,.reading-actions .secondary{padding:11px 4px;font-size:12px}.history-actions .primary,.history-actions .secondary{flex:1;padding-inline:10px}.topbar{height:62px;padding:10px 15px}.share-btn{padding:9px 12px}.screen{padding:88px 18px 50px}.intro.active{display:block}.hero-art{height:360px;margin-top:20px}.orbit-a{width:280px;height:280px}.orbit-b{width:205px;height:205px}.moon{width:125px;height:125px;font-size:68px}.float-card{width:88px;height:150px}.fc-a{transform:translate(-102px,45px) rotate(-16deg)}.fc-b{transform:translate(102px,45px) rotate(16deg)}.fc-c{transform:translateY(-103px)}.features{margin-top:22px}.features div{display:block}.features b,.features span{display:block}.setup-grid{grid-template-columns:1fr}.question{grid-row:auto}.question textarea{min-height:140px;font-size:19px}.spread-options button{grid-template-columns:72px 1fr}.ritual-space{height:370px}.spread-table{gap:12px;margin-top:36px;--card-w:102px;--card-h:205px}.slot{width:102px}.card-front img,.fallback{height:auto}.slot>span{font-size:10px}.reading-head{display:block}.reading-head time{display:block;margin-top:6px}.hero-actions{align-items:flex-start;flex-direction:column}.primary,.secondary{min-height:46px}.center-nav{position:sticky;bottom:10px;z-index:8;background:#0b0812c7;padding:10px;border-radius:999px;backdrop-filter:blur(10px)}footer{display:block;line-height:1.8}}