@font-face{font-family:Cinzel;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cinzel-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/cinzel-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/cinzel-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:LazyOracle CJK;src:url(/fonts/lazyoracle-cjk-subset.woff2) format("woff2");font-display:swap;font-weight:400 900}:root{--night: #0b0d1f;--night-2: #131634;--night-3: #1c1f45;--ink: #f4efe4;--ink-soft: rgba(244, 239, 228, .72);--ink-mute: rgba(244, 239, 228, .5);--gold: #d9b45a;--gold-soft: rgba(217, 180, 90, .22);--gold-line: rgba(217, 180, 90, .45);--rose: #e28b7a;--parchment: #f3e9d2;--parchment-2: #e9dbb9;--line: rgba(244, 239, 228, .12);--display: "Cinzel", "Cormorant Garamond", "Songti SC", "Noto Serif CJK SC", "LazyOracle CJK", serif;--serif: "Cormorant Garamond", "Songti SC", "Noto Serif CJK SC", "LazyOracle CJK", Georgia, serif;--sans: "Inter", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "LazyOracle CJK", ui-sans-serif, -apple-system, sans-serif;color-scheme:dark}html{background:var(--night)}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input,textarea{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app{position:relative;min-height:100vh;padding:env(safe-area-inset-top) 0 calc(24px + env(safe-area-inset-bottom));overflow-x:hidden}.sky{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(1.2px 1.2px at 12% 18%,rgba(255,255,255,.9) 50%,transparent 51%),radial-gradient(1px 1px at 68% 8%,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 84% 34%,rgba(217,180,90,.9) 50%,transparent 51%),radial-gradient(1px 1px at 30% 62%,rgba(255,255,255,.6) 50%,transparent 51%),radial-gradient(1.4px 1.4px at 52% 78%,rgba(255,255,255,.8) 50%,transparent 51%),radial-gradient(1px 1px at 92% 88%,rgba(217,180,90,.7) 50%,transparent 51%),radial-gradient(1px 1px at 8% 90%,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 44% 28%,rgba(255,255,255,.55) 50%,transparent 51%),radial-gradient(ellipse 80% 50% at 50% -10%,#23265a 0%,transparent 60%),linear-gradient(180deg,#0d1026 0%,var(--night) 45%,#07081a 100%);animation:drift 90s linear infinite alternate}@keyframes drift{0%{background-position:0 0}to{background-position:0 -60px}}@media(prefers-reduced-motion:reduce){.sky{animation:none}}.topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 18px 0;max-width:560px;margin:0 auto}.brand{border:0;background:transparent;color:var(--ink);font-family:var(--display);font-weight:600;letter-spacing:.08em;font-size:17px;display:flex;align-items:center;gap:10px;cursor:pointer;padding:10px 8px 10px 0;min-height:44px}.brand-mark{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe9a8,var(--gold) 55%,#7a5c1c 100%);box-shadow:0 0 18px #d9b45a73;display:inline-block}.back-button{border:0;background:transparent;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;cursor:pointer;padding:12px 10px 12px 0;min-height:44px}.icon-button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#ffffff0a;color:var(--ink-soft);display:grid;place-items:center;cursor:pointer}.screen{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:8px 18px 0}.screen-heading{padding:18px 2px 14px}.screen-heading h1{font-family:var(--display);font-weight:600;font-size:clamp(30px,8vw,40px);letter-spacing:.02em;line-height:1.1;margin:8px 0 6px;color:var(--ink)}.screen-heading.hero h1{font-size:clamp(34px,9.5vw,48px)}.eyebrow{color:var(--gold);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;display:inline-flex;gap:8px;align-items:center}.tagline{font-family:var(--serif);font-size:19px;line-height:1.35;color:var(--ink-soft);margin:4px 0 0;font-style:italic}.panel{position:relative;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff0d,#ffffff05);border-radius:22px;padding:18px;margin-bottom:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel h2{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 12px}.panel .body{color:var(--ink-soft);line-height:1.55;font-size:14px;margin:0 0 12px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field>span{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);font-weight:700}.field textarea,.field input{width:100%;box-sizing:border-box;border:1px solid var(--line);background:#00000040;color:var(--ink);border-radius:14px;padding:12px 14px;font-family:var(--serif);font-size:18px;line-height:1.35;resize:vertical}.field textarea::placeholder,.field input::placeholder{color:var(--ink-mute);font-style:italic}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:#ffffff0a;color:var(--ink-soft);border-radius:999px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.chip small{font-size:12px;color:var(--ink-mute);font-weight:700}.chip.active{border-color:var(--gold-line);background:var(--gold-soft);color:var(--ink)}.chip.active small{color:var(--gold)}.primary-button{width:100%;min-height:52px;border:0;border-radius:16px;background:linear-gradient(135deg,#e6c777,var(--gold) 55%,#b48b35);color:#1a1405;font-weight:800;font-size:16px;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;box-shadow:0 10px 30px #d9b45a38}.primary-button:active{transform:translateY(1px)}.ghost-button{border:1px solid var(--gold-line);background:transparent;color:var(--gold);border-radius:999px;padding:10px 16px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.ghost-button:disabled{opacity:.5;cursor:default}.button-row{display:flex;gap:10px;align-items:center}.button-row .primary-button{width:auto;flex:1;min-height:46px}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.practice-tile{position:relative;text-align:left;border:1px solid var(--line);border-radius:20px;padding:16px 14px 14px;min-height:132px;background:linear-gradient(160deg,#ffffff12,#ffffff05);color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:transform .2s ease,border-color .2s ease}.practice-tile:not(:disabled):hover{transform:translateY(-2px);border-color:var(--gold-line)}.practice-tile.tarot{grid-column:1 / -1;min-height:150px;background:linear-gradient(140deg,#d9b45a2e,#e28b7a14 50%,#ffffff05);border-color:var(--gold-line)}.practice-tile.soon{opacity:.55;cursor:default}.tile-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#d9b45a26;color:var(--gold)}.tile-name{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:.04em;margin-top:4px}.tile-blurb{font-family:var(--serif);font-size:15px;color:var(--ink-soft);line-height:1.3}.tile-soon{position:absolute;top:12px;right:12px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);border:1px solid var(--line);border-radius:999px;padding:3px 8px}.privacy-line{color:var(--ink-mute);font-size:12px;line-height:1.5;text-align:center;margin:18px 8px 0}.spread-panel{padding:14px 10px 16px}.spread-stage{position:relative;width:100%;aspect-ratio:4 / 3}.spread-stage.one{aspect-ratio:3 / 2}.spread-stage.three{aspect-ratio:5 / 2.7}.spread-stage.celtic{aspect-ratio:5 / 5.6}.spread-slot{position:absolute;transform:translate(-50%,-50%)}.tarot-card{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}.tarot-card figcaption{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);font-weight:700;white-space:nowrap}.tarot-card.large .tarot-card-flip{width:94px;height:152px}.tarot-card.small .tarot-card-flip{width:60px;height:98px}.tarot-card.crossed .tarot-card-flip{transform:rotate(90deg)}.tarot-card.crossed figcaption{transform:translateY(-4px)}.tarot-card-flip{position:relative;border:0;padding:0;background:transparent;perspective:900px;cursor:pointer;border-radius:10px}.tarot-card-back,.tarot-card-face{position:absolute;inset:0;border-radius:10px;backface-visibility:hidden;transition:transform .7s cubic-bezier(.2,.7,.2,1);box-shadow:0 10px 26px #00000073}.tarot-card-back{background:radial-gradient(circle at 50% 42%,#2a2d66,#161940 55%,#0d0f2a);color:var(--gold);display:grid;place-items:center;transform:rotateY(0)}.back-frame{position:absolute;inset:5px;border:1px solid var(--gold-line);border-radius:7px;background-image:repeating-linear-gradient(45deg,rgba(217,180,90,.07) 0 2px,transparent 2px 8px)}.back-emblem{width:56%;position:relative}.tarot-card-face{background:linear-gradient(180deg,var(--parchment) 0%,var(--parchment-2) 100%);color:#2a2340;transform:rotateY(180deg);display:grid;grid-template-rows:auto 1fr auto auto;align-items:center;justify-items:center;padding:6px 4px 5px;box-sizing:border-box}.face-frame{position:absolute;inset:4px;border:1px solid rgba(122,92,28,.55);border-radius:7px;pointer-events:none}.face-label{font-family:var(--display);font-weight:700;font-size:12px;color:#7a5c1c;letter-spacing:.06em}.face-label.bottom{transform:rotate(180deg)}.face-glyph{width:62%;color:#3b3160}.face-name{font-family:var(--serif);font-weight:600;font-size:12px;line-height:1.1;text-align:center;padding:0 2px;color:#2a2340}.tarot-card.small .face-name{font-size:8.5px}.tarot-card.small .face-label{font-size:8px}.tarot-card.revealed .tarot-card-back{transform:rotateY(-180deg)}.tarot-card.revealed .tarot-card-face{transform:rotateY(0)}.tarot-card.revealed.reversed .tarot-card-face{transform:rotateY(0) rotate(180deg)}.tarot-card.hidden .tarot-card-flip:hover .tarot-card-back{box-shadow:0 14px 30px #d9b45a40}.spread-actions{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:4px 6px 0}.spread-actions .hint{color:var(--ink-mute);font-size:13px;font-style:italic;font-family:var(--serif);margin:0}.card-facts{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.card-facts li{display:grid;grid-template-columns:86px 1fr;gap:4px 12px;padding:10px 12px;border-radius:14px;background:#00000038;border:1px solid var(--line)}.fact-position{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;align-self:center}.fact-card{font-family:var(--serif);font-size:18px;font-weight:600;display:flex;gap:8px;align-items:baseline}.fact-card small{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-weight:700}.card-facts li.reversed .fact-card small{color:var(--rose)}.fact-keywords{grid-column:2;color:var(--ink-soft);font-size:13px}.reading-panel header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.reading-panel h2{margin:0}.seed{font-size:12px;color:var(--ink-mute);letter-spacing:.08em;font-variant-numeric:tabular-nums}.reading-text p{font-family:var(--serif);font-size:19px;line-height:1.5;margin:0 0 14px;color:var(--ink)}.thinking{font-family:var(--serif);font-style:italic;color:var(--ink-soft);font-size:17px;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.offline-note{color:var(--ink-mute);font-size:12px;line-height:1.5;margin:0 0 12px}.switch{display:flex;align-items:center;gap:10px;margin:6px 0 14px;font-size:15px;cursor:pointer}.switch input{width:24px;height:24px;accent-color:var(--gold);flex:none}.switch{min-height:44px;padding:4px 0}.status{font-size:13px;margin:10px 0 0}.status.ok{color:#9ad4a2}.status.failed{color:var(--rose)}@media(min-width:600px){.tarot-card.large .tarot-card-flip{width:110px;height:178px}.tarot-card.small .tarot-card-flip{width:68px;height:110px}}.facts{display:grid;grid-template-columns:96px 1fr;gap:6px 12px;margin:14px 0 0}.facts dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;padding-top:3px}.facts dd{margin:0;font-family:var(--serif);font-size:17px;line-height:1.35;grid-column:2}.facts dd.classical{font-size:19px;color:var(--gold)}.facts-title{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:14px 0 6px}.link-button{border:0;background:transparent;color:var(--ink-mute);text-decoration:underline;font-size:13px;cursor:pointer;padding:12px 0;min-height:44px;text-align:left}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:10px}.field-row .field{margin-bottom:10px}.field select{width:100%;border:1px solid var(--line);background:#00000040;color:var(--ink);border-radius:14px;padding:12px 14px;font-family:var(--serif);font-size:17px}.field input:disabled{opacity:.4}.panel h3.sub{font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 8px}.chart-panel .hint,.ask-panel .hint{color:var(--ink-mute);font-size:12px;font-style:italic;font-family:var(--serif);margin:6px 0 0}.hexagram-pair{display:flex;align-items:center;justify-content:center;gap:18px;padding:8px 0 4px}.hexagram-block{display:flex;flex-direction:column;align-items:center;gap:10px}.hexagram{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}.hexagram figcaption{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);font-weight:700}.hexagram-lines{display:flex;flex-direction:column;gap:9px}.hexagram.small .hexagram-lines{gap:6px}.hex-line{position:relative;display:flex;gap:14px;width:120px;height:12px;opacity:0;transform:scaleX(.2);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1)}.hexagram.small .hex-line{width:76px;height:8px;gap:9px}.hex-line.visible{opacity:1;transform:scaleX(1)}.hex-line span{flex:1;border-radius:3px;background:linear-gradient(180deg,#e9cf82,var(--gold) 60%,#a37f2c);box-shadow:0 2px 6px #00000059}.hex-line.changing span{background:linear-gradient(180deg,#ffd9c9,var(--rose) 60%,#a0503f)}.change-mark{position:absolute;right:-22px;top:-4px;font-style:normal;font-size:14px;color:var(--rose)}.hexagram.small .change-mark{right:-16px;top:-6px;font-size:12px}.hexagram-name{text-align:center;display:flex;flex-direction:column;gap:2px}.hexagram-name b{font-family:var(--display);font-size:18px;letter-spacing:.04em}.hexagram-name span{font-family:var(--serif);font-size:13px;color:var(--ink-soft)}.hexagram-arrow{color:var(--gold);font-size:26px}.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.pillar{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;border-radius:14px;border:1px solid var(--line);background:#00000038}.pillar.day{border-color:var(--gold-line);background:var(--gold-soft)}.pillar-title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);font-weight:700}.pillar-god{font-size:12px;color:var(--ink-soft);min-height:14px;text-align:center}.pillar-char{font-family:var(--display);font-size:34px;line-height:1.1;font-weight:600}.pillar-char.wood{color:#8fd18f}.pillar-char.fire{color:#ff8f7a}.pillar-char.earth{color:#d9b45a}.pillar-char.metal{color:#e6e6f0}.pillar-char.water{color:#7fb8ff}.pillar-hidden{font-size:12px;color:var(--ink-mute);letter-spacing:.1em}.pillar-nayin{font-size:12px;color:var(--ink-mute)}.element-bars{display:grid;gap:6px;margin-top:14px}.element-bar{display:grid;grid-template-columns:52px 1fr 20px;align-items:center;gap:8px;font-size:12px}.element-track{height:8px;border-radius:4px;background:#ffffff14;overflow:hidden}.element-fill{display:block;height:100%;width:100%;transform-origin:left center;transform:scaleX(0);border-radius:4px;background:var(--gold)}.element-bar.wood .element-fill{background:#8fd18f}.element-bar.fire .element-fill{background:#ff8f7a}.element-bar.earth .element-fill{background:#d9b45a}.element-bar.metal .element-fill{background:#e6e6f0}.element-bar.water .element-fill{background:#7fb8ff}.element-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.luck-cycles ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.luck-cycles li{display:flex;flex-direction:column;align-items:center;padding:8px 2px;border-radius:10px;border:1px solid var(--line)}.luck-cycles li.current{border-color:var(--gold-line);background:var(--gold-soft)}.luck-cycles b{font-family:var(--display);font-size:15px}.luck-cycles small{font-size:12px;color:var(--ink-mute)}.natal-wheel{width:100%;max-width:340px;display:block;margin:0 auto}.wheel-ring{fill:none;stroke:var(--gold-line);stroke-width:1}.wheel-ring.faint{stroke:var(--line)}.wheel-tick{stroke:var(--gold-line);stroke-width:1}.wheel-tick.faint{stroke:var(--line)}.wheel-axis{stroke:var(--rose);stroke-width:1;stroke-dasharray:3 3}.axis-label{fill:var(--rose);font-size:11px;letter-spacing:.1em;font-weight:700}.sign-glyph{font-size:15px;fill:var(--ink-soft)}.sign-glyph.fire{fill:#ff9f8a}.sign-glyph.earth{fill:#d9b45a}.sign-glyph.air{fill:#cfd6ff}.sign-glyph.water{fill:#86c1ff}.house-number{font-size:8px;fill:var(--ink-mute)}.planet-glyph{font-size:17px;fill:var(--ink)}.placements{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:4px}.placements li{display:grid;grid-template-columns:24px 74px 1fr auto;gap:8px;align-items:baseline;font-size:14px}.placements .glyph{color:var(--gold);font-size:16px}.placements .sign{font-family:var(--serif);font-size:16px}.placements .house{color:var(--ink-mute);font-size:12px}.aspect-list p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.5}.bagua-rose{width:100%;max-width:320px;display:block;margin:0 auto}.sector path{stroke:var(--night);stroke-width:2}.sector.good path{fill:#d9b45a59}.sector.bad path{fill:#e28b7a2e}.sector-label{font-size:12px;fill:var(--ink);font-weight:700}.sector-dir{font-size:12px;fill:var(--ink-mute);letter-spacing:.06em}.rose-needle{fill:var(--rose)}.rose-pin{fill:var(--gold)}.compass-status{text-align:center;margin-top:8px}.heading-readout{font-family:var(--serif);font-size:16px;color:var(--ink-soft);margin:6px 0 0}.palm-preview{position:relative;margin-top:12px;border-radius:16px;overflow:hidden;background:#000}.palm-preview img{width:100%;display:block}.palm-overlay{position:absolute;inset:0;width:100%;height:100%}.palm-overlay line{stroke:var(--gold);stroke-width:.006;stroke-linecap:round}.palm-overlay circle{fill:var(--rose)}.palm-status{position:absolute;left:0;right:0;bottom:0;margin:0;padding:10px;text-align:center;background:#0b0d1fb3;font-family:var(--serif);font-style:italic}.palm-screen .button-row .primary-button{flex:1.4}.book-panel{display:flex;justify-content:center;padding:22px 12px}.book{display:flex;width:100%;max-width:380px;aspect-ratio:3 / 2;perspective:1200px}.book-page{flex:1;background:linear-gradient(90deg,var(--parchment-2),var(--parchment));border:1px solid rgba(122,92,28,.4);box-shadow:0 14px 30px #00000073}.book-page.left{border-radius:10px 2px 2px 10px;transform-origin:right center;transform:rotateY(-8deg)}.book-page.right{border-radius:2px 10px 10px 2px;transform-origin:left center;transform:rotateY(90deg);transition:transform .8s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:18px;box-sizing:border-box;color:#2a2340;text-align:center}.book-panel.opened .book-page.right{transform:rotateY(8deg)}.page-number{font-family:var(--display);font-size:12px;letter-spacing:.18em;color:#7a5c1c;margin-bottom:10px}.page-text{font-family:var(--serif);font-size:clamp(18px,5vw,24px);line-height:1.3;margin:0}.model-list{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:8px}.model-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:#00000038}.model-list li.active{border-color:var(--gold-line)}.model-list b{display:block;font-size:15px}.model-list small{display:block;color:var(--ink-mute);font-size:12px;margin-top:2px}.model-list .progress{display:block;height:6px;border-radius:3px;background:#ffffff14;margin-top:8px;overflow:hidden;width:160px}.model-list .progress span{display:block;height:100%;width:100%;transform-origin:left center;transform:scaleX(0);background:var(--gold)}.about{color:var(--ink-mute);font-size:12px}.chat-log{display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow-y:auto;overflow-x:hidden}.chat-bubble{margin:0;padding:12px 14px;border-radius:16px;background:#ffffff0d;border:1px solid var(--line);line-height:1.65;white-space:pre-wrap}.chat-bubble.mine{background:#d6b26a24;border-color:#d6b26a59;align-self:flex-end;max-width:86%}.chat-bubble.thinking{color:var(--ink-mute);font-style:italic}.chat-compose{display:flex;flex-direction:column;gap:10px}.chat-actions{display:flex;gap:10px;flex-wrap:wrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.model-prompt h2{margin-top:0}.model-prompt .model-list{margin-top:12px}.chat-tool{margin:0;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;max-width:100%;overflow-wrap:anywhere;font-size:13px;color:var(--ink-mute);border:1px dashed var(--line);border-radius:999px;padding:6px 12px}.chat-dock{position:fixed;left:0;right:0;bottom:var(--keyboard-inset, 0px);z-index:20;display:flex;gap:8px;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#0b0d1fdb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}.chat-dock input{flex:1;min-width:0;padding:12px 14px;border-radius:999px;border:1px solid var(--line);background:#ffffff0d;color:var(--ink);font-size:16px}.chat-dock input:focus{outline:none;border-color:#d6b26a99}.chat-dock .icon-button:disabled{opacity:.4}.chat-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}html,body{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none;scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}.app{width:100%;max-width:100vw;overflow-x:clip;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.panel,.screen,.chat-bubble,.facts dd,.facts dt,.reading-text,.body,.status,.model-list li>div,.model-list small{overflow-wrap:anywhere;word-break:break-word;min-width:0}.chip-row,.chat-actions,.model-list li,.screen-heading.chat-heading{flex-wrap:wrap;min-width:0}.model-list li>div{flex:1 1 12rem}.model-list .progress{width:100%;max-width:220px}.panel svg,.panel img,.panel canvas,.panel video{max-width:100%;height:auto}.chat-log{max-height:min(60vh,520px);overflow-x:hidden;overscroll-behavior:contain}@media(max-width:360px){.screen{padding-left:14px;padding-right:14px}.panel{padding:15px;border-radius:18px}.practice-grid{gap:10px}}input,textarea,select{font-size:max(16px,1rem)}.chat-dock{transition:bottom .18s ease-out}@media(prefers-reduced-motion:reduce){.chat-dock{transition:none}}:root{--ease-out: cubic-bezier(.2, .7, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1)}.screen{animation:screen-in .34s var(--ease-out) both}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.screen>.panel{animation:panel-in .38s var(--ease-out) both}.screen>.panel:nth-of-type(1){animation-delay:.04s}.screen>.panel:nth-of-type(2){animation-delay:.09s}.screen>.panel:nth-of-type(3){animation-delay:.14s}.screen>.panel:nth-of-type(n+4){animation-delay:.18s}@keyframes panel-in{0%{opacity:0;transform:translateY(14px) scale(.995)}to{opacity:1;transform:none}}.practice-tile{animation:tile-in .4s var(--ease-out) both}.practice-tile:nth-child(1){animation-delay:.02s}.practice-tile:nth-child(2){animation-delay:.06s}.practice-tile:nth-child(3){animation-delay:.1s}.practice-tile:nth-child(4){animation-delay:.14s}.practice-tile:nth-child(5){animation-delay:.18s}.practice-tile:nth-child(6){animation-delay:.22s}.practice-tile:nth-child(7){animation-delay:.26s}.practice-tile:nth-child(8){animation-delay:.3s}.practice-tile:nth-child(n+9){animation-delay:.34s}@keyframes tile-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.practice-tile:active,.primary-button:active,.ghost-button:active,.chip:active,.icon-button:active{transform:scale(.97)}.primary-button,.ghost-button,.chip,.icon-button,.link-button{transition:transform .14s var(--ease-out),border-color .2s ease,background-color .2s ease,color .2s ease,opacity .2s ease}.practice-tile:hover{border-color:#d6b26a73}:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:8px}.chat-bubble,.chat-tool{animation:bubble-in .26s var(--ease-out) both}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.chat-tool svg{animation:tool-spin 2.4s linear infinite;transform-origin:center}@keyframes tool-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.reading-text{animation:fade-in .3s var(--ease-out) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.element-fill{transition:transform .8s var(--ease-in-out)}.model-list .progress span{transition:transform .45s var(--ease-in-out)}.sky:after{content:"";position:absolute;inset:0;background:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.5),transparent 60%),radial-gradient(1px 1px at 70% 60%,rgba(255,255,255,.4),transparent 60%),radial-gradient(1.5px 1.5px at 45% 80%,rgba(214,178,106,.5),transparent 60%);animation:twinkle 7s ease-in-out infinite alternate;pointer-events:none}@keyframes twinkle{0%{opacity:.35}to{opacity:.9}}@media(prefers-reduced-motion:reduce){.screen,.screen>.panel,.practice-tile,.chat-bubble,.chat-tool,.chat-tool svg,.reading-text,.sky:after{animation:none}.practice-tile:active,.primary-button:active,.ghost-button:active,.chip:active,.icon-button:active{transform:none}.element-fill,.model-list .progress span,.hex-line,.tarot-card-back,.tarot-card-face,.book-page.right{transition:none}}.natal-wheel{animation:wheel-in .7s var(--ease-out) both;transform-origin:center}@keyframes wheel-in{0%{opacity:0;transform:rotate(-8deg) scale(.94)}to{opacity:1;transform:none}}.natal-wheel .wheel-ring{animation:ring-draw 1.1s var(--ease-out) both}@keyframes ring-draw{0%{stroke-dasharray:2 8;opacity:.2}to{stroke-dasharray:none;opacity:1}}.bagua-rose{animation:rose-in .8s var(--ease-out) both;transform-origin:center}@keyframes rose-in{0%{opacity:0;transform:rotate(10deg) scale(.92)}to{opacity:1;transform:none}}.rose-needle{transition:transform .5s var(--ease-out);transform-origin:center}.spread-stage .tarot-card{animation:deal .42s var(--ease-out) both}.spread-stage .tarot-card:nth-child(1){animation-delay:.02s}.spread-stage .tarot-card:nth-child(2){animation-delay:.08s}.spread-stage .tarot-card:nth-child(3){animation-delay:.14s}.spread-stage .tarot-card:nth-child(4){animation-delay:.2s}.spread-stage .tarot-card:nth-child(5){animation-delay:.26s}.spread-stage .tarot-card:nth-child(6){animation-delay:.32s}.spread-stage .tarot-card:nth-child(7){animation-delay:.38s}.spread-stage .tarot-card:nth-child(8){animation-delay:.44s}.spread-stage .tarot-card:nth-child(9){animation-delay:.5s}.spread-stage .tarot-card:nth-child(n+10){animation-delay:.56s}@keyframes deal{0%{opacity:0;transform:translateY(-14px) scale(.9) rotate(-3deg)}to{opacity:1;transform:none}}.tarot-card.crossed{animation:none}.pillar{animation:panel-in .4s var(--ease-out) both}.pillar:nth-child(2){animation-delay:.06s}.pillar:nth-child(3){animation-delay:.12s}.pillar:nth-child(4){animation-delay:.18s}@media(prefers-reduced-motion:reduce){.natal-wheel,.natal-wheel .wheel-ring,.bagua-rose,.spread-stage .tarot-card,.pillar{animation:none}.rose-needle{transition:none}}.ask-panel .chip-row+.primary-button{margin-top:14px}.almanac-date{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.almanac-date .field{flex:1 1 140px;min-width:0;margin-bottom:0}.almanac-date .ghost-button{flex:0 0 auto;min-width:48px;justify-content:center;font-size:22px;line-height:1}.almanac-date input[type=date]{width:100%;box-sizing:border-box}.almanac-yi{color:#8fd7a8}.almanac-ji{color:#ff9b8a}.almanac-verdict{margin:12px 0 4px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#ffffff0a;line-height:1.6}.almanac-verdict.suitable{border-color:#8fd7a873}.almanac-verdict.avoid{border-color:#ff9b8a73}.today-strip{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;border:1px solid var(--line);border-radius:18px;padding:12px 14px;margin-bottom:14px;background:linear-gradient(160deg,#ffffff0f,#ffffff05);color:var(--ink-soft);cursor:pointer;font-size:13px;line-height:1.5}.today-strip:hover{border-color:#d6b26a73}.today-date{color:var(--gold);font-size:12px;letter-spacing:.1em}.today-line b{margin-right:6px;font-weight:700}.chat-screen{position:fixed;top:calc(var(--topbar-h, 60px) + env(safe-area-inset-top));left:0;right:0;bottom:0;max-width:560px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;padding-bottom:0;animation:none}.chat-screen .screen-heading{flex:0 0 auto}.chat-screen [data-testid=chat-history-list]{flex:0 1 auto;max-height:40%;overflow-y:auto}.chat-screen .chat-log{flex:1 1 auto;max-height:none;min-height:0;overflow-y:auto;margin-bottom:10px}.chat-screen .chat-compose{flex:0 0 auto;position:sticky;bottom:0;margin-bottom:calc(10px + env(safe-area-inset-bottom));background:#0b0d1feb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.chat-actions{display:flex;gap:10px;align-items:stretch;flex-wrap:nowrap}.chat-clear{flex:0 0 26%;justify-content:center;white-space:nowrap;padding-left:10px;padding-right:10px;gap:6px}@media(max-width:430px){.chat-clear .button-label{display:none}.chat-clear{flex:0 0 22%}}.chat-send{flex:1 1 auto;justify-content:center}.chat-clear:disabled{opacity:.35}.app:has(.chat-screen){padding-bottom:0}
