/*
 * Motor Claude — peças comuns a todos os temas.
 * Carregada antes da folha de cada tema; cada tema só define as variáveis
 * (--cl-*) no próprio .xx-root. Tudo escopado em body.sg-engine-claude_v1.
 *
 * Cartões do menu:  --cl-tile-bg, --cl-tile-line, --cl-tile-ink, --cl-tile-muted,
 *                   --cl-tile-accent, --cl-tile-badge, --cl-tile-shadow, --cl-tile-radius
 * Título do menu:   --cl-head-ink, --cl-head-muted, --cl-title-font, --cl-body-font
 * XV:               --cl-xv-font, --cl-xv-size, --cl-xv-top, --cl-xv-bottom, --cl-xv-line, --cl-xv-glow
 */

/* O botão flutuante "Confirmar presença" do sistema repetia a confirmação que o
   menu já mostra em destaque; o espaço reservado para ele deixava uma faixa
   depois do rodapé. Nos temas do motor, os dois saem. */
body.sg-engine-claude_v1 .rsvp-floating-cta{display:none!important}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite{padding-bottom:0!important}

/* Capa fixa: enquanto ela está na tela (antes de "Abrir convite"), a página por
   baixo não rola. Arrastar o dedo na capa não move a cena nem desalinha o nome;
   o toque no botão continua funcionando. Ao abrir, a rolagem volta ao normal. */
html:has(body.sg-engine-claude_v1 :is(.is-closed,.px-closed,.lw-closed)),
body.sg-engine-claude_v1:has(:is(.is-closed,.px-closed,.lw-closed)){overflow:hidden!important;overscroll-behavior:none}
body.sg-engine-claude_v1 :is(.is-closed,.px-closed,.lw-closed) .capa{touch-action:none;overscroll-behavior:none}

/* ---------- Título do menu ---------- */
body.sg-engine-claude_v1 .cl-menu-head{margin:30px 0 14px;text-align:center}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .cl-menu-title{display:block;margin:0;padding:0;border:0;background:none;
  font-family:var(--cl-title-font,Georgia,serif)!important;font-size:25px!important;font-weight:500!important;font-style:normal!important;line-height:1.2!important;letter-spacing:0!important;text-transform:none!important;text-align:center!important;
  color:var(--cl-head-ink,currentColor)!important;text-shadow:none!important}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .cl-menu-help{margin:6px 0 0!important;padding:0;
  font-family:var(--cl-body-font,system-ui,sans-serif)!important;font-size:14px!important;font-weight:400!important;font-style:normal!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important;text-align:center!important;
  color:var(--cl-head-muted,currentColor)!important;opacity:1}

/* ---------- Cartões em duas colunas ---------- */
body.sg-engine-claude_v1 .cl-tiles{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;text-align:left}
body.sg-engine-claude_v1 .cl-tiles>li{margin:0;padding:0;min-width:0;border:0;list-style:none}
body.sg-engine-claude_v1 .cl-tiles>li::before,body.sg-engine-claude_v1 .cl-tiles>li::marker{content:none}
body.sg-engine-claude_v1 .cl-tiles--odd>li:last-child{grid-column:1/-1}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite a.cl-tile{position:relative;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:6px!important;box-sizing:border-box;width:100%;height:100%;min-height:128px;margin:0!important;padding:16px 16px 15px!important;
  border:0!important;border-radius:var(--cl-tile-radius,18px)!important;background:var(--cl-tile-bg,rgba(255,255,255,.08))!important;color:var(--cl-tile-ink,currentColor)!important;text-decoration:none!important;text-align:left!important;
  box-shadow:inset 0 0 0 1px var(--cl-tile-line,rgba(255,255,255,.25)),var(--cl-tile-shadow,0 14px 26px -18px rgba(0,0,0,.6))!important;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,box-shadow .2s ease;transform:none}
