@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Caveat:wght@500;700&family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,600&display=swap');

:root{
  --ink:#141210;
  --ink-2:#1c1712;
  --paper:#f7ecd3;
  --paper-2:#efe0ba;
  --wood:#6b4326;
  --wood-dark:#3c2414;
  --orange:#ffa400;
  --orange-2:#ff8a1e;
  --orange-deep:#e0680a;
  --line:#2a2420;
  --green:#4c7a3b;
  --rosa:#ff6f91;
  --vermelho:#d1274a;
  --wax:#b8233a;
  --shadow: 0 30px 60px -20px rgba(0,0,0,.55);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  min-height:100dvh;
  background:
    radial-gradient(ellipse at 20% -10%, rgba(255,111,145,.14), transparent 55%),
    radial-gradient(ellipse at 90% 0%, rgba(255,164,0,.12), transparent 45%),
    var(--ink);
  color:var(--paper);
  font-family:'Montserrat',sans-serif;
}

img{max-width:100%;display:block;}

::selection{background:var(--rosa); color:var(--ink);}

/* decorative floating hearts + confetti dots, shared across pages */
.floaters{position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden;}
.floaters span{
  position:absolute; bottom:-10%; font-size:22px; opacity:.55;
  animation:floatUp linear infinite;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));
}
@keyframes floatUp{
  0%{transform:translateY(0) rotate(0deg); opacity:0;}
  10%{opacity:.6;}
  90%{opacity:.5;}
  100%{transform:translateY(-115vh) rotate(25deg); opacity:0;}
}

.bunting-strip{
  display:flex; justify-content:center; gap:14px; flex-wrap:wrap;
  padding:10px 6px 4px;
}
.bunting-strip span{
  width:0; height:0;
  border-left:11px solid transparent;
  border-right:11px solid transparent;
  border-top:16px solid var(--orange);
  opacity:.9;
}
.bunting-strip span:nth-child(3n){border-top-color:var(--rosa);}
.bunting-strip span:nth-child(4n){border-top-color:var(--green);}

.tag{
  display:inline-flex; align-items:center; gap:6px;
  font-weight:800; font-size:11px; letter-spacing:1px; text-transform:uppercase;
  color:var(--ink); background:var(--orange);
  border-radius:999px; padding:6px 12px;
}

.btn{
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:13px;
  letter-spacing:.4px; text-transform:uppercase;
  border:none; border-radius:999px; cursor:pointer;
  padding:14px 26px;
  transition:transform .15s, box-shadow .15s, background .15s;
}
.btn:active{transform:scale(.97);}
.btn-primary{
  background:linear-gradient(180deg, var(--rosa), var(--vermelho));
  color:#fff; box-shadow:0 12px 24px -10px rgba(209,39,74,.6);
}
.btn-primary:hover{filter:brightness(1.08);}
.btn-ghost{
  background:transparent; color:var(--paper);
  border:1.5px solid var(--orange);
}
.btn-ghost:hover{background:var(--orange); color:var(--ink);}
.btn:disabled{opacity:.5; cursor:not-allowed; transform:none;}

.spinner{
  width:16px; height:16px; border-radius:50%;
  border:2.5px solid rgba(255,255,255,.4); border-top-color:#fff;
  display:inline-block; animation:spin .7s linear infinite; vertical-align:-3px;
}
@keyframes spin{to{transform:rotate(360deg);}}

.toast{
  position:fixed; left:50%; bottom:24px; transform:translate(-50%, 20px);
  background:var(--ink-2); color:var(--paper); border:1.5px solid var(--orange);
  padding:12px 18px; border-radius:12px; font-size:13.5px; font-weight:600;
  box-shadow:var(--shadow); z-index:50; opacity:0; pointer-events:none;
  transition:opacity .25s, transform .25s; max-width:90vw;
}
.toast.show{opacity:1; transform:translate(-50%, 0);}
.toast.err{border-color:var(--vermelho);}
