:root{--bg:#110f0c;--surface:#1a1712;--surface-2:#231f19;--fg:#ebe8df;--muted:#8d8980;--faint:#5c5751;--border:#312d27;--accent:#c44134;--accent-deep:#9e241b;--accent-soft:color-mix(in oklch, var(--accent) 16%, transparent);--deep-ink:#040906;--old-gold:#d3ab4e;--old-gold-soft:color-mix(in oklch, var(--old-gold) 18%, transparent);--jade:#73b598;--jade-soft:color-mix(in oklch, var(--jade) 16%, transparent);--water:#6ba7c9;--motion-ritual:cubic-bezier(.23, 1, .32, 1);--paper:#edeadb;--paper-2:#dfdbc9;--paper-fg:#241e16;--paper-muted:#5e574c;--paper-line:#c2beb0;--auspice:#ceac64;--ok:#68b986;--warn:#daa75d;--danger:#d55753;--font-display:"Songti SC", "Noto Serif SC", "Source Han Serif SC", "Iowan Old Style", Georgia, serif;--font-body:-apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", "Microsoft YaHei", system-ui, sans-serif;--font-mono:ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace;--fs-h1:clamp(30px, 4.6vw, 44px);--fs-h2:clamp(22px, 3vw, 30px);--fs-h3:18px;--fs-lead:17px;--fs-body:15.5px;--fs-meta:12.5px;--gap-xs:8px;--gap-sm:12px;--gap-md:20px;--gap-lg:32px;--gap-xl:52px;--gap-2xl:84px;--col:720px;--gutter:clamp(18px, 4vw, 32px);--radius:6px;--radius-sm:4px}@supports (color:lab(0% 0 0)){:root{--bg:lab(4.44403% .530519 1.86777);--surface:lab(7.7929% .969335 3.38707);--surface-2:lab(11.8531% 1.17658 4.54605);--fg:lab(91.9409% -.00193715 4.59584);--muted:lab(57.1333% .449896 5.37237);--faint:lab(37.3913% .751168 4.56561);--border:lab(18.8149% 1.14349 4.51767);--accent:lab(47.336% 52.7272 37.8982);--accent-deep:lab(35.8064% 49.8854 37.6941);--deep-ink:lab(2.04879% -1.48083 .586578);--old-gold:lab(72.3918% 7.46909 52.2299);--jade:lab(68.5888% -26.8654 7.70817);--water:lab(65.3213% -13.0055 -24.1413);--paper:lab(92.5802% -.550151 7.6575);--paper-2:lab(87.3821% -.624061 9.21664);--paper-fg:lab(11.8529% 1.88604 6.93764);--paper-muted:lab(37.4066% 1.35091 7.68822);--paper-line:lab(76.9062% -.173181 7.70154);--auspice:lab(72.3697% 6.16884 41.9408);--ok:lab(68.966% -34.7285 17.8622);--warn:lab(72.1293% 13.4527 45.475);--danger:lab(54.3377% 50.2958 29.345)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.65}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0;padding:0}p{text-wrap:pretty;margin:0}h1,h2,h3,h4{text-wrap:balance;font-family:var(--font-display);margin:0;font-weight:600}h1{font-size:var(--fs-h1);letter-spacing:.01em;line-height:1.18}h2{font-size:var(--fs-h2);line-height:1.25}h3{font-size:var(--fs-h3);line-height:1.35}::selection{background:var(--accent-soft)}:where(a,button,summary,input,textarea,select):focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{cursor:not-allowed}a,button,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 22px;font-size:15px;font-weight:500;transition:background .15s,border-color .15s,transform 50ms,color .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--paper);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-deep)}.btn[disabled]{opacity:.45;cursor:not-allowed}.input,.textarea,.select{background:var(--surface);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);font:inherit;padding:12px 14px;font-size:15px}.input:focus,.textarea:focus,.select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.textarea{resize:vertical;min-height:104px;line-height:1.65}.rd-section{padding:var(--gap-lg) 0;border-top:1px solid var(--border)}.rd-section>.sect-label{font-family:var(--font-mono);letter-spacing:.22em;color:var(--faint);margin-bottom:var(--gap-md);align-items:center;gap:10px;font-size:11.5px;display:flex}.rd-section>.sect-label .zh{font-family:var(--font-display);letter-spacing:.3em;color:var(--muted);font-size:14px}.abstain-card{border:1px solid color-mix(in oklch, var(--warn) 38%, transparent);background:color-mix(in oklch, var(--warn) 7%, transparent);border-radius:var(--radius);color:var(--muted);padding:12px 14px;font-size:13.5px}.toast{z-index:80;background:var(--surface-2);border:1px solid var(--border);opacity:0;pointer-events:none;text-align:center;border-radius:999px;width:max-content;max-width:calc(100vw - 32px);padding:9px 20px;font-size:13.5px;transition:opacity .25s,transform .25s;position:fixed;bottom:40px;left:50%;transform:translate(-50%,16px)}.toast.show{opacity:1;transform:translate(-50%)}.ask-thread{gap:var(--gap-md);margin-bottom:var(--gap-md);flex-direction:column;display:flex}.ask-turn{flex-direction:column;gap:10px;display:flex}.ask-turn+.ask-turn{padding-top:var(--gap-md);border-top:1px dashed var(--border)}.ask-q{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);align-self:flex-end;max-width:85%;padding:10px 14px}.ask-q .ask-ord{font-family:var(--font-mono);letter-spacing:.16em;color:var(--faint);margin-bottom:4px;font-size:10.5px;display:block}.ask-q p{color:var(--fg);font-size:14px;line-height:1.6}.ask-a{align-self:flex-start;max-width:92%}.ask-a p{color:var(--fg);font-size:14px;line-height:1.7}.ask-a .ask-streaming{color:var(--muted)}.ask-a .ask-error{color:var(--danger)}.ask-composer{flex-direction:column;gap:10px;display:flex}.ask-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ask-actions .hint{flex:180px;min-width:0;line-height:1.55}.ask-actions button{white-space:normal;min-width:92px;min-height:40px}.ask-exhausted{text-align:center;color:var(--faint);padding:10px 0;font-size:13px}.ask-seal-prompt{text-align:center;letter-spacing:.03em;color:var(--faint);margin:14px 0 0;font-size:12.5px;line-height:1.65}@media (max-width:430px){.ask-actions{flex-direction:column;align-items:stretch}.ask-actions button{width:100%}}.ziwei-chart{max-width:900px;margin-inline:auto}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f4ecd9;--muted:#a99778;--muted-2:#776c58;--obsidian:#050706;--deep-green:#07130f;--jade:#79bda7;--jade-dim:#79bda72e;--gold:#e5c55a;--gold-strong:#f0d56f;--gold-dim:#e5c55a2e;--bone:#efe3c7;--cinnabar:#b7492f;--line:#f0d56f2e;--line-soft:#efe3c71f;--shadow:0 30px 90px #0000006b;--display:"Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", "STSong", serif;--body:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html{background:var(--obsidian);text-rendering:geometricprecision;min-width:320px}body{background:var(--obsidian);min-width:320px;min-height:100vh;color:var(--ink);font-family:var(--body);margin:0;overflow-x:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}::selection{color:#fff7df;background:#e5c55a42}
#root{min-height:100vh}.app-shell{isolation:isolate;background:radial-gradient(circle at 55% 45%,#79bda71f,#0000 36%),linear-gradient(#07110e 0%,#050706 62%,#020303 100%);min-height:100vh;position:relative;overflow:hidden}.oracle-scene{z-index:1;position:fixed;inset:0}.oracle-scene canvas{width:100%;height:100%;animation:1.4s cubic-bezier(.23,1,.32,1) both scene-in;display:block}@keyframes scene-in{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.oracle-scene:after{content:"";pointer-events:none;background:linear-gradient(#0000 0% 52%,#0406059e 100%);position:absolute;inset:0}.phase-casting .oracle-scene:after,.phase-revealing .oracle-scene:after{background:radial-gradient(circle at 50% 46%,#f0d56f1a,#0000 20%),linear-gradient(#0000 0% 52%,#0406059e 100%)}.reveal-flash{z-index:2;content:"";opacity:0;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle at 50% 46%,#fff4ce8c,#f0d56f29 26%,#0000 52%);position:fixed;inset:0}.phase-result .reveal-flash{animation:.92s cubic-bezier(.16,1,.3,1) forwards reveal-burst}@keyframes reveal-burst{0%{opacity:0;transform:scale(.82)}18%{opacity:1}to{opacity:0;transform:scale(1.18)}}.constellation span{left:var(--x);top:var(--y);background:var(--jade);border-radius:50%;width:5px;height:5px;position:absolute;box-shadow:0 0 20px #79bda7b3}.constellation span:not(:last-child):after{content:"";transform-origin:0;background:#79bda73d;width:82px;height:1px;position:absolute;top:3px;left:3px;transform:rotate(18deg)}.scene-annotation{z-index:1;color:#e5c55a9e;font-family:var(--mono);letter-spacing:.22em;pointer-events:none;text-transform:uppercase;font-size:10px;position:absolute}.scene-annotation.north{top:16%;right:14%}.scene-annotation.season{color:#79bda785;bottom:26%;left:42%}.topbar{z-index:5;justify-content:space-between;align-items:center;gap:20px;padding:clamp(18px,2vw,30px) clamp(18px,3vw,44px);display:flex;position:relative}.brand{min-width:0;color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-back{width:34px;height:34px;color:var(--ink);cursor:pointer;background:#03050485;border:1px solid #efe3c729;border-radius:50%;place-items:center;transition:border-color .18s,background .18s;display:grid}.brand-back:hover{background:#e5c55a1f;border-color:#e5c55a80}.brand-mark{width:40px;height:40px;color:var(--gold);font-family:var(--display);border:1px solid #e5c55a6b;border-radius:50%;place-items:center;font-size:22px;display:grid;box-shadow:inset 0 0 20px #e5c55a1f}.phase-focusing .brand-mark,.phase-casting .brand-mark,.phase-revealing .brand-mark{animation:1.8s cubic-bezier(.23,1,.32,1) infinite seal-breathe}.brand strong{font-family:var(--display);letter-spacing:.08em;font-size:23px;font-weight:700;line-height:1;display:block}.brand em{color:#efe3c78a;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-top:5px;font-size:10px;font-style:normal;display:block}.top-actions{align-items:center;gap:10px;display:flex}.quiet-button,.bottom-note button,.panel-actions button,.question-form button{min-height:42px;color:var(--ink);cursor:pointer;background:#03050485;border:1px solid #efe3c729;border-radius:999px;justify-content:center;align-items:center;gap:8px;text-decoration:none;transition:transform .18s cubic-bezier(.23,1,.32,1),border-color .18s cubic-bezier(.23,1,.32,1),background .18s cubic-bezier(.23,1,.32,1),color .18s cubic-bezier(.23,1,.32,1);display:inline-flex}.quiet-button{white-space:nowrap;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:0 14px;font-size:13px}.quiet-button:hover,.bottom-note button:hover,.panel-actions button:hover,.question-form button:hover{background:#e5c55a1f;border-color:#e5c55a80;transform:translateY(-1px)}.hero-copy{z-index:3;pointer-events:none;max-width:680px;margin:clamp(38px,8vh,96px) 0 0 clamp(20px,4vw,58px);position:relative}.mono-label{color:var(--gold);font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;margin:0 0 14px;font-size:11px;font-weight:700}.hero-copy h1{font-family:var(--display);letter-spacing:.014em;filter:drop-shadow(0 18px 48px #0000008c);margin:0;font-size:clamp(33px,4.3vw,62px);font-weight:750;line-height:1.18}.hero-copy h1 span{white-space:nowrap;background:linear-gradient(176deg,#fff8e2 0%,#f4e6c0 52%,#d9b86a 100%);color:#0000;-webkit-background-clip:text;background-clip:text;display:block}.hero-copy h1 span:last-child{background-image:linear-gradient(176deg,#f3dea6 0%,#d9b86a 60%,#b78f3f 100%)}.mono-label:before{content:"";vertical-align:middle;background:linear-gradient(90deg, transparent, var(--gold));width:18px;height:1px;margin:0 9px 4px 0;display:inline-block}.hero-subtitle{color:#f4e6c0e0;letter-spacing:.04em;max-width:520px;margin:16px 0 0;font-size:clamp(15px,1.35vw,19px);line-height:1.7}.hero-copy p:last-child{color:#efe3c7b8;text-wrap:pretty;max-width:520px;margin:22px 0 0;font-size:clamp(15px,1.25vw,18px);line-height:1.9}.ritual-steps{z-index:4;gap:16px;display:grid;position:fixed;top:50%;left:clamp(22px,3.2vw,52px);transform:translateY(-50%)}.ritual-step{color:#efe3c794;grid-template-columns:42px 1fr;column-gap:12px;min-width:170px;display:grid;position:relative}.ritual-step:not(:last-child):after{content:"";background:linear-gradient(#e5c55a66,#79bda729);width:1px;height:28px;position:absolute;top:46px;left:20px}.ritual-step span{color:#e5c55ab8;width:42px;height:42px;font-family:var(--mono);letter-spacing:.08em;background:#04070694;border:1px solid #e5c55a40;border-radius:50%;grid-row:span 2;place-items:center;font-size:12px;display:grid;box-shadow:inset 0 0 20px #e5c55a14}.ritual-step strong{color:#efe3c7e0;font-family:var(--display);letter-spacing:.08em;align-self:end;font-size:18px;font-weight:700}.ritual-step em{color:#efe3c775;letter-spacing:.08em;font-size:12px;font-style:normal}.ritual-step.active span{color:var(--gold-strong);border-color:#e5c55ab3;box-shadow:0 0 28px #e5c55a3d,inset 0 0 18px #e5c55a2e}.ritual-step.done span{color:var(--jade);border-color:#79bda76b}.observatory-card,.ritual-console,.easter-dock,.result-panel,.bottom-note{z-index:4;box-shadow:var(--shadow), inset 0 1px 0 #fff8e212;-webkit-backdrop-filter:blur(22px)saturate(1.05);backdrop-filter:blur(22px)saturate(1.05);background:linear-gradient(#0a0e0c9e,#04060580);border:1px solid #efe3c721;position:relative}.observatory-card{border-radius:18px;width:min(300px,28vw);padding:20px;position:fixed;top:106px;right:clamp(20px,3vw,46px)}.readout-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.readout-row{background:#0000003d;border:1px solid #efe3c71a;border-radius:12px;flex-direction:column;gap:5px;padding:11px 12px;display:flex}.readout-row span{color:#efe3c780;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;font-size:10px}.readout-row strong{color:var(--ink);font-family:var(--display);letter-spacing:.04em;font-size:18px;font-weight:700}.readout-row strong.live{color:var(--gold-strong);text-shadow:0 0 18px #f0d56f66}.ritual-console{border-radius:22px;width:min(720px,100vw - 40px);padding:16px;position:fixed;bottom:clamp(26px,4vh,52px);left:50%;overflow:hidden;transform:translate(-50%)}.ritual-console:before{content:"";pointer-events:none;opacity:0;background:linear-gradient(105deg,#0000 0%,#f0d56f29 44%,#79bda72e 50%,#0000 58%);position:absolute;inset:0;transform:translate(-72%)}.phase-focusing .ritual-console:before,.phase-casting .ritual-console:before,.phase-revealing .ritual-console:before{animation:2.1s cubic-bezier(.23,1,.32,1) infinite console-scan}.method-switch{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid;position:relative}.method-switch button{color:#efe3c79e;cursor:pointer;text-align:center;background:#00000047;border:1px solid #efe3c71f;border-radius:16px;flex-direction:column;align-items:center;gap:3px;min-height:50px;padding:8px 6px;transition:border-color .22s,color .22s,background .22s,transform .22s;display:flex}.method-switch button strong{font-family:var(--display);letter-spacing:.04em;font-size:15px;font-weight:600}.method-switch button em{letter-spacing:.02em;color:#efe3c766;font-size:10px;font-style:normal}.method-switch button:hover:not(:disabled){color:var(--ink);border-color:#e5c55a66}.method-switch button.active{color:var(--gold-strong);background:linear-gradient(#e5c55a33,#c99c341a);border-color:#e5c55a9e}.method-switch button.active em{color:#e5c55ab8}.method-switch button:disabled{cursor:not-allowed;opacity:.5}.phase-rail{grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px;display:grid;position:relative}.phase-rail span{color:#efe3c773;border:1px solid #efe3c71c;border-radius:999px;justify-content:center;align-items:center;min-height:32px;font-size:12px;transition:border-color .22s,color .22s,background .22s;display:flex}.phase-rail .active{color:var(--gold-strong);background:#e5c55a24;border-color:#e5c55a9e}.phase-caption{color:#efe3c78f;min-height:22px;margin:10px 4px 0;font-size:12px;line-height:1.6}.method-panel{margin:12px 0 0}.manual-line-panel{background:#0000003d;border:1px solid #efe3c724;border-radius:16px;padding:8px 10px}.manual-line-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.manual-line-head .mono-label{margin:0}.manual-line-head strong{color:var(--gold-strong);font-family:var(--font-mono);letter-spacing:.12em;font-size:11px}.manual-line-grid{gap:4px;display:grid}.manual-line-row{grid-template-columns:38px minmax(0,1fr);align-items:center;gap:6px;display:grid}.manual-line-label{color:#efe3c7ad;white-space:nowrap;font-size:12px}.manual-line-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.manual-line-option{color:#efe3c7bd;background:#efe3c70f;border:1px solid #efe3c724;border-radius:999px;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:28px;font-size:11px;transition:border-color .18s,background .18s,color .18s,transform .18s;display:inline-flex}.manual-line-option em{color:#79bda7c7;font-family:var(--font-mono);font-size:9px;font-style:normal}.manual-line-option.active{color:var(--gold-strong);background:#e5c55a29;border-color:#e5c55aa3}.manual-line-option:disabled{cursor:wait;opacity:.64}.meihua-method-panel{background:#0000003d;border:1px solid #efe3c724;border-radius:16px;gap:8px;padding:8px 10px;display:grid}.meihua-method-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.meihua-method-button{color:#efe3c7b8;background:#efe3c70f;border:1px solid #efe3c724;border-radius:999px;min-width:0;min-height:34px;font-size:12px;transition:border-color .18s,background .18s,color .18s,transform .18s}.meihua-method-button.active{color:var(--gold-strong);background:#e5c55a29;border-color:#e5c55aa3}.meihua-method-button:disabled{cursor:wait;opacity:.64}.meihua-number-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.meihua-number-field{gap:5px;min-width:0;display:grid}.meihua-number-field span{color:#efe3c794;font-size:11px}.meihua-number-field input{width:100%;min-width:0;height:38px;color:var(--paper);font-family:var(--font-mono);text-align:center;background:#0000004d;border:1px solid #efe3c729;border-radius:999px;outline:none;font-size:14px}.meihua-number-field input:focus{border-color:#e5c55a8f;box-shadow:0 0 0 3px #e5c55a1a}.meihua-number-field input:disabled{cursor:wait;opacity:.64}.meihua-moment{text-align:center;background:#0000003d;border:1px solid #efe3c724;border-radius:14px;gap:3px;padding:9px 12px;display:grid}.meihua-moment-time{font-family:var(--mono);letter-spacing:.08em;font-variant-numeric:tabular-nums;color:#efe3c7e0;font-size:15px}.meihua-moment-hint{letter-spacing:.14em;color:var(--muted);font-size:11px;font-style:normal}.meihua-moment.frozen{background:#e5c55a14;border-color:#e5c55a66}.meihua-moment.frozen .meihua-moment-time{color:var(--gold-strong)}@media (prefers-reduced-motion:no-preference){.meihua-moment.frozen{animation:.7s meihua-moment-freeze}@keyframes meihua-moment-freeze{0%{box-shadow:0 0 #e5c55a00}35%{box-shadow:0 0 22px #e5c55a59}to{box-shadow:0 0 #e5c55a00}}}.question-form label{color:#efe3c794;margin:0 0 8px;font-size:12px;display:block}.input-row{grid-template-columns:1fr 136px;gap:10px;display:grid}.question-form input{width:100%;min-width:0;height:52px;color:var(--ink);background:#00000057;border:1px solid #efe3c729;border-radius:999px;outline:none;padding:0 22px;transition:border-color .18s,box-shadow .18s}.question-form input:focus{border-color:#e5c55a8f;box-shadow:0 0 0 4px #e5c55a1f}.question-form input::placeholder{color:#efe3c75c}.question-form button{color:#1b1306;background:linear-gradient(#f0d56f,#c99c34);border-color:#e5c55a94;min-width:0;height:52px;font-weight:700}.question-form button:disabled,.question-form input:disabled{cursor:wait;opacity:.72}.cast-button{isolation:isolate;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;overflow:visible}@property --charge{syntax:"<number>";inherits:false;initial-value:0}.cast-button.is-charging{transform:scale(.97);box-shadow:0 0 0 1px #f0d56f80,0 0 36px #f0d56f73}.cast-button.is-charging:after{z-index:-1;content:"";background:conic-gradient(from -90deg, var(--gold-strong) calc(var(--charge) * 1turn), #f0d56f24 0);border-radius:999px;animation:1s linear forwards charge-fill;position:absolute;inset:-5px;-webkit-mask:radial-gradient(closest-side,#0000 calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(closest-side,#0000 calc(100% - 3px),#000 calc(100% - 3px))}@keyframes charge-fill{0%{--charge:0}to{--charge:1}}.easter-dock{pointer-events:none;border-radius:18px;width:min(260px,24vw);padding:18px;position:fixed;bottom:clamp(26px,4vh,52px);left:clamp(18px,3vw,44px)}.hidden-gate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.hidden-gate-grid span{color:#c2f0dc94;background:#06131070;border:1px solid #79bda733;border-radius:14px;min-width:0;padding:10px;position:relative;overflow:hidden;box-shadow:inset 0 0 18px #79bda70a}.hidden-gate-grid span:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(#79bda74d,#0000 68%);height:70%;transition:opacity .24s cubic-bezier(.23,1,.32,1),transform .24s cubic-bezier(.23,1,.32,1);position:absolute;inset:auto -30% -40%;transform:translateY(18px)}.hidden-gate-grid span.active{color:#e2fff2f0;background:#1e4c4061;border-color:#79bda78f;box-shadow:0 0 28px #79bda71f,inset 0 0 24px #79bda71a}.hidden-gate-grid span.active:after{opacity:1;transform:translateY(0)}.hidden-gate-grid strong,.hidden-gate-grid em{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.hidden-gate-grid strong{font-size:12px;font-weight:650}.hidden-gate-grid em{color:#efe3c770;margin-top:4px;font-size:10px;font-style:normal}.result-panel{opacity:0;pointer-events:none;border-radius:24px;width:min(410px,100vw - 40px);max-height:calc(100vh - 164px);padding:24px;transition:opacity .26s,transform .26s;position:fixed;bottom:clamp(26px,4vh,52px);right:clamp(20px,3vw,46px);overflow:auto;transform:translate(26px)}.result-panel.visible{opacity:1;pointer-events:auto;transform:translate(0)}.result-panel h2{color:#fff3d4;font-family:var(--display);letter-spacing:0;margin:0 0 12px;font-size:30px;font-weight:700}.reading-summary,.empty-reading p{color:#efe3c7b8;text-wrap:pretty;margin:0;font-size:14px;line-height:1.8}.hexagram-pair{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 26px 1fr;align-items:center;gap:12px;margin:22px 0;padding:16px 0;display:grid}.hexagram-pair>div{justify-items:center;gap:7px;display:grid}.hexagram-pair i{color:#e5c55a8a;font-family:var(--display);text-align:center;font-style:normal}.hexagram-pair strong{color:var(--gold);font-family:var(--display);font-size:20px}.hexagram-pair span{color:#efe3c785;font-size:12px}.mini-lines{flex-direction:column;justify-content:space-between;width:76px;height:66px;display:flex}.mini-line{border-radius:999px;height:7px;display:block;position:relative}.mini-line.yang{background:var(--bone)}.mini-line.yin:before,.mini-line.yin:after{background:var(--bone);content:"";border-radius:999px;width:calc(50% - 6px);height:100%;position:absolute;top:0}.mini-line.yin:before{left:0}.mini-line.yin:after{right:0}.mini-line.changing,.mini-line.changing:before,.mini-line.changing:after{background:var(--cinnabar);box-shadow:0 0 16px #b7492f6b}.reading-block{margin-top:16px}.reading-block span{color:var(--gold);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-size:11px;display:block}.reading-block p{color:#efe3c7c2;margin:0;font-size:14px;line-height:1.8}.method-note{color:#efe3c780;margin:10px 0 0;font-size:12px;line-height:1.7}.yao-ladder{gap:6px;margin:0;padding:0;list-style:none;display:grid}.yao-ladder li{background:#0003;border-radius:10px;grid-template-columns:30px 46px 1fr;align-items:center;gap:12px;padding:6px 10px;display:grid}.yao-ladder li.changing{background:#b7492f24}.yao-ladder li strong{color:var(--gold);font-family:var(--display);font-size:14px}.yao-ladder li span{color:#efe3c799;font-size:12px}.yao-glyph{background:var(--bone);border-radius:999px;width:28px;height:6px;display:block;position:relative}.yao-glyph.yin{background:0 0}.yao-glyph.yin:before,.yao-glyph.yin:after{background:var(--bone);content:"";border-radius:999px;width:11px;height:100%;position:absolute;top:0}.yao-glyph.yin:before{left:0}.yao-glyph.yin:after{right:0}.yao-ladder li.changing .yao-glyph,.yao-ladder li.changing .yao-glyph:before,.yao-ladder li.changing .yao-glyph:after{background:var(--cinnabar);box-shadow:0 0 14px #b7492f66}.tiyong-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tiyong-grid>div{border:1px solid var(--line-soft);background:#0003;border-radius:14px;justify-items:center;gap:4px;padding:12px 8px;display:grid}.tiyong-grid i{color:var(--gold);font-size:26px;font-style:normal;line-height:1}.tiyong-grid strong{color:var(--gold);font-family:var(--display);font-size:15px}.tiyong-grid span{color:#efe3c78f;font-size:12px}.panel-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;display:grid}.panel-actions button{color:#181105;text-align:center;white-space:normal;background:#e5c55ae6;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-width:0;min-height:44px;padding:10px 14px;font-weight:700;line-height:1.2;display:inline-flex}.panel-actions .ghost{color:var(--ink);background:#00000038}.bottom-note{color:#efe3c794;border-radius:999px;align-items:center;gap:12px;padding:8px 8px 8px 16px;font-size:12px;display:inline-flex;position:fixed;top:auto;bottom:clamp(256px,22vh,308px);left:clamp(20px,3vw,46px)}.bottom-note button{min-height:34px;padding:0 12px;font-size:12px}.phase-focusing .ritual-console,.phase-casting .ritual-console,.phase-revealing .ritual-console{border-color:#e5c55a61}.phase-casting .scene-annotation.season,.phase-revealing .scene-annotation.season,.phase-result .scene-annotation.season{color:#e5c55ac7}@keyframes console-scan{0%{opacity:0;transform:translate(-72%)}22%{opacity:1}to{opacity:0;transform:translate(72%)}}@keyframes seal-breathe{0%,to{transform:scale(1);box-shadow:inset 0 0 20px #e5c55a1f}45%{transform:scale(1.055);box-shadow:0 0 34px #e5c55a33,inset 0 0 24px #e5c55a33}}@media (max-width:1100px){.observatory-card,.ritual-steps{display:none}.easter-dock{width:min(230px,28vw)}}@media (max-height:1040px){.ritual-steps{display:none}}@media (max-width:860px){.app-shell{min-height:100svh}.topbar{align-items:flex-start}.brand em{display:none}.top-actions{gap:8px}.quiet-button{min-height:38px;padding:0 11px;font-size:12px}.hero-copy{max-width:calc(100vw - 36px);margin-top:16px}.hero-copy h1{font-size:clamp(28px,8.5vw,56px)}.hero-copy p:last-child{max-width:88vw;font-size:14px;line-height:1.72}.scene-annotation,.constellation{display:none}.ritual-console{width:100%;max-width:100%;padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;bottom:0;left:0;right:0;transform:none}.method-switch{gap:6px;margin-bottom:10px}.method-switch button{min-height:46px;padding:6px 4px}.phase-rail{gap:5px}.phase-rail span{min-height:28px;font-size:11px}.input-row{grid-template-columns:1fr}.question-form input,.question-form button{height:48px}.easter-dock{left:18px;right:18px;bottom:calc(250px + env(safe-area-inset-bottom));width:auto;padding:12px 14px}.easter-dock .mono-label{margin-bottom:8px}.hidden-gate-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hidden-gate-grid span{padding:8px}.hidden-gate-grid em{display:none}.result-panel{width:100%;max-width:100%;max-height:86svh;padding:22px 18px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;bottom:0;left:0;right:0;transform:translateY(101%)}.result-panel.visible{transform:translateY(0)}.result-panel.visible~.bottom-note,.phase-result .easter-dock,.phase-result .ritual-console,.bottom-note{display:none}.panel-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:540px){.topbar{padding:14px}.brand-mark{width:36px;height:36px;font-size:20px}.brand strong{font-size:20px}.top-actions .quiet-button:last-child{display:none}.hero-copy{margin-left:16px}.hero-copy h1{font-size:clamp(24px,7.4vw,40px)}.hero-copy p:last-child{max-width:calc(100vw - 32px)}.hidden-gate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.method-switch button{min-height:40px}.method-switch button em{display:none}.hexagram-pair{gap:8px}.panel-actions{grid-template-columns:1fr}}.interpretation-error-notice{z-index:90;border:1px solid var(--line-soft);border-left:2px solid var(--cinnabar);max-width:calc(100vw - 32px);color:var(--ink);box-shadow:var(--shadow);background:#07130ff0;border-radius:12px;align-items:center;gap:10px;padding:11px 16px;font-size:13px;line-height:1.5;display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.interpretation-error-notice svg{color:var(--cinnabar);flex:none}.interpretation-error-notice span{flex:0 auto;min-width:0}.interpretation-error-notice button{border:1px solid var(--cinnabar);color:var(--ink);cursor:pointer;background:#b7492f29;border-radius:8px;flex:none;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;line-height:1.2;display:inline-flex}.interpretation-error-notice button:hover{background:#b7492f47}.birth-profile-notice{z-index:70;border:1px solid var(--line-soft);border-left:2px solid var(--gold);max-width:calc(100vw - 32px);color:var(--muted);box-shadow:var(--shadow);background:#07130ff0;border-radius:12px;align-items:center;gap:12px;margin:0;padding:10px 16px;font-size:12.5px;line-height:1.5;display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.birth-profile-notice__clear{color:var(--gold);cursor:pointer;background:0 0;border:1px solid #e5c55a59;border-radius:8px;flex:none;padding:6px 11px;font-size:12px;line-height:1.2}.birth-profile-notice__clear:hover{background:#e5c55a1a}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
.consent-overlay{box-sizing:border-box;z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050706eb;justify-content:center;align-items:center;width:100%;max-width:100vw;padding:24px;display:flex;position:fixed;inset:0}.consent-card{box-sizing:border-box;border:1px solid var(--line);background:var(--deep-green);width:100%;min-width:0;max-width:420px;max-height:calc(100dvh - 48px);box-shadow:var(--shadow);border-radius:14px;padding:28px;overflow-y:auto}.consent-title{font-family:var(--display);color:var(--ink);margin:0 0 12px;font-size:20px;font-weight:600}.consent-body{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.7}.consent-analytics-row{border:1px solid var(--line);background:#ffffff08;border-radius:8px;margin:0 0 20px;padding:12px 14px}.consent-analytics-body{color:var(--muted);opacity:.85;margin:0 0 10px;font-size:12px;line-height:1.6}.consent-analytics-label{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.consent-analytics-toggle{width:16px;height:16px;accent-color:var(--jade);cursor:pointer;flex-shrink:0}.consent-actions{flex-direction:column;gap:10px;display:flex}.consent-banner{z-index:999;border:1px solid var(--line);max-width:720px;box-shadow:var(--shadow);background:#07130ff5;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin:0 auto;padding:16px 20px;display:flex;position:fixed;bottom:16px;left:16px;right:16px}.consent-banner-text{color:var(--muted);flex:280px;margin:0;font-size:13px;line-height:1.6}.consent-banner-actions{gap:10px;display:flex}.consent-primary{border:1px solid var(--gold-dim);background:var(--gold-dim);color:var(--gold-strong);cursor:pointer;border-radius:999px;padding:10px 18px;font-size:14px;transition:background .2s,border-color .2s}.consent-primary:hover{background:#e5c55a47}.consent-quiet{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:10px 18px;font-size:14px;transition:color .2s,border-color .2s}.consent-quiet:hover{color:var(--ink);border-color:var(--line-soft)}.consent-link{color:var(--jade);text-underline-offset:2px;text-decoration:underline}.consent-reopen{z-index:998;border:1px solid var(--line);color:var(--muted);cursor:pointer;opacity:.7;background:#07130fd1;border-radius:999px;padding:6px 12px;font-size:11px;transition:opacity .2s,color .2s,border-color .2s;position:fixed;bottom:16px;left:16px}.consent-reopen:hover{opacity:1;color:var(--ink);border-color:var(--line-soft)}@media (max-width:540px){.consent-overlay{padding:16px}.consent-card{max-height:calc(100dvh - 32px);padding:20px}.consent-banner{flex-direction:column;align-items:stretch}.consent-banner-actions{justify-content:flex-end}}
