@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700;800&display=swap";

:root{
  --color-primary:#f5b800; --color-secondary:#2e86de; --color-accent:#10b981;
  --color-surface:#1b2d4f; --color-text:#fff; --color-text-muted:#8b9db8;
  --color-bg:#0d1b2a; --color-whatsapp:#25d366;
  --font-heading:"Space Grotesk",sans-serif; --font-body:"Inter",sans-serif;
  --space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:3rem;--space-xl:5rem;--space-2xl:8rem;
  --container-max:1200px;--nav-height:72px;
  --radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:24px;--radius-full:9999px;
  --shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 20px rgba(0,0,0,.5);--shadow-lg:0 10px 40px rgba(0,0,0,.6);
  --glow:0 0 30px rgba(245,184,0,.25);--glow-strong:0 0 60px rgba(245,184,0,.5);
  --ease-out:cubic-bezier(.22,.61,.36,1);--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);
}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.no-scroll,html.no-scroll body{overflow:hidden}
body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden;cursor:none}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{cursor:pointer;border:none;font-family:inherit;color:inherit;background:none}
input,textarea,select{font-family:inherit;font-size:inherit}
.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
.skip-link{z-index:99999;background:var(--color-primary);color:var(--color-bg);padding:var(--space-sm);font-weight:600;position:absolute;left:-9999px}
.skip-link:focus{left:var(--space-sm);top:var(--space-sm)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.container{width:100%;max-width:var(--container-max);padding:0 var(--space-md);margin:0 auto}
.section{padding:var(--space-2xl) var(--space-md)}
@media (max-width:768px){.section{padding:var(--space-xl) var(--space-sm)}}

/* Cursor */
.cursor{position:fixed;top:0;left:0;z-index:99999;pointer-events:none;will-change:transform;opacity:0}
.cursor--ring{width:44px;height:44px;border:1.5px solid rgba(255,255,255,.5);border-radius:50%;transform:translate(-50%,-50%) scale(0)}
.cursor--ring.active{opacity:1}
.cursor--ring.hover{border-color:var(--color-primary);transform:translate(-50%,-50%) scale(1.7)}
.cursor--ring.hover::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(245,184,0,.4)}
.cursor--pill{display:none}
@media (hover:hover) and (pointer:fine){.cursor--pill{display:block;padding:.6rem 1.2rem;background:rgba(255,255,255,.08);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);transform:translate(-50%,-50%) scale(0);transition:transform .4s var(--ease-out)}.cursor--pill.active{transform:translate(-50%,-50%) scale(1)}}
@media (hover:none),(pointer:coarse){body{cursor:auto}.cursor{display:none}}

