:root{--paper:#f1efe8;--ink:#232722;--muted:#77796e;--line:#d6d7ce;--red:#c64332;--fast:160ms;--ease:cubic-bezier(.2,.8,.2,1);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:#dedfd7;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--red);outline-offset:4px}button{border:0;background:none;padding:0}button:disabled{cursor:wait}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter}button:active{transform:scale(.97)}[hidden]{display:none!important}::selection{background:#c6433238}img{display:block;width:100%;height:100%;object-fit:cover}.camera{width:100%;max-width:430px;min-height:100svh;height:100svh;max-height:940px;margin:0 auto;background:var(--paper);display:flex;flex-direction:column;position:relative;overflow:hidden;isolation:isolate;--photo-filter:saturate(.86) contrast(1.05) sepia(.12);--photo-brightness:1;--photo-zoom:1}.toolbar{height:64px;min-height:64px;padding:0 16px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center}.wordmark{font-family:"Songti SC","STSong","SimSun",serif;font-size:29px;font-weight:600;line-height:1;position:relative}.brand-dot{display:inline-block;background:var(--red);width:4px;height:4px;margin-left:3px;vertical-align:top;margin-top:4px}.brand-kind{font-size:12px;letter-spacing:2px;font-weight:500;color:#5c6057}.toolbar-actions{display:flex;gap:2px}.icon-button{width:44px;height:44px;display:grid;place-items:center;position:relative}.icon-button:hover{background:#23272207}.flash-control svg{width:21px;height:21px}.flash-letter{position:absolute;font-size:9px;top:10px;right:6px;font-weight:700}.view-wrap{margin:0 12px;flex:1;min-height:0;max-height:calc((100vw - 24px)*4/3)}.viewfinder{height:100%;width:100%;position:relative;overflow:hidden;background:#202822;border:3px solid #292e27;border-radius:3px;container-type:size}.scene{filter:var(--photo-filter) brightness(var(--photo-brightness));transform:scale(var(--photo-zoom));transition:filter 240ms var(--ease),transform 260ms var(--ease)}.scene-tint{position:absolute;inset:0;pointer-events:none;background:var(--tint,transparent);mix-blend-mode:soft-light;opacity:.26;transition:background 240ms var(--ease)}.view-top,.view-bottom{position:absolute;left:15px;right:15px;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:11px;font-weight:500;letter-spacing:.5px;text-shadow:0 1px 5px #0008}.view-top{top:14px}.view-top:before{content:"";position:absolute;inset:-18px -18px -16px;z-index:-1;background:linear-gradient(#17241b50,transparent)}.view-live{display:flex;align-items:center;gap:6px}.view-live i{height:4px;width:4px;background:#fff;border-radius:50%}.view-format{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;letter-spacing:1px}.view-bottom{bottom:13px}.lens-label{font-family:"SFMono-Regular",Consolas,monospace;font-size:14px;font-weight:600}.lens-label small{font-family:inherit;font-weight:400;font-size:10px}.zoom-control{width:42px;height:34px;color:#fff;border:1px solid #ffffffa6;border-radius:50%;font-size:12px;font-weight:600;background:#1c241c38;position:absolute;left:50%;transform:translateX(-50%);text-shadow:0 1px 2px #0005}.zoom-control:active{transform:translateX(-50%) scale(.97)}.meter-label{font-size:10px;display:flex;gap:4px;align-items:center}.meter-dot{width:4px;height:4px;border-radius:50%;background:#fff}.focus-mark{position:absolute;width:56px;height:56px;left:50%;top:49%;transform:translate(-50%,-50%);opacity:.82;pointer-events:none;transition:left 180ms var(--ease),top 180ms var(--ease),opacity 200ms}.focus-mark i{position:absolute;width:12px;height:12px;border-color:#fff;border-style:solid}.focus-mark i:nth-child(1){top:0;left:0;border-width:1px 0 0 1px}.focus-mark i:nth-child(2){top:0;right:0;border-width:1px 1px 0 0}.focus-mark i:nth-child(3){bottom:0;left:0;border-width:0 0 1px 1px}.focus-mark i:nth-child(4){bottom:0;right:0;border-width:0 1px 1px 0}.view-grid{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity var(--fast)}.view-grid.visible{opacity:1}.view-grid i{position:absolute;background:#ffffff38}.view-grid i:nth-child(1){width:1px;top:0;bottom:0;left:33.33%}.view-grid i:nth-child(2){width:1px;top:0;bottom:0;left:66.66%}.view-grid i:nth-child(3){height:1px;left:0;right:0;top:33.33%}.view-grid i:nth-child(4){height:1px;left:0;right:0;top:66.66%}.control-deck{padding:10px 24px 0;flex-shrink:0;height:292px;position:relative}.film-trigger{width:100%;height:58px;display:flex;align-items:center;text-align:left;gap:12px}.film-trigger:hover .film-action{color:var(--red)}.film-symbol{width:26px;height:37px;background:var(--ink);border-radius:3px;position:relative;display:flex;align-items:center;justify-content:center;color:var(--paper);flex-shrink:0}.film-symbol:before,.film-symbol:after{content:"";position:absolute;width:32px;height:3px;background:var(--ink);left:-3px;border-radius:1px}.film-symbol:before{top:1px}.film-symbol:after{bottom:1px}.film-symbol i{width:3px;height:15px;background:var(--red);position:absolute;top:6px;left:4px}.film-symbol b{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;writing-mode:vertical-rl;margin-left:6px;letter-spacing:0}.film-current{display:flex;flex-direction:column;gap:5px}.film-name{font-size:18px;font-weight:600;line-height:1.2;letter-spacing:.2px}.film-name span{font-family:"SFMono-Regular",Consolas,monospace;font-size:18px;letter-spacing:-.7px}.film-description{font-size:11px;line-height:1.2;color:var(--muted)}.film-action{margin-left:auto;display:flex;align-items:center;gap:2px;color:#666b60;font-size:12px;white-space:nowrap}.film-action svg{width:17px;height:17px}.exposure-control{margin-top:13px}.exposure-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}.exposure-heading label{color:#686e61}.exposure-heading output{font-family:"SFMono-Regular",Consolas,monospace;font-size:14px;color:var(--ink)}.exposure-heading small{font-size:10px;color:var(--muted)}.dial{height:54px;position:relative;margin-top:5px}.dial-ticks{height:17px;position:absolute;top:3px;left:1px;right:1px;display:flex;align-items:flex-end;justify-content:space-between}.dial-ticks i{width:1px;height:7px;background:#b6baac}.dial-ticks i.major{height:13px;background:#8c9283}.dial-numbers{position:absolute;top:27px;left:-5px;right:-7px;display:flex;justify-content:space-between;font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;color:#858b7d}.dial-pointer{position:absolute;left:50%;top:0;width:2px;height:24px;background:var(--red);transform:translateX(-1px);transition:left 100ms linear;pointer-events:none}.dial-pointer:before{content:"";position:absolute;top:-2px;left:-3px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--red)}.dial input{position:absolute;inset:-2px -5px 0;width:calc(100% + 10px);height:50px;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}.dial:focus-within{outline:1px solid var(--red);outline-offset:3px;border-radius:2px}.capture-controls{height:100px;display:grid;grid-template-columns:1fr 100px 1fr;align-items:center;gap:18px;margin-top:4px}.album-button{width:64px;height:88px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;justify-self:start;gap:5px}.album-print{display:block;background:#fffdf7;width:43px;height:56px;padding:3px 3px 9px;box-shadow:0 1px 2px #454b3526,0 4px 10px #454b3515;transform:rotate(-6deg);position:relative;transition:width 300ms var(--ease),height 300ms var(--ease),transform 300ms var(--ease)}.album-print img{filter:var(--photo-filter)}.print-caption{position:absolute;bottom:2px;left:4px;font-family:"SFMono-Regular",Consolas,monospace;font-size:5px;color:#888d80}.album-label{font-size:10px;color:#7b8172}.shutter-button{width:82px;height:82px;border:1px solid #898e81;border-radius:50%;display:grid;place-items:center;justify-self:center;position:relative;transition:transform 100ms var(--ease),background 100ms}.shutter-inner{height:67px;width:67px;border-radius:50%;background:var(--ink);box-shadow:inset 0 1px 1px #ffffff1a,0 1px 1px #0002;transition:transform 100ms}.shutter-button:active .shutter-inner{transform:scale(.93)}.shutter-button:hover{background:#2327220a}.shutter-button.busy .shutter-inner{background:#363c32;transform:scale(.94)}.frame-counter{justify-self:end;align-self:center;text-align:right;font-family:"SFMono-Regular",Consolas,monospace;font-variant-numeric:tabular-nums;padding-bottom:2px}.frame-number{font-size:23px;letter-spacing:-1.8px}.frame-total{font-size:11px;color:#8c9283;letter-spacing:-.6px}.frame-label{display:block;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;font-size:10px;color:#7b8172;margin-top:7px}.deck-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:10px;letter-spacing:1px;color:#949a8c}.film-notches{letter-spacing:3px;font-size:8px;color:#b1b6a6}.foot-model{font-family:"SFMono-Regular",Consolas,monospace;font-size:8px;letter-spacing:1.3px}.sheet-backdrop{position:absolute;inset:0;background:#20251c18;z-index:4}.film-sheet{position:absolute;bottom:0;left:0;right:0;z-index:5;background:var(--paper);height:288px;box-shadow:0 -8px 30px #1b281b1f;border-radius:14px 14px 0 0;padding:10px 20px 24px;animation:sheet-in 260ms var(--ease)}.sheet-grip{width:30px;height:3px;background:#a9af9f;border-radius:3px;margin:0 auto 8px}.sheet-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.sheet-heading h2{font-size:16px;margin:0;font-weight:600}.sheet-close{width:36px;height:36px}.sheet-close svg{width:20px;height:20px}.film-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.film-option{text-align:left;min-width:0;position:relative}.film-preview{height:91px;position:relative;overflow:hidden;border-radius:2px;background:#151d17}.film-preview img{filter:var(--option-filter);transition:transform 200ms var(--ease)}.film-option:hover .film-preview img{transform:scale(1.04)}.film-option .option-check{position:absolute;right:6px;bottom:6px;width:19px;height:19px;background:var(--paper);border-radius:50%;color:var(--ink);display:none;align-items:center;justify-content:center}.option-check svg{width:12px;height:12px;stroke-width:2}.film-option.selected .option-check{display:flex}.film-option.selected .film-preview{outline:2px solid var(--red);outline-offset:3px}.film-option strong{display:block;font-size:13px;font-weight:600;margin-top:11px;white-space:nowrap}.film-option strong b{font-family:"SFMono-Regular",Consolas,monospace;font-size:12px;font-weight:500}.film-option .option-tone{display:block;font-size:10px;color:#7b8172;margin-top:4px}.film-option.selected strong{color:var(--red)}.sheet-foot{margin-top:19px;padding-top:12px;border-top:.5px solid var(--line);display:flex;justify-content:space-between;font-size:11px;color:#6e7666}.film-iso{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px}.film-iso b{font-weight:500;color:var(--ink)}.shutter-curtain{position:absolute;inset:0;background:#121a14;opacity:0;pointer-events:none}.taking .shutter-curtain{animation:curtain 150ms linear}.capture-receipt{position:absolute;left:50%;bottom:65px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:11px 13px;background:#1e271fe8;border:1px solid #ffffff1e;color:#fffdf6;font-size:11px;border-radius:3px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 180ms}.capture-receipt svg{width:15px;height:15px;stroke-width:1.7;color:#c5d0b5}.receipt-frame{color:#b9c3b0;margin-left:4px;font-family:inherit;font-size:10px}.just-captured .capture-receipt{opacity:1}.just-captured .album-print{width:67px;height:87px;transform:rotate(-7deg) translateY(-11px)}.just-captured .album-label{transform:translateY(-8px)}.just-captured .print-caption{font-size:7px}.flying-print{position:absolute;left:50%;top:33%;width:116px;height:154px;padding:5px 5px 20px;background:var(--paper);z-index:3;box-shadow:0 2px 3px #17201b30,0 10px 25px #17201b40;pointer-events:none}.flying-print img{filter:var(--photo-filter) brightness(var(--photo-brightness))}.album-dialog{position:absolute;inset:0;border:0;max-width:none;max-height:none;margin:0;width:100%;height:100%;padding:0 20px;background:var(--paper);color:var(--ink);z-index:7}.album-dialog::backdrop{background:#1b251b48}.album-header{height:72px;display:flex;align-items:center;justify-content:space-between}.album-header h2{font-size:16px;font-weight:600;margin:0}.album-header .icon-button{margin-left:-10px}.album-count{font:11px "SFMono-Regular",Consolas,monospace;color:#7b8172}.album-photo{aspect-ratio:3/4;background:#fffdf7;padding:8px 8px 24px;box-shadow:0 1px 2px #2833241a,0 6px 15px #28332412}.album-photo img{filter:var(--saved-filter,var(--photo-filter));object-fit:cover}.photo-info{display:flex;justify-content:space-between;margin-top:25px;font-size:14px}.photo-exposure{font-family:"SFMono-Regular",Consolas,monospace;font-size:12px}.photo-date{font-size:12px;color:#777e6d;margin-top:8px}.download-button{display:flex;width:100%;height:49px;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);gap:12px;font-size:14px;margin-top:27px;border-radius:3px}.download-button svg{width:17px;height:17px}.announcer{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.gallery-mode .camera{max-width:none;height:844px;min-height:844px;max-height:none}.gallery-mode{background:var(--paper)}
@keyframes curtain{0%{opacity:0}20%,60%{opacity:1}100%{opacity:0}}@keyframes sheet-in{from{transform:translateY(20px);opacity:.4}to{transform:translateY(0);opacity:1}}
@media(min-width:600px){body{min-height:100vh;display:grid;place-items:center}.camera{min-height:844px;height:844px;width:390px;max-height:none;box-shadow:0 10px 44px #27302215}.view-wrap{max-height:none}.gallery-mode{display:block}.gallery-mode .camera{box-shadow:none}}
@media(max-height:740px) and (max-width:599px){.toolbar{height:56px;min-height:56px}.control-deck{height:276px;padding-top:5px}.exposure-control{margin-top:8px}.capture-controls{margin-top:0;height:92px}.deck-foot{margin-top:3px}.view-wrap{max-height:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.flying-print{display:none}.scene{transition:none}.shutter-button:active{transform:none}}
/* Round 2: a bounded picker, readable metadata, a quieter control deck. */
.film-preview{display:block}.film-action{font-size:14px}.film-description{font-size:12px}.exposure-heading{font-size:13px}.exposure-heading small{font-size:11px}.dial-numbers{font-size:11px;color:#626c58}.frame-label,.album-label{font-size:11px;color:#68735e}.frame-total{font-size:12px;color:#6a745f}.film-option strong{font-size:14px}.film-option strong b{font-size:13px}.film-option .option-tone{font-size:11px;color:#69765d}.sheet-foot{font-size:12px}.film-iso{font-size:11px}.sheet-close{width:44px;height:44px}.film-sheet{height:284px}.sheet-heading{margin-bottom:9px}.album-button{display:block}.album-print{position:absolute;top:9px;left:11px}.album-label{position:absolute;bottom:0;left:0;width:64px;text-align:center}.just-captured .album-print{width:62px;height:80px;top:-8px;left:2px;transform:rotate(-6deg)}.just-captured .album-label{transform:none}.view-bottom{bottom:14px}.zoom-control{width:44px;height:44px;font-size:13px}.capture-receipt{font-size:12px;padding:10px 12px}.receipt-frame{font-size:11px}.deck-foot{display:none}
.album-dialog{width:min(100%,390px);height:min(100svh,844px);margin:auto;overflow-y:auto}
/* Round 3: image-led feedback and a tactile exposure handle. */
.view-top{justify-content:flex-end;isolation:isolate}.view-format{font-size:11px}.view-top:before{inset:-18px -18px -20px;background:linear-gradient(#17241b52,transparent)}.scene-tint{mix-blend-mode:var(--tint-blend,soft-light);opacity:var(--tint-opacity,.22)}.film-preview:after{content:"";position:absolute;inset:0;pointer-events:none;background:var(--option-tint);opacity:var(--option-alpha);mix-blend-mode:var(--option-blend)}.option-check{z-index:1}.dial-pointer{width:8px;height:25px;transform:translateX(-4px);border-radius:1px;box-shadow:0 1px 2px #7e292522}.dial-pointer:before{border:0;left:3px;top:6px;width:2px;height:12px;background:#fffcf5b3}.capture-receipt{left:24px;bottom:34px;transform:none;padding:0;border:0;background:transparent;color:#5c6b50;font-size:11px;gap:4px;letter-spacing:0}.capture-receipt svg{color:var(--red);width:13px;height:13px}.receipt-frame{display:none}.just-captured .album-label{visibility:hidden}.album-print{padding-bottom:4px}.print-caption{display:none}.album-photo{padding:6px}.flying-print{padding:5px}.film-option.selected .film-preview{outline-width:1.5px}
.flying-print img{filter:none}

/* Final review: faithful preview brightness and a stable album entry. */
.sheet-backdrop{background:transparent}.film-option.selected strong{color:var(--ink)}.just-captured .album-label{visibility:visible}.just-captured .album-print{height:76px}.capture-receipt{bottom:12px;left:28px}.view-format{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;font-size:11px;letter-spacing:.5px}
