:root{color-scheme:dark;--bg:#080808;--surface:#0d0d0d;--text:#ededed;--muted:#b0b0b0;--line:#333333;--primary:#eeeeee;--on-primary:#111111;--scroll-thumb:#555555;--scroll-hover:#888888;--scroll-active:#bbbbbb;--font-body:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:ui-monospace,Menlo,Consolas,monospace}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--bg)}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:var(--bg)}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb)}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}*::-webkit-scrollbar-thumb:active{background:var(--scroll-active)}body{margin:0;min-width:300px;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.5}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #fff;outline-offset:5px}button:disabled{opacity:.5;cursor:default}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.app-shell{max-width:1160px;padding:0 48px 40px;margin:auto}.topbar{height:110px;display:flex;align-items:center;justify-content:space-between;gap:20px}.identity{display:flex;align-items:center;gap:15px}.brand-symbol{width:32px;height:32px;fill:none;stroke:var(--text);stroke-width:1.3}h1{font-size:25px;font-weight:550;letter-spacing:1px;margin:0}.preset-badge{display:inline-block;font-size:14px;line-height:1.5;font-weight:500;color:var(--text);border:1px solid #666;padding:6px 13px;margin:0;white-space:nowrap}.stage{border:1px solid #666;background:var(--surface);position:relative}.stage::before,.stage::after{content:"";position:absolute;width:7px;height:7px;border:1px solid var(--text);background:var(--bg);z-index:5;top:-4px}.stage::before{left:-4px}.stage::after{right:-4px}.viewfinder{position:relative;isolation:isolate;height:min(62vh,590px);min-height:360px;background:#080808;overflow:hidden}.viewfinder::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#00000015 4px);z-index:2}video,.captured-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;filter:grayscale(1)}video{transform:scaleX(-1)}.camera-shade{position:absolute;inset:0;background:linear-gradient(0deg,#000b,transparent 60%);opacity:0}.stage[data-state="scanning"] .camera-shade{opacity:1}.field-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(ellipse,#000 30%,transparent 90%)}.aperture{position:absolute;width:300px;height:300px;left:50%;top:45%;transform:translate(-50%,-50%)}.aperture-orbit{position:absolute;inset:0;border:1px solid #555;border-top:2px solid #eee;border-bottom:2px solid #eee;border-radius:50%;animation:rotate 24s linear infinite}.aperture-orbit::before{content:"";position:absolute;inset:8px;border:1px dashed #777;border-radius:50%;opacity:.5}.aperture-ticks{position:absolute;inset:23px;border-radius:50%;background:repeating-conic-gradient(#b0b0b0 0deg 1deg,transparent 1deg 6deg);mask-image:radial-gradient(transparent 65%,#000 66%,#000 70%,transparent 71%);animation:rotate 70s linear infinite reverse}.aperture-inner{position:absolute;inset:45px;border-radius:50%;border:1px solid #444}.aperture-inner::before,.aperture-inner::after{content:"";position:absolute;inset:14px;border-radius:50%;border:1px solid #ffffff10}.aperture-inner::after{inset:36px}.radar-sweep{position:absolute;inset:44px;border-radius:50%;background:conic-gradient(transparent 0deg,transparent 295deg,#ffffff12 358deg,#ffffff55 359deg,transparent 360deg);animation:rotate 8s linear infinite;opacity:.7}.crosshair{position:absolute;inset:calc(50% - 20px);border:1px solid #ddd}.crosshair::before,.crosshair::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#ddd}.crosshair::before{width:56px;height:1px}.crosshair::after{width:1px;height:56px}.reticle{position:absolute;inset:55px 17%;pointer-events:none}.reticle i{position:absolute;width:24px;height:24px;border-color:#bbb;border-style:solid}.reticle i:nth-child(1){left:0;top:0;border-width:1px 0 0 1px}.reticle i:nth-child(2){right:0;top:0;border-width:1px 1px 0 0}.reticle i:nth-child(3){left:0;bottom:0;border-width:0 0 1px 1px}.reticle i:nth-child(4){right:0;bottom:0;border-width:0 1px 1px 0}.scan-line{position:absolute;left:0;right:0;top:0;height:1px;background:#fff;box-shadow:0 0 18px #fff6;opacity:0}.scan-line::before{content:"";position:absolute;left:0;right:0;bottom:1px;height:32px;background:linear-gradient(transparent,#ffffff13)}.stage[data-state="scanning"] .scan-line{opacity:.9;animation:scan 2.8s ease-in-out infinite}.stage[data-state="scanning"] .aperture{opacity:.22}.stage[data-state="scanning"] .aperture-orbit{animation-duration:7s}.stage[data-state="scanning"] .radar-sweep{animation-duration:3s}.stage[data-state="ready"] .aperture,.stage[data-state="capturing"] .aperture,.stage[data-state="ready"] .field-grid{display:none}.stage-center{position:absolute;bottom:63px;left:20px;right:20px;text-align:center;z-index:3}.stage-center h2{font-size:21px;letter-spacing:3px;font-weight:400;margin:0}.stage[data-state="ready"] .stage-center,.stage[data-state="capturing"] .stage-center,.stage[data-state="scanning"] .stage-center,.stage[data-state="result"] .stage-center{display:none}.stage[data-state="requesting"] .aperture{opacity:.4}.scan-progress{position:absolute;bottom:55px;left:50%;width:min(330px,70%);transform:translateX(-50%);z-index:4;text-align:center}#progress-number{font:30px var(--font-mono);display:block;margin-bottom:18px}.progress-track{height:4px;background:#444;overflow:hidden}.progress-track>div{height:100%;width:0;background:var(--text)}.controls{padding:24px;border-top:1px solid var(--line);background:#101010}.actions{display:flex;gap:12px;justify-content:center}.button{display:flex;align-items:center;justify-content:center;gap:11px;min-height:52px;min-width:190px;border:1px solid #777;border-radius:0;font-size:16px;padding:0 24px;transition:background .15s,transform .15s}.button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.primary{color:var(--on-primary);background:var(--primary);border-color:var(--primary)}.primary:hover:not(:disabled){background:#fff;box-shadow:0 0 18px #ffffff18}.secondary{background:transparent;color:var(--text);border-color:#555}.secondary:hover{background:#ffffff0c;border-color:var(--text)}.feedback{font-size:16px;line-height:1.7;margin:0 auto 18px;text-align:center;max-width:700px;color:var(--text)}
dialog{padding:0;width:min(690px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid #888;border-radius:0;background:var(--bg);color:var(--text);overflow:auto;box-shadow:0 0 100px #ffffff07}dialog::backdrop{background:#000e;backdrop-filter:blur(9px)}dialog[open]{animation:result-reveal .35s ease-out}.result-content{padding:28px;text-align:center}#result-photo{display:block;max-width:100%;width:100%;height:clamp(170px,34dvh,340px);object-fit:contain;background:#111;filter:grayscale(1);border:1px solid #444}.result-content h2{font-size:clamp(30px,5vw,46px);font-weight:500;line-height:1.4;letter-spacing:3px;margin:25px 0 29px;outline:none;color:var(--text);animation:output-in .55s ease-out}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result-actions .button{min-width:0}
@keyframes rotate{to{transform:rotate(360deg)}}@keyframes scan{0%,100%{top:0;opacity:.25}50%{top:100%;opacity:.9}}@keyframes result-reveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes output-in{from{clip-path:inset(0 0 100% 0);transform:translateY(8px)}to{clip-path:inset(0);transform:none}}
@media(max-width:760px){.app-shell{padding:0 18px 25px}.topbar{height:88px;gap:10px}.identity{gap:9px}.brand-symbol{width:25px;height:25px}h1{font-size:20px;letter-spacing:0}.preset-badge{font-size:14px;padding:4px 9px}.viewfinder{height:57dvh;min-height:380px;max-height:560px}.aperture{width:230px;height:230px;top:43%}.aperture-ticks{inset:16px}.aperture-inner,.radar-sweep{inset:35px}.reticle{inset:34px 10%}.stage-center{bottom:50px}.stage-center h2{font-size:20px;letter-spacing:1px}.controls{padding:18px 14px}.actions{gap:9px}.button{font-size:16px;min-width:0;min-height:52px;padding:0 16px;flex:1}.button svg{width:18px;height:18px}.feedback{font-size:15px}.scan-progress{bottom:48px}.result-content{padding:22px 16px}.result-content h2{font-size:32px;letter-spacing:1px;margin:22px 0}.result-actions{gap:9px}.result-actions .button{font-size:15px;padding:0 8px}}
@media(max-width:360px){.app-shell{padding:0 12px 20px}h1{font-size:18px}.identity{gap:7px}.preset-badge{font-size:13px;padding:4px 7px}.aperture{width:205px;height:205px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.scan-line,.radar-sweep{display:none}}
@media(forced-colors:active){*{scrollbar-color:auto}.button{border:1px solid ButtonText}.progress-track{border:1px solid CanvasText}.progress-track>div{background:Highlight}.button:focus-visible{outline-color:Highlight}.crosshair{border-color:CanvasText}}

/* Keep the entertainment notice visible at the lower left, including short screens. */
dialog[open]{display:flex;flex-direction:column}.result-content{min-height:0;overflow-y:auto}.result-disclaimer{flex:none;margin:0;padding:12px 28px;font:8pt/1.5 var(--font-mono);color:var(--text);text-align:left;background:var(--bg)}
@media(max-width:760px){.result-disclaimer{padding:10px 16px}}

/* Film-prop values are authored scene data, never derived from the captured image. */
.prop-analysis{margin:0 0 26px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;font-family:var(--font-mono)}.confidence-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.analysis-label{font-size:13px;letter-spacing:1px;line-height:1.5;margin:0 0 6px}.scene-note{font-size:10px;letter-spacing:1.4px;color:var(--muted);margin:0}.confidence-number{font-size:45px;font-weight:400;line-height:1;margin:0;font-variant-numeric:tabular-nums}.confidence-number span{font-size:19px;color:var(--muted);margin-left:3px}.distribution-heading{display:flex;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:1px;color:var(--muted);margin-bottom:10px}.stacked-bar{display:flex;width:100%;height:16px;gap:2px;background:var(--bg);overflow:hidden}.segment{display:block;flex:var(--share) 1 0;min-width:0}.primary-segment,.legend-primary{background:#ededed}.alternate-segment,.legend-alternate{background:#929292}.unresolved-segment,.legend-unresolved{background:repeating-linear-gradient(135deg,#555 0,#555 2px,#222 2px,#222 4px)}.chart-legend{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;margin-top:13px}.chart-legend>div{display:grid;grid-template-columns:7px 1fr;align-items:center;column-gap:7px;row-gap:5px}.chart-legend i{width:7px;height:7px}.chart-legend span{font-size:10px;color:var(--muted);letter-spacing:.3px}.chart-legend b{grid-column:2;font-size:14px;font-weight:400;font-variant-numeric:tabular-nums}#result-photo{height:clamp(140px,25dvh,250px)}.result-content h2{margin:20px 0 24px}dialog[open] .stacked-bar{animation:chart-reveal .65s .3s ease-out both;transform-origin:left}@keyframes chart-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@media(max-width:760px){.topbar .preset-badge{font-size:10px;letter-spacing:.1px;padding:6px}.prop-analysis{padding:17px 0;margin-bottom:21px}.confidence-row{margin-bottom:19px}.analysis-label{font-size:11px;letter-spacing:.4px}.scene-note{font-size:9px;letter-spacing:.7px}.confidence-number{font-size:36px}.confidence-number span{font-size:15px}.distribution-heading{font-size:9px;letter-spacing:.5px}.chart-legend{gap:8px;grid-template-columns:1fr 1fr 1.1fr}.chart-legend span{font-size:8px;letter-spacing:0}.chart-legend b{font-size:12px}.stacked-bar{height:14px}.result-content h2{margin:19px 0 21px}}
@media(forced-colors:active){.segment{border:1px solid CanvasText}.primary-segment{background:Highlight}.alternate-segment{background:GrayText}.unresolved-segment{background:Canvas}}

.head-box{position:absolute;border:2px solid #fff;box-shadow:0 0 3px #000,inset 0 0 3px #000;pointer-events:none;z-index:4}.stage[data-state="ready"] .reticle,.stage[data-state="capturing"] .reticle{display:none}

.capture-report{text-align:left;margin:0 0 28px;font-family:var(--font-mono)}.report-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 20px;border-bottom:1px solid #777}.report-heading h3{font-size:18px;letter-spacing:1.5px;font-weight:500;margin:0}.report-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}.report-section{padding:22px 0;border-bottom:1px solid var(--line)}.report-section h4{margin:0 0 20px;font-size:13px;font-weight:500;letter-spacing:1px;color:var(--muted)}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;margin:0}.report-grid>div{min-width:0}.report-grid dt{font-size:11px;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}.report-grid dd{margin:0;font-size:14px;line-height:1.6;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.report-note{font-family:var(--font-body);font-size:14px;line-height:1.75;color:var(--muted);margin:22px 0 0;max-width:62ch}.report-log{list-style:none;padding:0;margin:0;display:grid;gap:20px}.report-log>li{display:grid;grid-template-columns:28px 1fr;gap:12px;font-size:13px}.report-log>li>span{color:var(--muted)}.report-log p{font-family:var(--font-body);font-size:14px;line-height:1.7;color:var(--muted);margin:6px 0 0}@media(max-width:420px){.report-grid{gap:19px 15px}.report-grid dt{font-size:10px}.report-grid dd{font-size:13px}.report-heading h3{font-size:16px}.report-section{padding:20px 0}}

.hand-effect{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.captured-photo,#result-photo{filter:none}

/* Rehearsal controls and authored scan cues. */
.rehearsal-panel{border-top:1px solid var(--line);padding:0 24px;background:#101010}.rehearsal-panel summary{cursor:pointer;padding:16px 0;font-size:14px;display:flex;justify-content:space-between;gap:12px;list-style:none}.rehearsal-panel summary::-webkit-details-marker{display:none}.rehearsal-panel summary::before{content:'+';font-family:var(--font-mono)}.rehearsal-panel[open] summary::before{content:'−'}.rehearsal-panel summary>span{margin-left:auto;color:var(--muted);font-size:12px}.rehearsal-panel summary:focus-visible{outline:2px solid #fff;outline-offset:3px}.rehearsal-panel fieldset{border:0;padding:0;margin:2px 0 16px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rehearsal-panel label{display:flex;align-items:flex-start;gap:10px;border:1px solid #444;padding:14px;cursor:pointer}.rehearsal-panel label:has(input:checked){background:#202020;border-color:#eee}.rehearsal-panel input{accent-color:#eee;margin:4px 0 0}.rehearsal-panel label>span{font-size:14px}.rehearsal-panel small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.rehearsal-panel p{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 18px}.rehearsal-panel fieldset:disabled{opacity:.5}.scan-layers{position:absolute;inset:0;z-index:3;pointer-events:none;font-family:var(--font-mono)}.coordinate-plane{position:absolute;inset:35px;border:1px solid #ffffff55;background-image:linear-gradient(#ffffff18 1px,transparent 1px),linear-gradient(90deg,#ffffff18 1px,transparent 1px);background-size:12.5% 12.5%;opacity:0;transition:opacity .3s}.coordinate-plane span{position:absolute;right:8px;top:8px;font-size:11px}.frame-record{position:absolute;top:55px;left:55px;display:grid;gap:8px;padding:16px;background:#080808d9;border-left:2px solid #fff;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}.frame-record span{font-size:11px;letter-spacing:1px;color:var(--muted)}.frame-record strong{font-size:22px;font-weight:400}.scan-checklist{position:absolute;right:55px;top:55px;list-style:none;display:grid;gap:12px;margin:0;padding:14px;background:#080808d9;opacity:0;transition:opacity .3s}.scan-checklist li{font-size:11px;letter-spacing:.6px;color:#888}.scan-checklist li::before{content:'□';margin-right:10px}.scan-checklist li[data-status="active"]{color:#fff}.scan-checklist li[data-status="active"]::before{content:'▣'}.scan-checklist li[data-status="done"]{color:#ddd}.scan-checklist li[data-status="done"]::before{content:'✓'}.scan-cue{display:block;margin-bottom:14px;font:12px var(--font-mono);letter-spacing:1px}.scene-event{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:#080808e8;opacity:0;transition:opacity .35s}.scene-event>span{font-size:11px;letter-spacing:3px;color:#bbb}.scene-event strong{font-size:clamp(20px,4vw,42px);font-weight:400;letter-spacing:2px}.stage[data-state="scanning"] .aperture{display:none}.stage[data-cue="grid"] .coordinate-plane,.stage[data-cue="record"] .coordinate-plane,.stage[data-cue="report"] .coordinate-plane{opacity:1}.stage[data-cue="record"] .frame-record,.stage[data-cue="report"] .frame-record{opacity:1;transform:none}.stage[data-cue="report"] .scan-checklist{opacity:1}.stage[data-cue="lost"] .scene-event,.stage[data-cue="reboot"] .scene-event,.stage[data-cue="restore"] .scene-event{opacity:1}.stage[data-cue="lost"] .scan-line,.stage[data-cue="reboot"] .scan-line{opacity:0;animation-play-state:paused}.stage[data-cue="reboot"] .scene-event{background:#080808}.stage[data-cue="report"] .scan-line{animation-play-state:paused;opacity:.2}
@media(max-width:760px){.rehearsal-panel{padding:0 14px}.rehearsal-panel fieldset{grid-template-columns:1fr}.rehearsal-panel label{padding:12px}.rehearsal-panel small{display:inline;margin-left:12px}.coordinate-plane{inset:20px}.frame-record{top:35px;left:35px;padding:10px}.frame-record strong{font-size:18px}.scan-checklist{top:auto;bottom:150px;left:35px;right:35px;grid-template-columns:1fr 1fr;gap:10px;padding:10px}.scan-checklist li{font-size:9px;letter-spacing:0}.scan-checklist li::before{margin-right:5px}.scene-event strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.coordinate-plane,.frame-record,.scan-checklist,.scene-event{transition:none}}

/* Cinematic optics: layered motion and luminous edges without strobing. */
.stage{box-shadow:0 0 42px #ffffff05,inset 0 0 40px #ffffff03}.stage[data-state="ready"] .head-box::before,.stage[data-state="ready"] .head-box::after{content:'';position:absolute;inset:-7px;border:1px solid #ffffff88;clip-path:polygon(0 0,20% 0,20% 1%,1% 1%,1% 20%,0 20%,0 0,100% 0,100% 20%,99% 20%,99% 1%,80% 1%,80% 0)}.stage[data-state="ready"] .head-box::after{transform:rotate(180deg)}.stage[data-state="ready"] .head-box{box-shadow:0 0 8px #ffffff33,inset 0 0 12px #ffffff12}.aperture-orbit{box-shadow:0 0 22px #ffffff0a,inset 0 0 22px #ffffff08}.aperture-inner{animation:optic-breathe 5s ease-in-out infinite}.scan-reactor{position:absolute;left:50%;top:46%;width:min(45vw,290px);aspect-ratio:1;transform:translate(-50%,-50%);opacity:.55;transition:opacity .4s}.scan-reactor i{position:absolute;inset:0;border-radius:50%;border:1px solid #ffffff66;border-left-color:transparent;border-right-color:transparent;animation:reactor-spin 9s linear infinite}.scan-reactor i:nth-child(2){inset:14%;border:1px dashed #ffffff66;animation-duration:17s;animation-direction:reverse}.scan-reactor i:nth-child(3){inset:28%;border:2px solid #ffffff88;border-top-color:transparent;border-bottom-color:transparent;animation-duration:6s}.scan-reactor i:nth-child(4){inset:-8%;border:1px solid #ffffff22;transform:rotateX(58deg);animation:reactor-orbit 8s linear infinite}.scan-wave{position:absolute;left:50%;top:46%;width:60px;aspect-ratio:1;border:1px solid #ffffff88;border-radius:50%;opacity:0;transform:translate(-50%,-50%);box-shadow:0 0 25px #ffffff22}.stage[data-state="scanning"] .scan-wave{animation:scan-expansion 2.2s ease-out infinite}.scan-dust{position:absolute;inset:0;background-image:radial-gradient(circle,#fff8 0 1px,transparent 2px),radial-gradient(circle,#fff4 0 1px,transparent 2px);background-size:113px 97px,79px 151px;background-position:23px 10px,57px 45px;mask-image:radial-gradient(ellipse,#0008,transparent 75%);opacity:.5;animation:dust-drift 16s linear infinite}.coordinate-plane{transform:perspective(800px) rotateX(7deg);box-shadow:inset 0 0 40px #0008}.stage[data-cue="record"] .scan-reactor,.stage[data-cue="report"] .scan-reactor{opacity:.18}.stage[data-cue="lost"] .scan-reactor,.stage[data-cue="reboot"] .scan-reactor{opacity:0}.stage[data-cue="lost"] .scan-wave,.stage[data-cue="reboot"] .scan-wave{display:none}.stage[data-cue="restore"] .scan-reactor{z-index:1;opacity:.18}.frame-record{box-shadow:0 0 30px #ffffff06}.scene-event::after{content:'';position:absolute;left:20%;right:20%;height:1px;top:calc(50% + 65px);background:linear-gradient(90deg,transparent,#ffffff88,transparent);transform:scaleX(0);transition:transform 1s ease}.stage[data-cue="lost"] .scene-event::after,.stage[data-cue="reboot"] .scene-event::after,.stage[data-cue="restore"] .scene-event::after{transform:scaleX(1)}.stage[data-cue="report"] .scan-checklist{animation:report-materialize .45s ease both}.progress-track{box-shadow:0 0 15px #ffffff18}.progress-track>div{box-shadow:0 0 16px #ffffff55}.scan-line{height:2px;box-shadow:0 0 22px #ffffff88}.scan-line::before{height:65px;background:linear-gradient(transparent,#ffffff1a)}
dialog[open]{animation:cinema-open .6s cubic-bezier(.16,1,.3,1) both;box-shadow:0 0 80px #ffffff12}dialog[open] #result-photo{animation:photo-resolve .8s ease both}dialog[open] .result-content h2{animation:title-resolve .75s .12s ease both}dialog[open] .prop-analysis{animation:report-materialize .65s .2s ease both}dialog[open] .capture-report{animation:report-materialize .7s .3s ease both}dialog[open] .result-actions{animation:report-materialize .7s .35s ease both}
@keyframes optic-breathe{0%,100%{opacity:.45}50%{opacity:1}}@keyframes reactor-spin{to{transform:rotate(360deg)}}@keyframes reactor-orbit{from{transform:rotateX(58deg) rotate(0)}to{transform:rotateX(58deg) rotate(360deg)}}@keyframes scan-expansion{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}15%{opacity:.4}100%{transform:translate(-50%,-50%) scale(9);opacity:0}}@keyframes dust-drift{to{background-position:23px -87px,57px -106px}}@keyframes cinema-open{from{opacity:0;transform:translateY(18px) scale(.975);clip-path:inset(45% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}@keyframes photo-resolve{from{opacity:.4;clip-path:inset(0 50%)}to{opacity:1;clip-path:inset(0)}}@keyframes title-resolve{from{opacity:0;filter:blur(5px);transform:translateY(6px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes report-materialize{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:760px){.scan-reactor{width:180px}.scan-dust{background-size:113px 97px,157px 151px}.scan-line::before{height:40px}}
@media(prefers-reduced-motion:reduce){.aperture-inner,.scan-reactor i,.scan-dust,.stage[data-state="scanning"] .scan-wave,.stage[data-cue="report"] .scan-checklist,dialog[open],dialog[open] #result-photo,dialog[open] .result-content h2,dialog[open] .prop-analysis,dialog[open] .capture-report,dialog[open] .result-actions{animation:none}.scan-reactor,.scene-event::after{transition:none}.scan-wave{display:none}.coordinate-plane{transform:none}}