/* Loader */
.loader{position:fixed;inset:0;z-index:200;background:#081222;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .9s var(--ease-in-out)}
.loader.loaded{transform:translateY(-101%)}
.loader__inner{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:min(22rem,80vw)}
.loader__brand{opacity:0;animation:loaderBrand .6s var(--ease-out) .1s forwards}
.loader__logo{filter:brightness(0) saturate(100%) invert(78%) sepia(80%) saturate(2000%) hue-rotate(360deg)}
.loader__progress{width:100%;height:2px;background:rgba(255,255,255,.15);border-radius:9999px;overflow:hidden}
.loader__fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--color-primary),#ffd75e);border-radius:9999px}
.loader__meta{display:flex;justify-content:space-between;width:100%;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.loader__count{font-variant-numeric:tabular-nums;color:var(--color-primary);font-weight:700}
@keyframes loaderBrand{to{opacity:1}}

/* Scroll progress */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:150;background:linear-gradient(90deg,var(--color-primary),#ffd75e);box-shadow:0 0 12px rgba(245,184,0,.7)}

/* Navbar */
.navbar{position:fixed;top:0;left:0;right:0;z-index:120;transition:transform .5s var(--ease-out),background .5s ease}
.navbar.scrolled{background:rgba(8,18,34,.85);backdrop-filter:blur(14px)}
.navbar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--nav-height);max-width:var(--container-max);margin:0 auto;padding:0 var(--space-md)}
.navbar__logo img{height:52px;width:auto;transition:transform .4s var(--ease-out)}
.navbar__logo:hover img{transform:scale(1.04)}
.navbar__links{display:flex;align-items:center;gap:1.5rem}
.navbar__link{position:relative;font-size:.92rem;font-weight:500;color:var(--color-text-muted);transition:color .3s ease}
.navbar__link::after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:var(--color-primary);transition:width .35s var(--ease-out)}
.navbar__link:hover,.navbar__link--active{color:var(--color-text)}
.navbar__link:hover::after,.navbar__link--active::after{width:100%}
.navbar__link--active{color:var(--color-primary)}
.navbar__cta{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-bg);font-weight:700;font-size:.9rem;transition:transform .3s var(--ease-out),box-shadow .3s ease}
.navbar__cta:hover{transform:translateY(-2px);box-shadow:var(--glow)}
.hamburger{display:none;flex-direction:column;gap:5px;width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--radius-full);background:rgba(255,255,255,.08)}
.hamburger span{display:block;width:20px;height:2px;background:var(--color-text);border-radius:2px;transition:transform .3s ease,opacity .3s ease}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:820px){.navbar__links{display:none}.hamburger{display:flex}}
.navbar__links.mobile{display:flex;position:fixed;inset:var(--nav-height) auto auto 0;right:0;flex-direction:column;align-items:stretch;gap:0;background:rgba(8,18,34,.97);backdrop-filter:blur(14px);padding:1rem var(--space-md) 2rem;border-top:1px solid rgba(245,184,0,.2)}
.navbar__links.mobile li a{display:block;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:1.05rem}
.navbar__links.mobile .navbar__cta{margin-top:1rem;justify-content:center}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:#081222}
.hero__canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero__vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(8,18,34,.85) 100%)}
.hero__particles{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.9}
.hero__content{position:relative;z-index:3;max-width:var(--container-max);margin:0 auto;padding:calc(var(--nav-height) + 3rem) var(--space-md) 4rem;width:100%}
.hero__headline{font-family:var(--font-heading);font-size:clamp(2.6rem,8vw,6.5rem);font-weight:700;line-height:.98;letter-spacing:-.02em;max-width:20ch}
.hero__w{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero__w-inner{display:inline-block;opacity:0;transform:translateY(115%);will-change:transform}
.hero__w-inner.reveal{animation:heroWord 1.1s var(--ease-out-expo) forwards}
@keyframes heroWord{to{opacity:1;transform:translateY(0)}}
.hero__subtitle{margin-top:1.5rem;font-size:1.15rem;color:var(--color-text-muted);max-width:34rem}
.hero__location{margin-top:.5rem;font-size:.95rem;color:var(--color-primary);font-weight:500}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.hero__scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:.6rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-muted)}
.hero__scroll-line{width:1px;height:56px;background:linear-gradient(var(--color-primary),transparent);overflow:hidden;position:relative}
.hero__scroll-line::after{content:"";position:absolute;top:-20px;left:0;width:100%;height:20px;background:var(--color-primary);animation:scrollLine 2s var(--ease-in-out) infinite}
@keyframes scrollLine{0%{top:-20px}100%{top:100%}}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.9rem 1.8rem;border-radius:var(--radius-full);font-weight:600;font-size:.95rem;transition:transform .35s var(--ease-out),box-shadow .35s ease,background .3s ease}
.btn:hover{transform:translateY(-3px)}
.btn svg{transition:transform .3s ease}
.btn:hover svg{transform:scale(1.1)}
.btn--primary{background:var(--color-primary);color:var(--color-bg);box-shadow:var(--glow)}
.btn--primary:hover{box-shadow:var(--glow-strong)}
.btn--whatsapp{background:var(--color-whatsapp);color:#fff}
.btn--secondary{background:rgba(255,255,255,.08);color:var(--color-text);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(8px)}
.btn--secondary:hover{background:rgba(255,255,255,.14)}

/* Trust bar */
.trust-bar{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:2.5rem}
.trust-bar__item{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text-muted)}
.trust-bar__item svg{width:18px;height:18px;color:var(--color-primary);flex-shrink:0}
@media (max-width:640px){.trust-bar{gap:1rem}.trust-bar__item{font-size:.78rem}}

