@property --orb-breath { syntax: "<number>"; inherits: true; initial-value: 0; }
/* Ink orb artwork blends into the home paper; motion stays within a stable hit target. */
.home-lens-ball{position:absolute;z-index:8;top:calc(46% - 116px);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;color:#211d1b;mix-blend-mode:multiply}
.lens-ball-button{position:relative;width:92px;height:92px;margin:0;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}
.lens-ball-button:focus-visible{outline:1px solid rgba(190,55,44,.6);outline-offset:6px}
.lens-ball-orb{position:absolute;inset:0;border:0;border-radius:0;background:none;box-shadow:none;mix-blend-mode:multiply;pointer-events:none}
.lens-ball-orb::before{content:"";position:absolute;inset:0;background:url("assets/lens-orb-ink-v1.png") center/contain no-repeat;opacity:.86;transform-origin:50% 50%}
.lens-ball-panel{position:absolute;top:98px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:8px;width:min(320px,86vw);padding:8px 0;background:none;border:0;box-shadow:none;animation:lens-ball-in .22s ease}
.lens-ball-panel[hidden]{display:none}
.lens-ball-option{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:5px 0;border:0;background:none;color:#211d1b;font-family:var(--serif);opacity:.34;cursor:pointer;transition:opacity .35s ease,transform .35s ease}
.lens-ball-option:hover{opacity:.65}
.lens-ball-option:focus-visible{outline:1px solid #98483e;outline-offset:3px}
.lens-ball-option strong{font-size:17px;line-height:1.5;font-weight:400;letter-spacing:.1em;text-indent:.1em;white-space:nowrap}
.lens-ball-option.is-chosen{opacity:1;transform:scale(1.06)}
.dream-home.is-lens-open .home-tone-picker{visibility:hidden;opacity:0;pointer-events:none}
html:lang(en) .lens-ball-option strong{font-size:13px;letter-spacing:0;text-indent:0}
@keyframes lens-float{0%,100%{--orb-breath:0;transform:translateY(0) scale(1)}50%{--orb-breath:1;transform:translateY(-2px) scale(1.02)}}
@keyframes lens-ball-in{from{opacity:0;transform:translateX(-50%) translateY(-5px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@media(min-height:780px){.home-lens-ball{top:calc(49.5% - 116px)}}
.lens-ball-orb{animation:lens-float var(--home-breath-duration,3s) ease-in-out infinite}
.dream-home.is-light .lens-ball-orb::before{background-image:url("assets/lens-orb-light-v2.png")}
@media(prefers-reduced-motion:reduce){.lens-ball-orb,.lens-ball-orb::before,.lens-ball-panel{animation:none}.lens-ball-option{transition:none}}.lens-ball-button:hover::before,.lens-ball-button:focus-visible::before,.is-open .lens-ball-button::before{border-top-color:rgba(185,51,41,.7);border-right-color:rgba(185,51,41,.7)}
@media(prefers-reduced-motion:reduce){.lens-ball-button::before{animation:none;opacity:.5}}/* Glow follows the ink silhouette; the light orb illuminates its central star. */
.dream-home.is-light .lens-ball-orb::after{content:"";position:absolute;left:33%;top:25%;width:34%;height:43%;background:#d34d40;clip-path:polygon(50% 0,54% 40%,70% 28%,59% 45%,100% 50%,59% 54%,72% 73%,54% 61%,50% 100%,46% 61%,28% 73%,41% 54%,0 50%,41% 45%,29% 28%,46% 40%);animation:lens-star-breathe var(--home-breath-duration,3s) ease-in-out infinite;pointer-events:none}
@media(prefers-reduced-motion:reduce){.dream-home.is-dark .lens-ball-orb::before,.dream-home.is-light .lens-ball-orb::after{animation:none}.dream-home.is-light .lens-ball-orb::after{opacity:.4}}.lens-edge-cue{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#e66e5b;stroke-width:2.1;stroke-linecap:round;pointer-events:none;animation:lens-cue-breathe var(--home-breath-duration,3s) ease-in-out infinite}
.dream-home.is-light .lens-edge-cue{display:none}
@media(prefers-reduced-motion:reduce){.lens-edge-cue{animation:none;opacity:.5}}/* Both themes share one motion envelope; overlay geometry scales with the artwork. */
@keyframes lens-cue-breathe{0%,100%{opacity:.14;filter:blur(1.2px)}50%{opacity:.68;filter:blur(1.2px) drop-shadow(0 0 1.5px rgba(224,80,62,.45))}}
@keyframes lens-star-breathe{0%,100%{opacity:.2;filter:drop-shadow(0 0 1px #d54c3e)}50%{opacity:.85;filter:drop-shadow(0 0 3px #e36150)}}
.dream-home.is-light .lens-ball-orb::after,.lens-edge-cue{animation-delay:0s}
@media(prefers-reduced-motion:reduce){.dream-home .lens-ball-orb,.dream-home .lens-ball-orb::after,.lens-edge-cue{animation:none}.dream-home.is-light .lens-ball-orb::after,.lens-edge-cue{opacity:.45}}/* Pixel-derived edge image shares the exact bounds and motion of the original. */
.dream-home.is-dark .lens-ball-orb::after{content:"";position:absolute;inset:0;background:url("assets/lens-orb-dark-halo-v1.png") center/contain no-repeat;pointer-events:none;opacity:calc(.1 + var(--orb-breath) * .9);filter:drop-shadow(0 0 2px rgba(235,89,69,.8))}
@keyframes dark-orb-edge-breathe{0%,100%{opacity:.1;filter:drop-shadow(0 0 1px rgba(235,89,69,.25))}50%{opacity:1;filter:drop-shadow(0 0 2px rgba(235,89,69,.8))}}
@media(prefers-reduced-motion:reduce){.dream-home.is-dark .lens-ball-orb::after{animation:none;opacity:.45;filter:blur(.45px)}}