/* Theme Pack 164 — v1.9.0 · design: BAKERY
   Usage: <html data-theme="bakery"> ... style everything with var(--tp-*).
   Re-brand per app: html { --tp-h: 55; } — on the SAME element as the theme block.
   Note (Cyrillic adaptation): the pack ships Latin-only faces, so the three font
   tokens below add Cyrillic-capable fallbacks — same roles, same register:
   display = bold script, body = warm humanist sans, mono = ticket numerals. */

@keyframes tp-pop{0%{transform:scale(.88);opacity:0}62%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}
@keyframes tp-up{from{transform:translateY(var(--tp-reveal-dist,16px));opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes tp-down{from{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes tp-sheet{from{transform:translateY(102%)}to{transform:translateY(0)}}
@keyframes tp-fade{from{opacity:0}to{opacity:1}}
@keyframes tp-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes tp-curtain{from{clip-path:inset(100% 0 0 0);transform:translateY(var(--tp-reveal-dist,16px))}to{clip-path:inset(0 0 0 0);transform:translateY(0)}}
@keyframes tp-rise{from{clip-path:inset(0 0 100% 0);transform:translateY(var(--tp-reveal-dist,16px))}to{clip-path:inset(0 0 0 0);transform:translateY(0)}}
@keyframes tp-blur-in{from{opacity:0;filter:blur(16px);transform:scale(1.05) translateY(var(--tp-reveal-dist,16px))}to{opacity:1;filter:blur(0);transform:scale(1) translateY(0)}}
@keyframes tp-glitch{0%{opacity:0;transform:translate3d(-6px,0,0);clip-path:inset(40% 0 38% 0)}18%{opacity:1;transform:translate3d(5px,0,0);clip-path:inset(12% 0 62% 0)}36%{transform:translate3d(-3px,0,0);clip-path:inset(68% 0 6% 0)}54%{transform:translate3d(2px,0,0);clip-path:inset(0 0 0 0)}72%{transform:translate3d(-1px,0,0)}100%{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
@keyframes tp-tape{from{opacity:0;transform:rotate(-9deg) translateY(var(--tp-reveal-dist,16px)) scale(.95)}to{opacity:1;transform:rotate(var(--tp-img-tilt,0deg)) translateY(0) scale(1)}}
@keyframes tp-zoom{from{transform:scale(1.16)}to{transform:scale(1)}}
@keyframes tp-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes tp-shake{10%,90%{transform:translateX(-2px)}30%,70%{transform:translateX(3px)}50%{transform:translateX(-4px)}}
@keyframes tp-pulse{0%,100%{opacity:1}50%{opacity:.42}}
@keyframes tp-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes tp-shimmer{from{background-position:-160% 0}to{background-position:260% 0}}
@keyframes tp-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes tp-spin{to{transform:rotate(360deg)}}
@keyframes tp-blink{50%{opacity:0}}
@keyframes tp-tilt{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
@keyframes tp-drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(4%,-3%,0) scale(1.12)}100%{transform:translate3d(0,0,0) scale(1)}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}

@keyframes fx-scroll{from{background-position:0 0}to{background-position:0 160px}}
@keyframes fx-floor{from{background-position:0 0}to{background-position:0 64px}}
@keyframes fx-spin{to{transform:rotate(360deg)}}
@keyframes fx-hue{to{filter:hue-rotate(360deg)}}
@keyframes fx-flicker{0%,100%{opacity:var(--tp-fx-op)}7%{opacity:0}9%{opacity:var(--tp-fx-op)}52%{opacity:calc(var(--tp-fx-op)*.4)}54%{opacity:var(--tp-fx-op)}}
@keyframes fx-blob{0%{transform:translate(0,0) scale(1) rotate(0)}33%{transform:translate(8%,-6%) scale(1.15) rotate(40deg)}66%{transform:translate(-6%,8%) scale(.92) rotate(-30deg)}100%{transform:none}}
@keyframes fx-stars{from{background-position:0 0,0 0,0 0}to{background-position:0 400px,0 260px,0 140px}}
@keyframes fx-foil{from{background-position:0% 50%}to{background-position:200% 50%}}
@keyframes fx-diag{from{background-position:0 0}to{background-position:120px 120px}}
@keyframes d3-sway{0%,100%{transform:perspective(1100px) rotateY(-14deg) rotateX(6deg)}50%{transform:perspective(1100px) rotateY(14deg) rotateX(-4deg)}}
@keyframes d3-float{0%,100%{transform:perspective(1200px) rotateX(18deg) translateY(0)}50%{transform:perspective(1200px) rotateX(10deg) translateY(-14px)}}
@keyframes d3-glitch{0%,92%,100%{transform:none;filter:none}93%{transform:translate(-4px,2px) skewX(-6deg);filter:drop-shadow(4px 0 0 #ff003c) drop-shadow(-4px 0 0 #00e5ff)}95%{transform:translate(3px,-1px) skewX(4deg)}97%{transform:translate(-1px,0);filter:drop-shadow(-3px 0 0 #ff003c) drop-shadow(3px 0 0 #00e5ff)}}
@keyframes d3-wobble{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg) translateY(-6px)}}
@keyframes fx-slide{from{background-position:0 0}to{background-position:-160px 0}}
@keyframes fx-fall{from{background-position:0 0,0 0,0 0}to{background-position:0 160px,0 320px,0 480px}}
@keyframes d3-card{0%,100%{transform:perspective(900px) rotateX(10deg) rotateY(-16deg) rotateZ(2deg)}50%{transform:perspective(900px) rotateX(4deg) rotateY(-6deg) translateY(-8px)}}
@keyframes d3-bounce{0%,100%{transform:translateY(0) scale(1)}40%{transform:translateY(-10px) scale(1.01,.99)}60%{transform:translateY(0) scale(1.01,.98)}}
@keyframes d3-web{0%,100%{transform:perspective(2400px) rotateX(2.5deg) rotateY(-3deg)}50%{transform:perspective(2400px) rotateX(1deg) rotateY(3deg) translateY(-4px)}}

.tp-web-stage{position:relative;isolation:isolate;overflow:hidden;animation:var(--tp-3d-web,none);transform-origin:50% 50%}
.tp-web-stage>.tp-fx{inset:-20%}
.tp-fx{position:absolute;inset:-40%;z-index:-1;pointer-events:none;background:var(--tp-fx);background-size:var(--tp-fx-size);opacity:var(--tp-fx-op);mix-blend-mode:var(--tp-fx-blend);transform:var(--tp-fx-tf);animation:var(--tp-fx-anim)}
.tp-screen{position:relative;isolation:isolate;overflow:hidden}
.tp-stage{transform:var(--tp-3d);animation:var(--tp-3d-anim);transform-style:preserve-3d}

[data-theme="bakery"]{
  --tp-h:55;
  --tp-fx:radial-gradient(40% 25% at 50% 0%, rgba(255,210,150,.6) 0%, transparent 70%);
  --tp-fx-size:auto; --tp-fx-anim:tp-breathe 5s ease-in-out infinite; --tp-fx-op:0.8;
  --tp-fx-blend:normal; --tp-fx-tf:none; --tp-3d:none;
  --tp-3d-anim:d3-wobble 6s ease-in-out infinite; --tp-3d-web:d3-web 14s ease-in-out infinite;
  --tp-dur-slow:600ms; --tp-stagger:70ms; --tp-reveal:tp-pop; --tp-reveal-dist:20px;
  --tp-img-r:20px; --tp-img-frame:none; --tp-img-sh:none;
  --tp-img-filter:saturate(1.15) sepia(.1) contrast(1.04);
  --tp-img-overlay-op:0.08; --tp-img-blend:soft-light; --tp-img-tilt:0deg; --tp-img-ar:1 / 1;
  --tp-bg:#f8eedf; --tp-canvas:#f8eedf; --tp-surf:#fffaf1; --tp-surf-2:#f0dcc0;
  --tp-ink:#3a2212; --tp-mute:#7c5a40;
  --tp-acc:oklch(0.52 0.13 calc(var(--tp-h) + 0));
  --tp-acc-2:oklch(0.64 0.18 calc(var(--tp-h) + -30));
  --tp-acc-ink:#fffaf1; --tp-line:#e2c7a4;
  --tp-grad:linear-gradient(135deg, oklch(0.66 0.13 calc(var(--tp-h) + 0)), oklch(0.5 0.12 calc(var(--tp-h) + -5)));
  --tp-r:20px; --tp-r-sm:12px; --tp-r-lg:28px; --tp-r-btn:99px;
  --tp-sh:0 12px 28px rgba(90,50,20,.14); --tp-sh-sm:0 4px 10px rgba(90,50,20,.1);
  --tp-bw:1px;
  --tp-font-display:'Shrikhand','Lobster','Baloo 2',cursive;
  --tp-font-body:'Nunito Sans','DM Sans',system-ui,sans-serif;
  --tp-font-mono:'JetBrains Mono',monospace;
  --tp-w-display:400; --tp-track-display:0em; --tp-case-display:none; --tp-hero:72px;
  --tp-dur:200ms; --tp-ease:cubic-bezier(.34,1.5,.64,1); --tp-press:0.95;
  --tp-tex:radial-gradient(rgba(90,50,20,.06) 1px, transparent 1.2px) 0 0 / 5px 5px;
  --tp-blur:none;
}
