
  *{ -webkit-tap-highlight-color: transparent; }
  html{ scroll-behavior:smooth; }
  body{ background:var(--color-ink); color:var(--color-paper); font-family:var(--font-body); letter-spacing:var(--body-letter-spacing); overflow-x:hidden; }
  ::selection{ background:#FF2943; color:#080808; }
  ::-webkit-scrollbar{ width:10px; }
  ::-webkit-scrollbar-track{ background:#080808; }
  ::-webkit-scrollbar-thumb{ background:#FF2943; border:2px solid #080808; }
  .font-display{ font-family:var(--font-display); letter-spacing:var(--display-letter-spacing); }
  .stroke-text{ -webkit-text-stroke:2px #D9DCE2; color:transparent; }
  .stroke-black{ -webkit-text-stroke:2px #080808; color:transparent; }
  .stroke-lime{ -webkit-text-stroke:2px #FF2943; color:transparent; }
  .brutal{ box-shadow:7px 7px 0 #080808; }
  .brutal-lime{ box-shadow:7px 7px 0 #FF2943; }
  .brutal-white{ box-shadow:7px 7px 0 #D9DCE2; }
  .brutal-sm{ box-shadow:4px 4px 0 #080808; }
  /* Cursor */
  #cursor-dot, #cursor-ring{ position:fixed; top:0; left:0; pointer-events:none; z-index:9999; border-radius:9999px; transform:translate(-50%,-50%); }
  #cursor-dot{ width:10px; height:10px; background:#FF2943; mix-blend-mode:difference; }
  #cursor-ring{ width:42px; height:42px; border:2px solid #FF2943; transition:width .25s,height .25s,background .25s; mix-blend-mode:difference; }
  #cursor-ring.hovering{ width:80px; height:80px; background:rgba(255,41,67,.15); }
  @media (pointer:coarse){ #cursor-dot,#cursor-ring{ display:none; } }
  /* Marquee */
  .marquee-track{ display:flex; width:max-content; animation:marquee 22s linear infinite; }
  .marquee-track.fast{ animation-duration:14s; }
  .marquee-track.slow{ animation-duration:32s; }
  .marquee-track.reverse{ animation-direction:reverse; }
  @keyframes marquee{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
  .marquee-paused:hover .marquee-track{ animation-play-state:paused; }
  /* Preloader */
  #preloader{ position:fixed; inset:0; z-index:10000; background:#080808; display:flex; align-items:center; justify-content:center; flex-direction:column; transition:transform .8s cubic-bezier(.85,0,.15,1); }
  #preloader.done{ transform:translateY(-100%); }
  .loader-bar{ height:8px; background:#FF2943; width:0%; transition:width .2s; }
  /* Hero grid + spotlight */
  .hero-grid{ background-image:linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size:60px 60px; mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, black 30%, transparent 75%); }
  #spotlight{ position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(255,41,67,.18) 0%, rgba(217,16,48,.08) 40%, transparent 70%); pointer-events:none; transform:translate(-50%,-50%); filter:blur(10px); z-index:1; }
  .hero-img-frame{ clip-path:polygon(0 0, 100% 0, 100% 88%, 92% 100%, 0 100%); }
  /* Service rows */
  .service-row{ transition:all .4s cubic-bezier(.16,1,.3,1); cursor:pointer; }
  .service-row .service-body{ max-height:0; overflow:hidden; transition:max-height .6s cubic-bezier(.16,1,.3,1), opacity .4s; opacity:0; }
  .service-row.active .service-body{ max-height:800px; opacity:1; }
  .service-row.active{ background:#FF2943 !important; color:#080808 !important; }
  .service-row.active .s-num{ color:#080808; -webkit-text-stroke:0; }
  .service-row.active .s-arrow{ transform:rotate(45deg); background:#080808; color:#FF2943; }
  .s-arrow{ transition:transform .4s; }
  .service-row:not(.active):hover{ background:#1A1A1A; padding-left:2.5rem; }
  /* Work cards */
  .work-card{ transition:transform .5s cubic-bezier(.16,1,.3,1); }
  .work-card:hover{ transform:translateY(-8px) rotate(-.5deg); }
  .work-card img{ transition:transform .7s cubic-bezier(.16,1,.3,1), filter .5s; filter:grayscale(35%) contrast(1.1); }
  .work-card:hover img{ transform:scale(1.07); filter:grayscale(0%) contrast(1.1); }
  .filter-btn.active{ background:#FF2943; color:#080808; border-color:#FF2943; box-shadow:4px 4px 0 #D9DCE2; }
  /* Buttons */
  .btn-brutal{ transition:all .2s; }
  .btn-brutal:hover{ transform:translate(-3px,-3px); box-shadow:10px 10px 0 #080808; }
  .btn-brutal:active{ transform:translate(3px,3px); box-shadow:1px 1px 0 #080808; }
  .btn-lime-hover:hover{ box-shadow:10px 10px 0 #FF2943; }
  /* Reveal */
  .reveal{ opacity:1; }
  .reveal-line{ overflow:hidden; }
  .reveal-line > span{ display:block; }
  /* Ticker vertical */
  .tick{ animation:blink 1.2s steps(2) infinite; }
  @keyframes blink{ 50%{opacity:0} }
  @keyframes floaty{ 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-14px) rotate(2deg)} }
  .floaty{ animation:floaty 5s ease-in-out infinite; }
  @keyframes spinSlow{ to{transform:rotate(360deg)} }
  .spin-slow{ animation:spinSlow 14s linear infinite; }
  @keyframes pulseBadge{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,41,67,.6)} 50%{ box-shadow:0 0 0 12px rgba(255,41,67,0)} }
  .pulse-badge{ animation:pulseBadge 2s infinite; }
  /* Testimonial */
  .testi-slide{ position:absolute; inset:0; opacity:0; transform:translateX(60px) scale(.98); transition:all .6s cubic-bezier(.16,1,.3,1); pointer-events:none; }
  .testi-slide.active{ opacity:1; transform:translateX(0) scale(1); pointer-events:auto; position:relative; }
  /* FAQ */
  .faq-a{ max-height:0; overflow:hidden; transition:max-height .5s cubic-bezier(.16,1,.3,1); }
  .faq-item.open .faq-a{ max-height:300px; }
  .faq-item.open .faq-icon{ transform:rotate(45deg); background:#FF2943; color:#080808; }
  .faq-icon{ transition:transform .3s; }
  /* Estimator */
  .est-card input:checked + div{ background:#080808; color:#FF2943; border-color:#080808; transform:scale(1.02); box-shadow:5px 5px 0 #D91030; }
  .tier-btn.active{ background:#080808; color:#fff; }
  /* Modal */
  .modal-bg{ backdrop-filter:blur(10px); }
  /* Input */
  .inp{ background:transparent; border:2px solid #080808; padding:14px 16px; width:100%; font-weight:600; outline:none; transition:all .2s; color:#080808; }
  .inp:focus{ background:#fff; box-shadow:5px 5px 0 #080808; transform:translate(-2px,-2px); }
  .inp-dark{ border-color:#D9DCE2; color:#D9DCE2; }
  .inp-dark:focus{ background:#1A1A1A; box-shadow:5px 5px 0 #FF2943; }
  select.inp option{ color:#080808; }
  /* Toast */
  #toast{ transition:all .4s cubic-bezier(.16,1,.3,1); transform:translateY(150%); }
  #toast.show{ transform:translateY(0); }
  /* Progress */
  #progressBar{ transform-origin:0 50%; transform:scaleX(0); }
  /* Big footer text hover */
  .footer-giant{ transition:all .4s; }
  .footer-giant:hover{ color:#FF2943; letter-spacing:.02em; }
  /* Diagonal section */
  .diagonal{ clip-path:polygon(0 3vw, 100% 0, 100% calc(100% - 3vw), 0 100%); }
  /* Sticker */
  .sticker{ transform:rotate(-6deg); }
  /* Mobile menu */
  #mobileMenu{ clip-path:circle(0% at calc(100% - 40px) 40px); transition:clip-path .7s cubic-bezier(.85,0,.15,1); }
  #mobileMenu.open{ clip-path:circle(150% at calc(100% - 40px) 40px); }
  .nav-link{ position:relative; }
  .nav-link::after{ content:""; position:absolute; left:0; bottom:-4px; height:3px; width:0; background:#FF2943; transition:width .3s; }
  .nav-link:hover::after{ width:100%; }

/* ARF branding: black, silver and logo red */
.brand-logo{display:block;position:relative;width:100px;height:58px;overflow:hidden;background:#fff;flex-shrink:0;border:1px solid #d9dce2}
.brand-logo img{width:100px;height:100px;max-width:none;position:absolute;top:-21px;left:0}
header .leading-none{max-width:140px}
section[id]{scroll-margin-top:100px}
:focus-visible{outline:3px solid #FF2943;outline-offset:5px}
[hidden]{display:none!important}
@media(max-width:640px){.brand-logo{width:78px;height:48px}.brand-logo img{width:78px;height:78px;top:-15px} .service-head .truncate{white-space:normal;overflow:visible} #contact a[href^="mailto:"]{overflow-wrap:anywhere;min-width:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.reveal-line span{transform:none!important}}

#preloader .font-display {
  font-family: Arial, sans-serif;
  font-weight: 700;
  letter-spacing: 0.04em;
}
