/* Shelfy polish: original colours, typefaces, assets and corner language preserved. */
:root{--motion-fast:140ms;--motion-panel:220ms;--motion-ease:cubic-bezier(.23,1,.32,1)}
html{scrollbar-gutter:stable}html[data-input=keyboard]{scroll-behavior:auto}::selection{background:var(--acid);color:var(--ink)}input{caret-color:var(--blue)}input::placeholder{color:var(--muted);opacity:1}.form-row input,.app-search input{font-size:16px}.form-row input{transition:border-color var(--motion-fast) ease}.form-row input:focus{border-color:var(--blue)}
.btn{transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease)}.btn:hover{transform:none}.btn:active{transform:translateY(1px) scale(.98);box-shadow:none}.btn:disabled{opacity:.65;transform:none}.btn .icon,.text-link .icon{transition:transform var(--motion-fast) var(--motion-ease)}
@media(hover:hover) and (pointer:fine){.btn:not(:disabled):hover{transform:translateY(-1px)}.btn:not(:disabled):active{transform:translateY(1px) scale(.98)}.text-link:hover .icon,.btn:hover .icon{transform:translateX(3px)}.nav-links a:hover{text-decoration:underline;text-underline-offset:6px}}
.nav{transition:none}header{transition:box-shadow 180ms ease}.scrolled header{box-shadow:0 6px 18px #18181808}h1,h2,h3{text-wrap:balance}.feature-row>*,.reminders>*,.faq>*{min-width:0}.phone{max-width:100%}.app-search{min-width:0}.app-search input{min-width:0}.item-results{min-height:0}.price strong{font-variant-numeric:tabular-nums}.currency{position:relative;isolation:isolate}.currency::before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/2);border-radius:11px;background:var(--ink);z-index:-1;transform:translateX(0);transition:transform 200ms var(--motion-ease)}.currency:has([data-currency=CA][aria-pressed=true])::before{transform:translateX(100%)}.currency button{flex:1}.currency button[aria-pressed=true]{background:transparent}.currency button{transition:color 140ms ease}
.faq summary .icon{transition:transform 180ms var(--motion-ease)}.faq details p{font-size:16px;line-height:1.7}.faq summary{min-height:64px}.place-scroll{overscroll-behavior-x:contain;scroll-snap-type:x proximity}.place-scroll:focus-visible{outline-offset:-4px}.waitlist .status{line-height:1.6}.text-btn:active,.currency button:active,.modal-close:active{transform:scale(.98)}
dialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}dialog::backdrop{transition:opacity 160ms ease}
@media(max-width:700px){.hero .lead,.card p,.steps p,.reminders p,.coming-grid p{font-size:16px;line-height:1.7}.phone-stage{min-width:0}.phone{width:min(280px,100%);transform:none}.phone-stage{min-height:630px}.phone-body{padding:12px 14px}.location-pill{left:12px;max-width:calc(100% - 24px);font-size:11px}.feature-copy h2{font-size:clamp(34px,10vw,42px)}.nav .btn{white-space:normal}.price strong{font-size:clamp(38px,12vw,52px)}.footer-bottom{font-size:12px}.footer-bottom .text-btn{font-size:12px}.nudge-actions .btn,.nudge .text-btn{font-size:14px}.nudge-actions{gap:10px}.place-scroll figure{flex-basis:min(290px,calc(100vw - 48px))}.place-scroll img{width:100%}.strip{font-size:11px}}
@media(max-width:360px){.hero h1{font-size:44px}.phone-stage{padding-left:12px;padding-right:12px}.phone{width:100%}.phone-stage .stage-note{font-size:9px}.nudge,.price-card{padding:22px}.card{padding:22px}.faq h2{font-size:38px}.strip{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.btn:hover,.btn:active,.text-btn:active,.currency button:active,.modal-close:active{transform:none!important}}
html[data-input=keyboard] *,html[data-input=keyboard] *::before{transition:none!important}
