/*
 * Motor Claude — Roseiral do Castelo (A Bela Adormecida, sem personagens).
 * Roseiras trepadeiras em 3D fecham a capa sobre o castelo ao longe; ao abrir,
 * as hastes se afastam e a rosa do alto desabrocha (quatro renders da mesma
 * rosa trocando por cima um do outro). Os raminhos dos cartões abrem os botões
 * quando chegam na tela. Estrutura comum em princesas/princesas.css.
 * Letras: Libre Baskerville (Clássica), Tangerine (Caligrafia), Lustria (Moderna);
 * texto em Proza Libre.
 */
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/libre-baskerville-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Libre Baskerville";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/libre-baskerville-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/libre-baskerville-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Tangerine";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/tangerine-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Tangerine";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/tangerine-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Lustria";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/lustria-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Proza Libre";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/proza-libre-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Proza Libre";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/proza-libre-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Proza Libre";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/proza-libre-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Proza Libre";font-style:normal;font-weight:600 700;font-display:swap;src:url("../fonts/proza-libre-latin-600-normal.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="roseiral"]){
  --pz-name-font:"Libre Baskerville",Georgia,serif;--pz-title:"Libre Baskerville",Georgia,serif;--pz-sans:"Proza Libre",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --pz-base:#F7E8EB;--pz-ink:#36182A;--pz-muted:#6A4555;--pz-accent:#9A3356;--pz-name:#561A33;--pz-halo:rgba(255,246,248,.9);
  --pz-btn:#A23C60;--pz-btn-hi:#C25A80;--pz-btn-lo:#84294A;--pz-btn-ink:#FFFFFF;
  --pz-g1:rgba(255,250,251,.72);--pz-g2:rgba(255,246,248,.5);--pz-rim:rgba(255,255,255,.95);--pz-rim-lo:rgba(255,255,255,.4);
  --pz-hair:rgba(90,30,50,.14);--pz-field:rgba(255,255,255,.66);--pz-shadow:rgba(120,40,70,.3);--pz-glow:rgba(255,255,255,.6);
  --pz-veil:linear-gradient(180deg,rgba(255,244,246,.28),rgba(250,232,238,.52));--pz-flash:rgba(255,236,242,.85)}
body.sg-engine-claude_v1:has(.pz-root[data-pz-theme="roseiral"][data-pz-set="perola"]){
  --pz-base:#F6F0E7;--pz-ink:#2E2822;--pz-muted:#655A4D;--pz-accent:#7F5E28;--pz-name:#433524;--pz-halo:rgba(255,252,246,.9);
  --pz-btn:#86652C;--pz-btn-hi:#A6833F;--pz-btn-lo:#6B4F1E;--pz-btn-ink:#FFFFFF;
  --pz-g1:rgba(255,253,249,.74);--pz-g2:rgba(255,250,242,.52);--pz-hair:rgba(80,60,30,.14);--pz-shadow:rgba(90,70,40,.28);
  --pz-veil:linear-gradient(180deg,rgba(255,252,244,.3),rgba(250,244,232,.52));--pz-flash:rgba(255,248,230,.85)}
