/* MadeleineCrush Intelligence Lab */
.lab-hero{position:relative;overflow:hidden;min-height:76svh;padding:clamp(120px,15vw,220px) 0 84px;background:#050807;color:var(--atelier-paper);display:flex;align-items:flex-end}
.lab-hero::before{content:"01001101 01000011 / SIGNAL 001";position:absolute;top:18%;right:-40px;color:rgba(200,255,36,.16);font:500 clamp(.55rem,1vw,.8rem)/1 var(--atelier-mono);letter-spacing:.3em;transform:rotate(90deg);transform-origin:center}
.lab-orbit{position:absolute;left:54%;top:45%;width:min(58vw,760px);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(200,255,36,.18);border-radius:50%;pointer-events:none}
.lab-orbit::before,.lab-orbit::after{content:"";position:absolute;border:1px solid rgba(243,239,230,.12);border-radius:50%}
.lab-orbit::before{inset:14%}.lab-orbit::after{inset:31%}
.lab-orbit i{position:absolute;width:11px;height:11px;top:14%;left:50%;border-radius:50%;background:var(--atelier-signal);box-shadow:0 0 32px var(--atelier-signal);animation:labOrbit 12s linear infinite;transform-origin:0 calc(36% + 125px)}
@keyframes labOrbit{to{transform:rotate(360deg)}}
.lab-hero .wrap{position:relative;z-index:2}
.lab-kicker{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;padding-bottom:14px;border-bottom:1px solid rgba(243,239,230,.18);font:500 .65rem/1 var(--atelier-mono);letter-spacing:.17em;text-transform:uppercase;color:rgba(243,239,230,.52)}
.lab-hero h1{max-width:1080px;font-size:clamp(4rem,11vw,10rem);line-height:.8;color:var(--atelier-paper)}
.lab-hero h1 em{font-family:var(--atelier-serif);font-weight:400;color:var(--atelier-signal)}
.lab-hero-copy{display:grid;grid-template-columns:1fr minmax(300px,470px);align-items:end;gap:60px;margin-top:50px}
.lab-hero-copy p{grid-column:2;color:rgba(243,239,230,.68);font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.45}
.lab-strip{padding:15px 0;background:var(--atelier-signal);border-bottom:1px solid #050807;color:#050807;overflow:hidden}
.lab-strip .wrap{display:flex;justify-content:space-between;gap:24px;font:550 .62rem/1 var(--atelier-mono);letter-spacing:.16em;text-transform:uppercase}

.lab-main{background:var(--atelier-paper);padding-block:clamp(72px,9vw,130px)}
.lab-intro{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(30px,8vw,140px);align-items:start;margin-bottom:70px}
.lab-intro h2{text-align:left;font-size:clamp(2.8rem,6.8vw,7.2rem)}
.lab-intro-copy{max-width:620px;padding-top:12px}
.lab-intro-copy p{font-size:1.06rem;color:#44504a;margin-bottom:22px}
.lab-source-rule{padding:18px 0;border-top:1px solid var(--atelier-line);border-bottom:1px solid var(--atelier-line);font:500 .7rem/1.45 var(--atelier-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--atelier-cypress)}

.lab-grid{display:grid;grid-template-columns:repeat(12,1fr);border-top:1px solid var(--atelier-line);border-left:1px solid var(--atelier-line)}
.lab-card{position:relative;min-width:0;padding:clamp(25px,3.6vw,52px);border-right:1px solid var(--atelier-line);border-bottom:1px solid var(--atelier-line);background:rgba(252,251,247,.62)}
.lab-card.weather{grid-column:span 7}.lab-card.markets{grid-column:span 5;background:var(--atelier-cypress);color:var(--atelier-paper)}
.lab-card.news{grid-column:span 8}.lab-card.clocks{grid-column:span 4;background:#fcfbf7}
.lab-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:46px}
.lab-card-top h2{font-size:clamp(1.25rem,2vw,1.65rem);text-align:left;letter-spacing:-.04em}
.signal-state{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(18,51,41,.2);font:550 .57rem/1 var(--atelier-mono);letter-spacing:.12em;text-transform:uppercase}
.signal-state::before{content:"";width:6px;height:6px;border-radius:50%;background:#8b938f}
.signal-state[data-state="loading"]::before{background:#f5b942;animation:labPulse 1.2s ease-in-out infinite}.signal-state[data-state="live"]::before{background:#36a978;box-shadow:0 0 11px #36a978}.signal-state[data-state="delayed"]::before{background:#f5b942}.signal-state[data-state="unavailable"]::before{background:#a94b45}
.markets .signal-state{border-color:rgba(243,239,230,.22)}
@keyframes labPulse{50%{opacity:.3}}
.weather-place{font:500 .68rem/1 var(--atelier-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--atelier-cypress);margin-bottom:18px}
.weather-now{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:end}
.weather-temp{font-size:clamp(5.5rem,12vw,11rem);font-weight:430;letter-spacing:-.1em;line-height:.72}
.weather-condition{font-size:clamp(1.45rem,2.8vw,2.5rem);font-weight:520;line-height:1;margin-bottom:9px}.weather-meta{color:#68716d}
.weather-hours{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);margin-top:46px;border-top:1px solid var(--atelier-line)}
.weather-hours li{padding:16px 8px 0;border-right:1px solid var(--atelier-line);display:grid;gap:5px}.weather-hours li:last-child{border:0}.weather-hours time,.weather-hours span{font:500 .58rem/1.3 var(--atelier-mono);color:#727c77}.weather-hours b{font-size:1.05rem}
.city-search{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:38px}.city-search input{min-width:0;background:transparent;border:0;border-bottom:1px solid var(--atelier-cypress);border-radius:0;padding:12px 2px;font:500 1rem var(--atelier-sans);color:var(--atelier-ink)}.city-search button,.lab-refresh{border:1px solid var(--atelier-cypress);border-radius:0;padding:11px 15px;background:transparent;font:600 .63rem var(--atelier-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.city-search button:hover,.lab-refresh:hover{background:var(--atelier-signal);color:#050807}.city-error{min-height:20px;color:#9a3933;font-size:.76rem;margin-top:8px}

.market-list{list-style:none;border-top:1px solid rgba(243,239,230,.22)}
.market-list li{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:19px 0;border-bottom:1px solid rgba(243,239,230,.16)}
.market-list span{font-weight:570}.market-list small{display:block;color:rgba(243,239,230,.46);font:500 .54rem/1.4 var(--atelier-mono);text-transform:uppercase;letter-spacing:.08em}.market-list b{font-size:1.05rem}.market-list em{min-width:67px;text-align:right;font:600 .7rem var(--atelier-mono);font-style:normal}.market-list .up{color:var(--atelier-signal)}.market-list .down{color:#ff9d8e}
.lab-updated{margin-top:24px;color:#66716c;font:500 .57rem/1.45 var(--atelier-mono);letter-spacing:.06em;text-transform:uppercase}.markets .lab-updated{color:rgba(243,239,230,.44)}
.lab-fallback{margin:24px 0;padding:16px;border:1px solid currentColor;font:500 .7rem/1.45 var(--atelier-mono);opacity:.68}

.news-list article{display:grid;grid-template-columns:48px 1fr;gap:24px;padding:25px 0;border-top:1px solid var(--atelier-line)}
.news-index{color:var(--atelier-cypress);font:500 .62rem var(--atelier-mono);letter-spacing:.1em}.news-list p{color:#77817c;font:500 .58rem/1.35 var(--atelier-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}.news-list h3{font-size:clamp(1.25rem,2.4vw,2.2rem);line-height:1.05;max-width:780px}.news-list a{display:inline-block;margin-top:13px;color:var(--atelier-cypress);font:600 .65rem var(--atelier-mono);letter-spacing:.05em;text-transform:uppercase}.news-list a:hover{color:#050807;text-decoration:underline;text-underline-offset:4px}
.clock-grid{list-style:none}.clock-grid li{display:grid;gap:7px;padding:24px 0;border-top:1px solid var(--atelier-line)}.clock-grid span{font:600 .62rem var(--atelier-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--atelier-cypress)}.clock-grid b{font:450 clamp(2rem,4vw,3.4rem)/.95 var(--atelier-sans);letter-spacing:-.06em}.clock-grid small{color:#75807a}

.lab-proof{background:#050807;color:var(--atelier-paper)}
.lab-proof .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(40px,8vw,120px);align-items:center}
.lab-proof h2{text-align:left;font-size:clamp(3rem,7.5vw,7.8rem)}.lab-proof h2 em{font-family:var(--atelier-serif);font-weight:400;color:var(--atelier-signal)}
.lab-proof-copy p{color:rgba(243,239,230,.64);font-size:1.1rem;margin-bottom:25px}.lab-proof-copy .btn{background:var(--atelier-signal);color:#050807;border-color:var(--atelier-signal)}
.lab-disclosure{display:grid;gap:10px;margin-top:28px;color:rgba(243,239,230,.42);font:500 .58rem/1.45 var(--atelier-mono);letter-spacing:.06em;text-transform:uppercase}

@media(max-width:900px){.lab-card.weather,.lab-card.markets,.lab-card.news,.lab-card.clocks{grid-column:span 12}.lab-intro,.lab-proof .wrap{grid-template-columns:1fr}.lab-hero-copy{grid-template-columns:1fr}.lab-hero-copy p{grid-column:1}.lab-orbit{width:90vw;left:72%}}
@media(max-width:620px){.lab-hero{min-height:70svh;padding-top:112px}.lab-hero h1{font-size:clamp(3.6rem,20vw,6rem)}.lab-kicker span:last-child{display:none}.lab-strip .wrap span:nth-child(even){display:none}.lab-intro h2{font-size:3.3rem}.lab-card{padding:28px 20px}.weather-now{grid-template-columns:1fr;gap:18px}.weather-temp{font-size:7rem}.weather-hours{grid-template-columns:repeat(3,1fr);gap:14px}.weather-hours li{border:0;border-top:1px solid var(--atelier-line)}.city-search{grid-template-columns:1fr}.market-list li{grid-template-columns:1fr auto;gap:10px}.market-list em{grid-column:2}.news-list article{grid-template-columns:34px 1fr;gap:12px}.lab-proof h2{font-size:3.5rem}}
@media(prefers-reduced-motion:reduce){.lab-orbit i,.signal-state[data-state="loading"]::before{animation:none}}
