@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/assets/fonts/inter-latin-var.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/ibm-plex-mono-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/ibm-plex-mono-500.woff2') format('woff2'); }
html, body { margin: 0; padding: 0; background: #14142a; }
  * { box-sizing: border-box; }
  a { color: #4FACFE; text-decoration: none; }
  a:hover { color: #ffffff; }
  ::selection { background: #4FACFE; color: #14142a; }
  @keyframes om-ring-rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
  @keyframes om-scanline { 0% { top: -1px; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { top: 100%; opacity: 0; } }
  @keyframes om-radial-breathe { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } }
  @keyframes om-mark-breathe { 0%, 100% { filter: drop-shadow(0 0 20px rgba(79,172,254,0.3)); } 50% { filter: drop-shadow(0 0 40px rgba(79,172,254,0.6)); } }
  @keyframes om-fade-in-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes om-p1 { 0% { transform: translate(-180px, -120px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(-81.0px, -54.0px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p2 { 0% { transform: translate(140px, -170px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(63.0px, -76.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p3 { 0% { transform: translate(-220px, 90px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(-99.0px, 40.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p4 { 0% { transform: translate(210px, 130px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(94.5px, 58.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p5 { 0% { transform: translate(60px, -230px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(27.0px, -103.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p6 { 0% { transform: translate(-90px, 210px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(-40.5px, 94.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p7 { 0% { transform: translate(260px, -60px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(117.0px, -27.0px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p8 { 0% { transform: translate(-260px, -30px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(-117.0px, -13.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p9 { 0% { transform: translate(30px, 250px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(13.5px, 112.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p10 { 0% { transform: translate(-140px, -250px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(-63.0px, -112.5px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p11 { 0% { transform: translate(180px, 240px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(81.0px, 108.0px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @keyframes om-p12 { 0% { transform: translate(-240px, 200px) scale(0.6); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(-108.0px, 90.0px) scale(1); opacity: 0.9; } 85% { opacity: 0.6; } 100% { transform: translate(0, 0) scale(0); opacity: 0; } }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } }

/* Hover states. Intent taken from the design prototype (per-element `hover` props); the static export
   merged them into colliding .h1–.h7 classes, so they are named by purpose here. */
.hv-bgw:hover   {background: #FFFFFF !important; }                        /* buttons, cards → white */
.hv-bdw:hover   {border-color: #FFFFFF !important; }                      /* ghost buttons */
.hv-tw:hover    {color: #FFFFFF !important; }                             /* text + footer links */
.hv-t2:hover    {color: #8FCEFF !important; }                             /* footer addresses */
.hv-ta:hover    {color: #4FACFE !important; }                             /* nav links */
.hv-bgn:hover   {background: #0F3460 !important; }                        /* phone button */
.hv-bda:hover   {border-color: #4FACFE !important; }                      /* location cards */
.hv-cta:hover   {background: #4FACFE !important; color: #14142a !important; }        /* nav contact button */
.hv-op:hover    { opacity: 1 !important; }                      /* language flags */
[data-mail], [data-tel], [data-map] { cursor: pointer; }
header nav a { text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [data-mail]:focus-visible, [data-tel]:focus-visible, [data-map]:focus-visible { outline: 2px solid #4FACFE; outline-offset: 3px; }

/* Contact form feedback */
.form-note { margin: 0 0 22px; padding: 14px 16px; font-size: 0.95rem; line-height: 1.5; border-left: 2px solid #4FACFE; background: rgba(79,172,254,0.08); color: #FFFFFF; }
.form-note.is-error { border-left-color: #ff7a7a; background: rgba(255,122,122,0.08); }
input::placeholder, textarea::placeholder { color: rgba(237,238,242,0.45); }
input, textarea, button { border-radius: 0; }

/* Cookie consent (only present when Google Analytics is enabled) */
.consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 100; max-width: 760px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 16px 18px; background: #14142a; color: #EDEEF2; border: 1px solid rgba(237,238,242,0.28); box-shadow: 0 8px 40px rgba(0,0,0,0.5); font-size: 0.92rem; line-height: 1.5; }
.consent p { flex: 1 1 320px; margin: 0; }
.consent button { cursor: pointer; padding: 10px 20px; font: inherit; font-size: 14px; font-weight: 600; border: 1px solid rgba(237,238,242,0.4); background: transparent; color: #FFFFFF; }
.consent .consent-yes { background: #4FACFE; border-color: #4FACFE; color: #14142a; }
