@font-face{font-family:Inter;src:url('/media/inter-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}:root{color-scheme:dark;--bg:#09151b;--surface:#0e1c22;--room:#14282e;--ink:#edf2ee;--muted:#a1b4b5;--line:#ffffff24;--teal:#6dd4ce;--button:#10272c;--accent:#087d80;--stage-line:#456065;--paper:#fff}html[data-theme=light]{color-scheme:light;--bg:#fff;--surface:#fff;--room:#edf3f3;--ink:#152e32;--muted:#5b7476;--line:#d4e2e0;--teal:#087d80;--button:#f2f7f6;--stage-line:#c4d8d7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:12px/1.6 Inter,Arial,sans-serif}button,select{font:inherit;color:inherit;border:1px solid var(--line);background:var(--button);border-radius:3px;padding:9px 12px;cursor:pointer}button:hover{border-color:var(--teal);color:var(--teal)}button:disabled{opacity:.4;cursor:wait}a{color:inherit;text-decoration:none}a:hover{color:var(--teal)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--teal);outline-offset:4px}header{display:flex;justify-content:space-between;align-items:center;padding:25px 4vw;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:18px;font-size:23px;font-weight:600;letter-spacing:-1px}.brand span{font-size:8px;letter-spacing:1.5px;font-weight:400;padding-left:18px;border-left:1px solid var(--line)}header nav{display:flex;align-items:center;gap:24px;font-size:11px}.theme-toggle{display:grid;place-items:center;width:32px;height:32px;padding:5px;border-radius:50%;background:transparent}.theme-toggle svg{height:20px;width:20px}.intro{display:flex;align-items:end;justify-content:space-between;padding:27px 4vw 24px;gap:30px}.eyebrow{font-size:8px;letter-spacing:2px;color:var(--muted);margin:0 0 6px}h1{font-size:clamp(32px,4vw,58px);font-weight:450;letter-spacing:-2.5px;line-height:1.1;margin:0}h1>span{color:var(--teal)}.intro>p{font-size:11px;color:var(--muted);margin:0 0 3px;line-height:1.8}main{display:grid;grid-template-columns:175px minmax(300px,1fr) 265px;gap:20px;padding:0 4vw 30px;max-width:1800px;margin:auto;align-items:start}aside{border:1px solid var(--line);background:var(--surface);padding:18px 15px;border-radius:4px}h2{font-size:11px;letter-spacing:.1px;font-weight:550;margin:0 0 13px;color:var(--ink)}aside h2:not(:first-child){padding-top:18px;border-top:1px solid var(--line);margin-top:20px}.left button,.left>a{display:block;width:100%;text-align:left;margin-bottom:5px;font-size:11px;background:transparent;border-color:transparent}.left a{padding:7px 10px}.left a span{float:right;color:var(--muted)}.left button.active{color:var(--teal);border-color:var(--line);background:var(--button)}.note{font-size:10px;line-height:1.7;color:var(--muted)}.left>.note{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.workspace{min-width:0}.room{height:510px;min-height:390px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid var(--stage-line);border-radius:4px;background:radial-gradient(ellipse at 50% 20%,#7fada31b,transparent 65%),linear-gradient(0deg,var(--room),var(--room));isolation:isolate}.room:before{content:'';position:absolute;inset:0 0 22%;background:repeating-linear-gradient(0deg,transparent 0 76px,var(--stage-line) 77px,transparent 78px),repeating-linear-gradient(90deg,transparent 0 104px,var(--stage-line) 105px,transparent 106px);opacity:.2;z-index:-1}.room:after{content:'';position:absolute;left:0;right:0;bottom:0;height:24%;border-top:1px solid var(--stage-line);background:linear-gradient(110deg,#bdd2d223,#ffffff09 48%,#719e9e15);z-index:-1}.room-label{position:absolute;top:17px;left:19px;right:19px;display:flex;justify-content:space-between;color:var(--muted);font-size:8px;letter-spacing:1.4px}.live-label{letter-spacing:0;color:var(--teal);display:flex;align-items:center;gap:6px}.live-label:before{content:'';width:4px;height:4px;border-radius:50%;background:var(--teal)}.lab-light{position:absolute;top:58px;left:23%;right:23%;height:3px;background:#e4f4ee;box-shadow:0 6px 35px 5px #b3e8db33}.lab-window{position:absolute;right:-15px;top:90px;width:18%;height:52%;border:6px solid var(--stage-line);background:linear-gradient(130deg,#a2ddd91b,#ffffff05 48%,#adcecb26 49%,#ffffff02);opacity:.28;z-index:-1}.line{position:absolute;top:94px;left:0;right:0;border-top:1px solid var(--stage-line)}.lamp,.shelf{display:none}.print{position:relative;z-index:2;background:#fff;padding:14px 14px 4px;width:72%;max-width:560px;margin-top:15px;box-shadow:0 16px 30px #0003;border:1px solid #d9e1df}.clips:before,.clips:after{content:'';position:absolute;top:-15px;width:9px;height:25px;border-radius:2px;background:linear-gradient(90deg,#758c8b,#dce5e2,#6b8180);border:1px solid #627776}.clips:before{left:18px}.clips:after{right:18px}canvas{display:block;width:100%;max-height:330px;object-fit:contain;background:#0b1419}.paper-caption{display:flex;justify-content:space-between;gap:10px;color:#52716d;font-size:6px;letter-spacing:1.2px;padding:9px 0 6px}.tray{position:absolute;bottom:28px;width:83%;height:52px;border:6px double var(--stage-line);border-radius:4px 4px 14px 14px;background:linear-gradient(165deg,#5b939128,#bce2d511 70%);transform:perspective(350px) rotateX(38deg);box-shadow:0 14px 15px #0002;z-index:1}.bench-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-top:12px;font-size:10px}.bench-actions button{font-size:10px}.bench-actions label{margin-left:auto;color:var(--muted);display:flex;align-items:center;gap:5px}input[type=checkbox]{accent-color:var(--accent)}#status{font-size:10px;min-height:33px;color:var(--muted);margin:9px 0 0}.looks{display:grid;grid-template-columns:1fr 1fr;gap:5px}.looks button{font-size:10px;min-height:39px;padding:7px 4px;background:transparent}.looks [aria-pressed=true]{color:var(--teal);border-color:var(--teal);background:var(--button)}#info{font-size:12px;white-space:pre-line;overflow-wrap:anywhere;margin:0 0 9px}#metadata{font-size:10px}.slider-row{display:grid;grid-template-columns:72px minmax(50px,1fr) 26px;align-items:center;gap:7px;font-size:10px;margin:10px 0}input[type=range]{width:100%;accent-color:var(--accent);height:15px}output{text-align:right;color:var(--teal);font-variant-numeric:tabular-nums}#save{background:#087d80;border-color:#087d80;color:white;width:100%;font-size:11px}.right>button{width:100%;margin-top:7px;font-size:11px}.right .note{margin:9px 0}.right h2:not(:first-child){padding-top:14px;margin-top:16px}.select-label{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);margin:11px 0 6px}.select-label select{width:100%;font-size:10px}.contact{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;min-width:0}.contact-heading{display:flex;justify-content:space-between;align-items:center}.contact-heading h2{font-size:15px;letter-spacing:-.3px;font-weight:450;margin:0}.contact-heading button{font-size:10px;background:transparent}.contact>.note{margin:6px 0 8px}#sheet{display:flex;gap:10px;overflow-x:auto;padding:5px 0 15px;scrollbar-width:thin;scrollbar-color:var(--stage-line) transparent}#sheet button{padding:5px;background:transparent;flex:0 0 91px;height:103px;position:relative}#sheet img{width:79px;height:89px;object-fit:cover;display:block}#sheet button[aria-pressed=true]{border:1px solid var(--teal);box-shadow:0 0 0 1px var(--teal)}#sheet .saved:after{content:'';position:absolute;right:9px;top:9px;width:5px;height:5px;border-radius:50%;background:#6de0cd;box-shadow:0 0 0 2px #061c1b90}.develop-overlay{position:absolute;z-index:4;inset:45px 0 0;background:var(--room);display:grid;place-content:center;text-align:center;opacity:.94}.develop-overlay[hidden]{display:none}.develop-overlay p{font-size:24px;letter-spacing:-.7px}.develop-overlay small{font-size:11px;letter-spacing:0;color:var(--muted)}.develop-overlay button{font-size:11px}.revealing canvas{animation:develop 4s ease-out}@keyframes develop{from{filter:brightness(.15);opacity:.3}to{filter:brightness(1);opacity:1}}dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:4px;max-width:95vw;max-height:95svh;padding:16px}dialog::backdrop{background:#07191bd9}dialog img{display:block;max-width:85vw;max-height:75svh;object-fit:contain}dialog button{float:right;margin-bottom:12px;font-size:11px}dialog p{clear:both;font-size:10px;color:var(--muted);max-width:800px}@media(min-width:1500px){.room{height:620px}canvas{max-height:420px}.print{width:68%}.tray{bottom:35px;height:65px}}@media(max-width:1100px){main{grid-template-columns:145px minmax(250px,1fr) 235px;gap:12px;padding-left:3vw;padding-right:3vw}aside{padding:14px 11px}.room{height:490px}.print{width:82%;padding:11px 11px 3px}.intro{padding-left:3vw;padding-right:3vw}.intro>p{font-size:10px}.slider-row{grid-template-columns:65px 1fr 24px;gap:3px}.bench-actions label{margin-left:0}}@media(max-width:820px){header{padding:20px 5vw}.brand{font-size:20px}.brand span{display:none}header nav{gap:17px}header nav>a:nth-child(2){display:none}.intro{padding:25px 5vw 20px;display:block}.intro>p{margin-top:14px}h1{font-size:43px}main{padding:0 5vw 25px;grid-template-columns:1fr;gap:16px}.left{grid-row:1;padding:12px}.left>h2:not(:first-child),.left>a,.left>.note{display:none}#collections{display:flex;overflow-x:auto;gap:6px;padding-bottom:3px}#collections button{width:auto;white-space:nowrap;margin:0;padding:7px 9px}.left>button{display:inline-block;width:auto;margin:8px 8px 0 0;padding:5px 8px;font-size:10px}.left>h2{margin-bottom:8px}.workspace{grid-row:2}.room{height:480px;min-height:380px}.print{width:78%;max-width:470px}.right{grid-row:4}.contact{grid-row:3;grid-column:1}.slider-row{grid-template-columns:90px 1fr 35px;font-size:12px;margin:17px 0}.looks{grid-template-columns:repeat(4,1fr)}.looks button{min-height:48px}.bench-actions{justify-content:start}.room-label{font-size:7px}.tray{bottom:22px}#info{font-size:14px}.right .note{font-size:11px}.right>button{font-size:12px;padding:12px}.contact-heading h2{font-size:15px}.select-label{font-size:12px}.select-label select{font-size:12px}dialog img{max-width:86vw}.intro .eyebrow{font-size:8px}}@media(max-width:400px){.room{height:425px}.print{width:82%}.bench-actions button{padding:8px}.paper-caption{font-size:5px}.looks{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Quiet lab details: decorative only; the working print remains the focus. */
.lab-light{top:51px;left:35%;right:35%;height:9px;border:2px solid #346b68;border-radius:3px;background:#53e4d1;box-shadow:0 0 12px #4de6ce88,0 14px 55px 18px #23bda739;z-index:1}.lab-light:before{content:'';position:absolute;left:-8px;right:-8px;top:-6px;height:3px;background:#31504f;border-radius:3px}.lab-light:after{content:'';position:absolute;top:-28px;left:50%;height:23px;border-left:2px solid #52706b}.room{background:radial-gradient(ellipse at 50% 8%,#35d5be24,transparent 60%),linear-gradient(0deg,var(--room),var(--room))}.line{top:114px;transform:rotate(-3deg);box-shadow:0 1px 1px #0004}.back-prints{position:absolute;inset:116px 0 auto;height:150px;display:flex;justify-content:space-between;padding:0 5%;z-index:-1;opacity:.65}.back-print{width:19%;height:123px;background:#e4e9e2;padding:7px 7px 16px;transform:rotate(-7deg);box-shadow:2px 7px 12px #0003;position:relative}.back-print:nth-child(2){transform:rotate(4deg);margin-top:-10px}.back-print:nth-child(3){transform:rotate(7deg);margin-top:-19px}.back-print:before{content:'';position:absolute;top:-10px;left:45%;width:5px;height:17px;background:linear-gradient(90deg,#627b76,#c0ccc6,#526b66);border-radius:1px}.back-print img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(.9);opacity:.8}.lab-supplies{position:absolute;bottom:77px;left:4%;right:4%;height:125px;z-index:0;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.fixer-bottle{height:104px;width:49px;border-radius:12px 12px 5px 5px;background:linear-gradient(90deg,#252f2a,#5f7361 20%,#263c31 65%,#15271f);box-shadow:3px 5px 8px #0004;position:relative;border:1px solid #819c7a55}.fixer-bottle:before{content:'';position:absolute;width:25px;height:17px;left:11px;top:-14px;border-radius:3px 3px 0 0;background:repeating-linear-gradient(90deg,#1e2926 0 2px,#53625b 3px 4px)}.fixer-bottle>span{position:absolute;left:4px;right:4px;top:29px;background:#e3e8dc;color:#1d3b35;padding:6px 2px;text-align:center;font-size:5px;letter-spacing:.7px;border-top:4px solid #369b8f}.fixer-bottle b{display:block;font-size:10px;letter-spacing:1px}.fixer-bottle small{font-size:4px}.film-box{width:64px;height:77px;background:linear-gradient(110deg,#e9efde,#c4d9ab);border:1px solid #7b9470;box-shadow:3px 4px 6px #0003;transform:rotate(-6deg);color:#18251b;padding:5px;position:relative}.film-box>span{display:block;background:#be2628;color:white;font-weight:700;font-size:8px;letter-spacing:1px;padding:0 3px}.film-box b{font-size:25px;line-height:1.3;font-weight:850;letter-spacing:-2px;display:block}.film-box b span{font-size:6px;letter-spacing:0;display:block;line-height:1}.film-box small{display:block;font-size:4px;line-height:1.5;margin-top:5px}.tray{height:66px;bottom:20px;border:7px ridge #7e9d9b;background:linear-gradient(170deg,#263e3c,#77968e 35%,#263f3d);box-shadow:0 3px 0 #3c5553,0 8px 0 #213c39,0 18px 17px #0005;overflow:visible}.tray-liquid{position:absolute;inset:3px;border:1px solid #b0dfcf66;background:repeating-radial-gradient(ellipse at 65% 40%,transparent 0 11px,#9edacb22 12px 13px,transparent 14px 25px),linear-gradient(175deg,#c4e7dc44,#38665c77);border-radius:4px 4px 9px 9px;box-shadow:inset 0 5px 9px #102e2a99}.tray-rim{position:absolute;inset:-4px;border:1px solid #d1e5df88;border-radius:2px 2px 9px 9px}.tray-tongs{position:absolute;right:5%;top:-5px;width:63px;height:8px;border:2px solid #c7d6cd;border-left:0;border-radius:0 60% 60% 0;transform:rotate(-29deg);box-shadow:0 3px 3px #0005}.shelf-left{display:block;position:absolute;left:0;bottom:76px;width:18%;height:7px;background:linear-gradient(#a3bbb5,#536f67);box-shadow:0 5px 8px #0003;z-index:-1}.shelf-right{display:block;position:absolute;right:0;bottom:76px;width:18%;height:7px;background:linear-gradient(#a3bbb5,#536f67);box-shadow:0 5px 8px #0003;z-index:-1}@media(max-width:1100px){.lab-supplies{left:2%;right:2%}.fixer-bottle{transform:scale(.8);transform-origin:bottom left}.film-box{transform:scale(.8) rotate(-6deg);transform-origin:bottom right}.back-prints{padding:0 3%}}@media(max-width:820px){.lab-supplies{left:3%;right:3%}.back-print{height:133px}.tray{bottom:20px}}

/* Photographic lab backdrop */
.room{background:#17282a url('lab-photographic-v1.webp') center center/cover no-repeat;border-color:#56706e}.room:before{display:none}.room:after{inset:0;height:auto;border:0;background:linear-gradient(180deg,#05171740,transparent 22%,transparent 80%,#05171722);z-index:-1}.lab-light,.lab-window,.line,.back-prints,.lab-supplies,.shelf,.lamp,.tray{display:none}.room-label{color:#e0efea;text-shadow:0 1px 6px #000}.live-label{color:#80e5d7}.print{width:66%;max-width:500px;margin-top:0;padding:12px 12px 4px;box-shadow:0 18px 32px #0008;transform:rotate(-.4deg)}canvas{max-height:305px}.clips:before,.clips:after{height:23px;top:-13px;background:linear-gradient(90deg,#344943,#bdc8c1 40%,#667d71 65%,#30453b);box-shadow:1px 2px 3px #0005}html[data-theme=light] .room{background-color:#17282a}.develop-overlay{background:#142c2c;color:#eaf6ef}.develop-overlay small{color:#b5d1c9}@media(min-width:1500px){.print{width:64%;max-width:590px}canvas{max-height:385px}}@media(max-width:1100px){.print{width:69%;padding:10px 10px 3px}canvas{max-height:300px}}@media(max-width:820px){.print{width:67%}canvas{max-height:305px}}@media(max-width:400px){.print{width:70%}canvas{max-height:270px}}
/* Main drying wire anchors the interactive print to the photographic scene. */
.room .line{display:block;top:50%;left:7%;right:7%;transform:translateY(-168px) rotate(-.4deg);border-top:1px solid #bbc8bd;box-shadow:0 1px 2px #000b;z-index:1;opacity:.9}.print{margin-top:20px}.print .clips:before,.print .clips:after{top:-19px;height:29px;width:9px;border:1px solid #52645b;border-radius:2px;background:linear-gradient(90deg,#35473c,#cbd1c4 35%,#7d8c7a 65%,#29392e);box-shadow:1px 3px 4px #0008}.print .clips:before{left:20px}.print .clips:after{right:20px}@media(min-width:1500px){.room .line{transform:translateY(-208px) rotate(-.4deg)}}@media(max-width:400px){.room .line{transform:translateY(-149px) rotate(-.4deg)}}
.room .line{display:none}.print:before{content:'';position:absolute;left:-70%;right:-70%;top:-10px;border-top:1px solid #aebeb2;box-shadow:0 1px 2px #000b;z-index:-1;opacity:.95}