body.sg-engine-claude_v1 .pagina-convite a.cl-tile::before,body.sg-engine-claude_v1 .pagina-convite a.cl-tile::after{content:none!important;display:none!important}
body.sg-engine-claude_v1 .pagina-convite a.cl-tile:active{transform:scale(.97)}
body.sg-engine-claude_v1 .pagina-convite a.cl-tile:focus-visible{outline:2px solid var(--cl-tile-accent,currentColor);outline-offset:3px}
body.sg-engine-claude_v1 .cl-tile-badge{display:grid!important;place-items:center;flex:none;width:42px;height:42px;margin:0 0 4px;border-radius:50%;
  background:var(--cl-tile-badge,rgba(255,255,255,.1));box-shadow:inset 0 0 0 1px var(--cl-tile-line,rgba(255,255,255,.25));color:var(--cl-tile-accent,currentColor)}
body.sg-engine-claude_v1 .cl-tile-icon{display:block;width:22px;height:22px;color:inherit}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .cl-tile-label{display:block;min-width:0;max-width:calc(100% - 14px);
  font-family:var(--cl-title-font,Georgia,serif)!important;font-size:20px!important;font-weight:500!important;font-style:normal!important;line-height:1.15!important;letter-spacing:0!important;text-transform:none!important;color:inherit!important;text-shadow:none!important}
body.sg-engine-claude_v1.sg-engine-claude_v1 .pagina-convite .cl-tile-hint{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  font-family:var(--cl-body-font,system-ui,sans-serif)!important;font-size:13px!important;font-weight:400!important;font-style:normal!important;line-height:1.35!important;letter-spacing:0!important;text-transform:none!important;color:var(--cl-tile-muted,currentColor)!important;opacity:1}
body.sg-engine-claude_v1 .cl-tile-arrow{position:absolute;top:18px;right:14px;width:16px;height:16px;color:var(--cl-tile-accent,currentColor);transition:transform .2s}
body.sg-engine-claude_v1 .pagina-convite a.cl-tile:hover .cl-tile-arrow{transform:translateX(3px)}

