:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-fast:150ms;--dur-base:280ms;--dur-slow:550ms}
@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:200ms}
svg.ui-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.12em;stroke:currentColor;fill:none;stroke-width:1.25;flex:none;transition:translate var(--dur-fast) var(--ease-out)}.ui-arrow.west{rotate:180deg}
@media(hover:hover){:is(a,button,label):hover .ui-arrow.east{translate:3px 0}:is(a,button):hover .ui-arrow.ne{translate:3px -3px}a:hover .ui-arrow.west{translate:-3px 0}}
@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
body>header,body>.sidebar{animation:arrive var(--dur-slow) var(--ease-out) backwards}body>main{animation:arrive var(--dur-slow) 50ms var(--ease-out) backwards}
button{transition:scale 120ms var(--ease-out),outline-color var(--dur-fast)}button:active:not(:disabled){scale:.98}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
:is(.main-nav,.side-nav,.mobile-nav) :is(a,button){position:relative;transition:opacity var(--dur-fast)}:is(.main-nav,.side-nav,.mobile-nav) :is(a,button)::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease-out)}:is(.main-nav,.side-nav,.mobile-nav) :is(:hover,:focus-visible,.active,.is-active)::after{transform:scaleX(1)}nav a:hover{opacity:.82}
.show-card .show-card-visual img{transition:transform 400ms var(--ease-out)}.show-card:hover .show-card-visual img{transform:scale(1.03)}.show-card-copy{transition:translate var(--dur-base) var(--ease-out)}.show-card:hover .show-card-copy{translate:0 -2px}
.promotion-row>section{transition:translate var(--dur-fast)}.promotion-row>section:hover{translate:0 -1px}#footer-clock,.nav-count,#selectedCount{font-variant-numeric:tabular-nums}#footer-clock{min-width:9ch}
.season-filter,.side-nav,.mobile-nav{position:relative}.motion-line{position:absolute;left:0;top:0;height:1px;background:currentColor;width:1px;pointer-events:none;transform-origin:left;transition:transform var(--dur-base) var(--ease-in-out)}
@keyframes sheet{from{opacity:0;transform:translateY(12px)}}@keyframes fade{from{opacity:0}to{opacity:1}}dialog[open],dialog[open]::backdrop{animation:fade 200ms var(--ease-out)}@media(max-width:760px){dialog[open]{animation:sheet 300ms var(--ease-out)}}
@keyframes check{from{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}.picker-card.selected .check-badge svg{animation:check var(--dur-base) var(--ease-out)}.bg-tools[open]>:not(summary){animation:sheet 250ms var(--ease-out)}
#toast:not([hidden]){animation:toast-in var(--dur-base) var(--ease-out)}@keyframes toast-in{from{opacity:0;translate:0 8px}}#toast button{color:inherit;margin-left:12px;text-decoration:underline}
.image-pending{background:linear-gradient(100deg,#eee,#fafafa,#eee)}.fit-dialog .board-cell img{animation:check var(--dur-base) var(--ease-out)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;translate:none!important;scale:none!important;scroll-behavior:auto!important}.show-card:hover .show-card-visual img{transform:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
@media(prefers-reduced-motion:no-preference){.image-pending{position:relative;overflow:hidden}.image-pending::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#fff7 50%,transparent 75%);animation:skim var(--dur-slow) var(--ease-out) both}@keyframes skim{from{transform:translateX(-100%)}to{transform:translateX(100%);opacity:0}}.check-badge path{stroke-dasharray:24;stroke-dashoffset:0;animation:ink var(--dur-base) var(--ease-out)}@keyframes ink{from{stroke-dashoffset:24}}}
#photoPreview:not([hidden]),#beforeCleanup[open] img{animation:fade var(--dur-base) var(--ease-out)}
@media(max-width:760px){dialog:not(.confirm-dialog){inset:auto 0 0;max-height:94dvh;height:auto}dialog:not(.confirm-dialog) .dialog-inner{height:auto;max-height:94dvh}}

