.see-lab{--ink:#f5f3ed;--muted:#a9aaa4;--surface:#181a19;--surface-raised:#242724;--line:#f5f3ed1f;--sage:#b8c6a4;--sage-deep:#182016;--amber:#e7b96f;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.34,1.4,.5,1);--font-body:"Noto Sans TC Variable", "Noto Sans TC", -apple-system, "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--font-num:ui-monospace, "SF Mono", "IBM Plex Mono", Menlo, Consolas, monospace;color:var(--ink);font-family:var(--font-body)}.see-lab *{box-sizing:border-box}.see-lab button{color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0}.see-lab button:disabled{opacity:.55;cursor:progress}.see-lab :where(a,button,[tabindex]):focus-visible{outline:2px solid var(--sage);outline-offset:3px}.see-lab .back-chip{width:44px;height:44px;color:var(--sage);backdrop-filter:blur(8px);transition:transform .2s var(--ease-out), background .2s ease;background:#101211b8;border:1px solid #f5f3ed1a;border-radius:50%;flex:none;place-items:center;font-size:1.6rem;line-height:1;display:grid}.see-lab .back-chip span{margin-top:-3px}.see-lab .back-chip:active{transform:scale(.92)}@media (prefers-reduced-motion:reduce){.see-lab *,.see-lab :before,.see-lab :after{transition:none!important;animation:none!important}}.exposure-lab{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex}.exposure-preview{border:1px solid var(--line);background:#0c100f;border-radius:20px;flex:1 1 0;min-height:120px;position:relative;overflow:hidden}.exposure-canvas{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.exposure-loading{color:var(--muted);place-items:center;font-size:.8rem;display:grid;position:absolute;inset:0}.exposure-scene-switch,.exposure-readout{color:var(--ink);backdrop-filter:blur(8px);background:#101211b8;border-radius:999px;align-items:center;gap:8px;font-size:.74rem;display:flex;position:absolute}.exposure-scene-switch{padding:3px 4px;top:8px;left:56px}.exposure-scene-switch span{text-align:center;min-width:5.5em}.exposure-scene-switch button{width:44px;height:44px;color:var(--sage);background:#f5f3ed1a;border-radius:50%;place-items:center;font-size:1rem;line-height:1;display:grid}.exposure-readout{padding:3px 3px 3px 12px;bottom:8px;right:8px}.exposure-readout strong{font-variant-numeric:tabular-nums;font-size:.74rem}.exposure-readout button{min-width:44px;min-height:44px;color:var(--sage);background:#f5f3ed1f;border-radius:999px;padding:0 10px;font-size:.72rem}.exposure-readout .exposure-go{background:var(--sage);color:#182016;white-space:nowrap;border-radius:999px;align-items:center;min-height:44px;padding:0 14px;font-size:.76rem;font-weight:700;display:inline-flex}.camera-rig{border:1px solid var(--line);background:#161a18f0;border-radius:20px;flex-direction:column;flex:none;align-items:center;gap:4px;padding:8px 10px 6px;display:flex;box-shadow:0 14px 40px #00000038}.camera-top-view{width:100%;height:var(--camera-height);touch-action:none;-webkit-user-select:none;user-select:none;display:block}.camera-control{cursor:grab;outline:none}.camera-control:active{cursor:grabbing}.camera-hint{color:#858b84;text-align:center;margin:0;font-size:.68rem}.camera-ring-scroll{transition:transform .35s cubic-bezier(.2,.75,.25,1)}.camera-index{fill:var(--sage)}.camera-label{fill:#a3a99f;font-size:8.5px}.camera-hit-halo{fill:#0000;stroke:#b8c6a461;stroke-width:.8px;stroke-dasharray:2 2.2;transition:stroke .2s,stroke-width .2s}.camera-part.is-active .camera-hit-halo{stroke:var(--sage);stroke-width:1.4px;stroke-dasharray:none}.camera-dial-shade{fill:#10121194}.camera-dial-tick{stroke:#f5f3ed8c;stroke-width:1.2px;stroke-linecap:round}.camera-dial-tick.is-current{stroke:var(--sage);stroke-width:1.8px}.camera-readout{fill:#101211db;stroke:#b8c6a480;stroke-width:.6px}.camera-readout-text{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:8.4px;font-weight:700}.camera-readout-caption{fill:var(--sage);font-weight:600}.camera-ring-cover{fill:#2a2f33}.camera-ring-tick{stroke:#f5f3ed66;stroke-width:.8px}.camera-ring-tick.is-major{stroke:var(--sage);stroke-width:1.2px}.camera-iris-lens{fill:#111413;stroke:#f5f3ed47;stroke-width:2px}.camera-iris-back{fill:#0b0d0c}.camera-iris-opening{fill:#faf6e8f2}.camera-iris-blade{fill:#343a37;stroke:#f5f3ed66;stroke-width:.7px;stroke-linejoin:round}.camera-iris-blade.is-alt{fill:#2a2f2d}.camera-iris-bezel{fill:none;stroke:#f5f3ed4d;stroke-width:1px}.camera-iris-rivet{fill:#8a918a}.camera-dial-spin{transition:transform .35s cubic-bezier(.2,.75,.25,1)}.camera-dial-spin.is-live,.camera-ring-scroll.is-live{transition:none}.camera-part{transition:filter .2s}.camera-part.is-active{filter:drop-shadow(0 0 5px #b8c6a4d9)}.camera-rig{--camera-height:clamp(190px, 31dvh, 330px)}@media (height<=600px){.camera-rig{--camera-height:clamp(160px, 29dvh, 330px)}.exposure-scene-switch span{min-width:4.5em}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.exposure-back{z-index:2;position:absolute;top:8px;left:8px}.exposure-sim-note{color:#f5f3edb3;letter-spacing:.1em;pointer-events:none;background:#101211b8;border-radius:999px;padding:4px 10px;font-size:.66rem;position:absolute;top:12px;right:12px}.exposure-readout strong,.camera-readout-text{font-family:var(--font-num);letter-spacing:.02em}.camera-shutter-press{cursor:pointer;outline:none}.camera-shutter-target{fill:#0000}.camera-shutter-cap{fill:#0000;transition:fill .12s}.camera-shutter-press:active .camera-shutter-cap{fill:#0a0d0b73}.camera-shutter-press:focus-visible .camera-hit-halo,.camera-shutter-press:hover .camera-hit-halo{stroke:var(--sage);stroke-dasharray:none}.exposure-blink{z-index:3;pointer-events:none;animation:shutter-blink var(--blink,.12s) linear both;background:#050605;position:absolute;inset:0}.exposure-preview{transition:border-color .2s,box-shadow .2s}.exposure-preview.is-peek{border-color:#e7b96fbf;box-shadow:0 0 0 3px #e7b96f29}.exposure-peek{background:var(--amber);color:#20170a;letter-spacing:.08em;pointer-events:none;border-radius:999px;padding:4px 10px;font-size:.7rem;font-weight:700;position:absolute;top:12px;right:12px}.film-strip{--film:#0d100e;background:radial-gradient(circle, #f5f3ed29 0 1.3px, transparent 1.8px) 3px 1.5px / 9px 4px repeat-x, radial-gradient(circle, #f5f3ed29 0 1.3px, transparent 1.8px) 3px calc(100% - 1.5px) / 9px 4px repeat-x, var(--film);width:100%;animation:rise-in .45s var(--ease-out) backwards;border-radius:6px;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:7px;display:grid}.film-frame{aspect-ratio:4/3;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;transition:transform .18s var(--ease-out), border-color .18s ease, box-shadow .18s ease;background:#1a1e1b 50%/cover no-repeat;border:1px solid #f5f3ed24;border-radius:3px;position:relative;overflow:hidden}.film-slot{gap:3px;min-width:0;display:grid}.film-meta{color:#f5f3ed9e;min-height:2.3em;font-family:var(--font-num);text-align:center;white-space:nowrap;font-size:.54rem;font-weight:500;line-height:1.15;display:grid}.film-meta>span{text-overflow:ellipsis;overflow:hidden}.film-meta b{font-weight:500}.film-meta b.is-changed{color:var(--amber);font-weight:600}.film-frame:active,.film-frame.is-peek{transform:scale(.94)}.film-frame.is-peek{border-color:var(--amber);box-shadow:0 0 0 2px #e7b96f59}.film-slot.is-new{animation:frame-in .5s var(--ease-spring) backwards}.film-frame.is-empty{cursor:default;background:0 0;border-style:dashed;border-color:#f5f3ed14}@media (height<=600px){.film-strip{gap:4px;padding:5px}.film-frame{aspect-ratio:16/9}}.exposure-canvas:not(.exposure-ghost){cursor:crosshair}.exposure-ghost{pointer-events:none;opacity:0;transition:opacity .32s}.exposure-ghost.is-holding{opacity:1;transition:none}.exposure-ghost.is-clear{visibility:hidden}.focus-reticle{z-index:2;border:1.5px solid var(--amber);pointer-events:none;width:46px;height:46px;animation:focus-lock .7s var(--ease-out) both;border-radius:8px;margin:-23px 0 0 -23px;position:absolute;box-shadow:0 0 0 1px #00000040}.camera-focus-far,.camera-focus-near circle{fill:#f5f3edb3}.camera-focus-near .camera-focus-near-centre{fill:var(--amber)}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}}@keyframes shutter-blink{0%,72%{opacity:1}to{opacity:0}}@keyframes frame-in{0%{opacity:0;transform:translateY(-28px)scale(1.5)}}@keyframes focus-lock{0%{opacity:0;transform:scale(1.6)}30%{opacity:1;transform:scale(1)}45%{transform:scale(1.08)}60%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}