﻿:root{--ink:#11121a;--night:#1c2340;--navy:#262e52;--coral:#ff715b;--coral-soft:#ffb5a8;--violet:#9a8cff;--mist:#e8e9f0;--dim:#a5aac1;--line:rgba(232,233,240,.16);--paper:#f4f0e8;--paper-ink:#242331;--paper-muted:#777487;--serif:"Noto Serif SC","Songti SC",serif;--sans:"Space Grotesk","PingFang SC","Microsoft YaHei",sans-serif;--mono:"DM Mono",monospace;--ease-silk:cubic-bezier(.22,.68,.24,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--mist);background:var(--ink);font-family:var(--sans);overflow-x:hidden}button,input,textarea{font:inherit}button{cursor:pointer}.shell{width:min(1180px,calc(100% - 64px));margin-inline:auto}#particle-field{position:fixed;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:.88}.site-noise{position:fixed;inset:0;z-index:10;opacity:.045;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{display:inline-flex;align-items:center;gap:9px;color:inherit;text-decoration:none;font-size:14px;font-weight:700;letter-spacing:-.04em}.brand-signal{display:inline-block;width:17px;height:12px;background:linear-gradient(135deg,var(--coral) 0 40%,transparent 40% 50%,var(--violet) 50%);clip-path:polygon(0 55%,38% 55%,38% 0,100% 0,100% 45%,62% 45%,62% 100%,0 100%)}.topbar p{margin:0;color:var(--dim);font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase}.live-dot{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#9ee8be;box-shadow:0 0 0 5px rgba(158,232,190,.1)}
.hero{display:grid;grid-template-columns:.92fr 1.08fr;gap:38px;min-height:624px;align-items:center;padding:65px 0 88px}.mono-label{margin:0;color:var(--dim);font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase}.mono-label span{color:var(--coral);margin-right:11px}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.075em;font-weight:500;line-height:1.06}h1{max-width:620px;margin:26px 0 25px;font-size:clamp(49px,6.4vw,83px)}h1 em,h2 em{color:var(--coral-soft);font-family:var(--serif);font-style:normal;letter-spacing:-.1em}.hero-lede{max-width:435px;margin:0;color:#c2c6d4;font-size:15px;line-height:1.85}.hero-actions{display:flex;align-items:center;gap:23px;margin-top:36px}.signal-button,.dark-button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:16px 19px;border:0;color:var(--ink);background:var(--coral);text-decoration:none;font-size:12px;font-weight:700;box-shadow:0 12px 30px rgba(255,113,91,.18);transition:transform .22s,box-shadow .22s,background .22s}.signal-button:hover,.dark-button:hover{transform:translateY(-3px);box-shadow:0 17px 34px rgba(255,113,91,.26)}.signal-button span,.dark-button span{font-size:16px}.signal-button:disabled{cursor:not-allowed;opacity:.42;box-shadow:none}.hero-note{color:#868ca6;font:9px var(--mono);letter-spacing:.08em}
.hero-utility{max-width:460px;margin:14px 0 0;color:#8e98be;font:10px/1.7 var(--mono)}.demo-button{display:inline-flex;align-items:center;gap:10px;padding:14px 2px;color:#c8d6ff;border:0;border-bottom:1px solid rgba(181,203,255,.43);background:transparent;font:10px var(--mono);letter-spacing:.04em;transition:color .2s,transform .2s}.demo-button:hover{color:#fff;transform:translateY(-2px)}.demo-button span{font-size:15px}
.signal-stage{height:470px;position:relative;display:grid;place-items:center;isolation:isolate}.hero-hud{position:absolute;z-index:4;left:5%;bottom:4%;display:flex;align-items:center;gap:8px;padding:8px 10px;color:rgba(219,226,255,.72);border:1px solid rgba(155,170,255,.2);background:rgba(12,16,37,.35);backdrop-filter:blur(9px);font:8px var(--mono);letter-spacing:.11em}.hero-hud i{width:18px;height:1px;background:linear-gradient(90deg,var(--violet),var(--coral))}.field-glow{position:absolute;width:365px;height:365px;border-radius:50%;background:radial-gradient(circle,rgba(154,140,255,.2),rgba(255,113,91,.06) 40%,transparent 70%);filter:blur(5px);animation:glow-breathe 5s ease-in-out infinite}.signal-stage svg{width:min(100%,620px);overflow:visible;position:relative;z-index:1}.field-grid{fill:none;stroke:rgba(232,233,240,.1);stroke-width:1}.field-grid path{stroke-dasharray:3 8}.signal-trail{fill:none;stroke-width:12;opacity:.08;filter:url(#soft-glow)}.signal-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-dasharray:760;stroke-dashoffset:760;animation:draw-line 2.3s cubic-bezier(.55,0,.2,1) forwards}.coral-line{stroke:url(#coral-line)}.violet-line{stroke:url(#violet-line);animation-delay:.35s}.node{transform-origin:center;stroke:var(--ink);stroke-width:4}.coral-node{fill:var(--coral);animation:node-pulse 2.6s ease-in-out infinite}.violet-node{fill:var(--violet);animation:node-pulse 2.6s .75s ease-in-out infinite}.node-large{filter:url(#soft-glow)}.specimen-card{position:absolute;z-index:3;width:142px;padding:14px 15px 13px;color:var(--mist);border:1px solid rgba(232,233,240,.19);background:rgba(28,35,64,.75);backdrop-filter:blur(10px);box-shadow:0 16px 32px rgba(0,0,0,.15);animation:drift 5s ease-in-out infinite}.specimen-card span,.field-readout span{color:var(--dim);font:8px var(--mono);letter-spacing:.13em}.specimen-card p{margin:10px 0 9px;font:14px var(--serif);letter-spacing:-.04em}.specimen-card i{display:block;width:36px;height:2px;background:var(--coral)}.specimen-two{right:1%;bottom:10%;animation-delay:-2.4s}.specimen-two i{margin-left:auto;background:var(--violet)}.specimen-one{left:2%;top:14%}.field-readout{position:absolute;z-index:3;right:10%;top:13%;padding:11px 13px;border-left:1px solid var(--coral)}.field-readout strong{display:block;margin:3px 0;color:#fff;font:27px var(--serif);letter-spacing:-.08em}.field-readout small{color:var(--dim);font:8px var(--mono)}
.intake{padding:96px 0 112px;border-top:1px solid var(--line)}.section-head,.report-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:40px}.section-head h2,.report-head h2{max-width:640px;margin:22px 0 0;font-size:clamp(38px,5vw,65px)}.section-head>p{max-width:224px;margin:0 0 8px;color:var(--dim);font-size:12px;line-height:1.75}.context-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.context-card{min-height:122px;padding:16px;text-align:left;color:var(--mist);background:rgba(255,255,255,.025);border:1px solid var(--line);transition:background .22s,transform .22s,border .22s}.context-card:hover{transform:translateY(-3px);border-color:rgba(232,233,240,.35)}.context-card.active{background:linear-gradient(135deg,rgba(255,113,91,.18),rgba(154,140,255,.14));border-color:rgba(255,181,168,.62)}.context-card span{display:block;margin-bottom:23px;color:var(--coral);font:10px var(--mono)}.context-card strong{display:block;font-size:14px}.context-card small{display:block;margin-top:5px;color:var(--dim);font-size:10px}
.input-station{position:relative;min-height:350px;padding:20px 23px 19px;overflow:hidden;border:1px solid rgba(232,233,240,.2);background:linear-gradient(125deg,rgba(28,35,64,.86),rgba(23,25,43,.88));box-shadow:inset 0 1px rgba(255,255,255,.04),0 30px 80px rgba(0,0,0,.14)}.input-station::before{content:"";position:absolute;width:500px;height:500px;right:-190px;top:-390px;border:1px solid rgba(154,140,255,.22);border-radius:50%;pointer-events:none}.station-topline{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;color:var(--dim);font:9px var(--mono);letter-spacing:.1em}.station-title{color:var(--mist)}#scan-status{color:#aeb3cb;text-transform:uppercase}.input-tabs{position:relative;z-index:1;display:flex;width:min(440px,100%);gap:4px;padding:4px;border:1px solid rgba(232,233,240,.14);background:rgba(8,10,19,.22)}.input-tab{flex:1;padding:9px 8px;color:var(--dim);border:0;background:transparent;font-size:11px;transition:background .2s,color .2s}.input-tab.active{color:var(--ink);background:var(--mist)}.input-mode[hidden]{display:none!important}.input-mode.active{position:relative;z-index:1;display:flex;flex-direction:column;min-height:224px;padding-top:28px}.input-mode>label:not(.dropzone){margin-bottom:14px;color:var(--mist);font:18px var(--serif)}#chat-input{width:100%;min-height:122px;flex:1;padding:0;color:var(--mist);resize:none;outline:0;border:0;background:transparent;font:13px/1.95 var(--sans)}#chat-input::placeholder{color:#727a9a}.station-footer{display:flex;justify-content:space-between;align-items:center;padding-top:13px;border-top:1px solid rgba(232,233,240,.13);color:var(--dim);font:9px var(--mono)}.station-footer>div{display:flex;gap:17px}.utility-link{padding:0;color:var(--coral-soft);background:none;border:0;font:9px var(--mono);cursor:pointer}.utility-link input,.dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.dropzone{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:172px;padding:22px;color:var(--mist);text-align:center;border:1px dashed rgba(255,181,168,.5);background:linear-gradient(120deg,rgba(255,113,91,.06),rgba(154,140,255,.08));cursor:pointer;transition:transform .2s,border-color .2s,background .2s}.dropzone:hover{transform:translateY(-2px);border-color:var(--coral);background:linear-gradient(120deg,rgba(255,113,91,.13),rgba(154,140,255,.13))}.drop-icon{margin-bottom:9px;color:var(--coral);font:29px var(--serif)}.dropzone strong{font:18px var(--serif)}.dropzone small{margin-top:8px;color:var(--dim);font-size:10px}.image-preview{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin-top:10px}.image-preview:empty{display:none}.image-preview figure{height:54px;position:relative;margin:0;overflow:hidden;border:1px solid rgba(232,233,240,.16)}.image-preview img{width:100%;height:100%;object-fit:cover}.image-preview figcaption{position:absolute;right:3px;bottom:3px;padding:2px 4px;background:var(--ink);color:var(--mist);font:8px var(--mono)}.file-list{display:flex;flex-wrap:wrap;align-content:start;gap:7px;margin-top:11px;color:var(--dim);font:9px var(--mono)}.file-pill{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:7px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--mist);background:rgba(232,233,240,.08);border:1px solid rgba(232,233,240,.12)}.file-pill i{color:#a3efca;font-style:normal}.scan-line{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:linear-gradient(180deg,transparent 47%,rgba(255,113,91,.38) 49%,rgba(255,181,168,.78) 50%,rgba(255,113,91,.38) 51%,transparent 53%)}.input-station.scanning .scan-line{opacity:1;animation:scan 1.25s ease-in-out 2}.input-station.scanning::after{content:"";position:absolute;inset:0;border:1px solid var(--coral);animation:scan-flash 1.25s ease-out 2}.action-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:19px}.action-row p{margin:0;color:var(--dim);font:9px var(--mono)}.action-row p span{margin-right:7px;color:#a3efca;font-size:14px}
.analysis-stage{background:#171a2d;border-top:1px solid rgba(232,233,240,.12);border-bottom:1px solid rgba(232,233,240,.12)}.analysis-shell{display:grid;grid-template-columns:1fr 1fr .8fr;align-items:center;gap:45px;min-height:520px;padding:72px 0}.analysis-copy h2{margin:22px 0 15px;font-size:clamp(37px,4.5vw,59px)}.analysis-copy>p:last-child{color:var(--dim);font-size:13px}.analysis-radar{height:290px;position:relative;display:grid;place-items:center}.radar-rings i{position:absolute;inset:26px;border:1px solid rgba(232,233,240,.13);border-radius:50%;animation:radar 3s linear infinite}.radar-rings i:nth-child(2){inset:55px;animation-delay:.5s}.radar-rings i:nth-child(3){inset:84px;animation-delay:1s}.radar-rings i:nth-child(4){inset:113px;animation-delay:1.5s}.analysis-radar svg{position:absolute;width:100%;height:100%;overflow:visible}.analysis-path{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:520}.analysis-stage:not(.hidden) .analysis-path{animation:draw-line 1.4s cubic-bezier(.55,0,.2,1) forwards}.path-one{stroke:var(--coral)}.path-two{stroke:var(--violet);animation-delay:.3s!important}.radar-core{position:relative;z-index:2;display:grid;place-items:center;width:74px;height:74px;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--coral),var(--violet));font:27px var(--serif);box-shadow:0 0 0 12px rgba(255,113,91,.06),0 0 45px rgba(154,140,255,.28)}.analysis-steps{display:grid;gap:17px}.analysis-step{display:grid;grid-template-columns:29px 1fr 8px;gap:12px;align-items:center;color:#747c9b;font-size:11px;transition:color .35s}.analysis-step span{font:9px var(--mono)}.analysis-step p{margin:0}.analysis-step i{width:7px;height:7px;border:1px solid currentColor;border-radius:50%}.analysis-step.active,.analysis-step.done{color:var(--mist)}.analysis-step.active i{background:var(--coral);border-color:var(--coral);box-shadow:0 0 0 5px rgba(255,113,91,.15)}
.report-section{color:var(--paper-ink);background:var(--paper);border-top:1px solid #d7d1c6}.report-shell{padding:88px 0 94px}.report-head{margin-bottom:41px}.report-head h2{color:var(--paper-ink)}.report-head h2 em{color:#bf5146}.report-head .mono-label{color:#8b8794}.report-head>p{margin:0 0 5px;color:#bf5146;font:9px var(--mono);letter-spacing:.08em}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.paper-card{min-height:245px;padding:26px 27px;border:1px solid #d7d1c6;background:#faf8f2;box-shadow:0 16px 33px rgba(53,45,60,.045);opacity:0;transform:translateY(17px);transition:opacity .6s,transform .6s}.report-section.reveal .paper-card{opacity:1;transform:none}.report-section.reveal .paper-card:nth-child(2){transition-delay:.09s}.report-section.reveal .paper-card:nth-child(3){transition-delay:.18s}.report-section.reveal .paper-card:nth-child(4){transition-delay:.27s}.card-label{margin:0;color:#8e8998;font:9px var(--mono);letter-spacing:.11em}.score-orbit{display:flex;align-items:center;gap:21px;margin:20px 0 9px}.score-orbit svg{width:128px;height:128px;transform:rotate(-90deg)}.score-orbit circle{fill:none;stroke:#e5ded3;stroke-width:8}.score-orbit #score-ring{stroke:var(--coral);stroke-linecap:round;stroke-dasharray:452.4;stroke-dashoffset:452.4;transition:stroke-dashoffset 1.35s cubic-bezier(.2,.8,.25,1)}.report-section.reveal #score-ring{stroke-dashoffset:172}.score-orbit div{display:flex;align-items:baseline}.score-orbit strong{color:#bf5146;font:57px/.8 var(--serif);letter-spacing:-.1em}.score-orbit span{color:#878290;font:10px var(--mono)}.score-card>p:last-child{max-width:340px;margin:0;color:#625e6d;font-size:11px;line-height:1.75}.card-top{display:flex;align-items:center;justify-content:space-between}.card-top>span{color:#bf5146;font:10px var(--mono)}.pattern-card{color:var(--mist);background:var(--night);border-color:var(--night)}.pattern-card .card-label{color:#aab0c9}.pattern-card h3{max-width:395px;margin:39px 0 25px;font:24px/1.5 var(--serif);letter-spacing:-.06em}.pattern-card>p{max-width:365px;margin:0;color:#c1c5d4;font-size:11px;line-height:1.7}.pattern-line{display:flex;gap:7px;align-items:end;height:22px;margin-top:21px}.pattern-line i{width:20px;background:var(--coral);height:7px}.pattern-line i:nth-child(2){height:19px;background:var(--violet)}.pattern-line i:nth-child(3){height:11px;background:#c7ccde}.signals-card #signal-list{display:grid;gap:16px;margin-top:38px}.signal-item{display:grid;grid-template-columns:9px 1fr auto;gap:10px;align-items:center;color:#605c69;font-size:11px}.signal-item i{width:7px;height:7px;border-radius:50%;background:var(--coral)}.signal-item:nth-child(2) i{background:var(--violet)}.signal-item:nth-child(3) i{background:#9aa89b}.signal-item p{margin:0}.signal-item b{color:#bf5146;font:10px var(--mono)}.quote-card{position:relative;display:flex;flex-direction:column;justify-content:center;padding-left:62px;background:#f8ddd5}.quote-card>span{position:absolute;top:22px;left:24px;color:#bf5146;font:75px/.7 var(--serif)}.quote-card p{max-width:365px;margin:0 0 20px;font:23px/1.48 var(--serif);letter-spacing:-.06em}.quote-card small{color:#bf5146;font:8px var(--mono);letter-spacing:.08em}.full-reading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-top:10px;padding:31px 29px;background:#ded9d0}.full-reading h3{margin:17px 0 12px;font:26px/1.37 var(--serif);letter-spacing:-.06em}.full-reading p:last-child{max-width:405px;margin:0;color:#716c78;font-size:11px;line-height:1.7}.dark-button{flex:0 0 auto;color:var(--mist);background:var(--ink);box-shadow:none}.reset-button{display:block;margin:25px 0 0 auto;padding:0;color:#bf5146;border:0;background:none;font:10px var(--mono)}.footer{display:grid;grid-template-columns:1fr 1.6fr auto;gap:30px;padding:28px 0 38px;color:#9298ae;border-top:1px solid var(--line);font-size:10px}.footer p{max-width:340px;margin:0;line-height:1.65}.footer small{font:9px var(--mono)}
.toast{position:fixed;z-index:40;bottom:24px;left:50%;max-width:calc(100% - 40px);padding:13px 17px;color:var(--ink);background:var(--mist);transform:translate(-50%,140%);opacity:0;transition:transform .3s,opacity .3s;font-size:12px;box-shadow:0 18px 40px rgba(0,0,0,.26)}.toast.show{transform:translate(-50%,0);opacity:1}.hidden{display:none!important}
@keyframes draw-line{to{stroke-dashoffset:0}}@keyframes glow-breathe{0%,100%{transform:scale(.9);opacity:.65}50%{transform:scale(1.1);opacity:1}}@keyframes node-pulse{0%,100%{transform:scale(.8);opacity:.75}50%{transform:scale(1.25);opacity:1}}@keyframes drift{0%,100%{transform:translateY(-4px) rotate(-2deg)}50%{transform:translateY(5px) rotate(1deg)}}@keyframes scan{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}@keyframes scan-flash{0%,100%{opacity:0}20%,65%{opacity:1}}@keyframes radar{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.17);opacity:0}}@keyframes radar-sweep{to{transform:rotate(360deg)}}@keyframes radar-lock{0%,100%{opacity:.48;transform:scale(.82)}55%{opacity:1;transform:scale(1.22)}}
@media(max-width:800px){.shell{width:min(100% - 36px,620px)}.topbar{height:64px}.topbar p{font-size:8px}.hero{grid-template-columns:1fr;gap:0;min-height:0;padding:61px 0 77px}.hero-copy{position:relative;z-index:2}.hero-lede{font-size:14px}.hero-actions{margin-top:30px}.hero-note{display:none}.signal-stage{height:389px;margin-top:10px}.specimen-card{width:123px;padding:11px}.specimen-card p{font-size:12px}.specimen-one{left:0;top:12%}.specimen-two{right:0;bottom:4%}.field-readout{right:7%;top:11%}.intake{padding:70px 0 76px}.section-head,.report-head{display:block;margin-bottom:30px}.section-head>p{max-width:295px;margin-top:18px}.context-rail{grid-template-columns:repeat(2,1fr)}.context-card{min-height:107px}.context-card span{margin-bottom:18px}.input-station{padding:18px 16px}.station-topline{font-size:8px}.input-mode.active{min-height:230px}.station-footer>div{gap:11px}.action-row{display:block}.action-row p{margin-bottom:15px;line-height:1.6}.signal-button{width:100%}.analysis-shell{grid-template-columns:1fr;gap:22px;min-height:0;padding:68px 0}.analysis-copy{text-align:center}.analysis-radar{order:-1;height:245px}.analysis-steps{max-width:330px;margin:auto;width:100%}.report-shell{padding:69px 0 73px}.report-head>p{margin-top:22px}.report-grid{grid-template-columns:1fr}.paper-card{min-height:220px;padding:23px}.full-reading{display:block;padding:25px}.full-reading h3{font-size:24px}.dark-button{width:100%;margin-top:22px}.footer{grid-template-columns:1fr auto;gap:16px}.footer p{grid-column:1/-1;grid-row:2}.image-preview{grid-template-columns:repeat(6,1fr)}}
@media(max-width:420px){.hero-actions{display:block}.hero-actions .signal-button{width:auto}.input-tab{font-size:10px}.station-footer{align-items:flex-start}.station-footer>div{flex-direction:column;align-items:flex-end;gap:6px}.image-preview figure{height:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-noise,.field-glow{animation:none}.signal-line,.analysis-stage:not(.hidden) .analysis-path{stroke-dashoffset:0;animation:none}.node,.specimen-card,.radar-rings i{animation:none}.scan-line,.input-station.scanning::after{animation:none!important}.paper-card,.score-orbit #score-ring{transition-duration:.01ms!important}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Relationship inference: a tentative reading, never a verdict. */
.context-rail{grid-template-columns:repeat(5,1fr)}
.context-card.inference-context{background:linear-gradient(135deg,rgba(154,140,255,.12),rgba(255,113,91,.08))}
.context-card.inference-context span{color:var(--violet);font:20px/1 var(--serif)}
.inference-card{position:relative;display:grid;grid-template-columns:1fr 1.4fr auto;gap:22px;align-items:center;min-height:190px;grid-column:1/-1;overflow:hidden;background:linear-gradient(112deg,#f6edf0,#faf8f2 52%,#ede9fb)}
.inference-card::after{content:"?";position:absolute;right:31px;top:18px;color:rgba(154,140,255,.13);font:118px/.8 var(--serif);pointer-events:none}
.inference-card .card-top{display:block;position:relative;z-index:1}.inference-card .card-top>span{display:block;margin-top:12px;color:#735ed8;font:36px/.9 var(--serif);letter-spacing:-.08em}
.inference-lede{position:relative;z-index:1;margin:0;color:#353143;font:20px/1.48 var(--serif);letter-spacing:-.055em}.inference-lede strong{color:#c45248;font-weight:600}
.inference-evidence{position:relative;z-index:1;display:grid;gap:7px;align-content:center;min-width:220px}.inference-evidence p{margin:0;color:#6b6674;font-size:10px;line-height:1.55}.inference-evidence p::before{content:"路";margin-right:7px;color:#735ed8;font-weight:700}
.inference-disclaimer{position:absolute;z-index:1;left:27px;bottom:21px;margin:0;color:#918b98;font:8px var(--mono)}
.inference-actions{position:absolute;z-index:2;right:28px;bottom:19px;display:flex;gap:7px}.inference-actions button{padding:6px 8px;color:#625b70;border:1px solid #d5cedf;background:rgba(255,255,255,.58);font:8px var(--mono);transition:color .2s,border .2s,transform .2s}.inference-actions button:hover{transform:translateY(-2px);color:#c45248;border-color:#c45248}
@media(max-width:800px){.context-rail{grid-template-columns:repeat(2,1fr)}.context-card.inference-context{grid-column:1/-1;min-height:88px}.context-card.inference-context span{margin-bottom:10px}.inference-card{display:block;min-height:294px;padding-bottom:68px}.inference-card .card-top{display:flex}.inference-card .card-top>span{margin:0;font-size:30px}.inference-lede{margin-top:24px}.inference-evidence{margin-top:15px;min-width:0}.inference-disclaimer{left:23px;bottom:20px}.inference-actions{right:22px;bottom:17px}.inference-card::after{right:18px;font-size:96px}}

/* Holographic scan layers: visual-only, with the original reading flow kept intact. */
.analysis-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(84,104,214,.16),transparent 31%),linear-gradient(135deg,#0b1023,#11162e 54%,#130f2d)}
.analysis-stage::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(139,157,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(139,157,255,.08) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,transparent,black 24%,black 76%,transparent)}
.analysis-shell{position:relative;z-index:1}
.analysis-radar{isolation:isolate;filter:drop-shadow(0 0 26px rgba(119,141,255,.22))}
.analysis-radar::before{content:"";position:absolute;inset:7px;border-radius:50%;z-index:0;border:1px solid rgba(122,148,255,.22);background:radial-gradient(circle,rgba(123,143,255,.15),rgba(83,99,202,.06) 42%,transparent 68%);box-shadow:inset 0 0 55px rgba(118,143,255,.1),0 0 70px rgba(107,86,236,.11)}
.radar-sweep{position:absolute;z-index:1;inset:7px;border-radius:50%;background:conic-gradient(from 0deg,rgba(118,207,255,.38),rgba(125,151,255,.13) 11deg,transparent 48deg,transparent 360deg);clip-path:polygon(50% 50%,100% 0,100% 50%);transform-origin:50% 50%}
.analysis-stage.is-reading .radar-sweep{animation:radar-sweep 2.7s linear infinite}
.radar-crosshair{position:absolute;z-index:2;inset:22px;border-radius:50%;border:1px dashed rgba(188,198,255,.18)}
.radar-crosshair::before,.radar-crosshair::after{content:"";position:absolute;left:50%;top:0;width:1px;height:100%;background:linear-gradient(transparent,rgba(178,191,255,.36),transparent)}
.radar-crosshair::after{transform:rotate(90deg)}
.radar-node{position:absolute;z-index:4;width:8px;height:8px;border-radius:50%;background:#b6dcff;box-shadow:0 0 0 5px rgba(122,188,255,.09),0 0 18px rgba(130,187,255,.9);animation:radar-lock 2.2s ease-in-out infinite}
.node-a{top:25%;left:29%;animation-delay:.1s}.node-b{top:34%;right:19%;width:6px;height:6px;background:#bc9dff;animation-delay:.6s}.node-c{bottom:26%;left:23%;width:5px;height:5px;animation-delay:1s}.node-d{right:30%;bottom:19%;width:7px;height:7px;background:#d3b2ff;animation-delay:1.4s}.node-e{top:15%;left:50%;width:5px;height:5px;animation-delay:1.7s}
.analysis-radar .radar-rings{position:absolute;z-index:2;inset:0}.analysis-radar svg{z-index:3}.radar-core{z-index:5;border:1px solid rgba(232,240,255,.5);background:radial-gradient(circle at 32% 25%,#d6edff,#7587ef 48%,#5a45b7);box-shadow:0 0 0 12px rgba(99,121,255,.08),0 0 45px rgba(131,153,255,.44)}
@media(max-width:800px){.hero-hud{left:0;bottom:2%}.analysis-stage::before{background-size:30px 30px}.analysis-radar::before,.radar-sweep{inset:17px}.radar-crosshair{inset:31px}}
@media(prefers-reduced-motion:reduce){.radar-sweep,.radar-node{animation:none!important}.radar-sweep{opacity:.35}}

/* The result is an instrument readout rather than a paper report. */
.report-section{position:relative;overflow:hidden;color:#e9edff;background:radial-gradient(circle at 78% 13%,rgba(131,93,255,.24),transparent 25%),radial-gradient(circle at 10% 76%,rgba(74,164,255,.16),transparent 24%),linear-gradient(145deg,#090d1d,#10152a 52%,#120d28);border-top-color:rgba(170,185,255,.18)}
.report-section::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(159,177,255,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(159,177,255,.075) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent)}
.report-shell{position:relative;z-index:1}.report-head h2{color:#f0f3ff;text-shadow:0 0 26px rgba(190,190,255,.14)}.report-head h2 em{color:#c7b3ff}.report-head .mono-label{color:#aeb9e1}.report-head>p{color:#9dcfff}
.paper-card{position:relative;overflow:hidden;color:#e9edff;border-color:rgba(177,191,255,.19);background:linear-gradient(132deg,rgba(30,38,72,.72),rgba(14,19,40,.77));box-shadow:inset 0 1px rgba(255,255,255,.09),0 22px 46px rgba(0,0,0,.2);backdrop-filter:blur(14px)}
.paper-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(193,209,255,.12),transparent 28%,transparent 72%,rgba(157,112,255,.08));opacity:.75}.paper-card>*{position:relative;z-index:1}.card-label{color:#b6c0eb}.card-top>span{color:#b8ccff}.score-orbit circle{stroke:rgba(174,190,255,.13)}.score-orbit #score-ring{stroke:#98c9ff;filter:drop-shadow(0 0 5px rgba(152,201,255,.65))}.score-orbit strong{color:#eaf0ff;text-shadow:0 0 21px rgba(143,181,255,.4)}.score-card>p:last-child,.pattern-card>p,.signal-item{color:#c6cee8}.pattern-card{background:linear-gradient(135deg,rgba(35,25,74,.9),rgba(20,26,58,.86));border-color:rgba(188,151,255,.25)}.pattern-card .card-label{color:#c4c9ef}.pattern-line i{background:#98c9ff;box-shadow:0 0 12px rgba(152,201,255,.35)}.pattern-line i:nth-child(2){background:#b79bff}.pattern-line i:nth-child(3){background:#f5c58d}.signal-item b{color:#9ed4ff}.signals-card #signal-list{position:relative}.quote-card{background:linear-gradient(135deg,rgba(75,44,109,.78),rgba(24,36,75,.84));border-color:rgba(189,167,255,.29)}.quote-card>span,.quote-card small{color:#b8c8ff}.quote-card p{color:#eff1ff}.inference-card{background:linear-gradient(118deg,rgba(49,45,105,.82),rgba(23,34,70,.84) 54%,rgba(49,25,83,.8));border-color:rgba(190,181,255,.32)}.inference-card::after{color:rgba(206,204,255,.1)}.inference-card .card-top>span{color:#b8d7ff}.inference-lede{color:#edf0ff}.inference-lede strong{color:#d4bdff;text-shadow:0 0 18px rgba(212,189,255,.35)}.inference-evidence p{color:#cbd2e9}.inference-evidence p::before{color:#9fd5ff}.inference-disclaimer{color:#9da8cf}.inference-actions button{color:#cbd4ef;border-color:rgba(190,202,255,.25);background:rgba(10,16,42,.45)}.inference-actions button:hover{color:#fff;border-color:#a7d6ff}.full-reading{position:relative;overflow:hidden;color:#edf1ff;border:1px solid rgba(183,199,255,.2);background:linear-gradient(120deg,rgba(22,31,66,.88),rgba(44,27,86,.8));box-shadow:inset 0 1px rgba(255,255,255,.09),0 22px 46px rgba(0,0,0,.16)}.full-reading::after{content:"";position:absolute;width:440px;height:440px;right:-210px;top:-300px;border:1px solid rgba(174,198,255,.18);border-radius:50%;box-shadow:0 0 70px rgba(117,112,255,.12)}.full-reading>*{position:relative;z-index:1}.full-reading p:last-child{color:#c7cde6}.dark-button{color:#10162e;background:linear-gradient(90deg,#a4d4ff,#c6b0ff);box-shadow:0 12px 28px rgba(137,163,255,.18)}.reset-button{color:#b9d7ff}
@media(prefers-reduced-motion:reduce){.report-section.reveal .paper-card{opacity:1;transform:none}}

/* Recording moment: the observatory opens into a single, legible analysis scene. */
.demo-reading #particle-field{opacity:1;filter:brightness(1.45) saturate(1.25)}
.analysis-stage{min-height:min(720px,100svh);display:grid;align-items:center}.analysis-shell{min-height:min(720px,100svh)}.analysis-radar{height:340px}.analysis-radar::after{content:"";position:absolute;z-index:1;inset:-38px;border-radius:50%;border:1px solid rgba(144,176,255,.1);box-shadow:0 0 90px rgba(103,133,255,.13);pointer-events:none}.analysis-radar #analysis-waveform{position:absolute;z-index:6;bottom:23px;left:9%;width:82%;height:72px;overflow:visible}.analysis-radar #analysis-waveform path{fill:none;stroke:#b4d7ff;stroke-width:2;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:520;filter:drop-shadow(0 0 6px rgba(163,209,255,.65))}.analysis-stage.is-reading #analysis-waveform path{animation:draw-line 1.15s .3s cubic-bezier(.55,0,.2,1) forwards}.analysis-radar #analysis-waveform circle{fill:#f4c88c;filter:drop-shadow(0 0 8px rgba(255,205,143,.95));animation:wave-beacon 1.45s ease-in-out infinite}.analysis-log{display:grid;gap:7px;margin-bottom:17px;padding:13px 12px;border:1px solid rgba(169,190,255,.14);background:rgba(5,9,24,.28);box-shadow:inset 0 1px rgba(255,255,255,.05)}.analysis-log-line{margin:0;color:#626d9b;font:9px/1.55 var(--mono);letter-spacing:.03em;transition:opacity .3s,color .3s,transform .3s}.analysis-log-line span{margin-right:6px;color:#a4c8ff}.analysis-log-line.active{color:#dce9ff;transform:translateX(3px);text-shadow:0 0 13px rgba(164,200,255,.35)}.analysis-log-line.done{color:#8aa7cf}.analysis-log-line.done span{color:#9ce9be}.analysis-stage.is-reading .analysis-radar{animation:radar-enter .75s cubic-bezier(.2,.9,.25,1) both}
@keyframes wave-beacon{0%,100%{transform:scale(.7);opacity:.65}50%{transform:scale(1.4);opacity:1}}@keyframes radar-enter{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:800px){.analysis-stage,.analysis-shell{min-height:min(640px,100svh)}.analysis-shell{padding-top:48px;padding-bottom:48px}.analysis-radar{height:295px}.analysis-radar #analysis-waveform{bottom:21px;height:61px}.analysis-log{margin-top:5px}.analysis-steps{gap:12px}}
@media(prefers-reduced-motion:reduce){.demo-reading #particle-field{filter:none}.analysis-radar #analysis-waveform path{stroke-dashoffset:0;animation:none!important}.analysis-radar #analysis-waveform circle,.analysis-stage.is-reading .analysis-radar{animation:none!important}}

/* Free answer first; the deeper evidence is visible as a promise, not silently hidden. */
.free-result-content{height:100%}.locked-report-card{min-height:270px;isolation:isolate}.locked-report-card> :not(.lock-layer){filter:blur(2.6px);opacity:.54;user-select:none}.locked-report-card::after{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(circle at 50% 52%,rgba(116,137,255,.11),rgba(8,13,34,.34) 70%);pointer-events:none}.lock-layer{position:absolute!important;z-index:3!important;left:50%;top:50%;display:grid;gap:12px;justify-items:center;width:min(86%,340px);padding:16px;transform:translate(-50%,-50%);color:#dce8ff;border:1px solid rgba(181,203,255,.28);background:rgba(9,14,38,.64);box-shadow:0 18px 45px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(12px);font:9px/1.5 var(--mono);letter-spacing:.04em;text-align:center}.lock-layer button{padding:9px 14px;color:#10172f;border:0;background:linear-gradient(90deg,#b9dcff,#cbb7ff);font:10px var(--mono);transition:transform .2s,box-shadow .2s}.lock-layer button:hover{transform:translateY(-2px);box-shadow:0 8px 19px rgba(175,197,255,.25)}
@media(max-width:800px){.locked-report-card{min-height:250px}.lock-layer{width:84%;padding:13px}.hero-utility{font-size:9px}.hero-actions{flex-wrap:wrap;gap:16px}.demo-button{padding-bottom:10px}}

/* Readability pass: the observatory stays nocturnal, but no essential text disappears into the field. */
:root{--ink:#111523;--night:#1b2444;--mist:#f0f4ff;--dim:#c2cdea;--line:rgba(218,229,255,.23)}
body{background:radial-gradient(circle at 50% -18%,#202b52 0,transparent 44%),var(--ink)}
.topbar p,.mono-label,.hero-note,.station-topline,.station-footer{color:#b9c6e6}
.hero-lede{color:#d8e1f6;font-size:16px;line-height:1.8}.hero-utility{color:#c9d6f5;font-size:11px;line-height:1.75}.demo-button{color:#d6e3ff;font-size:11px;border-bottom-color:rgba(198,218,255,.62)}
.section-head>p{max-width:300px;color:#cad5ef;font-size:13px;line-height:1.8}.context-card small,.dropzone small,.file-list{color:#bdc9e5;font-size:11px}.context-card strong{color:#f1f5ff}.station-title{color:#eaf0ff}#scan-status{color:#d1dcf6}.input-tab{color:#c7d2ed;font-size:12px}.input-tab:not(.active):hover{color:#fff}.input-mode>label:not(.dropzone){color:#edf2ff}#chat-input{color:#ecf2ff;font-size:14px}#chat-input::placeholder{color:#aebbd9}.station-footer{font-size:10px}.utility-link{color:#ffc0b9;font-size:10px}.action-row p{color:#d1dcf4;font-size:11px;line-height:1.6}.action-row p span{color:#a9f0d7}
.analysis-copy>p:last-child{color:#ccd8f3;font-size:14px}.analysis-step{color:#a8b7d7;font-size:12px}.analysis-log-line{color:#aab9dc;font-size:10px}.analysis-log-line.done{color:#b3caea}.analysis-log-line.active{color:#f0f5ff}
.report-head>p{color:#bfddff;font-size:10px}.card-label{color:#c5d0f0}.score-card>p:last-child,.pattern-card>p,.signal-item{color:#d5ddf2}.inference-evidence p{color:#d5ddf2}.inference-disclaimer{color:#c2cee8;font-size:9px}.full-reading p:last-child{color:#d4ddf1}
.experience-report [data-deep-report-card]{min-height:270px}.experience-report .full-reading{display:none}.experience-report .paper-card{box-shadow:inset 0 1px rgba(255,255,255,.11),0 24px 52px rgba(0,0,0,.24)}
.lock-layer[hidden],.full-reading[hidden]{display:none!important}
@media(max-width:800px){.hero-lede{font-size:15px}.hero-utility{font-size:11px}.section-head>p{font-size:13px}.context-card small{font-size:11px}.action-row p{font-size:11px}.station-topline,.station-footer{font-size:10px}.experience-report [data-deep-report-card]{min-height:238px}.inference-card{min-height:0;padding-bottom:23px}.inference-evidence{padding-bottom:0}.inference-disclaimer,.inference-actions{position:static}.inference-disclaimer{margin-top:15px}.inference-actions{margin-top:14px;flex-wrap:wrap}}

/* Report redesign: an evidence-led reading with one clear verdict and progressive detail. */
.report-section{background:radial-gradient(circle at 88% 3%,rgba(147,112,255,.22),transparent 25%),radial-gradient(circle at 5% 68%,rgba(71,163,255,.13),transparent 23%),linear-gradient(145deg,#0c1022,#121a35 54%,#17112d)}
.report-shell{padding:88px 0 104px}.report-head{margin-bottom:34px}.report-head h2{max-width:760px;font-size:clamp(42px,5.3vw,73px)}.report-head>p{margin-bottom:10px;color:#c5dcff;font-size:10px;letter-spacing:.12em}
.report-overview{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(270px,.62fr);gap:12px;margin-bottom:28px}.verdict-panel,.signal-map-panel{min-height:366px;padding:31px 32px;border:1px solid rgba(187,202,255,.28);background:linear-gradient(135deg,rgba(44,43,101,.82),rgba(17,27,62,.86));box-shadow:inset 0 1px rgba(255,255,255,.11),0 24px 55px rgba(0,0,0,.2)}.verdict-panel{position:relative;overflow:hidden}.verdict-panel::after{content:"?";position:absolute;right:46px;top:24px;color:rgba(214,206,255,.11);font:170px/.8 var(--serif);pointer-events:none}.verdict-top,.verdict-stats,.signal-breakdown-top,.profile-header,.chart-caption{display:flex;align-items:center;justify-content:space-between;gap:15px}.verdict-live{color:#b3f1d9;font:10px var(--mono)}.verdict-live i{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#9ce8bd;box-shadow:0 0 12px #9ce8bd}.verdict-main{position:relative;z-index:1;display:flex;align-items:baseline;gap:18px;margin:48px 0 21px}.verdict-main span{color:#b4c1df;font:16px var(--serif)}.verdict-main strong{color:#e0caff;font:clamp(40px,5vw,68px)/1 var(--serif);letter-spacing:-.09em;text-shadow:0 0 23px rgba(204,185,255,.3)}.verdict-summary{position:relative;z-index:1;max-width:590px;margin:0;color:#d9e2f5;font-size:15px;line-height:1.9}.verdict-stats{position:relative;z-index:1;justify-content:flex-start;gap:49px;margin-top:31px}.verdict-stats div{display:flex;align-items:baseline;gap:10px}.verdict-stats span{color:#aab9da;font:10px var(--mono)}.verdict-stats b{color:#f0f4ff;font:28px var(--serif);letter-spacing:-.06em}.verdict-stats b strong{font:inherit}.verdict-stats small{color:#aab9da;font:9px var(--mono)}.signal-meter{position:relative;z-index:1;width:100%;height:4px;margin-top:23px;background:rgba(188,206,255,.15)}.signal-meter span{display:block;height:100%;background:linear-gradient(90deg,#ff9c91,#b39dff);box-shadow:0 0 14px rgba(255,157,146,.55);transition:width 1.2s ease}.verdict-panel .inference-disclaimer{position:relative;left:auto;bottom:auto;margin:21px 0 0;color:#b6c5e2;font:9px/1.6 var(--mono)}.verdict-panel .inference-actions{position:absolute;right:31px;bottom:25px;z-index:2}.verdict-panel .inference-actions button{padding:7px 9px;color:#d8e3fb;border:1px solid rgba(200,214,255,.3);background:rgba(8,15,38,.4);font:9px var(--mono);transition:all .2s}.verdict-panel .inference-actions button:hover{color:#fff;border-color:#bcd2ff;transform:translateY(-2px)}
.signal-map-panel{display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,rgba(25,39,76,.88),rgba(26,18,65,.86))}.signal-map-panel>.card-top{display:flex;justify-content:space-between}.signal-map-orbit{position:relative;width:190px;height:190px;margin:12px auto 8px;display:grid;place-items:center}.orbit-ring{position:absolute;border:1px solid rgba(183,197,255,.28);border-radius:50%}.orbit-ring-one{inset:10px;box-shadow:0 0 32px rgba(126,151,255,.15)}.orbit-ring-two{inset:39px;border-style:dashed;border-color:rgba(208,184,255,.42)}.signal-map-orbit::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 34deg,rgba(255,157,145,.8),transparent 19%,rgba(173,151,255,.65) 48%,transparent 68%);mask:radial-gradient(circle,transparent 60%,#000 61%)}.signal-map-orbit strong{position:relative;color:#eef3ff;font:66px/.8 var(--serif);letter-spacing:-.11em;text-shadow:0 0 25px rgba(171,191,255,.35)}.map-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#ffae99;box-shadow:0 0 15px currentColor}.map-dot-one{top:15px;right:38px}.map-dot-two{bottom:31px;left:22px;background:#b8a2ff}.map-dot-three{top:48px;left:28px;width:5px;height:5px;background:#9bd6ff}.signal-map-panel>p{margin:0;color:#d2ddf3;font-size:12px;line-height:1.75}.map-legend{display:flex;gap:14px;color:#aebddc;font:9px var(--mono)}.legend-dot{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#ff9e91}.violet-dot{background:#ad99ff}.blue-dot{background:#9bcfff}
.report-block{margin-top:28px}.block-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:14px}.block-heading h3{margin:12px 0 0;color:#eef3ff;font:clamp(27px,3vw,40px)/1.25 var(--serif);letter-spacing:-.07em}.block-heading h3 em{color:#cbb9ff;font-style:normal}.block-index{color:#9fb7df;font:10px var(--mono)}
.evidence-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.evidence-item{min-height:205px;padding:23px 23px 20px;border:1px solid rgba(184,201,255,.23);background:rgba(27,37,76,.72);box-shadow:inset 0 1px rgba(255,255,255,.06);transition:transform .2s,border-color .2s}.evidence-item:hover{transform:translateY(-3px);border-color:rgba(206,191,255,.58)}.evidence-index{display:block;margin-bottom:27px;color:#9dcfff;font:10px var(--mono)}.evidence-quote{margin:0 0 13px;color:#f0f3ff;font:22px/1.45 var(--serif);letter-spacing:-.04em}.evidence-tag{display:inline-block;padding:4px 7px;color:#ffb2a5;border:1px solid rgba(255,174,159,.4);font:9px var(--mono)}.evidence-note{margin:17px 0 0;color:#bdc9e4;font-size:11px;line-height:1.7}
.metrics-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.metric-tile{min-height:135px;padding:20px;border:1px solid rgba(185,202,255,.2);background:rgba(21,31,66,.72)}.metric-tile>span{display:block;color:#afbddb;font:10px var(--mono)}.metric-tile strong{display:block;margin:25px 0 3px;color:#edf2ff;font:39px/.8 var(--serif);letter-spacing:-.08em}.metric-tile strong span{margin-left:4px;color:#a9b9d9;font:10px var(--mono);letter-spacing:0}.metric-tile small{color:#99a9cc;font-size:10px}.rhythm-chart{padding:20px 22px 15px;border:1px solid rgba(185,202,255,.2);background:rgba(17,26,57,.75)}.chart-caption{color:#cad7ef;font:10px var(--mono)}.chart-caption>span:last-child{display:flex;align-items:center;gap:5px;color:#aab8d4;font-size:9px}.chart-key{display:inline-block;width:18px;height:2px;margin-right:8px;background:#ff9e91}.violet-key{margin-left:2px;background:#b49dff}.rhythm-chart svg{display:block;width:100%;height:185px;margin:13px 0 4px}.chart-grid{fill:none;stroke:rgba(187,205,255,.12);stroke-width:1;stroke-dasharray:3 7}.chart-line{fill:none;stroke-width:2.4;stroke-linecap:round;filter:drop-shadow(0 0 5px currentColor)}.chart-line-coral{stroke:#ff9e91}.chart-line-violet{stroke:#b19aff}.rhythm-chart>p{margin:0;color:#9faccc;font-size:10px;line-height:1.6}
.signal-breakdown{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.signal-breakdown-item{padding:21px 23px;border:1px solid rgba(185,202,255,.2);background:rgba(21,31,66,.72)}.signal-breakdown-top{color:#edf2ff;font-size:13px}.signal-breakdown-top b{color:#bcaaff;font:24px var(--serif)}.signal-progress{height:5px;margin:19px 0 12px;background:rgba(188,206,255,.13)}.signal-progress i{display:block;height:100%;background:linear-gradient(90deg,#ff9e91,#b5a0ff);box-shadow:0 0 10px rgba(174,157,255,.4)}.signal-breakdown-item p{margin:0;color:#acb9d7;font-size:11px;line-height:1.6}
.profiles-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-card{padding:26px;border:1px solid rgba(255,174,159,.35);background:linear-gradient(135deg,rgba(61,39,79,.75),rgba(20,31,70,.8))}.profile-card.profile-other{border-color:rgba(186,161,255,.32);background:linear-gradient(135deg,rgba(29,41,82,.82),rgba(47,27,82,.76))}.profile-header{justify-content:flex-start}.profile-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#10162e;font:17px var(--serif);background:#ffad9d;box-shadow:0 0 20px rgba(255,164,148,.3)}.avatar-other{background:#b7a3ff}.profile-header p{margin:0 0 5px;color:#aebbd8;font:9px var(--mono)}.profile-header strong{color:#f1f4ff;font:23px var(--serif)}.profile-bars{display:grid;gap:13px;margin:27px 0 20px}.profile-bar{display:grid;grid-template-columns:73px 1fr 26px;gap:10px;align-items:center;color:#b9c6e0;font-size:10px}.profile-bar i{height:5px;background:rgba(190,207,255,.13)}.profile-bar b{display:block;height:100%;background:#ff9e91}.profile-other .profile-bar b{background:#b5a1ff}.profile-bar strong{color:#dce6fa;font:10px var(--mono);text-align:right}.profile-card>p{margin:0;color:#c7d2e9;font-size:11px;line-height:1.75}
.advice-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.advice-item{display:flex;gap:16px;min-height:188px;padding:23px;border:1px solid rgba(185,202,255,.23);background:linear-gradient(135deg,rgba(33,45,84,.8),rgba(34,26,69,.78))}.advice-number{color:#ffaaa0;font:12px var(--mono)}.advice-item h4{margin:0;color:#f0f4ff;font:20px var(--serif)}.advice-item p{margin:12px 0 15px;color:#b9c7e2;font-size:11px;line-height:1.7}.advice-item strong{color:#d4c8ff;font:14px/1.55 var(--serif)}.report-footer-note{margin-top:45px;padding-top:20px;border-top:1px solid rgba(185,202,255,.18);color:#aab9d7;font:10px var(--mono)}.report-footer-note span{margin-right:8px;color:#a9f0d7}.reset-button{margin-top:27px}
@media(max-width:800px){.report-shell{padding:68px 0 78px}.report-head h2{font-size:clamp(37px,11vw,55px)}.report-overview,.metrics-layout{grid-template-columns:1fr}.verdict-panel,.signal-map-panel{min-height:0;padding:24px}.verdict-main{display:block;margin:35px 0 18px}.verdict-main span{display:block;margin-bottom:10px}.verdict-main strong{font-size:48px}.verdict-summary{font-size:14px}.verdict-stats{gap:27px;margin-top:24px}.verdict-stats b{font-size:24px}.verdict-panel .inference-actions{position:static;margin-top:16px}.signal-map-orbit{width:164px;height:164px}.evidence-list,.signal-breakdown,.profiles-grid,.advice-list{grid-template-columns:1fr}.report-block{margin-top:22px}.block-heading{margin-bottom:12px}.block-heading h3{font-size:28px}.evidence-item{min-height:0;padding:20px}.evidence-quote{font-size:20px}.metric-grid{gap:8px}.metric-tile{min-height:118px;padding:17px}.metric-tile strong{margin-top:22px;font-size:34px}.rhythm-chart{padding:17px}.rhythm-chart svg{height:140px}.signal-breakdown-item{padding:18px 20px}.profile-card{padding:22px}.advice-item{min-height:0;padding:20px}.report-footer-note{line-height:1.7}}

.consent-row{margin:17px 0 0;padding:13px 15px;border:1px solid rgba(174,195,255,.28);background:rgba(18,29,63,.54);color:#c9d6ef;font:11px/1.7 var(--mono)}.consent-row label{display:flex;gap:9px;align-items:flex-start;cursor:pointer}.consent-row input{accent-color:#b7a3ff;margin-top:4px}.deep-report-card{margin-top:50px;padding:30px;border:1px solid rgba(196,174,255,.42);background:linear-gradient(120deg,rgba(31,40,87,.9),rgba(62,34,93,.82));box-shadow:0 0 48px rgba(122,102,255,.14),inset 0 1px rgba(255,255,255,.08)}.deep-report-card h3{margin:10px 0;color:#f3f5ff;font:35px var(--serif);letter-spacing:-.07em}.deep-report-card>p:not(.card-label){max-width:620px;margin:0;color:#c4d0eb;font-size:13px;line-height:1.8}.deep-report-card>div{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.notification-modal[hidden]{display:none}.notification-modal{position:fixed;z-index:40;inset:0;display:grid;place-items:center;padding:20px}.notification-backdrop{position:absolute;inset:0;background:rgba(3,6,20,.77);backdrop-filter:blur(8px)}.notification-panel{position:relative;z-index:1;width:min(460px,100%);padding:33px;border:1px solid rgba(194,204,255,.48);background:linear-gradient(145deg,#17234a,#251b4f);box-shadow:0 24px 100px rgba(0,0,0,.5);color:#eaf0ff}.notification-panel h2{margin:13px 0;color:#f4f6ff;font:38px var(--serif);letter-spacing:-.08em}.notification-panel>p{color:#c7d4ef;font-size:13px;line-height:1.8}.notification-panel img{display:block;width:min(230px,100%);margin:22px auto;background:#fff}.notification-note{padding-top:17px;border-top:1px solid rgba(196,204,255,.2);font-size:10px!important}.modal-close{position:absolute;top:14px;right:17px;border:0;background:transparent;color:#e9efff;font:28px/1 sans-serif;cursor:pointer}.notification-panel .signal-button{margin-top:10px}@media(max-width:800px){.deep-report-card{padding:23px}.deep-report-card h3{font-size:30px}.deep-report-card>div{display:grid}.deep-report-card .signal-button,.deep-report-card .reset-button{width:100%;text-align:left}}
.signal-stage{overflow:hidden}

.deep-report-card .signal-button.notice-button,.deep-report-card .signal-button{color:#e8e3ff!important;border:1px solid rgba(186,170,255,.55)!important;background:linear-gradient(105deg,rgba(156,146,255,.22),rgba(140,186,255,.18))!important;box-shadow:none!important}
.deep-report-card .soft-cta-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;color:#e8e3ff;border:1px solid rgba(186,170,255,.55);background:linear-gradient(105deg,rgba(156,146,255,.22),rgba(140,186,255,.18));font:13px "PingFang SC","Microsoft YaHei",sans-serif;cursor:pointer}
.deep-report-card .soft-cta-button:hover{border-color:rgba(210,198,255,.85);background:linear-gradient(105deg,rgba(166,156,255,.3),rgba(150,196,255,.24))}

.share-privacy-panel .share-privacy-actions{display:grid;gap:10px;margin-top:18px}
.share-privacy-panel .share-privacy-hint{margin:0;color:#b7c4df;font:12px/1.6 "PingFang SC","Microsoft YaHei",sans-serif}
.share-privacy-panel .signal-button,.share-privacy-panel .reset-button{width:100%;justify-content:center}
.shared-report-banner{margin:0 0 18px;padding:14px 18px;border:1px solid rgba(185,202,255,.22);background:rgba(14,20,48,.72)}
.shared-report-banner p{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;margin:0;color:#d7e0f3;font:13px/1.6 "PingFang SC","Microsoft YaHei",sans-serif}
.shared-report-banner strong{color:#f2f5ff;font:600 15px "Noto Serif SC",serif}
.shared-report-banner span{color:#9eb0d4;font-size:12px}
.shared-try-cta{margin:28px 0 18px;padding:22px 20px;border:1px solid rgba(186,170,255,.42);background:linear-gradient(120deg,rgba(31,40,87,.88),rgba(52,34,90,.82))}
.shared-try-cta h3{margin:8px 0;color:#f3f5ff;font:28px "Noto Serif SC",serif}
.shared-try-cta p{margin:0 0 16px;color:#c4d0eb;font:13px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
.shared-try-cta .signal-button{display:inline-flex}
body.shared-view .hero,body.shared-view #intake,body.shared-view .creator-services,body.shared-view .launch-letter,body.shared-view .report-community-cta,body.shared-view .report-actions{display:none!important}
body.shared-view #shared-try-cta,body.shared-view #shared-report-banner{display:block}
body.shared-view #report-section{display:block}

/* Observatory silk: one entrance, then quieter hover and panel motion. */
:root{--ease-silk:cubic-bezier(.16,1,.3,1)}
.hero{padding:76px 0 100px}
.hero-copy,.signal-stage{animation:heroRise .95s var(--ease-silk) both}
.signal-stage{animation-delay:.08s}
.signal-line{animation-duration:2.6s;animation-timing-function:var(--ease-silk)}
.field-glow-track{transition:left .32s var(--ease-silk),top .32s var(--ease-silk)}
.intake{background:linear-gradient(180deg,rgba(154,140,255,.05),transparent 22%)}
.context-card,.dropzone,.evidence-item,.profile-card,.advice-item,.signal-highlight,.metric-tile,.signal-breakdown-item,.uncertainty-card,.creator-services-grid article,.history-card,.launch-qr-card{
  transition:transform .45s var(--ease-silk),box-shadow .45s var(--ease-silk),border-color .4s ease,background .4s ease,color .35s ease
}
.signal-button,.reset-button,.soft-cta-button,.demo-button,.guide-button,.sound-toggle,.feedback-button,.input-tab,.privacy-consent-control{
  transition:transform .38s var(--ease-silk),box-shadow .38s var(--ease-silk),border-color .35s ease,background .35s ease,color .3s ease
}
.context-card:hover,.creator-services-grid article:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(8,12,32,.28)}
.context-card.active{box-shadow:0 0 0 1px rgba(255,181,168,.42),0 16px 36px rgba(255,113,91,.12)}
.input-station{transition:border-color .45s var(--ease-silk),box-shadow .45s var(--ease-silk)}
.input-station:focus-within{border-color:rgba(199,183,255,.5);box-shadow:inset 0 1px rgba(255,255,255,.08),0 0 0 1px rgba(199,183,255,.16),0 28px 70px rgba(12,8,36,.22)}
.welcome-panel,.notification-panel{animation:panelIn .55s var(--ease-silk) both}
@keyframes heroRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes panelIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:800px){.hero{padding:64px 0 80px}}
@media(prefers-reduced-motion:reduce){
  .hero-copy,.signal-stage,.welcome-panel,.notification-panel{animation:none}
  .field-glow-track{transition:none}
  .context-card:hover,.dropzone:hover,.evidence-item:hover,.profile-card:hover,.advice-item:hover,.signal-highlight:hover,.launch-qr-card:hover,.creator-services-grid article:hover,.uncertainty-card:hover{transform:none;box-shadow:none}
}

/* ============================================================
   Observatory cinematic v3
   One coherent journey: deep-space hero, guided intake, archive.
   ============================================================ */
body[data-observatory-version="3"]{background:#080d1d;color:#eef2ff}
body[data-observatory-version="3"]::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 72% 18%,rgba(88,76,170,.16),transparent 37%),radial-gradient(ellipse at 18% 32%,rgba(255,113,91,.06),transparent 31%),linear-gradient(180deg,#080d1d 0%,#0b1126 55%,#080c19 100%)}
body[data-observatory-version="3"] .shell{width:min(1320px,calc(100% - 80px))}

.topbar-primary{position:relative;padding:10px 4px;color:#aebbd8;border:0;background:transparent;text-decoration:none;font:12px var(--sans);white-space:nowrap;transition:color .25s}
.topbar-primary::after{content:"";position:absolute;left:4px;right:100%;bottom:2px;height:2px;background:var(--coral);transition:right .3s var(--ease-silk)}
.topbar-primary:hover,.topbar-primary:focus-visible{outline:0;color:#fff}
.topbar-primary:hover::after,.topbar-primary:focus-visible::after{right:4px}
.topbar-sample{cursor:pointer}

body[data-observatory-version="3"] .topbar{height:82px;border-bottom-color:rgba(191,204,255,.14)}
body[data-observatory-version="3"] .brand{font-family:var(--serif);font-size:18px;letter-spacing:-.04em}
body[data-observatory-version="3"] .hero{grid-template-columns:minmax(0,.95fr) minmax(540px,1.05fr);gap:18px;min-height:690px;padding:76px 0 82px}
body[data-observatory-version="3"] .hero-copy{align-self:center}
body[data-observatory-version="3"] .hero h1{max-width:760px;margin:29px 0 29px;font:500 clamp(58px,6vw,92px)/1.08 var(--serif);letter-spacing:-.09em}
body[data-observatory-version="3"] .hero h1 em{display:inline-block;color:#ff8b78}
body[data-observatory-version="3"] .hero-lede{max-width:590px;color:#c4cee3;font-size:16px;line-height:1.95}
body[data-observatory-version="3"] .hero-utility{max-width:580px;margin-top:13px;color:#8190b2;font-size:10px}
body[data-observatory-version="3"] .hero-actions{gap:31px;margin-top:38px}
body[data-observatory-version="3"] .signal-button{min-width:216px;min-height:58px;background:linear-gradient(100deg,#ff826f,#ff715b);box-shadow:0 18px 54px rgba(255,113,91,.22)}
body[data-observatory-version="3"] .demo-button{font-size:11px}
.hero-boundary{display:flex;align-items:center;gap:10px;margin:26px 0 0;color:#9eabc7;font:11px var(--sans)}
.hero-boundary span{width:18px;height:18px;border:1px solid rgba(198,215,255,.38);border-radius:50%;box-shadow:inset 0 0 0 5px rgba(154,140,255,.08)}
body[data-observatory-version="3"] .hero-ticker{margin-top:18px;border-color:rgba(170,192,255,.14);background:rgba(8,13,32,.46)}
body[data-observatory-version="3"] .signal-stage{height:570px}
body[data-observatory-version="3"] .signal-stage::before{content:"";position:absolute;inset:4% 3%;z-index:0;border:1px solid rgba(169,187,255,.08);border-radius:50%;box-shadow:0 0 0 42px rgba(169,187,255,.018),0 0 0 84px rgba(169,187,255,.012)}
body[data-observatory-version="3"] .signal-stage svg{width:min(100%,720px)}
body[data-observatory-version="3"] .field-glow-track{width:460px;height:460px}
body[data-observatory-version="3"] .field-glow{width:100%;height:100%}
.orrery-dial .dial-ring{fill:none;stroke:rgba(185,201,255,.18);stroke-width:1}
.orrery-dial .dial-ring-edge{stroke:rgba(185,201,255,.1)}
.orrery-dial .dial-ring-dash{stroke-dasharray:3 9}
.orrery-dial .dial-ticks{fill:none;stroke:rgba(198,177,255,.28);stroke-width:4;stroke-dasharray:1 10;stroke-linecap:round}
.orrery-dial .dial-ticks-fine{stroke:rgba(164,185,255,.16);stroke-width:2;stroke-dasharray:1 6}
.orrery-dial .dial-cross{fill:none;stroke:rgba(176,195,255,.09);stroke-width:1}
.orrery-dial .dial-cross-diag{stroke-dasharray:3 11}
.orrery-dust circle{fill:#aebcff;opacity:.5}
.orrery-arc-text{fill:rgba(198,210,242,.38);font:10px var(--mono);letter-spacing:.16em}
.orrery-sweep{transform-origin:450px 300px;animation:orrerySweep 18s linear infinite}
.orrery-orbiters .orbiter{stroke:#0b1026;stroke-width:5;filter:url(#node-glow)}
.orrery-orbiters .orbiter-coral{fill:#ff806b}
.orrery-orbiters .orbiter-violet{fill:#9a8cff}
@keyframes orrerySweep{to{transform:rotate(360deg)}}

.journey-rail{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr) 70px minmax(0,1fr);align-items:center;margin-top:-18px;padding:25px 0 30px;border-top:1px solid rgba(181,198,255,.14);border-bottom:1px solid rgba(181,198,255,.14)}
.journey-rail article{display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:center;min-width:0}
.journey-rail article>span{display:grid;place-items:center;width:42px;height:42px;color:#ff9e8e;border:1px solid rgba(255,158,142,.35);border-radius:50%;font:10px var(--mono);box-shadow:0 0 30px rgba(255,113,91,.08)}
.journey-rail strong,.journey-rail small{display:block}
.journey-rail strong{color:#eef3ff;font:20px var(--serif)}
.journey-rail small{margin-top:5px;color:#8290ae;font:10px/1.55 var(--sans)}
.journey-rail>i{height:1px;background:linear-gradient(90deg,rgba(154,140,255,.15),rgba(255,158,142,.5),rgba(154,140,255,.15))}

body[data-observatory-version="3"] .intake{padding-top:104px}
body[data-observatory-version="3"] .section-head{margin-bottom:32px}
body[data-observatory-version="3"] .section-head h2{font-family:var(--serif)}
body[data-observatory-version="3"] .context-rail{grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin-bottom:22px;border-top:1px solid rgba(183,201,255,.14);border-bottom:1px solid rgba(183,201,255,.14)}
body[data-observatory-version="3"] .context-card{min-height:104px;border-width:0 1px 0 0;border-color:rgba(183,201,255,.12);background:transparent}
body[data-observatory-version="3"] .context-card:last-child{border-right:0}
body[data-observatory-version="3"] .context-card.active{background:linear-gradient(145deg,rgba(255,113,91,.14),rgba(154,140,255,.11));box-shadow:inset 0 2px #ff8d7b}
body[data-observatory-version="3"] .context-card span{margin-bottom:15px}
body[data-observatory-version="3"] .input-station{min-height:410px;padding:27px 30px 25px;border-color:rgba(188,205,255,.22);background:radial-gradient(circle at 78% 10%,rgba(154,140,255,.12),transparent 32%),linear-gradient(135deg,rgba(19,31,69,.94),rgba(10,16,38,.96));box-shadow:0 34px 100px rgba(2,5,18,.3),inset 0 1px rgba(255,255,255,.06)}
body[data-observatory-version="3"] .input-tabs{width:min(610px,100%);padding:0;border:0;border-bottom:1px solid rgba(185,202,255,.18);background:transparent}
body[data-observatory-version="3"] .input-tab{position:relative;padding:15px 18px;color:#94a2c0;text-align:left}
body[data-observatory-version="3"] .input-tab.active{color:#fff;background:transparent}
body[data-observatory-version="3"] .input-tab.active::after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:linear-gradient(90deg,#ff8b79,#b8a4ff)}
body[data-observatory-version="3"] .dropzone{min-height:220px;border-color:rgba(255,181,168,.42);background:radial-gradient(circle at 50% 46%,rgba(154,140,255,.13),transparent 35%),rgba(8,14,34,.4)}

@media(max-width:1040px){
  body[data-observatory-version="3"] .shell{width:min(100% - 48px,920px)}
  body[data-observatory-version="3"] .topbar>p{display:none}
  body[data-observatory-version="3"] .hero{grid-template-columns:1fr;min-height:0;padding-top:66px}
  body[data-observatory-version="3"] .signal-stage{height:500px;margin-top:18px}
  .journey-rail{grid-template-columns:1fr;gap:0}
  .journey-rail>i{width:1px;height:24px;margin-left:21px;background:linear-gradient(180deg,rgba(154,140,255,.12),rgba(255,158,142,.4))}
  body[data-observatory-version="3"] .context-rail{grid-template-columns:repeat(3,1fr)}
  body[data-observatory-version="3"] .context-card:nth-child(3){border-right:0}
  body[data-observatory-version="3"] .context-card:nth-child(-n+3){border-bottom:1px solid rgba(183,201,255,.12)}
}

@media(max-width:800px){
  body[data-observatory-version="3"] .shell{width:min(100% - 32px,620px)}
  body[data-observatory-version="3"] .topbar{height:64px}
  .topbar-primary{display:none}
  body[data-observatory-version="3"] .brand{font-size:15px}
  body[data-observatory-version="3"] .hero{padding:54px 0 40px}
  body[data-observatory-version="3"] .hero h1{margin:23px 0 23px;font-size:clamp(46px,13.8vw,70px);line-height:1.12}
  body[data-observatory-version="3"] .hero-lede{font-size:14px;line-height:1.85}
  body[data-observatory-version="3"] .hero-actions{display:grid;gap:10px;margin-top:29px}
  body[data-observatory-version="3"] .demo-button{width:max-content}
  body[data-observatory-version="3"] .signal-stage{height:390px;margin-top:20px}
  body[data-observatory-version="3"] .specimen-card{display:none}
  body[data-observatory-version="3"] .field-readout{right:2%;top:8%}
  .journey-rail{margin-top:0;padding:22px 0}
  .journey-rail strong{font-size:17px}
  body[data-observatory-version="3"] .intake{padding-top:72px}
  body[data-observatory-version="3"] .context-rail{grid-template-columns:repeat(2,1fr)}
  body[data-observatory-version="3"] .context-card:nth-child(odd){border-right:1px solid rgba(183,201,255,.12)}
  body[data-observatory-version="3"] .context-card:nth-child(even){border-right:0}
  body[data-observatory-version="3"] .context-card:nth-child(-n+4){border-bottom:1px solid rgba(183,201,255,.12)}
  body[data-observatory-version="3"] .input-station{padding:21px 17px}
  body[data-observatory-version="3"] .input-tab{padding:13px 8px;text-align:center;font-size:10px}
  body[data-observatory-version="3"] .input-tab.active::after{left:8px;right:8px}
}

@media(prefers-reduced-motion:reduce){
  body[data-observatory-version="3"] .signal-stage::before{box-shadow:none}
}

.preface-panel{margin:18px 0 8px;padding:20px 22px;border:1px solid rgba(198,177,255,.28);background:linear-gradient(145deg,rgba(28,38,82,.55),rgba(36,24,70,.42));box-shadow:inset 0 1px rgba(255,255,255,.05)}
.preface-heading h3{margin:6px 0 8px;color:#f2f5ff;font:600 clamp(20px,2.2vw,28px)/1.2 var(--serif)}
.preface-heading h3 em{color:#ffb2a5;font-style:normal}
.preface-heading p:not(.card-label){margin:0 0 14px;color:#b7c4df;font:13px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
.preface-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.preface-tag{padding:9px 12px;color:#d7e0f3;border:1px solid rgba(186,202,255,.28);background:rgba(12,20,48,.55);font:12px "PingFang SC","Microsoft YaHei",sans-serif;cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .2s}
.preface-tag:hover{border-color:rgba(255,177,165,.45);transform:translateY(-1px)}
.preface-tag.is-active{color:#121932;border-color:#ffb2a5;background:linear-gradient(135deg,#ffada1,#c5b1ff);font-weight:700}
.preface-note-label{display:grid;gap:7px;color:#c9d5eb;font:11px/1.5 "PingFang SC","Microsoft YaHei",sans-serif}
.preface-note-label textarea{width:100%;padding:12px 14px;color:#eef3ff;border:1px solid rgba(186,202,255,.28);background:rgba(8,14,36,.72);font:13px/1.7 "PingFang SC","Microsoft YaHei",sans-serif;resize:vertical}
.prior-star-row{margin-top:14px;padding-top:14px;border-top:1px solid rgba(186,202,255,.16)}
.prior-star-toggle{display:flex;align-items:flex-start;gap:10px;color:#e8eefc;font:13px/1.55 "PingFang SC","Microsoft YaHei",sans-serif;cursor:pointer}
.prior-star-toggle input{margin-top:3px;accent-color:#fca39a}
.prior-star-hint{margin:8px 0 0 28px;color:#aebddc;font:12px/1.6 "PingFang SC","Microsoft YaHei",sans-serif}
.other-voice-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:14px;align-items:stretch}
.other-voice-hero{position:relative;display:grid;gap:14px;padding:22px 22px 18px;border:1px solid rgba(193,210,255,.26);background:radial-gradient(circle at 88% 0%,rgba(255,177,165,.16),transparent 42%),linear-gradient(155deg,rgba(34,48,98,.88),rgba(18,16,48,.82));box-shadow:inset 0 1px rgba(255,255,255,.06),0 20px 44px rgba(6,10,30,.22);overflow:hidden}
.other-voice-hero::before{content:"";position:absolute;left:-40px;bottom:-50px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(154,140,255,.2),transparent 68%);pointer-events:none}
.other-voice-hero-head{position:relative;z-index:1}
.other-voice-hero-head .card-label,.other-voice-hero-head span{display:block;color:#ffb2a5;font:10px var(--mono);letter-spacing:.1em}
.other-voice-hero-head strong{display:block;margin:8px 0 0;color:#f4f7ff;font:clamp(22px,2.4vw,30px)/1.3 var(--serif)}
.other-voice-rows{position:relative;z-index:1;display:grid;gap:12px}
.other-voice-row{padding:14px 14px 12px;border:1px solid rgba(185,202,255,.16);background:rgba(8,14,34,.42)}
.other-voice-row > span{display:block;color:#9eb0d3;font:10px var(--mono);letter-spacing:.08em}
.other-voice-row > p{margin:8px 0 0;color:#e8eefc;font:14px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
.other-voice-side{display:grid;gap:14px}
.other-voice-card{position:relative;min-height:0;padding:18px 18px 16px;border:1px solid rgba(193,210,255,.24);background:linear-gradient(155deg,rgba(34,48,98,.82),rgba(22,18,54,.72));box-shadow:inset 0 1px rgba(255,255,255,.06),0 16px 36px rgba(6,10,30,.18);overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}
.other-voice-card::before{content:"";position:absolute;right:-18px;top:-22px;width:86px;height:86px;border-radius:50%;background:radial-gradient(circle,rgba(255,177,165,.22),transparent 68%);pointer-events:none}
.other-voice-card:hover{transform:translateY(-3px);border-color:rgba(224,196,255,.55);box-shadow:0 18px 40px rgba(8,10,35,.28),0 0 28px rgba(171,151,255,.12)}
.other-voice-card > span{display:block;color:#ffb2a5;font:10px var(--mono);letter-spacing:.08em}
.other-voice-card strong{display:block;margin:12px 0 10px;color:#f0f4ff;font:clamp(18px,2vw,22px)/1.35 var(--serif)}
.other-voice-card p{margin:0;color:#bdc9e4;font:13px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
.other-voice-card small,.other-voice-quote,.other-voice-row .other-voice-quote{display:inline-block;margin-top:12px;padding:6px 10px;color:#d7c8ff;border:1px solid rgba(198,177,255,.28);background:rgba(12,16,42,.45);font:11px/1.55 "PingFang SC","Microsoft YaHei",sans-serif}
.other-voice-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.other-voice-topic{padding:7px 12px;color:#f0f4ff;border:1px solid rgba(186,202,255,.28);background:rgba(18,28,62,.65);font:12px "PingFang SC","Microsoft YaHei",sans-serif}
.other-voice-hours{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 20px;border:1px solid rgba(193,210,255,.22);background:linear-gradient(100deg,rgba(20,28,64,.85),rgba(28,22,58,.78))}
.other-voice-hours > span{color:#ffb2a5;font:10px var(--mono);letter-spacing:.1em}
.other-voice-hours p{margin:0;color:#e8eefc;font:15px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
.other-voice-hours .other-voice-quote{margin:0}
.review-brief{margin:16px 0 8px}
.review-brief-card{padding:20px 22px;border:1px solid rgba(198,177,255,.28);background:linear-gradient(145deg,rgba(28,38,82,.7),rgba(36,24,70,.55));box-shadow:inset 0 1px rgba(255,255,255,.05)}
.review-brief-card strong{display:block;margin:6px 0 10px;color:#f2f5ff;font:clamp(22px,2.4vw,30px)/1.25 var(--serif)}
.review-brief-card>p:not(.relation-star-kicker){margin:0 0 14px;color:#bdc9e4;font:13px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
.review-brief-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.review-brief-chip{padding:12px 12px;border:1px solid rgba(186,202,255,.2);background:rgba(8,14,36,.45)}
.review-brief-chip span{display:block;color:#ffb2a5;font:10px var(--mono);letter-spacing:.08em}
.review-brief-chip b{display:block;margin-top:8px;color:#eef3ff;font:13px/1.55 "PingFang SC","Microsoft YaHei",sans-serif;font-weight:500}
.dossier-progress-hint{margin:0 0 14px;color:#d7c8ff;font:12px/1.65 "PingFang SC","Microsoft YaHei",sans-serif}
.cycle-observation{margin:8px 0 18px;padding:22px;border:1px solid rgba(198,177,255,.35);background:radial-gradient(circle at 20% 0%,rgba(198,177,255,.16),transparent 45%),rgba(10,16,40,.82)}
.cycle-observation.is-inline{margin:14px 0}
.cycle-observation>strong{display:block;margin:6px 0 12px;color:#f2f5ff;font:clamp(22px,2.4vw,30px)/1.25 var(--serif)}
.cycle-observation>p{margin:0 0 10px;color:#bdc9e4;font:13px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
.cycle-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.cycle-meta span{padding:6px 10px;color:#e8eefc;border:1px solid rgba(186,202,255,.24);background:rgba(18,28,62,.55);font:11px "PingFang SC","Microsoft YaHei",sans-serif}
.dossier-detail{margin-top:12px}
.dossier-detail h3{margin:12px 0 8px;color:#f2f5ff;font:24px/1.25 var(--serif)}
.relation-star-guide{margin:0 0 18px;padding:18px 20px;border:1px solid rgba(198,177,255,.28);background:linear-gradient(145deg,rgba(198,177,255,.1),rgba(255,157,145,.06)),rgba(10,16,40,.72);box-shadow:inset 0 1px rgba(255,255,255,.06)}
.relation-star-guide-lead{margin:0 0 14px;color:#e8eefc;font:14px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
.relation-star-guide-lead strong{color:#ffb5a8;font-weight:600}
.relation-star-guide-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 12px}
.relation-star-guide-list>div{padding:12px 12px 11px;border:1px solid rgba(186,202,255,.16);background:rgba(8,14,36,.45)}
.relation-star-guide-list dt{display:inline-flex;align-items:center;gap:7px;margin:0 0 6px;color:#f0f4ff;font:12px var(--mono);letter-spacing:.08em}
.relation-star-guide-list dt i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 10px currentColor}
.relation-star-guide-list dt i.is-event,.relation-star-legend i.is-event{background:#ff9e91;color:#ff9e91}
.relation-star-guide-list dt i.is-bond,.relation-star-legend i.is-bond{background:#c5a8ff;color:#c5a8ff}
.relation-star-guide-list dt i.is-topic,.relation-star-legend i.is-topic{background:#9bcfff;color:#9bcfff}
.relation-star-guide-list dd{margin:0;color:#b7c5e2;font:12px/1.65 "PingFang SC","Microsoft YaHei",sans-serif}
.relation-star-guide-note{margin:0;color:#9eb0d3;font:12px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
.next-chat-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.next-chat-card{display:flex;flex-direction:column;gap:10px;min-height:210px;padding:20px 18px;border:1px solid rgba(185,202,255,.24);background:linear-gradient(150deg,rgba(33,45,84,.82),rgba(34,26,69,.78));box-shadow:inset 0 1px rgba(255,255,255,.05)}
.next-chat-card[data-tone="push"]{border-color:rgba(255,177,165,.38)}
.next-chat-card[data-tone="hold"]{border-color:rgba(198,177,255,.4)}
.next-chat-card[data-tone="space"]{border-color:rgba(155,207,255,.34)}
.next-chat-tone{color:#ffb5a8;font:11px var(--mono);letter-spacing:.1em}
.next-chat-card h4{margin:0;color:#f0f4ff;font:20px/1.3 var(--serif)}
.next-chat-card p{margin:0;color:#b9c7e2;font:12px/1.7 "PingFang SC","Microsoft YaHei",sans-serif;flex:1}
.next-chat-script{margin:0;padding:12px 12px;color:#fff4ee;border:1px solid rgba(255,181,168,.22);background:rgba(255,181,168,.08);font:15px/1.55 var(--serif)}
.next-chat-copy{margin-top:auto!important;align-self:flex-start}
.relation-star-stage{display:grid;gap:18px;margin:18px 0}
.relation-star-stage.is-nebula{gap:20px}
.relation-star-canvas{position:relative;min-height:320px;overflow:hidden;border:1px solid rgba(198,177,255,.38);background:radial-gradient(circle at 22% 18%,rgba(198,177,255,.28),transparent 38%),radial-gradient(circle at 82% 76%,rgba(255,157,145,.22),transparent 42%),linear-gradient(160deg,#050916 0%,#121b3f 48%,#1a1340 100%);box-shadow:inset 0 0 80px rgba(120,100,220,.18),0 28px 70px rgba(4,8,24,.4),0 0 40px rgba(198,177,255,.08)}
.relation-star-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 38%,rgba(4,8,20,.58) 100%);z-index:1}
.relation-star-canvas svg{display:block;position:relative;z-index:0;width:100%;height:min(56vw,460px);min-height:320px}
.relation-star-legend{position:absolute;left:14px;bottom:12px;z-index:2;display:flex;flex-wrap:wrap;gap:10px;padding:8px 10px;border:1px solid rgba(186,202,255,.22);background:rgba(8,14,36,.62);backdrop-filter:blur(10px)}
.relation-star-legend span{display:inline-flex;align-items:center;gap:6px;color:#c9d5eb;font:10px var(--mono);letter-spacing:.06em}
.relation-star-legend i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 10px currentColor}
.relation-star-kicker{margin:0 0 8px;color:#ffb2a5;font:10px var(--mono);letter-spacing:.12em}
.relation-star-copy{padding:4px 2px 0}
.relation-star-copy strong{display:block;color:#f2f5ff;font:clamp(24px,2.8vw,34px)/1.25 var(--serif)}
.relation-star-copy p:not(.relation-star-kicker){margin:10px 0 16px;color:#bdc9e4;font:13px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
@media(max-width:800px){
  .relation-star-guide-list,.next-chat-list{grid-template-columns:1fr}
}
.relation-star-nodes{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.relation-star-nodes li{padding:8px 12px;color:#e8eefc;border:1px solid rgba(186,202,255,.24);background:rgba(18,28,62,.6);font:12px "PingFang SC","Microsoft YaHei",sans-serif;transition:border-color .2s,transform .2s,box-shadow .2s}
.relation-star-nodes li[data-kind="event"]{border-color:rgba(255,177,165,.45);color:#ffd0c6;box-shadow:0 0 18px rgba(255,158,145,.12)}
.relation-star-nodes li[data-kind="bond"]{border-color:rgba(198,177,255,.5);color:#d7c8ff;box-shadow:0 0 18px rgba(197,168,255,.12)}
.relation-star-nodes li[data-kind="topic"]{box-shadow:0 0 18px rgba(155,207,255,.1)}
.relation-star-actions{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 18px}
.relation-star-saved-cta{margin-top:8px;padding:22px;border:1px solid rgba(255,177,165,.38);background:linear-gradient(105deg,rgba(255,157,145,.13),rgba(198,177,255,.12))}
.relation-star-saved-cta h3{margin:6px 0 10px;color:#f6f3ff;font:600 clamp(22px,2.4vw,30px)/1.2 var(--serif)}
.relation-star-saved-cta h3 em{color:#ffb2a5;font-style:normal}
.relation-star-saved-cta p:not(.card-label){margin:0 0 14px;color:#bdc9e4;font:13px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
.relation-star-dust-dot,.relation-star-halo,.relation-star-node{transform-box:fill-box;transform-origin:center}
.relation-star-constellation:not(.is-still) .relation-star-dust-dot{animation:star-dust-twinkle 4.8s ease-in-out infinite;animation-delay:var(--dust-delay,0s)}
.relation-star-constellation:not(.is-still) .relation-star-edge{stroke-dasharray:var(--edge-len,180) var(--edge-len,180);stroke-dashoffset:var(--edge-len,180);animation:star-edge-draw 1.4s cubic-bezier(.55,0,.2,1) forwards,star-edge-drift 9s linear infinite;animation-delay:var(--edge-delay,0s),calc(var(--edge-delay,0s) + 1.4s)}
.relation-star-constellation:not(.is-still) .relation-star-halo{animation:star-halo-pulse 3.6s ease-in-out infinite;animation-delay:var(--node-delay,0s)}
.relation-star-constellation:not(.is-still) .relation-star-spark{animation:star-spark-twinkle 2.8s ease-in-out infinite;animation-delay:var(--node-delay,0s)}
.relation-star-constellation:not(.is-still) .relation-star-node-motion{animation:star-node-drift 8.5s ease-in-out infinite;animation-delay:var(--node-delay,0s)}
.relation-star-constellation:not(.is-still) .relation-star-edge-bead{animation:star-bead-pulse 2.4s ease-in-out infinite}
.relation-star-constellation.is-atlas .relation-star-plate rect{filter:drop-shadow(0 10px 24px rgba(2,6,20,.35))}
.relation-star-constellation.is-atlas .relation-star-edge-badge{pointer-events:none}
.relation-star-constellation.is-atlas .relation-star-core{filter:url(#star-node-glow)}
.relation-star-constellation:not(.is-still).is-atlas .relation-star-plate{animation:star-plate-fade 1.1s cubic-bezier(.55,0,.2,1) both}
@keyframes star-plate-fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes star-dust-twinkle{0%,100%{opacity:.18}50%{opacity:.72}}
@keyframes star-edge-draw{to{stroke-dashoffset:0}}
@keyframes star-edge-drift{to{stroke-dashoffset:-72}}
@keyframes star-halo-pulse{0%,100%{opacity:.22;transform:scale(1)}50%{opacity:.55;transform:scale(1.32)}}
@keyframes star-spark-twinkle{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes star-node-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(var(--drift-x,2px),var(--drift-y,-3px))}}
@keyframes star-bead-pulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}}
@media(max-width:800px){
  .relation-star-canvas svg{height:310px;min-height:270px}
}
.history-tabs{display:flex;gap:8px;margin:16px 0}
.history-tab{padding:8px 12px;color:#c9d5eb;border:1px solid rgba(186,202,255,.25);background:rgba(8,14,36,.45);font:12px "PingFang SC","Microsoft YaHei",sans-serif;cursor:pointer}
.history-tab.active{color:#121932;border-color:#c5b1ff;background:linear-gradient(135deg,#ffada1,#c5b1ff);font-weight:700}
@media(max-width:800px){
  .other-voice-grid{grid-template-columns:1fr}
  .other-voice-hours{grid-template-columns:1fr;gap:10px}
  .relation-star-stage,.review-brief-chips{grid-template-columns:1fr}
  .other-voice-card:hover{transform:none}
  .preface-panel{padding:16px}
}
@media(prefers-reduced-motion:reduce){
  .other-voice-card,.preface-tag,.relation-star-nodes li{transition:none}
  .other-voice-card:hover,.preface-tag:hover{transform:none}
  .relation-star-constellation .relation-star-dust-dot,
  .relation-star-constellation .relation-star-edge,
  .relation-star-constellation .relation-star-halo,
  .relation-star-constellation .relation-star-spark,
  .relation-star-constellation .relation-star-node,
  .relation-star-constellation .relation-star-node-motion,
  .relation-star-constellation .relation-star-edge-bead{animation:none!important}
  .relation-star-constellation .relation-star-edge{stroke-dashoffset:0}
}

/* ============================================================
   Observatory shell v2
   Collapsed navigation, chapter rail, spotlight surfaces and a
   single scroll-reveal language shared by every section.
   ============================================================ */

/* --- Top navigation: two shortcuts plus one drawer --------- */
.topbar{z-index:20}
.topbar-actions{gap:8px}
.nav-more{position:relative}
.nav-more-button{display:inline-flex;align-items:center;gap:8px;position:relative}
.nav-more-caret{width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease-silk)}
.nav-more-button[aria-expanded="true"]{color:#fff;border-color:#cdbbff;background:rgba(46,38,94,.6)}
.nav-more-button[aria-expanded="true"] .nav-more-caret{transform:translateY(1px) rotate(-135deg)}
.nav-more-button .new-badge{position:absolute;top:-5px;right:-6px}
.nav-more-button:not(.has-new) .new-badge{display:none}
.nav-more-menu{position:absolute;z-index:40;right:0;top:calc(100% + 12px);width:272px;padding:8px;border:1px solid rgba(198,181,255,.34);background:linear-gradient(150deg,rgba(23,32,68,.97),rgba(32,22,64,.97));box-shadow:0 26px 70px rgba(0,0,0,.5),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(18px);transform-origin:top right;animation:navMenuIn .3s var(--ease-silk) both}
.nav-more-menu[hidden]{display:none}
.nav-more-item{display:block;width:100%;padding:11px 12px;text-align:left;color:#dee7ff;border:0;background:transparent;transition:background .25s,color .25s,padding-left .25s var(--ease-silk)}
.nav-more-item span{display:block;font:13px "PingFang SC","Microsoft YaHei",sans-serif;font-weight:500}
.nav-more-item small{display:block;margin-top:4px;color:#93a3c8;font:10px/1.5 "PingFang SC","Microsoft YaHei",sans-serif}
.nav-more-item:hover,.nav-more-item:focus-visible{outline:0;padding-left:17px;color:#fff;background:linear-gradient(100deg,rgba(255,157,145,.16),rgba(198,177,255,.14))}
.nav-more-item.has-new span::after{content:"NEW";margin-left:8px;padding:1px 5px;color:#12162c;background:#ffb2a5;font:8px var(--mono);vertical-align:middle}
.nav-more-foot{margin-top:6px;padding:9px 12px 4px;border-top:1px solid rgba(186,202,255,.16)}
.nav-more-foot .sound-toggle{width:100%;text-align:center}
@keyframes navMenuIn{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}
.history-button[data-has-archive="true"]{color:#12162c;border-color:#c7b5ff;background:linear-gradient(100deg,#ffc2b6,#cbb7ff);font-weight:700}

/* --- Report chapter rail ----------------------------------- */
/* `overflow:clip` keeps the decorative bleed contained without turning the
   section into a scroll container, which would break the sticky rail. */
.report-section{overflow:clip}
.report-nav{position:sticky;z-index:12;top:0;margin:0 0 8px;padding:12px 0;background:linear-gradient(180deg,rgba(12,16,34,.96),rgba(12,16,34,.78) 66%,transparent);backdrop-filter:blur(12px)}
.report-nav[hidden]{display:none}
.report-nav-track{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.report-nav-track::-webkit-scrollbar{display:none}
.report-nav-link{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:8px 12px;color:#a9bade;border:1px solid rgba(178,196,255,.2);background:rgba(11,17,42,.6);white-space:nowrap;font:11px "PingFang SC","Microsoft YaHei",sans-serif;transition:color .3s,border-color .3s,background .3s,transform .3s var(--ease-silk)}
.report-nav-link i{font:9px var(--mono);font-style:normal;color:#7f8fb8;transition:color .3s}
.report-nav-link:hover{transform:translateY(-2px);color:#fff;border-color:rgba(214,198,255,.6)}
.report-nav-link.active{color:#12162c;border-color:transparent;background:linear-gradient(100deg,#ffc2b6,#cbb7ff);font-weight:700}
.report-nav-link.active i{color:rgba(18,22,44,.6)}

/* --- Star stage: full-bleed sky, no letterboxing ------------ */
.relation-star-canvas{min-height:0;border-color:rgba(198,177,255,.26);border-radius:2px}
.relation-star-canvas svg{width:100%;height:auto;aspect-ratio:720/420;min-height:0}
.relation-star-canvas::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 42%,rgba(6,10,28,.55) 100%)}
.relation-star-legend{z-index:2}
.review-brief-card{position:relative;overflow:hidden;border-color:rgba(198,177,255,.34);background:linear-gradient(145deg,rgba(30,41,88,.78),rgba(38,25,74,.62))}
.review-brief-card::before{content:"";position:absolute;width:320px;height:320px;right:-120px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(198,177,255,.2),transparent 68%);pointer-events:none}
.review-brief-card>*{position:relative;z-index:1}
.review-brief-chip{position:relative;overflow:hidden;background:rgba(8,14,36,.55);transition:transform .4s var(--ease-silk),border-color .35s,box-shadow .35s}
.review-brief-chip:hover{transform:translateY(-3px);border-color:rgba(214,198,255,.55);box-shadow:0 14px 30px rgba(4,8,26,.35)}

/* --- Relationship dossier: inline save panel ---------------- */
.dossier-save{margin:6px 0 16px;padding:20px 22px;border:1px solid rgba(255,177,165,.4);background:linear-gradient(105deg,rgba(255,157,145,.11),rgba(198,177,255,.11));box-shadow:0 18px 46px rgba(5,9,27,.2)}
.dossier-save[hidden]{display:none}
.dossier-save-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dossier-save-head strong{color:#f5f2ff;font:clamp(19px,2vw,25px)/1.3 var(--serif)}
.dossier-save-head strong em{color:#ffb2a5;font-style:normal}
.dossier-save-form{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}
.dossier-save-form input{flex:1 1 220px;min-width:0;padding:13px 14px;color:#eff4ff;border:1px solid rgba(202,212,255,.32);background:rgba(6,10,28,.5);font:13px "PingFang SC","Microsoft YaHei",sans-serif;transition:border-color .3s,box-shadow .3s}
.dossier-save-form input:focus{outline:0;border-color:#d3b9ff;box-shadow:0 0 0 3px rgba(198,177,255,.2)}
.dossier-save-form .signal-button{flex:0 0 auto}
.dossier-save-note{margin:12px 0 0;color:#aebddc;font:11px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
.dossier-progress{display:flex;align-items:center;gap:9px;margin-top:14px}
.dossier-progress i{flex:1 1 0;height:3px;background:rgba(186,202,255,.18);overflow:hidden}
.dossier-progress i b{display:block;width:0;height:100%;background:linear-gradient(90deg,#ff9e91,#c5a8ff);transition:width .8s var(--ease-silk)}
.dossier-progress i.is-filled b{width:100%}
.dossier-progress span{flex:0 0 auto;color:#c7b7ff;font:10px var(--mono);letter-spacing:.06em}

/* --- Cycle observation: readable at a glance ---------------- */
.cycle-observation{position:relative;overflow:hidden;border-radius:2px}
.cycle-observation::before{content:"";position:absolute;width:380px;height:380px;right:-150px;bottom:-230px;border-radius:50%;background:radial-gradient(circle,rgba(198,177,255,.16),transparent 66%);pointer-events:none}
.cycle-observation>*{position:relative;z-index:1}
.cycle-observation.is-archive-cycle{margin:16px 0 20px;padding:22px 20px;border:1px solid rgba(198,177,255,.38);background:radial-gradient(circle at 18% 0%,rgba(198,177,255,.18),transparent 42%),linear-gradient(160deg,rgba(14,20,48,.92),rgba(18,14,42,.88));box-shadow:inset 0 1px rgba(255,255,255,.06),0 18px 48px rgba(4,8,24,.28)}
.cycle-observation.is-cycle-gate{margin:10px 0 16px;padding:20px 18px;border:1px solid rgba(198,177,255,.34);background:linear-gradient(120deg,rgba(198,177,255,.12),rgba(255,157,145,.08)),rgba(10,16,40,.82)}
.cycle-observation.is-cycle-gate>strong{margin-bottom:8px}
.cycle-gate-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.cycle-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.cycle-meta span{padding:8px 11px;color:#dbe4fb;border:1px solid rgba(186,202,255,.26);background:rgba(8,14,36,.5);font:11px var(--mono);letter-spacing:.04em}
.cycle-spark{display:flex;align-items:stretch;gap:10px;min-height:132px;margin:2px 0 16px;padding:14px 12px 10px;border:1px solid rgba(186,202,255,.18);background:linear-gradient(180deg,rgba(10,16,40,.35),rgba(6,11,30,.55))}
.cycle-spark-col{flex:1 1 0;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px}
.cycle-spark-col i{display:block;width:100%;max-width:36px;min-height:14px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,#d2c0ff,#7f6fd4 70%,rgba(127,111,212,.2));box-shadow:0 0 18px rgba(197,168,255,.18);transform-origin:bottom;animation:cycleBarRise .7s var(--ease-silk) both;animation-delay:var(--bar-delay,0s)}
.cycle-spark-col i.is-latest{background:linear-gradient(180deg,#ffc2b6,#ff8f7d 68%,rgba(255,143,125,.22));box-shadow:0 0 18px rgba(255,158,145,.22)}
.cycle-spark-col b{color:#eef2ff;font:12px var(--mono);letter-spacing:.04em}
.cycle-spark-col span{color:#9eb0d3;font:10px var(--mono);letter-spacing:.04em}
.cycle-theme-chips{margin:0 0 14px}
.cycle-copy{display:grid;gap:8px}
.cycle-copy p{margin:0;color:#bdc9e4;font:13px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
@keyframes cycleBarRise{from{transform:scaleY(.05);opacity:0}to{transform:scaleY(1);opacity:1}}

/* --- Shared scroll reveal ---------------------------------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .85s var(--ease-silk),transform .85s var(--ease-silk)}
[data-reveal].is-revealed{opacity:1;transform:none}
[data-reveal][data-reveal-delay="1"]{transition-delay:.08s}
[data-reveal][data-reveal-delay="2"]{transition-delay:.16s}
[data-reveal][data-reveal-delay="3"]{transition-delay:.24s}

/* --- Spotlight surfaces ------------------------------------ */
.spotlight{position:relative}
.spotlight::after{content:"";position:absolute;inset:0;z-index:0;opacity:0;pointer-events:none;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(198,177,255,.16),transparent 62%);transition:opacity .4s}
.spotlight:hover::after{opacity:1}
.spotlight>*{position:relative;z-index:1}

/* --- Hero: deeper sky, live readout ------------------------ */
.hero{position:relative}
.hero::before{content:"";position:absolute;z-index:0;left:-14%;top:-24%;width:74%;height:126%;pointer-events:none;background:radial-gradient(ellipse at 34% 42%,rgba(154,140,255,.16),transparent 62%);filter:blur(18px);animation:auroraDrift 17s ease-in-out infinite alternate}
.hero-copy,.signal-stage{position:relative;z-index:1}
@keyframes auroraDrift{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(5%,4%,0) scale(1.12)}}
.hero h1{position:relative}
.hero-ticker{display:flex;align-items:center;gap:10px;margin:22px 0 0;padding:9px 12px;width:fit-content;max-width:100%;color:#b9c8ee;border:1px solid rgba(178,196,255,.2);background:rgba(11,17,42,.5);backdrop-filter:blur(10px);font:10px var(--mono);letter-spacing:.06em}
.hero-ticker i{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:#9ee8be;box-shadow:0 0 0 4px rgba(158,232,190,.12);animation:tickerBlink 2.6s ease-in-out infinite}
.hero-ticker b{color:#ffc0b6;font-weight:500}
@keyframes tickerBlink{0%,100%{opacity:.5}50%{opacity:1}}
.signal-button{position:relative;overflow:hidden}
.signal-button::before{content:"";position:absolute;inset:0;transform:translateX(-120%);background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);pointer-events:none}
.signal-button:hover::before{animation:buttonSheen .85s var(--ease-silk)}
@keyframes buttonSheen{to{transform:translateX(120%)}}

/* --- Mobile ------------------------------------------------- */
@media(max-width:800px){
  .topbar-actions{flex-wrap:nowrap!important;max-width:none!important;gap:6px}
  .nav-more-menu{position:fixed;right:14px;left:14px;top:64px;width:auto}
  .report-nav{padding:10px 0}
  .report-nav-link{padding:8px 11px;font-size:10px}
  .dossier-save{padding:17px 16px}
  .dossier-save-form{display:grid}
  .dossier-save-form .signal-button{width:100%}
  .hero-ticker{font-size:9px}
  .cycle-spark{min-height:118px;gap:8px}
  .cycle-spark-col{min-width:36px}
  .cycle-spark-col i{max-width:28px}
}
@media(max-width:440px){
  .topbar-actions .guide-button:not(.nav-more-button):not(.history-button){display:none}
}

@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
  .hero::before,.hero-ticker i,.cycle-spark-col i{animation:none!important}
  .nav-more-menu{animation:none}
  .signal-button:hover::before{animation:none}
  .spotlight::after{display:none}
  .cycle-spark-col i{transform:none;opacity:1}
}

/* ============================================================
   Observatory cinematic v3 路 screenshot review + archive
   A short, confidence-first handoff between OCR and the report.
   ============================================================ */
.review-fast-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:24px 0 18px;border:1px solid rgba(185,202,255,.16);background:rgba(185,202,255,.12)}
.review-fast-path span{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 14px;color:#7f8eae;background:#0d1532;font:11px var(--sans)}
.review-fast-path b{color:#68789d;font:9px var(--mono);font-weight:500;letter-spacing:.08em}
.review-fast-path .is-done{color:#b7c5e3;background:rgba(19,31,69,.96)}
.review-fast-path .is-done b{color:#81d9aa}
.review-fast-path .is-current{color:#fff;background:linear-gradient(110deg,rgba(255,126,105,.19),rgba(154,140,255,.18));box-shadow:inset 0 -2px #ff8b78}
.review-fast-path .is-current b{color:#ffad9f}

.screenshot-review-modal[data-review-version="3"] .screenshot-review-panel{width:min(920px,calc(100vw - 32px));max-height:min(900px,calc(100vh - 28px));padding:34px 38px 30px;border-color:rgba(190,205,255,.28);background:radial-gradient(circle at 88% 5%,rgba(154,140,255,.18),transparent 30%),linear-gradient(150deg,rgba(15,24,56,.99),rgba(8,13,31,.99));box-shadow:0 42px 120px rgba(0,0,0,.62),inset 0 1px rgba(255,255,255,.07)}
.screenshot-review-modal[data-review-version="3"] .screenshot-review-panel>h2{max-width:700px;margin:11px 0 0;color:#f3f6ff;font:500 clamp(34px,5vw,58px)/1.08 var(--serif);letter-spacing:-.075em}
.screenshot-review-modal[data-review-version="3"] .screenshot-review-panel>h2 em{color:#ff9381}
.screenshot-review-modal[data-review-version="3"] .screenshot-review-copy{max-width:720px;color:#aebbd5;font-size:12px;line-height:1.75}
.screenshot-review-modal[data-review-version="3"] .screenshot-review-summary{margin:16px 0;padding:13px 15px;color:#dce6ff;border-left:2px solid #ff8f7c;background:linear-gradient(90deg,rgba(255,143,124,.12),rgba(154,140,255,.05));font:11px/1.65 var(--sans)}
.screenshot-review-modal[data-review-version="3"] .screenshot-transcript-label{display:flex;justify-content:space-between;margin:18px 0 8px;color:#8798bd;font:10px var(--mono);letter-spacing:.06em}
.screenshot-review-modal[data-review-version="3"] #screenshot-transcript{min-height:190px;padding:18px;color:#edf3ff;border:1px solid rgba(186,204,255,.2);background:rgba(5,10,26,.58);font:13px/1.8 var(--sans);box-shadow:inset 0 18px 46px rgba(0,0,0,.14)}
.screenshot-review-modal[data-review-version="3"] #screenshot-transcript:focus{outline:0;border-color:rgba(255,155,139,.62);box-shadow:0 0 0 3px rgba(255,143,124,.1)}
.screenshot-review-modal[data-review-version="3"] .screenshot-review-global-actions{display:grid;grid-template-columns:minmax(220px,1.15fr) repeat(2,minmax(150px,.78fr));gap:9px;margin-top:16px}
.screenshot-review-modal[data-review-version="3"] .screenshot-review-global-actions>button{min-height:48px;margin:0}
.screenshot-review-modal[data-review-version="3"] .screenshot-review-global-actions .signal-button{grid-row:span 2}
.screenshot-review-modal[data-review-version="3"] .review-skip-toggle,.screenshot-review-modal[data-review-version="3"] .review-remembered-toggle,.screenshot-review-modal[data-review-version="3"] .review-calibration-toggle,.screenshot-review-modal[data-review-version="3"] .review-detail-toggle{font-size:10px}
.welcome-panel .welcome-primary-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:0 0 14px}
.welcome-panel .welcome-primary-row .welcome-primary{width:auto;margin:0}
.welcome-feedback-button{min-width:90px;padding:0 18px;color:#e8eeff;border:1px solid rgba(194,209,255,.3);background:rgba(9,15,37,.45);font:11px var(--sans);cursor:pointer;transition:border-color .25s,color .25s,background .25s}
.welcome-feedback-button:hover,.welcome-feedback-button:focus-visible{outline:0;color:#fff;border-color:#ffae9f;background:rgba(255,143,124,.1)}

.report-section[data-archive-version="3"]{color:#edf2ff;background:radial-gradient(circle at 86% 7%,rgba(139,111,255,.22),transparent 29%),radial-gradient(circle at 12% 48%,rgba(75,152,255,.12),transparent 26%),linear-gradient(154deg,#070c1c 0%,#0d1530 48%,#130d2b 100%)}
.report-section[data-archive-version="3"]::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0 7%,rgba(177,195,255,.04) 7% 7.08%,transparent 7.08% 93%,rgba(177,195,255,.04) 93% 93.08%,transparent 93%),linear-gradient(rgba(177,195,255,.035) 1px,transparent 1px);background-size:100% 100%,100% 92px;opacity:.6}
.report-section[data-archive-version="3"] .report-shell{z-index:2;width:min(1320px,calc(100% - 80px));padding-top:104px}
.report-section[data-archive-version="3"] .report-head{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:54px;align-items:end;margin-bottom:54px;padding-bottom:30px;border-bottom:1px solid rgba(184,202,255,.16)}
.report-section[data-archive-version="3"] .report-head h2{max-width:900px;margin:15px 0 0;font:500 clamp(52px,6.2vw,88px)/1.03 var(--serif);letter-spacing:-.09em}
.report-section[data-archive-version="3"] .report-head h2 em{display:block;color:#ff927f}
.archive-code{justify-self:end;width:190px;padding:17px 0 4px;border-top:1px solid rgba(188,205,255,.25);text-align:right}
.archive-code span,.archive-code strong,.archive-code p{display:block}
.archive-code span{color:#8798bc;font:9px var(--mono);letter-spacing:.14em}
.archive-code strong{margin:5px 0 11px;color:#d7c6ff;font:500 46px/.9 var(--serif)}
.archive-code p{margin:0;color:#9eb3db;font:10px var(--sans)}
.report-section[data-archive-version="3"] .paper-card{border-color:rgba(190,205,255,.2);background:linear-gradient(145deg,rgba(21,32,68,.84),rgba(15,21,48,.8));box-shadow:0 24px 60px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.05)}
.report-section[data-archive-version="3"] .score-card>p:last-child,.report-section[data-archive-version="3"] .signal-item,.report-section[data-archive-version="3"] .pattern-card>p{color:#c4cfe7}
.report-section[data-archive-version="3"] .quote-card{background:linear-gradient(145deg,rgba(255,143,124,.22),rgba(139,111,255,.15))}
.report-section[data-archive-version="3"] .full-reading{border:1px solid rgba(188,205,255,.18);background:linear-gradient(100deg,rgba(23,35,75,.9),rgba(32,23,65,.88))}
.report-section[data-archive-version="3"] .full-reading h3{color:#f1f5ff}
.report-section[data-archive-version="3"] .dark-button{color:#10162e;background:linear-gradient(100deg,#ffad9e,#c7b5ff)}

@media(max-width:800px){
  .review-fast-path span{display:grid;justify-items:start;gap:4px;min-height:62px;padding:9px}
  .welcome-panel .welcome-primary-row{grid-template-columns:1fr auto}
  .screenshot-review-modal[data-review-version="3"] .screenshot-review-panel{padding:25px 17px 20px}
  .screenshot-review-modal[data-review-version="3"] .screenshot-review-global-actions{grid-template-columns:1fr 1fr}
  .screenshot-review-modal[data-review-version="3"] .screenshot-review-global-actions .signal-button{grid-column:1/-1;grid-row:auto}
  .report-section[data-archive-version="3"] .report-shell{width:min(100% - 32px,620px);padding-top:74px}
  .report-section[data-archive-version="3"] .report-head{grid-template-columns:1fr;gap:26px;margin-bottom:34px}
  .report-section[data-archive-version="3"] .report-head h2{font-size:clamp(44px,13vw,68px)}
  .archive-code{justify-self:start;width:100%;text-align:left}
}

@media(prefers-reduced-motion:reduce){
  .review-fast-path .is-current{box-shadow:inset 0 -2px #ff8b78}
}
/* ---- Orrery hero stage (cinematic dial + through-waves) ---- */
.signal-stage.is-orrery{overflow:visible;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 88%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 88%,transparent 100%)}
.signal-stage.is-orrery::before{display:none}
body[data-observatory-version="3"] .signal-stage.is-orrery{height:660px}
body[data-observatory-version="3"] .signal-stage.is-orrery svg{width:min(112%,960px);max-width:none;margin:0;justify-self:center;transform:none}
.signal-stage.is-orrery .field-glow-track{left:50%;top:50%;width:520px;height:520px;transform:translate(-50%,-50%);pointer-events:none}
.signal-stage.is-orrery .field-glow{background:radial-gradient(circle,rgba(255,181,168,.18),rgba(154,140,255,.16) 38%,transparent 68%)}

.orrery-dial .dial-ring{fill:none;stroke:rgba(186,202,255,.16);stroke-width:1}
.orrery-dial .dial-ring-edge{stroke:rgba(210,222,255,.32);stroke-width:1.35}
.orrery-dial .dial-ring-dash{stroke-dasharray:2.5 10;stroke:rgba(176,192,255,.2)}
.orrery-dial .dial-ticks{fill:none;stroke:rgba(210,222,255,.42);stroke-width:8;stroke-dasharray:1.6 12.4}
.orrery-dial .dial-ticks-mid{stroke-width:5;stroke:rgba(198,214,255,.28);stroke-dasharray:1 9.5}
.orrery-dial .dial-ticks-fine{stroke-width:3;stroke:rgba(186,202,255,.16);stroke-dasharray:.7 6.8}
.orrery-dial .dial-cross{fill:none;stroke:rgba(176,192,255,.09);stroke-width:1}
.orrery-dial .dial-cross-diag{stroke:rgba(176,192,255,.05)}

.orrery-arc-text{fill:rgba(220,228,255,.62);font:11px var(--sans);letter-spacing:.32em}
.orrery-dust circle{fill:rgba(226,234,255,.6);animation:orreryDust 4.8s ease-in-out infinite}
.orrery-dust circle:nth-child(3n){animation-delay:-1.4s}
.orrery-dust circle:nth-child(4n){animation-delay:-2.6s;fill:rgba(255,181,168,.5)}
.orrery-dust circle:nth-child(5n){animation-delay:-3.2s}

.orrery-coord{position:absolute;z-index:3;margin:0;color:rgba(186,202,255,.58);font:9px var(--mono);letter-spacing:.08em;pointer-events:none}
.orrery-coord span{display:block;margin-bottom:4px;color:rgba(255,181,168,.72);font-size:8px;letter-spacing:.14em}
.orrery-coord-ra{top:11%;left:14%}
.orrery-coord-dec{top:44%;right:0;bottom:auto;text-align:right;white-space:nowrap;line-height:1.45}

.signal-stage.is-orrery .signal-line{stroke-width:2.6;stroke-dasharray:1680;stroke-dashoffset:1680;animation:draw-line 2.8s cubic-bezier(.55,0,.2,1) forwards}
.signal-stage.is-orrery .violet-line{animation-delay:.28s}
.signal-stage.is-orrery .signal-trail{stroke-width:18;opacity:.09}

.signal-stage.is-orrery .node{stroke-width:2.5;stroke:rgba(10,14,32,.55)}
.signal-stage.is-orrery .node-core{fill:#fff8f4;stroke:#ffc2b4;stroke-width:2.8;animation:orreryCorePulse 2.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.signal-stage.is-orrery .core-halo{fill:none;stroke:rgba(255,181,168,.45);stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:orreryHalo 3.2s ease-in-out infinite}
.signal-stage.is-orrery .core-halo-outer{stroke:rgba(154,140,255,.28);stroke-width:1;animation-delay:-1.1s;animation-duration:4s}
.signal-stage.is-orrery .core-bloom{pointer-events:none;animation:orreryBloom 3.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}

.orrery-sweep{transform-box:view-box;transform-origin:450px 300px;animation:orrerySweep 16s linear infinite;opacity:.8}
.orrery-orbiters .orbiter{filter:drop-shadow(0 0 8px currentColor)}
.orbiter-track{transform-box:view-box;transform-origin:450px 300px}
.orbiter-track-coral{animation:orreryOrbit 13s linear infinite}
.orbiter-track-violet{animation:orreryOrbit 18s linear infinite reverse}
.orbiter-track-soft{animation:orreryOrbit 22s linear infinite}
.orbiter-coral{fill:var(--coral)}
.orbiter-violet{fill:var(--violet)}
.orbiter-soft{fill:rgba(199,212,255,.85)}

.signal-stage.is-orrery .field-readout{right:0;top:7%;padding:12px 14px;border-left:1px solid rgba(255,181,168,.55);background:linear-gradient(120deg,rgba(12,18,42,.35),transparent);backdrop-filter:blur(6px)}
.signal-stage.is-orrery .hero-hud{left:8%;right:auto;bottom:7%;opacity:.65}

@keyframes orrerySweep{to{transform:rotate(360deg)}}
@keyframes orreryOrbit{to{transform:rotate(360deg)}}
@keyframes orreryCorePulse{0%,100%{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}
@keyframes orreryHalo{0%,100%{opacity:.35;transform:scale(.92)}50%{opacity:.85;transform:scale(1.18)}}
@keyframes orreryBloom{0%,100%{opacity:.55;transform:scale(.95)}50%{opacity:.95;transform:scale(1.08)}}
@keyframes orreryDust{0%,100%{opacity:.22}50%{opacity:.95}}

@media(max-width:1040px){
  body[data-observatory-version="3"] .signal-stage.is-orrery{height:540px}
  .orrery-coord-ra{left:2%}
  .orrery-coord-dec{right:0;top:38%}
}
@media(max-width:800px){
  body[data-observatory-version="3"] .signal-stage.is-orrery{height:420px;margin-top:8px}
  .orrery-arc-text{font-size:9px;letter-spacing:.18em}
  .orrery-coord{display:none}
  .signal-stage.is-orrery .hero-hud{display:none}
  .signal-stage.is-orrery .field-readout{right:0;top:4%;padding:8px 10px}
  .signal-stage.is-orrery .field-readout strong{font-size:22px}
  .signal-stage.is-orrery .core-halo-outer,.signal-stage.is-orrery .core-bloom{opacity:.7}
}
@media(prefers-reduced-motion:reduce){
  .orrery-sweep,.orbiter-track-coral,.orbiter-track-violet,.orbiter-track-soft,.orrery-dust circle,.signal-stage.is-orrery .node-core,.signal-stage.is-orrery .core-halo,.signal-stage.is-orrery .core-bloom{animation:none!important}
  .signal-stage.is-orrery .signal-line{stroke-dashoffset:0}
}
/* ---- Intake console: portal → particle beam → torus → readout ---- */
.console-head{max-width:980px;margin:0 0 30px;text-align:left}
.console-head .mono-label{display:inline-flex;align-items:center;gap:9px;margin:0}
.console-head h2{max-width:none;margin:18px 0 0;color:#f4f6ff;font:clamp(34px,4.2vw,56px)/1.16 var(--serif);letter-spacing:-.05em;text-wrap:balance;text-shadow:0 0 40px rgba(154,140,255,.16)}
.console-head h2 em{color:#ffb5a8;font-style:normal}
.console-head-lede{max-width:640px;margin:18px 0 0;color:#b8c6e4;font:13px/1.9 "PingFang SC","Microsoft YaHei",sans-serif}
.section-head,.report-head,.block-heading,.analysis-copy,.archive-stage-copy,.launch-letter-copy{text-align:left}
.station-gauge{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0 0;padding:10px 14px;border:1px solid rgba(185,202,255,.14);background:linear-gradient(100deg,rgba(10,16,38,.5),rgba(16,22,52,.32))}
.gauge-state{display:flex;align-items:center;gap:9px;color:#c8d5f2;font:10px/1.6 var(--mono);letter-spacing:.06em}
.gauge-state::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#ffb5a8;box-shadow:0 0 10px rgba(255,157,145,.8);transition:background .3s,box-shadow .3s}
.station-gauge.is-ready .gauge-state::before{background:#8ff0c8;box-shadow:0 0 10px rgba(120,240,196,.85)}
.gauge-figures{display:flex;align-items:baseline;gap:22px}
.gauge-figure{display:flex;align-items:baseline;gap:7px}
.gauge-figure b{color:#f1f5ff;font:19px/1 var(--serif);letter-spacing:-.02em}
.gauge-figure i{color:#8b9cc0;font:9px var(--mono);font-style:normal;letter-spacing:.1em}
.gauge-figure.is-side b{color:#c7b8ff;font-size:14px}
body .input-station .input-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:8px;padding:0;border:0;background:transparent}
.input-tab{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:1px 11px;padding:11px 13px;text-align:left;border:1px solid rgba(232,233,240,.16);background:rgba(8,10,19,.32);transition:border-color .3s var(--ease-silk),background .3s var(--ease-silk),transform .3s var(--ease-silk),box-shadow .3s var(--ease-silk)}
.input-tab:hover{transform:translateY(-2px);border-color:rgba(199,183,255,.4)}
.input-tab .tab-icon{grid-row:1/3;align-self:center;display:grid;place-items:center;width:32px;height:32px;color:#dfe6ff;border:1px solid rgba(198,181,255,.34);font:14px/1 var(--mono);transition:border-color .3s,color .3s,background .3s}
.input-tab b{align-self:end;color:#e9efff;font:12px/1.45 "PingFang SC","Microsoft YaHei",sans-serif;font-weight:600}
.input-tab small{align-self:start;color:#8fa0c4;font:9px/1.5 "PingFang SC","Microsoft YaHei",sans-serif}
.input-tab.active{border-color:rgba(255,181,168,.58);background:linear-gradient(135deg,rgba(255,113,91,.18),rgba(154,140,255,.15));box-shadow:0 14px 34px rgba(2,6,20,.28)}
.input-tab.active .tab-icon{color:#ffe0d6;border-color:rgba(255,181,168,.72);background:radial-gradient(circle,rgba(255,157,145,.26),transparent 72%)}
.input-tab.active small{color:#d8c9ff}

.dropzone.is-portal{position:relative;isolation:isolate;min-height:248px;overflow:hidden;border-style:solid;border-color:rgba(255,181,168,.38);background:radial-gradient(circle at 50% 46%,rgba(154,140,255,.18),transparent 34%),radial-gradient(circle at 50% 50%,rgba(255,113,91,.08),transparent 55%),rgba(8,14,34,.55)}
.dropzone.is-portal:hover,.dropzone.is-portal:focus-within{border-color:rgba(255,181,168,.72);background:radial-gradient(circle at 50% 46%,rgba(154,140,255,.24),transparent 36%),radial-gradient(circle at 50% 50%,rgba(255,113,91,.14),transparent 58%),rgba(10,16,40,.62);box-shadow:0 0 40px rgba(154,140,255,.16),0 0 60px rgba(255,113,91,.08)}
.portal-rings{position:absolute;inset:50% auto auto 50%;width:168px;height:168px;margin:-84px 0 0 -84px;pointer-events:none;z-index:0}
.portal-rings i{position:absolute;inset:0;border:1px solid rgba(198,181,255,.28);border-radius:50%;box-shadow:0 0 24px rgba(154,140,255,.12),inset 0 0 18px rgba(255,181,168,.06);animation:portalSpin 14s linear infinite}
.portal-rings i:nth-child(2){inset:14px;border-color:rgba(255,181,168,.34);animation-duration:10s;animation-direction:reverse}
.portal-rings i:nth-child(3){inset:28px;border-color:rgba(183,205,255,.22);border-style:dashed;animation-duration:18s}
.portal-rings i:nth-child(4){inset:44px;border-color:rgba(255,181,168,.45);box-shadow:0 0 28px rgba(255,157,145,.22);animation:portalPulse 2.8s ease-in-out infinite}
.portal-beam{position:absolute;left:50%;top:18%;width:2px;height:38%;transform:translateX(-50%);background:linear-gradient(180deg,transparent,rgba(255,181,168,.55),rgba(154,140,255,.35),transparent);filter:blur(.4px);opacity:.7;pointer-events:none;z-index:0;animation:portalBeam 2.4s ease-in-out infinite}
.dropzone.is-portal .drop-icon,.dropzone.is-portal strong,.dropzone.is-portal small,.dropzone.is-portal .portal-meta{position:relative;z-index:1}
.dropzone.is-portal .drop-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;color:#ffe0d6;border:1px solid rgba(255,181,168,.4);border-radius:50%;background:radial-gradient(circle,rgba(255,157,145,.22),rgba(18,24,56,.35));font:22px/1 var(--serif);box-shadow:0 0 28px rgba(255,157,145,.22)}
.dropzone.is-portal strong{font:18px var(--serif);letter-spacing:-.04em}
.dropzone.is-portal small{max-width:320px;margin-top:8px;line-height:1.65}
.portal-meta{display:block;margin-top:12px;color:#9eb0d3;font:10px/1.55 var(--mono)}

@keyframes portalSpin{to{transform:rotate(360deg)}}
@keyframes portalPulse{0%,100%{opacity:.45;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
@keyframes portalBeam{0%,100%{opacity:.35;transform:translateX(-50%) scaleY(.85)}50%{opacity:.9;transform:translateX(-50%) scaleY(1.08)}}

@media(max-width:800px){
  .signal-stage.is-orrery .field-glow-track{width:300px;height:300px}
  .dropzone.is-portal{min-height:220px}
  .portal-rings{width:140px;height:140px;margin:-70px 0 0 -70px}
  .console-head{margin-bottom:22px}
  .console-head-lede{margin-left:0}
  body .input-station .input-tabs{grid-template-columns:1fr;gap:6px}
  .input-tab{padding:9px 11px}
  .station-gauge{flex-wrap:wrap;gap:8px 14px}
  .gauge-figures{gap:16px}
}
@media(prefers-reduced-motion:reduce){
  .portal-rings i,.portal-beam{animation:none!important}
}

/* ---- Deep archive stage (3D stacked dossier fan) ---- */
.archive-stage{position:relative;z-index:2;padding:52px 0 12px;border-top:1px solid rgba(181,198,255,.12)}
.archive-stage.is-inline{margin:22px 0 8px;padding:28px 22px 18px;border:1px solid rgba(188,205,255,.2);border-top:1px solid rgba(188,205,255,.2);background:radial-gradient(circle at 86% 0%,rgba(154,140,255,.14),transparent 42%),linear-gradient(160deg,rgba(14,20,48,.72),rgba(10,14,34,.55));box-shadow:inset 0 1px rgba(255,255,255,.05)}
.archive-stage.is-inline .archive-stage-copy h2{font:clamp(26px,3.2vw,36px)/1.22 var(--serif)}
.archive-stage.is-inline .archive-fan{min-height:300px}
.archive-stage.is-inline .archive-fan-deck{height:300px}
.archive-stage-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1.05fr);gap:28px 36px;align-items:center}
.archive-stage-copy{max-width:460px}
.archive-stage-copy .mono-label{margin-bottom:14px}
.archive-stage-copy h2{margin:0;color:#f4f6ff;font:clamp(34px,4.2vw,52px)/1.18 var(--serif);letter-spacing:-.05em}
.archive-stage-copy h2 em{color:#ffb5a8;font-style:normal}
.archive-stage-lede{margin:16px 0 0;max-width:400px;color:#b8c6e4;font:14px/1.8 "PingFang SC","Microsoft YaHei",sans-serif}
.archive-stage-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:26px}
.archive-stage-note{margin:18px 0 0;color:#7f90b2;font:11px/1.6 var(--sans)}
.archive-fan{position:relative;min-height:420px;display:grid;place-items:center;perspective:1400px}
.archive-fan-glow{position:absolute;inset:18% 8% 12% 18%;background:radial-gradient(ellipse at 60% 55%,rgba(154,140,255,.22),transparent 58%),radial-gradient(ellipse at 70% 60%,rgba(255,157,145,.12),transparent 50%);filter:blur(8px);pointer-events:none}
.archive-fan-deck{position:relative;width:min(100%,520px);height:380px;transform-style:preserve-3d;transform:rotateX(8deg) rotateY(-12deg);transition:transform .7s cubic-bezier(.16,1,.3,1)}
.archive-fan:hover .archive-fan-deck,.archive-fan:focus-within .archive-fan-deck{transform:rotateX(6deg) rotateY(-6deg)}
.archive-sheet,.archive-cover{position:absolute;border:1px solid rgba(188,205,255,.22);background:linear-gradient(160deg,rgba(22,32,72,.78),rgba(10,16,40,.88));box-shadow:0 28px 60px rgba(2,6,20,.36),inset 0 1px rgba(255,255,255,.07);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform-style:preserve-3d;transition:transform .65s cubic-bezier(.16,1,.3,1),box-shadow .65s}
.archive-sheet{width:210px;height:280px;padding:16px 14px 14px;overflow:hidden}
.archive-sheet>span{display:block;color:#93a4c8;font:9px var(--mono);letter-spacing:.1em}
.archive-sheet strong{display:block;margin:8px 0 12px;color:#eef3ff;font:15px/1.3 var(--serif)}
.archive-sheet svg{display:block;width:100%;height:auto}
.archive-sheet small{display:block;margin-top:12px;color:#9eb0d3;font:10px/1.55 var(--sans)}
.archive-sheet ul{margin:0;padding:0;list-style:none}
.archive-sheet li{display:grid;grid-template-columns:auto auto 1fr;gap:6px;align-items:baseline;margin:0 0 10px;color:#d5def2;font:11px/1.45 var(--sans)}
.archive-sheet li em{color:#7f90b2;font:9px var(--mono);font-style:normal}
.archive-sheet li b{color:#ffb5a8;font-weight:600}
.archive-sheet-legend{display:flex;gap:12px;margin-top:12px;color:#9eb0d3;font:10px var(--mono)}
.archive-sheet-legend i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;vertical-align:middle}
.archive-sheet-legend i.is-you{background:#ff8368;box-shadow:0 0 10px rgba(255,131,104,.45)}
.archive-sheet-legend i.is-other{background:#9a8cff;box-shadow:0 0 10px rgba(154,140,255,.45)}
.sheet-radar{left:0;top:20%;transform:translate3d(0,0,-90px) rotateY(28deg) rotateZ(-3deg);z-index:1;opacity:.88}
.sheet-quotes{left:18%;top:11%;transform:translate3d(0,0,-40px) rotateY(16deg) rotateZ(-1deg);z-index:2;border-color:rgba(198,177,255,.28)}
.sheet-rhythm{left:38%;top:5%;transform:translate3d(0,0,16px) rotateY(5deg);z-index:3;border-color:rgba(255,181,168,.28);box-shadow:0 32px 70px rgba(2,6,20,.4),0 0 40px rgba(154,140,255,.08)}
.archive-fan:hover .sheet-radar{transform:translate3d(-28px,6px,-110px) rotateY(34deg) rotateZ(-4deg);opacity:1}
.archive-fan:hover .sheet-quotes{transform:translate3d(-14px,2px,-50px) rotateY(20deg)}
.archive-fan:hover .sheet-rhythm{transform:translate3d(6px,0,28px) rotateY(2deg)}
.archive-cover{right:0;top:0;width:168px;height:320px;z-index:4;padding:0;overflow:visible;border-color:rgba(186,202,255,.3);background:linear-gradient(145deg,rgba(28,36,78,.96),rgba(14,18,44,.98));transform:translate3d(0,0,48px) rotateY(-22deg);box-shadow:0 36px 80px rgba(2,6,20,.45),inset 0 1px rgba(255,255,255,.08)}
.archive-fan:hover .archive-cover{transform:translate3d(14px,0,64px) rotateY(-14deg)}
.archive-cover-spine{position:absolute;left:0;top:0;bottom:0;width:14px;background:linear-gradient(90deg,rgba(255,181,168,.35),rgba(154,140,255,.18) 40%,rgba(8,12,28,.2));border-right:1px solid rgba(255,255,255,.08)}
.archive-cover-body{position:relative;height:100%;padding:28px 18px 22px 28px;display:flex;flex-direction:column}
.archive-cover-body>p{margin:0;color:#eef3ff;font:22px/1.15 var(--serif);letter-spacing:.04em}
.archive-cover-body strong{display:block;margin:18px 0 10px;color:#ffb5a8;font:clamp(48px,6vw,64px)/.9 var(--serif);letter-spacing:-.06em;text-shadow:0 0 28px rgba(255,157,145,.35)}
.archive-cover-body>small{color:#9eb0d3;font:9px/1.5 var(--mono);letter-spacing:.14em}
.archive-cover-tabs{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.archive-cover-tabs span{color:#c7d4ff;font:10px var(--mono);letter-spacing:.08em;opacity:.72}
.archive-cover-clip{position:absolute;right:-8px;top:48%;width:18px;height:34px;border:1px solid rgba(255,181,168,.45);border-radius:9px;background:radial-gradient(circle at 30% 40%,rgba(255,181,168,.35),rgba(18,24,56,.8));box-shadow:0 0 18px rgba(255,157,145,.25);transform:translateY(-50%)}

@media(max-width:1040px){
  .archive-stage-grid{grid-template-columns:1fr;gap:18px}
  .archive-stage-copy{max-width:none}
  .archive-fan{min-height:360px}
  .archive-fan-deck{height:340px;transform:rotateX(4deg) rotateY(-6deg)}
}
@media(max-width:800px){
  .archive-stage{padding:12px 0 0}
  .archive-stage-copy h2{font-size:clamp(28px,8vw,36px)}
  .archive-fan{min-height:300px}
  .archive-fan-deck{width:100%;height:300px;transform:none}
  .archive-sheet{width:150px;height:210px;padding:12px 10px}
  .archive-sheet strong{font-size:13px;margin:6px 0 8px}
  .archive-sheet li{font-size:10px;margin-bottom:7px}
  .sheet-radar{left:0;top:16%;transform:rotate(-6deg)}
  .sheet-quotes{left:18%;top:8%;transform:rotate(-2deg)}
  .sheet-rhythm{left:36%;top:4%;transform:rotate(1deg)}
  .archive-cover{right:0;top:0;width:126px;height:240px}
  .archive-cover-body{padding:18px 12px 14px 20px}
  .archive-cover-body>p{font-size:16px}
  .archive-cover-body strong{font-size:40px;margin:10px 0 6px}
  .archive-fan:hover .sheet-radar,.archive-fan:hover .sheet-quotes,.archive-fan:hover .sheet-rhythm,.archive-fan:hover .archive-cover{transform:none}
  .archive-fan:hover .sheet-radar{transform:rotate(-6deg)}
  .archive-fan:hover .sheet-quotes{transform:rotate(-2deg)}
  .archive-fan:hover .sheet-rhythm{transform:rotate(1deg)}
  .archive-fan:hover .archive-cover{transform:none}
}
@media(prefers-reduced-motion:reduce){
  .archive-fan-deck,.archive-sheet,.archive-cover{transition:none!important}
  .archive-fan:hover .archive-fan-deck,.archive-fan:focus-within .archive-fan-deck{transform:rotateX(8deg) rotateY(-12deg)}
  .archive-fan:hover .sheet-radar{transform:translate3d(0,0,-90px) rotateY(28deg) rotateZ(-3deg)}
  .archive-fan:hover .sheet-quotes{transform:translate3d(0,0,-40px) rotateY(16deg) rotateZ(-1deg)}
  .archive-fan:hover .sheet-rhythm{transform:translate3d(0,0,16px) rotateY(5deg)}
  .archive-fan:hover .archive-cover{transform:translate3d(0,0,48px) rotateY(-22deg)}
}

/* ---- Hero: waves lead, dial dissolves into the deep field ---- */
.signal-stage.is-orrery .orrery-dial{-webkit-mask-image:radial-gradient(circle closest-side,#000 30%,rgba(0,0,0,.5) 62%,rgba(0,0,0,.14) 84%,transparent 99%);mask-image:radial-gradient(circle closest-side,#000 30%,rgba(0,0,0,.5) 62%,rgba(0,0,0,.14) 84%,transparent 99%)}
.signal-stage.is-orrery .dial-ticks{stroke:rgba(206,220,255,.2)}
.signal-stage.is-orrery .dial-ticks-mid{stroke:rgba(196,212,255,.12)}
.signal-stage.is-orrery .dial-ticks-fine{stroke:transparent}
.signal-stage.is-orrery .dial-ring-edge{stroke:rgba(206,220,255,.14)}
.signal-stage.is-orrery .dial-cross{stroke:rgba(176,192,255,.05)}
.signal-stage.is-orrery .dial-core{opacity:.9}
.signal-stage.is-orrery .orrery-dust{-webkit-mask-image:radial-gradient(circle closest-side,#000 40%,transparent 99%);mask-image:radial-gradient(circle closest-side,#000 40%,transparent 99%)}
.signal-stage.is-orrery .orrery-arc-text{fill:rgba(220,228,255,.42)}
.signal-stage.is-orrery .signal-line,.signal-stage.is-orrery .signal-trail,.signal-stage.is-orrery .signal-nodes{transform-box:fill-box;transform-origin:50% 50%}
.signal-stage.is-orrery .coral-line{animation:draw-line 2.6s cubic-bezier(.55,0,.2,1) forwards,waveSwellCoral 13s 2.6s var(--ease-silk) infinite}
.signal-stage.is-orrery .violet-line{animation:draw-line 2.6s .28s cubic-bezier(.55,0,.2,1) forwards,waveSwellViolet 15s 2.9s var(--ease-silk) infinite}
.signal-stage.is-orrery .coral-trail{animation:waveSwellCoral 13s 2.6s var(--ease-silk) infinite}
.signal-stage.is-orrery .violet-trail{animation:waveSwellViolet 15s 2.9s var(--ease-silk) infinite}
.signal-stage.is-orrery .signal-nodes{animation:waveNodeSettle 13s 2.6s var(--ease-silk) infinite}

@keyframes waveSwellCoral{0%,100%{transform:translateY(-5px) scaleY(1)}50%{transform:translateY(6px) scaleY(1.06)}}
@keyframes waveSwellViolet{0%,100%{transform:translateY(6px) scaleY(1.05)}50%{transform:translateY(-6px) scaleY(.96)}}
@keyframes waveNodeSettle{0%,100%{transform:translateY(-1.5px)}50%{transform:translateY(1.5px)}}

/* ---- Analysis chamber: immersive, starfield stays visible through glass ---- */
.analysis-stage{min-height:100svh!important;border:0;background:radial-gradient(ellipse at 50% 38%,rgba(255,157,145,.14),transparent 44%),radial-gradient(ellipse at 72% 62%,rgba(154,140,255,.16),transparent 48%),linear-gradient(165deg,rgba(7,11,28,.58) 0%,rgba(16,24,51,.62) 52%,rgba(20,15,44,.68) 100%);backdrop-filter:blur(2px)}
.analysis-stage::before{opacity:.1;background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 42%,#000 18%,transparent 78%);mask-image:radial-gradient(ellipse at 50% 42%,#000 18%,transparent 78%)}
.analysis-stage:not(.hidden){animation:analysisChamberIn .7s var(--ease-silk) both}
@keyframes analysisChamberIn{from{opacity:.35;transform:translateY(18px)}to{opacity:1;transform:none}}
body.demo-reading #particle-field{z-index:1;opacity:1;filter:brightness(1.55) saturate(1.35)}
body.demo-reading main>:not(.analysis-stage){opacity:.28;filter:saturate(.65);transition:opacity .45s ease,filter .45s ease;pointer-events:none}
body.demo-reading .topbar{opacity:.5}
body.demo-reading .analysis-stage{position:relative;z-index:2;opacity:1;filter:none;pointer-events:auto}
.analysis-shell{width:min(1520px,calc(100% - 48px))!important;min-height:100svh!important;grid-template-columns:minmax(240px,.88fr) minmax(460px,1.55fr) minmax(240px,.92fr);gap:clamp(28px,4vw,72px);padding:clamp(40px,6vh,72px) 0!important;align-items:center}
.analysis-copy h2{max-width:14em;font-size:clamp(34px,3.6vw,54px);line-height:1.15;letter-spacing:-.05em}
.analysis-copy #analysis-subtitle{max-width:28em;color:#c4d0ea;font:15px/1.75 "PingFang SC","Microsoft YaHei",sans-serif}
.analysis-radar{width:100%;height:clamp(420px,42vw,620px);justify-self:center}
.analysis-radar .radar-rings i{inset:7%;border-color:rgba(200,214,255,.16)}
.analysis-radar .radar-rings i:nth-child(2){inset:16%}
.analysis-radar .radar-rings i:nth-child(3){inset:25.5%}
.analysis-radar .radar-rings i:nth-child(4){inset:35%}
.analysis-radar .radar-crosshair{inset:10%;border-color:rgba(188,198,255,.13)}
.analysis-radar .radar-core{width:clamp(96px,10vw,136px);height:clamp(96px,10vw,136px);font-size:clamp(32px,3.4vw,48px)}
.analysis-radar .radar-core-label{margin-top:14px;color:#c3d2f2;font-size:10px}
.analysis-radar::before{inset:3%;border-color:rgba(140,166,255,.18)}
.analysis-radar .radar-sweep{inset:3%}
.analysis-radar::after{inset:-8%}
.analysis-radar #analysis-waveform{bottom:7%;left:6%;width:88%;height:clamp(72px,8vw,110px)}
.analysis-log{padding:16px 16px 14px;border:1px solid rgba(186,202,255,.18);background:linear-gradient(160deg,rgba(14,22,48,.55),rgba(10,14,32,.35));backdrop-filter:blur(8px)}
.analysis-steps{display:grid;gap:14px}
.analysis-step{padding:12px 14px;border:1px solid rgba(186,202,255,.12);background:rgba(12,18,40,.35)}
.analysis-step.active{border-color:rgba(255,181,168,.35);background:rgba(255,157,145,.08)}

@media(max-width:1100px){
  .analysis-shell{width:min(100% - 40px,1080px)!important;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px}
  .analysis-radar{grid-row:1/3;grid-column:2;height:clamp(360px,48vw,520px)}
  .analysis-steps{grid-column:1}
}
@media(max-width:800px){
  body.demo-reading main>:not(.analysis-stage){opacity:.22}
  .analysis-stage,.analysis-shell{min-height:100svh!important}
  .analysis-shell{width:min(100% - 28px,620px)!important;grid-template-columns:1fr;gap:22px;padding:28px 0 40px!important}
  .analysis-radar{grid-row:auto;grid-column:auto;height:min(86vw,380px);order:-1}
  .analysis-radar .radar-core{width:88px;height:88px;font-size:32px}
  .analysis-copy h2{font-size:clamp(30px,9vw,42px)}
}
@media(prefers-reduced-motion:reduce){
  .analysis-stage:not(.hidden){animation:none}
  body.demo-reading main>:not(.analysis-stage){transition:none}
}
@media(prefers-reduced-motion:reduce){
  .signal-stage.is-orrery .coral-line,.signal-stage.is-orrery .coral-trail,.signal-stage.is-orrery .violet-line,.signal-stage.is-orrery .violet-trail,.signal-stage.is-orrery .signal-nodes{animation:none!important;transform:none}
  .signal-stage.is-orrery .signal-line{stroke-dashoffset:0}
}

/* ---- Wave seam: hero waves keep flowing into the intake ---- */
.wave-seam{position:relative;z-index:0;height:132px;margin:-46px 0 -34px;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%)}
.wave-seam svg{display:block;width:200%;height:100%;overflow:visible;animation:seamDrift 34s linear infinite}
.seam-wave{fill:none;stroke-width:1.6;stroke-linecap:round;filter:blur(.2px)}
.seam-wave-coral{stroke:rgba(255,157,145,.22)}
.seam-wave-violet{stroke:rgba(154,140,255,.2)}
@keyframes seamDrift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:800px){.wave-seam{height:96px;margin:-30px 0 -26px}}
@media(prefers-reduced-motion:reduce){.wave-seam svg{animation:none!important}}

/* ---- Section rhythm: major stages share a similar viewport weight ---- */
.hero{min-height:min(88svh,860px)}
.intake{padding:clamp(56px,8vh,96px) 0 clamp(48px,7vh,84px)}
.report-block{padding:clamp(10px,1.6vh,18px) 0}
@media(max-width:800px){.hero{min-height:0}}

/* ---- Full-page archive (replaces small history modal) ---- */
body.is-archive-view{overflow:hidden}
.archive-page[hidden]{display:none!important}
.archive-page{position:fixed;inset:0;z-index:50;overflow:auto;background:radial-gradient(circle at 18% 0%,rgba(154,140,255,.18),transparent 36%),radial-gradient(circle at 86% 12%,rgba(255,157,145,.14),transparent 34%),linear-gradient(165deg,#070b1c 0%,#101833 52%,#140f2c 100%)}
.archive-page-shell{padding:28px 0 80px}
.archive-page-head{display:grid;gap:18px;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid rgba(186,202,255,.18)}
.archive-page-head .archive-back{width:fit-content;margin:0}
.archive-page-head h1{margin:10px 0 0;color:#f4f6ff;font:clamp(36px,5vw,58px)/1.1 var(--serif);letter-spacing:-.06em}
.archive-page-head #history-copy{max-width:720px;margin:12px 0 0;color:#b8c6e4;font:14px/1.8 "PingFang SC","Microsoft YaHei",sans-serif}
.archive-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}
.temp-calendar{margin:0 0 26px;padding:22px 22px 18px;border:1px solid rgba(186,202,255,.22);background:radial-gradient(circle at 88% 0%,rgba(255,157,145,.12),transparent 42%),linear-gradient(160deg,rgba(14,22,48,.88),rgba(12,16,36,.78))}
.temp-calendar-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}
.temp-calendar-titles h2{margin:8px 0 0;color:#f3f6ff;font:clamp(24px,3vw,34px)/1.2 var(--serif)}
.temp-calendar-titles>p:last-child{margin:8px 0 0;color:#aebddc;font:13px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
.temp-calendar-nav{display:flex;gap:8px;flex:0 0 auto}
.temp-calendar-nav .reset-button{margin:0;min-width:42px;padding:8px 10px}
.temp-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px;color:#8fa2c8;font:10px var(--mono);text-align:center;letter-spacing:.08em}
.temp-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.temp-day{appearance:none;-webkit-appearance:none;position:relative;width:100%;aspect-ratio:1;min-height:44px;padding:6px 4px 4px;border:1px solid rgba(186,202,255,.14);border-radius:0;background:rgba(8,12,28,.45);color:#d7e2f7;cursor:pointer;text-align:left;font:inherit;transition:transform .2s,border-color .2s,box-shadow .2s}
.temp-day.is-empty{border-color:transparent;background:transparent;pointer-events:none}
.temp-day b{display:block;font:11px var(--mono);color:#9eb0d3}
.temp-day i{display:block;margin-top:4px;color:#f4f6ff;font:12px/1 var(--serif);font-style:normal}
.temp-day.level-0{background:rgba(8,12,28,.35)}
.temp-day.level-1{background:linear-gradient(160deg,rgba(90,130,200,.28),rgba(40,60,110,.45));border-color:rgba(140,180,255,.28)}
.temp-day.level-2{background:linear-gradient(160deg,rgba(150,140,220,.32),rgba(70,80,150,.48));border-color:rgba(180,170,255,.34)}
.temp-day.level-3{background:linear-gradient(160deg,rgba(255,170,150,.34),rgba(150,120,210,.42));border-color:rgba(255,180,160,.4)}
.temp-day.level-4{background:linear-gradient(160deg,rgba(255,140,120,.48),rgba(200,120,180,.4));border-color:rgba(255,170,150,.55);box-shadow:0 0 18px rgba(255,140,120,.18)}
.temp-day.is-today{outline:1px dashed rgba(255,181,168,.55);outline-offset:1px}
.temp-day.is-selected,.temp-day:hover{transform:translateY(-2px);border-color:rgba(255,200,180,.7)}
.temp-day:focus-visible{outline:1px solid rgba(255,181,168,.75);outline-offset:2px}
.temp-calendar-legend{display:flex;align-items:center;gap:6px;margin-top:14px;color:#8fa2c8;font:10px var(--mono)}
.temp-calendar-legend i{width:16px;height:10px;border:1px solid rgba(186,202,255,.2)}
.temp-calendar-legend i.level-1{background:rgba(90,130,200,.45)}
.temp-calendar-legend i.level-2{background:rgba(150,140,220,.5)}
.temp-calendar-legend i.level-3{background:rgba(255,170,150,.5)}
.temp-calendar-legend i.level-4{background:rgba(255,140,120,.65)}
.temp-calendar-detail{margin-top:14px;padding-top:14px;border-top:1px solid rgba(186,202,255,.16)}
.temp-calendar-detail strong{display:block;margin:6px 0 4px;color:#ffb5a8;font:clamp(22px,2.6vw,30px)/1 var(--serif)}
.temp-calendar-detail>p:last-child{margin:0;color:#b8c6e4;font:13px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
@media(max-width:800px){
  .temp-calendar{padding:16px 14px 14px}
  .temp-calendar-head{flex-direction:column}
  .temp-day{min-height:38px}
  .temp-day i{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .temp-day,.temp-day.is-selected,.temp-day:hover{transform:none}
}
.archive-community-cta{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:0 0 26px;padding:18px 20px;border:1px solid rgba(186,202,255,.2);background:linear-gradient(145deg,rgba(20,28,58,.82),rgba(16,18,40,.78))}
.archive-community-cta p.card-label{margin:0}
.archive-community-cta p:last-of-type{margin:8px 0 0;max-width:520px;color:#b8c6e4;font:13px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}
.archive-community-cta .report-community-actions{display:flex;flex-wrap:wrap;gap:8px;flex:0 0 auto}
@media(max-width:800px){
  .archive-community-cta{flex-direction:column;align-items:stretch}
}
.archive-stat-card{padding:16px 14px;border:1px solid rgba(186,202,255,.2);background:rgba(14,22,48,.72)}
.archive-stat-card strong{display:block;color:#f2f5ff;font:clamp(24px,3vw,34px)/1 var(--serif)}
.archive-stat-card span{display:block;margin-top:8px;color:#9eb0d3;font:10px var(--mono);letter-spacing:.08em}
.archive-page-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.archive-page-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.archive-page-layout:has(.archive-detail:not([hidden])){grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.archive-page .history-list{display:grid;gap:12px;max-height:none;overflow:visible}
.archive-page .history-card{padding:18px 18px 14px;border:1px solid rgba(186,202,255,.22);background:linear-gradient(145deg,rgba(24,34,72,.88),rgba(18,22,52,.82))}
.archive-page .dossier-detail,.archive-detail{padding:18px;border:1px solid rgba(198,177,255,.28);background:rgba(12,18,42,.78);max-height:none;overflow:visible}
.archive-detail-subhead{margin:22px 0 12px;color:#e8eeff;font:18px var(--serif)}
.archive-spark{display:flex;align-items:flex-end;gap:4px;height:54px;margin:14px 0 18px;padding:8px 10px 0;border:1px solid rgba(186,202,255,.16);background:rgba(8,12,28,.45)}
.archive-spark i{flex:1;min-width:6px;border-radius:2px 2px 0 0;background:linear-gradient(180deg,#ffb5a8,#9a8cff);opacity:.85}
.archive-node-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.archive-node-chips span{padding:4px 8px;border:1px solid rgba(186,202,255,.22);color:#d7e0f7;font:10px var(--sans)}
.archive-node-chips span.is-event{border-color:rgba(255,158,145,.45);color:#ffc4ba}
.archive-node-chips span.is-bond{border-color:rgba(197,168,255,.45);color:#e0d2ff}
.archive-journal-toolbar{display:flex;gap:8px;margin-bottom:4px}
.archive-journal-entries{margin-top:12px;padding-top:10px;border-top:1px solid rgba(186,202,255,.14)}
.archive-journal-entries p{margin:0 0 6px;color:#aebddc;font:12px/1.6 "PingFang SC","Microsoft YaHei",sans-serif}
@media(max-width:900px){
  .archive-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .archive-page-layout:has(.archive-detail:not([hidden])){grid-template-columns:1fr}
}
@media(max-width:800px){
  .archive-page-shell{padding:18px 0 56px}
  .archive-page-head h1{font-size:clamp(30px,9vw,42px)}
}

/* ---- Analysis chamber: starfield must stay visible through the glass ---- */
body.demo-reading,
body.is-observing{
  background:radial-gradient(circle at 50% -12%,#32285f 0,transparent 42%),#070a18;
}
body.demo-reading .analysis-stage,
body.is-observing .analysis-stage{
  background:radial-gradient(ellipse at 50% 38%,rgba(255,157,145,.1),transparent 46%),radial-gradient(ellipse at 74% 68%,rgba(154,140,255,.12),transparent 50%),linear-gradient(180deg,rgba(7,11,28,.12),rgba(10,14,32,.22))!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.demo-reading #particle-field{
  z-index:1;
  opacity:1;
  filter:brightness(1.7) saturate(1.35) contrast(1.08);
}
body.demo-reading .analysis-stage{z-index:2}
.analysis-sound-toggle{
  margin-top:18px;
  width:fit-content;
}
body.demo-reading .analysis-copy h2,
body.demo-reading .analysis-copy #analysis-subtitle{
  text-shadow:0 8px 28px rgba(6,8,22,.55);
}

/* ---- Hanging plant + star river ---- */
.hero{position:relative}
.hero-hanging{
  --pull:0px;
  position:absolute;
  top:4px;
  right:clamp(8px,4vw,36px);
  z-index:6;
  width:78px;
  max-width:20vw;
  padding:0 0 10px;
  border:0;
  background:transparent;
  color:#e8eeff;
  display:grid;
  justify-items:center;
  transform-origin:50% 0;
  animation:plantSway 4.8s ease-in-out infinite;
}
.hero-hanging-cord{
  width:2px;
  height:calc(46px + var(--pull));
  background:linear-gradient(180deg,rgba(255,236,220,.1),#f3e6c8 28%,#c7b7ff);
  box-shadow:0 0 10px rgba(199,183,255,.7);
  border-radius:2px;
}
.hero-hanging-glow{
  position:absolute;
  top:28px;
  width:72px;
  height:72px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,181,168,.28),rgba(154,140,255,.08) 46%,transparent 72%);
  filter:blur(2px);
  pointer-events:none;
}
.hero-hanging-pot{
  width:28px;
  height:14px;
  margin-top:-2px;
  border-radius:3px 3px 8px 8px;
  background:linear-gradient(180deg,#d7c4a0,#8c6b4a);
  box-shadow:0 6px 16px rgba(8,10,28,.28);
}
.hero-hanging-plant{
  position:relative;
  width:70px;
  height:72px;
  margin-top:-2px;
}
.hero-hanging-plant .leaf{
  position:absolute;
  left:50%;
  top:0;
  width:9px;
  height:38px;
  margin-left:-4.5px;
  border-radius:90% 90% 35% 35% / 70% 70% 40% 40%;
  background:linear-gradient(180deg,#b8f5cf,#3f9466 62%,#214f38);
  transform-origin:50% 0;
  box-shadow:0 0 14px rgba(122,214,168,.3);
}
.hero-hanging-plant .leaf:nth-child(1){transform:rotate(-46deg) translateY(4px);height:42px}
.hero-hanging-plant .leaf:nth-child(2){transform:rotate(-24deg) translateY(2px);height:48px}
.hero-hanging-plant .leaf:nth-child(3){transform:rotate(2deg);height:52px;background:linear-gradient(180deg,#d2ffe4,#4aa572)}
.hero-hanging-plant .leaf:nth-child(4){transform:rotate(26deg) translateY(2px);height:46px}
.hero-hanging-plant .leaf:nth-child(5){transform:rotate(48deg) translateY(4px);height:40px}
.hero-hanging-plant .leaf:nth-child(6){transform:rotate(-62deg) translateY(10px);height:30px;width:7px}
.hero-hanging-plant .runner{
  position:absolute;
  top:22px;
  width:1.5px;
  height:36px;
  background:linear-gradient(#5aad78,rgba(80,160,110,.05));
  border-radius:2px;
}
.hero-hanging-plant .runner:nth-child(7){left:14px;transform:rotate(-22deg)}
.hero-hanging-plant .runner:nth-child(8){right:14px;transform:rotate(24deg);height:42px}
.hero-hanging-plant .runner b{
  position:absolute;
  left:-6px;
  bottom:-2px;
  width:13px;
  height:13px;
  border-radius:60% 40% 55% 45%;
  background:radial-gradient(circle at 35% 30%,#d8ffe8,#3d8f62 70%);
  box-shadow:0 0 12px rgba(140,230,176,.5);
}
.hero-hanging-plant .runner b::before,
.hero-hanging-plant .runner b::after{
  content:"";
  position:absolute;
  top:2px;
  width:5px;
  height:10px;
  border-radius:70% 70% 40% 40%;
  background:linear-gradient(180deg,#b6f0cb,#3f8f61);
}
.hero-hanging-plant .runner b::before{left:-3px;transform:rotate(-28deg)}
.hero-hanging-plant .runner b::after{right:-3px;transform:rotate(28deg)}
.hero-hanging-label{
  margin-top:4px;
  padding:3px 7px;
  color:#f2e8d4;
  border:1px solid rgba(243,230,200,.28);
  background:rgba(12,16,36,.42);
  font:9px/1 var(--mono);
  letter-spacing:.12em;
  white-space:nowrap;
}
.hero-hanging.is-pulling,
.hero-hanging.is-open{animation:none}
.hero-hanging.is-open .hero-hanging-label{color:#10162e;background:linear-gradient(90deg,#ffb5a8,#c7b7ff);border-color:transparent}
@keyframes plantSway{
  0%,100%{transform:rotate(-3deg)}
  50%{transform:rotate(2.5deg)}
}

.star-river[hidden]{display:none!important}
.star-river{
  position:fixed;
  inset:0;
  z-index:38;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  color:#eef2ff;
  background:transparent;
  pointer-events:none;
}
.star-river-dismiss{
  position:absolute;
  inset:0;
  z-index:0;
  border:0;
  background:rgba(4,8,22,.48);
  backdrop-filter:blur(2px);
  pointer-events:auto;
}
.star-river-sheet{
  position:relative;
  z-index:1;
  width:min(720px,100%);
  height:min(58vh,560px);
  max-height:calc(100vh - 48px);
  overflow:hidden;
  border:1px solid rgba(186,202,255,.22);
  border-bottom:0;
  border-radius:22px 22px 0 0;
  background:#0a1028;
  box-shadow:0 -24px 80px rgba(2,4,18,.55);
  pointer-events:auto;
  transform:translateY(0);
}
.star-river-handle{
  position:absolute;
  z-index:4;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  width:44px;
  height:16px;
  display:grid;
  place-items:center;
  pointer-events:none;
}
.star-river-handle i{
  width:36px;
  height:4px;
  border-radius:999px;
  background:rgba(210,220,255,.35);
}
.star-river-sky{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.star-river-bg{
  position:absolute;
  inset:-6%;
  width:112%;
  height:112%;
  object-fit:cover;
  object-position:center 40%;
  filter:saturate(.92) hue-rotate(-8deg) brightness(.96) contrast(1.04);
  animation:starRiverBreathe 22s ease-in-out infinite;
}
.star-river-veil{
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 12%,rgba(122,108,220,.22),transparent 46%),
    linear-gradient(180deg,rgba(8,14,36,.12) 0%,rgba(8,14,36,.28) 38%,rgba(8,12,28,.82) 72%,rgba(6,10,24,.96) 100%);
}
.star-river-band{
  position:absolute;
  left:-18%;
  top:4%;
  width:136%;
  height:48%;
  transform:rotate(-18deg);
  background:linear-gradient(90deg,transparent,rgba(154,140,255,.16) 24%,rgba(171,194,255,.14) 52%,rgba(154,140,255,.1) 78%,transparent);
  filter:blur(24px);
  mix-blend-mode:screen;
  animation:starRiverDrift 20s ease-in-out infinite;
  pointer-events:none;
}
.star-river-stars{
  position:absolute;
  inset:0 0 42% 0;
  z-index:1;
}
.star-river-star{
  position:absolute;
  width:var(--star-size,10px);
  height:var(--star-size,10px);
  padding:0;
  border:0;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff,#d7e4ff 42%,rgba(171,194,255,.2) 70%,transparent 74%);
  box-shadow:0 0 14px rgba(220,230,255,.9),0 0 32px rgba(154,140,255,.4);
  animation:starTwinkle 2.8s ease-in-out infinite;
  animation-delay:var(--star-delay,0s);
  opacity:.72;
}
.star-river-star .star-river-spark{
  display:block;
  width:100%;
  height:100%;
  border-radius:50%;
}
.star-river-star.is-yours{
  width:24px;
  height:24px;
  opacity:1;
  background:radial-gradient(circle at 35% 30%,#fff,#c7b8ff 42%,rgba(154,140,255,.28) 72%,transparent 76%);
  box-shadow:0 0 20px rgba(199,183,255,1),0 0 48px rgba(154,140,255,.7),0 0 72px rgba(255,181,168,.22);
  animation:yoursPulse 1.9s ease-in-out infinite;
}
.star-river-star-label{
  position:absolute;
  left:50%;
  top:-26px;
  transform:translateX(-50%);
  padding:3px 8px;
  color:#e8e0ff;
  border:1px solid rgba(198,177,255,.4);
  border-radius:999px;
  background:rgba(12,14,36,.55);
  font:9px var(--sans);
  letter-spacing:.1em;
  white-space:nowrap;
  text-shadow:0 0 12px rgba(198,177,255,.7);
  backdrop-filter:blur(8px);
}
.star-river-close{
  position:absolute;
  z-index:3;
  top:14px;
  right:14px;
  padding:7px 11px;
  color:#dce6ff;
  border:1px solid rgba(186,202,255,.28);
  background:rgba(10,14,32,.55);
  font:10px var(--mono);
  backdrop-filter:blur(10px);
}
.star-river-stage{
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  bottom:0;
  padding:14px 20px 18px;
  border-top:1px solid rgba(186,202,255,.16);
  background:
    linear-gradient(180deg,rgba(10,16,40,.28),rgba(8,12,28,.9) 28%,rgba(8,12,28,.96));
  backdrop-filter:blur(18px) saturate(1.15);
  max-height:62%;
  overflow:auto;
}
.star-river-stage .mono-label{margin:0 0 2px}
.star-river-stage h2{
  margin:4px 0 6px;
  color:#f7f8ff;
  font:clamp(24px,4.2vw,34px)/1.15 var(--serif);
  text-shadow:0 8px 40px rgba(4,6,20,.45);
}
.star-river-stage h2 em{color:#c7b8ff;font-style:normal}
#star-river-hint{margin:0 0 12px;color:#c8d4ec;font:13px/1.65 var(--sans)}
.star-river-letter{
  margin:0 0 12px;
  padding:12px 14px;
  border:1px solid rgba(198,177,255,.34);
  border-radius:2px;
  background:linear-gradient(135deg,rgba(198,177,255,.14),rgba(154,140,255,.06));
  box-shadow:inset 0 0 40px rgba(154,140,255,.06);
}
.star-river-letter blockquote{
  margin:6px 0 0;
  color:#eef2ff;
  font:clamp(18px,2.8vw,24px)/1.45 var(--serif);
}
.star-river-leave label{
  display:block;
  margin-bottom:6px;
  color:#d7c8ff;
  font:11px var(--mono);
  letter-spacing:.08em;
}
#star-river-input{
  width:100%;
  min-height:56px;
  padding:10px 12px;
  color:#f0f4ff;
  border:1px solid rgba(186,202,255,.28);
  border-radius:2px;
  background:rgba(6,10,26,.42);
  resize:none;
}
#star-river-input:focus{
  outline:none;
  border-color:rgba(198,177,255,.55);
  box-shadow:0 0 0 3px rgba(198,177,255,.12);
}
.star-river-leave-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
}
#star-river-count{color:#9eb0d3;font:10px var(--mono)}
.star-river.is-unfurling .star-river-dismiss{animation:starRiverFade .35s var(--ease-silk) both}
.star-river.is-unfurling .star-river-sheet{animation:starRiverSheetIn .55s var(--ease-silk) both}
@keyframes starTwinkle{
  0%,100%{opacity:.45;transform:scale(.92)}
  50%{opacity:.95;transform:scale(1.1)}
}
@keyframes yoursPulse{
  0%,100%{transform:scale(.94);filter:brightness(1)}
  50%{transform:scale(1.16);filter:brightness(1.25)}
}
@keyframes starRiverDrift{
  0%,100%{transform:rotate(-18deg) translateX(0)}
  50%{transform:rotate(-16deg) translateX(-2.5%)}
}
@keyframes starRiverBreathe{
  0%,100%{transform:scale(1) translate(0,0)}
  50%{transform:scale(1.03) translate(-.6%,.4%)}
}
@keyframes starRiverSheetIn{
  from{opacity:0;transform:translateY(28%)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes starRiverFade{
  from{opacity:0}
  to{opacity:1}
}
body.is-star-river{overflow:hidden}
@media(max-width:800px){
  .hero-hanging{top:2px;right:4px;left:auto;width:68px;max-width:68px;animation:plantSwayMobile 5.2s ease-in-out infinite}
  .hero-hanging-label{font-size:8px;padding:2px 5px}
  .star-river-sheet{height:min(64vh,580px);border-radius:18px 18px 0 0}
  .star-river-stage{padding:12px 14px 14px;max-height:66%}
  .star-river-leave-row{flex-wrap:wrap}
  .star-river-leave-row .signal-button{width:100%}
  .signal-stage.is-orrery{overflow-x:clip}
  body[data-observatory-version="3"] .signal-stage.is-orrery svg{width:100%;max-width:100%}
}
@keyframes plantSwayMobile{
  0%,100%{transform:rotate(-2deg)}
  50%{transform:rotate(2deg)}
}
@media(prefers-reduced-motion:reduce){
  .hero-hanging,.star-river-star,.star-river-star.is-yours,.star-river-band,.star-river-bg,.star-river.is-unfurling .star-river-sheet,.star-river.is-unfurling .star-river-dismiss{animation:none!important}
}
