/*
 * Motor Claude — Espelho Encantado (Branca de Neve, sem personagens).
 * A moldura oval barroca em 3D (folhas de acanto, pérolas, corda torcida e um
 * rubi) com o nome da debutante dentro do espelho. O vidro é feito aqui: um
 * oval com reflexo que passa devagar e ondas quando o dedo toca. Ao abrir, o
 * vidro ondula e a convidada atravessa o espelho. A maçã vermelha acompanha a
 * contagem e fecha o convite; um galho de macieira em flor pousa em cada cartão.
 * Estrutura comum em princesas/princesas.css.
 * Letras: Old Standard TT (Clássica), Arizonia (Caligrafia), Yeseva One (Moderna);
 * texto em Sofia Sans.
 */
@font-face{font-family:"Old Standard TT";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/old-standard-tt-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Old Standard TT";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/old-standard-tt-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Old Standard TT";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/old-standard-tt-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Arizonia";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/arizonia-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Yeseva One";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/yeseva-one-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Sofia Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/sofia-sans-latin-var-normal.woff2") format("woff2")}
@font-face{font-family:"Sofia Sans";font-style:italic;font-weight:100 900;font-display:swap;src:url("../fonts/sofia-sans-latin-var-italic.woff2") format("woff2")}

/* Paletas (as mesmas cores do theme.json, conferidas por tools/arte-princesas/build.py) */
body.sg-engine-claude_v1:has(.pz-root[data-pz-theme="espelho"]){
  --pz-name-font:"Old Standard TT",Georgia,serif;--pz-title:"Old Standard TT",Georgia,serif;--pz-sans:"Sofia Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --pz-base:#110A0B;--pz-ink:#F8EFE6;--pz-muted:#CFBCAC;--pz-accent:#E5BA70;--pz-name:#F8E9D2;--pz-halo:rgba(16,8,8,.85);
  --pz-btn:#E5BA70;--pz-btn-hi:#F6DCA4;--pz-btn-lo:#C4964A;--pz-btn-ink:#24140C;
  --pz-g1:rgba(60,36,30,.5);--pz-g2:rgba(24,14,12,.44);--pz-rim:rgba(255,226,170,.62);--pz-rim-lo:rgba(255,255,255,.1);
  --pz-hair:rgba(255,255,255,.14);--pz-field:rgba(255,255,255,.08);--pz-shadow:rgba(0,0,0,.65);--pz-glow:rgba(255,210,150,.16);
  --pz-solid:linear-gradient(160deg,rgba(44,28,24,.96),rgba(20,12,10,.95));
  --pz-veil:linear-gradient(180deg,rgba(14,8,8,.4),rgba(14,8,8,.62));--pz-flash:rgba(255,230,190,.7);
  /* vidro do espelho: fumê escuro com o reflexo dourado */
  --es-g1:#2A1D1D;--es-g2:#0C0707;--es-g3:rgba(255,222,170,.22);--es-ring:rgba(255,236,200,.55)}
body.sg-engine-claude_v1:has(.pz-root[data-pz-theme="espelho"][data-pz-set="neve"]){
  --pz-base:#EDF2F8;--pz-ink:#1B2536;--pz-muted:#4B576C;--pz-accent:#8E1C2B;--pz-name:#1B2536;--pz-halo:rgba(250,252,255,.9);
  --pz-btn:#8E1C2B;--pz-btn-hi:#B23446;--pz-btn-lo:#701220;--pz-btn-ink:#FFFFFF;
  --pz-g1:rgba(255,255,255,.72);--pz-g2:rgba(246,250,255,.5);--pz-rim:rgba(255,255,255,.95);--pz-rim-lo:rgba(255,255,255,.45);
  --pz-hair:rgba(30,40,60,.14);--pz-field:rgba(255,255,255,.7);--pz-shadow:rgba(40,60,90,.28);--pz-glow:rgba(255,255,255,.6);
  --pz-solid:linear-gradient(160deg,rgba(255,255,255,.95),rgba(246,250,255,.9));
  --pz-veil:linear-gradient(180deg,rgba(250,252,255,.3),rgba(236,242,250,.5));--pz-flash:rgba(255,255,255,.9);
  --es-g1:#F4F7FB;--es-g2:#C9D3E0;--es-g3:rgba(255,255,255,.75);--es-ring:rgba(255,255,255,.9)}
body.sg-engine-claude_v1:has(.pz-root[data-pz-theme="espelho"][data-pz-set="esmeralda"]){
  --pz-base:#07150F;--pz-ink:#F0F6EE;--pz-muted:#BACDBF;--pz-accent:#E4C47C;--pz-name:#F5ECD4;--pz-halo:rgba(4,14,10,.85);
  --pz-btn:#E4C47C;--pz-btn-hi:#F4E0AC;--pz-btn-lo:#C2A057;--pz-btn-ink:#10200F;
  --pz-g1:rgba(30,64,50,.5);--pz-g2:rgba(8,24,18,.44);--pz-rim:rgba(240,220,160,.6);--pz-rim-lo:rgba(255,255,255,.1);
  --pz-hair:rgba(255,255,255,.14);--pz-field:rgba(255,255,255,.08);--pz-shadow:rgba(0,0,0,.6);--pz-glow:rgba(220,240,180,.14);
  --pz-solid:linear-gradient(160deg,rgba(24,50,40,.96),rgba(8,22,16,.95));
  --pz-veil:linear-gradient(180deg,rgba(4,14,10,.4),rgba(4,14,10,.62));--pz-flash:rgba(240,236,190,.7);
  --es-g1:#1C3029;--es-g2:#050D0A;--es-g3:rgba(230,226,170,.2);--es-ring:rgba(230,240,210,.5)}
body.sg-engine-claude_v1:has(.pz-root[data-pz-theme="espelho"][data-pz-set="rose"]){
  --pz-base:#F6E8E7;--pz-ink:#38212A;--pz-muted:#6B4D54;--pz-accent:#93454C;--pz-name:#4A2129;--pz-halo:rgba(255,248,246,.9);
  --pz-btn:#9A4B52;--pz-btn-hi:#B8666C;--pz-btn-lo:#7C3940;--pz-btn-ink:#FFFFFF;
  --pz-g1:rgba(255,250,249,.72);--pz-g2:rgba(255,244,242,.5);--pz-rim:rgba(255,255,255,.95);--pz-rim-lo:rgba(255,255,255,.42);
  --pz-hair:rgba(80,30,40,.14);--pz-field:rgba(255,255,255,.68);--pz-shadow:rgba(110,50,60,.28);--pz-glow:rgba(255,255,255,.6);
  --pz-solid:linear-gradient(160deg,rgba(255,252,251,.95),rgba(252,242,240,.9));
  --pz-veil:linear-gradient(180deg,rgba(255,248,246,.3),rgba(248,234,232,.5));--pz-flash:rgba(255,240,236,.9);
  --es-g1:#FBF0EE;--es-g2:#E4CAC6;--es-g3:rgba(255,255,255,.7);--es-ring:rgba(255,255,255,.9)}
.pz-root[data-pz-theme="espelho"][data-pz-font="caligrafia"]{--pz-name-font:"Arizonia",cursive}
.pz-root[data-pz-theme="espelho"][data-pz-font="moderna"]{--pz-name-font:"Yeseva One",Georgia,serif}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .pz-root[data-pz-theme="espelho"][data-pz-font="caligrafia"] :is(.pz-cover-name,.pz-name){font-style:normal!important;letter-spacing:0!important;padding-left:.35em!important;padding-right:.35em!important}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .pz-root[data-pz-theme="espelho"][data-pz-font="moderna"] :is(.pz-cover-name,.pz-name){font-style:normal!important;letter-spacing:.005em!important}

/* ================= O espelho ================= */
/* Largura da moldura (proporção 1 × 1,25); a abertura oval vem de frame.json (--pz-ox/oy/orx/ory). */
.pz-es-mirror{--es-w:min(94vw,52svh,520px);position:relative;width:var(--es-w);aspect-ratio:1200/1500;margin:0 auto}
.pz-es-frame{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 26px 30px rgba(0,0,0,.45))}
.pz-root[data-pz-tone="light"] .pz-es-frame{filter:drop-shadow(0 22px 26px rgba(60,70,100,.28))}
/* Vidro: o fundo do espelho, com o tom da paleta, um reflexo que passa e a luz na borda */
.pz-es-glass{position:absolute;z-index:1;left:calc((var(--pz-ox) - var(--pz-orx)) * 100% - 1%);top:calc((var(--pz-oy) - var(--pz-ory)) * 100% - 1%);width:calc(var(--pz-orx) * 200% + 2%);height:calc(var(--pz-ory) * 200% + 2%);overflow:hidden;border-radius:50%;
  background:radial-gradient(70% 60% at 42% 34%,var(--es-g1),var(--es-g2) 100%);
  box-shadow:inset 0 0 40px rgba(0,0,0,.45),inset 0 0 0 2px rgba(0,0,0,.2)}
.pz-root[data-pz-tone="light"] .pz-es-glass{box-shadow:inset 0 0 50px rgba(80,96,130,.35),inset 0 0 0 2px rgba(80,90,110,.12)}
.pz-es-glass::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(48% 32% at 30% 22%,var(--es-g3),transparent 70%)}
.pz-es-sheen{position:absolute;left:-60%;top:-20%;width:50%;height:140%;transform:rotate(22deg);background:linear-gradient(90deg,transparent,var(--es-g3) 45%,transparent);opacity:.9}
.pz-root.is-ready .pz-es-sheen{animation:pz-es-sheen 7s cubic-bezier(.45,0,.2,1) 2.4s infinite}
@keyframes pz-es-sheen{0%,55%{transform:translateX(0) rotate(22deg)}100%{transform:translateX(420%) rotate(22deg)}}
/* Ondas no vidro (toque e abertura) */
.pz-es-ring{position:absolute;z-index:2;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;pointer-events:none;box-shadow:0 0 0 2px var(--es-ring),inset 0 0 12px var(--es-ring);opacity:0;animation:pz-es-ring 1.5s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes pz-es-ring{0%{opacity:.95;transform:scale(.2)}100%{opacity:0;transform:scale(14)}}
/* O nome e o XV dentro da abertura oval, por cima do vidro e da moldura */
.pz-es-inside{position:absolute!important;z-index:5;left:calc((var(--pz-ox) - var(--pz-orx) * .84) * 100%);right:calc((1 - var(--pz-ox) - var(--pz-orx) * .84) * 100%);top:calc((var(--pz-oy) - var(--pz-ory) * .82) * 100%);bottom:calc((1 - var(--pz-oy) - var(--pz-ory) * .82) * 100%);
  display:flex!important;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:0!important;text-align:center;pointer-events:none}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .pz-root[data-pz-theme="espelho"] .pz-es-inside .pz-eyebrow{margin-bottom:10px!important;font-size:9.5px!important;letter-spacing:.3em!important;padding-left:.3em!important}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .pz-root[data-pz-theme="espelho"] .pz-es-inside :is(.pz-cover-name,.pz-name){font-size:clamp(46px,13.5vw,84px)!important}
.pz-root[data-pz-theme="espelho"] .pz-es-inside .pz-xv{--cl-xv-top:10px}

/* Capa: o espelho no alto, o cartão embaixo */
.pz-es-mirror--cover{--es-w:min(94vw,54svh,560px);position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 3svh);margin-left:calc(var(--es-w) / -2);z-index:3}
.pz-root.is-closed .pz-es-mirror--cover{animation:pz-es-in 2.4s cubic-bezier(.16,1,.3,1) .1s both}
@keyframes pz-es-in{from{opacity:0;transform:translateY(-4svh) scale(.96);filter:brightness(.4) blur(4px)}to{opacity:1;transform:none;filter:none}}
.pz-root.is-closed .pz-es-mirror--cover .pz-es-glass{animation:pz-es-wake 3s ease .6s both}
@keyframes pz-es-wake{from{filter:brightness(.3)}to{filter:none}}
.pz-root.is-ready .pz-es-mirror--cover{animation:pz-es-float 7s ease-in-out 2.6s infinite}
@keyframes pz-es-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
/* Abertura: o vidro ondula, acende e a convidada atravessa o espelho */
.pz-root.is-opening .pz-es-mirror--cover{animation:pz-es-through 2s cubic-bezier(.6,0,.25,1) forwards}
@keyframes pz-es-through{0%{transform:none}35%{transform:scale(1.04)}100%{opacity:0;transform:scale(3.4);filter:blur(6px) brightness(1.3)}}
.pz-root.is-opening .pz-es-mirror--cover .pz-es-glass{animation:pz-es-light 1.6s ease .3s forwards}
@keyframes pz-es-light{to{filter:brightness(2.2) saturate(.6)}}
.pz-root.is-opening .pz-es-mirror--cover .pz-cover-title{animation:pz-title-out 1s cubic-bezier(.4,0,.2,1) forwards}

/* Frente da folha: o espelho com o nome, a data e o salão embaixo */
.pz-root[data-pz-theme="espelho"] .pz-front{padding-top:calc(env(safe-area-inset-top,0px) + 14px)}
.pz-es-mirror--front{--es-w:min(92vw,500px)}
.pz-front-text--after{margin-top:-4px}

/* Maçã: acompanha a contagem e fecha o convite; um toque e ela gira */
.pz-es-apple{position:relative;width:min(40vw,170px);aspect-ratio:1;margin:0 auto 6px;filter:drop-shadow(0 18px 22px rgba(0,0,0,.4))}
.pz-root[data-pz-tone="light"] .pz-es-apple{filter:drop-shadow(0 16px 18px rgba(80,30,40,.28))}
.pz-es-apple-img{position:relative;z-index:1;display:block;width:100%;height:100%}
.pz-es-apple-shine{position:absolute;inset:14% 18% 22% 18%;z-index:2;border-radius:50%;overflow:hidden;pointer-events:none;
  -webkit-mask:url("comum/apple.webp") center/contain no-repeat;mask:url("comum/apple.webp") center/contain no-repeat}
.pz-es-apple-shine::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-120%)}
.pz-root.is-ready .pz-es-apple-shine::before{animation:pz-shine 6s ease-in-out 1.5s infinite}
.pz-es-apple.is-spin .pz-es-apple-img{animation:pz-es-spin 1.1s cubic-bezier(.3,1.4,.4,1)}
@keyframes pz-es-spin{0%{transform:none}35%{transform:translateY(-14px) rotate(-14deg) scale(1.04)}70%{transform:translateY(0) rotate(8deg)}100%{transform:none}}
.pz-root.pz-reveal-on .pz-count:not(.is-in) .pz-es-apple{transform:translateY(-30px) rotate(-12deg);opacity:0}
.pz-root.pz-reveal-on .pz-count .pz-es-apple{transition:transform 1.4s cubic-bezier(.2,1.3,.3,1) .3s,opacity .8s ease .3s}
.pz-es-apple--cover{--es-w:min(94vw,54svh,560px);position:absolute;z-index:4;left:calc(50% + var(--es-w) * .16);top:calc(env(safe-area-inset-top,0px) + 3svh + var(--es-w) * 1.25 * .78);width:calc(var(--es-w) * .3);margin:0}
.pz-root.is-closed .pz-es-apple--cover{animation:pz-es-drop 1.6s cubic-bezier(.3,1.5,.4,1) 1.2s both}
@keyframes pz-es-drop{from{opacity:0;transform:translateY(-40px) rotate(-20deg)}to{opacity:1;transform:none}}
.pz-root.is-opening .pz-es-apple--cover{animation:pz-card-out .7s ease forwards}
@media (orientation:landscape) and (min-width:760px){.pz-es-apple--cover{--es-w:min(52svh,520px)}}
.pz-es-apple--end{width:min(46vw,200px);margin-top:10px}

/* Galho de macieira em flor pousado na borda de cada cartão */
.pz-es-sprig{position:relative;z-index:6;width:min(100%,440px);aspect-ratio:1200/360;margin:0 auto -46px;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.28))}
.pz-root[data-pz-tone="light"] .pz-es-sprig{filter:drop-shadow(0 8px 10px rgba(60,40,50,.18))}
.pz-es-sprig-img{display:block;width:100%;height:100%}
.pz-root.pz-reveal-on [data-pz-reveal] .pz-es-sprig{clip-path:inset(0 50% 0 50%);transition:clip-path 1.5s cubic-bezier(.6,.05,.25,1) .2s}
.pz-root.pz-reveal-on [data-pz-reveal].is-in .pz-es-sprig{clip-path:inset(-30% -5% -30% -5%)}

@media (orientation:landscape) and (min-width:760px){
  .pz-es-mirror--cover{--es-w:min(52svh,520px);top:2svh}
}
.pz-root--cover-only :is(.pz-es-mirror,.pz-es-glass){animation:none!important;opacity:1;filter:none}
@media (prefers-reduced-motion:reduce){.pz-root.pz-reveal-on .pz-count .pz-es-apple{opacity:1;transform:none}}
