@font-face{font-family:"Shixiang Serif";src:url("./assets/shixiang-serif-v25.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
:root{
 color-scheme:dark;--sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--serif:"Shixiang Serif","Songti SC","Noto Serif CJK SC","STSong",serif;
 --page-width:520px;--bg:#30232b;--ink-deep:#211c24;--text:#f8e8df;--muted:#cbb7bb;--gold:#eac0af;--line:rgba(246,224,214,.19);
 --paper:#fbf2ee;--paper-ink:#49333d;--paper-muted:#7b6068;--accent:#9a5261;--wash:#f0dedb;--art-focus:76%;--cover-radius:100px 100px 4px 4px;
 --page-gutter:22px;font-family:var(--sans);font-synthesis:none;-webkit-tap-highlight-color:transparent;
}
*{box-sizing:border-box}html{min-width:280px;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--text);line-height:1.7;-webkit-text-size-adjust:100%;text-size-adjust:100%;transition:background-color .4s ease}body::before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 95% 8%,color-mix(in srgb,var(--gold) 9%,transparent),transparent 55%)}
body[data-topic="wealth"]{--bg:#2e2a20;--ink-deep:#211f18;--text:#f8edd4;--muted:#c9bd9e;--gold:#e4c88b;--line:rgba(239,220,174,.2);--paper:#faf4e4;--paper-ink:#443e29;--paper-muted:#756c4e;--accent:#81612b;--wash:#eee2c4;--art-focus:76%;--cover-radius:4px}
body[data-topic="health"]{--bg:#203129;--ink-deep:#17251f;--text:#eaf0df;--muted:#b5c7b2;--gold:#c4d4ac;--line:rgba(215,232,199,.18);--paper:#f2f5eb;--paper-ink:#30483b;--paper-muted:#607362;--accent:#53734a;--wash:#e0e8d6;--art-focus:74%;--cover-radius:100px 100px 5px 5px}
body[data-topic="career"]{--bg:#25303e;--ink-deep:#1b2532;--text:#ecedf1;--muted:#b9c4d2;--gold:#cbdbeb;--line:rgba(219,229,243,.2);--paper:#f1f3f6;--paper-ink:#334458;--paper-muted:#637487;--accent:#476681;--wash:#dfe6ec;--art-focus:77%;--cover-radius:4px}
body[data-topic="present"]{--bg:#142e37;--ink-deep:#0c2028;--text:#edf0e6;--muted:#b0c5c7;--gold:#d6dabc;--line:rgba(209,226,221,.2);--paper:#f1f3ef;--paper-ink:#29434b;--paper-muted:#5f767a;--accent:#4b6e75;--wash:#dee6e1;--art-focus:65%;--cover-radius:100px 100px 4px 4px}
[hidden]{display:none!important}img{max-width:100%;display:block}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:default}h1,h2,h3,p,figure{margin:0}button,dialog{border:0}button{background:none}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.5;overflow-wrap:anywhere;text-wrap:pretty}p,li{overflow-wrap:anywhere;line-break:strict}h1{text-wrap:balance}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}main:focus{outline:none}::selection{background:var(--gold);color:var(--ink-deep)}
.skip{position:fixed;top:10px;left:10px;z-index:10;transform:translateY(-200%);padding:12px;background:var(--paper);color:var(--paper-ink)}.skip:focus{transform:none}
.site-header{max-width:var(--page-width);padding:calc(16px + env(safe-area-inset-top,0px)) var(--page-gutter) 14px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.wordmark{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:1.375rem;letter-spacing:.16em;line-height:1.05;flex-shrink:0}.seal{width:32px;height:36px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:2px;font-size:1.375rem;letter-spacing:0;color:var(--gold)}.wordmark small{display:block;font-family:var(--sans);font-size:0.75rem;letter-spacing:.18em;margin-top:7px;color:var(--muted)}.header-right{display:flex;gap:9px;align-items:center}.sound-button{display:flex;align-items:center;gap:5px;min-height:44px;font-size:0.875rem;color:var(--muted);padding:4px}.sound-button>span:first-child{font-size:1.25rem;color:var(--gold)}.sound-button[aria-pressed="true"]>span:first-child{animation:music-breathe 3s ease-in-out infinite}.quiet-button{font-size:0.875rem;min-height:44px;padding:8px 0;color:var(--muted)}
#main{max-width:var(--page-width);margin:auto}.home-view{padding:10px var(--page-gutter) 0}.eyebrow,.section-label{font-size:0.875rem;letter-spacing:.07em;font-weight:400}.eyebrow{color:var(--muted);display:flex;gap:10px;align-items:center}.thin-line{height:1px;width:22px;background:var(--line)}.home-heading h1{font-size:2.25rem;line-height:1.35;letter-spacing:.025em;margin:15px 0 10px}.home-heading h1 span{color:var(--gold)}.lead{font-size:0.9375rem;color:var(--muted);line-height:1.7}.home-heading .lead{min-height:26px;margin-bottom:22px}.art-window{position:relative;height:190px;border-radius:var(--cover-radius);isolation:isolate;overflow:hidden;background:var(--ink-deep)}.art-window::after{content:"";position:absolute;inset:45% 0 0;z-index:0;background:linear-gradient(transparent,rgba(17,21,23,.55));pointer-events:none}.art-window img{width:100%;height:100%;object-fit:cover;object-position:50% var(--art-focus)}.art-window figcaption{position:absolute;z-index:1;left:18px;right:18px;bottom:14px;display:flex;justify-content:space-between;align-items:baseline;color:#fff7e9;gap:8px;font-size:0.8125rem}.art-window figcaption span:last-child{font-size:0.75rem;letter-spacing:.14em}.home-entry{padding-top:20px}.topic-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:4px;border:1px solid var(--line);border-radius:15px;gap:3px}.topic-button{padding:10px 0;border-radius:10px;min-height:44px;font-size:0.9375rem;color:var(--muted);transition:background .2s,color .2s}.topic-button[aria-pressed="true"]{background:var(--gold);color:var(--ink-deep);box-shadow:0 2px 9px #0002}.topic-question{font-size:0.9375rem;line-height:1.7;color:var(--text);padding:16px 3px;min-height:58px;text-align:center}.primary-button,.secondary-button{min-height:54px;display:flex;justify-content:center;align-items:center;gap:12px;border-radius:12px;padding:14px 17px;font-size:0.9375rem;line-height:1.5;transition:transform .15s,background .2s}.primary-button{background:var(--gold);color:var(--ink-deep);font-weight:500;width:100%;justify-content:space-between}.primary-button:active,.secondary-button:active,.topic-button:active{transform:translateY(1px)}.primary-button:disabled{opacity:.55}.primary-button>span:last-child:not(:first-child){font-size:1.25rem;line-height:1;flex-shrink:0}.secondary-button{border:1px solid var(--line);color:var(--text)}.text-button{padding:8px 0;min-height:44px;color:var(--gold);font-size:0.875rem;text-underline-offset:5px}.text-button:hover{text-decoration:underline}.entry-note{font-size:0.875rem;color:var(--muted);text-align:center;margin-top:12px;line-height:1.7}.purchases-button{display:block;margin:6px auto}.resume-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:0.875rem;color:var(--muted);gap:4px;margin-top:24px}.sky-footnote{margin:29px 0 0;padding-top:24px;border-top:1px solid var(--line)}.sky-footnote>.section-label{color:var(--muted)}.sky-summary{display:flex;align-items:center;gap:15px;margin-top:12px}.moon-symbol{width:53px;height:53px;flex-shrink:0}.sky-title{font-size:0.9375rem}.sky-percent,.sky-detail,.sky-next{font-size:0.75rem;color:var(--muted);line-height:1.9}.sky-system{font-size:0.75rem}.site-footer{max-width:var(--page-width);margin:0 auto;padding:34px var(--page-gutter) calc(22px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px 12px;color:var(--muted);font-size:0.75rem;letter-spacing:.02em}.site-footer .quiet-button{font-size:0.875rem;min-height:36px}.site-footer>span:nth-child(2){display:none}
.ritual-view{padding:32px var(--page-gutter) 16px;text-align:center}.ritual-view>.eyebrow{justify-content:center}.ritual-view h1{font-size:1.75rem;margin:23px 0 14px}.ritual-view>.lead{min-height:64px;max-width:350px;margin:auto}.ritual-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 22px;align-items:stretch}.ritual-card{position:relative;overflow:hidden;min-width:0;min-height:292px;border:1px solid var(--line);padding:20px 12px 22px;border-radius:70px 70px 12px 12px;display:flex;align-items:center;flex-direction:column;background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--gold) 10%,var(--bg)),var(--ink-deep));isolation:isolate}.ritual-card::before{position:absolute;inset:7px;content:"";border:1px solid var(--line);border-radius:inherit;pointer-events:none;z-index:-1}.ritual-card::after{position:absolute;content:"";width:140px;height:140px;border:1px solid var(--line);border-radius:50%;top:60px;left:50%;transform:translateX(-50%);pointer-events:none;z-index:-1}.ritual-card:disabled:not(.revealed){opacity:.5}.ritual-card.revealed{background:var(--paper);color:var(--paper-ink);border-color:var(--paper);animation:card-reveal .5s ease-out}.card-number{font-size:0.75rem;letter-spacing:.07em;color:var(--muted);margin-top:7px}.card-mark{font-family:var(--serif);font-size:3.375rem;line-height:1;display:grid;place-items:center;height:116px;color:var(--gold)}.card-name{font-family:var(--serif);font-size:1.25rem;line-height:1.6}.card-caption{font-size:0.75rem;color:var(--muted);margin-top:7px}.card-invitation{font-size:0.8125rem;line-height:1.8;margin-top:14px;max-width:130px}.revealed .card-number,.revealed .card-caption{color:var(--paper-muted)}.revealed .card-mark{color:var(--accent)}.ritual-status{font-size:0.8125rem;line-height:1.9;color:var(--muted);min-height:44px;margin-bottom:14px}
.result-view{padding:0 12px}.result-topline{display:flex;align-items:center;justify-content:space-between;margin:0 9px 10px;font-size:0.75rem;color:var(--muted);gap:12px}.result-art{isolation:isolate;position:relative;overflow:hidden;background:var(--ink-deep);min-height:390px;display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--cover-radius);padding:25px 24px 26px}.result-art-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% var(--art-focus);z-index:-2}.result-art::after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,rgba(14,20,24,.3),rgba(14,20,24,0) 32%,rgba(14,20,24,.78) 100%);z-index:-1}.cover-top{padding:0 10px;margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:20px}.result-seal{font-size:0.8125rem;color:#fff9ec;letter-spacing:.13em}.hexagram-lines{width:33px;display:flex;gap:3px;flex-direction:column;flex-shrink:0}.hex-line{display:flex;gap:6px;height:2px}.hex-line span{height:100%;background:#fff9ec;flex:1}.result-cover-copy{color:#fff9ec;padding-top:100px}.cover-caption{font-size:0.75rem;letter-spacing:.1em;color:#f0e3d6}.result-cover-copy h1{font-size:2rem;line-height:1.5;margin:13px 0 17px;max-width:10em;letter-spacing:.035em;text-shadow:0 2px 12px #0002}.cover-meta{font-size:0.75rem;color:#efe4d7;display:flex;justify-content:space-between;border-top:1px solid #fff4dc44;padding-top:12px;gap:10px}
.result-main{background:var(--paper);color:var(--paper-ink);padding:0 24px 8px;border-radius:0 0 6px 6px;--gold:var(--accent);--muted:var(--paper-muted);--text:var(--paper-ink);--line:color-mix(in srgb,var(--paper-muted) 25%,transparent)}.result-main .primary-button{background:var(--paper-ink);color:var(--paper)}.result-main .secondary-button{border-color:var(--line);color:var(--paper-ink)}.reading-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0;border-bottom:1px solid var(--line)}.reading-status{font-size:0.875rem;color:var(--paper-muted)}.reading-status>span{font-size:1rem;vertical-align:-1px;margin-right:4px}.reading-toolbar .text-button{font-size:0.75rem;white-space:nowrap}.reading-section{padding:32px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:center;gap:10px;color:var(--accent);margin-bottom:18px}.section-index{font-family:Georgia,serif;font-size:0.875rem;font-variant-numeric:tabular-nums;font-style:italic;letter-spacing:.04em}.section-heading .section-label{line-height:1.6}.reading-section h2,.action-card h2{font-size:1.438rem;line-height:1.6;letter-spacing:.025em;margin:0 0 17px}.reading-section p,.action-card p{font-size:1rem;line-height:1.95;letter-spacing:.015em}.reading-section .reading-intro{font-size:1.062rem;line-height:2.05}.opening-section{padding-top:29px;padding-bottom:28px}.example-box{margin-top:23px;background:var(--wash);padding:20px 18px;border-radius:3px 15px 15px 15px}.example-box .section-label,.notice-box .section-label{color:var(--accent);font-size:0.875rem}.example-box p,.notice-box p{font-size:0.9375rem;margin-top:9px;line-height:1.95}.preview-question{display:flex;gap:15px;padding:27px 0 30px;align-items:flex-start}.question-mark{flex-shrink:0;width:28px;height:28px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;line-height:1;font-family:Georgia,serif;font-size:1.062rem;color:var(--accent);margin-top:3px}.preview-question .section-label{color:var(--paper-muted)}.preview-question p{font-family:var(--serif);font-size:1.188rem;line-height:1.85;margin-top:8px;letter-spacing:.02em}.chapter-divider{display:flex;align-items:center;gap:12px;color:var(--paper-muted);font-size:0.875rem;padding:11px 0 5px}.chapter-divider::before,.chapter-divider::after{content:"";flex:1;height:1px;background:var(--line)}#full-start{scroll-margin-top:24px;outline:none}.notice-box{border-left:2px solid var(--accent);padding:2px 0 2px 17px;margin-top:25px}.action-card{background:var(--wash);padding:25px 19px;border-radius:14px;margin:29px -5px 0}.small-steps{list-style:none;counter-reset:steps;padding:0;margin:9px 0 0}.small-steps li{counter-increment:steps;display:flex;gap:13px;align-items:flex-start;font-size:1rem;line-height:1.9;padding:18px 0;border-bottom:1px solid var(--line)}.small-steps li::before{content:counter(steps,decimal-leading-zero);font-family:Georgia,serif;font-size:0.875rem;color:var(--accent);line-height:2.1;flex-shrink:0}.small-steps li:last-child{border-bottom:0;padding-bottom:8px}.action-card .optional-note{font-size:0.75rem;color:var(--paper-muted);line-height:1.85;margin-top:12px}.sky-reading .sky-reading-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.sky-reading-heading h2{font-size:1.375rem;margin-bottom:3px}.sky-reading .moon-symbol{--gold:var(--accent);--ink-deep:var(--wash);width:48px;height:48px}.small-text{font-size:0.75rem;color:var(--muted);line-height:1.85}.sky-reading .small-text{color:var(--paper-muted)}.seasonal-prompt{margin-top:22px;padding-top:19px;border-top:1px dashed var(--line)}.seasonal-prompt span{display:block;color:var(--accent);margin-bottom:8px}.reflection-section{text-align:center;padding:37px 2px 39px;border-bottom:1px solid var(--line)}.reflection-section>.section-label{color:var(--paper-muted)}.quote-mark{display:block;color:var(--accent);font-family:Georgia,serif;font-size:3.5rem;line-height:1;margin-top:20px;height:38px}.closing-line{font-family:var(--serif);font-size:1.562rem;letter-spacing:.035em;line-height:1.85;text-wrap:balance;color:var(--paper-ink)}.closing-signature{display:block;font-size:0.75rem;color:var(--paper-muted);margin-top:19px;letter-spacing:.08em}
.purchase-card{padding:27px 19px 22px;background:var(--wash);border-radius:16px;margin:0 -5px 10px}.purchase-card .section-index{font-family:var(--sans);font-size:0.75rem;font-style:normal;border:1px solid currentColor;border-radius:4px;padding:1px 5px;white-space:nowrap}.purchase-card .section-heading{gap:8px;margin-bottom:18px}.purchase-card .section-label{font-size:0.875rem;letter-spacing:0}.purchase-card h2{font-size:1.562rem;line-height:1.65;letter-spacing:.02em;margin-bottom:14px}.purchase-intro{font-size:0.875rem;line-height:1.95;color:var(--paper-muted)}.purchase-chapters{list-style:none;margin:23px 0 21px;padding:0}.purchase-chapters li{display:flex;gap:14px;border-top:1px solid var(--line);padding:14px 0}.purchase-chapters li>span{font-family:Georgia,serif;font-size:0.875rem;color:var(--accent);padding-top:1px;min-width:18px}.purchase-chapters strong{font-size:0.9375rem;font-weight:500}.purchase-chapters p{font-size:0.9375rem;line-height:1.8;color:var(--paper-muted);margin-top:4px}.purchase-price{display:flex;align-items:center;gap:19px;padding:5px 0 20px}.purchase-price strong{font-family:Georgia,serif;font-weight:400;font-size:2.688rem;line-height:1.1;letter-spacing:-.04em;white-space:nowrap}.purchase-price strong small{font-size:1.438rem;margin-right:4px}.purchase-price>span{font-size:0.875rem;line-height:1.85;color:var(--muted)}.purchase-status{font-size:0.875rem;line-height:1.8;color:var(--paper-muted);margin:12px 0 0;text-align:center}.purchase-card>.text-button{font-size:0.75rem;display:block;margin:0 auto}.keepsake-section{display:grid;grid-template-columns:78px minmax(0,1fr);gap:22px 20px;align-items:center;padding:29px 0 27px;border-bottom:1px solid var(--line)}.keepsake-mini{height:115px;position:relative;transform:rotate(-5deg);border:5px solid var(--paper);box-shadow:0 5px 18px #17252726;background:var(--wash);overflow:hidden}.keepsake-mini img{width:100%;height:100%;object-fit:cover}.keepsake-mini::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#1d2c30d9)}.keepsake-mini span{position:absolute;bottom:7px;left:6px;font-size:1.25rem;line-height:1.7;color:#fff9ec;font-family:var(--serif);z-index:1}.keepsake-section .section-label{font-size:0.875rem;color:var(--paper-muted)}.keepsake-section h2{font-size:1.312rem;line-height:1.7;margin:8px 0}.keepsake-section p{font-size:0.875rem;line-height:1.9;color:var(--paper-muted)}.keepsake-actions{display:grid;grid-template-columns:1fr 1.15fr;gap:9px;grid-column:1/-1}.keepsake-actions button{font-size:0.875rem;padding:12px 9px;min-width:0;gap:5px;justify-content:center}.reading-end{padding:24px 0 11px}.scope-note,.artifact-note{font-size:0.875rem;line-height:1.95;color:var(--paper-muted)}.artifact-note{margin-top:8px}.reading-end>.text-button{display:flex;justify-content:space-between;width:100%;margin-top:18px;border-top:1px solid var(--line);padding:17px 0 9px}.result-dock{position:fixed;z-index:5;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:var(--page-width);display:grid;grid-template-columns:58px minmax(0,1fr);gap:13px;align-items:center;padding:12px max(20px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left));background:var(--bg);border-top:1px solid var(--line);box-shadow:0 -7px 25px #0001}.dock-save{font-size:0.875rem;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.5;min-height:52px;color:var(--text);padding:0}.dock-save>span:first-child{font-size:1.375rem;line-height:1.1;margin-bottom:4px}.result-dock .primary-button{min-height:52px;font-size:0.875rem}body[data-view="result"] .site-footer{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
/* Sheets sit above the thumb dock; the sticky heading keeps closing available. */
dialog{color-scheme:light;position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:var(--page-width);max-height:90vh;max-height:90dvh;padding:0;background:var(--paper);color:var(--paper-ink);border-radius:24px 24px 0 0;box-shadow:0 -20px 70px #0004;overflow:auto;overscroll-behavior:contain;--gold:var(--accent);--text:var(--paper-ink);--muted:var(--paper-muted);--line:color-mix(in srgb,var(--paper-muted) 25%,transparent)}dialog::backdrop{background:#102025ad;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}dialog .dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;background:var(--paper);padding:27px 24px 17px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:1.5rem;line-height:1.6;letter-spacing:.02em}.dialog-head .eyebrow{font-size:0.75rem;margin-bottom:7px}.dialog-head .section-label{font-size:0.875rem;display:block;margin-bottom:7px;color:var(--accent)}.close-button{width:44px;min-width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:1.5rem;line-height:1;font-weight:300;margin-top:0;color:var(--paper-muted)}.about-body,.purchase-body,.save-body{padding:23px 24px calc(28px + env(safe-area-inset-bottom,0px))}.about-body p,.purchase-body>p{font-size:1rem;line-height:1.95;margin-bottom:19px}.about-body .small-text,.purchase-body .small-text{font-size:0.75rem}.purchase-body .purchase-price{padding:4px 0 22px}.purchase-body .purchase-price strong{font-size:3rem}.purchase-body .purchase-price>span{font-size:0.875rem}.purchase-inclusions{list-style:none;padding:0;margin:22px 0}.purchase-inclusions li{padding:14px 0;border-top:1px solid var(--line)}.purchase-inclusions strong{display:block;font-size:0.9375rem;font-weight:500}.purchase-inclusions span{display:block;font-size:0.875rem;color:var(--paper-muted);margin-top:5px}.purchase-body .primary-button,.save-controls .main{background:var(--paper-ink);color:var(--paper)}.purchase-body>.text-button{display:block;margin:8px auto}.purchase-body .payment-message{font-size:0.875rem;color:var(--paper-muted);margin:14px 0}.save-dialog{max-height:94vh;max-height:94dvh}.save-body{padding-top:18px}.save-body>p{font-size:0.875rem;line-height:1.85;color:var(--paper-muted);margin-bottom:18px}.save-controls{display:flex;gap:9px;margin:0 0 23px;flex-wrap:wrap}.save-controls>*{flex:1;font-size:0.875rem;white-space:nowrap;min-height:48px;padding:12px}.save-body img{width:100%;height:auto;box-shadow:0 6px 22px #20304022;background:var(--wash)}.save-dialog[data-format="card"] .save-body img{max-width:330px;margin:0 auto}.save-dialog[data-format="full"] .save-body img{max-width:420px;margin:0 auto}.purchases-list{display:grid;gap:12px;font-size:0.875rem;line-height:1.8}.purchased-item{border:1px solid var(--line);border-radius:12px;padding:18px;text-align:left}.purchased-item span{font-size:0.875rem;color:var(--paper-muted);display:block}.purchased-item strong{font-family:var(--serif);font-size:1.25rem;font-weight:500;display:block;margin-top:7px;line-height:1.7}.legacy-banner{padding:19px;border:1px solid var(--line);border-radius:10px;margin-bottom:18px;font-size:0.875rem}.legacy-banner button{margin-top:12px}.error-message{color:#f1b9a8;border:1px solid #f1b9a855;border-radius:9px;padding:14px;margin-top:14px;font-size:0.875rem;line-height:1.8}.toast{position:fixed;bottom:calc(95px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:20;width:max-content;max-width:calc(100% - 44px);padding:12px 17px;border:1px solid var(--line);border-radius:12px;background:var(--ink-deep);color:var(--text);font-size:0.8125rem;box-shadow:0 4px 30px #0003;pointer-events:none}.noscript{padding:24px;max-width:520px;margin:0 auto}
@keyframes card-reveal{from{transform:translateY(7px);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes music-breathe{50%{opacity:.45}}
@media(min-width:480px){:root{--page-gutter:30px}.home-view{padding-top:24px}.art-window{height:240px}.home-heading h1{font-size:2.625rem}.home-heading .lead{font-size:1rem}.result-view{padding:0 18px}.result-art{min-height:430px;padding:30px}.result-cover-copy h1{font-size:2.312rem}.result-main{padding-left:32px;padding-right:32px}.reading-section p{font-size:1.062rem}.reading-section .reading-intro{font-size:1.125rem}.ritual-card{min-height:330px;padding-top:28px}.card-mark{height:140px}.card-invitation{font-size:0.875rem;max-width:160px}.site-header{padding-top:24px}}
@media(max-width:359px){:root{--page-gutter:17px}.site-header{gap:8px}.header-right{gap:7px}.sound-button,.quiet-button{font-size:0.875rem}.wordmark{font-size:1.25rem}.home-heading h1{font-size:2rem}.art-window{height:165px}.result-view{padding:0 8px}.result-art{padding:22px 20px;min-height:370px}.result-cover-copy h1{font-size:1.812rem}.result-main{padding-left:19px;padding-right:19px}.reading-toolbar{flex-wrap:wrap}.purchase-card{padding:23px 16px}.purchase-card h2{font-size:1.438rem}.ritual-pair{gap:10px}.ritual-card{padding-left:9px;padding-right:9px}.card-name{font-size:1.125rem}.keepsake-section{gap:19px 15px;grid-template-columns:65px minmax(0,1fr)}.keepsake-section h2{font-size:1.25rem}.keepsake-mini{height:102px}.keepsake-actions{grid-template-columns:1fr}.result-dock{padding-left:17px;padding-right:17px;gap:9px;grid-template-columns:48px minmax(0,1fr)}.result-dock .primary-button{font-size:0.875rem}.dialog-head h2{font-size:1.375rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Six actual coin casts, followed by a deliberate choice from all 22 cards. */
.ritual-view{padding-top:8px}.ritual-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;color:var(--muted);font-size:0.8125rem}.ritual-progress{display:flex;align-items:center;gap:8px;font-size:0.75rem;color:var(--muted)}.ritual-progress i{height:1px;flex:1;min-width:8px;background:var(--line)}.ritual-progress .active{color:var(--gold)}.ritual-progress .complete{color:var(--text)}.ritual-view h1{margin-top:28px}.ritual-view>.lead{min-height:52px;font-size:1rem}.casting-stage{display:grid;grid-template-columns:56px minmax(0,1fr);gap:19px;align-items:center;margin:18px 0 28px}.forming-hex{display:grid;gap:17px}.forming-row{display:flex;align-items:center;gap:6px;opacity:.3}.forming-row.landed{opacity:1;animation:line-land .45s ease-out}.line-order{font-family:Georgia,serif;font-size:0.75rem;width:8px;color:var(--muted)}.forming-line{display:flex;gap:5px;flex:1;height:3px}.forming-line span{height:100%;background:var(--gold);flex:1}.forming-row:not(.landed) .forming-line span{background:transparent;border-top:1px dashed var(--muted)}.moving-mark{width:8px;font-size:0.75rem;line-height:1;color:var(--gold)}.coin-button{width:100%;min-height:275px;border:1px solid var(--line);border-radius:48% 48% 18px 18px;padding:35px 13px 23px;position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 20%,color-mix(in srgb,var(--gold) 12%,transparent),transparent 65%);color:var(--text);display:flex;align-items:center;flex-direction:column}.coin-button::before{content:"";position:absolute;inset:9px;border:1px solid var(--line);border-radius:inherit;pointer-events:none;z-index:-1}.coins{display:flex;justify-content:center;gap:8px;align-items:center;min-height:105px;padding:9px 0;perspective:500px}.coin-token{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--gold);background:radial-gradient(circle at 30% 25%,var(--gold),color-mix(in srgb,var(--gold) 64%,var(--bg)));box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--bg) 20%,transparent),0 9px 17px #0003;color:var(--ink-deep);font-family:var(--serif);font-size:1.562rem;line-height:1}.coin-token:nth-child(2){transform:translateY(-12px)}.cast-label{font-size:1rem;line-height:1.7;margin-top:20px}.cast-count{font-size:0.8125rem;letter-spacing:.13em;color:var(--muted);margin-top:12px;font-variant-numeric:tabular-nums}.coin-button:active{transform:scale(.985)}.casting .coin-token{animation:coin-cast .6s ease-in-out both}.casting .coin-token:nth-child(2){animation-delay:.06s}.casting .coin-token:nth-child(3){animation-delay:.1s}.ritual-caption{font-size:0.875rem;color:var(--muted);line-height:1.9}.ritual-feedback{min-height:44px;font-size:0.875rem;line-height:1.9;color:var(--gold);margin:18px 0 0}.ritual-resume{display:block;text-align:center;margin:12px auto 0;font-size:0.875rem}.formed-seal{display:flex;gap:15px;align-items:center;justify-content:center;margin:12px 0 28px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:0.8125rem;color:var(--muted)}.formed-seal .hexagram-lines{width:28px;gap:3px}.deck-strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:22px 7px 25px;margin:0 -7px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--gold) transparent}.deck-card{flex:0 0 99px;min-height:170px;scroll-snap-align:center;display:flex;align-items:center;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:43px 43px 8px 8px;padding:19px 9px 15px;position:relative;background:var(--ink-deep);color:var(--gold);transition:transform .25s,background .25s}.deck-card::before{content:"";position:absolute;inset:6px;border:1px solid var(--line);border-radius:inherit;pointer-events:none}.deck-number{font-family:Georgia,serif;font-size:0.8125rem;color:var(--muted)}.deck-mark{font-family:var(--serif);font-size:2.438rem;line-height:1.4}.deck-caption{font-size:0.75rem;letter-spacing:.1em}.deck-card.chosen{background:var(--gold);color:var(--ink-deep);transform:translateY(-12px);border-color:var(--gold);box-shadow:0 9px 18px #0002}.deck-card.chosen .deck-number{color:var(--ink-deep)}.deck-hint{font-size:0.8125rem;color:var(--muted);line-height:1.8;margin:14px 0 24px}.cast-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:23px 0 19px;border-bottom:1px solid var(--line)}.cast-summary>div:not(:last-child){border-right:1px solid var(--line)}.cast-summary span{font-size:0.875rem;color:var(--paper-muted);display:block;line-height:1.8}.cast-summary strong{display:block;font-family:var(--serif);font-size:0.9375rem;font-weight:400;line-height:1.8;margin-top:6px;overflow-wrap:anywhere}.opening-section .fusion-guide{font-family:var(--serif);color:var(--accent);font-size:1.25rem;line-height:1.85;margin-top:20px}.fusion-section>p+p{margin-top:19px}.fusion-section .fusion-note{font-size:0.875rem;color:var(--paper-muted);line-height:1.9;margin-top:20px}.fusion-items{list-style:none;padding:0;margin:20px 0 0}.fusion-items li{padding:17px 0;border-top:1px solid var(--line)}.fusion-items li>span{font-size:0.875rem;color:var(--accent);display:block;margin-bottom:7px}.fusion-items li p{font-size:1rem}.fusion-practice{background:var(--wash);border-radius:15px;margin:26px -5px 0;padding:25px 19px}.usable-quote{margin:22px 0 0;padding:21px 17px;border-left:2px solid var(--accent);background:var(--wash);font-family:var(--serif);font-size:1.188rem;line-height:1.95;letter-spacing:.01em}.classic-details{padding:17px 0 0;border-top:1px dashed var(--line);margin-top:19px}.classic-details summary{font-size:0.875rem;color:var(--accent);cursor:pointer;min-height:44px;line-height:1.8}.classic-details p{font-size:0.875rem;color:var(--paper-muted);margin-top:10px;line-height:1.9}.classic-details strong{font-weight:400;display:block;font-size:0.875rem;color:var(--accent);margin-bottom:3px}@keyframes coin-cast{0%{transform:translateY(0) rotateX(0)}45%{transform:translateY(-22px) rotateX(200deg)}100%{transform:translateY(0) rotateX(360deg)}}@keyframes line-land{from{transform:translateY(5px);opacity:.3}to{transform:translateY(0);opacity:1}}@media(max-width:359px){.coin-token{width:47px;height:47px;font-size:1.375rem}.coins{gap:6px}.casting-stage{gap:13px;grid-template-columns:49px minmax(0,1fr)}.cast-label{font-size:0.875rem}.ritual-progress{font-size:0.75rem;gap:5px}.deck-card{flex-basis:88px;min-height:160px}.cast-summary strong{font-size:0.875rem}}
@media(prefers-reduced-motion:reduce){.casting .coin-token,.forming-row.landed{animation:none!important}}
/* One surface for theme, combined selection and reveal. No horizontal card rail. */
.home-heading h1{font-size:1.812rem;margin:12px 0 7px}
.home-heading .lead{font-size:1rem;margin-bottom:16px;min-height:28px}
.home-entry{padding-top:0}
.topic-question{font-size:1rem;padding:12px 2px;min-height:52px}
.moment-scene{position:relative;isolation:isolate;border-radius:24px;min-height:288px;padding:16px 18px 30px;overflow:hidden;border:1px solid var(--line);background:var(--ink-deep)}
.moment-scene .art-window{position:absolute;inset:0;height:100%;border-radius:0;z-index:-2}
.moment-scene .art-window::after{inset:0;background:linear-gradient(180deg,rgba(17,21,23,.5),rgba(17,21,23,.25) 45%,rgba(17,21,23,.72))}
.moment-scene .art-window img{opacity:.78;transition:opacity .5s}
.moment-scene .art-window figcaption{font-size:0.875rem;left:18px;bottom:8px;color:#fff9ec}
.moment-scene-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;color:#fff9ec;font-size:0.875rem;line-height:1.7;margin-bottom:16px}
.moment-scene-label>span:last-child{opacity:.84}
.moment-choices{display:flex;justify-content:center;align-items:center;min-height:196px;padding:4px 0 8px}
.moment-choice{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;flex-direction:column;flex-shrink:0;width:184px;max-width:100%;min-height:184px;padding:22px 10px 24px;border-radius:50%;border:1px solid color-mix(in srgb,var(--gold) 64%,transparent);background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--gold) 13%,var(--ink-deep)),color-mix(in srgb,var(--ink-deep) 94%,transparent) 75%);color:var(--gold);box-shadow:0 8px 28px #0004,inset 0 0 26px #ffffff06;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer;transition:transform .25s,box-shadow .45s,border-color .3s}
.moment-choice::before,.moment-choice::after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:-1}
.moment-choice::before{inset:6px;border:1px solid color-mix(in srgb,var(--gold) 20%,transparent)}
.moment-choice::after{inset:-7px;border:1px solid transparent;border-top-color:var(--gold);border-bottom-color:color-mix(in srgb,var(--gold) 30%,transparent);opacity:0;transition:opacity .3s}
.moment-choice:focus-visible{outline:2px solid #fff9ec;outline-offset:10px}
.moment-choice:disabled{cursor:wait}
.moment-lines{display:grid;gap:3px;width:28px;margin:0 0 11px}
.moment-lines i{height:2px;background:currentColor;opacity:.48;border-radius:2px}
.moment-word{font-family:var(--serif);font-size:1.375rem;line-height:1.6;letter-spacing:.025em;text-align:center}
.moment-touch{font-family:var(--sans);font-size:0.875rem;line-height:1.6;color:#f4ebd8;margin-top:6px;text-align:center}
.moment-choice.is-held{transform:scale(.97);border-color:var(--gold);box-shadow:0 0 38px color-mix(in srgb,var(--gold) 32%,transparent),inset 0 0 30px color-mix(in srgb,var(--gold) 12%,transparent)}
.moment-choice.is-held::after,.is-working .moment-choice::after{opacity:.9;animation:moment-orbit 5s linear infinite}
.moment-choice.is-held .moment-lines i,.is-working .moment-lines i{animation:moment-line 1.4s ease-in-out infinite}
.moment-lines i:nth-child(2){animation-delay:.12s}
.moment-lines i:nth-child(3){animation-delay:.24s}
.moment-lines i:nth-child(4){animation-delay:.36s}
.moment-lines i:nth-child(5){animation-delay:.48s}
.moment-lines i:nth-child(6){animation-delay:.6s}
.is-working .moment-choice{box-shadow:0 0 30px color-mix(in srgb,var(--gold) 25%,transparent)}
.is-holding .art-window img,.is-working .art-window img{opacity:.9}
.moment-feedback{font-size:0.875rem;color:var(--gold);text-align:center;line-height:1.8;min-height:42px;padding:12px 0 0}
.home-entry>.entry-note{margin-top:2px}
.moment-reveal{min-height:196px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff9ec;gap:13px;animation:card-reveal .5s ease-out}
.moment-reveal .hexagram-lines{width:46px}
.moment-reveal .hex-line{height:4px;gap:7px}
.moment-reveal .hex-line span{background:#fff9ec}
.moment-reveal-title{font-family:var(--serif);font-size:1.375rem;line-height:1.6;text-align:center}
.moment-reveal-title span{font-family:var(--sans);font-size:0.875rem;padding:0 12px;opacity:.72}
.moment-reveal>p:last-child{font-size:0.875rem;text-align:center}
.is-revealed .art-window img{opacity:.9}
.home-entry .resume-panel{margin-top:14px}
.sky-footnote{margin-top:23px;padding-top:20px}
@keyframes moment-line{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes moment-orbit{to{transform:rotate(360deg)}}
@media(max-width:359px){.home-heading h1{font-size:1.562rem}.home-heading .lead{font-size:0.9375rem;margin-bottom:12px}.moment-scene{padding:14px 13px 30px}.moment-word{font-size:1.312rem}.topic-question{font-size:0.9375rem}.moment-reveal-title{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){.moment-choice,.moment-choice::after,.moment-scene .art-window img{transition:none}.moment-choice::after,.moment-lines i,.moment-reveal{animation:none!important}.moment-choice.is-held{transform:none}.is-held .moment-lines i,.is-working .moment-lines i{opacity:1}}
.preview-takeaway{padding:23px 0 25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.preview-takeaway .section-label{font-size:0.875rem;color:var(--accent)}.preview-takeaway p{font-family:var(--serif);font-size:1.375rem;line-height:1.9;color:var(--paper-ink);margin-top:10px}.about-opening{font-family:var(--serif);font-size:1.5rem!important;line-height:1.8!important;color:var(--gold);margin-bottom:22px!important}.about-signature{font-family:var(--serif);font-size:1.125rem!important;color:var(--gold);padding-top:15px}.help-steps{list-style:none;counter-reset:help;margin:0;padding:0}.help-steps li{counter-increment:help;position:relative;padding:0 0 24px 38px}.help-steps li::before{content:counter(help);position:absolute;left:0;top:0;font-family:Georgia,serif;color:var(--gold);font-size:1.375rem}.help-steps strong{font-size:1.062rem;font-weight:500;color:var(--text)}.help-steps li p{margin-top:8px!important;margin-bottom:0!important}.help-extra{padding-top:20px;margin-top:0;border-top:1px solid var(--line)}.help-extra h3{font-size:1.188rem;margin-bottom:8px}.help-extra p{font-size:1rem}.fusion-section h2{font-size:1.5rem;line-height:1.7}

.preview-takeaway p,.fusion-items p{text-wrap:pretty}

/* Uncropped artwork carries through the reading and its keepsake. */
.reading-illustration{margin:30px 0 0;padding:0}
.reading-illustration img{display:block;width:100%;height:auto;border-radius:4px;background:var(--wash)}
.reading-illustration figcaption{font-size:0.875rem;line-height:1.6;letter-spacing:.04em;color:var(--paper-muted);padding-top:9px;text-align:right}
.reading-illustration--quiet+.preview-takeaway{padding-top:24px}
.reading-illustration--sky+.reading-section{padding-top:25px}
.reading-illustration--closing+.reflection-section{padding-top:25px}

/* Readable labels also reflow when the browser's text size is enlarged. */
.site-header,.header-right,.eyebrow,.reading-toolbar,.result-topline{flex-wrap:wrap}
.section-heading{align-items:flex-start}
.section-heading .section-index{flex-shrink:0}
.site-footer>a{max-width:100%;overflow-wrap:anywhere}
#icp-record{flex-basis:100%;font-size:.75rem;line-height:1.8}
#purchase-support{display:block;text-align:center;margin-top:12px}
.save-controls>*{white-space:normal}
.keepsake-mini span{letter-spacing:.1em}
