/* Initial poses are applied during first paint, never after visible content. */
/* Size the composition against the usable viewport, without clipping content. */
.container {
  min-height: 100svh;
  padding: max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));
}
.logo {
  width: min(180px, 21svh, 45vw);
  height: auto;
  margin-bottom: clamp(12px, 3svh, 24px);
  flex-shrink: 0;
}
.title {
  font-size: clamp(32px, min(7vw, 9svh), 76px);
  line-height: 1.12;
  max-width: 100%;
}
.cta { margin-top: clamp(18px, 3svh, 28px); gap: 10px; }
.cta-button { font-size: 14px; line-height: 1.25; padding: 13px 20px; }
.footer { margin-top: clamp(20px, 4svh, 36px); padding: 0; }
.contact { justify-content: center; gap: 12px 24px; line-height: 1.4; }
.contact .icon svg { width: 27px; height: 27px; flex-shrink: 0; }
@media (max-width: 600px) {
  .container { padding-left: 16px; padding-right: 16px; }
  .logo { width: min(150px, 21svh, 42vw); margin-bottom: 16px; }
  .title { font-size: clamp(28px, 8vw, 46px); line-height: 1.16; }
  .cta { max-width: 340px; margin-top: 20px; }
  .cta-button { padding: 12px 17px; font-size: 13px; }
  .footer { margin-top: 24px; padding: 0; }
  .contact { gap: 9px; font-size: 13px; }
}
@media (max-height: 500px) {
  .container { padding-top: 14px; padding-bottom: 14px; }
  .logo { width: min(100px, 22svh); margin-bottom: 8px; }
  .title { font-size: clamp(26px, 8svh, 40px); line-height: 1.1; }
  .cta { margin-top: 12px; }
  .cta-button { padding: 10px 16px; }
  .footer { margin-top: 16px; }
  .contact { flex-direction: row; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; }
  .contact .icon svg { width: 22px; height: 22px; }
}
.title .word { display: inline-block; }
/* A smaller head leaves the stage to the original bold lettering. */
.logo { width: min(145px, 17svh, 38vw); }
.title { font-size: clamp(57.5px, min(11.25vw, 16.25svh), 140px); line-height: 1.15; }
.title { white-space: nowrap; }
.cta-button { font-size: 16px; padding: 15px 24px; }
.contact { font-size: 15px; }
@media (max-width:600px) {
  .logo { width: min(115px, 15svh, 33vw); margin-bottom: 20px; }
  .title { display:block; font-size:clamp(30px, 10.625vw, 63.75px); line-height:1.12; }
  .cta { margin-top:24px; gap:10px; }
  .cta-button { font-size:14px; padding:13px 20px; }
  .contact { font-size:14px; }
}
@media (max-height:500px) {
  .logo { width:min(80px,18svh);margin-bottom:8px; }
  .title { display:block;font-size:min(10.625vw,12.5svh,60px);line-height:1.12; }
  .cta { margin-top:12px; }
  .cta-button { font-size:13px;padding:10px 16px; }
  .contact { font-size:12px; }
}
@media (min-width: 1024px) {
  .logo { width: min(188.5px, 22.1svh, 49.4vw); }
}
@media (min-width: 1024px) and (max-height: 500px) {
  .logo { width: min(104px, 23.4svh); }
}
@media (prefers-reduced-motion: no-preference) {
  .logo {
    animation: logo-enter 1.35s both, logo-float 5s 1.35s ease-in-out infinite;
  }
  .title .word { animation: word-enter .7s .35s both; }
  .title .word:nth-child(2) { animation-delay: .48s; }
  .title .word:nth-child(3) { animation-delay: .61s; }
  .cta-button { animation: content-enter .6s .85s cubic-bezier(.16,1,.3,1) both; }
  .cta-button:nth-child(2) { animation-delay: .97s; }
  .contact-link { animation: contact-enter .5s 1.1s cubic-bezier(.16,1,.3,1) both; }
  .contact-link:nth-child(2) { animation-delay: 1.18s; }
  .contact-link:nth-child(3) { animation-delay: 1.26s; }
}
@keyframes logo-enter {
  0% { opacity: 0; transform: translateY(35px) rotate(-9deg) scale(.55); }
  48% { opacity: 1; transform: translateY(-7px) rotate(3deg) scale(1.075); }
  68% { opacity: 1; transform: translateY(3px) rotate(-1deg) scale(.97); }
  84% { opacity: 1; transform: translateY(-1px) rotate(.5deg) scale(1.012); }
  100% { opacity: 1; transform: none; }
}
@keyframes logo-float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes word-enter {
  0% { opacity: 0; transform: translateY(32px) scale(.72); }
  70% { opacity: 1; transform: translateY(-3px) scale(1.035); }
  100% { opacity: 1; transform: none; }
}
@keyframes content-enter {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}
@keyframes contact-enter {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: .9; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .logo,.title .word,.cta-button,.contact-link { animation: none; }
}
