/* One shared viewer for real originals; image motion never changes aspect ratio. */
#photo-dialog.photo-dialog{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:24px clamp(16px,3vw,48px);border:0;border-radius:0;background:transparent;color:#fff;overflow:hidden;gap:12px;grid-template-rows:auto minmax(0,1fr) auto auto auto;isolation:isolate}
#photo-dialog[open]{display:grid}
#photo-dialog::backdrop{background:#03101ff5;backdrop-filter:none;animation:photo-backdrop-in 300ms ease-out both}
#photo-dialog.is-closing::backdrop{animation:photo-backdrop-out 550ms ease-out both}
#photo-dialog .photo-dialog-top{margin:0;min-height:44px;gap:16px;position:relative;z-index:4}
#photo-dialog .photo-dialog-top h2{font-size:clamp(13px,1.6vw,19px);line-height:1.4;letter-spacing:-.02em}
#photo-dialog .photo-dialog-top>div{gap:16px;flex-shrink:0}
#photo-dialog .icon-button{width:44px;height:44px;background:#0c253d;border-color:#6e8597}
#photo-dialog .photo-stage{min-height:0;height:100%;border-radius:10px;background:transparent;overflow:hidden;touch-action:pan-y;position:relative}
#photo-dialog #photo-full{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;border-radius:8px;user-select:none;-webkit-user-drag:none}
#photo-dialog .photo-nav{width:46px;height:46px;z-index:5;background:#09263ae8;box-shadow:0 4px 22px #0005;transition:background 180ms}
#photo-dialog .photo-nav:hover,#photo-dialog .icon-button:hover{background:#175271}
#photo-dialog .photo-dialog-bottom{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin:0;padding-top:2px;font-size:12px;color:#d6e4ed;position:relative;z-index:4}
#photo-dialog #photo-caption{flex:1 1 260px;line-height:1.5}
#photo-dialog.is-photo-loading #photo-caption,#photo-dialog.is-photo-loading .photo-context-note{visibility:hidden}
#photo-dialog #photo-original{flex-shrink:0;font-size:11px;text-decoration:underline;text-underline-offset:4px;min-height:30px}
#photo-dialog .photo-context-note{order:3;width:100%;font-size:10px;line-height:1.5;color:#a8c2d5;margin-top:-7px}
#photo-dialog .photo-return{justify-self:center;min-height:44px;padding:10px 20px;border:1px solid #627f94;border-radius:10px;background:#102e43;color:#fff;font-weight:700;font-size:12px;position:relative;z-index:4}
#photo-dialog .photo-return:hover{background:#1a4965}
#photo-dialog .photo-keyboard-hint{margin:0;text-align:center;font-size:10px;color:#9db8ca;line-height:1.5}
#photo-dialog .photo-load-status{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:30px 70px;color:#c4d6e3;font-size:13px;line-height:1.7}
#photo-dialog .photo-crossfade{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:2}
#photo-dialog .photo-flight-mask{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}
#photo-dialog .photo-flight-image{position:absolute;max-width:none;object-fit:contain;transform-origin:0 0;pointer-events:none;user-select:none}
#photo-dialog.is-flight .photo-dialog-top,#photo-dialog.is-flight .photo-dialog-bottom,#photo-dialog.is-flight .photo-return,#photo-dialog.is-flight .photo-keyboard-hint{animation:photo-controls-in 240ms 380ms both}
#photo-dialog.is-flight .photo-dialog-top:has(:focus-visible),#photo-dialog.is-flight .photo-dialog-bottom:has(:focus-visible),#photo-dialog.is-flight .photo-return:focus-visible{animation:none;opacity:1}
#photo-dialog.is-closing .photo-dialog-top,#photo-dialog.is-closing .photo-dialog-bottom,#photo-dialog.is-closing .photo-return,#photo-dialog.is-closing .photo-keyboard-hint{animation:photo-controls-out 150ms both}
@keyframes photo-backdrop-in{from{background:#03101f00}to{background:#03101ff5}}
@keyframes photo-backdrop-out{from{background:#03101ff5}to{background:#03101f00}}
@keyframes photo-controls-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes photo-controls-out{to{opacity:0}}
.form-scene{position:relative;min-width:0}
.form-exit-copy{position:absolute;inset:0 0 auto;pointer-events:none;background:white;z-index:1;min-width:0}
.form-step legend[tabindex]:focus-visible,#result-title:focus-visible{outline:2px solid #0877b2;outline-offset:5px;border-radius:2px}
.field-error{font-size:11px;line-height:1.5;color:#a02929;margin:7px 0 0}
.field input[aria-invalid="true"],.quick-planner input[aria-invalid="true"]{border-color:#a02929}
.kind-option{transition:border-color 180ms,background 180ms,box-shadow 180ms}
.kind-option b{transition:opacity 180ms;opacity:.35}
.kind-option:has(input:checked) b{opacity:1}
@media(max-width:760px){#photo-dialog.photo-dialog{padding:12px 12px max(12px,env(safe-area-inset-bottom));gap:10px}#photo-dialog .photo-dialog-top>div{gap:8px}#photo-dialog .photo-dialog-top h2{max-width:205px;font-size:12px}#photo-dialog .photo-nav{width:44px;height:44px}#photo-dialog .photo-prev{left:4px}#photo-dialog .photo-next{right:4px}#photo-dialog .photo-dialog-bottom{font-size:11px;gap:7px}#photo-dialog .photo-keyboard-hint{display:none}#photo-dialog .photo-context-note{font-size:9px;margin-top:0}#photo-dialog .photo-return{min-height:44px;font-size:11px}#photo-dialog #photo-original{font-size:10px;min-height:24px}}
@media(max-height:480px){#photo-dialog.photo-dialog{padding:8px 16px;gap:5px;grid-template-rows:auto minmax(0,1fr) auto auto}#photo-dialog .photo-keyboard-hint{display:none}#photo-dialog .photo-context-note{display:none}#photo-dialog .photo-return{position:absolute;bottom:8px;right:16px;min-height:32px;font-size:10px;padding:6px 12px}#photo-dialog .photo-dialog-bottom{padding-right:190px;min-height:32px;font-size:10px}#photo-dialog .photo-dialog-top{min-height:36px}#photo-dialog .icon-button{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){#photo-dialog *,#photo-dialog::backdrop,.form-scene *{animation:none!important;transition:none!important}}
