/* Worumi Bio: base partilhada */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body { font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; background: #000; color: #fff; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; }
.ic { width: 1em; height: 1em; flex: none; display: block; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Fundo animado ---------- */
.wb-bg { position: fixed; inset: 0; z-index: 0; overflow: hidden; background: #000; transition: background .6s ease; }
.wb-waves { position: absolute; inset: -6%; width: 112%; height: 112%; }
.wb-waves .wv { transform-box: fill-box; transform-origin: 50% 50%; }
.wb-bg.is-animated .wv1 { animation: wv1 26s ease-in-out infinite alternate; }
.wb-bg.is-animated .wv2 { animation: wv2 32s ease-in-out infinite alternate; }
.wb-bg.is-animated .wv3 { animation: wv3 22s ease-in-out infinite alternate; }
@keyframes wv1 { to { transform: translate(-3%, 2.5%) rotate(-2.5deg) scale(1.04); } }
@keyframes wv2 { to { transform: translate(4%, -3%) rotate(2deg) scale(1.05); } }
@keyframes wv3 { to { transform: translate(-4%, -2%) rotate(-1.5deg) scale(1.03); } }
.wb-blob { position: absolute; width: 75vmax; height: 75vmax; margin: -37.5vmax 0 0 -37.5vmax; border-radius: 50%; filter: blur(40px); opacity: .95; }
.wb-bg.is-animated .wb-blob1 { animation: blob1 24s ease-in-out infinite alternate; }
.wb-bg.is-animated .wb-blob2 { animation: blob2 30s ease-in-out infinite alternate; }
.wb-bg.is-animated .wb-blob3 { animation: blob3 27s ease-in-out infinite alternate; }
.wb-bg.is-animated .wb-blob4 { animation: blob1 34s ease-in-out infinite alternate-reverse; }
@keyframes blob1 { to { transform: translate(18vw, 12vh) scale(1.15); } }
@keyframes blob2 { to { transform: translate(-16vw, 14vh) scale(.9); } }
@keyframes blob3 { to { transform: translate(14vw, -16vh) scale(1.1); } }
.wb-bg-img { position: absolute; inset: 0; background-size: cover; background-position: center; }
.wb-bg-video { width: 100%; height: 100%; object-fit: cover; display: block; }
.wb-bg-shade { position: absolute; inset: 0; }
.wb-grain { position: absolute; inset: 0; opacity: .07; mix-blend-mode: overlay; pointer-events: none; }
.wb-bg.is-light .wb-grain { opacity: .12; mix-blend-mode: soft-light; }

@media (prefers-reduced-motion: reduce) {
  .wb-bg .wv, .wb-bg .wb-blob { animation: none !important; }
}
/* Telemóveis: os blobs já são gradientes suaves, o desfoque extra só gasta memória de GPU
   (no iPhone isso pode deixar o ecrã todo preto ou branco). */
@media (hover: none), (max-width: 760px) {
  .wb-blob { filter: none; }
  .wb-grain { display: none; }
}
/* A single, quiet brand entrance; never animate the whole screen. */
.brand-emblem { display: block; margin: 0 auto 20px; border-radius: 16px; }
/* Discourage casual copying, without disabling editing, keyboard or clipboard controls. */
body { -webkit-user-select: none; user-select: none; }
input, textarea, [contenteditable="true"] { -webkit-user-select: text; user-select: text; }
img { -webkit-user-drag: none; -webkit-touch-callout: none; }
@media (prefers-reduced-motion: no-preference) {
  .brand-mark, .brand-emblem { animation: worumi-appear 220ms ease-out both; }
  @keyframes worumi-appear { from { opacity: .65; } to { opacity: 1; } }
}
