/*
 * Rhymix base element resets can outrank Tailwind v4 display utilities
 * because v4 emits many utilities with zero specificity. Re-assert the
 * display utility only inside OZ panel and OZ-rendered content.
 *
 * This file also keeps the small set of panel keyframes that remain CSS-only.
 */
:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="block"] {
    display: block;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="inline"] {
    display: inline;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="inline-block"] {
    display: inline-block;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="flex"] {
    display: flex;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="inline-flex"] {
    display: inline-flex;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="grid"] {
    display: grid;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="inline-grid"] {
    display: inline-grid;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="flow-root"] {
    display: flow-root;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="contents"] {
    display: contents;
}

:is([data-cameron-oz-panel], [data-cameron-oz-rendered], .cameron-oz-rendered) :is(article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, main)[class~="hidden"] {
    display: none;
}

@keyframes oz-rainbow-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes oz-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

@keyframes oz-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

@keyframes oz-fade-in-up {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
