/* Observatory concept — local design preview, no external font or 3D dependencies. */
:root{--accent:#8cead9;--up:#78e5b2;--down:#ff9eab;--bg:#080d15}
html{scroll-behavior:smooth;scroll-padding-top:24px}body{max-width:1900px;margin:auto;padding:0 4vw 32px;background:radial-gradient(ellipse at 70% 12%,#19364250,transparent 48%),#080d15}
body::before{background-size:70px 70px;opacity:.6}.brand-bar{height:88px;display:flex;align-items:center;gap:28px;border-bottom:1px solid #9bccda20;margin-bottom:26px}.brand{display:flex;gap:12px;align-items:center;color:#e6f4f7;font-size:.78rem;font-weight:750;letter-spacing:.15em;margin-right:auto}.brand-mark{display:grid;place-items:center;width:33px;height:37px;border:1px solid #90efd578;border-radius:9px;transform:rotate(-8deg);background:linear-gradient(135deg,#397264,#183036);box-shadow:3px 4px 0 #020b10;font-size:1.2rem}.brand-small,.brand-divider{color:#799298;font-size:.58rem}.brand-bar>a:not(.brand){font-size:.7rem;color:#a7bcc6}.edition{font-size:.55rem;letter-spacing:.12em;color:#748d9b}
header{position:relative;padding:45px 32px 24px;border-radius:24px;border:1px solid #82b7c62b;background:radial-gradient(ellipse at 78% 35%,#21463e3d,transparent 60%),linear-gradient(115deg,#13232c,#0c1422 60%,#161d2d);box-shadow:0 25px 65px #0004,inset 0 1px #b6edee14;overflow:hidden}
.hero-top{min-height:405px;width:45%;padding:10px 0 0;position:relative;z-index:2;pointer-events:none;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;margin-bottom:26px}.hero-top a{pointer-events:auto}.eyebrow{font-size:.6rem;letter-spacing:.2em;color:#8faab5;margin-bottom:25px}h1{font-size:clamp(2.8rem,5.1vw,5.6rem);font-weight:500;line-height:1.04;letter-spacing:-.065em}h1 em{font-style:normal;color:#9ef1d8;text-shadow:0 0 35px #9effd51a}h1 .sub{font-size:.86rem;letter-spacing:0;margin-top:22px;color:#d2e2e8}.hero-description{font-size:.8rem;line-height:1.8;color:#819cae;margin-top:12px}.explore-link{display:inline-flex;align-items:center;gap:38px;padding:12px 18px;margin-top:24px;border:1px solid #83d9c873;border-radius:8px;font-size:.75rem;background:#74dabb12;color:#bcf7e6;box-shadow:0 4px 0 #071318}.explore-link:hover{background:#74dabb25}.signal{font-size:.6rem;padding:8px 0;background:none;border:0;box-shadow:none;color:#7798a8}.signal strong{font-size:.55rem;display:block;color:#a6c7cc}.signal-dot{width:5px;height:5px;background:#9febcf}
.space-explorer{position:absolute;right:0;top:18px;width:57%;height:445px;z-index:1}.scene-label{position:absolute;top:10px;left:25px;right:25px;font-size:.58rem;letter-spacing:.16em;color:#8eb5bd;pointer-events:none}.scene-label #sceneCount{float:right;color:#63858d}#marketSpace{width:100%;height:365px;display:block;touch-action:pan-y;cursor:grab}#marketSpace:active{cursor:grabbing}.scene-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 24px;color:#829aa9;font-size:.6rem}.scene-bottom button{padding:4px 8px;min-height:28px;font-size:.6rem;background:#17293499;box-shadow:none}.scene-select{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:10px 24px;color:#91abb7;font-size:.6rem}.scene-select select{min-height:28px;padding:3px 8px;font-size:.65rem;max-width:200px}
.controls{margin:0;padding:20px 0 0;background:none;border-radius:0;border-color:#92d2d323}button,input[type=text],select{border-color:#61869e38}.controls button,.controls select,.controls input{font-size:.69rem}.metrics{gap:16px}.metric{border-radius:13px;background:radial-gradient(ellipse at var(--light-x) var(--light-y),#629c9e15,transparent 90%),linear-gradient(150deg,#1a2d36,#111d29)}.metric .val{font-size:2.25rem;font-weight:500}.metric::after{height:1px;width:55px}.visit-counter{padding:12px 18px;background:#101e28;border-radius:9px}.panels{gap:20px}.panel{background:linear-gradient(140deg,#142730,#111c2b);border-radius:15px}.table-shell{border-radius:14px}thead{background:#182d38}.chip.active{background:#214c47;border-color:#83ddc3}.rich-tile{border-radius:15px}
.preview-banner{padding:12px 20px;margin:18px 0 0;border:1px solid #e5bf6355;border-radius:10px;background:#352c1555;color:#edcf85;display:flex;justify-content:space-between;gap:15px;font-size:.75rem}.preview-banner strong{letter-spacing:.08em}.preview-banner span{color:#bba979}.preview-banner a{color:#ffdfa1}
@media(min-width:1450px){.space-explorer{height:475px}#marketSpace{height:395px}.hero-top{min-height:435px}}
@media(max-width:1000px){.edition,.brand-small,.brand-divider{display:none}.hero-top{width:43%;min-height:390px}header{padding:30px 24px 20px}h1{font-size:3rem}.space-explorer{width:57%;top:22px}.scene-bottom{flex-direction:column;align-items:flex-start}.scene-select{justify-content:flex-start}.hero-description{font-size:.73rem}}
@media(max-width:700px){body{padding:0 16px 24px}.brand-bar{height:70px;gap:15px}.brand{font-size:.65rem;gap:8px}.brand-bar>a:not(.brand){font-size:.62rem}header{padding:25px 20px}.hero-top{width:100%;min-height:0;gap:15px;margin:0}.hero-top h1{font-size:3.3rem}.eyebrow{margin-bottom:18px}.hero-description{max-width:85%}.space-explorer{position:relative;width:calc(100% + 40px);margin:12px -20px 20px;right:auto;top:auto;height:400px}#marketSpace{height:315px}.hero-top{order:0}header{display:flex;flex-direction:column}.space-explorer{order:1}.controls{order:2}.scene-label{top:0}.scene-bottom{flex-direction:row;align-items:center;margin:0 16px}.scene-bottom #sceneHint{max-width:125px;line-height:1.6}.scene-select{margin:10px 16px}.signal{margin-top:8px}.preview-banner{flex-direction:column;gap:5px}.metrics .metric .val{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
#universeToggle{position:relative;z-index:3;align-self:flex-start;margin-bottom:12px;font-size:.68rem}.space-explorer[hidden]{display:none!important}.scene-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 24px 8px;font-size:.6rem;color:#b5c8d5}.scene-legend select{min-height:25px;padding:2px 5px;font-size:.6rem;max-width:150px}.scene-tooltip{position:absolute;top:43px;left:24px;padding:9px 12px;background:#091625ed;border:1px solid #89dcca55;border-radius:8px;color:#e2f6fa;font-size:.73rem;pointer-events:none;z-index:5}.space-explorer{height:490px}#marketSpace{height:325px}.compare-label{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.78rem;margin-bottom:16px}.chart-summary p{margin-top:8px;font-size:.73rem}.chart-caption{max-width:75ch}
@media(max-width:700px){.space-explorer{height:auto;padding-bottom:12px}#marketSpace{height:290px}.scene-legend{margin:0 16px 10px}.controls{position:relative}#search{position:sticky;top:8px;z-index:5;background:#0b1c29}.hero-top{min-height:0}.hero-description{display:none}.brand-bar{margin-bottom:14px}.scene-bottom{flex-wrap:wrap}}
.account-dialog{margin:auto;width:min(540px,94vw);max-height:90dvh;overflow:auto;padding:26px;border:1px solid #7edcc866;border-radius:18px;color:var(--text);background:#112432}.account-dialog::backdrop{background:#020912b9;backdrop-filter:blur(6px)}.account-dialog label{display:block;margin:14px 0;font-size:.8rem}.account-dialog input{display:block;width:100%;margin-top:6px;padding:10px;background:#091724;color:#effaff;border:1px solid #789eac66;border-radius:7px}.account-dialog p{font-size:.78rem;line-height:1.7;color:#a8c3cc}.account-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.account-dialog details{margin-top:24px;font-size:.78rem}#accountMessage{color:#bff4e2;margin-bottom:12px}#recoveryNotice{padding:14px;border:1px solid #d5b16e;background:#40331766;border-radius:10px}#recoveryNotice code{display:block;overflow-wrap:anywhere;margin-top:14px;user-select:all}
#visitSummary{font-size:.7rem}.analytics-preferences{width:100%;font-size:.7rem}.analytics-preferences summary{cursor:pointer;color:#a6d8d0}.analytics-preferences label{display:block;margin:12px 0}.analytics-preferences p{max-width:85ch;line-height:1.6;color:var(--muted)}
.mobile-search-link{display:none}@media(max-width:700px){.brand-bar{position:sticky;top:0;z-index:20;background:#080d15f5;backdrop-filter:blur(12px);gap:12px}.mobile-search-link{display:block}.brand-bar>a:not(.brand){font-size:.58rem}}
