/* Camera-first hero. All geometry is shared by the physical table and phone view. */
.hero-camera-story{grid-template-columns:1fr 1.06fr;gap:34px;min-height:710px;padding-block:52px 66px}.hero-camera-story h1{font-size:clamp(3.5rem,5.7vw,5.35rem);line-height:1.045;letter-spacing:-.055em}.hero-camera-story .intro-copy{max-width:29rem;font-size:1.14rem;line-height:1.6}.hero-camera-story .hero-note{max-width:29rem;line-height:1.55}.camera-hero{margin:0;min-width:0}.hero-art-defs{position:absolute;width:0;height:0;overflow:hidden}.hero-camera-visual{position:relative;width:100%;height:520px;isolation:isolate;overflow:hidden}.hero-felt-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.hero-table-label{position:absolute;left:4%;top:12px;display:flex;align-items:center;gap:9px;padding:12px 16px;background:#f4e6c8;border:1px solid #e6d7b8;border-radius:15px;transform:rotate(-5deg);font-size:.78rem;line-height:1.35}.hero-table-label strong{font-size:.88rem}.hero-phone{--phone-rest-rotation:-5deg;position:absolute;right:1.5%;top:38px;width:231px;padding:9px 7px 7px;border-radius:34px;background:#112b30;border:2px solid #27464a;box-shadow:0 12px 0 #06282d,0 22px 35px #073b4328;transform:rotate(var(--phone-rest-rotation));transform-origin:50% 65%;z-index:2}.hero-phone-speaker{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:43px;height:5px;border-radius:10px;background:#061b1e;z-index:3}.hero-phone-screen{overflow:hidden;border-radius:24px;background:var(--cream);padding:11px 10px 12px}.hero-phone-bar{display:flex;align-items:center;justify-content:space-between;gap:7px;height:24px;font-size:10px;font-weight:800;letter-spacing:-.03em}.hero-phone-bar svg{width:14px;height:14px;fill:none;stroke:#073b43;stroke-width:1.7}.hero-phone-heading{font-weight:800;letter-spacing:-.035em;font-size:16px;padding:9px 0 10px}.hero-phone-camera{position:relative;border-radius:8px;overflow:hidden;background:#123f42}.hero-phone-camera>svg{width:100%;height:235px;display:block}.hero-phone-camera-tag{position:absolute;bottom:7px;left:7px;background:#073b43d9;color:#fffdf4;border:1px solid #fff3;border-radius:999px;padding:4px 7px;display:flex;align-items:center;gap:4px;font-size:8px;font-weight:700}.hero-phone-camera-tag svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.7}.hero-phone-result{text-align:center;padding-top:9px}.hero-phone-result>div{display:flex;align-items:center;justify-content:center;gap:9px}.hero-phone-result strong{font-size:43px;font-weight:800;letter-spacing:-.07em;line-height:1;color:#438f86}.hero-phone-result>div>span{font-size:9px;font-weight:700}.hero-phone-review{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #c7d8cf;color:#073b43;background:#e0eee1;padding:6px;margin-top:8px;border-radius:7px;font-size:9px;font-weight:800}.hero-phone-review svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7}.hero-camera-caption{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:.7rem;color:var(--muted);padding-top:11px}.hero-replay{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--teal);font-size:.75rem;font-weight:800;white-space:nowrap}.hero-replay:active{background:var(--sand)}.hero-replay:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.hero-scan-status{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.hero-tile-outline{fill:none;stroke:#39d9bb;stroke-width:1.5;stroke-dasharray:1 1;stroke-dashoffset:0}.hero-pip-trace{fill:none;stroke:#2ddec0;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:var(--hero-pip-length) var(--hero-pip-gap);stroke-dashoffset:calc(0px - var(--hero-pip-approach))}@media(hover:hover) and (pointer:fine){.hero-replay:hover .icon{transform:rotate(-20deg)}.hero-replay:hover{background:#f4e6c866}}
@media(max-width:1000px) and (min-width:801px){.hero-camera-story{gap:12px;grid-template-columns:1fr 1fr}.hero-camera-story h1{font-size:4rem}.hero-camera-visual{height:460px}.hero-phone{width:205px;right:-1%;top:32px}.hero-phone-camera>svg{height:210px}.hero-phone-result strong{font-size:36px}}
@media(max-width:800px){.hero-camera-story{display:flex;flex-direction:column;gap:0;min-height:0;padding-block:28px 35px}.hero-camera-story .hero-copy{display:contents}.hero-camera-story h1{order:1;align-self:flex-start;max-width:100%;font-size:clamp(2.45rem,6.4vw,3.6rem);margin-bottom:10px;line-height:1.06}.hero-camera-story .camera-hero{order:2;width:min(100%,510px);margin:0 auto 19px}.hero-camera-story .intro-copy{order:3;align-self:flex-start;max-width:38rem;font-size:1.03rem;line-height:1.5;margin-bottom:16px}.hero-camera-story .actions{order:4;align-self:flex-start;margin-top:0}.hero-camera-story .hero-note{order:5;align-self:flex-start;margin-top:15px;max-width:36rem;font-size:.75rem}.hero-camera-visual{height:395px}.hero-phone{width:194px;top:24px;right:6%;border-radius:30px}.hero-phone-screen{border-radius:21px;padding:8px}.hero-phone-camera>svg{height:195px}.hero-phone-heading{font-size:14px;padding:7px 0 8px}.hero-phone-result strong{font-size:35px}.hero-phone-result{padding-top:6px}.hero-phone-review{padding:5px;margin-top:6px}.hero-table-label{left:7%;top:5px;font-size:.7rem;padding:10px 13px}.hero-table-label strong{font-size:.8rem}.hero-camera-caption{width:min(100%,420px);margin:auto;padding-top:0;font-size:.66rem}}
@media(max-width:560px){.hero-camera-story h1{font-size:2.35rem;letter-spacing:-.055em;margin-bottom:8px}.hero-camera-story .intro-copy{font-size:.96rem;line-height:1.5;max-width:340px;margin-bottom:14px}.hero-camera-story .camera-hero{margin-bottom:10px}.hero-camera-story .actions{gap:9px}.hero-camera-story .actions .button{padding-inline:16px;font-size:.82rem}.hero-camera-story .hero-note{font-size:.7rem;line-height:1.45;margin-top:12px}.hero-camera-visual{height:306px}.hero-felt-art{left:-13px;top:-12px;width:calc(100% + 13px);height:calc(100% + 24px)}.hero-phone{--phone-rest-rotation:-4deg;width:157px;right:5px;top:9px;padding:8px 5px 5px;border-radius:25px;box-shadow:0 7px 0 #06282d,0 12px 20px #073b4328}.hero-phone-screen{border-radius:18px;padding:7px}.hero-phone-bar{font-size:8px;height:18px}.hero-phone-bar svg{width:11px;height:11px}.hero-phone-heading{font-size:12px;padding:6px 0}.hero-phone-camera>svg{height:151px}.hero-phone-camera-tag{font-size:6px;left:4px;bottom:4px;padding:3px 4px;gap:3px}.hero-phone-camera-tag svg{width:9px;height:9px}.hero-phone-result strong{font-size:29px}.hero-phone-result>div{gap:6px}.hero-phone-result>div>span{font-size:7px}.hero-phone-review{font-size:7px;padding:4px}.hero-phone-review svg{width:9px;height:9px}.hero-table-label{left:2%;top:8px;padding:7px 10px;font-size:.62rem;gap:6px;border-radius:10px}.hero-table-label strong{font-size:.69rem}.hero-table-label .icon{width:15px;height:15px;flex-basis:15px}.hero-camera-caption{font-size:.59rem;gap:3px}.hero-replay{font-size:.68rem;padding:8px 6px;gap:4px}.hero-replay .icon{width:15px;height:15px;flex-basis:15px}}

/* The marketing illustration has a deliberately readable 7.2 s story; app result effects stay fast. */
.hero-animation-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--teal);font-size:.75rem;font-weight:800;white-space:nowrap}.hero-animation-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hero-animation-toggle:active{background:var(--sand)}.hero-animation-toggle:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.hero-animation-toggle .hero-play-icon{display:none}.hero-animation-toggle[aria-pressed=true] .hero-pause-icon{display:none}.hero-animation-toggle[aria-pressed=true] .hero-play-icon{display:block}.hero-animation-toggle[hidden],.hero-replay[hidden]{display:none}
.hero-phone-result{position:relative;min-height:91px}.hero-phone-pending{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:10px 0;margin:0!important;color:#3d6967;font-size:11px;font-weight:750;line-height:1.3;opacity:0}.hero-pending-scan,.hero-heading-camera,.hero-heading-scan{display:none}.hero-phone-total,.hero-phone-review{opacity:1}.hero-phone-heading{min-height:37px}.hero-camera-story[data-hero-phase=enter] .hero-heading-camera,.hero-camera-story[data-hero-phase=frame] .hero-heading-camera{display:block}.hero-camera-story[data-hero-phase=scan] .hero-heading-scan{display:block}.hero-camera-story[data-hero-phase=enter] .hero-heading-review,.hero-camera-story[data-hero-phase=frame] .hero-heading-review,.hero-camera-story[data-hero-phase=scan] .hero-heading-review{display:none}
.hero-camera-story[data-hero-phase=enter] .hero-phone{animation:hero-phone-enter 850ms cubic-bezier(.22,1,.36,1) both}.hero-camera-story[data-hero-phase=reset] .hero-phone{animation:hero-phone-leave 450ms ease-in both}
.hero-camera-story[data-hero-phase=enter] .hero-tile-outline,.hero-camera-story[data-hero-phase=enter] .hero-pip-trace,.hero-camera-story[data-hero-phase=frame] .hero-pip-trace{opacity:0}.hero-camera-story[data-hero-phase=frame] .hero-tile-outline{animation:hero-frame-in 500ms linear both}.hero-camera-story[data-hero-phase=scan] .hero-pip-trace{animation:hero-pip-flow 800ms var(--hero-pip-delay) linear both}
.hero-camera-story[data-hero-phase=enter] .hero-phone-total,.hero-camera-story[data-hero-phase=frame] .hero-phone-total,.hero-camera-story[data-hero-phase=scan] .hero-phone-total,.hero-camera-story[data-hero-phase=reset] .hero-phone-total,.hero-camera-story[data-hero-phase=enter] .hero-phone-review,.hero-camera-story[data-hero-phase=frame] .hero-phone-review,.hero-camera-story[data-hero-phase=scan] .hero-phone-review,.hero-camera-story[data-hero-phase=reset] .hero-phone-review{opacity:0}.hero-camera-story[data-hero-phase=enter] .hero-phone-pending,.hero-camera-story[data-hero-phase=frame] .hero-phone-pending,.hero-camera-story[data-hero-phase=scan] .hero-phone-pending{opacity:1}.hero-camera-story[data-hero-phase=scan] .hero-pending-frame{display:none}.hero-camera-story[data-hero-phase=scan] .hero-pending-scan{display:inline}.hero-camera-story[data-hero-phase=reveal] .hero-phone-total,.hero-camera-story[data-hero-phase=reveal] .hero-phone-review{animation:hero-count-reveal 300ms ease-out both}.hero-camera-story[data-hero-paused=true] .hero-phone,.hero-camera-story[data-hero-paused=true] .hero-tile-outline,.hero-camera-story[data-hero-paused=true] .hero-pip-trace,.hero-camera-story[data-hero-paused=true] .hero-phone-total,.hero-camera-story[data-hero-paused=true] .hero-phone-review{animation-play-state:paused!important}
@keyframes hero-phone-enter{from{opacity:0;transform:translate3d(38px,25px,0) rotate(4deg)}to{opacity:1;transform:translate3d(0,0,0) rotate(var(--phone-rest-rotation))}}@keyframes hero-phone-leave{from{opacity:1;transform:translate3d(0,0,0) rotate(var(--phone-rest-rotation))}to{opacity:0;transform:translate3d(18px,12px,0) rotate(-1deg)}}@keyframes hero-frame-in{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes hero-pip-flow{from{stroke-dashoffset:var(--hero-pip-length)}to{stroke-dashoffset:calc(0px - var(--hero-pip-approach))}}@keyframes hero-count-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){.hero-animation-toggle:hover{background:#f4e6c866}}
@media(max-width:800px){.hero-phone-result{min-height:76px}.hero-phone-heading{min-height:32px}.hero-phone-pending{font-size:10px}}
@media(max-width:560px){.hero-animation-toggle{font-size:.68rem;padding:8px 6px;gap:4px}.hero-animation-toggle svg{width:15px;height:15px}.hero-phone-result{min-height:61px}.hero-phone-heading{min-height:27px}.hero-phone-pending{font-size:8px}}
@media(prefers-reduced-motion:reduce){.hero-camera-story .hero-phone,.hero-camera-story .hero-tile-outline,.hero-camera-story .hero-pip-trace,.hero-camera-story .hero-phone-total,.hero-camera-story .hero-phone-review{animation:none!important;opacity:1!important}.hero-camera-story .hero-phone{transform:rotate(var(--phone-rest-rotation))!important}.hero-camera-story .hero-phone-pending,.hero-camera-story .hero-heading-camera,.hero-camera-story .hero-heading-scan{display:none!important}.hero-camera-story .hero-heading-review{display:block!important}.hero-camera-story .hero-tile-outline{stroke-dashoffset:0!important}.hero-camera-story .hero-pip-trace{stroke-dashoffset:calc(0px - var(--hero-pip-approach))!important}.hero-replay,.hero-animation-toggle{display:none!important}.hero-replay .icon{transition:none;transform:none!important}}
