/* ==========================================================================
   One Pan Pantry — "future" recipe page layer
   Immersive hero stage, glass UI, bento, swipeable step cards, ambient
   gradient field, grain, scroll-driven image zoom. Loaded after recipe.css.
   ========================================================================== */

.opr { --glass: rgba(255, 255, 255, .12); --glass-line: rgba(255, 255, 255, .28); --glass-light: rgba(255, 255, 255, .62); }

/* ---------- Ambient field + grain ---------- */
.opr-ambient { position: fixed; inset: 0; z-index: -2; pointer-events: none; overflow: hidden; }
.opr-ambient span { position: absolute; width: 46vmax; height: 46vmax; border-radius: 50%; filter: blur(70px); opacity: .5; will-change: transform; }
.opr-ambient span:nth-child(1) { background: #FBD9B0; left: -14vmax; top: 30vh; animation: opr-amb1 26s ease-in-out infinite alternate; }
.opr-ambient span:nth-child(2) { background: #F6C7AE; right: -16vmax; top: 80vh; animation: opr-amb2 32s ease-in-out infinite alternate; }
.opr-ambient span:nth-child(3) { background: #DCE8CF; left: 30vw; top: 140vh; opacity: .35; animation: opr-amb1 38s ease-in-out infinite alternate-reverse; }
@keyframes opr-amb1 { to { transform: translate3d(12vw, -18vh, 0) scale(1.15); } }
@keyframes opr-amb2 { to { transform: translate3d(-14vw, -10vh, 0) scale(.9); } }
.opp-recipe-page::after {
	content: ""; position: fixed; inset: 0; z-index: 2000; pointer-events: none; opacity: .05; mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Immersive hero stage ---------- */
.opr .opr-hero { padding: 0 0 clamp(20px, 3vw, 36px); overflow: visible; --hp: 0; }
.opr .opr-hero::before { display: none; }
.opr-stage {
	position: relative; min-height: min(92vh, 860px); display: flex; align-items: flex-end; overflow: hidden; isolation: isolate;
	margin: 0 clamp(8px, 1.4vw, 20px); border-radius: 0 0 clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px); background: var(--opp-cocoa-deep);
}
.opr-stage__bg { position: absolute; inset: 0; z-index: -3; transform: scale(calc(1.14 - var(--hp) * .1)) translate3d(0, calc(var(--hp) * 6%), 0); transform-origin: 50% 40%; will-change: transform; }
.opr-stage__img, .opr-stage__bg .opp-media__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.opr-stage__shade {
	position: absolute; inset: 0; z-index: -2;
	background:
		linear-gradient(180deg, rgba(43, 29, 22, .55) 0%, rgba(43, 29, 22, 0) 22%, rgba(43, 29, 22, 0) 38%, rgba(43, 29, 22, .78) 78%, rgba(30, 20, 15, .94) 100%),
		radial-gradient(120% 80% at 0% 100%, rgba(194, 65, 12, .38), transparent 55%);
}
.opr-stage__grid {
	position: absolute; inset: 0; z-index: -1; opacity: .16; pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, .5) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .5) 1px, transparent 1px);
	background-size: 72px 72px;
	-webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 60%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 60%, transparent 100%);
}
.opr-stage__content {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 18px;
	padding-top: clamp(110px, 16vh, 180px); padding-bottom: clamp(36px, 5vw, 64px);
	transform: translate3d(0, calc(var(--hp) * -70px), 0); opacity: calc(1 - var(--hp) * .9);
}
.opr-stage .opp-crumbs, .opr-stage .opp-crumbs a { color: rgba(255, 244, 234, .78); }
.opr-stage .opp-crumbs a:hover { color: #fff; }
.opr .opr-stage .opr-title { color: #FFF8EF; font-size: clamp(42px, 7vw, 104px); line-height: .96; letter-spacing: -.045em; max-width: 14ch; text-shadow: 0 10px 40px rgba(0, 0, 0, .25); }
.opr .opr-stage .opr-lead { color: rgba(255, 244, 234, .86); max-width: 600px; font-size: clamp(17px, 1.5vw, 20px); }

.opr-glass-chip, .opr-glass-btn {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px;
	background: var(--glass); color: #FFF4EA; font: 600 13.5px/1 var(--opp-sans); letter-spacing: .02em;
	box-shadow: inset 0 0 0 1px var(--glass-line); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
	transition: background-color .3s, transform .4s var(--opr-ease), box-shadow .3s;
}
.opr-glass-chip .opp-ico, .opr-glass-btn .opp-ico { width: 16px; height: 16px; }
a.opr-glass-chip:hover, .opr-glass-btn:hover { background: rgba(255, 255, 255, .22); color: #fff; transform: translateY(-2px); }
.opr-glass-btn { padding: 15px 20px; font-size: 15px; border: 0; cursor: pointer; }
.opr-glass-btn.opp-btn--wprm a { color: #FFF4EA !important; }
.opr-pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--opp-saffron); box-shadow: 0 0 0 0 rgba(233, 162, 59, .7); animation: opr-pulse 2s infinite; }
@keyframes opr-pulse { 70% { box-shadow: 0 0 0 10px rgba(233, 162, 59, 0); } 100% { box-shadow: 0 0 0 0 rgba(233, 162, 59, 0); } }

.opr-hero__row { width: 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: 8px; }
.opr .opr-stage .opr-byline { background: var(--glass); box-shadow: inset 0 0 0 1px var(--glass-line); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.opr .opr-stage .opr-byline__txt, .opr .opr-stage .opr-byline__txt a { color: rgba(255, 244, 234, .8); }
.opr .opr-stage .opr-byline__txt b { color: #fff; }
.opr .opr-stage .opr-stars { border-left-color: var(--glass-line); }
.opr .opr-stage .opr-stars small { color: #fff; }
.opr .opr-stage .opr-stars i { color: rgba(255, 255, 255, .3); }
.opr .opr-stage .opr-stars i.is-on { color: var(--opp-saffron); }
.opr .opr-stage .opp-brandavatar { background: rgba(255, 255, 255, .9); box-shadow: none; }
.opr-btn-glow { box-shadow: 0 0 0 0 rgba(194, 65, 12, .6), 0 18px 40px -14px rgba(194, 65, 12, .9); animation: opr-glow 2.8s ease-in-out infinite; }
@keyframes opr-glow { 50% { box-shadow: 0 0 0 8px rgba(194, 65, 12, 0), 0 18px 40px -14px rgba(194, 65, 12, .9); } }

.opr .opr-stage .opr-spin { right: clamp(18px, 4vw, 64px); top: clamp(18px, 3vw, 36px); width: clamp(96px, 10vw, 140px); height: auto; aspect-ratio: 1; }

.opr-scrollcue { position: absolute; right: clamp(18px, 3vw, 44px); top: 50%; bottom: auto; transform: translateY(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; color: rgba(255, 244, 234, .8); font: 600 11px/1 var(--opp-sans); letter-spacing: .25em; text-transform: uppercase; writing-mode: vertical-rl; }
.opr-scrollcue span { width: 2px; height: 56px; border-radius: 2px; background: rgba(255, 255, 255, .25); position: relative; overflow: hidden; }
.opr-scrollcue span::after { content: ""; position: absolute; left: 0; top: -40%; width: 100%; height: 40%; background: var(--opp-saffron); animation: opr-cue 1.8s cubic-bezier(.65, 0, .35, 1) infinite; }
.opr-scrollcue:hover { color: #fff; }
@keyframes opr-cue { from { transform: translateY(0); } to { transform: translateY(350%); } }

/* No featured image: light art stage */
.opr-hero--art .opr-stage { background: var(--opp-saffron-soft); }
.opr-hero--art .opr-stage__bg { left: 45%; }
.opr-hero--art .opr-stage__bg .opp-media__art { position: absolute; inset: 0; background: transparent; }
.opr-hero--art .opr-stage__shade, .opr-hero--art .opr-stage__grid { display: none; }
.opr-hero--art .opr-stage .opr-title { color: var(--opp-ink); text-shadow: none; }
.opr-hero--art .opr-stage .opr-lead, .opr-hero--art .opp-crumbs, .opr-hero--art .opp-crumbs a, .opr-hero--art .opr-scrollcue { color: var(--opp-muted); }
.opr-hero--art .opr-glass-chip, .opr-hero--art .opr-glass-btn, .opr-hero--art .opr-stage .opr-byline { background: rgba(255, 255, 255, .6); color: var(--opp-ink); box-shadow: inset 0 0 0 1px var(--opp-line); }
.opr-hero--art .opr-stage .opr-byline__txt b { color: var(--opp-ink); }
.opr-hero--art .opr-stage .opr-byline__txt, .opr-hero--art .opr-stage .opr-byline__txt a { color: var(--opp-muted); }

/* Facts: glass panel overlapping the stage */
.opr .opr-facts-wrap { position: relative; z-index: 3; margin-top: calc(-1 * clamp(34px, 4vw, 48px)); }
.opr .opr-facts {
	margin-top: 0; background: rgba(255, 255, 255, .72); -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 30px 60px -30px rgba(43, 29, 22, .45);
}
.opr .opr-fact dd { font-size: 22px; }

/* ---------- Glass sidebar ---------- */
.opr .opr-toc, .opr .opr-mini-news { -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.opr .opr-toc { background: rgba(255, 255, 255, .62); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .8), 0 20px 40px -26px rgba(43, 29, 22, .4); }
.opr .opr-recipe-cta { background: linear-gradient(135deg, var(--opp-terra), #D9541F 55%, var(--opp-saffron)); background-size: 180% 180%; animation: opr-grad 8s ease-in-out infinite alternate; }
@keyframes opr-grad { to { background-position: 100% 100%; } }

/* ---------- Bento: "Why you'll love it" ---------- */
.opr-content > ul.opr-bento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; counter-reset: bento; }
.opr-content > ul.opr-bento > li {
	counter-increment: bento; padding: 26px 24px 24px; min-height: 150px; border-radius: var(--opp-r-lg);
	background: rgba(255, 255, 255, .7); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .9), 0 16px 34px -24px rgba(43, 29, 22, .45);
	display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; position: relative; isolation: isolate;
}
.opr-content > ul.opr-bento > li::after { display: none; }
.opr-content > ul.opr-bento > li::before {
	content: counter(bento, decimal-leading-zero); position: absolute; left: auto; right: 18px; top: 10px; width: auto; height: auto; border-radius: 0; background: none;
	font-family: var(--opp-serif); font-size: 64px; line-height: 1; font-style: italic; color: rgba(194, 65, 12, .14); z-index: -1;
}
.opr-content > ul.opr-bento > li:first-child { grid-row: span 2; background: linear-gradient(160deg, #3E2A20, #5C3D2E); color: #F5EADC; }
.opr-content > ul.opr-bento > li:first-child strong { color: #fff; font-size: 24px; font-family: var(--opp-serif); font-weight: 500; display: block; margin-bottom: 6px; }
.opr-content > ul.opr-bento > li:first-child::before { color: rgba(233, 162, 59, .35); font-size: 96px; }
.opr-content > ul.opr-bento > li strong { display: block; margin-bottom: 4px; font-size: 17px; }
.opr-content > ul.opr-bento > li:hover { transform: translateY(-4px); }

/* ---------- Step cards (swipe) ---------- */
.opr-steps { position: relative; margin: 1.6em 0 2.2em; }
.opr-steps__track { display: grid; grid-auto-flow: column; grid-auto-columns: min(86%, 520px); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 2px; padding: 6px 2px 18px; scrollbar-width: none; overscroll-behavior-x: contain; }
.opr-steps__track::-webkit-scrollbar { display: none; }
.opr-stepcard { scroll-snap-align: start; display: flex; flex-direction: column; border-radius: var(--opp-r-xl); background: var(--opp-card); box-shadow: inset 0 0 0 1px var(--opp-line), 0 22px 44px -28px rgba(43, 29, 22, .5); overflow: hidden; transition: transform .5s var(--opr-ease); }
.opr-stepcard:hover { transform: translateY(-4px); }
.opr-stepcard .wp-block-image { margin: 0 !important; }
.opr-stepcard .wp-block-image img { border-radius: 0 !important; box-shadow: none !important; aspect-ratio: 4 / 3; object-fit: cover; }
.opr-stepcard__body { padding: 20px 22px 24px; }
.opr-stepcard h3.opr-step { margin: 0 0 10px !important; }
.opr-stepcard p { margin: 0 0 .8em; font-size: 16.5px; line-height: 1.65; color: var(--opp-muted); }
.opr-steps__nav { display: flex; align-items: center; gap: 12px; }
.opr-steps__bar { flex: 1; height: 4px; border-radius: 4px; background: var(--opp-line); overflow: hidden; }
.opr-steps__bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--opp-terra), var(--opp-saffron)); transition: width .3s; }
.opr-steps__btn { width: 44px; height: 44px; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--opp-ink); color: var(--opp-cream); cursor: pointer; transition: background-color .25s, transform .3s var(--opr-ease), opacity .3s; }
.opr-steps__btn:hover { background: var(--opp-terra); transform: scale(1.06); }
.opr-steps__btn[disabled] { opacity: .3; cursor: default; transform: none; background: var(--opp-ink); }
.opr-steps__btn .opp-ico { width: 18px; height: 18px; }
.opr-steps__btn--prev .opp-ico { transform: rotate(180deg); }

/* ---------- Scroll-driven image zoom (modern browsers) ---------- */
@supports (animation-timeline: view()) {
	.opr-content > .wp-block-image { overflow: hidden; border-radius: var(--opp-r-lg); }
	.opr-content > .wp-block-image img { animation: opr-zoom linear both; animation-timeline: view(); animation-range: entry 0% cover 60%; }
	@keyframes opr-zoom { from { transform: scale(1.14); } to { transform: scale(1); } }
}

/* ---------- Recipe card glow ---------- */
.opr .wprm-recipe-container .wprm-recipe { box-shadow: 0 0 0 1px rgba(233, 162, 59, .4), 0 40px 80px -40px rgba(194, 65, 12, .55) !important; }

@media (prefers-reduced-motion: reduce) {
	.opr-ambient span, .opr-pulse, .opr-btn-glow, .opr-scrollcue span::after, .opr .opr-recipe-cta { animation: none !important; }
	.opr-stage__bg, .opr-stage__content { transform: none !important; opacity: 1 !important; }
	.opr-content > .wp-block-image img { animation: none !important; }
}

@media (max-width: 1024px) {
	.opr-stage { min-height: min(84vh, 760px); margin: 0; border-radius: 0 0 32px 32px; }
}
@media (max-width: 680px) {
	.opr .opr-stage .opr-title { font-size: clamp(38px, 11.5vw, 54px); letter-spacing: -.03em; }
	.opr-stage__shade { background: linear-gradient(180deg, rgba(43, 29, 22, .5) 0%, rgba(43, 29, 22, .7) 35%, rgba(30, 20, 15, .95) 100%); }
	.opr-stage__content { padding-top: 132px; gap: 14px; }
	.opr .opr-stage .opr-spin { width: 84px; top: 16px; right: 14px; }
	.opr-scrollcue { display: none; }
	.opr-hero__row { gap: 12px; }
	.opr-actions { width: 100%; }
	.opr-actions .opr-btn-glow { flex: 1 1 100%; justify-content: center; }
	.opr-glass-btn { flex: 1; justify-content: center; padding: 13px 10px; }
	.opr-glass-btn span { display: none; }
	.opr-glass-btn.opp-btn--wprm a { font-size: 0 !important; }
	.opr-content > ul.opr-bento { grid-template-columns: 1fr; }
	.opr-content > ul.opr-bento > li:first-child { grid-row: auto; }
	.opr-content > ul.opr-bento > li { min-height: 0; }
	.opr-steps__track { grid-auto-columns: 88%; }
	.opr-hero--art .opr-stage__bg { left: 20%; top: -10%; opacity: .5; }
}

/* ---------- Substitutions table ---------- */
.opr-content .wp-block-table { margin: 1.6em 0 2em; overflow-x: auto; border-radius: 22px; background: rgba(255, 255, 255, .62); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 1px 0 rgba(255,255,255,.7) inset, 0 18px 40px -24px rgba(62, 42, 32, .35); border: 1px solid var(--opp-line); }
.opr-content .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.45; min-width: 520px; }
.opr-content .wp-block-table thead th { text-align: left; padding: 14px 18px; background: linear-gradient(120deg, var(--opp-cocoa-deep, #3E2A20), var(--opp-terra-deep, #9A3412)); color: #FFF4EA; font-weight: 600; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; border: 0; }
.opr-content .wp-block-table td { padding: 13px 18px; border: 0; border-top: 1px solid var(--opp-line); vertical-align: top; }
.opr-content .wp-block-table td:first-child { font-weight: 600; color: var(--opp-ink); }
.opr-content .wp-block-table td:last-child { color: var(--opp-muted); }
.opr-content .wp-block-table tbody tr { transition: background .3s; }
.opr-content .wp-block-table tbody tr:hover { background: rgba(233, 162, 59, .12); }
@media (max-width: 600px) {
	.opr-content .wp-block-table table { min-width: 0; font-size: 14.5px; }
	.opr-content .wp-block-table thead { display: none; }
	.opr-content .wp-block-table tr { display: block; padding: 12px 16px; border-top: 1px solid var(--opp-line); }
	.opr-content .wp-block-table tbody tr:first-child { border-top: 0; }
	.opr-content .wp-block-table td { display: block; padding: 2px 0; border: 0; }
	.opr-content .wp-block-table td:nth-child(2)::before { content: "\2192  "; color: var(--opp-terra); font-weight: 700; }
	.opr-content .wp-block-table td:last-child { font-size: 13.5px; }
}

/* ---------- Pinterest pins grid ---------- */
.opr-content .opp-pins { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 1.4em 0 2.2em; }
.opr-content .opp-pins--1 { grid-template-columns: minmax(0, 360px); justify-content: center; }
.opr-content .opp-pin { position: relative; margin: 0; border-radius: 20px; overflow: hidden; box-shadow: 0 22px 44px -26px rgba(62, 42, 32, .5); transition: transform .5s var(--opr-ease, cubic-bezier(.16,1,.3,1)), box-shadow .5s; }
.opr-content .opp-pin img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; margin: 0; border-radius: 0; }
.opr-content .opp-pin:hover { transform: translateY(-6px) rotate(-.6deg); box-shadow: 0 30px 60px -26px rgba(62, 42, 32, .6); }
.opr-content .opp-pin__save { position: absolute; left: 50%; bottom: 14px; transform: translate(-50%, 8px); opacity: 0; padding: 10px 18px; border-radius: 999px; background: #E60023; color: #fff !important; font-size: 14px; font-weight: 700; white-space: nowrap; text-decoration: none !important; transition: opacity .35s, transform .35s; box-shadow: 0 10px 22px -8px rgba(230, 0, 35, .6); }
.opr-content .opp-pin:hover .opp-pin__save, .opr-content .opp-pin:focus-within .opp-pin__save { opacity: 1; transform: translate(-50%, 0); }
@media (hover: none) { .opr-content .opp-pin__save { opacity: 1; transform: translate(-50%, 0); padding: 8px 14px; font-size: 13px; } }
@media (min-width: 900px) { .opr-content .opp-pins--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .opr-content .opp-pins--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) { .opr-content .opp-pins--4 .opp-pin__save { font-size: 12px; padding: 8px 12px; } }

/* ---------- Recipe card: full width on phones (no boxes inside boxes) ---------- */
@media (max-width: 680px) {
	.opr-content .wprm-recipe-container { margin-left: -12px !important; margin-right: -12px !important; }
	.opr-content .wprm-recipe-container .wprm-recipe { padding: 18px 12px !important; border-radius: 24px !important; max-width: none !important; width: auto !important; }
	.opr-content .wprm-recipe [class*="wprm-layout"],
	.opr-content .wprm-recipe [class*="wprm-padding"],
	.opr-content .wprm-recipe [class*="wprm-container"],
	.opr-content .wprm-recipe .wprm-recipe-block-container,
	.opr-content .wprm-recipe > div {
		padding-left: 6px !important; padding-right: 6px !important; margin-left: 0 !important; margin-right: 0 !important;
		max-width: 100% !important; width: auto !important; box-sizing: border-box !important;
	}
	.opr-content .wprm-recipe .wprm-recipe-ingredients-container,
	.opr-content .wprm-recipe .wprm-recipe-instructions-container,
	.opr-content .wprm-recipe .wprm-recipe-equipment-container,
	.opr-content .wprm-recipe .wprm-nutrition-label-container {
		padding-left: 14px !important; padding-right: 14px !important; margin-left: 0 !important; margin-right: 0 !important; border-radius: 18px !important;
	}
	.opr-content .wprm-recipe .wprm-recipe-notes-container { padding: 18px 16px !important; margin-left: 0 !important; margin-right: 0 !important; }
	.opr-content .wprm-recipe ul, .opr-content .wprm-recipe ol { padding-left: 22px !important; margin-left: 0 !important; }
	.opr-content .wprm-recipe .wprm-recipe-ingredients { padding-left: 0 !important; }
	.opr-content .wprm-recipe .wprm-recipe-instruction { margin-bottom: 12px !important; line-height: 1.6 !important; }
	.opr-content .wprm-recipe, .opr-content .wprm-recipe p, .opr-content .wprm-recipe li { font-size: 16px; }
	.opr-content .wprm-recipe .wprm-recipe-ingredient { padding: 10px 0 !important; }
}

/* Speed: GPU-only animations (transform / opacity) */
.opr-pulse { position: relative; animation: none; box-shadow: none; }
.opr-pulse::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--opp-saffron); animation: opr-ping 2s ease-out infinite; }
@keyframes opr-ping { 0% { transform: scale(1); opacity: .7; } 80%, 100% { transform: scale(2.6); opacity: 0; } }
.opr-btn-glow { position: relative; animation: none; isolation: isolate; }
.opr-btn-glow::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; box-shadow: 0 0 0 6px rgba(194, 65, 12, .35); animation: opr-ring 2.8s ease-out infinite; pointer-events: none; }
@keyframes opr-ring { 0% { transform: scale(1); opacity: .9; } 70%, 100% { transform: scale(1.12, 1.35); opacity: 0; } }
.opr .opr-recipe-cta { animation: none; background-size: 100% 100%; }
@media (prefers-reduced-motion: reduce) { .opr-pulse::after, .opr-btn-glow::after { animation: none; } }