/* Floating contact */
.floating-contact{position:fixed;right:1.25rem;bottom:1.5rem;z-index:110;display:flex;flex-direction:column;gap:.8rem}
.floating-btn{width:54px;height:54px;border-radius:50%;background:rgba(8,18,34,.9);border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;color:var(--color-text);box-shadow:var(--shadow-md);backdrop-filter:blur(8px);transition:transform .3s var(--ease-out),background .3s ease}
.floating-btn:hover{transform:translateY(-3px) scale(1.06)}
.floating-btn svg{width:22px;height:22px}
.floating-btn--whatsapp{background:var(--color-whatsapp);border-color:transparent;position:relative}
.floating-btn--whatsapp::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--color-whatsapp);opacity:.6;animation:sosPulse 2s ease-out infinite}
@keyframes sosPulse{0%{transform:scale(.8);opacity:.7}100%{transform:scale(1.5);opacity:0}}

/* Section header */
.section__header{text-align:center;margin-bottom:var(--space-lg)}
.section__title{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3.4rem);font-weight:700;letter-spacing:-.02em;line-height:1.05}
.section__subtitle{margin-top:.9rem;color:var(--color-text-muted);font-size:1.05rem;max-width:40rem;margin-inline:auto}
.mask-line{display:inline-block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.mask-line-inner{display:inline-block;opacity:0;transform:translateY(110%);will-change:transform}
.mask-line-inner.reveal{animation:heroWord 1s var(--ease-out-expo) forwards}

/* Reveal default */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease-out-expo),transform .8s var(--ease-out-expo)}
[data-reveal].in{opacity:1;transform:translateY(0)}

/* About */
.about{background:var(--color-bg)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}
@media (max-width:820px){.grid-2{grid-template-columns:1fr;gap:var(--space-md)}}
.about__card{position:relative;align-self:start;border-radius:var(--radius-xl);background:linear-gradient(160deg,var(--color-surface),#132340);padding:2.5rem;overflow:hidden;box-shadow:var(--shadow-lg)}
.about__card::before{content:"";position:absolute;top:-40%;left:-20%;width:70%;height:80%;background:radial-gradient(circle,rgba(245,184,0,.25),transparent 70%);filter:blur(30px);opacity:.8}
.about__card-inner{position:relative}
.about__card-title{font-family:var(--font-heading);font-size:1.5rem;margin-bottom:.6rem}
.about__card-text{color:var(--color-text-muted)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:2rem}
.stats__item{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1rem .75rem;display:flex;flex-direction:column;gap:.4rem;align-items:center;text-align:center;justify-content:center;min-height:5.5rem;min-width:0;transition:transform .3s ease,border-color .3s ease}
.stats__item:hover{transform:translateY(-3px);border-color:rgba(245,184,0,.4)}
.stats__value{font-family:var(--font-heading);font-size:1.45rem;font-weight:700;color:var(--color-primary);line-height:1;letter-spacing:-.01em;white-space:nowrap}
.stats__value .count{display:inline-block}
.stats__label{font-size:.74rem;color:var(--color-text-muted);line-height:1.3;width:100%;overflow-wrap:anywhere}
@media (max-width:480px){.stats{grid-template-columns:1fr;gap:.6rem}.stats__item{flex-direction:row;justify-content:space-between;text-align:left;padding:.8rem 1rem;min-height:auto}.stats__value{font-size:1.3rem}.stats__label{font-size:.8rem;width:auto;text-align:right;overflow-wrap:normal;max-width:70%}}
.about__text-title{font-family:var(--font-heading);font-size:1.4rem;margin-bottom:1rem}
.about__text p{color:var(--color-text-muted);margin-bottom:1rem}
.features{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}
@media (max-width:640px){.features{grid-template-columns:1fr}}
.features__item{display:flex;gap:.9rem;align-items:flex-start;padding:1rem;border-radius:var(--radius-md);background:rgba(255,255,255,.04);transition:background .3s ease,transform .3s ease}
.features__item:hover{background:rgba(245,184,0,.08);transform:translateY(-3px)}
.features__icon{width:40px;height:40px;flex-shrink:0;border-radius:12px;background:rgba(245,184,0,.14);display:grid;place-items:center;color:var(--color-primary)}
.features__icon svg{width:20px;height:20px}
.features__text strong{font-size:.95rem}
.features__text span{font-size:.85rem;color:var(--color-text-muted)}
.process{display:flex;gap:1rem;margin-top:1.5rem}
@media (max-width:560px){.process{flex-direction:column;gap:1.5rem}}
.process__step{flex:1;text-align:center;position:relative;padding:1.5rem 1rem;border-radius:var(--radius-lg);background:rgba(255,255,255,.03)}
.process__node{width:44px;height:44px;margin:0 auto .8rem;border-radius:50%;background:var(--color-primary);color:var(--color-bg);display:grid;place-items:center;font-weight:700;box-shadow:var(--glow)}
.process__title{font-size:1rem;margin-bottom:.3rem}
.process__desc{font-size:.85rem;color:var(--color-text-muted)}

/* Services */
.services{background:linear-gradient(var(--color-bg),#0a1626)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media (max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.services-grid{grid-template-columns:1fr}}
.service-card{position:relative;padding:2rem;border-radius:var(--radius-lg);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);overflow:hidden;transition:transform .4s var(--ease-out),border-color .4s ease,background .4s ease}
.service-card::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(245,184,0,.15),transparent 70%);opacity:0;transition:opacity .4s ease}
.service-card:hover{transform:translateY(-8px);border-color:rgba(245,184,0,.4);background:rgba(245,184,0,.04)}
.service-card:hover::after{opacity:1}
.service-card__icon{font-size:2.2rem;color:var(--color-primary);margin-bottom:1rem}
.service-card__title{font-family:var(--font-heading);font-size:1.25rem;margin-bottom:.5rem}
.service-card__desc{font-size:.95rem;color:var(--color-text-muted)}

/* Why us */
.why-us{position:relative;background:var(--color-bg)}
.why-us__spotlight{position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),rgba(245,184,0,.06),transparent 60%)}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
@media (max-width:900px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.why-grid{grid-template-columns:1fr}}
.why-item{text-align:center;padding:2rem 1.5rem;border-radius:var(--radius-lg);background:rgba(255,255,255,.03);transition:transform .4s var(--ease-out),background .4s ease}
.why-item:hover{transform:translateY(-6px);background:rgba(245,184,0,.05)}
.why-item__icon{width:64px;height:64px;margin:0 auto 1rem;border-radius:50%;background:rgba(245,184,0,.12);display:grid;place-items:center;color:var(--color-primary)}
.why-item__icon svg{width:28px;height:28px}
.why-item__title{font-family:var(--font-heading);font-size:1.1rem;margin-bottom:.5rem}
.why-item__desc{font-size:.9rem;color:var(--color-text-muted)}

