:root{color-scheme:dark;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--accent: #cbb5ff;--accent-strong: #9d73ff;--surface: rgba(10, 12, 16, .72);--border: rgba(255, 255, 255, .2);--white: #fff}*{box-sizing:border-box}[hidden]{display:none!important}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#050608}button{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #fff;outline-offset:3px}.camera-app{position:relative;width:100%;height:100%;min-height:540px;overflow:hidden;isolation:isolate;background:#131519}#cameraPreviewCanvas,.fallback-scene,.camera-shade,.capture-flash{position:absolute;inset:0;width:100%;height:100%}#cameraSource{position:fixed;top:0;left:0;z-index:-100;width:2px;height:2px;opacity:0;pointer-events:none}#cameraPreviewCanvas{z-index:0;display:block;opacity:0;transition:opacity .3s ease}#cameraPreviewCanvas.ready{opacity:1}.fallback-scene{z-index:-1;display:grid;place-items:center;background:radial-gradient(circle at 72% 24%,rgba(209,225,255,.2),transparent 34%),linear-gradient(145deg,#7f8487,#383b3f);transform:scale(1.08) rotate(-2deg)}.paper{width:min(82vw,520px);min-height:75vh;padding:15vh 8vw 8vh;color:#4c4b48;text-align:center;background:#dedbd4;box-shadow:0 24px 80px #00000059;filter:blur(1.4px)}.paper span,.paper strong,.paper b{display:block;font-family:Georgia,serif;font-style:normal}.paper strong{font-size:clamp(22px,7vw,48px)}.paper b{margin-top:8px;font-size:clamp(18px,5vw,34px)}.paper i{display:block;height:9px;margin-top:24px;border-radius:3px;background:#4e4d4947}.paper i:nth-child(2n){width:78%}.camera-shade{z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.54) 0%,transparent 23%,transparent 54%,rgba(0,0,0,.18) 65%,rgba(0,0,0,.92) 100%),#0000000f}.glass{border:1px solid var(--border);background:#14161a85;box-shadow:0 8px 24px #0003;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.top-bar{position:absolute;z-index:10;top:0;left:0;display:grid;grid-template-columns:52px 1fr 52px;align-items:center;width:100%;padding:calc(var(--safe-top) + 14px) 18px 14px}.icon-button{display:grid;width:48px;height:48px;padding:0;place-items:center;color:#fff;border-radius:50%;cursor:pointer;transition:background-color .18s ease,opacity .18s ease}.icon-button svg,.control-icon svg,.upload-pill svg,.add-more-button svg,.dialog-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.icon-button:active,.control-button:active,.add-more-button:active{opacity:.7}.title-group{display:flex;flex-direction:column;align-items:center;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.45)}.title-group span{font-size:10px;font-weight:700;letter-spacing:.18em;opacity:.68}.title-group strong{margin-top:2px;font-size:17px;letter-spacing:.04em}.empty-state{position:absolute;z-index:5;inset:0 24px clamp(210px,27vh,280px);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;pointer-events:none;transition:opacity .22s ease,transform .22s ease}.empty-state.has-items{opacity:0;transform:translateY(-10px)}.upload-pill{position:absolute;top:calc(var(--safe-top) + 84px);display:flex;min-height:46px;padding:0 14px;align-items:center;gap:8px;color:#fff;border-radius:999px;cursor:pointer;pointer-events:auto}.upload-pill svg{width:20px;height:20px}.upload-pill .chevron{width:16px}.focus-mark{position:relative;width:66px;height:66px;margin-bottom:20px}.focus-mark span{position:absolute;top:31px;left:8px;width:50px;height:4px;border-radius:999px;background:#fff;box-shadow:0 2px 8px #0000004d}.focus-mark span:last-child{transform:rotate(90deg)}.empty-state h1{max-width:320px;margin:0;font-size:clamp(22px,6vw,30px);line-height:1.22;letter-spacing:-.025em;text-shadow:0 2px 16px rgba(0,0,0,.6)}.empty-state p{max-width:310px;margin:10px 0 0;color:#ffffffd1;font-size:15px;line-height:1.5;text-shadow:0 2px 12px rgba(0,0,0,.7)}.capture-panel{position:absolute;z-index:10;right:0;bottom:0;left:0;padding:12px 20px calc(var(--safe-bottom) + 18px);background:linear-gradient(to bottom,transparent,rgba(0,0,0,.58) 18%,rgba(0,0,0,.92) 55%)}.thumbnail-rail{display:flex;min-height:82px;max-width:560px;margin:0 auto 13px;align-items:center;justify-content:center;gap:10px}.thumbnail-list{display:flex;max-width:calc(100vw - 112px);padding:7px 2px;gap:10px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.thumbnail-list::-webkit-scrollbar{display:none}.thumbnail-item{position:relative;flex:0 0 auto;width:68px;height:76px;scroll-snap-align:end}.thumbnail-item img{display:block;width:100%;height:100%;object-fit:cover;border:2px solid rgba(255,255,255,.92);border-radius:12px;box-shadow:0 8px 20px #00000059}.remove-image-button{position:absolute;top:-7px;right:-7px;display:grid;width:27px;height:27px;padding:0;place-items:center;color:#fff;font-size:18px;line-height:1;border:2px solid rgba(255,255,255,.8);border-radius:50%;background:#17191d;cursor:pointer}.thumbnail-index{position:absolute;right:5px;bottom:5px;display:grid;min-width:22px;height:22px;padding:0 5px;place-items:center;color:#111;font-size:11px;font-weight:800;border-radius:999px;background:#fff}.add-more-button{display:grid;flex:0 0 auto;width:58px;height:68px;padding:0;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.32);border-radius:12px;background:#ffffff24;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.capture-controls{display:grid;grid-template-columns:minmax(64px,1fr) 104px minmax(64px,1fr);max-width:450px;margin:0 auto;align-items:center}.control-button{display:flex;min-width:64px;min-height:70px;padding:4px;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#ffffffd6;font-size:12px;border:0;background:transparent;cursor:pointer}.control-button:first-child{justify-self:start}.control-button:last-child{justify-self:end}.control-icon{display:grid;width:50px;height:50px;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:#050608bd;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.control-button.is-on .control-icon{color:#131313;border-color:#fff2a3;background:#fff2a3;box-shadow:0 0 22px #ffe56c73}.shutter-button{position:relative;display:grid;width:84px;height:84px;padding:0;place-self:center;place-items:center;border:4px solid #fff;border-radius:50%;background:#ffffff29;box-shadow:0 6px 24px #0000004d;cursor:pointer;transition:transform .12s ease}.shutter-button span{width:66px;height:66px;border-radius:50%;background:#fff;transition:transform .12s ease,background-color .12s ease}.shutter-button:active{transform:scale(.95)}.shutter-button:active span{transform:scale(.9);background:#e8e8e8}.shutter-button.processing{pointer-events:none}.shutter-button.processing span{background:conic-gradient(#fff 0 25%,#ffffff4d 25% 100%);animation:spin .7s linear infinite}.done-button{width:min(100%,420px);min-height:54px;margin:13px auto 0;align-items:center;justify-content:center;gap:9px;color:#141018;font-weight:800;font-size:17px;border:0;border-radius:18px;background:linear-gradient(135deg,#eadfff,var(--accent));box-shadow:0 10px 28px #6542a652;cursor:pointer}.done-button:not([hidden]){display:flex}.done-button b{display:grid;min-width:24px;height:24px;padding:0 7px;place-items:center;color:#fff;font-size:12px;border-radius:999px;background:#17131d}.capture-flash{z-index:30;opacity:0;pointer-events:none;background:#fff}.capture-flash.active{animation:flash .23s ease-out}.toast{position:absolute;z-index:60;top:calc(var(--safe-top) + 82px);left:50%;max-width:calc(100vw - 36px);padding:11px 16px;color:#fff;font-size:14px;text-align:center;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:#080a0dd6;opacity:0;transform:translate(-50%,-10px);pointer-events:none;transition:opacity .18s ease,transform .18s ease;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.toast.show{opacity:1;transform:translate(-50%)}.permission-dialog{position:absolute;z-index:50;inset:0;display:grid;padding:24px;place-items:center;background:#03040794;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .2s ease,visibility .2s ease}.permission-dialog.hidden{visibility:hidden;opacity:0;pointer-events:none}.dialog-card{width:min(100%,360px);padding:28px 24px 20px;color:#16131b;text-align:center;border:1px solid rgba(255,255,255,.8);border-radius:28px;background:#fffffff0;box-shadow:0 30px 80px #0006}.dialog-icon{display:grid;width:60px;height:60px;margin:0 auto 17px;place-items:center;color:#fff;border-radius:20px;background:#1a1720}.dialog-icon svg{width:30px;height:30px}.dialog-card h2{margin:0;font-size:24px;letter-spacing:-.03em}.dialog-card p{margin:10px 0 22px;color:#57505f;font-size:15px;line-height:1.55}.primary-button,.secondary-button,.text-button{min-height:50px;border-radius:15px;cursor:pointer}.primary-button{color:#fff;font-weight:750;border:0;background:#18141f}.dialog-card .primary-button{width:100%}.text-button{color:#5b4a76;font-size:14px;border:0;background:transparent}.review-sheet{position:absolute;z-index:80;inset:0;visibility:hidden;opacity:0;transition:opacity .22s ease,visibility .22s ease}.review-sheet.open{visibility:visible;opacity:1}.sheet-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sheet-card{position:absolute;right:0;bottom:0;left:0;max-height:84%;padding:10px 20px calc(var(--safe-bottom) + 18px);color:#1c1822;overflow-y:auto;border-radius:28px 28px 0 0;background:#f8f7fa;transform:translateY(100%);transition:transform .28s cubic-bezier(.22,1,.36,1)}.review-sheet.open .sheet-card{transform:translateY(0)}.sheet-handle{width:42px;height:5px;margin:0 auto 16px;border-radius:999px;background:#d2cdd7}.sheet-header{display:flex;align-items:center;justify-content:space-between}.sheet-header span{color:#756c7f;font-size:12px;font-weight:800;letter-spacing:.12em}.sheet-header h2{margin:3px 0 0;font-size:25px;letter-spacing:-.035em}.icon-button.subtle{color:#332d3a;border:1px solid #ded9e3;background:#fff}.review-stats{display:grid;grid-template-columns:1fr 1fr;margin:18px 0;gap:10px}.stat-card{padding:14px;border:1px solid #e3dfe7;border-radius:16px;background:#fff}.stat-card span{display:block;color:#716878;font-size:12px}.stat-card strong{display:block;margin-top:3px;color:#251f2b;font-size:20px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.review-grid figure{position:relative;aspect-ratio:3 / 4;margin:0;overflow:hidden;border-radius:14px;background:#e5e1e9}.review-grid img{width:100%;height:100%;object-fit:cover}.review-grid figcaption{position:absolute;right:5px;bottom:5px;left:5px;padding:5px 7px;color:#fff;font-size:10px;text-align:center;border-radius:8px;background:#0000009e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.upload-note{margin:16px 0;color:#716978;font-size:13px;line-height:1.5;text-align:center}.sheet-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:10px}.sheet-actions .primary-button,.sheet-actions .secondary-button{width:100%}.secondary-button{color:#302a37;font-weight:700;border:1px solid #dcd6e1;background:#fff}@keyframes flash{0%{opacity:0}18%{opacity:.85}to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:700px){.camera-app{max-width:520px;margin:0 auto;box-shadow:0 0 0 1px #ffffff14,0 0 80px #000000b3}body{background:radial-gradient(circle at center,#2d3038,#08090b 70%)}.paper{padding-right:60px;padding-left:60px}}@media(max-height:680px){.empty-state{inset-bottom:185px}.empty-state p{display:none}.focus-mark{margin-bottom:10px;transform:scale(.8)}.capture-controls{grid-template-columns:1fr 90px 1fr}.shutter-button{width:72px;height:72px}.shutter-button span{width:56px;height:56px}.control-button{min-height:60px}.control-icon{width:46px;height:46px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