body.sg-engine-claude_v1:has(.pz-root[data-pz-theme="roseiral"][data-pz-set="rubi"]){
  --pz-base:#160911;--pz-ink:#FBEFF2;--pz-muted:#D9BCC6;--pz-accent:#F1C589;--pz-name:#FFF3EE;--pz-halo:rgba(20,4,12,.85);
  --pz-btn:#EBC07F;--pz-btn-hi:#F8DCAA;--pz-btn-lo:#C99A57;--pz-btn-ink:#2A0F15;
  --pz-g1:rgba(70,24,44,.5);--pz-g2:rgba(30,8,20,.42);--pz-rim:rgba(255,226,200,.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(255,200,170,.18);
  --pz-solid:linear-gradient(160deg,rgba(58,20,36,.96),rgba(30,8,20,.95));
  --pz-veil:linear-gradient(180deg,rgba(18,6,14,.4),rgba(18,6,14,.6));--pz-flash:rgba(255,214,170,.6)}
body.sg-engine-claude_v1:has(.pz-root[data-pz-theme="roseiral"][data-pz-set="lilas"]){
  --pz-base:#1E1530;--pz-ink:#F8F1FF;--pz-muted:#D3C5E6;--pz-accent:#F6CADB;--pz-name:#FFF8FC;--pz-halo:rgba(30,16,46,.85);
  --pz-btn:#F1C7DA;--pz-btn-hi:#FBE2EE;--pz-btn-lo:#D7A2BC;--pz-btn-ink:#2C1631;
  --pz-g1:rgba(90,64,130,.46);--pz-g2:rgba(40,26,64,.4);--pz-rim:rgba(255,226,240,.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(10,0,20,.55);--pz-glow:rgba(255,200,230,.18);
  --pz-solid:linear-gradient(160deg,rgba(64,46,96,.96),rgba(34,24,54,.95));
  --pz-veil:linear-gradient(180deg,rgba(26,18,44,.36),rgba(26,18,44,.56));--pz-flash:rgba(255,214,236,.6)}
.pz-root[data-pz-theme="roseiral"][data-pz-font="caligrafia"]{--pz-name-font:"Tangerine",cursive}
.pz-root[data-pz-theme="roseiral"][data-pz-font="moderna"]{--pz-name-font:"Lustria",Georgia,serif}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .pz-root[data-pz-theme="roseiral"][data-pz-font="caligrafia"] :is(.pz-cover-name,.pz-name){font-style:normal!important;font-weight:700!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="roseiral"][data-pz-font="caligrafia"] .pz-cover-name{font-size:clamp(78px,24vw,170px)!important}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .pz-root[data-pz-theme="roseiral"][data-pz-font="caligrafia"] .pz-name{font-size:clamp(74px,22vw,150px)!important}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .pz-root[data-pz-theme="roseiral"][data-pz-font="moderna"] :is(.pz-cover-name,.pz-name){font-style:normal!important;letter-spacing:0!important}

/* ================= Capa: a roseira desce do alto e outra sobe do pé ================= */
.pz-root[data-pz-theme="roseiral"]{--pz-title-top:max(39svh,calc(min(118vw,62svh) * .66))}
.pz-ro-crown{position:absolute;right:-20vw;top:-8svh;z-index:4;width:min(max(122vw,66svh),calc(70svh - 40px),900px);aspect-ratio:1;pointer-events:none;transform-origin:88% 6%}
.pz-ro-foot{position:absolute;left:-30vw;bottom:-7svh;z-index:3;width:min(max(108vw,56svh),760px);aspect-ratio:1;pointer-events:none;transform-origin:4% 96%}
.pz-ro-a,.pz-ro-b{display:block;width:100%;height:100%;filter:drop-shadow(0 18px 22px rgba(80,20,40,.22))}
.pz-root[data-pz-set="rubi"] :is(.pz-ro-a,.pz-ro-b),.pz-root[data-pz-set="lilas"] :is(.pz-ro-a,.pz-ro-b){filter:drop-shadow(0 18px 26px rgba(0,0,0,.5))}
/* Chegada: as hastes entram dos cantos e assentam; depois balançam com a brisa */
.pz-root.is-closed .pz-ro-crown{animation:pz-ro-in-a 2.6s cubic-bezier(.16,1,.3,1) .1s both}
.pz-root.is-closed .pz-ro-foot{animation:pz-ro-in-b 2.6s cubic-bezier(.16,1,.3,1) .35s both}
@keyframes pz-ro-in-a{from{opacity:0;transform:translate(14%,-12%) rotate(8deg) scale(1.06)}to{opacity:1;transform:none}}
@keyframes pz-ro-in-b{from{opacity:0;transform:translate(-14%,12%) rotate(-8deg) scale(1.06)}to{opacity:1;transform:none}}
.pz-root.is-ready .pz-ro-crown .pz-ro-a{animation:pz-ro-sway 7.5s ease-in-out 2.6s infinite;transform-origin:92% 4%}
.pz-root.is-ready .pz-ro-foot .pz-ro-b{animation:pz-ro-sway 8.5s ease-in-out 3s infinite reverse;transform-origin:4% 96%}
@keyframes pz-ro-sway{0%,100%{transform:rotate(0)}50%{transform:rotate(-1.6deg)}}
/* Abertura: as hastes se afastam para os cantos, a luz se abre */
.pz-root.is-opening .pz-ro-crown{animation:pz-ro-out-a 1.6s cubic-bezier(.55,0,.25,1) forwards}
.pz-root.is-opening .pz-ro-foot{animation:pz-ro-out-b 1.6s cubic-bezier(.55,0,.25,1) forwards}
@keyframes pz-ro-out-a{to{opacity:0;transform:translate(26%,-26%) rotate(10deg) scale(1.12)}}
@keyframes pz-ro-out-b{to{opacity:0;transform:translate(-26%,26%) rotate(-10deg) scale(1.12)}}

/* ================= Folha: a roseira no alto e a rosa que desabrocha ================= */
.pz-root[data-pz-theme="roseiral"] .pz-front{padding-top:calc(env(safe-area-inset-top,0px) + min(62vw,310px) + 22px)}
.pz-ro-top{position:absolute;right:-44vw;top:calc(-14svh - env(safe-area-inset-top,0px));z-index:1;width:min(104vw,600px);aspect-ratio:1;pointer-events:none;opacity:.95}
.pz-ro-top .pz-ro-a{transform-origin:92% 4%}
.pz-root.is-ready .pz-ro-top .pz-ro-a{animation:pz-ro-sway 8s ease-in-out infinite}
@media (min-width:640px){.pz-ro-top{right:-180px}}
@media (min-width:760px){.pz-ro-top{right:calc((700px - 100vw) / 2 - 60px);width:min(56vw,760px)}}
.pz-ro-bloom{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 8px);z-index:2;width:min(62vw,310px);aspect-ratio:1;margin-left:max(-31vw,-155px);pointer-events:none;filter:drop-shadow(0 18px 26px rgba(90,20,50,.25))}
.pz-ro-bloom-img{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0}
.pz-ro-bloom-3{opacity:1}
/* A rosa desabrocha: botão → meio aberta → aberta (troca suave entre os quatro renders) */
.pz-root.is-opening .pz-ro-bloom-0{animation:pz-ro-b0 2.8s ease forwards}
.pz-root.is-opening .pz-ro-bloom-1{animation:pz-ro-b1 2.8s ease forwards}
.pz-root.is-opening .pz-ro-bloom-2{animation:pz-ro-b2 2.8s ease forwards}
.pz-root.is-opening .pz-ro-bloom-3{animation:pz-ro-b3 2.8s ease forwards}
.pz-root.pz-bloom-replay .pz-ro-bloom-0{animation:pz-ro-b0 2.8s ease forwards}
.pz-root.pz-bloom-replay .pz-ro-bloom-1{animation:pz-ro-b1 2.8s ease forwards}
.pz-root.pz-bloom-replay .pz-ro-bloom-2{animation:pz-ro-b2 2.8s ease forwards}
.pz-root.pz-bloom-replay .pz-ro-bloom-3{animation:pz-ro-b3 2.8s ease forwards}
@keyframes pz-ro-b0{0%,20%{opacity:1;transform:scale(.86)}38%,100%{opacity:0;transform:scale(.92)}}
@keyframes pz-ro-b1{0%,18%{opacity:0;transform:scale(.9)}34%,46%{opacity:1;transform:scale(.94)}62%,100%{opacity:0;transform:scale(.97)}}
@keyframes pz-ro-b2{0%,42%{opacity:0;transform:scale(.95)}58%,70%{opacity:1;transform:scale(.98)}86%,100%{opacity:0;transform:none}}
@keyframes pz-ro-b3{0%,66%{opacity:0;transform:scale(.98)}86%,100%{opacity:1;transform:none}}
.pz-root[data-pz-theme="roseiral"] .pz-front-text{margin-top:0}

/* Raminho na borda de cada cartão: os botões abrem quando o cartão chega na tela */
.pz-ro-sprig{position:relative;z-index:6;width:min(100%,460px);aspect-ratio:1200/360;margin:0 auto -48px;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(80,20,40,.2))}
.pz-ro-sprig-img{position:absolute;inset:0;display:block;width:100%;height:100%}
.pz-ro-sprig-1{opacity:1}
.pz-root.pz-reveal-on [data-pz-reveal] .pz-ro-sprig-0{opacity:1}
.pz-root.pz-reveal-on [data-pz-reveal] .pz-ro-sprig-1{opacity:0;transform:scale(.97);transition:opacity 1.6s ease .7s,transform 2s cubic-bezier(.2,.8,.2,1) .7s}
.pz-root.pz-reveal-on [data-pz-reveal].is-in .pz-ro-sprig-1{opacity:1;transform:none}
.pz-root.pz-reveal-on [data-pz-reveal] .pz-ro-sprig-0{transition:opacity 1.2s ease 1.6s}
.pz-root.pz-reveal-on [data-pz-reveal].is-in .pz-ro-sprig-0{opacity:0}

/* Fim: as duas roseiras se encontram no pé da página */
.pz-ro-end{position:relative;height:min(76vw,420px);margin:-10px -18px 0;pointer-events:none}
.pz-ro-end-b{position:absolute;left:-24%;bottom:-12%;width:82%;height:auto}
.pz-ro-end-a{position:absolute;right:-26%;bottom:-6%;width:92%;height:auto;transform:rotate(180deg) scaleX(-1)}
.pz-root[data-pz-theme="roseiral"] .pz-close{padding-top:10px}
.pz-root[data-pz-theme="roseiral"] .pz-close .pz-top{margin-top:-60px}

@media (orientation:landscape) and (min-width:760px){
  .pz-root[data-pz-theme="roseiral"]{--pz-title-top:36svh}
  .pz-ro-crown{right:-6vw;top:-14svh;width:min(64vw,92svh)}
  .pz-ro-foot{left:-8vw;bottom:-6svh;width:min(46vw,70svh)}
}
.pz-root--cover-only :is(.pz-ro-crown,.pz-ro-foot,.pz-ro-a,.pz-ro-b){animation:none!important;opacity:1}
