/* The Lab owns its atmosphere; projects own their own documents. */
.lab-page{--paper:#101110;--ink:#eeeeE7;--muted:#9c9f96;--line:#30332e;--soft:#191b18;--orange-text:#f18b54;background:var(--paper);color:var(--ink);min-height:100svh}
.lab-header .nav{min-height:87px}.lab-header .wordmark{font-size:13px}.lab-exit{display:flex;gap:30px;align-items:center;font-size:11px;border-left:1px solid var(--line);padding-left:28px}.lab-exit span{font-size:18px}
.lab-main{padding-top:47px}.lab-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:35px}.lab-intro .eyebrow{color:var(--muted);font-size:9px}.lab-intro h1{font-size:91px;line-height:1;letter-spacing:-.065em;margin-top:18px}.lab-intro-aside{display:flex;align-items:flex-end;gap:70px}.lab-intro-aside>p{font-size:12px;line-height:1.8}.view-switch{display:flex;border:1px solid var(--line);padding:4px;gap:3px}.view-switch button{display:flex;gap:9px;align-items:center;color:var(--muted);background:none;border:0;font:10px var(--mono);padding:11px 15px;min-height:38px}.view-switch button[aria-pressed="true"]{color:#101110;background:#e6e7df}.view-switch button:hover{color:var(--orange-text)}.view-switch button[aria-pressed="true"]:hover{color:#101110}
.workshop{position:relative;isolation:isolate;border:1px solid var(--line);background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:40px 40px;min-height:440px;overflow:hidden}.workshop::before,.workshop::after{content:'+';position:absolute;font:16px var(--mono);color:#7a7e71;top:54px;left:19px;pointer-events:none}.workshop::after{top:auto;bottom:20px;left:auto;right:21px}.workshop-topline{display:flex;justify-content:space-between;padding:17px 22px;border-bottom:1px solid var(--line);color:#8e9386}.workshop-topline .mono{font-size:8px;letter-spacing:.1em}
.scene-connections{position:absolute;top:90px;left:0;width:100%;height:340px;z-index:-1;color:#636c53;pointer-events:none}.connection-path{stroke-dashoffset:0;transition:d 1s ease,opacity .6s ease}.stations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:42px;padding:43px 44px 35px}.station{min-width:0;position:relative}.station-coordinate{display:flex;align-items:center;justify-content:space-between;font:8px var(--mono);letter-spacing:.07em;color:#9ba38e}.station-plus{font-size:17px}.station-art{color:#afb7a1;transition:transform .6s ease,color .3s ease}.station-art svg{width:100%;height:100%}.station-art img{width:100%;aspect-ratio:480/420;object-fit:cover;height:auto;border:1px solid var(--line);margin-top:15px}.station-info{border-top:1px solid var(--line);padding-top:17px}.station-info .status-label{color:#cabd66}.station-info h2{font-size:23px;letter-spacing:-.035em;line-height:1.2;margin-top:12px;display:flex;justify-content:space-between;gap:20px}.station-info h2 span{font-size:20px;color:var(--orange)}.station-info p{font-size:12px;line-height:1.8;margin-top:12px}.station-info .tags{margin-top:18px}.station-info .tags span{font-size:8px;color:var(--muted)}
.project-station:hover .station-art,.project-station:focus-visible .station-art{transform:translateY(-8px);color:#fff}.project-station:hover .station-info h2,.project-station:focus-visible .station-info h2{color:var(--orange-text)}.project-station:hover .station-info p,.project-station:focus-visible .station-info p{color:#d5d9ce}.project-station:focus-visible{outline-offset:12px}
.ambient-stations{padding-top:33px;padding-bottom:35px;align-items:center}.ambient-station:nth-child(2){transform:translateY(22px)}.ambient-station:nth-child(3){transform:translateY(-3px)}.ambient-station{transition:transform 1s ease}.ambient-station .station-art{height:255px}.ambient-caption{display:flex;gap:8px;align-items:center;font:9px var(--mono);color:#9fa391}.tiny-square{width:4px;height:4px;border:1px solid var(--orange)}.ambient-station:nth-child(2) .tiny-square{border-color:var(--yellow)}.ambient-station:nth-child(3) .tiny-square{border-color:var(--red)}
.lab-empty-note{display:flex;align-items:center;gap:20px;margin:25px 44px 0;padding-block:25px 32px;border-top:1px solid var(--line)}.empty-symbol{font-size:29px;color:var(--orange);align-self:flex-start;line-height:1.3}.lab-empty-note h2{font-size:16px;line-height:1.5;letter-spacing:-.02em}.lab-empty-note p{font-size:11px;margin-top:5px}.rewire-button{margin-left:auto;font-size:9px;gap:16px}.rewire-button span{font-size:21px;color:var(--orange)}.lab-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-block:15px 25px;color:var(--muted)}.lab-footer .mono{font-size:8px}.lab-footer .motion-toggle{font-size:9px;margin-left:auto}.lab-signature{margin-left:22px}
[data-arrangement="1"] .ambient-station:first-child{transform:translateY(20px)}[data-arrangement="1"] .ambient-station:nth-child(2){transform:translateY(-14px)}[data-arrangement="1"] .ambient-station:nth-child(3){transform:translateY(16px)}[data-arrangement="2"] .ambient-station:first-child{transform:translateY(-10px)}[data-arrangement="2"] .ambient-station:nth-child(2){transform:translateY(8px)}[data-arrangement="2"] .ambient-station:nth-child(3){transform:translateY(-15px)}
[data-view="list"] .workshop{background:none;min-height:0}[data-view="list"] .scene-connections,[data-view="list"] .ambient-stations,[data-view="list"] .rewire-button{display:none}[data-view="list"] .stations:not(.ambient-stations){display:block;padding:0 30px}[data-view="list"] .project-station{display:grid;grid-template-columns:100px 1fr;gap:25px;padding-block:28px;border-bottom:1px solid var(--line)}[data-view="list"] .project-station:last-child{border-bottom:0}[data-view="list"] .station-art{display:none}[data-view="list"] .station-coordinate{align-self:start;justify-content:flex-start;padding-top:3px}[data-view="list"] .station-plus{display:none}[data-view="list"] .station-info{border:0;padding:0}[data-view="list"] .station-info h2{font-size:27px}[data-view="list"] .station-info p{max-width:720px}[data-view="list"] .lab-empty-note{margin:0 30px;padding-block:60px;border:0}
@media(max-width:1100px){.lab-intro-aside{gap:30px}.stations{column-gap:22px;padding-inline:28px}.lab-signature{display:none}.lab-empty-note{margin-inline:28px}.lab-intro h1{font-size:80px}}
@media(max-width:760px){
.lab-header .nav{min-height:80px;gap:15px}.lab-header .site-controls{gap:15px}.lab-exit{gap:15px;padding-left:15px;font-size:10px}.lab-main{padding-top:33px}.lab-intro{align-items:flex-start;flex-direction:column;gap:22px;margin-bottom:25px}.lab-intro .eyebrow{font-size:8px}.lab-intro h1{font-size:76px;margin-top:19px}.lab-intro-aside{width:100%;justify-content:space-between;gap:18px}.lab-intro-aside>p{font-size:10px}.view-switch button{font-size:9px;padding:10px}.view-switch button>span{display:none}
.stations{grid-template-columns:1fr;gap:35px;padding:30px 24px}.station-coordinate{font-size:9px}.station-art{max-width:400px;margin:auto}.station-info h2{font-size:27px}.station-info p{font-size:13px}.station-info .tags span{font-size:9px}.scene-connections{height:calc(100% - 150px);top:50px;opacity:.3}
.ambient-stations{gap:32px}.ambient-station,.ambient-station:nth-child(n){transform:none!important;border-bottom:1px solid var(--line);padding-bottom:28px}.ambient-station:last-child{border:0;padding-bottom:0}.ambient-station .station-art{height:270px}.ambient-station svg{height:100%}.ambient-caption{font-size:10px}.lab-empty-note{margin:0 24px;padding-block:25px;gap:14px;flex-wrap:wrap}.lab-empty-note>div{flex:1}.lab-empty-note h2{font-size:17px}.lab-empty-note p{font-size:12px}.rewire-button{margin:0 0 0 35px;font-size:10px}.lab-footer{flex-wrap:wrap;gap:7px;padding-block:18px}.lab-footer .lab-hint{font-size:7px;max-width:200px;line-height:1.8}.lab-footer .motion-toggle{font-size:8px}
[data-view="list"] .project-station{grid-template-columns:1fr;gap:12px}[data-view="list"] .stations:not(.ambient-stations){padding-inline:23px}[data-view="list"] .lab-empty-note{margin-inline:24px;padding-block:40px}
}

/* Descriptions reveal on hover/focus in the spatial view; touch and List keep them visible. */
.station-info,.work-card{overflow-wrap:anywhere}
@media(hover:hover) and (pointer:fine) and (min-width:761px){
[data-view="space"] .project-station .station-info p,[data-view="space"] .project-station .tags{opacity:0;transform:translateY(5px);transition:opacity .2s ease,transform .2s ease}
[data-view="space"] .project-station:hover .station-info p,[data-view="space"] .project-station:focus-visible .station-info p,[data-view="space"] .project-station:hover .tags,[data-view="space"] .project-station:focus-visible .tags{opacity:1;transform:none}
}

/* An observatory for unfinished ideas. */
.lab-page{--paper:#08090c;--ink:#f1eee9;--muted:#a09da4;--line:#29282e;--soft:#111116;background:radial-gradient(ellipse at 80% 0,#20140f55,transparent 50%),var(--paper)}
.lab-main{--field-accent:#ffa66f;--field-rgb:255,166,111;--field-glow:#b94d25;--orange:var(--field-accent);--orange-text:var(--field-accent);padding-top:35px}
.lab-main[data-theme="ion"]{--field-accent:#8ee8f4;--field-rgb:142,232,244;--field-glow:#227f9e}
.lab-main[data-theme="ultraviolet"]{--field-accent:#c3a3ff;--field-rgb:195,163,255;--field-glow:#7041bf}
.lab-intro{margin-bottom:29px}.lab-intro h1{font-size:76px}.lab-intro .eyebrow{letter-spacing:.14em}.lab-intro-aside{gap:48px}.lab-intro-aside>p{color:#a09da4}
.view-switch{border-radius:6px;background:#101014}.view-switch button{border-radius:3px}.view-switch button[aria-pressed="true"]{background:#e8e3dd}
.gravity-observatory{border:1px solid #383039;border-radius:10px;overflow:hidden;background:#09090c;box-shadow:0 20px 80px #0003;transition:border-color .6s ease}
.gravity-scene{position:relative;height:485px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 68% 46%,rgba(var(--field-rgb),.045),transparent 65%)}
.gravity-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2;opacity:0;transition:opacity 1s ease}.gravity-scene.is-rendered .gravity-canvas{opacity:1}
.gravity-scene::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#09090cf5 0%,#09090ca8 23%,transparent 53%),linear-gradient(0deg,#09090c,transparent 17%,transparent 87%,#09090c77)}
.observatory-topline,.observatory-bottomline{position:absolute;inset:23px 28px auto;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:.12em;color:#a6a0a5}.observatory-topline>span:first-child{display:flex;align-items:center;gap:9px}.live-dot{width:5px;height:5px;background:var(--field-accent);border-radius:50%;box-shadow:0 0 12px rgba(var(--field-rgb),.7)}
.observatory-bottomline{inset:auto 28px 22px;color:#8e858b;font-size:8px}.pointer-hint{display:flex;gap:15px;align-items:center}.pointer-hint>span{color:var(--field-accent);font-size:17px}
.gravity-copy{position:absolute;left:44px;top:130px}.gravity-copy .eyebrow{font-size:8px;color:var(--field-accent);letter-spacing:.15em}.gravity-copy h2{font-size:clamp(35px,3.8vw,54px);line-height:1.1;letter-spacing:-.045em;margin-top:21px}.gravity-copy h2 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--field-accent)}.gravity-copy>p:not(.eyebrow){font-size:12px;line-height:1.85;margin-top:20px;color:#a6a0a5}.gravity-link{display:inline-flex;align-items:center;gap:28px;margin-top:28px;font-size:11px;border-bottom:1px solid #756057;padding-bottom:8px}.gravity-link span{color:var(--field-accent);font-size:18px;transition:transform .3s}.gravity-link:hover span{transform:translate(3px,3px)}
.horizon-label{position:absolute;right:35px;top:66%;font-size:8px;letter-spacing:.1em;color:var(--field-accent)}.horizon-label>span{width:38px;display:inline-block;vertical-align:middle;margin-right:10px;border-top:1px solid rgba(var(--field-rgb),.5)}.horizon-label small{display:block;font:7px var(--mono);letter-spacing:.06em;color:#91858b;padding:7px 0 0 49px}
.gravity-fallback{position:absolute;width:240px;height:240px;left:68%;top:47%;transform:translate(-50%,-50%);border-radius:50%;background:#030305;box-shadow:0 0 4px 2px #ffe5bc,0 0 22px 5px var(--field-glow),0 0 85px 15px var(--field-glow);z-index:-2}.gravity-fallback span{position:absolute;inset:20% -65%;border-radius:50%;border:10px solid var(--field-accent);transform:rotate(-15deg) scaleY(.27);box-shadow:0 0 30px var(--field-glow),inset 0 0 25px var(--field-glow)}.is-rendered .gravity-fallback{display:none}
.gravity-controls{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:15px 27px;background:#101014;border-top:1px solid var(--line)}.theme-controls{display:flex;align-items:center;gap:6px}.control-caption{font-size:8px;letter-spacing:.1em;color:#a7a0a8}.theme-controls>.control-caption{margin-right:14px}.theme-button{display:flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:5px;background:transparent;padding:9px 11px;min-height:38px;color:#a7a0a8;font:10px var(--mono)}.theme-button i{height:7px;width:7px;border-radius:50%;background:#ffa66f}.theme-button[data-theme="ion"] i{background:#8ee8f4}.theme-button[data-theme="ultraviolet"] i{background:#c3a3ff}.theme-button[aria-pressed="true"]{border-color:rgba(var(--field-rgb),.24);background:rgba(var(--field-rgb),.07);color:#f2ecea}.theme-button:hover{background:#ffffff09;color:#fff}
.gravity-range{display:flex;align-items:center;gap:15px}.gravity-range input{width:108px;height:24px;accent-color:var(--field-accent);cursor:ew-resize}.gravity-range output{font:10px var(--mono);color:var(--field-accent);min-width:4ch;text-align:right}
.experiments-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:41px 0 20px;scroll-margin-top:30px}.experiments-heading h2{font-size:25px;letter-spacing:-.035em}.experiments-heading>.mono{font-size:8px;letter-spacing:.08em;color:#89838e}
.workshop{border-radius:8px;background-color:#0e0e12;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px)}.workshop-topline{background:#ffffff02}.workshop-topline .mono{color:#a9a1aa}.scene-connections{color:var(--field-accent);opacity:.3}.station-coordinate{color:#aaa0a8}.station-art{color:#b8a5a0}.station-art img{border-radius:5px;transition:filter .5s,transform .6s}.station-info .status-label{color:var(--field-accent)}.project-station{border:1px solid transparent;border-radius:7px;padding:16px;transition:background .35s,border-color .35s,transform .5s}.project-station:hover,.project-station:focus-visible{background:rgba(var(--field-rgb),.035);border-color:rgba(var(--field-rgb),.18)}.project-station:hover .station-art img{filter:brightness(1.15)}.stations{padding:22px 24px 28px;gap:24px}.station-info h2{font-size:24px}.lab-footer{padding-block:16px 30px}
[data-view="space"] .project-station .station-info p,[data-view="space"] .project-station .tags{opacity:1;transform:none}
[data-view="list"] .gravity-observatory{display:none}[data-view="list"] .experiments-heading{margin-top:40px}[data-view="list"] .project-station{border-radius:0;padding-inline:12px}[data-view="list"] .project-station:hover{border-color:transparent;border-bottom-color:var(--line)}
.view-entering{animation:lab-view-in .45s ease both}@keyframes lab-view-in{from{opacity:.3;transform:translateY(10px)}to{opacity:1;transform:none}}.theme-entering{animation:lab-theme-in .6s ease both}@keyframes lab-theme-in{from{opacity:.4}to{opacity:1}}
@media(min-width:1101px){.stations:has(.project-station:only-child){grid-template-columns:minmax(280px,420px) 1fr}.stations:has(.project-station:only-child)::after{content:'EVERY EXPERIMENT STARTS\A WITH A SMALL PULL.';white-space:pre;align-self:center;justify-self:center;font:10px/2 var(--mono);letter-spacing:.12em;color:#827681;padding:30px}}
@media(max-width:1100px){.lab-intro-aside{gap:28px}.gravity-copy{left:30px}.gravity-copy h2{font-size:42px}.gravity-controls{padding-inline:20px;gap:14px}.theme-controls>.control-caption{margin-right:5px}.horizon-label{right:24px;top:72%}.gravity-range{gap:9px}.gravity-range input{width:85px}}
@media(max-width:760px){.lab-main{padding-top:28px}.lab-intro h1{font-size:65px}.lab-intro-aside{gap:18px}.lab-intro{gap:22px}.gravity-scene{height:570px}.observatory-topline{inset:19px 20px auto;font-size:7px}.observatory-topline>span:last-child{display:none}.gravity-copy{left:24px;top:315px}.gravity-copy h2{font-size:38px;margin-top:15px}.gravity-copy .eyebrow{font-size:7px}.gravity-copy>p:not(.eyebrow){font-size:11px;margin-top:14px}.gravity-link{margin-top:17px;font-size:10px;padding-bottom:5px;gap:35px}.observatory-bottomline{inset:auto 20px 15px;font-size:6px}.observatory-bottomline>span:last-child,.pointer-hint,.horizon-label{display:none}.gravity-scene::after{background:linear-gradient(0deg,#09090c 0%,#09090cbb 35%,transparent 53%,transparent 90%,#09090c55)}.gravity-fallback{left:50%;top:28%;width:145px;height:145px}.gravity-controls{flex-wrap:wrap;gap:12px;padding:13px 17px}.theme-controls{width:100%;justify-content:space-between;gap:2px}.theme-controls>.control-caption{display:none}.theme-button{padding:8px 10px;font-size:9px}.gravity-range{width:100%;padding:9px 3px 0;border-top:1px solid var(--line);gap:15px}.gravity-range input{flex:1;width:100px}.gravity-range .control-caption{font-size:8px}.experiments-heading{margin-top:30px;align-items:flex-end}.experiments-heading h2{font-size:23px}.experiments-heading>.mono{font-size:6px;max-width:90px;text-align:right;line-height:1.8}.stations{padding:17px 15px;gap:20px}.project-station{padding:10px}.station-info h2{font-size:25px}.ambient-station .station-art{height:220px}.lab-header .site-controls{gap:12px}.lab-exit{gap:12px;padding-left:12px}}
