/*
Theme Name: Impact Media — Em Construção
Description: Página em construção da Impact Media, com fotografia original, animações suaves e contactos personalizáveis.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Author: Impact Media
Text Domain: impact-media
License: GPL-2.0-or-later
*/
:root { --background: oklch(0.61 0.09 191); --foreground: oklch(0.99 0.003 190); }
* { box-sizing: border-box; }
body { background: var(--background); color: var(--foreground); }
.brand-header .custom-logo-link img { width: 330px; max-width: 80vw; height: auto; }
:root {
  --font-brand: "Montserrat", Arial, sans-serif;
  --veil: oklch(0.65 0.105 190 / 82%);
  --veil-deep: oklch(0.39 0.074 193 / 70%);
  --soft-white: oklch(0.99 0.003 190 / 74%);
  --hairline: oklch(0.99 0.003 190 / 28%);
  --glass: oklch(0.99 0.003 190 / 9%);
  --glass-hover: oklch(0.99 0.003 190 / 20%);
}

body { margin: 0; font-family: var(--font-brand); letter-spacing: 0; }
.coming-soon { position: relative; min-height: 100svh; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; }
.studio-background { position: absolute; inset: -3%; z-index: -3; }
.studio-background img { width: 100%; height: 100%; object-fit: cover; object-position: center; animation: studio-drift 26s ease-in-out infinite alternate; }
.color-veil { position: absolute; inset: 0; z-index: -2; background: linear-gradient(160deg, var(--veil), var(--veil-deep)); }
.ambient-lines { position: absolute; inset: -30%; z-index: -1; pointer-events: none; transform: rotate(-24deg); animation: light-drift 28s ease-in-out infinite alternate; }
.ambient-lines::before, .ambient-lines::after { content: ""; position: absolute; width: 1px; height: 150%; background: var(--hairline); top: -20%; }
.ambient-lines::before { left: 30%; } .ambient-lines::after { right: 22%; }
.brand-header { width: 100%; padding: 72px 24px 0; display: flex; justify-content: center; animation: reveal 1.2s ease both; }
.brand-logo { width: 330px; height: auto; display: block; }
.impact-content { width: 100%; max-width: 1120px; margin: auto; padding: 90px 32px 80px; text-align: center; }
.impact-tagline { margin: 0; font-size: clamp(18px, 2.55vw, 40px); font-weight: 900; line-height: 1.4; letter-spacing: 1.25em; display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 2.71em; white-space: nowrap; }
.impact-tagline span { display: inline-block; margin-right: -1.25em; animation: reveal 1.4s cubic-bezier(.2,.65,.3,1) both; }
.impact-tagline span:last-child { animation-delay: .18s; }
.impact-divider { height: 1px; width: 52px; background: var(--soft-white); margin: 30px auto 0; transform-origin: center; animation: line-reveal 1.4s ease .6s both; }
.launch-section { padding: 0 24px 40px; text-align: center; animation: reveal 1.4s ease .45s both; }
.launch-label { margin: 0 0 22px; font-size: 28px; font-weight: 650; line-height: 1.35; }
.social-links { display: flex; justify-content: center; gap: 12px; margin-bottom: 26px; }
.social-control { width: 43px; height: 43px; border: 1px solid var(--hairline); border-radius: 50%; color: var(--foreground); background: var(--glass); display: inline-flex; align-items: center; justify-content: center; transition: background .3s, transform .3s, border-color .3s; }
.social-control:hover { background: var(--glass-hover); border-color: var(--soft-white); transform: translateY(-3px); }
.social-control:focus-visible { outline: 2px solid var(--foreground); outline-offset: 4px; }
.social-control[aria-disabled="true"] { cursor: default; }
.social-control svg { width: 19px; height: 19px; fill: currentColor; }
.contact-links { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 22px; font-size: 13px; color: var(--foreground); }
.contact-links .contact-item { display: inline-flex; align-items: center; gap: 9px; color: var(--foreground); font-weight: 700; letter-spacing: .01em; }
.contact-links svg { width: 16px; height: 16px; }
.contact-separator { height: 14px; width: 1px; background: var(--hairline); }
.page-footer { display: flex; justify-content: space-between; margin: 0 48px; padding: 20px 0 24px; border-top: 1px solid var(--hairline); color: var(--soft-white); font-size: 10px; }
.footer-status { display: flex; align-items: center; gap: 7px; }
.status-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--foreground); animation: breathe 3s ease-in-out infinite; }
@keyframes studio-drift { from { transform: scale(1.02) translate(0,0); } to { transform: scale(1.1) translate(-1%,.8%); } }
@keyframes light-drift { from { transform: translateX(-2%) rotate(-24deg); } to { transform: translateX(4%) rotate(-24deg); } }
@keyframes reveal { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes line-reveal { from { opacity: 0; transform: scaleX(0); } to { opacity: 1; transform: scaleX(1); } }
@keyframes breathe { 50% { opacity: .4; } }
@media (min-width: 1600px) { .brand-header { padding-top: 100px; } .impact-tagline { font-size: 40px; } .launch-section { padding-bottom: 55px; } }
@media (max-width: 640px) {
  .brand-header { padding-top: 58px; } .brand-logo { width: 260px; }
  .impact-content { padding: 70px 14px; } .impact-tagline { font-size: 22px; letter-spacing: .15em; gap: .55em; }
  .impact-tagline span { margin-right: -.15em; }
  .impact-divider { margin-top: 24px; } .launch-label { font-size: 21px; }
  .launch-section { padding: 0 20px 32px; } .contact-links { flex-direction: column; gap: 14px; font-size: 12px; }
  .contact-separator { display: none; } .page-footer { margin: 0 22px; font-size: 9px; gap: 15px; }
}
@media (min-width: 360px) and (max-width: 640px) { .impact-tagline { letter-spacing: .2em; } .impact-tagline span { margin-right: -.2em; } }
@media (min-width: 375px) and (max-width: 640px) { .impact-tagline { font-size: 24px; letter-spacing: .22em; } .impact-tagline span { margin-right: -.22em; } }
@media (max-height: 650px) and (min-width: 641px) { .brand-header { padding-top: 30px; } .brand-logo { width: 260px; } .impact-content { padding: 38px 24px; } .launch-section { padding-bottom: 20px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