/* Contact */
.contact{background:linear-gradient(var(--color-bg),#081222)}
.contact__info-title{font-family:var(--font-heading);font-size:1.3rem;margin-bottom:1.2rem}
.contact-cards{display:flex;flex-direction:column;gap:1rem}
.contact-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;border-radius:var(--radius-md);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);transition:transform .3s ease,border-color .3s ease}
.contact-card:hover{transform:translateX(6px);border-color:rgba(245,184,0,.35)}
.contact-card__icon{width:44px;height:44px;flex-shrink:0;border-radius:12px;background:rgba(245,184,0,.14);display:grid;place-items:center;color:var(--color-primary)}
.contact-card__icon svg{width:20px;height:20px}
.contact-card__value{font-weight:600;font-size:1.05rem;transition:color .3s ease}
.contact-card__value:hover{color:var(--color-primary)}
.contact-card__label{font-size:.85rem;color:var(--color-text-muted)}
.live-badge{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--color-accent);margin-top:.3rem}
.live-badge__dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 8px var(--color-accent);animation:livePulse 1.6s ease-in-out infinite}
@keyframes livePulse{50%{opacity:.3}}
.social-proof{display:flex;align-items:center;gap:.6rem;margin-top:1.5rem;font-size:.9rem;color:var(--color-text-muted)}
.social-proof svg{color:var(--color-primary);flex-shrink:0}