/* ---------- XV sob o nome ---------- */
body.sg-engine-claude_v1 .cl-xv{display:flex;align-items:center;justify-content:center;gap:16px;margin:2px 0 0;pointer-events:none}
body.sg-engine-claude_v1 .cl-xv span{font-family:var(--cl-xv-font,Georgia,serif);font-size:var(--cl-xv-size,clamp(40px,11vw,54px));font-weight:500;line-height:1;letter-spacing:.14em;padding-left:.14em;
  background:linear-gradient(180deg,var(--cl-xv-top,#fff) 0%,var(--cl-xv-bottom,#d9b45e) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 14px var(--cl-xv-glow,transparent))}
body.sg-engine-claude_v1 .cl-xv i{display:block;width:clamp(32px,11vw,56px);height:1px;background:linear-gradient(90deg,transparent,var(--cl-xv-line,#d9b45e))}
body.sg-engine-claude_v1 .cl-xv i:last-child{background:linear-gradient(270deg,transparent,var(--cl-xv-line,#d9b45e))}

@media (prefers-reduced-motion:reduce){body.sg-engine-claude_v1 .cl-tile,body.sg-engine-claude_v1 .cl-tile-arrow{transition:none!important}}

/* Painel aberto (claude-nav.js): a página por baixo não rola. */
html.cl-lock,html.cl-lock body{overflow:hidden!important}

/* Aviso de rolar: na primeira tela depois da capa, um selo discreto no pé da tela
   ("Role para ver o convite" + um fio que desce) deixa claro que o convite continua
   para baixo. Some no primeiro movimento e não volta. Criado por claude-scroll-cue.js. */
body.sg-engine-claude_v1 .cl-cue{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);z-index:60;display:flex;flex-direction:column;align-items:center;gap:7px;margin:0;padding:0;border:0;background:none;cursor:pointer;transform:translate(-50%,10px);opacity:0;pointer-events:none;transition:opacity .6s ease,transform .6s ease;-webkit-tap-highlight-color:transparent}
body.sg-engine-claude_v1 .cl-cue.is-on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
body.sg-engine-claude_v1 .cl-cue-text{padding:9px 16px 9px calc(16px + .24em);border-radius:999px;background:rgba(22,18,26,.74);box-shadow:0 8px 24px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.16);font:600 11px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;color:#fff}
body.sg-engine-claude_v1 .cl-cue-line{position:relative;display:block;width:1px;height:30px;overflow:hidden;background:rgba(22,18,26,.22)}
body.sg-engine-claude_v1 .cl-cue-line i{position:absolute;left:0;top:0;width:1px;height:14px;background:rgba(22,18,26,.8);animation:cl-cue 1.8s cubic-bezier(.6,0,.3,1) infinite}
@keyframes cl-cue{from{transform:translateY(-16px)}to{transform:translateY(32px)}}
@media (prefers-reduced-motion:reduce){body.sg-engine-claude_v1 .cl-cue-line i{animation:none;top:8px}}

/* Programação da festa e fotos da história dentro dos cartões do tema: no celular o
   sistema media a lista pela largura da tela (92vw), mais larga que o cartão, e o fim
   das descrições longas ficava cortado à direita. Aqui tudo cabe no próprio cartão. */
body.sg-engine-claude_v1 .party-public-6136{width:100%!important;max-width:560px;box-sizing:border-box}
body.sg-engine-claude_v1 .party-public-6136__moment{grid-template-columns:44px minmax(0,1fr)!important}
body.sg-engine-claude_v1 .party-public-6136__copy{min-width:0;overflow-wrap:anywhere}
body.sg-engine-claude_v1 :is(.story-public-6136__photo,.mural-memory-6136__photo-wrap,.mural-memory-6136__note,.mural-memory-6136__photo-author){max-width:100%}

/* Rodapé do Capítulo 15 dentro dos temas: "Administrar convite" e o ano vinham mais
   apagados que a cor de texto do tema (transparência), abaixo do contraste mínimo. */
body.sg-engine-claude_v1 .rodape :is(a,p,span,small,.rodape__ano){opacity:1!important;color:inherit!important}

/* Janela "Deixe um recado" (mural) e telas da foto: é do sistema e vinha com a letra
   do celular e o dourado padrão em todos os temas. Nos temas do motor ela usa as
   letras do tema e o botão na cor do tema (o papel claro continua, para leitura). */
body.sg-engine-claude_v1>.mural-modal-6140 :is(small,span,label,p,input,textarea,button,div){font-family:var(--font-body,inherit)!important}
body.sg-engine-claude_v1>.mural-modal-6140 :is(.mural-modal-6140__identity strong,.mural-crop-6140__head strong,.mural-sent-6140>strong){font-family:var(--font-title,var(--font-body,inherit))!important;font-weight:600!important;letter-spacing:0!important}
body.sg-engine-claude_v1>.mural-modal-6140 :is(.mural-form-6140__field>span,.mural-photo-6140__head strong){font-family:var(--font-body,inherit)!important;font-weight:700!important}
body.sg-engine-claude_v1>.mural-modal-6140 :is(.mural-form-6140__submit,.mural-crop-6140__actions button:last-child){font-family:var(--font-button,var(--font-body,inherit))!important;background:var(--c-button-bg,#d7b96f)!important;color:var(--c-button-ink,#27231d)!important}
body.sg-engine-claude_v1>.mural-modal-6140 .mural-form-6140__field :is(input,textarea):focus{border-color:var(--c-button-bg,#c7a760)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--c-button-bg,#c7a760) 22%,transparent)!important}
body.sg-engine-claude_v1>.mural-modal-6140 .mural-modal-6140__identity>span{background:color-mix(in srgb,var(--c-button-bg,#d7b96f) 16%,#fff)!important;color:color-mix(in srgb,var(--c-button-bg,#7f6231) 80%,#000)!important}
body.sg-engine-claude_v1.tema-backstage>.mural-modal-6140 :is(.mural-modal-6140__identity strong,.mural-form-6140__submit){font-size:21px!important;font-weight:400!important;letter-spacing:.04em!important}
