.pscan-sheet{background:var(--paper);width:100%;max-width:32rem;max-height:calc(100dvh - 2rem);color:var(--ink);padding:1.25rem 1.25rem max(1.25rem, env(safe-area-inset-bottom));border:0;border-radius:.75rem .75rem 0 0;margin:0 auto;position:fixed;inset:auto 0 0;overflow-y:auto}.pscan-sheet::backdrop{background:#0a0a0d8f}.pscan-panel{box-shadow:var(--shadow-lift)}.pscan-option{cursor:pointer}@media (prefers-reduced-motion:no-preference){.pscan-sheet[open]{animation:pscan-rise .26s var(--ease-out)}.pscan-sheet[open]::backdrop{animation:.26s ease-out pscan-fade}.pscan-panel{animation:pscan-drop .18s var(--ease-out)}.pscan-step{animation:pscan-step-in .22s var(--ease-out)}}@keyframes pscan-rise{0%{opacity:0;transform:translateY(24px)}}@keyframes pscan-drop{0%{opacity:0;transform:translateY(-6px)}}@keyframes pscan-fade{0%{opacity:0}}@keyframes pscan-step-in{0%{opacity:0;transform:translate(14px)}}:root{--pscan-page-paper:var(--paper);--pscan-page-surface:var(--surface);--pscan-page-ink:var(--ink);--pscan-page-muted:var(--muted);--pscan-page-hairline:var(--hairline);--pscan-page-accent:var(--accent);--pscan-page-accent-wash:var(--accent-wash);--pscan-page-on-accent:var(--on-accent)}.pscan-stage{--pscan-fg:#fff;--pscan-fg-soft:#ffffffc2;--pscan-fg-faint:#ffffff6b;--pscan-line:#ffffff42;isolation:isolate;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overflow:hidden}@media not (min-width:64rem){.pscan-stage[data-scan-fullscreen]{box-shadow:none}}.pscan-stage .btn-primary{color:var(--pscan-page-accent);background:#fff}.pscan-stage .btn-primary:hover:not(:disabled){background:var(--pscan-page-accent-wash);box-shadow:none}.pscan-live:focus,.pscan-theatre:focus{outline:none}.pscan-live,.pscan-theatre{color:#f4f4f7;background:#0a0a0d;position:absolute;inset:0}.pscan-frame{position:absolute;inset:0}.pscan-mirror{position:absolute;inset:0;overflow:hidden}.pscan-video,.pscan-xray{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.pscan-live[data-fit=contain] .pscan-video,.pscan-live[data-fit=contain] .pscan-xray{object-fit:contain}.pscan-video{transition:filter .5s var(--ease-out);background:#0a0a0d}[data-hand] .pscan-video{filter:saturate(.62)contrast(1.05)}.pscan-xray{opacity:0;pointer-events:none}.pscan-ink,.pscan-ring,.pscan-points{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.pscan-shade{filter:blur(5px);pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.pscan-ring{overflow:visible}.pscan-ring g{transform-origin:0 0}.pscan-ring-track{fill:none;stroke:#ffffff61;stroke-width:1.5px;stroke-dasharray:.12 .88}.pscan-ring-fill{fill:none;stroke:#fff;stroke-width:2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.pscan-ghost{color:#fff;opacity:.3;pointer-events:none;transition:opacity .32s var(--ease-out);justify-content:center;display:flex;position:absolute;inset:12% 0 22%}.pscan-ghost svg{width:auto;max-width:100%;height:100%}[data-hand] .pscan-ghost,[data-camera=opening] .pscan-ghost{opacity:0}@media (prefers-reduced-motion:no-preference){.pscan-live:not([data-hand]) .pscan-ghost{animation:2.8s ease-in-out infinite pscan-breathe}}@keyframes pscan-breathe{50%{opacity:.18}}.pscan-flash{opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.pscan-flash[data-on]{animation:.26s ease-out pscan-flash}}@keyframes pscan-flash{0%{opacity:.55}to{opacity:0}}.pscan-top{z-index:6;padding:max(.625rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) .625rem max(.75rem, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.pscan-top>*{pointer-events:auto}.pscan-icon{color:#fff;width:2.75rem;height:2.75rem;transition:background-color var(--dur) var(--ease-out);background:#0a0a0d8f;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.pscan-icon:hover{background:#0a0a0dd1}.pscan-icon[aria-pressed=true]{color:#0a0a0d;background:#fff}.pscan-tag{min-height:2rem;font-family:var(--font-mono);letter-spacing:.01em;color:#fff;white-space:nowrap;background:#0a0a0d8f;border-radius:999px;align-items:center;padding:0 .75rem;font-size:.75rem;display:inline-flex}.pscan-bottom{z-index:5;padding:4.5rem max(1.25rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));pointer-events:none;text-align:center;background:linear-gradient(#06070e00,#06070ee0 65%);position:absolute;bottom:0;left:0;right:0}.pscan-bottom>*{pointer-events:auto}.pscan-ratios{min-height:1.25em;font-family:var(--font-mono);white-space:pre;color:var(--pscan-fg-soft);opacity:0;transition:opacity .24s var(--ease-out);pointer-events:none;margin-bottom:.375rem;font-size:.75rem}.pscan-say{font-family:var(--font-display);letter-spacing:-.028em;text-wrap:balance;pointer-events:none;font-size:clamp(1.75rem,1.3rem + 2vw,2.5rem);font-weight:700;line-height:1.05}@media (prefers-reduced-motion:no-preference){.pscan-say{animation:pscan-say-in .22s var(--ease-out)}}@keyframes pscan-say-in{0%{opacity:0;transform:translateY(6px)}}.pscan-hint{color:var(--pscan-fg-soft);pointer-events:none;margin-top:.375rem;font-size:.9375rem}.pscan-hold,.pscan-rail-title,.pscan-rail-lines,.pscan-live .pscan-steps,.pscan-chip-note{display:none}.pscan-quiet{min-height:2.75rem;color:var(--pscan-fg-soft);text-decoration:underline;-webkit-text-decoration-color:var(--pscan-line);text-decoration-color:var(--pscan-line);text-underline-offset:4px;margin-top:.25rem;padding:0 .5rem;font-size:.9375rem}.pscan-quiet:hover{color:var(--pscan-fg)}.pscan-actions{flex-wrap:wrap;justify-content:center;gap:.625rem;margin-top:.875rem;display:flex}.pscan-btn-ghost{border-color:var(--pscan-line);color:var(--pscan-fg);background:0 0}.pscan-btn-ghost:hover:not(:disabled){border-color:var(--pscan-fg)}.pscan-gl{width:100%;height:100%;position:absolute;inset:0}.pscan-gl-fallback,[data-renderer=canvas2d] .pscan-gl:not(.pscan-gl-fallback){display:none}.pscan-film-rail{display:contents}.pscan-film-foot{z-index:5;padding:3rem max(1.25rem, env(safe-area-inset-right)) max(.875rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#06070e00,#06070eb8 60%);position:absolute;bottom:0;left:0;right:0}.pscan-film-foot>*{pointer-events:auto}.pscan-steps{gap:.3125rem;font-size:.8125rem;line-height:1.3;display:grid}.pscan-steps li{color:var(--pscan-fg);align-items:center;gap:.625rem;display:flex}.pscan-steps li[data-state=wait]{color:var(--pscan-fg-faint)}.pscan-step-dot{border:1px solid;border-radius:999px;flex:none;width:.4375rem;height:.4375rem}.pscan-steps li[data-state=done] .pscan-step-dot{background:currentColor}@media (prefers-reduced-motion:no-preference){.pscan-steps li[data-state=run] .pscan-step-dot{animation:.9s ease-in-out infinite pscan-pulse}}@keyframes pscan-pulse{50%{opacity:.25}}.pscan-labels{z-index:3;pointer-events:none;transition:opacity .2s var(--ease-out);position:absolute;inset:0}.pscan-labels[data-hidden] .pscan-mount{opacity:0}.pscan-leaders{width:100%;height:100%;transition:opacity .2s var(--ease-out);position:absolute;inset:0}.pscan-leader{stroke:#ffffff80;stroke-width:1px;stroke-dasharray:1}.pscan-note-tag{font-family:var(--font-mono);color:#fff;text-shadow:0 1px 8px #04050cf2,0 0 2px #04050ce6;position:absolute;top:0;left:0}.pscan-note-name{color:#ffffffc2;font-size:.75rem;line-height:1.3}.pscan-note-big{letter-spacing:-.01em;font-size:1rem;font-weight:500;line-height:1.25}.pscan-note-word{color:#ffffffdb;margin-top:.125rem;font-size:.75rem;line-height:1.3}.pscan-name-tag{font-family:var(--font-mono);color:#fff;text-shadow:0 1px 5px #04050cf2,0 0 2px #04050ccc;white-space:nowrap;transition:opacity .2s var(--ease-out);font-size:.6875rem;line-height:1;position:absolute;top:0;left:0}.pscan-labels[data-hidden] .pscan-name-tag{opacity:0}.pscan-mount{font-family:var(--font-mono);letter-spacing:.02em;color:#ffffff8f;text-shadow:0 1px 4px #04050ce6;transition:opacity .2s var(--ease-out);font-size:.625rem;position:absolute;top:0;left:0}@media (prefers-reduced-motion:no-preference){.pscan-note-tag .pscan-note-name,.pscan-note-tag .pscan-note-big,.pscan-note-tag .pscan-note-word{animation:.42s steps(20,end) both pscan-type}.pscan-note-tag .pscan-note-big{animation-delay:90ms}.pscan-note-tag .pscan-note-word{animation-delay:.24s}.pscan-leader{animation:pscan-leader .36s var(--ease-out) both}.pscan-mount:not([data-instant]){animation:.5s ease-out both pscan-fade-in}}@keyframes pscan-type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -2% 0 0)}}@keyframes pscan-leader{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes pscan-fade-in{0%{opacity:0}}.pscan-editor{z-index:4;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.pscan-editor[data-placing]{cursor:crosshair}.pscan-handle{cursor:grab;touch-action:none;outline:none}.pscan-handle[data-grabbed]{cursor:grabbing}.pscan-handle-hit{fill:#0000}.pscan-handle-dot{fill:#fff;stroke:var(--accent);stroke-width:2.5px;transition:r .12s var(--ease-out)}.pscan-handle[data-grabbed] .pscan-handle-dot,.pscan-handle:focus-visible .pscan-handle-dot{r:11px}.pscan-ghost-line{fill:none;stroke:#fff;stroke-opacity:.72;stroke-width:2px;stroke-linecap:round;stroke-dasharray:2 9}.pscan-place-dot{fill:#fff;stroke:var(--accent);stroke-width:2.5px}.pscan-loupe{z-index:7;pointer-events:none;background:#0a0a0d;border-radius:50%;width:116px;height:116px;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 0 0 2px #fff,0 10px 26px #04050c99}.pscan-loupe canvas{width:100%;height:100%;display:block}.pscan-loupe-cross{border:1.5px solid #fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #04050c80}.pscan-tray{z-index:6;padding:2.25rem max(1rem, env(safe-area-inset-right)) max(.875rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#0a0a0d00,#0a0a0dfa 28%);gap:.625rem;display:grid;position:absolute;bottom:0;left:0;right:0}.pscan-tray>*{pointer-events:auto;min-width:0}@media (prefers-reduced-motion:no-preference){.pscan-tray{animation:pscan-tray-in .36s var(--ease-out)}}@keyframes pscan-tray-in{0%{opacity:0;transform:translateY(14px)}}.pscan-chips{flex-wrap:wrap;gap:.375rem;display:flex}.pscan-chip{border:1px solid var(--pscan-line);min-height:2.5rem;color:var(--pscan-fg);transition:background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);border-radius:999px;flex:none;align-items:center;gap:.375rem;padding:0 .6875rem;font-size:.8125rem;font-weight:600;display:inline-flex}.pscan-chip[aria-pressed=true]{color:#0a0a0d;background:#fff;border-color:#fff}.pscan-chip-dot{background:currentColor;border-radius:999px;width:.5rem;height:.5rem}.pscan-chip[data-state=check] .pscan-chip-dot{background:0 0;box-shadow:inset 0 0 0 1.5px}.pscan-chip[data-state=place] .pscan-chip-dot{background:linear-gradient(currentColor,currentColor) 50%/100% 1.5px no-repeat,linear-gradient(currentColor,currentColor) 50%/1.5px 100% no-repeat;border-radius:0}.pscan-tray-text{min-height:2.75rem;color:var(--pscan-fg-soft);font-size:.9375rem;line-height:1.35}.pscan-tray-text p:first-child{color:var(--pscan-fg);font-weight:600}.pscan-tray-actions{flex-direction:row-reverse;align-items:center;gap:.625rem;display:flex}.pscan-tray-actions .btn-primary{flex:auto;min-height:3.25rem}.pscan-tray-actions .btn-sm{flex:0 auto}.pscan-range{appearance:none;opacity:0;cursor:ew-resize;touch-action:pan-y;background:0 0;margin:0}.pscan-range:focus-visible{opacity:1}.pscan-range::-webkit-slider-thumb{appearance:none;width:2.75rem;height:2.75rem;box-shadow:0 0 0 3px var(--ink);background:0 0;border-radius:999px}.pscan-range::-moz-range-thumb{width:2.75rem;height:2.75rem;box-shadow:0 0 0 3px var(--ink);background:0 0;border:0;border-radius:999px}:is(.tool-layout:has([data-scan-state=busy]) .hp-stage-art,.tool-layout:has([data-scan-state=result]) .hp-stage-art){display:none}.tool-layout:has([data-scan-state=result]) [data-testid=tool-lead]{display:none}.tool-layout:has([data-scan-state=result]) .tool-title{font-size:var(--text-title);letter-spacing:-.016em;color:var(--muted);line-height:1.2}@media (not (min-width:64rem)) and (orientation:landscape){.pscan-stage{--pscan-rail:clamp(14rem, 36vw, 20rem)}.pscan-live,.pscan-theatre{display:flex}.pscan-frame{flex:auto;min-width:0;position:relative;inset:auto}.pscan-rail,.pscan-film-rail{z-index:5;flex:0 0 var(--pscan-rail);min-height:0;padding:max(.875rem, env(safe-area-inset-top)) .875rem max(.75rem, env(safe-area-inset-bottom)) max(.875rem, env(safe-area-inset-left));text-align:left;pointer-events:auto;background:#0a0a0d;flex-direction:column;display:flex;position:relative;inset:auto;overflow-y:auto}.pscan-film-foot,.pscan-tray{pointer-events:auto;background:0 0;flex-direction:column;flex:auto;gap:.625rem;padding:0;animation:none;display:flex;position:static}.pscan-say{font-size:1.5rem}.pscan-rail-foot,.pscan-film-foot .pscan-quiet,.pscan-tray-actions{align-self:stretch;margin-top:auto}.pscan-film-foot .pscan-quiet{text-align:left}.pscan-tray-actions{flex-direction:column;align-items:stretch}.pscan-tray-text{min-height:0;font-size:.875rem}.pscan-ghost{inset:6% 0}}@media (min-width:64rem){.tool-hero:has([data-scan-fullscreen]){grid-template-columns:minmax(0,1fr);align-items:center;min-height:min(100dvh - 4rem,64rem);padding-block:1.5rem;display:grid}.tool-hero:has([data-scan-fullscreen]) .tool-hero-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tool-hero:has([data-scan-fullscreen]) .tool-hero-text>:not(h1){visibility:hidden}.tool-hero:has([data-scan-fullscreen]) .tool-stage{max-width:none;margin:0}.pscan-stage{--pscan-gutter:3rem;--pscan-width:min(calc(100vw - 2 * var(--pscan-gutter)), 110rem);--pscan-rail:clamp(19rem, 24vw, 25rem);--pscan-gap:clamp(1.5rem, 3vw, 3.5rem);--pscan-room:calc(100dvh - 4rem - 3rem);width:var(--pscan-width);margin-inline:calc((100% - var(--pscan-width)) / 2);position:relative;overflow:visible}.pscan-stage.scan-tile{box-shadow:none;color:var(--pscan-page-ink);background:0 0}.pscan-stage[aria-busy=true]{justify-content:flex-end;display:flex}.pscan-stage[aria-busy=true]:after{content:"";width:min(calc(100% - var(--pscan-rail) - var(--pscan-gap)), calc(var(--pscan-room) * 1.3333));aspect-ratio:4/3;background:#0a0a0d;border-radius:1.5rem}.pscan-live,.pscan-theatre{justify-content:center;align-items:stretch;gap:var(--pscan-gap);color:inherit;background:0 0;display:flex;position:relative;inset:auto}.pscan-frame{width:min(calc(100% - var(--pscan-rail) - var(--pscan-gap)), calc(var(--pscan-room) * var(--pscan-aspect,1.3333)));aspect-ratio:var(--pscan-aspect,1.3333);isolation:isolate;color:#f4f4f7;--pscan-fg:#fff;--pscan-fg-soft:#ffffffc2;--pscan-line:#ffffff42;background:#0a0a0d;border-radius:1.5rem;flex:none;position:relative;inset:auto;overflow:hidden}.pscan-ghost{inset:7% 0}.pscan-rail,.pscan-film-rail{--paper:var(--pscan-page-paper);--surface:var(--pscan-page-surface);--ink:var(--pscan-page-ink);--muted:var(--pscan-page-muted);--hairline:var(--pscan-page-hairline);--accent:var(--pscan-page-accent);--accent-wash:var(--pscan-page-accent-wash);--on-accent:var(--pscan-page-on-accent);--pscan-fg:var(--pscan-page-ink);--pscan-fg-soft:var(--pscan-page-muted);--pscan-fg-faint:color-mix(in srgb, var(--pscan-page-muted) 58%, transparent);--pscan-line:var(--pscan-page-hairline);flex:1 1 var(--pscan-rail);min-width:var(--pscan-rail);max-width:32rem;color:var(--ink);text-align:left;pointer-events:auto;background:0 0;flex-direction:column;padding:.25rem 0 0;display:flex;position:static}.pscan-rail .btn-primary,.pscan-film-rail .btn-primary{background:var(--pscan-page-accent);color:var(--pscan-page-on-accent)}.pscan-rail .btn-primary:hover:not(:disabled),.pscan-film-rail .btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--pscan-page-accent) 86%, var(--pscan-page-ink))}.pscan-say{order:1;font-size:clamp(2rem,1.1rem + 1.6vw,3rem);line-height:1.04}.pscan-hint{order:2;margin-top:.75rem;font-size:1.0625rem;line-height:1.4}.pscan-hold{background:var(--hairline);border-radius:999px;order:3;height:3px;margin-top:1.5rem;display:block;overflow:hidden}.pscan-hold span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.pscan-ratios{color:var(--muted);order:4;margin:.75rem 0 0;font-size:.8125rem}.pscan-rail>.pscan-steps{order:5}.pscan-rail-foot{order:6;margin-top:auto;padding-top:1.5rem}.pscan-rail-foot .pscan-actions{flex-direction:column;align-items:stretch;margin-top:0}.pscan-rail-foot .pscan-quiet{margin:0;padding:0}.pscan-live .pscan-steps{display:grid}.pscan-steps{border-top:1px solid var(--hairline);gap:0;margin-top:1.5rem;font-size:.875rem}.pscan-steps li{border-bottom:1px solid var(--hairline);min-height:2.75rem}.pscan-film-foot,.pscan-tray{pointer-events:auto;background:0 0;flex-direction:column;flex:auto;padding:0;display:flex;position:static}.pscan-film-foot{gap:0}.pscan-rail-title{font-family:var(--font-display);letter-spacing:-.028em;text-wrap:balance;color:var(--ink);font-size:clamp(2rem,1.1rem + 1.6vw,3rem);font-weight:700;line-height:1.04;display:block}.pscan-film-foot .pscan-quiet{text-align:left;align-self:flex-start;margin:auto 0 0;padding:1.5rem 0 0}.pscan-rail-lines{border-top:1px solid var(--hairline);margin-top:1.5rem;display:grid}.pscan-chips{border-top:1px solid var(--hairline);gap:0;display:grid}.pscan-chip{border:0;border-bottom:1px solid var(--hairline);text-align:left;width:100%;min-height:2.75rem;color:var(--ink);border-radius:0;justify-content:flex-start;gap:.625rem;padding:0 .5rem;font-size:.9375rem}button.pscan-chip:hover{background:var(--surface)}.pscan-chip[aria-pressed=true]{border-color:var(--hairline);background:var(--accent-wash);color:var(--accent)}.pscan-chip-note{color:var(--muted);text-align:right;margin-left:auto;font-size:.8125rem;font-weight:400;display:block}.pscan-chip[aria-pressed=true] .pscan-chip-note{color:inherit}.pscan-tray{gap:1rem;animation:none}.pscan-tray-text{min-height:4.5rem;color:var(--muted);order:-1;font-size:1rem;line-height:1.4}.pscan-tray-text p:first-child{font-family:var(--font-display);letter-spacing:-.024em;text-wrap:balance;color:var(--ink);margin-bottom:.5rem;font-size:clamp(1.625rem,1.05rem + 1vw,2.25rem);font-weight:700;line-height:1.08}.pscan-tray-actions{flex-direction:column;align-items:stretch;margin-top:auto;padding-top:.5rem}.pscan-tray-actions .btn-primary{min-height:3.5rem;font-size:1.0625rem}}@media (min-width:80rem){.pscan-stage{--pscan-gutter:4rem}}@media (min-width:64rem) and (prefers-reduced-motion:no-preference){.pscan-stage{animation:.2s ease-out pscan-fade}}.pscan-draw{stroke-dasharray:1 1;stroke-dashoffset:0}.pscan-draw-dashed{stroke-dasharray:.004 .016}.pscan-hero-poster{box-shadow:0 1px 2px #0a0a0d0f,0 24px 60px -24px #141a7859}@media (prefers-reduced-motion:no-preference){.pscan-draw{stroke-dashoffset:1px;animation:1.3s cubic-bezier(.45,0,.2,1) .1s forwards pscan-draw}.pscan-draw-dashed,.pscan-line-fade{opacity:0;animation:.9s .2s forwards pscan-fade-line}}@keyframes pscan-draw{to{stroke-dashoffset:0}}@keyframes pscan-fade-line{to{opacity:1}}:is(h1,h1+p){transition:opacity .18s}body:has(.pscan-panel[data-up]) :is(h1,h1+p){opacity:0}body:has(dialog.pscan-sheet[open]) [data-start-cta]{opacity:0;transition:opacity .16s}