/* Form */
.contact-form{display:flex;flex-direction:column;gap:1.2rem;padding:2rem;border-radius:var(--radius-xl);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.form__honeypot{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form__group{position:relative}
.form__input,.form__select,.form__textarea{width:100%;padding:.95rem 1rem;background:rgba(8,18,34,.9);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);color:var(--color-text);font-size:.95rem;outline:none;transition:border-color .3s ease,box-shadow .3s ease}
.form__input:focus,.form__select:focus,.form__textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(245,184,0,.12)}
.form__select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-primary) 50%),linear-gradient(135deg,var(--color-primary) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.form__label{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:.95rem;pointer-events:none;transition:all .25s ease;background:rgba(8,18,34,.9);padding:0 .4rem;border-radius:4px}
.form__group:focus-within .form__label,.form__group.has-value .form__label{top:0;font-size:.72rem;color:var(--color-primary);transform:translateY(-50%)}
.form__textarea{resize:none;min-height:120px}
.form__textarea+.form__label{top:1.2rem;transform:none}
.form__textarea:focus+.form__label,.form__group.has-value .form__textarea+.form__label{top:-0.4rem;transform:translateY(-50%)}
.security-badge{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--color-text-muted)}
.security-badge svg{width:16px;height:16px;color:var(--color-accent)}
.submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 2rem;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-bg);font-weight:700;font-size:1rem;transition:transform .3s ease,box-shadow .3s ease}
.submit-btn:hover{transform:translateY(-2px);box-shadow:var(--glow-strong)}
.submit-btn__spinner{display:none;width:16px;height:16px}
.submit-btn.loading .submit-btn__spinner{display:block;animation:spin .7s linear infinite}
.submit-btn__circle{display:block;width:100%;height:100%;border:2px solid var(--color-bg);border-top-color:transparent;border-radius:50%}
@keyframes spin{to{transform:rotate(360deg)}}

.map-wrap{margin-top:var(--space-lg);border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-lg)}
.map-wrap iframe{width:100%;height:360px;border:0;display:block;filter:grayscale(.3) contrast(1.05)}

/* Footer */
.footer{position:relative;background:#081222;padding:var(--space-xl) var(--space-md) 2.5rem;overflow:hidden;border-top:1px solid rgba(245,184,0,.15)}
.footer__wordmark{position:absolute;bottom:-6%;left:50%;transform:translateX(-50%);font-family:var(--font-heading);font-weight:700;font-size:clamp(5rem,16vw,17rem);line-height:1;color:rgba(255,255,255,.035);pointer-events:none;user-select:none;white-space:nowrap;letter-spacing:-.03em}
.footer__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;max-width:var(--container-max);margin:0 auto;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.08)}
@media (max-width:820px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer__grid{grid-template-columns:1fr}}
.footer__heading{font-family:var(--font-heading);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);margin-bottom:1rem}
.footer__text{font-size:.9rem;color:var(--color-text-muted)}
.footer__link{display:block;font-size:.9rem;color:var(--color-text-muted);margin-bottom:.5rem;transition:color .3s ease,transform .3s ease}
.footer__link:hover{color:var(--color-text);transform:translateX(4px)}
.footer__bottom{position:relative;z-index:2;max-width:var(--container-max);margin:2rem auto 0;text-align:center;font-size:.85rem;color:var(--color-text-muted)}

/* Back to top */
.back-to-top{position:fixed;bottom:1.5rem;left:1.25rem;z-index:110;width:50px;height:50px;border-radius:50%;background:var(--color-primary);color:var(--color-bg);display:grid;place-items:center;box-shadow:var(--glow);opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .4s ease,transform .4s ease}
.back-to-top.show{opacity:1;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{box-shadow:var(--glow-strong)}
.back-to-top svg{width:20px;height:20px}

/* Cookie */
.cookie-banner{position:fixed;bottom:1rem;left:1rem;right:1rem;z-index:115;max-width:520px;margin-inline:auto;background:rgba(8,18,34,.97);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);padding:1.2rem;box-shadow:var(--shadow-lg);backdrop-filter:blur(10px);display:flex;align-items:center;gap:1rem;flex-wrap:wrap;transform:translateY(120%);transition:transform .5s var(--ease-out)}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner__text{font-size:.85rem;flex:1;min-width:220px;color:var(--color-text-muted)}
.cookie-banner__text strong{color:var(--color-text)}
.cookie-banner__link{color:var(--color-primary);text-decoration:underline}
.cookie-banner__btn{padding:.6rem 1.4rem;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-bg);font-weight:700;font-size:.85rem}

/* Confetti */
.confetti{position:fixed;inset:0;pointer-events:none;z-index:180;display:none}
.confetti.active{display:block}
.confetti span{position:absolute;top:-10px;width:8px;height:12px;border-radius:2px;opacity:.9;animation:confFall linear forwards}
@keyframes confFall{to{transform:translateY(110vh) rotate(720deg);opacity:.6}}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,:before,:after{animation:none!important;transition:none!important}
  body{cursor:auto}
  .cursor{display:none}
  [data-reveal],.mask-line-inner,.hero__w-inner{opacity:1!important;transform:none!important}
}
