/*
Theme Name: Paprika Factory
Description: Illustrated, reference-led WooCommerce storefront for Paprika Factory.
Version: 0.9.2
Text Domain: paprika-theme
*/

:root {
	color-scheme: light;
	--pf-color-ink: #513b32;
	--pf-color-muted: #735d4d;
	--pf-color-pink: #c64658;
	--pf-color-pink-dark: #ad3544;
	--pf-color-pink-strong: #a7344b;
	--pf-color-pink-light: #ffe5dc;
	--pf-color-ink-on-pink: #fff;
	--pf-color-mint: #a5c86f;
	--pf-color-mint-dark: #82ae59;
	--pf-color-mint-strong: #355b34;
	--pf-color-mint-light: #edf6df;
	--pf-color-border-soft: #e8ceb1;
	--pf-color-error: #a83344;
	--pf-color-error-field: #fff5f3;
	--pf-color-error-surface: #ffe5e1;
	--pf-color-row-alt: #fff8ec;
	--pf-color-surface: #fffdfa;
	--pf-color-focus: #244f39;
	--pf-font-body: "Chiron GoRound TC", "Noto Sans CJK TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
	--pf-shadow-card: 0 .2rem .5rem #70432520;
	--pf-shadow-control: 0 .2rem 0 #aa543b44;
	--pf-focus-ring: 3px solid var(--pf-color-focus);
	/* Paprika action controls share sizes without changing native Woo form fields. */
	--pf-control-target: 44px;
	--pf-control-filter-surface: 36px;
	--pf-control-creator-surface: 40px;
	--pf-control-action-surface: 36px;
	--pf-control-primary-surface: 40px;
	--pf-control-font: 14px;
	--pf-control-focus: #a7344b;
	--pf-control-focus-ring: 3px solid var(--pf-control-focus);
	--pf-motion-fast: .16s ease-out;
	--pf-radius-sm: .75rem;
	--pf-radius-md: 1rem;
	--pf-admin-offset: 0px;
	--pf-bubble-size: 4.375rem;
}
body.admin-bar { --pf-admin-offset: 32px; }
@media (max-width: 782px) { body.admin-bar { --pf-admin-offset: 46px; } }
@media (max-width: 700px) { :root { --pf-control-filter-surface: 32px; --pf-control-creator-surface: 36px; } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { min-width: 320px; margin: 0; background: #e9c997; color: var(--pf-color-ink); font: 500 1rem/1.55 var(--pf-font-body); }
[hidden] { display: none !important; }
img, svg, video { max-width: 100%; height: auto; }
figure { margin-inline: 0; }
a { color: var(--pf-color-pink-strong); text-underline-offset: .18em; }
a:hover { color: #8a3a32; }
button, input, select, textarea { font: inherit; }
button, .wp-element-button, .wp-block-button__link, input[type="submit"] { cursor: pointer; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: var(--pf-focus-ring); outline-offset: 3px; }
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]), select, textarea) { max-width: 100%; border: 1px solid #d9b996; border-radius: .75rem; background: #fffdfa; color: var(--pf-color-ink); padding: .65rem .8rem; }
button:disabled, input:disabled { cursor: not-allowed; opacity: .65; }
h1, h2, h3, h4 { line-height: 1.3; overflow-wrap: anywhere; }
.pf-icon-library { position: absolute; width: 0; height: 0; overflow: hidden; }
.pf-icon { width: 1.5rem; height: 1.5rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.pf-skip-link { position: fixed; z-index: 200; top: -6rem; left: 1rem; border: 2px solid #be6f4a; border-radius: 1rem; background: #fffaf0; padding: .65rem 1rem; }
.pf-skip-link:focus { top: calc(var(--pf-admin-offset) + .5rem); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.screen-reader-text:focus { position: static; width: auto; height: auto; clip: auto; }
.pf-scene-background { position: fixed; z-index: 0; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 20% 14%, #fff0bf 0, transparent 34%), radial-gradient(ellipse at 85% 18%, #fff8d8 0, transparent 38%), linear-gradient(100deg, #ad754d, #efd1a2 34%, #f7e2be 68%, #c49163); }
.pf-scene-background--image { background-position: center; background-size: cover; }
.pf-scene-background--image::before { opacity: .12; }
.pf-scene-background::before { content: ""; position: absolute; inset: 0; opacity: .48; background: linear-gradient(90deg, #7045276b 0 .55rem, transparent .55rem 14%, #86563252 14% 14.8%, transparent 14.8% 70%, #97633e42 70% 70.8%, transparent 70.8%), repeating-linear-gradient(0deg, transparent 0 9rem, #aa784321 9rem 9.25rem); }
.pf-scene-background::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 10vw #6a3d2040; background: radial-gradient(ellipse at 11% 75%, #5d893638, transparent 18%), radial-gradient(ellipse at 93% 78%, #6d9b4440, transparent 20%); }
.pf-site { position: relative; z-index: 1; display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }

/* An external game HUD keeps the approved storefront frame clear. */
.pf-site-header { position: absolute; z-index: 80; display: flex; justify-content: space-between; align-items: flex-start; width: 100%; padding: 1.5rem max(1rem, 2vw) 0; pointer-events: none; }
.pf-site-header :where(a, button, nav) { pointer-events: auto; }
.pf-site-header__brand { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: clamp(.5rem, 1vw, 1rem); min-width: 0; max-width: min(29vw, 27rem); }
.pf-site-header .custom-logo-link { display: block; width: clamp(7.25rem, 13vw, 11rem); filter: drop-shadow(0 .25rem 0 #fff0ce) drop-shadow(0 .45rem .55rem #70432545); }
.pf-site-header .custom-logo { display: block; width: 100%; height: auto; }
.pf-site-title { display: inline-block; max-width: 100%; border: .25rem solid #fff3d0; border-radius: 1.5rem; background: linear-gradient(165deg, #f5747b, #cc4558); box-shadow: 0 .3rem 0 #ad55424d, 0 .5rem 1rem #73402952; color: #fff; font-size: clamp(1.1rem, 1.55vw, 1.65rem); font-weight: 900; line-height: 1.1; padding: .55rem .75rem; text-align: center; text-decoration: none; text-shadow: 0 .12rem 0 #a53645; transform: rotate(-5deg); overflow-wrap: anywhere; }
.pf-site-title:hover { color: #fff; }
.pf-site-header__tagline { max-width: 12rem; margin: .6rem 0 0; color: #8e432d; font-size: clamp(.8rem, 1.2vw, 1.25rem); font-weight: 800; line-height: 1.45; text-shadow: 0 1px #fff9de, 0 0 .8rem #fff1cb; transform: rotate(-5deg); }
.pf-site-header__navigation { position: fixed; top: calc(var(--pf-admin-offset) + 1.25rem); right: max(1rem, env(safe-area-inset-right)); z-index: 100; display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }
.pf-hud-action { position: relative; display: grid; place-items: center; width: var(--pf-bubble-size); height: var(--pf-bubble-size); padding: 0; border: .25rem solid #fff9e8; border-radius: 50%; background: linear-gradient(160deg, #ff7b80, #ed5f69 66%); box-shadow: 0 .25rem 0 #ae533d66, 0 .4rem .9rem #72422140; color: #fff; text-decoration: none; transition: transform .16s ease-out, box-shadow .16s ease-out; }
.pf-hud-action:hover { color: #fffdf5; transform: translateY(-3px) rotate(-3deg); box-shadow: 0 .45rem 0 #ae533d44, 0 .6rem 1rem #72422140; }
.pf-hud-action .pf-icon { width: 2rem; height: 2rem; stroke-width: 2.4; }
.pf-hud-action__label { position: absolute; bottom: -.9rem; left: 50%; transform: translateX(-50%); border: 1px solid #e6bf92; border-radius: 999px; background: #fffaf0; color: #624737; font-size: .75rem; font-weight: 900; line-height: 1.2; padding: .15rem .5rem; white-space: nowrap; }
.pf-hud-action--account { background: linear-gradient(160deg, #b7d682, #81af62 70%); }
.pf-hud-action--account, .pf-hud-action--account:hover { color: #244b2a; }
.pf-menu-anchor { position: relative; z-index: 101; }
.pf-menu-anchor::after { content: ""; position: absolute; top: 0; right: 100%; width: .95rem; height: var(--pf-bubble-size); }
.pf-menu-trigger { font: inherit; }
.pf-store-menu { --pf-menu-pad: 1.5rem; position: absolute; top: 0; right: calc(100% + .95rem); width: min(30rem, calc(100vw - 7rem)); max-height: calc(100dvh - var(--pf-admin-offset) - 2rem); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scroll-padding-top: 7rem; border: 2px solid #d6a369; border-radius: 1.75rem; background: linear-gradient(160deg, #fffdf8, #fff6e8 96%); box-shadow: inset 0 .18rem 0 #fff, 0 .25rem 0 #bd85544d, 0 .8rem 1.8rem #52311930; color: #573d33; padding: 0 var(--pf-menu-pad) calc(var(--pf-menu-pad) + env(safe-area-inset-bottom)); }
.pf-store-menu__top { position: sticky; top: 0; z-index: 2; margin: 0 calc(-1 * var(--pf-menu-pad)); padding: 0 var(--pf-menu-pad) .85rem; background: #fffdf9; box-shadow: 0 .35rem .5rem -.5rem #9b643d55; }
.pf-store-menu__awning { position: relative; display: flex; height: 1.125rem; margin: 0 calc(-1 * var(--pf-menu-pad)); padding: 0 .4rem; background: #ffe7a5; pointer-events: none; }
.pf-store-menu__awning span { flex: 1; min-width: 0; border-radius: 0 0 45% 45% / 0 0 38% 38%; background: #f56f76; box-shadow: inset 0 -.15rem 0 #b94c4b2b, 0 .1rem .12rem #a6683c24; }
.pf-store-menu__awning span:nth-of-type(3n + 2) { background: #fff1d7; }
.pf-store-menu__awning span:nth-of-type(3n) { background: #ffc469; }
.pf-store-menu__awning .pf-icon { position: absolute; top: .04rem; left: 1rem; width: 1rem; height: 1rem; color: #67a958; fill: #a7cd70; }
.pf-store-menu__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 5.25rem; }
.pf-store-menu__eyebrow { color: #a76540; font-size: .82rem; font-weight: 800; letter-spacing: .08em; }
.pf-store-menu h2 { margin: .25rem 0 0; color: #573d33; font-size: clamp(1.25rem, 1.2rem + .3vw, 1.5rem); }
.pf-store-menu__close { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: none; border: 1px solid #e9c89e; border-radius: 50%; background: linear-gradient(180deg, #fffefa, #fff0d8); box-shadow: inset 0 .125rem 0 #fff, 0 .1875rem 0 #ddb78f; color: #674639; }
.pf-store-menu__close:hover { background: #ffe8cf; }
.pf-store-menu__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: .75rem .25rem .5rem; list-style: none; }
.pf-store-menu__grid li, .pf-store-menu__extras li { min-width: 0; margin: 0; }
.pf-store-menu__card { --edge: #e7bf77; --depth: #dba855; --top: #fffdf4; --bottom: #fff0c9; --icon: #c84d4e; display: grid; grid-template-columns: minmax(0, 1fr) 2rem; grid-template-rows: 2.25rem auto; align-content: start; column-gap: .5rem; row-gap: .625rem; min-height: 7.625rem; border: 1.5px solid var(--edge); border-radius: 1.3rem; background: linear-gradient(155deg, var(--top), var(--bottom)); box-shadow: inset 0 .15rem 0 #ffffffdb, inset 0 -.0625rem 0 #ffffff88, 0 .2rem 0 var(--depth), 0 .4rem .65rem #7444261e; color: #573d33; padding: 1rem; text-align: left; text-decoration: none; transition: transform .16s, box-shadow .16s; }
.pf-store-menu__card:hover { color: #573d33; transform: translateY(-.15rem); box-shadow: inset 0 .15rem 0 #ffffffdb, 0 .35rem 0 var(--depth), 0 .6rem .85rem #7444262b; }
.pf-store-menu__card:active { transform: translateY(.12rem); box-shadow: inset 0 .1rem .2rem #7d4b3029, 0 .0625rem 0 var(--depth); }
.pf-store-menu__card.is-current { border-color: #ca6d66; }
.pf-store-menu__card .pf-icon { grid-column: 2; grid-row: 1; width: 2rem; height: 2rem; color: var(--icon); }
.pf-store-menu__card > span { grid-column: 1 / -1; grid-row: 2; align-self: end; font-size: 1rem; font-weight: 900; line-height: 1.35; overflow-wrap: anywhere; }
.pf-store-menu__card small { display: block; margin-top: .25rem; color: #765b47; font-size: .72rem; font-weight: 600; }
.pf-store-menu__card--shop { --edge: #e6a78b; --depth: #d88462; --top: #fffaf2; --bottom: #ffe6d7; --icon: #e4664f; }
.pf-store-menu__card--myaccount { --edge: #b8d19e; --depth: #9bbc74; --top: #fcfff6; --bottom: #e7f2d7; --icon: #62934f; }
.pf-store-menu__card--cart { --edge: #b9d4db; --depth: #8ebec9; --top: #faffff; --bottom: #e3f4f8; --icon: #4b9ab3; }
.pf-store-menu__extras { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.15rem 0 0; padding: 1.15rem 0 0; border-top: 1px dashed #e3bb8f; list-style: none; }
.pf-store-menu__extras a { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.75rem; border: 1px solid #e4bc91; border-radius: 999px; background: linear-gradient(180deg, #fffefa, #fff0dc); box-shadow: inset 0 .1rem 0 #fff, 0 .16rem 0 #dfb993; color: #704c3b; font-size: .82rem; font-weight: 800; padding: .45rem .8rem; text-decoration: none; }
.pf-store-menu__extras a:hover { background: #ffe8d3; }
.pf-store-menu__extras .pf-icon { width: 1rem; height: 1rem; }

/* The preview's naturally scrolling 36/64 desktop scene; no preview artwork enters runtime. */
.pf-site-main { flex: 1 0 auto; min-width: 0; width: min(2800px, calc(100vw - clamp(132px, 8.5vw, 300px))); margin: 0 0 1.5rem max(clamp(24px, 2vw, 60px), calc((100vw - 2800px) / 2)); }
.pf-shop-stage { display: grid; align-items: start; column-gap: clamp(2rem, 2.3vw, 3.5rem); }
.pf-shop-stage--with-character { grid-template-columns: minmax(0, 36fr) minmax(0, 64fr); }
.pf-shop-stage--without-character { grid-template-columns: minmax(0, 1fr); width: min(calc(100% - 10rem), 1180px); margin-inline: auto; }
.pf-site-main--inner { width: min(calc(100% - 10rem), 1280px); margin: 1.5rem auto; }
.pf-storefront { position: relative; isolation: isolate; min-width: 0; margin-top: max(1.5rem, env(safe-area-inset-top)); overflow: clip; border: clamp(.5rem, .62vw, .75rem) solid #d2b17e; border-radius: 3.25rem 3.25rem 1.5rem 1.5rem; background: #fff6dc; box-shadow: 0 8px 20px #70482920; }
.pf-storefront > * { position: relative; z-index: 1; min-width: 0; }
.pf-storefront__awning { position: relative; height: clamp(4rem, 3.5vw, 4.5rem); }
.pf-storefront__awning-rail { position: absolute; inset: 0 0 auto; z-index: 1; display: flex; justify-content: space-between; align-items: center; height: clamp(1.75rem, 2vw, 2.25rem); border-bottom: 1px solid #d6a561; background: linear-gradient(100deg, #ffd579, #ffe7a0 42%, #ffdc83); color: #b7934c; padding: 0 1rem; }
.pf-storefront__awning-rail .pf-icon { width: 1.25rem; height: 1.25rem; color: #6f9f55; fill: #b6cc77; }
.pf-storefront__awning-stripes { position: absolute; inset: clamp(1.5rem, 1.65vw, 2rem) 0 0; display: flex; }
.pf-storefront__awning-stripes span { flex: 1; min-width: 0; border-bottom: .2rem solid #c9745644; border-radius: 0 0 48% 48% / 0 0 18% 18%; background: linear-gradient(#ff8a83, #ed5b6a); box-shadow: inset 0 .15rem .3rem #fff5d06b; }
.pf-storefront__awning-stripes span:nth-child(3n + 2) { background: linear-gradient(#fff9ed, #ffedcf); }
.pf-storefront__awning-stripes span:nth-child(3n) { background: linear-gradient(#ffd286, #ffad4d); }
.pf-storefront__surface { min-width: 0; background: #fff6dc; }
.pf-storefront__masthead { display: flex; align-items: center; justify-content: center; min-height: 5.75rem; padding: .5rem 1rem .4rem; text-align: center; }
.pf-storefront__identity { min-width: 0; max-width: 100%; }
.pf-storefront__sign { position: relative; display: inline-block; max-width: 100%; margin: 0; border: 2px solid #fff9ed; border-radius: .75rem 1rem .8rem 1rem; background: linear-gradient(165deg, #fa8586, #f36172 62%, #ed586d); box-shadow: -.78rem .25rem 0 #e99472, .78rem .25rem 0 #e99472, 0 .125rem 0 #d6766b44; color: #fff; font-size: clamp(1.6rem, calc(1.25rem + .85vw), 2.5rem); font-weight: 900; line-height: 1.2; letter-spacing: .05em; padding: .2rem clamp(1rem, 1.25vw, 1.5rem) .3rem; text-shadow: 0 1px 0 #b94a432e; overflow-wrap: anywhere; }
.pf-storefront__subtitle { margin: .35rem 0 0; color: #8b6957; font-size: clamp(.8125rem, calc(.75rem + .1vw), .9375rem); font-weight: 500; line-height: 1.4; letter-spacing: .02em; }
.pf-storefront__categories { position: sticky; top: var(--pf-admin-offset); z-index: 20; display: flex; align-items: center; flex-wrap: wrap; gap: clamp(.5rem, .65vw, .75rem); min-width: 0; margin: 0 clamp(.5rem, .7vw, .875rem) .5rem; border: 1px solid #f0dfc9; border-radius: 1.125rem; background: #fffaf3; box-shadow: 0 .2rem .45rem #70482913; padding: .25rem .45rem .35rem; }
.pf-storefront__category { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 0; min-width: 0; min-height: 3.25rem; gap: .4rem; border: 1.5px solid #f15c48; border-radius: 999px; background: linear-gradient(180deg, #fff, #fff1ea); box-shadow: inset 0 .125rem 0 #fff, 0 .16rem 0 #f7c9bb, 0 .3rem .4rem #70482913; color: #d13f29; font-size: clamp(.9375rem, calc(.875rem + .15vw), 1.125rem); font-weight: 800; line-height: 1.2; padding: .45rem .4rem; text-align: center; text-decoration: none; white-space: nowrap; transition: background .18s, transform .18s, box-shadow .18s; }
.pf-storefront__category:hover { background: #ffdfd5; color: #a93626; transform: translateY(-1px); }
.pf-storefront__category--all, .pf-storefront__category.is-current { border-color: #ef506b; background: linear-gradient(#ef506b, #d8385b); box-shadow: inset 0 .125rem 0 #ffffff77, 0 .16rem 0 #c66b79, 0 .3rem .4rem #71432c20; color: #fff; }
.pf-storefront__category--all:hover, .pf-storefront__category.is-current:hover { color: #fff; background: #d8385b; }
.pf-storefront__category:nth-child(4n + 3):not(.is-current):not(.pf-storefront__category--all) { border-color: #df9415; background: #fff7dc; color: #a36500; box-shadow: 0 .16rem 0 #eed3a1; }
.pf-storefront__category:nth-child(4n + 4):not(.is-current):not(.pf-storefront__category--all) { border-color: #50a25d; background: #eff9eb; color: #2e8247; box-shadow: 0 .16rem 0 #b9dfbc; }
.pf-storefront__category:nth-child(4n + 5):not(.is-current):not(.pf-storefront__category--all) { border-color: #318dd4; background: #edf7ff; color: #1d76b7; box-shadow: 0 .16rem 0 #b7d9f3; }
.pf-storefront__body { min-width: 0; background: #fff6dc; padding: 0 clamp(.5rem, .7vw, .875rem) .25rem; overflow-wrap: anywhere; }
.pf-storefront__catalog-tools { display: flex; align-items: stretch; gap: .7rem; margin: 0 0 .55rem; }
.pf-storefront__catalog-tools form { display: flex; align-items: center; min-width: 0; min-height: 3rem; border: 1px solid #e4d2bf; border-radius: 1rem; background: linear-gradient(180deg, #fffefa, #fff8f0); box-shadow: inset 0 .1rem 0 #fff, 0 .15rem 0 #ecd7c1, 0 .28rem .35rem #7048290c; }
.pf-storefront__search { flex: 1 1 auto; padding: 0 .45rem 0 .75rem; }
.pf-storefront__search .pf-icon { width: 1.125rem; height: 1.125rem; color: #9d806c; }
.pf-storefront__search input { width: 100%; min-width: 0; border: 0; background: transparent; box-shadow: none; padding: .6rem .55rem; }
.pf-storefront__search input:focus-visible { outline: 0; }
.pf-storefront__search:focus-within, .pf-storefront__sort:focus-within { outline: 2px solid var(--pf-color-focus); outline-offset: 2px; }
.pf-storefront__catalog-tools button { flex: none; min-height: 2rem; border: 0; border-radius: .65rem; background: #fff0db; color: #895340; font-size: .8rem; font-weight: 900; padding: .25rem .6rem; }
.pf-storefront__catalog-tools button:hover { background: #f8d6b9; }
.pf-storefront__sort { flex: 0 1 13.5rem; padding: 0 .35rem 0 .45rem; }
.pf-storefront__sort select { width: 100%; min-width: 0; border: 0; background: transparent; box-shadow: none; color: #7d6555; font-size: .9rem; padding: .45rem .25rem; }
.pf-storefront__catalog-note { display: flex; align-items: center; gap: .4rem; min-height: 1rem; margin: .1rem .25rem .3rem; color: #7b6655; font-size: .75rem; }
.pf-storefront__catalog-dot { width: .35rem; height: .35rem; border-radius: 50%; background: #9bad63; }
.pf-storefront__shelf-footer { display: flex; align-items: center; justify-content: center; gap: .75rem; min-height: 2rem; border-top: .4rem solid #c48754; background: linear-gradient(180deg, #f5d09d, #fff9ea 1.25rem); color: #996c43; font-size: .8rem; font-weight: 800; letter-spacing: .04em; }
.pf-storefront__shelf-footer .pf-icon { width: 1.15rem; height: 1.15rem; color: #729a40; fill: #b0cb64; }
.pf-storefront__shelf-footer a { color: inherit; }
.pf-shop-empty { max-width: 38rem; margin: 1rem auto; border: 2px dashed #dfb284; border-radius: 1rem; background: #fff6e9; color: #714d3e; font-weight: 800; padding: 2rem; text-align: center; }

/* SCF art and text retain the preview's character stage geometry. */
.pf-character-stage { position: sticky; top: var(--pf-admin-offset); min-width: 0; height: calc(100svh - var(--pf-admin-offset)); min-height: 47rem; }
.pf-character-stage__summary { display: none; }
.pf-character-stage__content { position: absolute; inset: 0; min-width: 0; }
.pf-character-stage__sunbeam { position: absolute; inset: 15% 0 8%; pointer-events: none; background: radial-gradient(ellipse at 45% 45%, #ffe5ab55, transparent 70%); }
.pf-character-stage__art { position: absolute; top: clamp(9rem, 10vw, 13.75rem); bottom: clamp(10rem, 10vw, 12rem); left: 0; display: flex; align-items: flex-end; justify-content: flex-start; width: min(100%, clamp(32.5rem, 57vh, 48rem)); }
.pf-character-image { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; object-position: bottom left; filter: drop-shadow(0 .45rem .3rem #68401c35); }
.pf-character-stage__counter { position: absolute; right: .375rem; bottom: 0; left: 0; display: flex; height: clamp(10rem, 10vw, 12rem); border: .2rem solid #966035; border-top: 1.875rem solid #d99f5f; border-radius: .75rem .75rem .3rem .3rem; background: repeating-linear-gradient(1deg, #ba7c44 0 10px, #b2753f 12px, #bb7c44 16px); box-shadow: inset 0 .45rem .55rem #71391154, 0 .5rem .6rem #49270c38; pointer-events: none; }
.pf-character-stage__counter::before { content: ""; position: absolute; top: -2.4rem; right: -.45rem; left: -.45rem; height: 2.6rem; border: .25rem solid #d29a5c; border-top-color: #f4ca87; border-radius: .75rem .75rem .35rem .35rem; background: repeating-linear-gradient(3deg, transparent 0 5px, #9851252a 6px 7px, transparent 8px 15px), linear-gradient(#f0bc73, #bd7c43); box-shadow: inset 0 -.25rem 0 #9c592e40; }
.pf-character-stage__counter span { flex: 1 1 0; border-right: 2px solid #8752296e; }
.pf-character-stage__counter span:last-child { border-right: 0; }
.pf-character-stage__badge { position: absolute; z-index: 3; bottom: .5rem; left: clamp(1rem, 1.5vw, 2rem); display: flex; flex-direction: column; gap: .15rem; max-width: 70%; border: .2rem solid #d0a16a; border-radius: .5rem; background: linear-gradient(135deg, #fff7e4, #f1d2a5); box-shadow: 0 .3rem .35rem #56301f50; color: #7b482f; padding: .55rem 1.5rem .65rem .85rem; transform: rotate(-3deg); overflow-wrap: anywhere; }
.pf-character-stage__badge span { color: #a17950; font-size: clamp(.75rem, calc(.6875rem + .1vw), .875rem); font-weight: 800; letter-spacing: .08em; }
.pf-character-stage__badge strong { font-size: clamp(1.125rem, calc(1rem + .3vw), 1.5rem); font-weight: 800; line-height: 1.2; }
.pf-character-stage__badge .pf-icon { position: absolute; top: -.8rem; right: -.8rem; width: 1.75rem; height: 1.75rem; color: #739b40; fill: #93bb4c; }
.pf-character-dialogue { position: absolute; z-index: 4; top: clamp(2rem, 6%, 5rem); right: .75rem; display: flex; flex-direction: column; align-items: stretch; gap: .35rem; width: min(50%, clamp(11rem, 14vw, 20rem)); max-height: min(19rem, 35vh); overflow: auto; border: 2px solid #d7a473; border-radius: 42% 40% 38% 35% / 24% 27% 28% 26%; background: linear-gradient(150deg, #fffefa, #fff6e7); box-shadow: 0 .3rem 0 #ca936b24, 0 .5rem 1.1rem #6c3d1c24; padding: 1.5rem 1.3rem .8rem; transform: rotate(2deg); }
.pf-character-dialogue__text { min-width: 0; }
.pf-character-dialogue__text p { margin: 0; color: #624638; font-size: clamp(.9rem, 1.1vw, 1.25rem); font-weight: 700; line-height: 1.65; text-align: center; white-space: pre-line; overflow-wrap: anywhere; }
.pf-character-dialogue__next { align-self: flex-end; flex: none; width: 2.25rem; height: 2.25rem; border: 0; border-radius: 50%; background: transparent; color: #a33c41; font-size: 1.6rem; line-height: 1; }
.pf-character-dialogue__next:hover { background: #ffe9d9; }

/* WordPress pages and account content stay native inside the frame. */
.pf-entry + .pf-entry { margin-top: 2rem; border-top: 1px dashed #dfb384; padding-top: 2rem; }
.pf-entry__title, .pf-collection-heading h1 { margin: 0 0 1rem; color: #a64049; font-size: clamp(1.55rem, 2.5vw, 2.25rem); font-weight: 900; }
.pf-entry__title a { color: inherit; text-decoration: none; }
.pf-entry__content > :first-child, .pf-collection-description > :first-child { margin-top: 0; }
.pf-entry__content > :last-child { margin-bottom: 0; }
.pf-entry__content > :where(p, ul, ol) { max-width: 74ch; }
.pf-site-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; min-height: 2.5rem; margin-top: auto; border-top: 1px solid #d5ad83; background: #fff7e8b8; color: #714f3e; font-size: .74rem; font-weight: 700; padding: .45rem clamp(1rem, 2.5vw, 2.5rem); }
.pf-footer-links { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: 0; padding: 0; list-style: none; }
.pf-footer-links a { color: #714f3e; }

@media (min-width: 1600px) {
	:root { --pf-bubble-size: clamp(3.875rem, 3.8vw, 4.75rem); }
	.pf-site-header__navigation { gap: clamp(1.125rem, 1.2vw, 1.5rem); }
	.pf-storefront__categories { flex-wrap: nowrap; }
	.pf-storefront__category { min-height: 3.25rem; }
	.pf-character-stage { top: var(--pf-admin-offset); }
	.pf-storefront--home { min-height: calc(100svh - 3rem); }
}
@media (max-width: 1599px) {
	:root { --pf-bubble-size: 3.55rem; }
	html { scroll-padding-top: calc(var(--pf-admin-offset) + 7rem); }
	.pf-site-header { position: sticky; top: var(--pf-admin-offset); align-items: center; min-height: calc(var(--pf-bubble-size) + 1.4rem); border-bottom: 1px solid #e9d4b6; background: #fff8ecf5; box-shadow: 0 .2rem .55rem #68432b1a; padding: .4rem max(.75rem, calc((100vw - 68rem) / 2)) .95rem; pointer-events: auto; }
	.pf-site-header__brand { max-width: calc(100% - 9rem); }
	.pf-site-header .custom-logo-link { width: clamp(3.25rem, 5vw, 4rem); }
	.pf-site-header__tagline { display: none; }
	.pf-site-title { font-size: clamp(.9rem, 1.3vw, 1.15rem); padding: .35rem .55rem; transform: none; }
	.pf-site-header__navigation { position: relative; inset: auto; flex-direction: row; gap: .65rem; }
	.pf-hud-action { border-width: .2rem; }
	.pf-hud-action .pf-icon { width: 1.65rem; height: 1.65rem; }
	.pf-hud-action__label { font-size: .68rem; }
	.pf-hud-action--account { display: none; }
	.pf-menu-anchor::after { top: 100%; right: 0; width: var(--pf-bubble-size); height: .6rem; }
	.pf-store-menu { top: calc(100% + .6rem); right: 0; width: min(30rem, calc(100vw - 1.5rem)); max-height: calc(100dvh - var(--pf-admin-offset) - 6rem); }
	.pf-site-main { display: block; width: min(calc(100% - 2.5rem), 68rem); margin: 0 auto 1.5rem; }
	.pf-shop-stage--without-character, .pf-site-main--inner { width: min(calc(100% - 2.5rem), 68rem); }
	.pf-character-stage { position: relative; top: 0; width: 100%; height: 25.9375rem; min-height: 0; margin-bottom: .75rem; }
	.pf-character-stage__summary { position: absolute; right: .25rem; bottom: .2rem; z-index: 8; display: inline-flex; align-items: center; min-height: 2rem; border: 1px solid #e7cba3; border-radius: 999px; background: #fff7e8ed; color: #744934; font-size: .7rem; font-weight: 900; padding: .3rem .65rem; cursor: pointer; }
	.pf-character-stage__summary::-webkit-details-marker { display: none; }
	.pf-character-stage:not([open]) { height: 4rem; }
	.pf-character-stage:not([open]) .pf-character-stage__summary { right: auto; left: 0; }
	.pf-character-stage:not([open]) .pf-character-stage__summary .screen-reader-text { position: static; width: auto; height: auto; margin: 0; clip: auto; white-space: normal; }
	.pf-character-stage__content { position: absolute; inset: 0; }
	.pf-character-stage__art { top: 2rem; bottom: 0; left: 0; width: 62%; }
	.pf-character-stage__counter { right: 0; left: 0; height: 6rem; border-top-width: 1.125rem; }
	.pf-character-stage__counter::before { top: -1.6rem; height: 1.9rem; }
	.pf-character-stage__badge { bottom: .25rem; left: .75rem; max-width: 58%; padding: .3rem 1rem .4rem .6rem; }
	.pf-character-stage__badge span { font-size: .65rem; }
	.pf-character-stage__badge strong { font-size: 1rem; }
	.pf-character-dialogue { top: 4.2rem; right: 4%; width: min(38%, 13.5rem); max-height: 13rem; padding: 1.35rem .85rem .6rem; }
	.pf-character-dialogue__text p { font-size: .9rem; }
	.pf-storefront { margin-top: 0; }
	.pf-storefront__awning { height: 4.75rem; }
	.pf-storefront__categories { top: calc(var(--pf-admin-offset) + var(--pf-bubble-size) + 1.4rem); }
}
@media (max-width: 1199px) {
	.pf-storefront__categories { position: relative; top: auto; }
	.pf-storefront__category { flex: 1 1 auto; }
	.pf-storefront__catalog-tools { gap: .5rem; }
}
@media (max-width: 600px) {
	:root { --pf-bubble-size: 3rem; }
	html { scroll-padding-top: calc(var(--pf-admin-offset) + 5.5rem); }
	.pf-site-header { gap: .5rem; padding-inline: max(.625rem, env(safe-area-inset-left)) max(.625rem, env(safe-area-inset-right)); }
	.pf-site-header__brand { max-width: calc(100vw - 7.5rem); }
	.pf-site-header .custom-logo-link { width: clamp(3rem, 13vw, 3.5rem); }
	.pf-site-title { font-size: .8rem; }
	.pf-site-header__navigation { gap: .6rem; }
	.pf-hud-action .pf-icon { width: 1.5rem; height: 1.5rem; }
	.pf-hud-action__label { font-size: .6rem; }
	.pf-store-menu { --pf-menu-pad: 1.1rem; position: fixed; top: calc(var(--pf-admin-offset) + var(--pf-bubble-size) + 1.4rem); right: .5rem; left: .5rem; width: auto; max-height: calc(100dvh - var(--pf-admin-offset) - var(--pf-bubble-size) - 2.4rem); border-radius: 1.25rem; }
	.pf-store-menu__grid { gap: .6rem; }
	.pf-store-menu__card { grid-template-rows: 1.7rem auto; min-height: 6.3rem; padding: .7rem; }
	.pf-store-menu__card .pf-icon { width: 1.65rem; height: 1.65rem; }
	.pf-store-menu__card > span { font-size: .9rem; }
	.pf-store-menu__card small { font-size: .65rem; }
	.pf-site-main, .pf-shop-stage--without-character, .pf-site-main--inner { width: calc(100% - 1.375rem); margin-block: 0 1rem; }
	.pf-character-stage { height: 18.75rem; margin-bottom: .25rem; }
	.pf-character-stage__art { top: 0; bottom: 0; left: -.4rem; width: 70%; }
	.pf-character-stage__counter { height: 5rem; }
	.pf-character-stage__badge { left: .5rem; bottom: .2rem; padding: .2rem .65rem .25rem .45rem; }
	.pf-character-stage__badge span { font-size: .55rem; }
	.pf-character-stage__badge strong { font-size: .75rem; }
	.pf-character-stage__badge .pf-icon { width: 1.2rem; height: 1.2rem; right: -.6rem; top: -.5rem; }
	.pf-character-dialogue { top: 1.75rem; right: 0; width: min(44%, 10.25rem); max-height: 10.5rem; border-radius: 34% 37% 31% 28% / 23% 25% 25% 23%; padding: 1.15rem .7rem .45rem; }
	.pf-character-dialogue__text p { font-size: .75rem; line-height: 1.6; }
	.pf-character-dialogue__next { width: 1.75rem; height: 1.75rem; }
	.pf-character-stage__summary { font-size: .6rem; min-height: 1.6rem; padding: .15rem .5rem; }
	.pf-storefront { border-width: .375rem; border-radius: 2rem 2rem 1.25rem 1.25rem; }
	.pf-storefront__awning { height: 4rem; }
	.pf-storefront__awning-rail { height: 1.75rem; }
	.pf-storefront__awning-stripes { inset-block-start: 1.5rem; }
	.pf-storefront__masthead { min-height: 5rem; padding: .5rem .35rem .55rem; }
	.pf-storefront__sign { font-size: clamp(1.25rem, 4.8vw, 1.6rem); padding: .25rem .7rem .3rem; }
	.pf-storefront__subtitle { font-size: .8125rem; }
	.pf-storefront__categories { justify-content: center; gap: .375rem; margin-inline: .35rem; margin-bottom: .5rem; padding: .45rem .25rem .55rem; }
	.pf-storefront__category { flex: 0 1 auto; min-height: 2.75rem; font-size: .875rem; padding: .5rem .5625rem; }
	.pf-storefront__body { padding-inline: .5rem; }
	.pf-storefront__search { padding-left: .5rem; }
	.pf-storefront__search input { font-size: .8rem; padding-inline: .3rem; }
	.pf-storefront__sort { flex: 0 0 7.75rem; }
	.pf-storefront__sort select { font-size: .75rem; }
	.pf-storefront__catalog-tools button { font-size: .65rem; padding-inline: .3rem; }
	.pf-storefront__catalog-note { font-size: .75rem; }
	.pf-site-footer { padding-inline: .7rem; }
}
@media (max-width: 350px) {
	.pf-store-menu__grid { grid-template-columns: 1fr; }
	.pf-site-title { font-size: .7rem; }
	.pf-storefront__subtitle { display: none; }
	.pf-character-stage { height: 17.8rem; }
	.pf-storefront__sort { flex-basis: 6.5rem; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
/* Shared functional symbols also apply outside the component storefront. */
.pf-material-symbol {font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-feature-settings:'liga';font-variation-settings:'FILL' 1;-webkit-font-smoothing:antialiased}

/* Ordinary WordPress pages and the index/404 fallback share the shop's
   readable pastel surfaces while keeping native content and links intact. */
.pf-site-main--inner .pf-storefront--page .pf-storefront__body {
 padding:clamp(1rem,3vw,2rem);background:#fffdf8;
}
.pf-site-main--inner .pf-storefront--page :is(.pf-entry,.pf-collection-heading,.pf-shop-empty,.navigation) {
 width:min(100%,74ch);margin-inline:auto;
}
.pf-site-main--inner .pf-storefront--page :is(.pf-entry__title,.pf-collection-heading h1) {
 color:#a4314b;font-weight:900;line-height:1.3;overflow-wrap:anywhere;
}
.pf-site-main--inner .pf-storefront--page .pf-entry__content {color:#513b32;line-height:1.75;overflow-wrap:anywhere}
.pf-site-main--inner .pf-storefront--page .pf-entry__content :is(h2,h3,h4) {color:#783c4d;line-height:1.35;font-weight:900}
.pf-site-main--inner .pf-storefront--page .pf-entry__content :is(img,video) {max-width:100%;height:auto}
.pf-site-main--inner .pf-storefront--page .pf-entry__content iframe {max-width:100%}
.pf-site-main--inner .pf-storefront--page .pf-entry__content a {color:#9d3450;text-underline-offset:.18em}
.pf-site-main--inner .pf-storefront--page .pf-entry__content :is(a,button,input,select,textarea):focus-visible,
.pf-site-main--inner .pf-storefront--page .navigation a:focus-visible {outline:3px solid #a7344b;outline-offset:3px}
.pf-site-main--inner .pf-storefront--page .pf-shop-empty {
 border:1px solid #ecd8d3;border-radius:18px;background:#fff3f5;color:#63434c;
 padding:clamp(1rem,2.5vw,1.5rem);line-height:1.6;
}
.pf-site-main--inner .pf-storefront--page .navigation {margin-block:1.5rem}
.pf-site-main--inner .pf-storefront--page .navigation a {display:inline-flex;align-items:center;min-height:44px;color:#9d3450;font-weight:800}
@media(max-width:600px) {
 .pf-site-main--inner .pf-storefront--page .pf-storefront__body {padding:1rem}
 .pf-site-main--inner .pf-storefront--page .pf-entry__content :is(pre,table) {display:block;max-width:100%;overflow-x:auto}
}

/* Legacy ordinary-content shell: keep the existing site identity, while using
   the lighter page surfaces and compact sign of the current shop. */
body:has(.pf-site-main--inner .pf-storefront--page) .pf-site-main--inner .pf-storefront--page {
 margin-top:0;border:1px solid #f0d8d3;border-radius:24px;background:#fffdf8;
 box-shadow:0 5px 20px #7048291a;
}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-storefront--page .pf-storefront__awning {display:none}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-storefront--page .pf-storefront__surface {background:#fffaf5}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-storefront--page .pf-storefront__masthead {
 justify-content:flex-start;min-height:0;padding:clamp(1rem,2.5vw,1.5rem) clamp(1rem,3vw,2rem) 0;text-align:start;
}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-storefront--page .pf-storefront__sign {
 border:0;border-radius:12px;background:#a4314b;box-shadow:none;color:#fff;
 font-size:clamp(1rem,1.2vw,1.2rem);letter-spacing:0;line-height:1.35;padding:.4rem .8rem;text-shadow:none;
}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-storefront--page .pf-storefront__subtitle {
 color:#756457;letter-spacing:0;overflow-wrap:anywhere;
}
@media(max-width:600px) {
 body:has(.pf-site-main--inner .pf-storefront--page) .pf-site-main--inner .pf-storefront--page {border-radius:18px}
}

/* Ordinary pages share the existing flat shop scene and lightweight footer. */
body:has(.pf-site-main--inner .pf-storefront--page) {
 display:flex;flex-direction:column;min-height:100vh;min-height:100svh;
 background:#fff7eb url('assets/svg/shop-illustrated-backdrop.svg?v=shop-2') center top / 100% auto fixed no-repeat;
}
body:has(.pf-site-main--inner .pf-storefront--page) :is(.scene-background,.scene-lights,.ambient) {display:none}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-site-footer {
 gap:.75rem 1.5rem;min-height:0;padding:1rem max(1rem,calc((100vw - 1200px)/2));
 border-top:1px solid #ecd8d3;background:#fffaf2;color:#69464d;font-size:.875rem;
}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-footer-links a {color:#69464d;text-decoration:none}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-footer-links a:hover {color:#a4314b}
body:has(.pf-site-main--inner .pf-storefront--page) .pf-footer-links a:focus-visible {outline:3px solid #a7344b;outline-offset:3px}
@media(max-width:760px) {
 body:has(.pf-site-main--inner .pf-storefront--page) {
  background-image:linear-gradient(#fffaf066,#fffaf066),url('assets/svg/shop-illustrated-backdrop-mobile.svg?v=shop-2');
  background-size:cover,100% 100vh;background-position:center,center top;
 }
}
@media(prefers-reduced-motion:reduce) {
 body:has(.pf-site-main--inner .pf-storefront--page) {background-attachment:scroll}
}
/* Ordinary pages use the same restrained surface as the shop. */
body:has(.pf-site-main--inner .pf-storefront--page) {background:#fffaf5}
/* Identical markup and styling to the menu's decorative nine-stripe awning. */
:is(.pf-global-awning,.pf-banner-awning) > .menu-awning {position:relative;display:flex;height:1.125rem;margin:0 0 .75rem;padding:0 .4rem;pointer-events:none}
.pf-banner-awning > .menu-awning {background:#ffe7a5;box-shadow:inset 0 .125rem 0 #fff6d8}
:is(.pf-global-awning,.pf-banner-awning) > .menu-awning > span:not(.icon) {flex:1;min-width:0;border-radius:0 0 45% 45% / 0 0 38% 38%;background:#f56f76;box-shadow:inset 0 -.15rem 0 #b94c4b2b,0 .1rem .12rem #a6683c24}
:is(.pf-global-awning,.pf-banner-awning) > .menu-awning > span:not(.icon):nth-of-type(3n+2) {background:#fff1d7;box-shadow:inset 0 -.15rem 0 #d49e702b,0 .1rem .12rem #a6683c24}
:is(.pf-global-awning,.pf-banner-awning) > .menu-awning > span:not(.icon):nth-of-type(3n) {background:#ffc469;box-shadow:inset 0 -.15rem 0 #c8883d2b,0 .1rem .12rem #a6683c24}
:is(.pf-global-awning,.pf-banner-awning) > .menu-awning > .icon {position:absolute;z-index:1;top:.05rem;left:1rem;width:1rem;height:1rem;color:#67a958;fill:#a7cd70;filter:drop-shadow(0 .0625rem 0 #fff5d5)}
/* Hide only the identified private-preview label; the preview guard remains. */
body > div[role="note"][style*="position:fixed"][style*="top:0"][style*="z-index:999999"][style*="background:#fff5ca"] {display:none}
/* One viewport-wide awning at the top of each page. */
.pf-global-awning {position:fixed;top:var(--store-admin-gap,0px);left:0;z-index:899;box-sizing:border-box;width:100%;overflow:hidden;pointer-events:none}
.pf-global-awning > .menu-awning {width:100%;margin:0}
body.pf-components-page .pf-global-awning > .menu-awning > .icon {display:none}
