/* 黑色网格空间，胶卷本体沿用纯 CSS 材质。 */
:root{color-scheme:dark;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#d8b092;background:#0b0b0a}*{box-sizing:border-box}body{margin:0;overflow:hidden}#space{height:100svh;min-height:480px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 55% 38%,#34261b44,transparent 65%),#0b0b0a}.grid{position:absolute;inset:0;background-image:linear-gradient(#ac957110 1px,transparent 1px),linear-gradient(90deg,#ac957110 1px,transparent 1px);background-size:75px 75px;mask-image:radial-gradient(ellipse at center,#000 20%,#0004 100%)}#space:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 160px #0009}header{position:absolute;left:32px;right:32px;top:28px;display:flex;justify-content:space-between;align-items:center;z-index:5;pointer-events:none}h1{font-size:14px;letter-spacing:2px;font-weight:400;margin:0}h1 span{font:9px monospace;letter-spacing:2px;margin-left:10px;color:#987d68}.room-code{font:9px monospace;letter-spacing:2px;color:#786a5d}.bench{position:absolute;inset:85px 30px 155px}.roll{position:absolute;left:0;top:0;width:140px;height:250px;user-select:none;pointer-events:none;will-change:transform;transform:translate(-50%,-50%)}.canister{display:block;position:relative;width:100%;height:100%;filter:drop-shadow(16px 24px 13px #000c);transition:filter .25s,scale .25s,translate .25s}.roll.near .canister{filter:drop-shadow(0 0 15px #ca9b6444) drop-shadow(16px 24px 13px #000c)}.roll.held .canister{scale:1.14;translate:0 -14px;filter:drop-shadow(22px 48px 22px #000e) brightness(1.2)}.roll-number{position:absolute;bottom:-28px;left:0;right:0;text-align:center;font:8px monospace;letter-spacing:3px;color:#8c7765;opacity:.65}.roll.held .roll-number{color:#e3ba89;opacity:1}
.spool{position:absolute;top:-13px;left:37px;width:36px;height:19px;background:linear-gradient(90deg,#171614,#39352e,#1d1915);border-radius:6px 6px 0 0}.cap,.base{position:absolute;left:-5px;right:-5px;height:23px;border-radius:40% 40% 9% 9%;background:linear-gradient(90deg,#13120f,#343029 40%,#181714 90%);box-shadow:inset 0 2px 2px #ffffff0b;z-index:2}.cap{top:0}.base{bottom:0;border-radius:8% 8% 40% 40%}.film-label{position:absolute;inset:15px 0;background:linear-gradient(90deg,#0005,transparent 30%,#fff1 55%,#0005),#c5b58f;color:#1b1a14;display:flex;align-items:center;flex-direction:column;overflow:hidden;border-radius:7%}.manufacturer{width:100%;background:#c69528;font:bold 8px Arial,sans-serif;text-align:center;padding:12px 0 8px;white-space:nowrap}.film-label strong{font:bold 25px Arial,sans-serif;color:#a9472c;margin-top:15px;letter-spacing:-1px}.film-label b{font:bold 47px Arial,sans-serif;letter-spacing:-2px}.film-type{font:bold 6px Arial,sans-serif;margin-top:7px;white-space:nowrap}.exposures{font:5px monospace;margin-top:9px;align-self:flex-end;margin-right:9px}.cinestill .film-label,.ilford .film-label{background:linear-gradient(90deg,#0007,transparent 35%,#fff1 60%,#0006),#24231f;color:#d7c9ad}.cinestill .manufacturer,.ilford .manufacturer{background:#a62c20;color:#e9c9ac}.cinestill .film-label strong{font-style:italic;color:#ded2bb;font-size:25px}.cinestill .film-label b{color:#c84e37;font-size:42px}.cinestill b span{font-size:23px;color:#ded2bb}.ilford .film-label strong{font-size:43px;color:#ded2bb;margin-top:10px}.ilford .film-label b{font-size:21px;letter-spacing:0}.ilford b span{font-size:15px}.fuji .manufacturer{background:#315f43;color:#d2ceaa}.fuji .film-label strong{color:#315d41;font-size:38px;margin-top:8px}.fuji .film-label b{font-size:32px}
.film-label strong{margin-top:25px;font-size:32px}.film-label b{font-size:61px}.manufacturer{font-size:9px;padding:14px 0 10px}.film-type{font-size:8px}.exposures{font-size:6px;margin-top:14px}.cinestill .film-label strong{font-size:31px}.cinestill .film-label b{font-size:52px}.ilford .film-label strong{font-size:54px;margin-top:23px}.ilford .film-label b{font-size:25px}.fuji .film-label strong{font-size:48px;margin-top:19px}.fuji .film-label b{font-size:40px}.spool{left:48px;width:44px}.cap,.base{height:26px}.camera{position:absolute;right:30px;bottom:65px;width:160px;z-index:6}.camera-view{height:90px;background:#111;border:1px solid #ffffff12;position:relative;overflow:hidden}.camera video{width:100%;height:100%;object-fit:contain;transform:scaleX(-1);opacity:.65}.camera-view span{position:absolute;bottom:7px;left:8px;font:8px monospace;letter-spacing:1px;color:#d2bca4}.camera button{width:100%;background:#211b16;border:1px solid #a87a4b44;color:#d5b18e;padding:10px 4px;margin-top:8px;font-family:inherit;font-size:10px;cursor:pointer}.camera button:focus-visible{outline:2px solid #dbaf78;outline-offset:3px}.camera button:disabled{opacity:.5;cursor:wait}.camera p{font-size:8px;color:#958576;text-align:center;margin:7px 0 0}.guidance{position:absolute;bottom:72px;left:50%;transform:translateX(-50%);text-align:center;width:min(480px,55%);z-index:5;pointer-events:none}.gesture-symbol{font-size:34px;color:#b58b62}.guidance p{font-size:13px;letter-spacing:2px;margin:6px 0 12px}.guidance>span:last-child{font-size:10px;color:#a58c77;line-height:1.8}footer{position:absolute;bottom:24px;left:32px;right:32px;display:flex;justify-content:space-between;font:9px monospace;letter-spacing:2px;color:#8d7662;z-index:5}#hand-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}#cursor{position:absolute;width:36px;height:36px;border:1px solid #dfb47caa;border-radius:50%;z-index:4;pointer-events:none;transform:translate(-50%,-50%);box-shadow:0 0 25px #e8bc6f22;display:grid;place-items:center}#cursor[hidden]{display:none}#cursor span{height:4px;width:4px;border-radius:50%;background:#f4d1a5}#cursor.pinching{background:#d6a26333;border-color:#ffd9a1;width:24px;height:24px}
@media(max-width:700px){header{left:20px;right:20px;top:22px}h1{font-size:12px}h1 span{display:block;font-size:8px;margin:7px 0 0}.room-code{font-size:7px}.bench{inset:95px 15px 210px}.roll{width:100px;height:180px}.canister{width:140px;height:250px;transform:scale(.714);transform-origin:top left}.roll-number{font-size:7px;bottom:-20px}.camera{right:18px;bottom:65px;width:108px}.camera-view{height:65px}.camera p{font-size:7px}.camera button{font-size:9px}.guidance{left:20px;transform:none;bottom:76px;width:calc(100% - 160px);text-align:left}.guidance p{font-size:12px;line-height:1.8;letter-spacing:1px}.guidance>span:last-child{font-size:9px}.gesture-symbol{font-size:25px}footer{left:20px;right:20px;font-size:7px;letter-spacing:1px}footer>span:first-child{max-width:130px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* 追踪反馈始终在胶卷上方，抓取次数不会遮住光标。 */
.bench{z-index:1}#hand-overlay{z-index:7}#cursor{z-index:8;width:46px;height:46px;border:2px solid #ffe2ae;background:#21170c88;box-shadow:0 0 0 6px #e8bc6f15,0 0 24px #e8bc6f55}#cursor>span{width:7px;height:7px;background:#fff4dc}#cursor:before,#cursor:after{content:"";position:absolute;background:#ffe2ae}#cursor:before{width:12px;height:2px;left:-8px}#cursor:after{width:2px;height:12px;top:-8px}.cursor-label{position:absolute;top:52px;left:16px;white-space:nowrap;background:#100e0bed;border:1px solid #e2bd7b77;color:#ffe2ae;border-radius:3px;padding:7px 10px;font:11px "Microsoft YaHei",sans-serif;letter-spacing:1px;box-shadow:0 3px 12px #0008}#cursor.targeting{border-color:#a6efc6;background:#64c89333;box-shadow:0 0 0 8px #83e4b322,0 0 28px #83e4b355}#cursor.targeting .cursor-label{color:#b9f8d5;border-color:#83e4b3}#cursor.holding{border-color:#ffd178;background:#e8b24f55;box-shadow:0 0 0 8px #ffd17822}#cursor.pinching{width:30px;height:30px}#cursor.lost{opacity:.45}#cursor.label-left .cursor-label{left:auto;right:16px}#cursor.label-above .cursor-label{top:auto;bottom:52px}.roll:before{content:"";position:absolute;inset:-22px -18px;border:1px solid transparent;border-radius:12px;pointer-events:none}.roll.near:before{border-color:#a6efc6;box-shadow:0 0 20px #83e4b326;background:#83e4b308}.roll.near:after,.roll.held:after{content:attr(aria-label);position:absolute;top:-48px;left:50%;transform:translateX(-50%);white-space:nowrap;font:10px monospace;color:#b9f8d5;background:#101811e8;padding:5px 8px;border:1px solid #83e4b366}.roll.held:after{content:"已抓取 / " attr(aria-label);color:#ffdda0;border-color:#ffd17888;background:#211a10}.roll.held:before{border-color:transparent;background:none;box-shadow:none}.roll.held .canister{filter:drop-shadow(0 0 12px #d6ad7838) drop-shadow(0 0 24px #d6ad781c) drop-shadow(22px 48px 22px #000e) brightness(1.12)}.roll.near .roll-number{color:#b9f8d5;opacity:1}

/* 中央单卷筐与展开的底片。 */
.basket{--basket-color:#777875;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:190px;height:290px;border:2px solid var(--basket-color);border-radius:20px;background:repeating-linear-gradient(0deg,transparent 0 16px,#8888880a 17px 18px),#393a372b;box-shadow:inset 0 0 35px #0008,0 8px 20px #0005;color:#b5b4ac;cursor:default;transition:border-color .35s,box-shadow .35s,background .35s;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:15px 5px;gap:7px}.basket span{font:11px "Microsoft YaHei",sans-serif;letter-spacing:1px}.basket small{font:7px monospace;letter-spacing:1px}.basket:not(.occupied){justify-content:center}.basket.occupied{cursor:pointer;box-shadow:inset 0 0 35px #0008,0 0 22px color-mix(in srgb,var(--basket-color) 22%,transparent);height:330px}.basket.ready{border-color:#ade4c0;box-shadow:0 0 26px #ade4c033;background:#ade4c00d}.basket.full{border-style:dashed}.eject{position:absolute;left:50%;top:calc(50% + 180px);transform:translateX(-50%);background:#171510cc;color:#d8b092;border:1px solid #a58c7755;padding:8px 16px;font-size:10px;cursor:pointer;z-index:5}.eject[hidden]{display:none}.roll.stored{pointer-events:auto;cursor:pointer}.roll.stored:focus-visible{outline:1px solid #b9f8d5;outline-offset:10px}.roll{transition:filter .5s,opacity .5s}.roll.stored .canister{filter:drop-shadow(0 0 18px #d6ad7833) drop-shadow(12px 24px 14px #000a)}.focused .roll:not(.stored){filter:blur(5px) brightness(.35);opacity:.4}.focused .grid{opacity:.3}.focused .basket{opacity:.25}.focused .roll.stored{z-index:4!important}.roll.expanded .canister{translate:0 -22px;filter:drop-shadow(0 0 20px #d6ad7838) drop-shadow(20px 45px 25px #000c)}.roll.expanded:before{display:none}.roll.expanded:after{display:none}.unrolled-strip{position:absolute;left:80%;top:24%;height:58%;width:0;overflow:hidden;display:flex;gap:10px;padding:20px 0;opacity:0;background:#69361e;transition:width .65s ease,opacity .3s;box-shadow:10px 22px 20px #0008;pointer-events:none}.unrolled-strip:before,.unrolled-strip:after{content:"";position:absolute;left:0;right:0;height:8px;background:repeating-linear-gradient(90deg,transparent 0 9px,#140f0b 9px 17px,transparent 17px 25px)}.unrolled-strip:before{top:6px}.unrolled-strip:after{bottom:6px}.roll.expanded .unrolled-strip{width:min(44vw,560px);opacity:1;padding-left:15px;padding-right:15px;translate:0 -22px}.strip-frame{flex:1;min-width:0;border:1px solid #d5a16c55;background:linear-gradient(150deg,transparent 45%,#3a221b88 46% 70%,transparent 71%),linear-gradient(25deg,#a86c4199 40%,transparent 41%),#b87d4744}.strip-frame:nth-child(2){transform:scaleX(-1)}.unrolled-strip small{position:absolute;top:7px;left:40%;font:6px monospace;color:#daa068;background:#69361e;white-space:nowrap}.focused .eject{border-color:#d8b09288}
@media(max-width:700px){.basket{width:130px;height:220px}.basket.occupied{height:245px}.eject{top:calc(50% + 135px)}.basket span{font-size:9px}.basket small{font-size:6px}.roll.expanded .unrolled-strip{width:42vw}.unrolled-strip{gap:6px;padding-top:17px;padding-bottom:17px}.roll.expanded .unrolled-strip{padding-left:8px;padding-right:8px}.unrolled-strip small{display:none}}

/* 展示模式只露出一到两幅大底片，余下内容通过手势横向浏览。 */
.film-viewer[hidden]{display:none}.film-viewer{position:absolute;inset:85px 0 180px;z-index:6;background:radial-gradient(ellipse at 20% 60%,#61261044,transparent 70%),#100a07e8;overflow:hidden;animation:viewer-in .5s ease}.viewer-heading{position:absolute;left:30px;right:30px;top:20px;display:flex;justify-content:space-between;align-items:center;color:#d6a079;font:11px monospace;letter-spacing:2px;z-index:3}.viewer-close{background:#160c08;border:1px solid #b3815a55;color:#d6a079;padding:10px 14px;cursor:pointer;font-size:11px}.viewer-canister{position:absolute;left:2%;top:50%;width:140px;height:250px;transform:translateY(-50%) scale(1.8);transform-origin:left center;z-index:2;pointer-events:none}.viewer-canister .canister{width:140px;height:250px;transform:none}.film-window{position:absolute;left:20%;right:0;top:25%;height:60%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#ab673f #24140d;overscroll-behavior-x:contain;touch-action:pan-x;outline-offset:-3px}.large-strip{height:100%;display:flex;gap:24px;padding:30px 35px;background:#64301b;width:max-content;position:relative}.large-strip:before,.large-strip:after{content:"";position:absolute;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,transparent 0 13px,#160b07 13px 26px,transparent 26px 40px)}.large-strip:before{top:9px}.large-strip:after{bottom:9px}.large-frame{width:clamp(300px,48vw,780px);height:100%;position:relative;flex-shrink:0;background:#b97647;overflow:hidden}.large-frame>span{position:absolute;top:10px;left:12px;font:10px monospace;color:#efc191;z-index:1}.large-frame small{position:absolute;bottom:10px;right:12px;color:#e9b482;font:9px monospace;background:#34170ca8;padding:5px}.negative-art{height:100%;background:radial-gradient(circle at 70% 25%,#e2b777 0 9%,transparent 9.5%),linear-gradient(150deg,transparent 45%,#543525 45.5% 67%,transparent 67.5%),linear-gradient(25deg,#8a5132 40%,transparent 40.5%),#bd8352;filter:sepia(.5)}.art-1{transform:scaleX(-1);filter:sepia(.8) brightness(.7)}.art-2{background:repeating-linear-gradient(90deg,#643e28 0 12%,#bd8352 12% 20%,#34251d 20% 23%);filter:sepia(.4)}.art-3{background:radial-gradient(ellipse at 50% 100%,#30251d 0 20%,transparent 21%),radial-gradient(circle at 50% 40%,#573f2a 0 15%,transparent 16%),#b17a4d}.art-4{filter:invert(1) sepia(1)}.art-5{transform:scaleX(-1);filter:contrast(1.7) sepia(1)}.viewer-position{position:absolute;bottom:15px;right:30px;font:12px monospace;letter-spacing:3px;color:#c99b75}.focused .roll.stored{visibility:hidden}.focused .basket{visibility:hidden}.gesture-hud{position:absolute;left:50%;bottom:145px;transform:translateX(-50%);z-index:9;background:#100e0bec;border:1px solid #d2ac7655;padding:10px 16px 13px;color:#f1d1a2;font-size:12px;white-space:nowrap;pointer-events:none;max-width:90vw}.gesture-hud i{position:absolute;left:0;bottom:0;height:3px;width:var(--progress,0%);background:#b9e5c8;box-shadow:0 0 8px #b9e5c866}.focused .guidance .gesture-symbol{display:none}.focused .guidance{bottom:55px}.focused .camera{opacity:.75}@keyframes viewer-in{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(max-width:700px){.film-viewer{inset:90px 0 220px}.viewer-heading{left:15px;right:15px;top:10px;font-size:8px;letter-spacing:1px}.viewer-close{font-size:9px;padding:8px}.viewer-canister{left:-35px;transform:translateY(-50%) scale(1.1)}.film-window{left:22%;top:26%;height:60%}.large-frame{width:75vw;min-width:240px}.large-strip{gap:16px;padding:25px 20px}.large-strip:before,.large-strip:after{height:9px}.gesture-hud{bottom:190px;font-size:10px;padding:9px 10px 12px;white-space:normal;text-align:center;width:max-content}.viewer-position{font-size:10px;right:15px;bottom:8px}}

/* 暗红安全灯下的三个冲洗盒；中间始终保留明亮黄色。 */
.darkroom-scene[hidden]{display:none}.darkroom-scene{position:absolute;inset:75px 0 185px;z-index:6;overflow:hidden;background:radial-gradient(ellipse at 30% 0,#da280b66,transparent 65%),linear-gradient(#400c08,#260b07);animation:viewer-in .6s ease}.in-darkroom#space{background:radial-gradient(ellipse at 50% 20%,#8a190d,#210907 75%)}.in-darkroom .bench,.in-darkroom .grid{visibility:hidden}.in-darkroom header{color:#ffb384}.in-darkroom .gesture-hud{border-color:#dc693b88;background:#260b08}.darkroom-heading{position:relative;padding:25px 5%;display:flex;justify-content:space-between;align-items:flex-start;z-index:2}.darkroom-heading small{font:9px monospace;letter-spacing:3px;color:#de8966}.darkroom-heading h2{font:26px SimSun,serif;letter-spacing:4px;color:#f4bb91;margin:14px 0}.darkroom-film{font:10px monospace;color:#e49b74;letter-spacing:1px}.darkroom-back{background:#3c110d;border:1px solid #bd664444;color:#e9a783;padding:10px 14px;font-size:11px;cursor:pointer}.wet-bench{position:absolute;left:5%;right:5%;top:31%;bottom:16%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4%;perspective:1000px}.bath{position:relative;border:14px solid #a81c13;border-top-width:20px;border-radius:18px 18px 12px 12px;background:#65150f;box-shadow:inset 0 0 0 3px #ec5c2522,inset 0 0 28px #140504aa,0 23px 18px #100403aa;transform:rotateX(12deg);min-width:0}.bath-1{border-color:#e8a526;background:#bc7818;box-shadow:inset 0 0 0 3px #ffe49b77,inset 0 0 28px #55300888,0 23px 18px #100403aa}.bath-2{border-color:#3a302a;background:#241914}.bath-interior{position:absolute;inset:7%;border-radius:5px;overflow:hidden;box-shadow:inset 0 2px 14px #0007}.bath-water{position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 35% 50%,transparent 0 28px,#ffd7a00b 30px 32px,transparent 35px 55px),linear-gradient(120deg,#fa7b2822,transparent 45%,#fac48611);border-top:1px solid #ffcd8d33}.bath-label{position:absolute;top:calc(100% + 30px);left:0;right:0;display:flex;flex-direction:column;gap:8px;color:#f3b18a;text-align:center}.bath-label b{font-size:13px;font-weight:400;letter-spacing:3px}.bath-label span{font:8px monospace;letter-spacing:3px;color:#ca8364}.tongs{position:absolute;width:17px;height:50%;top:-25%;left:12%;border:4px solid #db6240;border-bottom:0;border-radius:15px 15px 0 0;transform:rotate(-7deg);box-shadow:3px 4px 4px #0005;pointer-events:none}.bath-1 .tongs{border-color:#ffd56f}.bath-2 .tongs{border-color:#716151}.bath-content{position:absolute;inset:0;display:grid;place-items:center}.bath-negative{width:85%;height:60%;background:#b8703a;transform:rotate(-8deg);box-shadow:4px 8px 12px #0008;position:relative;padding:14px 9px;color:#33140c}.bath-negative:before,.bath-negative:after{content:"";position:absolute;left:0;right:0;height:6px;background:repeating-linear-gradient(90deg,transparent 0 7px,#36120b 7px 12px,transparent 12px 18px)}.bath-negative:before{top:4px}.bath-negative:after{bottom:4px}.bath-negative>span{position:absolute;top:12px;left:8px;font:6px monospace;z-index:2}.bath-negative>small{position:absolute;bottom:11px;right:7px;font:5px monospace}.bath-negative-frames{display:flex;gap:6px;height:100%;padding:10px 0}.bath-negative-frames i{flex:1;background:linear-gradient(150deg,transparent 45%,#442116 46% 70%,transparent 71%),linear-gradient(30deg,#d99a60 40%,transparent 41%),#754225}.bath-negative-frames i:nth-child(2){transform:scaleX(-1)}.darkroom-note{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:2px;color:#ce8a68}.safelight-glow{position:absolute;inset:0;box-shadow:inset 0 0 100px #b41c0b22;pointer-events:none}.in-darkroom .guidance .gesture-symbol{display:none}
@media(max-width:700px){.darkroom-scene{inset:80px 0 230px}.darkroom-heading{padding:20px 5%}.darkroom-heading h2{font-size:20px;letter-spacing:2px}.darkroom-heading small{font-size:7px}.darkroom-film{font-size:8px;max-width:210px;line-height:1.7}.darkroom-back{font-size:9px;padding:8px}.wet-bench{left:4%;right:4%;gap:3%;top:39%;bottom:22%}.bath{border-width:6px;border-top-width:10px;border-radius:10px}.bath-interior{inset:5%}.tongs{width:10px;border-width:3px;top:-20%;height:40%}.bath-label{top:calc(100% + 20px);gap:6px}.bath-label b{font-size:10px;letter-spacing:0}.bath-label span{font-size:6px;letter-spacing:0}.bath-negative{width:92%;height:55%;padding:10px 4px}.bath-negative-frames{gap:3px;padding:8px 0}.bath-negative>span{font-size:4px;top:10px;left:3px}.bath-negative>small{display:none}.darkroom-note{font-size:8px;letter-spacing:1px;bottom:9px}}

/* 双手相纸：图像透明度由实际在第二盒内停留的时间控制。 */
.develop-photo{position:absolute;z-index:4;transform:translate(-50%,-50%);padding:8px 8px 18px;background:#cba780;box-shadow:3px 7px 12px #18070399;pointer-events:none;transition:box-shadow .2s;--develop:0}.photo-image{width:100%;height:100%;background:#b79b7b;overflow:hidden}.photo-image>.negative-art{opacity:var(--develop);filter:sepia(.5) contrast(1.1);transition:opacity .12s linear}.develop-photo>small{position:absolute;bottom:5px;left:0;right:0;text-align:center;font:6px monospace;color:#57311e}.photo-grip{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:13px;color:#fff0ce;text-shadow:0 0 10px #fff0ce;outline:1px solid #fce9c999;border-radius:50%;padding:5px;line-height:1}.grip-left{left:0}.grip-right{left:100%}.develop-photo.lifted{box-shadow:0 0 16px #ecc59844,12px 28px 22px #100503bb}.develop-photo.hands-ready .photo-grip{color:#b9f8d5;outline-color:#b9f8d5}.bath.drop-ready{box-shadow:0 0 0 3px #ffe9a4,0 0 35px #ffd56f88,inset 0 0 20px #805010}.bath-progress{position:absolute;bottom:45px;left:25%;right:25%;text-align:center;color:#ffd6a3;font:11px monospace;padding-bottom:10px;border-bottom:2px solid #b5834c44}.bath-progress i{position:absolute;bottom:-2px;left:0;height:2px;width:var(--develop-width,0%);background:#ffe3a4;box-shadow:0 0 10px #ffc65c}.in-darkroom .tongs{opacity:.35}@media(max-width:700px){.develop-photo{padding:4px 4px 13px}.develop-photo>small{font-size:4px;bottom:4px}.photo-grip{font-size:9px;padding:4px}.bath-progress{left:8%;right:8%;bottom:33px;font-size:9px}.in-darkroom .wet-bench{bottom:28%}.in-darkroom .bath-label{top:calc(100% + 16px)}}

/* 更宽松的双手抓取提示，以及定影后的明亮查看空间。 */
.photo-grip{width:64px;height:64px;display:grid;place-items:center;padding:0;font-size:16px;background:#fce9c916;outline:2px dashed #fce9c999;box-shadow:0 0 0 12px #fce9c908}.develop-photo.hands-ready .photo-grip{background:#b9f8d533;outline-style:solid}.finish-panel[hidden]{display:none}.finish-panel{position:absolute;inset:0;z-index:5;background:#ddd3bd;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#493c30;gap:15px}.finish-panel h2{font:24px SimSun,serif;letter-spacing:3px;margin:0;z-index:2}.inspect-photo{width:min(440px,65vw);height:58%;min-height:100px;padding:14px 14px 28px;background:#f3ebdb;box-shadow:0 20px 35px #382b2144;transform:scale(var(--zoom,1));transform-origin:center;transition:transform .12s linear;flex-shrink:0}.inspect-photo>.negative-art{filter:none}.inspect-photo small{display:block;font:8px monospace;letter-spacing:2px;text-align:center;margin-top:8px}.finish-hint{font-size:11px;text-align:center;padding:8px 12px;background:#ddd3bde8;z-index:2;margin:0;line-height:1.7}.save-album{z-index:2;border:1px solid #6e5946;background:#534333;color:#f6e7cf;padding:11px 25px;cursor:pointer}.album-grid{display:none}.is-album .album-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,200px));gap:20px;overflow:auto;max-height:65%;width:85%;justify-content:center}.album-grid figure{margin:0;background:#f3ebdb;padding:10px;box-shadow:0 5px 15px #382b2122}.album-grid .negative-art{height:130px;filter:none}.album-grid figcaption{font:9px monospace;margin-top:10px;line-height:1.7}.is-album .inspect-photo,.is-album .save-album{display:none}.room-light#space{background:#cfc4ac;color:#4b3a2b;transition:background 1s}.room-light .darkroom-scene{background:#ddd3bd}.room-light header,.room-light header h1,.room-light header h1 span,.room-light footer{color:#584332}.room-light .darkroom-heading{z-index:6;pointer-events:none}.room-light .darkroom-heading>div{visibility:hidden}.room-light .darkroom-back{pointer-events:auto;background:#e9dfca;color:#4b3a2b;border-color:#9b876d}.room-light .gesture-hud{background:#4e4035;color:#fff0d8}.room-light .guidance{color:#493a2d}.room-light .guidance #instruction{color:#5d4936}.room-light .camera p{color:#574534}@media(max-width:700px){.photo-grip{width:48px;height:48px;font-size:13px;box-shadow:0 0 0 9px #fce9c908}.finish-panel{gap:10px;padding-top:48px}.finish-panel h2{font-size:19px}.inspect-photo{width:65vw;height:46%;padding:8px 8px 23px}.finish-hint{font-size:9px;max-width:90%}.save-album{font-size:11px;padding:8px 18px}.album-grid .negative-art{height:100px}}
