/* The daylight counterpart to Film. Kept separate from the shared typography. */
.labs-room{--art-size:clamp(290px,31vw,410px);--h:var(--room-horizon,65vh);--wall:#efece6;--wall-low:#e6e3dc;--floor:#d8d4cd;--floor-far:#cdc9c2;--ink:#30322e;--muted:#555a50;--line:#b2b3a9;position:relative;min-height:100svh;background:var(--floor);isolation:isolate}
/* The same room as Film with the lights on: one plaster wall, the cinema's microcement underfoot, daylight from above and no fixtures in shot. Built from gradients and the Film floor texture, not a photograph. */
.room-floor{position:absolute;z-index:-1;pointer-events:none;inset:0;overflow:hidden;background:linear-gradient(to bottom,#00000014,transparent 140px),radial-gradient(62vw calc(var(--h) * .5) at 50% calc(var(--h) * .42),#ffffff5c,transparent 100%),linear-gradient(to bottom,transparent calc(var(--h) - 130px),#0000000a calc(var(--h) - 2px),#0000002e var(--h),#00000014 calc(var(--h) + 4px),transparent calc(var(--h) + 100px)),linear-gradient(to right,#00000012,transparent 14%,transparent 86%,#00000012),linear-gradient(to bottom,var(--wall) 0,var(--wall) calc(var(--h) * .5),var(--wall-low) var(--h),var(--floor-far) var(--h),var(--floor) calc(var(--h) + 300px),var(--floor) 100%)}
.room-floor:before{content:'';position:absolute;left:-2%;right:-2%;top:var(--h);height:900px;background:url('/assets/cinema/concrete-fine.webp') center top/cover no-repeat;mix-blend-mode:multiply;opacity:.2;mask-image:linear-gradient(#000 0,#000 420px,transparent 900px);-webkit-mask-image:linear-gradient(#000 0,#000 420px,transparent 900px)}
.room-floor:after{content:'';position:absolute;left:0;right:0;top:0;height:var(--h);background:url('/assets/cinema/concrete-fine.webp') center/cover no-repeat;mix-blend-mode:multiply;opacity:.06}
.labs-room .header,.labs-room main{position:relative}
.labs-room .wordmark{text-shadow:none}
.labs-room .screen{height:calc(var(--art-size) + 118px);aspect-ratio:auto;border:0;background:none;overflow:visible;isolation:auto}
.labs-room .visual{animation:none}
.labs-room .screen-meta{inset:14px 0 auto;font-size:11px;color:#5d6258}
.labs-room .registration{display:none}
.labs-room .parasite-visual{inset:0;background:none;overflow:visible;--artwork:url('assets/gallery/output-05.jpg');touch-action:pan-y}
.gallery-piece{position:absolute;inset:18px 0 auto;display:flex;justify-content:center;margin:0}
.art-frame{display:block;position:relative;width:var(--art-size);height:var(--art-size);padding:18px;background:#fff;box-shadow:1px 2px 1px #35372f1c,3px 6px 9px #37382f16,12px 19px 25px #37382f25;cursor:zoom-in;transition:box-shadow .35s}
.art-frame:hover{box-shadow:1px 2px 2px #35372f20,3px 7px 11px #37382f18,12px 21px 29px #37382f2b}
.art-frame img{display:block;width:100%;height:100%;object-fit:contain}
.art-floor-shadow{position:absolute;top:calc(var(--art-size) + 107px);left:50%;width:calc(var(--art-size) * .95);height:22px;transform:translateX(-50%);background:#524f46;opacity:.17;filter:blur(18px);border-radius:50%;pointer-events:none}
.art-floor-light{position:absolute;top:calc(var(--art-size) + 91px);left:50%;width:calc(var(--art-size) * 1.3);max-width:100%;height:130px;transform:translateX(-50%) scaleY(-1);background-image:var(--artwork);background-size:100% 100%;opacity:.12;filter:blur(23px) saturate(.7);mask-image:radial-gradient(ellipse at 50% 55%,#000 5%,#000a 30%,transparent 70%);pointer-events:none}
.gallery-navigation{position:absolute;inset:auto 0 30px;display:flex;justify-content:center;align-items:center;gap:24px}
.gallery-arrow{width:44px;height:44px;font:20px/1 Arial;color:#454941}
.gallery-index{display:flex;align-items:center;gap:4px;max-width:min(560px,calc(100vw - 140px));overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}.gallery-index::-webkit-scrollbar{display:none}.gallery-index button{flex-shrink:0}
.gallery-index button{position:relative;min-width:32px;min-height:44px;padding:0 5px;color:#454941;font:11px/1 var(--narrow);letter-spacing:.12em}
.gallery-index button[aria-pressed=true]{color:#30342b}
.gallery-index button[aria-pressed=true]:after{content:'';position:absolute;left:9px;right:10px;bottom:8px;height:1px;background:currentColor;opacity:.65}
.labs-room .caption{min-height:99px;padding:20px 0 26px}
.labs-room .caption h2{font-size:23px;letter-spacing:.2em}
.labs-room .caption p{font-size:14px;letter-spacing:.1em;color:#3f4239}
.labs-room .exhibition-controls{padding-bottom:42px}
.labs-room .lab-footnote{border-color:#6c715e35;color:#555b4e}
.labs-room .text-link{border-color:#9ba08d80}
.labs-room .ghost-visual,.labs-room .literature-visual,.labs-room .parasite-screen{inset:26px 8% 90px;border:18px solid #fff;box-shadow:1px 2px 1px #35372f16,3px 6px 12px #37382f15,12px 20px 28px #37382f28;overflow:hidden}
.labs-room .screen:not([data-project=parasite]):after{content:'';position:absolute;left:15%;right:15%;bottom:56px;height:25px;background:#64685b;opacity:.12;filter:blur(18px);border-radius:50%;pointer-events:none}
.labs-room .screen:not([data-project=parasite]) .screen-meta{color:#5d6258}
.labs-room .lab-preview-video{inset:26px 8% 90px;width:84%;height:calc(100% - 116px);border:18px solid #fff;box-shadow:2px 8px 25px #37382f14}
.labs-room .lab-preview-toggle{top:52px;right:calc(8% + 28px)}
.labs-room #notes{background:#f7f6f1}
.labs-room dialog::backdrop{background:#73756c3d;backdrop-filter:blur(8px)}
.art-viewer{inset:0;margin:auto;width:100%;height:100dvh;max-height:100dvh;background:linear-gradient(#f0ede7,#e3e0d9);box-shadow:none;padding:24px 4%;overflow:auto}
.art-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;animation:reveal .2s ease}
.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;font:12px/1.3 var(--narrow);letter-spacing:.15em}
.viewer-top h2{font:inherit;letter-spacing:inherit;margin:0}
.viewer-top h2 span{margin-left:20px;color:#74766c}
.viewer-top button,.viewer-bottom button{font:inherit;letter-spacing:inherit;min-height:44px}
.viewer-top button span{margin-left:16px;font:18px/1 Arial}
.viewer-art{min-height:0;display:flex;justify-content:center;align-items:center}
.viewer-art img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:1;object-fit:contain;border:20px solid #fff;box-shadow:4px 12px 32px #37382f14}
.viewer-bottom>span{font-size:11px;color:#6b6d64}
@media(max-width:1150px){.labs-room .exhibition-controls{gap:10px 20px}.labs-room .project-tabs{padding-bottom:8px}}
@media(max-width:600px){.labs-room{--art-size:calc(100vw - 100px)}.labs-room .header{padding-bottom:24px}.labs-room .screen{height:calc(var(--art-size) + 135px)}.gallery-piece{top:40px}.art-frame{padding:13px}.labs-room .screen-meta{inset:0 0 auto;font-size:10px}.art-floor-shadow{top:calc(var(--art-size) + 122px);height:18px}.art-floor-light{top:calc(var(--art-size) + 105px);height:100px}.gallery-navigation{gap:4px}.gallery-index{gap:0}.gallery-index button{min-width:27px;padding-inline:3px}.gallery-index button[aria-pressed=true]:after{left:8px;right:9px}.gallery-arrow{width:36px;flex-shrink:0}.labs-room .caption{padding:17px 0 27px;min-height:99px}.labs-room .caption h2{font-size:22px}.labs-room .caption p{font-size:13px}.labs-room .exhibition-controls{padding-bottom:35px}.labs-room .project-tabs{gap:5px 24px;padding-bottom:16px}.labs-room .ghost-visual,.labs-room .literature-visual,.labs-room .parasite-screen{inset:40px 0 90px;border-width:12px}.labs-room .lab-preview-video{inset:40px 0 90px;width:100%;height:calc(100% - 130px);border-width:12px}.labs-room .lab-preview-toggle{top:58px;right:18px}.art-viewer{padding:14px 18px 20px;gap:10px}.viewer-art img{border-width:12px}.viewer-top,.viewer-bottom{font-size:11px;gap:10px}.viewer-bottom>span{font-size:10px;letter-spacing:.06em}.viewer-top h2 span{margin-left:10px}}
@media(max-width:360px){.gallery-index button{min-width:24px}.gallery-arrow{width:32px}.gallery-navigation{gap:1px}.labs-room .project-tabs{gap:5px 18px}}
@media(prefers-reduced-motion:reduce){.art-frame{transition:none}.art-viewer[open]{animation:none}}

/* Main Labs screen and the separate artwork exhibition share the same room. */
.labs-room .parasite-screen{background:#f9fafb}
.parasite-screen .specimen{position:absolute;inset:0;margin:auto;width:84%;height:auto;max-height:62%;object-fit:contain;transform:none;filter:drop-shadow(0 14px 18px #3a382f1f)}
/* Controls mirror Film: the selected experiment's own actions on the left, the list of experiments on the right. */
.labs-overview .lab-controls{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,1.35fr);align-items:start;gap:60px;padding:14px 0 55px}
.lab-actions{display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.lab-primary{display:inline-flex;align-items:center;gap:16px;color:var(--ink);white-space:nowrap}
.lab-ring{display:grid;place-items:center;width:35px;height:35px;border:1px solid #4a4e46;border-radius:50%;transition:background .2s,color .2s,border-color .2s}
.lab-ring .arrow{width:11px;height:11px}
.lab-primary:hover .lab-ring{background:var(--ink);border-color:var(--ink);color:#f3f2ee}
.lab-primary-label{font:13px/1.2 var(--narrow);letter-spacing:.15em;padding:10px 0 7px;border-bottom:1px solid #5a5e55}
.lab-secondary{display:flex;flex-wrap:wrap;gap:4px 30px}
.lab-link{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0;font:11px/1.4 var(--narrow);letter-spacing:.13em;color:#363931;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px;text-decoration-color:#5a5e5580;transition:color .2s,text-decoration-color .2s}
.lab-link:hover{color:var(--ink);text-decoration-color:currentColor}
.lab-link .arrow{width:9px;height:9px}
.lab-switcher{min-width:0}
.switcher-label{margin:0 0 2px;font:11px/1.6 var(--narrow);letter-spacing:.18em;color:#454941}
.switcher-label span{margin-left:10px;color:#5a5e55}
.labs-overview .project-tabs{justify-content:flex-start;flex-wrap:wrap;gap:0 30px;padding:0}
.labs-overview .project-tabs button{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font:12px/1.4 var(--narrow);letter-spacing:.12em;color:#454941;text-align:left;white-space:nowrap}
.labs-overview .project-tabs button[aria-selected=true]{color:var(--ink)}
.labs-overview .project-tabs button[aria-selected=true]:after{bottom:0;right:0}
.tab-index{font-size:10px;letter-spacing:.1em;color:#4d5149;margin-right:8px}
.labs-overview .project-tabs button[aria-selected=true] .tab-index{color:#3f4239}
.artwork-page .caption h1{margin:0 0 6px;font:400 23px/1.25 var(--narrow);letter-spacing:.2em}
.labs-room .studio-footer{--footer-ink:#30322e;--footer-muted:#454941;--footer-line:#45494152}
.labs-room .text-link{color:#363931;border-color:#5a5e5580}
.artwork-links{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 0 45px}
.artwork-links .text-link>span:last-child{font:inherit}
.literature-visual{background:#dee3df;display:grid;place-items:center;text-align:center}
.literature-panels{position:absolute;inset:14% 9%;display:grid;grid-template-columns:.8fr 1.6fr .8fr;perspective:600px;filter:drop-shadow(0 12px 13px #40535326)}
.literature-panels i{background:linear-gradient(#c2cece 0%,#e0e4df 48%,#8da3a6 49%,#5b777e 90%,#516d75);border:1px solid #e8eeeb}
.literature-panels i:first-child{transform:rotateY(27deg);transform-origin:right center}
.literature-panels i:last-child{transform:rotateY(-27deg);transform-origin:left center}
.literature-label{position:relative;color:#1e373d}
.literature-kicker{font:11px/1.3 var(--narrow);letter-spacing:.24em}
.literature-label p{font:400 clamp(26px,3vw,44px)/1.1 var(--narrow);letter-spacing:.15em;margin:13px 0 24px;padding-left:.15em}
.literature-status{font:14px/1.2 var(--narrow);letter-spacing:.08em;color:#f8faf7;text-shadow:0 1px 3px #20343a77}
@media(max-width:1150px){.labs-overview .lab-controls{gap:35px;grid-template-columns:1fr 1.4fr}.labs-overview .project-tabs{gap:0 22px}}
@media(max-width:600px){.room-floor:before{opacity:.15}.labs-overview .lab-controls{grid-template-columns:1fr;gap:30px;padding:4px 0 36px}.lab-actions{gap:14px}.lab-ring{width:29px;height:29px}.lab-primary-label{font-size:11px;letter-spacing:.1em}.lab-secondary{gap:0 22px}.lab-link{font-size:11px;letter-spacing:.09em;min-height:36px}.labs-overview .project-tabs{gap:0 20px;max-width:100%}.labs-overview .project-tabs button{font-size:11px;letter-spacing:.08em;min-height:40px}.artwork-page .caption h1{font-size:21px}.artwork-links{padding:12px 0 34px}.literature-panels{inset:14% 7%}.literature-kicker{font-size:10px;letter-spacing:.12em}.literature-label p{font-size:25px;margin:10px 0 16px;letter-spacing:.09em}.literature-status{font-size:12px}}
@media(max-width:360px){.labs-overview .project-tabs{gap:0 14px}.labs-overview .project-tabs button{font-size:10px}.lab-link{font-size:10px;letter-spacing:.05em}}
@media(max-width:600px){.labs-overview .screen{height:calc((100vw - 44px)/2 + 64px)}.labs-overview .ghost-visual,.labs-overview .literature-visual,.labs-overview .parasite-screen{top:18px;bottom:auto;height:calc((100vw - 44px)/2)}.labs-overview .lab-preview-video{top:18px;bottom:auto;height:calc((100vw - 44px)/2)}}
