/* ============ PALETA (extraída do estilo de referência) ============ */
  :root{
    --cream:#FCF9E8;        /* fundo */
    --ink:#3A2E22;          /* texto principal / títulos */
    --green:#2F5A2E;        /* destaque, botões, texto secundário */
    --leaf:#6B9A4B;         /* rótulos em caixa-alta */
    --water:#6A9BB5;        /* data e links */
    --line:rgba(58,46,34,.14);
    --paper:#FFFEFB;        /* papel das páginas */
    --bg:#F1ECE4;           /* mesa atrás do livro */
    --blush:#E9BDB8;        /* fitas */
    --gold:#C9A96E;         /* molduras */
    --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    --sans:"Nunito Sans",system-ui,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  [hidden]{display:none!important}
  html,body{height:100%;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--ink)}
  a{color:var(--water)}

  /* ============ ESCOLHA DA FAMÍLIA (escolha.html) ============ */
  body.pick{overflow:auto;display:flex;justify-content:center;padding:32px 16px}
  .pick-card{width:100%;max-width:460px;margin:auto 0;text-align:center;background:var(--paper);border:1px solid rgba(201,169,110,.45);border-radius:8px;padding:40px 24px;box-shadow:0 22px 50px rgba(58,46,34,.18)}
  .pick-card h1{font-size:2.4rem;margin-bottom:8px}
  .pick-form{display:flex;flex-direction:column;gap:14px;margin-top:24px}
  .pick-form select{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer}
  .pick-form select:focus{outline:2px solid var(--green);outline-offset:1px}
  .pick-form .btn{width:100%;margin-top:0}

  /* ============ LIVRO (uma página por vez; a folha gira pela lombada à esquerda) ============ */
  body{overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#FBF8F3,var(--bg) 70%)}
  .book{position:fixed;top:18px;bottom:80px;left:0;right:0;margin:0 auto;width:min(calc(100vw - 20px),540px);perspective:2200px;touch-action:pan-y;border-radius:3px 8px 8px 3px;box-shadow:0 22px 50px rgba(58,46,34,.18),0 2px 6px rgba(58,46,34,.08)}
  .book::after{content:"";position:absolute;top:5px;bottom:5px;right:-5px;width:5px;border-radius:0 4px 4px 0;background:repeating-linear-gradient(90deg,#fff 0 1px,#E8E0D2 1px 2px)}
  .leaf{position:absolute;inset:0;transform-origin:left center}
  /* 3D só enquanto a folha vira: no iPhone, rolagem dentro de elemento 3D não funciona */
  .book.flipping .leaf{transform-style:preserve-3d}
  .book.flipping .leaf > *{-webkit-backface-visibility:hidden;backface-visibility:hidden}
  .book:not(.flipping) .leaf .back{display:none}
  .leaf .back{position:absolute;inset:0;transform:rotateY(180deg);border-radius:8px 3px 3px 8px;background:linear-gradient(to left,rgba(58,46,34,.10),rgba(58,46,34,0) 22px),var(--paper)}
  .leaf .shade{position:absolute;inset:0;pointer-events:none;border-radius:3px 8px 8px 3px;background:linear-gradient(to left,rgba(58,46,34,.3),rgba(58,46,34,0) 70%);opacity:var(--s,0)}
  .leaf .frame{position:absolute;inset:14px;border:1px solid rgba(201,169,110,.45);border-radius:4px;pointer-events:none}
  .leaf.is-cover .frame{inset:12px;border:3px double rgba(201,169,110,.6)}
  .leaf .corner{position:absolute;width:84px;height:84px;pointer-events:none}
  .leaf .corner.tl{top:4px;left:8px}
  .leaf .corner.br{bottom:4px;right:4px;transform:rotate(180deg)}
  .leaf .bow{position:absolute;top:8px;right:12px;width:44px;height:44px;pointer-events:none}
  .slide{position:absolute;inset:0;isolation:isolate;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y;user-select:none;-webkit-user-select:none;
    display:flex;flex-direction:column;align-items:center;justify-content:center;justify-content:safe center;text-align:center;padding:60px 28px 56px;border-radius:3px 8px 8px 3px;
    background:linear-gradient(to right,rgba(58,46,34,.10),rgba(58,46,34,0) 22px),var(--paper)}
  .slide input,.slide textarea{user-select:text;-webkit-user-select:text}
  .slide img{-webkit-user-drag:none}
  .slide > *{max-width:560px;width:100%}
  .slide.wide > *{max-width:820px}
  .drag-hint{position:absolute;left:0;right:0;bottom:22px;z-index:999;pointer-events:none;text-align:center;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);opacity:.38;animation:nudge 2.4s ease-in-out infinite}
  @keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(-8px)}}

  /* capa: foto do casal, fita com laço e flores */
  .slide.cover{background:repeating-linear-gradient(45deg,rgba(201,169,110,.05) 0 2px,transparent 2px 6px),linear-gradient(to right,rgba(58,46,34,.12),rgba(58,46,34,0) 26px),#fff}
  .slide > .deco,.slide.in > .deco{position:absolute;z-index:-1;pointer-events:none;opacity:1;transform:none;transition:none;max-width:none}
  .deco.ribbon{top:0;right:0;width:42%}
  .deco.flowers{bottom:0;left:0;width:50%}
  .cover .photo{width:min(42%,180px);aspect-ratio:4/5;border-radius:50%;overflow:hidden;margin:0 auto;border:4px solid #fff;box-shadow:0 0 0 1px var(--gold),0 10px 26px rgba(58,46,34,.16);background:linear-gradient(160deg,#F8E9E6,#F3EFE6);display:flex;align-items:center;justify-content:center;color:#C99A94;font-family:var(--serif);font-size:15px;line-height:1.3}
  .cover .photo img{width:100%;height:100%;object-fit:cover;object-position:50% 72%;transform:scale(1.4);transform-origin:32% 80%;display:block}   /* zoom no casal: ajuste scale e origin se trocar a foto */
  .cover .photo b{display:block;font-size:30px;font-weight:400}
  .cover .invite{font-family:var(--serif);font-size:19px;line-height:1.35;color:var(--ink);margin-top:14px;max-width:360px}

  /* tipografia */
  .eyebrow{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--leaf);font-weight:400}
  .label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--leaf);margin-top:18px}
  h1{font-size:clamp(36px,9.5vw,58px);line-height:1;margin:16px 0 10px;white-space:nowrap}
  h2{font-size:clamp(30px,4.5vw,40px);line-height:1.1;margin:10px 0 18px}
  .date{font-size:clamp(20px,3vw,28px);color:var(--water);margin-top:14px}
  .strong{font-size:18px;color:var(--ink)}
  .soft{color:var(--green);opacity:.85;font-size:15px}
  .small{font-size:13px;opacity:.7}
  p{color:var(--green);font-size:17px}
  .icon{width:56px;height:56px;margin:0 auto 6px;display:block}

  /* lista de programa */
  .agenda{list-style:none;text-align:left;margin-top:8px}
  .agenda li{display:flex;justify-content:space-between;gap:16px;padding:12px 2px;border-bottom:1px solid var(--line);color:var(--ink)}
  .agenda li:last-child{border:0}
  .agenda span:first-child{font-family:var(--serif);font-size:20px;color:var(--green);opacity:.8}

  /* cartões */
  .card{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-top:14px;text-align:left;background:rgba(255,255,255,.35)}
  .card h3{font-size:22px;margin-bottom:4px}
  .card p{font-size:15px}

  /* botões */
  .btn{display:inline-block;border:0;cursor:pointer;font:inherit;background:var(--green);color:#fff;padding:12px 26px;border-radius:999px;letter-spacing:.14em;text-transform:uppercase;font-size:13px;margin-top:20px;text-decoration:none;transition:transform .2s,opacity .2s}
  .btn:hover{transform:translateY(-1px);opacity:.92}
  .btn.ghost{background:transparent;color:var(--green);border:1px solid var(--green)}

  /* mural */
  .wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:10px;text-align:left;align-items:start}
  .wall .empty{grid-column:1/-1;text-align:center;color:var(--green);font-size:15px;padding:20px}
  .note img,.note video,.note audio,.preview img,.preview video,.preview audio{width:100%;display:block;border-radius:8px;margin-bottom:8px}
  .note img,.preview img{object-fit:cover;max-height:320px;cursor:zoom-in}
  .note video,.preview video{max-height:320px;background:#000}
  .note{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:rgba(255,255,255,.4);color:var(--ink);font-size:15px}
  .note b{display:block;margin-top:6px;font-weight:600;color:var(--green);font-size:14px}

  /* formulários */
  form{display:grid;gap:12px;text-align:left;margin-top:8px}
  input[type=text],textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.6);color:var(--ink)}
  textarea{min-height:110px;resize:vertical}
  .guest{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.4)}
  .seg{display:flex;gap:6px}
  .seg label{cursor:pointer}
  .seg input{display:none}
  .seg span{display:inline-block;padding:6px 14px;border-radius:999px;border:1px solid var(--line);font-size:14px;color:var(--green)}
  .seg input:checked + span{background:var(--green);color:#fff;border-color:var(--green)}
  .ok{display:none;margin-top:14px}
  .kinds{flex-wrap:wrap;justify-content:center}
  .media-pick .pick-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
  .media-pick .btn{margin-top:0}
  .preview:not(:empty){margin-top:10px}
  #recBtn.rec{background:#B5474B;border-color:#B5474B;color:#fff;animation:bob 1.4s ease-in-out infinite}
  .btn:disabled{opacity:.55;cursor:wait}
  #noteOk.err{color:#B5474B;opacity:1}
  .pix{font-family:ui-monospace,monospace;font-size:14px;padding:12px;border:1px dashed var(--green);border-radius:10px;margin:12px 0 0;word-break:break-all;color:var(--ink)}

  /* idioma, setas e botão flutuante */
  .lang{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:45;display:flex;gap:2px;padding:4px;background:rgba(255,255,255,.85);border-radius:999px;box-shadow:0 4px 18px rgba(58,46,34,.12);backdrop-filter:blur(6px)}
  .lang button{border:0;background:transparent;font:inherit;font-size:13px;padding:6px 14px 6px 8px;border-radius:999px;cursor:pointer;color:#8a8a7a;display:flex;align-items:center;gap:7px}
  .lang .flag{width:18px;height:18px;border-radius:50%;overflow:hidden;flex:none;box-shadow:0 0 0 1px rgba(58,46,34,.18);opacity:.6;filter:saturate(.7);transition:opacity .2s,filter .2s}
  .lang .flag svg{width:100%;height:100%;display:block}
  .lang button.on .flag{opacity:1;filter:none;box-shadow:0 0 0 1.5px #fff}
  .lang button.on{background:var(--green);color:#fff;font-weight:700}
  .arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:40;border:0;cursor:pointer;background:rgba(255,255,255,.8);border-radius:999px;padding:8px 12px;color:var(--ink);box-shadow:0 2px 10px rgba(58,46,34,.1)}
  .arrow.l{left:12px}.arrow.r{right:12px}
  .arrow[hidden]{display:none}
  .fab{position:fixed;right:20px;bottom:18px;z-index:50;width:56px;height:56px;border-radius:50%;border:0;background:var(--green);color:#fff;cursor:pointer;box-shadow:0 6px 20px rgba(47,90,46,.35);font-size:24px}
  @keyframes bob{50%{transform:translateY(5px);opacity:.5}}

  /* entrada suave do conteúdo */
  .slide > *{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
  .slide.in > *{opacity:1;transform:none}
  .slide.in > *:nth-child(2){transition-delay:.08s}.slide.in > *:nth-child(3){transition-delay:.16s}
  .slide.in > *:nth-child(4){transition-delay:.24s}.slide.in > *:nth-child(5){transition-delay:.32s}
  @media (max-width:640px){.arrow{display:none}}
  @media (prefers-reduced-motion:reduce){.slide > *{transition:none;opacity:1;transform:none}.drag-hint{animation:none}}

/* ============ GALERIA ============ */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.gallery figure{margin:0;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.4);border:1px solid var(--line);text-align:left}
.gallery img,.gallery video{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;cursor:zoom-in}
.gallery video{cursor:auto;background:#000}
.gallery figcaption{padding:8px 12px;font-size:13px;color:var(--green)}
.gallery .empty{grid-column:1/-1;padding:28px;border:1px dashed var(--line);border-radius:12px;color:var(--green);font-size:15px}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(30,24,16,.88);display:none;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px}

/* ============ GLOBO (lugares que visitamos) ============ */
.globe-wrap{position:relative;max-width:340px;margin:0 auto}
.globe-wrap svg{width:100%;height:auto;display:block;clip-path:circle(50%);touch-action:none;cursor:grab}   /* com zoom, o mapa fica dentro do círculo, como uma lente */
.globe-wrap .sphere{fill:url(#sea);stroke:rgba(201,169,110,.6);stroke-width:1.5}
.globe-wrap .grat{fill:none;stroke:#fff;stroke-opacity:.55;stroke-width:.5}
.globe-wrap .land{fill:#B9C9A8;stroke:#fff;stroke-width:.4;transition:fill 1.2s,opacity .6s}
.globe-wrap .lit .land.visited{fill:#FFF8F5;stroke:#D99A94;stroke-width:1.2;cursor:pointer;filter:drop-shadow(0 0 4px rgba(233,189,184,.9))}
.globe-wrap .zoom .land:not(.visited){opacity:.5}
.globe-wrap .dot{cursor:pointer}
.globe-wrap .dot circle{fill:#D2453F;stroke:#fff;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:ping 1.6s ease-in-out infinite}
.globe-wrap .dot text{font:600 13px var(--sans);text-anchor:middle;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:3px}
@keyframes ping{50%{transform:scale(1.25)}}
.polaroid{position:absolute;left:50%;top:50%;width:74%;padding:10px 10px 12px;background:#fff;box-shadow:0 14px 34px rgba(58,46,34,.28);transform:translate(-50%,-50%) rotate(-3deg);cursor:zoom-out;animation:pop .35s ease-out}
.polaroid img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.polaroid span{display:block;margin-top:8px;font-family:var(--serif);font-size:20px;color:var(--ink)}
@keyframes pop{from{opacity:0;transform:translate(-50%,-46%) rotate(-8deg) scale(.9)}}
#globeHint{margin-top:10px;min-height:1.5em}
#globeBack{margin-top:8px;width:auto}


/* ============ NOSSA TRAJETÓRIA (linha do tempo) ============ */
.script-title{font-family:"Great Vibes",var(--serif);font-weight:400;font-size:clamp(44px,11vw,58px);line-height:1.1}
.tl-hint{font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.55;animation:bob 2s ease-in-out infinite}
.timeline{position:relative;margin-top:18px;padding:6px 0}
.timeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(58,46,34,.55)}
.tl-item{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;margin:0 0 26px;opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.tl-item.show{opacity:1;transform:none}
.tl-item::before{content:"";position:absolute;left:calc(50% - 30px);width:60px;top:50%;height:1px;background:rgba(58,46,34,.55)}   /* traço que liga foto e texto */
.tl-item::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--blush);box-shadow:0 0 0 3px var(--paper)}
.tl-photo{position:relative;z-index:1;padding:0 22px 0 4px}
.tl-text{padding:0 4px 0 22px}
.tl-item:nth-child(even) .tl-photo{order:2;padding:0 4px 0 22px}
.tl-item:nth-child(even) .tl-text{padding:0 22px 0 4px}
.tl-pol{background:#fff;padding:6px 6px 20px;box-shadow:0 8px 20px rgba(58,46,34,.18);transform:rotate(-4deg);transition:transform .8s ease}
.tl-item:nth-child(even) .tl-pol{transform:rotate(3deg)}
.tl-item:not(.show) .tl-pol{transform:rotate(-12deg) translateX(-14px)}
.tl-item:nth-child(even):not(.show) .tl-pol{transform:rotate(12deg) translateX(14px)}
.tl-pol img,.tl-pol .ph{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.tl-pol img{cursor:zoom-in}
.tl-pol .ph{display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(160deg,#F8E9E6,#F3EFE6);color:#C99A94;font-family:var(--serif);font-size:13px}
.tl-pol .ph b{font-size:24px;font-weight:400}
.tl-year{font-family:var(--serif);font-size:28px;color:var(--ink);line-height:1}
.tl-desc{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-top:6px;line-height:1.5}
.tl-names{font-family:var(--serif);font-size:26px;color:var(--ink);margin-top:6px}
@media (prefers-reduced-motion:reduce){.tl-item,.tl-item .tl-pol{transition:none}}
