/* Cosmic laboratory v4 — homepage layer, preserving report/intake styles. */
body[data-lab-version="4"] { background: #070d20; color: #edf0fc; }
body[data-lab-version="4"] #particle-field { z-index:4; opacity:.55; }
body[data-lab-version="4"]::before { background: url('../assets/lab-hero.webp') center top / cover no-repeat; opacity: .12; }
body[data-lab-version="4"] .shell { width: min(1480px, calc(100% - 64px)); }
body[data-lab-version="4"] .topbar.shell { width:100%; height:72px; padding:0 36px; gap:28px; display:flex; background:rgba(6,12,30,.86); border-bottom:1px solid #35405a; backdrop-filter:blur(16px); z-index:20; }
.topbar > [hidden] { display:none!important; }
body[data-lab-version="4"] .brand { flex:0 0 auto; font:22px var(--serif); letter-spacing:0; gap:10px; }
.brand b { font:17px var(--serif); letter-spacing:.03em; font-weight:400; }
.lab-nav { display:flex; align-items:center; gap:28px; flex:1; justify-content:center; height:100%; }
.lab-nav a,.lab-nav button { position:relative; display:flex; align-items:center; height:100%; padding:0; background:none; border:0; color:#b7c0d9; text-decoration:none; font:13px var(--sans); white-space:nowrap; }
.lab-nav .is-active { color:#ffb09b; }
.lab-nav .is-active::after { content:''; height:2px; position:absolute; bottom:10px; left:0; right:0; background:#ffa38e; box-shadow:0 0 13px #ff9988; }
.lab-nav a:hover,.lab-nav button:hover { color:#fff; }
.lab-credit { display:flex; align-items:center; gap:9px; padding:10px 12px; border:1px solid #334360; border-radius:7px; background:#101c36; font:11px var(--sans); white-space:nowrap; }
.lab-credit i { width:7px; height:7px; border-radius:50%; background:#94e4c0; box-shadow:0 0 0 4px #94e4c018,0 0 12px #94e4c048; }
.lab-credit strong { margin-left:4px; font:12px var(--mono); }
.lab-login { padding:10px 20px; color:#e0e4f5; background:transparent; border:1px solid #7481a6; border-radius:22px; font-size:12px; white-space:nowrap; }
body[data-lab-version="4"] .topbar-actions { gap:12px; }
body[data-lab-version="4"] .hero.shell { position:relative; isolation:isolate; width:100%; padding:0 56px; min-height:455px; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:0; overflow:hidden; background:url('../assets/lab-hero.webp') center center / cover no-repeat; border-bottom:1px solid #2f3b55; }
body[data-lab-version="4"] .hero::before { display:none; }
body[data-lab-version="4"] .hero-copy { z-index:3; padding:35px 0 55px; align-self:center; pointer-events:none; }
body[data-lab-version="4"] .hero-copy a,body[data-lab-version="4"] .hero-copy button { pointer-events:auto; }
body[data-lab-version="4"] .hero .mono-label { font-size:9px; color:#93a0be; letter-spacing:.18em; white-space:nowrap; }
body[data-lab-version="4"] .hero .mono-label span { display:block; color:#a5b5d4; margin-bottom:13px; letter-spacing:.25em; }
body[data-lab-version="4"] .hero-copy h1 { max-width:none; white-space:nowrap; margin:16px 0 19px; font:500 clamp(40px,4.5vw,69px)/1.25 var(--serif); letter-spacing:-.04em; color:#f0f0ff; }
.lab-headline { position:relative; width:max-content; max-width:112%; margin:0 0 18px; color:#ffac99; font:500 clamp(20px,2.15vw,32px)/1.5 var(--serif); letter-spacing:-.04em; text-shadow:0 2px 24px #070d20; }
body[data-lab-version="4"] .hero-lede { max-width:none; font-size:14px; color:#c5cde2; line-height:1.8; }
body[data-lab-version="4"] .hero-utility { display:none; }
body[data-lab-version="4"] .hero-actions { margin-top:30px; gap:30px; display:flex; }
body[data-lab-version="4"] .hero-actions .signal-button { min-width:228px; min-height:58px; padding:16px 28px; border-radius:4px; font-size:17px; background:#ffa38e; box-shadow:0 0 30px #ff998850; color:#191523; }
body[data-lab-version="4"] .hero .demo-button { font:12px var(--sans); border:0; }
body[data-lab-version="4"] .hero-boundary { margin:19px 0 0; font:11px var(--sans); color:#b6c5e0; }
body[data-lab-version="4"] .hero-ticker { display:none; }
body[data-lab-version="4"] .hero-hanging { display:none; }
body[data-lab-version="4"] .hero .signal-stage.is-orrery { position:relative; z-index:2; height:455px; min-width:0; margin:0; overflow:visible; }
body[data-lab-version="4"] .hero .signal-stage.is-orrery svg { width:116%; max-width:none; position:absolute; left:-8%; top:0; height:100%; transform:none; margin:0; overflow:hidden; }
body[data-lab-version="4"] .orbit-signal-instrument::before,body[data-lab-version="4"] .orbit-demo-score,body[data-lab-version="4"] .orrery-coord,body[data-lab-version="4"] .hero-hud,body[data-lab-version="4"] .orrery-arc-text { display:none; }
body[data-lab-version="4"] .orbit-wave-rail .signal-line { stroke-width:2.3; }
body[data-lab-version="4"] .orbit-wave-rail .signal-trail { stroke-width:13; opacity:.18; }
body[data-lab-version="4"] .field-glow-track { width:380px; height:380px; }
body[data-lab-version="4"] .field-readout { top:8%; right:5%; padding:0 0 0 14px; border-left:1px solid #ffb2a0; }
body[data-lab-version="4"] .field-readout span { font:11px var(--sans); }
body[data-lab-version="4"] .field-readout strong { font:600 28px var(--sans); letter-spacing:0; }
body[data-lab-version="4"] .field-readout small { font-size:8px; }
.experiment-lab { position:relative; z-index:2; padding:13px 0 20px; }
.experiment-lab-head { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:12px; }
.experiment-lab-head .mono-label { display:none; }
.experiment-lab-head h2 { margin:0; color:#e8edfb; font:500 27px var(--serif); letter-spacing:0; }
.experiment-lab-head h2::after { content:''; display:inline-block; width:35px; height:1px; margin:0 0 8px 20px; background:#ff9b83; }
.experiment-lab-head>p { margin:0; font-size:11px; color:#94a3c0; }
.experiment-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.experiment-card { position:relative; height:302px; overflow:hidden; border:1px solid #475370; border-radius:3px; background:#0c1529; transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .25s ease-out,border-color .25s,box-shadow .25s; }
.experiment-card>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:62% center; transition:transform 1s ease,filter 1s; animation:labOrbitDrift 15s ease-in-out infinite alternate; }
.experiment-card:nth-child(2)>img { animation-delay:-4s; }
.experiment-card:nth-child(3)>img { animation-delay:-8s; }
.experiment-card:nth-child(4)>img { animation-delay:-12s; }
.experiment-card-shade { position:absolute; inset:0; background:linear-gradient(180deg,#080e25b0 0%,#060d2238 45%,#050b21d9 100%); }
.experiment-card-body { position:relative; height:100%; z-index:2; padding:20px 18px 16px; display:flex; flex-direction:column; align-items:flex-start; }
.experiment-status { display:inline-flex; align-items:center; gap:7px; padding:5px 9px; border:1px solid #8292be48; border-radius:20px; font-size:10px; background:#090e24a6; color:#bfb1fb; }
.experiment-status i { display:inline-block; width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; }
.experiment-status.is-open,.experiment-status.is-weekly { color:#ffb39c; }
.experiment-status.is-community { color:#e8c884; }
.experiment-card-body>small { display:none; }
.experiment-card h3 { margin:12px 0 9px; font:500 clamp(23px,2.05vw,31px)/1.3 var(--serif); letter-spacing:0; color:#f0f1ff; }
.experiment-card p { margin:0; max-width:94%; color:#c1cbe1; font-size:13px; line-height:1.7; text-shadow:0 2px 10px #020817; }
.experiment-card-body>a,.experiment-card-body>button { display:flex; align-items:center; justify-content:center; gap:22px; width:100%; margin-top:auto; padding:10px 12px; border:1px solid #526387; border-radius:8px; background:#071023c9; color:#e0e5f6; font:12px var(--sans); text-decoration:none; }
.experiment-card-body b { font-weight:400; }
.experiment-card.is-flagship { border-color:#ffa994; box-shadow:0 0 19px #ff9c8540,inset 0 0 12px #ff9c8520; }
.is-flagship .experiment-card-body>a { border-color:#ef9d88; color:#ffbda8; box-shadow:0 0 13px #ffa38e26; }
.experiment-card:hover,.experiment-card:focus-within { border-color:#c0b0f5; box-shadow:0 0 24px #ae9cf538; }
.experiment-card:hover>img { filter:brightness(1.18); }
.experiment-card-body>a:hover,.experiment-card-body>button:hover { background:#283253e6; }
.privacy-release-preview { position:relative; z-index:2; display:grid; grid-template-columns:42% minmax(0,1fr) auto; gap:32px; align-items:center; min-height:165px; border-top:1px solid #34425d; border-bottom:1px solid #26334c; padding:15px 0; }
.release-visual { height:148px; overflow:hidden; }
.release-visual img { width:100%; height:100%; object-fit:cover; object-position:center; mask-image:linear-gradient(90deg,transparent,#000 15%,#000 80%,transparent); animation:labOrbitDrift 12s ease-in-out infinite alternate; }
.privacy-release-preview .mono-label { font-size:8px; letter-spacing:.08em; color:#8796b2; }
.privacy-release-preview .mono-label span { color:#b9a3ef; }
.privacy-release-preview h2 { margin:12px 0; font:500 22px/1.4 var(--serif); letter-spacing:0; }
.privacy-release-preview p:last-child { margin:0; font:11px/1.9 var(--sans); color:#9facc7; max-width:560px; }
.release-learn { margin-right:20px; padding:12px 24px; display:flex; gap:25px; color:#d5def0; border:1px solid #7280a6; border-radius:24px; background:#0b142a; font-size:11px; white-space:nowrap; }
body[data-lab-version="4"] .wave-seam,body[data-lab-version="4"] .tide-preview { display:none; }
body[data-lab-version="4"] .journey-rail { margin-top:60px; }
body[data-lab-version="4"] .intake { scroll-margin-top:24px; }
.report-release-ritual { margin:32px 0; padding:26px; display:grid; grid-template-columns:120px 1fr auto; align-items:center; gap:25px; border:1px solid #6e688c; background:#101a32; }
.report-release-orbit { width:120px; height:110px; background:url('../assets/lab-release.webp') center / cover; border-radius:12px; }
.report-release-orbit>* { display:none; }
.report-release-ritual h3 { margin:9px 0; font:23px/1.5 var(--serif); color:#eff0ff; }
.report-release-ritual h3 em { color:#ffb69f; font-style:normal; }
.report-release-ritual p { margin-bottom:0; color:#a5b5d0; font-size:12px; line-height:1.7; }
.report-release-status { margin-top:11px!important; color:#9ec7df!important; font:10px/1.65 "DM Mono","PingFang SC","Microsoft YaHei",sans-serif!important; }
.report-release-ritual.is-released { border-color:rgba(158,231,205,.55); background:linear-gradient(110deg,rgba(31,57,78,.86),rgba(36,31,77,.78)); }
.report-release-ritual.is-released .report-release-orbit { filter:saturate(.72) brightness(.82); transform:scale(.96); transition:filter .5s ease,transform .5s ease; }
.report-release-ritual.is-released .release-data-button { color:#a6e7d2!important; border-color:rgba(158,231,205,.58)!important; cursor:default; }
.release-data-button { margin:0!important; padding:14px 20px!important; border:1px solid #a997d1!important; border-radius:5px; color:#e3d7ff!important; white-space:nowrap; }
.lab-experiment-modal[hidden] { display:none!important; }
.lab-experiment-modal { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; background:#030715c9; backdrop-filter:blur(12px); }
.data-release-backdrop { position:absolute; inset:0; border:0; background:transparent; }
.data-release-panel { position:relative; width:min(590px,100%); max-height:calc(100dvh - 40px); overflow:auto; padding:28px 32px 22px; border:1px solid #697494; border-radius:14px; background:#0b1429; box-shadow:0 30px 100px #0008; }
.data-release-panel>.modal-close { position:absolute; z-index:3; top:12px; right:12px; color:#fff; background:#101a32cc; }
.data-release-panel h2 { font:28px/1.55 var(--serif); letter-spacing:-.02em; margin:13px 0; }
.lab-experiment-modal .data-release-panel>p:not(.mono-label) { color:#b7c5dd; font-size:12px; line-height:1.85; }
.data-release-actions { display:flex; align-items:center; gap:20px; margin-top:25px; }
.data-release-actions .signal-button { min-width:170px!important; min-height:46px!important; border-radius:5px; }
.data-release-actions .reset-button { margin:0; padding:12px; color:#c4cbe0; }
.lab-experiment-modal img { width:100%; height:210px; object-fit:cover; border-radius:6px; margin-bottom:22px; }
.lab-experiment-modal .data-release-actions { flex-wrap:wrap; }
body.lab-dialog-open { overflow:hidden; }
body[data-lab-version="4"] :is(a,button,input,textarea):focus-visible { outline:2px solid #e4d4ff; outline-offset:5px; }
body.is-page-hidden *,body.is-page-hidden *::before,body.is-page-hidden *::after,.is-motion-paused *, .is-motion-paused *::before { animation-play-state:paused!important; }
@keyframes labOrbitDrift { from { transform:scale(1) translateY(0); } to { transform:scale(1.055) translateY(-3px); } }
body[data-lab-version="4"] .hero .signal-stage.is-orrery,body[data-lab-version="4"] .hero .orrery-dial { mask-image:none; -webkit-mask-image:none; }
body[data-lab-version="4"] .hero .orrery-dial .dial-ticks { stroke-width:4; stroke-dasharray:.7 7; stroke-linecap:butt; stroke:#b5c8ff66; }
body[data-lab-version="4"] .hero .orrery-dial .dial-ticks-fine { stroke-width:2; stroke-dasharray:.5 4; stroke:#b5c8ff38; }
body[data-lab-version="4"] .hero .orrery-dial .dial-ring { stroke:#9cb5ed44; }
@media(min-width:801px) {
  body[data-lab-version="4"] .hero.shell { min-height:444px; }
  body[data-lab-version="4"] .hero-copy { padding:20px 0 35px; }
  body[data-lab-version="4"] .hero-copy h1 { font-size:clamp(40px,4.9vw,74px); }
  body[data-lab-version="4"] .hero .signal-stage.is-orrery { height:444px; }
  body[data-lab-version="4"] .hero .signal-stage.is-orrery svg { left:-26%; top:0; mask-image:linear-gradient(90deg,transparent 0%,#000 23%,#000 92%,transparent); }
  body[data-lab-version="4"] .hero .signal-stage.is-orrery .field-readout { right:25%; top:8%; }
  .experiment-card { height:296px; }
}
@media(min-width:1700px) { body[data-lab-version="4"] .hero.shell { padding-inline:max(56px,calc((100vw - 1480px)/2)); min-height:540px; } body[data-lab-version="4"] .hero .signal-stage.is-orrery { height:540px; } }
@media(max-width:1190px) { .lab-nav { gap:17px; }.lab-nav a,.lab-nav button { font-size:11px; } .lab-credit { display:none; } body[data-lab-version="4"] .topbar.shell { gap:20px; padding-inline:24px; } body[data-lab-version="4"] .brand { font-size:19px; } body[data-lab-version="4"] .hero.shell { padding-inline:32px; } body[data-lab-version="4"] .hero-actions { gap:16px; } body[data-lab-version="4"] .hero-actions .signal-button { min-width:185px; } .experiment-card-body { padding-inline:14px; } .privacy-release-preview { gap:18px; grid-template-columns:25% 1fr; } .release-learn { grid-column:2; justify-self:start; margin-bottom:15px; } .release-visual { grid-row:1/3; height:200px; } }
@media(max-width:800px) { body[data-lab-version="4"] .shell { width:calc(100% - 36px); } body[data-lab-version="4"] .topbar.shell { display:grid; grid-template-columns:1fr auto!important; height:auto; min-height:100px; padding:15px 18px 0; gap:10px; }.lab-nav { grid-row:2; grid-column:1/-1; height:40px; gap:24px; overflow-x:auto; justify-content:flex-start; }.lab-nav a,.lab-nav button { font-size:12px; }.lab-nav .is-active::after { bottom:1px; }body[data-lab-version="4"] .topbar-actions { max-width:none; gap:10px; }.lab-login { padding:8px 13px; font-size:11px; } body[data-lab-version="4"] .hero.shell { width:100%; padding:0 24px; display:flex; flex-direction:column; min-height:0; background-position:60% center; } body[data-lab-version="4"] .hero-copy { width:100%; padding:36px 0 0; } body[data-lab-version="4"] .hero-copy h1 { font-size:clamp(32px,7.8vw,54px); margin:18px 0 16px; } .lab-headline { width:auto; max-width:100%; font-size:clamp(18px,4.4vw,27px); } body[data-lab-version="4"] .hero-lede { font-size:12px; max-width:420px; } body[data-lab-version="4"] .hero .mono-label { font-size:8px; letter-spacing:.08em; } body[data-lab-version="4"] .hero .mono-label span { letter-spacing:.15em; } body[data-lab-version="4"] .hero-actions { margin-top:23px; } body[data-lab-version="4"] .hero-actions .signal-button { width:auto; min-width:172px; min-height:49px; font-size:14px; padding:13px 18px; } body[data-lab-version="4"] .hero .demo-button { font-size:11px; white-space:nowrap; } body[data-lab-version="4"] .hero-boundary { font-size:10px; line-height:1.6; } body[data-lab-version="4"] .hero .signal-stage.is-orrery { width:100%; height:350px; margin-top:8px; overflow-x:clip; overflow-y:visible; } body[data-lab-version="4"] .hero .signal-stage.is-orrery svg { width:126%; left:-13%; top:0; height:100%; } body[data-lab-version="4"] .field-readout { right:0; top:5%; } body[data-lab-version="4"] .field-readout span { font-size:9px; } body[data-lab-version="4"] .field-readout strong { font-size:24px; } .experiment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .experiment-card { height:300px; } .experiment-card h3 { font-size:25px; } .experiment-lab-head>p { display:none; }.privacy-release-preview { grid-template-columns:1fr; padding:22px 0; gap:12px; } .release-visual { height:130px; grid-row:auto; } .release-learn { grid-column:auto; margin:5px 0 0; } .privacy-release-preview h2 { font-size:21px; } .report-release-ritual { grid-template-columns:1fr; padding:22px; }.report-release-orbit { display:none; }.data-release-actions { gap:10px; }.data-release-panel { padding:24px; }.data-release-panel h2 { font-size:24px; } }
@media(max-width:440px) { .experiment-grid { grid-template-columns:1fr; } .experiment-card { height:305px; }.experiment-card>img { object-position:center 56%; }.experiment-card-body { padding:22px; }.experiment-card p { max-width:85%; font-size:12px; }.experiment-card h3 { font-size:29px; }.experiment-card-body>a,.experiment-card-body>button { padding:12px; } .brand b { font-size:13px; } body[data-lab-version="4"] .brand { font-size:17px; gap:6px; } body[data-lab-version="4"] .hero.shell { padding-inline:20px; } body[data-lab-version="4"] .hero .mono-label span { font-size:7px; } body[data-lab-version="4"] .hero .signal-stage.is-orrery { height:300px; }.data-release-panel h2 { font-size:22px; } }
@media(prefers-reduced-motion:reduce) { .experiment-card,.experiment-card>img,.release-visual img { animation:none!important; transform:none!important; transition:none!important; } }

/* Public legal surface: readable, keyboard-accessible, and visually native to the observatory. */
.footer-legal { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 18px; width:100%; margin-top:18px; padding-top:16px; border-top:1px solid rgba(185,202,255,.14); }
.footer-legal button,.footer-legal a { padding:0; color:#aebfe2; border:0; background:transparent; font:11px/1.6 "PingFang SC","Microsoft YaHei",sans-serif; text-decoration:none; cursor:pointer; }
.footer-legal button:hover,.footer-legal button:focus-visible,.footer-legal a:hover,.footer-legal a:focus-visible { color:#ffe0d7; text-decoration:underline; text-underline-offset:3px; outline:0; }
.footer-legal a { color:#ffc0b4; }
.legal-modal[hidden] { display:none!important; }
.legal-modal { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:18px; background:rgba(2,6,22,.76); backdrop-filter:blur(14px); }
.legal-backdrop { position:absolute; inset:0; border:0; background:transparent; cursor:pointer; }
.legal-panel { position:relative; z-index:1; width:min(760px,100%); max-height:min(820px,calc(100dvh - 36px)); overflow:auto; padding:31px 34px 25px; border:1px solid rgba(201,188,255,.52); background:radial-gradient(circle at 88% 4%,rgba(191,163,255,.2),transparent 30%),linear-gradient(145deg,#101b3c,#19143d); box-shadow:0 28px 100px rgba(0,0,0,.62),0 0 45px rgba(146,127,255,.16); color:#e9efff; }
.legal-panel h2 { margin:13px 0 18px; color:#f5f3ff; font:clamp(29px,4vw,46px)/1.12 "Noto Serif SC","Songti SC",serif; letter-spacing:-.07em; }
.legal-panel .modal-close { position:absolute; top:12px; right:12px; z-index:2; }
.legal-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 -2px 16px; padding-bottom:13px; border-bottom:1px solid rgba(191,207,255,.18); }
.legal-tabs button { padding:9px 12px; color:#adbddd; border:1px solid rgba(186,204,255,.2); background:rgba(15,28,64,.55); font:12px "PingFang SC","Microsoft YaHei",sans-serif; cursor:pointer; }
.legal-tabs button:hover,.legal-tabs button:focus-visible,.legal-tabs button.is-active { color:#141a35; border-color:#ffb8aa; background:linear-gradient(105deg,#ffb09f,#c9b7ff); outline:0; }
.legal-panel article h3 { margin:18px 0 12px; color:#ffb6aa; font:22px/1.35 "Noto Serif SC","Songti SC",serif; }
.legal-panel article p { margin:10px 0; color:#cbd7ed; font:13px/1.9 "PingFang SC","Microsoft YaHei",sans-serif; }
.legal-updated { margin:22px 0 0; padding-top:14px; color:#94a7ca; border-top:1px solid rgba(191,207,255,.15); font:10px/1.65 "DM Mono","Microsoft YaHei",sans-serif; }
@media(max-width:560px) { .footer-legal { gap:8px 12px; }.footer-legal button,.footer-legal a { font-size:10px; }.legal-panel { padding:28px 20px 21px; }.legal-panel h2 { font-size:31px; }.legal-tabs { gap:6px; }.legal-tabs button { flex:1; padding-inline:7px; font-size:11px; }.legal-panel article p { font-size:12px; line-height:1.8; } }
