:root{--ogma-motion-instant:90ms;--ogma-motion-fast:.16s;--ogma-motion-base:.24s;--ogma-motion-slow:.36s;--ogma-ease-out:cubic-bezier(.22, 1, .36, 1);--ogma-ease-in-out:cubic-bezier(.65, 0, .35, 1);--ogma-ease-emphasis:cubic-bezier(.34, 1.56, .64, 1);--ogma-stagger-step:28ms;--ogma-motion-loop-fast:.7s;--ogma-motion-loop:1.4s;--ogma-motion-loop-slow:1.8s}@media (prefers-reduced-motion:reduce){:root{--ogma-motion-instant:0s;--ogma-motion-fast:0s;--ogma-motion-base:0s;--ogma-motion-slow:0s;--ogma-stagger-step:0s;--ogma-ease-emphasis:cubic-bezier(.22, 1, .36, 1)}}.ogma-press{transition:transform var(--ogma-motion-instant) var(--ogma-ease-out)}.ogma-press:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.ogma-press:active{transform:none}}@keyframes ogma-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes ogma-pulse{0%,to{opacity:1;transform:none}50%{opacity:var(--ogma-pulse-dim,.45);transform:var(--ogma-pulse-transform,none)}}@keyframes ogma-spin{to{transform:rotate(360deg)}}@keyframes ogma-enter{0%{opacity:0;transform:var(--ogma-enter-from,none)}to{opacity:1;transform:none}}@keyframes ogma-exit{0%{opacity:1;transform:none}to{opacity:0;transform:var(--ogma-exit-to,none)}}@keyframes ogma-flash{0%{background:color-mix(in srgb, var(--ogma-flash-color,var(--ogma-color-accent-teal)) 26%, transparent);box-shadow:inset 3px 0 0 var(--ogma-flash-color,var(--ogma-color-accent-teal))}to{background:0 0;box-shadow:inset 3px 0 #0000}}.ogma-skeleton{background:linear-gradient(90deg, var(--ogma-color-surface-raised,var(--color-surface-raised,#23262b)) 25%, var(--ogma-color-border-subtle,var(--color-border-subtle,#3a3d43)) 50%, var(--ogma-color-surface-raised,var(--color-surface-raised,#23262b)) 75%);animation:ogma-shimmer var(--ogma-motion-loop) var(--ogma-ease-in-out) infinite;border-radius:var(--radius-control,6px);background-size:200% 100%}@media (prefers-reduced-motion:reduce){.ogma-skeleton{background:var(--ogma-color-surface-raised,var(--color-surface-raised,#23262b));animation:none}}
.pwa-install-banner{left:50%;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));z-index:55;border-radius:var(--radius-control);border:1px solid var(--color-border-subtle);background:var(--color-surface-raised);width:min(26rem,100vw - 1.5rem);color:var(--color-fg);box-shadow:var(--ogma-shadow-panel);align-items:center;gap:.625rem;padding:.75rem .875rem;display:flex;position:fixed;transform:translate(-50%)}.pwa-install-banner__icon{width:1.25rem;height:1.25rem;color:var(--color-accent);flex-shrink:0}.pwa-install-banner__copy{flex-direction:column;flex:auto;gap:.125rem;min-width:0;font-size:.8125rem;line-height:1.3;display:flex}.pwa-install-banner__copy strong{color:var(--color-fg);font-weight:600}.pwa-install-banner__copy span{color:var(--color-fg-muted)}.pwa-install-banner__action{border-radius:var(--radius-control);background:var(--color-accent);min-width:2.75rem;height:2.25rem;color:var(--color-bg);cursor:pointer;border:none;flex-shrink:0;padding:0 .875rem;font-size:.8125rem;font-weight:600}.pwa-install-banner__action:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.pwa-install-banner__dismiss{border-radius:var(--radius-control);width:2.25rem;height:2.25rem;color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;display:grid}.pwa-install-banner__dismiss:hover{background:var(--color-row-hover);color:var(--color-fg)}.pwa-install-banner__dismiss:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (max-width:640px){.pwa-install-banner{bottom:calc(.5rem + env(safe-area-inset-bottom,0px));width:calc(100vw - 1rem)}}
