  @font-face{
    font-family:"Aeromaze";
    src:url('assets/fonts/aeromaze-medium.otf') format('opentype');
    font-weight:500; font-style:normal; font-display:swap;
  }

  :root{
    --base:#0D0D0D;
    --surface:#1A1A2E;
    --azul:#4F8EF7;
    --violeta:#8B5CF6;
    --glow:linear-gradient(135deg, var(--azul), var(--violeta));
    --accent:var(--violeta);
    --text:#F5F5F5;
    --text-muted:rgba(245,245,245,0.62);
    --text-dim:rgba(245,245,245,0.40);
    --hairline:rgba(245,245,245,0.08);
  }

  *,*::before,*::after{ box-sizing:border-box; }
  *{ margin:0; padding:0; }

  html{ scroll-behavior:smooth; }
  body{
    background:var(--base);
    color:var(--text);
    font-family:"General Sans", system-ui, -apple-system, sans-serif;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    overflow-x:clip;
  }

  /* ---------- PRELOADER ---------- */
  .preloader{
    position:fixed; inset:0; z-index:100;
    background:var(--base);
    display:flex; align-items:center; justify-content:center;
    animation: plFade .6s ease 1.5s forwards;
  }
  .preloader__bar{ position:absolute; top:0; left:0; height:2px; width:0; background:var(--glow); animation: plLoad 1.2s cubic-bezier(.5,.1,.2,1) forwards; }
  .preloader__name{ font-family:"Aeromaze","General Sans",sans-serif; font-weight:500; font-size:1.9rem; letter-spacing:0.08em; color:var(--text); opacity:0; animation: nameIn .8s ease .2s forwards; }
  @keyframes plLoad{ to{ width:100%; } }
  @keyframes plFade{ to{ opacity:0; visibility:hidden; } }
  @keyframes nameIn{ from{ opacity:0; transform:translateY(6px); filter:blur(5px); } to{ opacity:1; transform:none; filter:none; } }

  /* ---------- PAGE GRAIN (full page, subtle film texture) ---------- */
  .grain{
    position:fixed; inset:0; z-index:3; pointer-events:none;
    width:100vw; height:100vh; opacity:0.09; mix-blend-mode:overlay;
    -webkit-mask-image:linear-gradient(to top,#000 0%, rgba(0,0,0,0.6) 40%, transparent 82%);
            mask-image:linear-gradient(to top,#000 0%, rgba(0,0,0,0.6) 40%, transparent 82%);
  }

  /* ---------- NAV ---------- */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:6;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px clamp(20px,5vw,64px);
    border-bottom:1px solid transparent;
    opacity:0; animation: rise .7s ease 1.55s forwards;
    transition:background .3s ease, padding .3s ease, border-color .3s ease, backdrop-filter .3s ease;
  }
  .nav.scrolled{
    background:rgba(13,13,13,0.72);
    -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
    border-bottom-color:var(--hairline);
    padding-top:14px; padding-bottom:14px;
  }
  .logo{ font-family:"Aeromaze","General Sans",sans-serif; font-weight:500; font-size:1.4rem; letter-spacing:0.06em; color:var(--text); text-decoration:none; }
  .nav__links{ display:flex; align-items:center; gap:clamp(16px,2.4vw,36px); }
  .nav__links a{ color:var(--text-muted); font-size:0.92rem; font-weight:500; text-decoration:none; }
  .nav__links a:hover{ color:var(--text); }
  .nav__links a:not(.nav__cta){ transition:color .2s ease, box-shadow .25s ease, transform .18s ease; }
  .nav__links a:not(.nav__cta):hover{ box-shadow:0 8px 30px rgba(99,102,241,0.45); transform:translateY(-2px); }
  .nav__cta{
    color:var(--text) !important; border:1px solid var(--hairline);
    padding:8px 18px; border-radius:999px;
    transition:border-color .2s ease, background .2s ease, box-shadow .25s ease, transform .18s ease;
  }
  .nav__cta:hover{ border-color:rgba(139,92,246,0.55); background:rgba(139,92,246,0.08); box-shadow:0 8px 30px rgba(99,102,241,0.45); transform:translateY(-2px); }

  /* ---------- HERO ---------- */
  .hero{ position:relative; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; }

  .hero__media{
    position:absolute; inset:0; z-index:0; overflow:hidden;
    background-color:#0b0c10;
    background-image:
      radial-gradient(60% 50% at 68% 28%, rgba(120,140,170,0.18), transparent 70%),
      radial-gradient(70% 60% at 28% 82%, rgba(40,44,66,0.5), transparent 75%),
      linear-gradient(158deg,#14151c 0%,#0c0d12 55%,#08080b 100%);
    background-size:cover; background-position:center;
  }
  .hero__media-el{
    position:absolute; inset:0; display:block; width:100%; height:100%;
    object-fit:cover; object-position:center 38%;
  }
  @media (max-width:640px){ .hero__media-el{ object-position:center; } }

  .hero__scrim{
    position:absolute; inset:0; z-index:1;
    background:
      radial-gradient(75% 55% at 50% 42%, rgba(8,8,10,0.55), rgba(8,8,10,0) 72%),
      linear-gradient(to bottom, rgba(8,8,10,0.45) 0%, rgba(8,8,10,0.12) 30%, rgba(8,8,10,0.22) 60%, rgba(8,8,10,0.82) 100%);
  }
  /* Edge glow now scoped to the hero only — it frames the entrance, interior sections stay calm */
  .hero__edge-glow{
    position:absolute; inset:0; z-index:2; pointer-events:none;
    background:
      radial-gradient(100% 80% at 0% 0%, rgba(79,142,247,0.14), transparent 44%),
      radial-gradient(100% 90% at 100% 100%, rgba(139,92,246,0.16), transparent 46%);
    box-shadow: inset 0 0 220px 50px rgba(0,0,0,0.55);
  }

  .hero__inner{
    position:relative; z-index:5; flex:1;
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    padding:120px clamp(20px,5vw,40px) 40px;
  }
  .hero__inner > *{ opacity:0; }

  .badge{
    display:inline-flex; align-items:center; gap:9px; padding:7px 16px; border-radius:999px;
    background:rgba(26,26,46,0.55); border:1px solid var(--hairline);
    -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
    font-size:0.78rem; font-weight:500; letter-spacing:0.04em; color:var(--text-muted);
    animation: rise .7s ease 1.5s forwards;
  }
  .badge-dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px var(--accent); }

  .headline{
    margin-top:26px; font-size:clamp(2.5rem,6.4vw,5rem); font-weight:700; line-height:1.04; letter-spacing:-0.025em;
    animation: rise .75s cubic-bezier(.2,.7,.2,1) 1.62s forwards;
  }
  .headline .line{ display:block; }
  .headline .accent{ color:var(--accent); }

  .sub{
    max-width:48ch; margin:24px auto 0; font-size:clamp(1rem,1.3vw,1.15rem); line-height:1.55; font-weight:400;
    color:rgba(245,245,245,0.72); animation: rise .75s ease 1.74s forwards;
  }

  .hero__cta-row{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:34px; animation: rise .75s ease 1.86s forwards; }
  .btn{
    padding:14px 26px; border-radius:12px; font-weight:600; font-size:0.95rem;
    text-decoration:none; cursor:pointer; display:inline-block;
    transition:transform .18s ease, box-shadow .25s ease, background .25s ease, border-color .2s ease;
  }
  .btn--primary{ color:#fff; background:var(--glow); box-shadow:0 8px 30px rgba(99,102,241,0.32); }
  .btn--primary:hover{ transform:translateY(-2px); box-shadow:0 12px 42px rgba(99,102,241,0.5); }
  .btn--ghost{ color:var(--text); background:rgba(245,245,245,0.04); border:1px solid var(--hairline); }
  .btn--ghost:hover{ border-color:rgba(245,245,245,0.26); background:rgba(245,245,245,0.07); }
  .btn--glow{ position:relative; border-radius:18px; color:#fff; font-weight:700;
    background:linear-gradient(180deg, #6e2df5 0%, #5b17e6 42%, #5112e0 58%, #6928f2 100%);
    box-shadow:0 14px 34px rgba(98,30,238,0.55), inset 0 1px 0 rgba(255,255,255,0.3), inset 0 -6px 12px rgba(13,13,13,0.22);
    transition:transform .18s ease, box-shadow .25s ease; }
  .btn--glow::before{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
    background:radial-gradient(60% 55% at 32% 18%, rgba(255,255,255,0.28), transparent 65%); }
  .btn--glow:hover{ transform:translateY(-2px);
    box-shadow:0 18px 42px rgba(98,30,238,0.65), inset 0 1px 0 rgba(255,255,255,0.35), inset 0 -6px 12px rgba(13,13,13,0.22); }
  .btn--muted{ position:relative; border-radius:18px; color:#c7b8fb; font-weight:700;
    background:linear-gradient(135deg, rgba(79,142,247,0.14), rgba(139,92,246,0.16));
    border:1px solid rgba(139,92,246,0.32); box-shadow:none; }
  .btn--muted:hover{ transform:translateY(-2px); color:#fff; border-color:rgba(139,92,246,0.55);
    background:linear-gradient(135deg, rgba(79,142,247,0.22), rgba(139,92,246,0.26)); }

  .marquee__band{
    position:relative; z-index:5; padding:14px 0;
    background:rgba(10,10,14,0.5);
    -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
    border-top:1px solid var(--hairline);
    border-bottom:1px solid var(--hairline);
    opacity:0; animation: rise .8s ease 1.95s forwards;
  }
  .marquee{
    overflow:hidden;
    -webkit-mask-image:linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
            mask-image:linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
  }
  .marquee__track{ display:flex; width:max-content; animation: marquee-scroll 32s linear infinite; }
  .marquee:hover .marquee__track{ animation-play-state:paused; }
  .marquee__group{ display:flex; align-items:center; flex:0 0 auto; }
  .marquee__item{ font-size:0.72rem; text-transform:uppercase; letter-spacing:0.16em; color:var(--text-dim); white-space:nowrap; }
  .marquee__sep{ color:var(--accent); margin:0 clamp(16px,3vw,42px); font-size:0.9rem; line-height:1; }
  @keyframes marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

  @keyframes rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }

  /* ============================================================
     SECTIONS — shared editorial system
     ============================================================ */
  .section{ position:relative; z-index:5; padding:clamp(96px,14vh,180px) clamp(20px,5vw,64px); }
  .section__inner{ max-width:1180px; margin:0 auto; }

  .section-head{ max-width:760px; margin-bottom:clamp(56px,9vh,104px); }
  .kicker{ display:inline-flex; align-items:center; gap:13px; margin-bottom:22px; }
  .kicker__line{ display:none; }
  .kicker__text{ font-size:1rem; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); }
  .section-head__title{ font-size:clamp(2.1rem,4.4vw,3.4rem); font-weight:700; line-height:1.1; letter-spacing:-0.025em; }
  .section-head__title .accent{ color:var(--accent); }

  /* ---------- SERVICE ROWS ---------- */
  .service{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px); align-items:center; }
  .service + .service{ margin-top:clamp(84px,13vh,160px); }

  .service__media{
    position:relative; width:100%; max-width:460px; aspect-ratio:4/5;
    border-radius:18px; overflow:hidden; border:1px solid var(--hairline); background:#0c0d12;
    justify-self:start;
    box-shadow:0 30px 90px rgba(99,102,241,0.22);
  }
  .service--reverse .service__media{ order:2; justify-self:end; }
  .service--reverse .service__content{ order:1; }
  .service__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
  .service__media:hover img{ transform:scale(1.045); }
  .service__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(8,8,12,0.55), transparent 42%); }
  .service__tag{
    position:absolute; top:14px; left:14px; z-index:2;
    display:inline-flex; align-items:center; gap:7px; padding:6px 13px; border-radius:999px;
    background:rgba(13,13,13,0.5); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
    border:1px solid var(--hairline); font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-muted);
  }
  .service__tag::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent); }

  .service__index{ display:flex; align-items:center; gap:14px; margin-bottom:22px; }
  .service__num{ font-size:0.85rem; font-weight:600; letter-spacing:0.04em; color:var(--accent); font-variant-numeric:tabular-nums; }
  .service__index-label{ font-size:0.74rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--text-dim); }
  .service__index-line{ flex:1; height:1px; background:var(--hairline); }

  .service__title{ font-size:clamp(1.7rem,2.6vw,2.3rem); font-weight:700; line-height:1.12; letter-spacing:-0.02em; margin-bottom:16px; }
  .service__lead{ font-size:clamp(1.05rem,1.35vw,1.22rem); line-height:1.5; color:var(--text); font-weight:500; margin-bottom:18px; }
  .service__desc{ font-size:0.98rem; line-height:1.62; color:var(--text-muted); max-width:56ch; margin-bottom:34px; }

  .service__block-label{ display:flex; align-items:center; gap:9px; font-size:0.74rem; font-weight:500; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); margin-bottom:20px; }
  .service__block-label::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent); }

  .steps{ list-style:none; counter-reset:step; margin-bottom:14px; }
  .steps li{ counter-increment:step; position:relative; padding:0 0 22px 44px; }
  .steps li:last-child{ padding-bottom:0; }
  .steps li::before{
    content:counter(step,decimal-leading-zero); position:absolute; left:0; top:-3px;
    width:30px; height:30px; border-radius:50%;
    border:1px solid rgba(139,92,246,0.5); background:rgba(139,92,246,0.08);
    color:var(--accent); font-size:0.78rem; font-weight:600;
    display:flex; align-items:center; justify-content:center;
  }
  .steps li::after{ content:""; position:absolute; left:14px; top:30px; bottom:4px; width:1px; background:var(--hairline); }
  .steps li:last-child::after{ display:none; }
  .steps li span{ font-size:0.95rem; line-height:1.5; color:var(--text-muted); display:block; padding-top:5px; }
  .steps__note{ font-size:0.88rem; color:var(--text-dim); font-style:italic; margin-bottom:34px; }

  .benefits{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:13px 26px; margin-bottom:8px; }
  .benefits li{ position:relative; padding-left:27px; font-size:0.92rem; line-height:1.45; color:var(--text-muted); }
  .benefits li::before{
    content:""; position:absolute; left:3px; top:3px; width:7px; height:12px;
    border:solid var(--accent); border-width:0 2px 2px 0; transform:rotate(45deg);
  }

  .service__note{
    margin-top:30px; padding:16px 22px; border-left:2px solid rgba(139,92,246,0.55);
    background:rgba(139,92,246,0.05); border-radius:0 10px 10px 0;
    font-size:0.92rem; line-height:1.55; color:var(--text-muted); font-style:italic;
  }
  .service__note strong{ color:var(--text); font-style:normal; font-weight:600; }


  /* ---------- SERVICE VIDEO (Producción con IA) ---------- */
  .service--video .service__media{ aspect-ratio:9/16; max-width:340px; }
  .service__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; background:#0c0d12; }
  .service--video .service__media::after{ background:linear-gradient(to top, rgba(8,8,12,0.35), transparent 30%); }
  .service__play{ position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center;
    background:transparent; border:none; cursor:pointer; padding:0;
    transition:opacity .3s ease, visibility .3s ease; }
  .service__play-btn{ width:76px; height:76px; display:flex; align-items:center; justify-content:center;
    filter:drop-shadow(0 8px 20px rgba(0,0,0,0.55));
    transition:transform .3s ease; }
  .service__play:hover .service__play-btn{ transform:scale(1.1); }
  .service__play-btn svg{ width:76px; height:76px; }
  .service__play.hidden{ opacity:0; visibility:hidden; pointer-events:none; }


  /* ---------- GROWTH PREMIUM BAND ---------- */
  .premium{
    margin-top:clamp(96px,14vh,170px); position:relative; border-radius:24px; padding:1.5px;
    background:linear-gradient(135deg, rgba(79,142,247,0.85), rgba(139,92,246,0.85));
    box-shadow:0 30px 90px rgba(99,102,241,0.22);
  }
  .premium__inner{
    position:relative; border-radius:22.5px; overflow:hidden;
    background:linear-gradient(160deg,#15131f,#0e0d14);
    padding:clamp(34px,5vw,58px);
    display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(28px,4vw,56px); align-items:center;
  }
  .premium__inner::before{ content:""; position:absolute; top:-40%; right:-8%; width:380px; height:380px; background:radial-gradient(circle, rgba(139,92,246,0.28), transparent 70%); pointer-events:none; }
  .premium__copy{ position:relative; z-index:1; }
  .premium__badge{ display:inline-flex; align-items:center; gap:8px; font-size:0.74rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); font-weight:500; margin-bottom:18px; }
  .premium__badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent); }
  .premium__q{ font-size:clamp(1.5rem,2.7vw,2.15rem); font-weight:700; letter-spacing:-0.02em; line-height:1.15; margin-bottom:14px; }
  .premium__q .accent{ color:var(--accent); }
  .premium__text{ font-size:1rem; line-height:1.6; color:var(--text-muted); max-width:48ch; }
  .premium__text strong{ color:var(--text); font-weight:600; }
  .premium__offer{ position:relative; z-index:1; }
  .premium__price-old{ font-size:1.05rem; color:var(--text-dim); text-decoration:line-through; }
  .premium__price-new{ font-size:clamp(2.4rem,4.2vw,3.3rem); font-weight:700; letter-spacing:-0.02em; line-height:1; margin:4px 0 2px; background:var(--glow); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .premium__price-per{ font-size:0.95rem; color:var(--text-muted); margin-bottom:24px; }
  .premium__btn{ display:inline-flex; align-items:center; gap:8px; }

  /* ---------- PAQUETES ---------- */
  .packages__cat{ margin-bottom:clamp(72px,11vh,128px); }
  .packages__cat:last-child{ margin-bottom:0; }
  .packages__cat-head{ margin-bottom:38px; max-width:680px; }
  .packages__cat-label{ display:inline-flex; align-items:center; gap:11px; font-size:0.8rem; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--accent); }
  .packages__cat-label::before{ content:""; width:28px; height:1px; background:var(--accent); opacity:.6; }
  .packages__cat-sub{ margin-top:15px; font-size:0.98rem; line-height:1.55; color:var(--text-muted); }

  .packages__grid{ display:grid; gap:20px; align-items:stretch; }
  .packages__grid-3{ grid-template-columns:repeat(3,1fr); }
  .packages__grid-2{ grid-template-columns:repeat(2,1fr); }

  .plan{ position:relative; display:flex; flex-direction:column; background:rgba(255,255,255,0.018); border:1px solid var(--hairline); border-radius:18px; padding:32px 28px; transition:border-color .25s ease, transform .25s ease, background .25s ease; }
  .plan:not(.plan--featured):hover{ border-color:rgba(245,245,245,0.18); transform:translateY(-4px); background:rgba(255,255,255,0.03); }

  .plan--featured{ position:relative; display:flex; border:none; padding:1.5px; border-radius:18px;
    background:linear-gradient(135deg, rgba(79,142,247,0.85), rgba(139,92,246,0.85));
    box-shadow:0 30px 80px rgba(99,102,241,0.20); transition:transform .25s ease; }
  .plan--featured:hover{ transform:translateY(-4px); }
  .plan--featured .plan__inner{ flex:1; display:flex; flex-direction:column; border-radius:16.5px; padding:32px 28px;
    background:linear-gradient(160deg,#15131f,#0e0d14); }
  .plan__badge{ position:absolute; top:-12px; left:28px; z-index:2; display:inline-flex; align-items:center; gap:7px;
    padding:6px 14px; border-radius:30px; font-size:0.7rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
    color:#fff; background:var(--glow); box-shadow:0 8px 24px rgba(99,102,241,0.4); }

  .plan__name{ font-size:1.3rem; font-weight:700; letter-spacing:-0.01em; margin-bottom:7px; }
  .plan__for{ font-size:0.86rem; line-height:1.5; color:var(--text-dim); margin-bottom:22px; }
  .packages__grid-3 .plan__for{ min-height:54px; }
  .packages__grid-2 .plan__for{ min-height:42px; }
  .plan__price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:6px; margin-bottom:5px; }
  .plan__amount{ font-size:2.5rem; font-weight:700; letter-spacing:-0.02em; line-height:1; }
  .plan--featured .plan__amount{ background:var(--glow); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .plan__per{ font-size:0.95rem; color:var(--text-muted); }
  .plan__save{ display:inline-flex; align-items:center; padding:4px 11px; border-radius:30px; font-size:0.72rem; font-weight:600;
    letter-spacing:0.04em; color:var(--violeta); background:rgba(139,92,246,0.12); border:1px solid rgba(139,92,246,0.32); margin-left:4px; }
  .plan__meta{ font-size:0.8rem; color:var(--text-dim); margin-bottom:24px; }
  .plan__price + .plan__feats, .plan__price + .combo__groups{ margin-top:24px; }

  .plan__feats{ list-style:none; display:flex; flex-direction:column; gap:11px; margin-bottom:26px; }
  .plan__feats li{ position:relative; padding-left:26px; font-size:0.9rem; line-height:1.45; color:var(--text-muted); }
  .plan__feats li::before{ content:""; position:absolute; left:4px; top:3px; width:6px; height:11px;
    border:solid var(--accent); border-width:0 2px 2px 0; transform:rotate(45deg); }
  .plan__feats strong{ color:var(--text); font-weight:600; }

  .plan__cta{ margin-top:auto; text-align:center; width:100%; }

  /* add-ons strip */
  .addons{ margin-top:28px; display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px; padding:22px 26px;
    border:1px dashed rgba(245,245,245,0.14); border-radius:14px; background:rgba(255,255,255,0.012); }
  .addons__label{ font-size:0.78rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); }
  .addons__hint{ font-size:0.85rem; color:var(--text-dim); margin-right:4px; }
  .addons__list{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; }
  .addons__list li{ display:inline-flex; align-items:baseline; gap:7px; padding:8px 14px; border-radius:30px;
    border:1px solid var(--hairline); background:rgba(255,255,255,0.02); font-size:0.85rem; color:var(--text-muted); }
  .addons__list .addons__price{ font-weight:600; color:var(--text); }

  .packages__note{ margin-top:22px; font-size:0.86rem; line-height:1.5; color:var(--text-dim); font-style:italic; }
  .packages__note strong{ color:var(--text-muted); font-style:normal; font-weight:500; }

  /* bridge / enganche */
  .bridge{ position:relative; text-align:center; max-width:780px; margin:0 auto clamp(64px,9vh,104px);
    padding:clamp(40px,6vw,64px) clamp(24px,4vw,48px); }
  .bridge::before{ content:""; position:absolute; inset:0; border-radius:24px;
    background:radial-gradient(ellipse at center, rgba(139,92,246,0.10), transparent 70%); pointer-events:none; }
  .bridge__q{ position:relative; font-size:clamp(1.5rem,3vw,2.3rem); font-weight:700; line-height:1.18; letter-spacing:-0.02em; margin-bottom:18px; }
  .bridge__q .accent{ color:var(--accent); }
  .bridge__text{ position:relative; font-size:1rem; line-height:1.6; color:var(--text-muted); max-width:56ch; margin:0 auto 26px; }
  .bridge__arrow{ position:relative; display:inline-flex; align-items:center; gap:8px; font-size:0.8rem; font-weight:600;
    letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); }

  /* combo cards */
  .packages__cat-combo .plan{ padding:36px 32px; }
  .packages__cat-combo .plan--featured{ padding:1px; }
  .packages__cat-combo .plan--featured .plan__inner{ padding:36px 32px; border-radius:17px; }
  .combo__formula{ font-size:0.82rem; color:var(--accent); font-weight:500; margin-bottom:18px; }
  .combo__groups{ margin-bottom:28px; }
  .combo__group{ margin-bottom:22px; }
  .combo__group:last-child{ margin-bottom:0; }
  .combo__group-label{ display:block; font-size:0.72rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase;
    color:var(--text-dim); margin-bottom:13px; padding-bottom:9px; border-bottom:1px solid var(--hairline); }
  .packages__cat-combo .plan__feats{ margin-bottom:0; gap:9px; }

  @media (max-width:880px){
    .packages__grid-3, .packages__grid-2{ grid-template-columns:1fr; max-width:460px; }
    .packages__grid-3 .plan__for, .packages__grid-2 .plan__for{ min-height:0; }
  }

  /* ---------- PORTAFOLIO PREVIEW ---------- */
  .portfolio-preview__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px 22px; margin-bottom:46px; }
  .portfolio-preview__grid .work__media{ aspect-ratio:9/16; }
  .work{ display:flex; flex-direction:column; }
  .work__media{ position:relative; aspect-ratio:4/5; border-radius:14px; overflow:hidden; border:1px solid var(--hairline);
    background:linear-gradient(150deg,#17171f,#0e0e14); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:transform .4s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s; }
  .work__media:hover{ transform:translateY(-4px); border-color:rgba(139,92,246,0.4); box-shadow:0 18px 40px rgba(0,0,0,0.5); }
  .work__play{ position:relative; z-index:2; width:80px; height:80px;
    display:flex; align-items:center; justify-content:center;
    filter:drop-shadow(0 8px 20px rgba(0,0,0,0.55));
    transition:transform .3s; }
  .work__media:hover .work__play{ transform:scale(1.1); }
  .work__play svg{ width:80px; height:80px; }
  .work__icon{ width:34px; height:34px; color:var(--text-dim); opacity:.55; transition:opacity .3s; }
  .work__media:hover .work__icon{ opacity:.85; }
  .work__cap{ text-align:center; padding:15px 8px 2px; }
  .work__cap-top{ display:flex; align-items:baseline; justify-content:center; gap:9px; margin-bottom:7px; }
  .work__brand{ font-size:1.02rem; font-weight:600; letter-spacing:-0.01em; color:var(--text); }
  .work__year{ font-size:0.78rem; color:var(--accent); font-weight:500; letter-spacing:0.04em; }
  .work__desc{ font-size:0.72rem; line-height:1.5; letter-spacing:0.055em; text-transform:uppercase; color:var(--text-dim); max-width:32ch; margin:0 auto; }
  .portfolio-preview__foot{ text-align:center; }
  @media (max-width:880px){ .portfolio-preview__grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .portfolio-preview__grid{ grid-template-columns:1fr; max-width:330px; margin-left:auto; margin-right:auto; } }

  /* ---------- FAQ ---------- */
  .faq__groups{ max-width:860px; margin-top:6px; }
  .faq__group{ margin-bottom:54px; }
  .faq__group:last-child{ margin-bottom:0; }
  .faq__group-head{ display:flex; align-items:baseline; gap:18px; padding-top:27px; border-top:1px solid rgba(245,245,245,0.15); margin-bottom:12px; }
  .faq__group-index{ font-size:1rem; font-weight:600; letter-spacing:0.02em; color:var(--accent); font-variant-numeric:tabular-nums; }
  .faq__group-title{ font-size:1.45rem; font-weight:600; letter-spacing:-0.02em; color:var(--text); line-height:1.1; }
  .faq__group-count{ margin-left:auto; font-size:0.76rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-dim); white-space:nowrap; }

  .faq__item{ border-bottom:1px solid var(--hairline); }
  .faq__question{ width:100%; background:none; border:none; cursor:pointer; text-align:left; display:flex; align-items:center; gap:20px;
    padding:21px 4px; font-family:inherit; color:var(--text); font-size:1.02rem; font-weight:500; letter-spacing:-0.01em; transition:color .2s; }
  .faq__question > span:first-child{ flex:1; }
  .faq__question:hover{ color:var(--accent); }
  .faq__icon{ position:relative; flex:0 0 16px; width:16px; height:16px; color:var(--text-muted); transition:color .2s; }
  .faq__question:hover .faq__icon{ color:var(--accent); }
  .faq__icon::before, .faq__icon::after{ content:""; position:absolute; background:currentColor; }
  .faq__icon::before{ top:7px; left:0; width:16px; height:2px; border-radius:2px; }
  .faq__icon::after{ left:7px; top:0; width:2px; height:16px; border-radius:2px; transition:transform .3s ease, opacity .3s ease; }
  .faq__item.open .faq__icon{ color:var(--accent); }
  .faq__item.open .faq__icon::after{ transform:scaleY(0); opacity:0; }

  .faq__answer{ overflow:hidden; max-height:0; transition:max-height .35s ease; }
  .faq__answer-inner{ padding:0 4px 24px; max-width:72ch; font-size:0.95rem; line-height:1.65; color:var(--text-muted); }
  .faq__answer-inner strong{ color:var(--text); font-weight:600; }

  .faq__foot{ margin-top:58px; max-width:860px; text-align:center; }
  .faq__btn{ display:inline-flex; align-items:center; padding:15px 32px; border-radius:999px; text-decoration:none;
    font-size:1rem; font-weight:600; letter-spacing:-0.01em; color:var(--text);
    background:rgba(139,92,246,0.10); border:1px solid rgba(139,92,246,0.5);
    transition:background .3s, border-color .3s, transform .25s, box-shadow .3s; }
  .faq__btn:hover{ background:rgba(139,92,246,0.18); border-color:var(--violeta); transform:translateY(-3px); box-shadow:0 14px 40px rgba(139,92,246,0.28); }

  /* ---------- SOBRE MÍ ---------- */
  .about__split{ display:grid; grid-template-columns:minmax(300px,400px) 1fr; gap:clamp(40px,6vw,80px); margin-top:54px; align-items:start; }
  .about__portrait{ position:sticky; top:108px; }
  .about__portrait-frame{ position:relative; aspect-ratio:4/5; border-radius:16px; overflow:hidden; border:1px solid var(--hairline);
    background:linear-gradient(155deg,#1b1b26,#0e0e14); display:flex; align-items:center; justify-content:center;
    box-shadow:0 30px 90px rgba(99,102,241,0.22); }
  .about__portrait-frame::before, .about__portrait-frame::after{ content:"+"; position:absolute; top:50%; transform:translateY(-50%);
    color:rgba(245,245,245,0.20); font-size:16px; font-weight:300; pointer-events:none; }
  .about__portrait-frame::before{ left:10px; }
  .about__portrait-frame::after{ right:10px; }
  .about__portrait-icon{ width:66px; height:66px; color:var(--text-dim); opacity:.4; }
  .about__portrait-cap{ margin-top:18px; }
  .about__portrait-name{ font-size:1.1rem; font-weight:600; letter-spacing:-0.01em; }
  .about__portrait-role{ margin-top:5px; font-size:0.76rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-dim); }

  .about__story{ max-width:640px; }
  .about__story p{ font-size:1.02rem; line-height:1.75; color:var(--text-muted); margin-bottom:22px; }
  .about__story p:last-of-type{ margin-bottom:0; }
  .about__story strong{ color:var(--text); font-weight:600; }

  .about__quote-block{ margin-top:40px; padding-left:26px; border-left:2px solid var(--accent); }
  .about__quote{ font-size:clamp(1.4rem,2.3vw,1.9rem); font-weight:500; line-height:1.3; letter-spacing:-0.02em; color:var(--text); margin-bottom:14px; }
  .about__quote .accent{ color:var(--accent); }
  .about__close-text{ font-size:0.98rem; line-height:1.7; color:var(--text-muted); }

  @media (max-width:880px){
    .about__split{ grid-template-columns:1fr; gap:40px; }
    .about__portrait{ position:static; max-width:340px; margin-left:auto; margin-right:auto; }
    .about__portrait-cap{ text-align:center; }
  }

  /* ---------- CONTACTO ---------- */
  .contact__primary{ position:relative; max-width:620px; margin:56px auto 0; text-align:center;
    padding:clamp(36px,5vw,52px) clamp(26px,4vw,44px); border-radius:22px;
    border:1px solid rgba(139,92,246,0.28); background:rgba(139,92,246,0.04); overflow:hidden; }
  .contact__primary::before{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, rgba(139,92,246,0.15), transparent 70%); pointer-events:none; }
  .contact__primary-badge{ position:relative; display:inline-block; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }
  .contact__primary-icon{ position:relative; width:56px; height:56px; margin:0 auto 20px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:var(--glow); box-shadow:0 12px 30px rgba(99,102,241,0.4); }
  .contact__primary-icon svg{ width:28px; height:28px; color:#fff; }
  .contact__primary-title{ position:relative; font-size:clamp(1.6rem,3vw,2.2rem); font-weight:700; letter-spacing:-0.02em; margin-bottom:12px; }
  .contact__primary-desc{ position:relative; font-size:1.02rem; line-height:1.6; color:var(--text-muted); max-width:42ch; margin:0 auto 28px; }
  .contact__primary-btn{ position:relative; }

  .contact__or{ display:flex; align-items:center; gap:18px; max-width:620px; margin:34px auto; color:var(--text-dim); }
  .contact__or::before, .contact__or::after{ content:""; flex:1; height:1px; background:var(--hairline); }
  .contact__or span{ font-size:0.8rem; letter-spacing:0.16em; text-transform:uppercase; }

  .contact__form-wrap{ max-width:620px; margin:0 auto; }
  .contact-form__head{ text-align:center; margin-bottom:26px; }
  .contact-form__title{ font-size:1.35rem; font-weight:600; letter-spacing:-0.01em; margin-bottom:8px; }
  .contact-form__desc{ font-size:0.98rem; line-height:1.6; color:var(--text-muted); }
  .contact-form{ display:flex; flex-direction:column; gap:16px; }
  .contact-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .contact-form__field{ display:flex; flex-direction:column; gap:7px; }
  .contact-form__field label{ font-size:0.8rem; letter-spacing:0.02em; color:var(--text-muted); }
  .contact-form__field label .req{ color:var(--accent); }
  .contact-form__input, .contact-form__select, .contact-form__textarea{ width:100%; background:rgba(255,255,255,0.03); border:1px solid var(--hairline); border-radius:11px;
    padding:13px 15px; color:var(--text); font-family:inherit; font-size:0.95rem; transition:border-color .2s, background .2s; }
  .contact-form__input::placeholder, .contact-form__textarea::placeholder{ color:var(--text-dim); }
  .contact-form__input:focus, .contact-form__select:focus, .contact-form__textarea:focus{ outline:none; border-color:rgba(139,92,246,0.6); background:rgba(139,92,246,0.05); }
  .contact-form__textarea{ resize:vertical; min-height:96px; }
  .contact-form__select{ appearance:none; -webkit-appearance:none; cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 15px center; background-size:14px; padding-right:40px; }
  .contact-form__select option{ background:#15131f; color:var(--text); }
  .contact-form__submit{ margin-top:6px; align-self:center; min-width:210px; }
  .contact-form__note{ text-align:center; color:var(--accent); font-size:0.98rem; font-weight:500; margin-top:6px; }

  /* footer */
  .site-footer{ border-top:1px solid var(--hairline); padding:44px clamp(20px,5vw,64px); position:relative; z-index:5; }
  .site-footer__inner{ max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:22px 34px; flex-wrap:wrap; }
  .site-footer__links{ display:flex; gap:24px; flex-wrap:wrap; }
  .site-footer__links a{ font-size:0.85rem; color:var(--text-muted); text-decoration:none; transition:color .2s; }
  .site-footer__links a:hover{ color:var(--text); }
  .site-footer__right{ display:flex; align-items:center; gap:20px; }
  .site-footer__social{ color:var(--text-muted); transition:color .2s; display:inline-flex; }
  .site-footer__social:hover{ color:var(--accent); }
  .site-footer__social svg{ width:20px; height:20px; }
  .site-footer__copy{ font-size:0.78rem; color:var(--text-dim); }


  @media (max-width:560px){
    .contact-form__row{ grid-template-columns:1fr; }
    .site-footer__inner{ justify-content:center; text-align:center; }
  }

  /* ---------- REVEAL ON SCROLL ---------- */
  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ opacity:1; transform:none; }

  /* ---------- PROCESO DE TRABAJO (split stepper) ---------- */
  .section-head__intro{ font-size:1rem; line-height:1.6; color:var(--text-muted); max-width:60ch; margin-top:18px; }

  .tabs{ display:inline-flex; gap:6px; padding:5px; border-radius:999px; background:rgba(26,26,46,0.4); border:1px solid var(--hairline); margin-bottom:clamp(40px,6vh,64px); }
  .tab{ border:0; cursor:pointer; font-family:inherit; font-size:0.92rem; font-weight:500; color:var(--text-muted); padding:10px 22px; border-radius:999px; background:transparent; transition:color .25s, background .25s, box-shadow .25s; }
  .tab:hover{ color:var(--text); }
  .tab.active{ color:var(--text); background:rgba(139,92,246,0.14); box-shadow:inset 0 0 0 1px rgba(139,92,246,0.4), 0 6px 20px rgba(99,102,241,0.12); }

  .tab-panel{ display:none; }
  .tab-panel.active{ display:block; animation: tlIn .5s ease; }
  @keyframes tlIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }

  .stepper{ display:grid; grid-template-columns:330px 1fr; gap:clamp(28px,4vw,56px); align-items:start; }
  .stepper__index{ list-style:none; display:flex; flex-direction:column; gap:6px; }
  .stepper__item{ display:flex; align-items:center; gap:14px; padding:13px 16px; border-radius:12px; cursor:pointer; border:1px solid transparent; transition:background .25s, border-color .25s; }
  .stepper__item:hover{ background:rgba(255,255,255,0.035); }
  .stepper__item.active{ background:rgba(139,92,246,0.1); border-color:rgba(139,92,246,0.4); }
  .stepper__item-num{ width:28px; height:28px; border-radius:50%; flex:0 0 auto; display:flex; align-items:center; justify-content:center; font-size:0.8rem; font-weight:600; color:var(--text-dim); border:1px solid var(--hairline); font-variant-numeric:tabular-nums; transition:color .25s, background .25s, border-color .25s; }
  .stepper__item.active .stepper__item-num{ color:#fff; background:var(--glow); border-color:transparent; }
  .stepper__item-title{ font-size:0.95rem; font-weight:500; color:var(--text-muted); transition:color .25s; }
  .stepper__item.active .stepper__item-title{ color:var(--text); }
  .stepper__detail-wrap{ position:relative; }
  .stepper__detail{ display:none; position:relative; border:1px solid var(--hairline); border-radius:20px; padding:clamp(30px,3.5vw,46px); background:rgba(26,26,46,0.3); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); min-height:360px; overflow:hidden; }
  .stepper__detail.active{ display:block; animation: tlIn .4s ease; }
  .stepper__detail::before{ content:""; position:absolute; top:-32%; right:-12%; width:320px; height:320px; background:radial-gradient(circle, rgba(139,92,246,0.18), transparent 70%); pointer-events:none; }
  .stepper__detail-label{ position:relative; z-index:1; font-size:0.74rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--text-dim); margin-bottom:8px; }
  .stepper__detail-num{ position:relative; z-index:1; display:block; font-size:clamp(3rem,5vw,4.4rem); font-weight:700; line-height:1; letter-spacing:-0.03em; background:var(--glow); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .stepper__detail-title{ position:relative; z-index:1; font-size:clamp(1.5rem,2.4vw,2rem); font-weight:700; letter-spacing:-0.02em; margin:16px 0 16px; }
  .stepper__detail-desc{ position:relative; z-index:1; font-size:1.04rem; line-height:1.62; color:var(--text-muted); max-width:54ch; }

  /* ---------- PORTAFOLIO ---------- */
  .pf-group{ margin-top:clamp(56px,8vh,92px); }
  .pf-group:first-of-type{ margin-top:0; }
  .pf-group-head{ display:flex; align-items:center; gap:14px; margin-bottom:24px; }
  .pf-nav{ margin-left:auto; display:flex; gap:8px; }
  .pf-arrow{ width:38px; height:38px; border-radius:50%; border:1px solid var(--hairline); background:rgba(255,255,255,0.03); color:var(--text); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1.2rem; line-height:1; transition:border-color .2s, background .2s, box-shadow .25s, transform .18s, opacity .2s; }
  .pf-arrow:hover:not(:disabled){ border-color:rgba(139,92,246,0.5); box-shadow:0 8px 24px rgba(99,102,241,0.3); transform:translateY(-2px); }
  .pf-arrow:disabled{ opacity:.3; cursor:default; }
  .pf-group-label{ display:flex; align-items:center; gap:11px; font-size:1.05rem; font-weight:600; color:var(--text); letter-spacing:-0.01em; }
  .pf-group-label::before{ content:""; width:3px; height:18px; border-radius:2px; background:var(--glow); }
  .pf-group-count{ font-size:0.78rem; color:var(--text-dim); font-weight:500; letter-spacing:0.04em; }

  .pf-tile{ position:relative; border-radius:14px; overflow:hidden; border:1px solid var(--hairline); background:linear-gradient(150deg,#17171f,#0e0e14); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .4s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s; }
  .pf-tile:hover{ transform:translateY(-4px); border-color:rgba(139,92,246,0.4); box-shadow:0 22px 50px rgba(0,0,0,0.45); }
  .pf-icon{ width:32px; height:32px; color:var(--text-dim); opacity:.55; transition:opacity .3s; }
  .pf-tile:hover .pf-icon{ opacity:.8; }
  .pf-tag{ position:absolute; top:12px; left:12px; z-index:2; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-muted); background:rgba(13,13,13,0.5); border:1px solid var(--hairline); border-radius:999px; padding:5px 11px; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }

  .pf-rail{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x proximity; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; padding:8px 2px 20px; }
  .pf-rail::-webkit-scrollbar{ display:none; }
  .pf-rail .pf-tile{ scroll-snap-align:start; }
  .pf-rail .pf-tile:hover{ box-shadow:0 14px 32px rgba(0,0,0,0.45); }
  .pf-stills .pf-tile{ flex:0 0 clamp(220px,26vw,280px); aspect-ratio:4/5; }
  .pf-reels .pf-tile{ flex:0 0 clamp(150px,19vw,210px); aspect-ratio:9/16; }
  .pf-play{ position:absolute; z-index:2; width:50px; height:50px; border-radius:50%; background:rgba(139,92,246,0.92); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 28px rgba(99,102,241,0.45); transition:transform .3s; }
  .pf-tile:hover .pf-play{ transform:scale(1.12); }
  .pf-play svg{ width:18px; height:18px; color:#fff; margin-left:3px; }

  .pf-cases{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  .pf-case{ position:relative; aspect-ratio:4/3; border-radius:14px; overflow:hidden; border:1px solid var(--hairline); background:linear-gradient(150deg,#17171f,#0e0e14); padding:22px; display:flex; flex-direction:column; justify-content:flex-end; cursor:pointer; transition:transform .4s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s; }
  .pf-case:hover{ transform:translateY(-4px); border-color:rgba(139,92,246,0.4); box-shadow:0 22px 50px rgba(0,0,0,0.45); }
  .pf-case::before{ content:""; position:absolute; top:-30%; right:-15%; width:240px; height:240px; background:radial-gradient(circle, rgba(79,142,247,0.14), transparent 70%); pointer-events:none; }
  .pf-case-brand{ position:absolute; top:16px; left:18px; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--text-dim); z-index:1; }
  .pf-case-metric{ position:relative; z-index:1; font-size:clamp(1.6rem,2.6vw,2.1rem); font-weight:700; letter-spacing:-0.02em; line-height:1; background:var(--glow); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .pf-case-label{ position:relative; z-index:1; font-size:0.9rem; color:var(--text-muted); margin-top:7px; }

  @media (max-width:900px){ .stepper{ grid-template-columns:1fr; } }
  @media (max-width:640px){
    .tabs{ display:flex; width:100%; } .tab{ flex:1; padding:10px 8px; font-size:0.82rem; }
    .pf-cases{ grid-template-columns:1fr; }
  }
  @media (prefers-reduced-motion: reduce){ .tab-panel.active,.stepper__detail.active{ animation:none; } }

  /* ---------- RESPONSIVE ---------- */
  /* ---------- MOBILE NAV ---------- */
  .nav__toggle{ display:none; position:relative; z-index:12; width:34px; height:32px; background:none; border:none; cursor:pointer; padding:0; }
  .nav__toggle span{ position:absolute; left:5px; right:5px; height:2px; background:var(--text); border-radius:2px; transition:transform .3s ease, opacity .2s ease, top .3s ease; }
  .nav__toggle span:nth-child(1){ top:10px; }
  .nav__toggle span:nth-child(2){ top:15px; }
  .nav__toggle span:nth-child(3){ top:20px; }
  .nav__toggle.active span:nth-child(1){ top:15px; transform:rotate(45deg); }
  .nav__toggle.active span:nth-child(2){ opacity:0; }
  .nav__toggle.active span:nth-child(3){ top:15px; transform:rotate(-45deg); }

  .mobile-menu{ position:fixed; inset:0; z-index:9; background:rgba(10,10,14,0.97); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
    display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease; }
  .mobile-menu.open{ opacity:1; visibility:visible; }
  .mobile-menu__links{ display:flex; flex-direction:column; align-items:center; gap:6px; }
  .mobile-menu__links a{ font-size:1.7rem; font-weight:600; letter-spacing:-0.02em; color:var(--text-muted); text-decoration:none; padding:9px 0;
    opacity:0; transform:translateY(14px); transition:color .2s ease, opacity .4s ease, transform .4s ease; }
  .mobile-menu__links a:hover{ color:var(--text); }
  .mobile-menu.open .mobile-menu__links a{ opacity:1; transform:none; }
  .mobile-menu.open .mobile-menu__links a:nth-child(1){ transition-delay:.06s; }
  .mobile-menu.open .mobile-menu__links a:nth-child(2){ transition-delay:.10s; }
  .mobile-menu.open .mobile-menu__links a:nth-child(3){ transition-delay:.14s; }
  .mobile-menu.open .mobile-menu__links a:nth-child(4){ transition-delay:.18s; }
  .mobile-menu.open .mobile-menu__links a:nth-child(5){ transition-delay:.22s; }
  .mobile-menu.open .mobile-menu__links a:nth-child(6){ transition-delay:.26s; }
  .mobile-menu.open .mobile-menu__links a:nth-child(7){ transition-delay:.30s; }
  .mobile-menu__cta{ margin-top:20px; color:#fff !important; padding:13px 34px; border-radius:999px; background:var(--glow); box-shadow:0 12px 30px rgba(99,102,241,0.4); }
  body.menu-open{ overflow:hidden; }

  @media (max-width:860px){
    .service{ grid-template-columns:1fr; gap:30px; }
    .service__media{ order:-1 !important; justify-self:stretch !important; max-width:none; aspect-ratio:16/10; }
    .service--video .service__media{ justify-self:center !important; max-width:300px !important; aspect-ratio:9/16 !important; }
    .service--reverse .service__content{ order:0; }
    .benefits{ grid-template-columns:1fr; }
    .premium__inner{ grid-template-columns:1fr; }
  }
  @media (max-width:640px){
    .nav{ padding:16px 20px; }
    .nav__links{ display:none; }
    .nav__toggle{ display:block; }
    .hero__inner{ padding-top:100px; }
    .sub{ max-width:90%; }
  }


  /* ---------- VIDEO TILE (poster + WebP preview + lightbox) ---------- */
  .work__media--video{ text-decoration:none; color:inherit; }
  .work__media-img, .work__media-anim{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .work__media-anim{ opacity:0; transition:opacity .35s ease; }
  .work__media--video:hover .work__media-anim,
  .work__media--video:focus-visible .work__media-anim{ opacity:1; }
  /* on touch devices where hover isn't reliable, show the animated preview by default */
  @media (hover:none){
    .work__media-anim{ opacity:1; }
  }
  .work__media--video .work__play{ transition:transform .35s ease, opacity .35s ease; }
  .work__media--video:hover .work__play{ opacity:0.85; }

  /* ---------- VIDEO LIGHTBOX ---------- */
  .video-lightbox{ position:fixed; inset:0; z-index:210; display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; }
  .video-lightbox.open{ opacity:1; visibility:visible; }
  .video-lightbox__backdrop{ position:absolute; inset:0; background:rgba(4,4,8,0.86); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
  .video-lightbox__frame{ position:relative; max-height:92vh; max-width:min(92vw, 520px); aspect-ratio:9/16;
    border-radius:14px; overflow:hidden; background:#000; box-shadow:0 40px 100px rgba(0,0,0,0.7);
    transform:translateY(14px) scale(0.98); transition:transform .3s ease; }
  .video-lightbox.open .video-lightbox__frame{ transform:none; }
  .video-lightbox__video{ width:100%; height:100%; display:block; background:#000; }
  .video-lightbox__close{ position:absolute; top:-44px; right:0; background:none; border:none; color:#fff; font-size:2rem; line-height:1; cursor:pointer; transition:opacity .2s; opacity:0.85; }
  .video-lightbox__close:hover{ opacity:1; }


  /* ---------- CLIENT FOLDER TILE ---------- */
  .work__media--folder{ text-decoration:none; color:inherit; display:block; }
  .work__media--folder .work__media-img{ transition:transform .5s cubic-bezier(.2,.7,.2,1); }
  .work__media--folder:hover .work__media-img{ transform:scale(1.04); }

  .work__media--empty{ background:linear-gradient(155deg,#17171f 0%,#0e0e14 100%);
    display:flex; align-items:center; justify-content:center; }
  .work__media--empty .work__folder-initial{ font-family:"Aeromaze","General Sans",sans-serif;
    font-size:3.5rem; font-weight:500; color:rgba(245,245,245,0.14); letter-spacing:0.04em; }


  /* ---------- VIDEO EDITING — CLIENT SUB-SECTIONS ---------- */
  .client{ margin-bottom:60px; }
  .client:last-child{ margin-bottom:0; }
  .client__head{ display:flex; align-items:baseline; gap:18px; padding-top:27px; border-top:1px solid rgba(245,245,245,0.15); margin-bottom:22px; }
  .client__index{ font-size:1rem; font-weight:600; letter-spacing:0.02em; color:var(--accent); font-variant-numeric:tabular-nums; }
  .client__name{ font-size:1.45rem; font-weight:600; letter-spacing:-0.02em; color:var(--text); line-height:1.1; }
  .client__meta{ margin-left:auto; font-size:0.76rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-dim); white-space:nowrap; }

  /* Simpler caption inside client sub-sections (no brand/year — those live in the client head) */
  .work__desc-only{ text-align:center; padding:0 8px; margin-top:14px;
    font-size:0.72rem; line-height:1.5; letter-spacing:0.055em; text-transform:uppercase; color:var(--text-dim);
    max-width:32ch; margin-left:auto; margin-right:auto; }

  /* ---------- REDUCED MOTION ---------- */
  @media (prefers-reduced-motion: reduce){
    .preloader{ display:none; }
    .preloader__bar,.preloader__name{ animation:none; }
    .nav,.hero__inner > *,.marquee__band{ opacity:1 !important; transform:none !important; animation:none !important; }
    .marquee__track{ animation:none !important; transform:none !important; }
    .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  }

/* ================= PORTFOLIO PAGE ================= */
  html{ scroll-behavior:smooth; }
  .nav__links a.active{ color:var(--text); }

  .page-hero{ padding:clamp(132px,18vh,196px) clamp(20px,5vw,64px) clamp(48px,7vh,80px); position:relative; z-index:5; }
  .page-hero__title{ font-size:clamp(2.6rem,7vw,5rem); font-weight:700; line-height:0.98; letter-spacing:-0.03em; margin-bottom:22px; }
  .page-hero__title .accent{ color:var(--accent); }
  .page-hero__intro{ font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.6; color:var(--text-muted); max-width:52ch; }
  .page-hero__chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; }
  .page-hero__chip{ font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-muted);
    border:1px solid var(--hairline); border-radius:999px; padding:9px 18px; text-decoration:none;
    transition:border-color .2s, color .2s, background .2s; }
  .page-hero__chip:hover{ color:var(--text); border-color:rgba(139,92,246,0.5); background:rgba(139,92,246,0.06); }

  .works{ padding:clamp(46px,7vh,84px) clamp(20px,5vw,64px); position:relative; z-index:5; scroll-margin-top:88px; }
  .works + .works{ padding-top:0; }
  .works__head{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:38px; padding-bottom:22px; border-bottom:1px solid var(--hairline); }
  .works__title{ font-size:clamp(1.8rem,3.4vw,2.6rem); font-weight:700; letter-spacing:-0.02em; }
  .works__count{ font-size:0.85rem; color:var(--accent); font-weight:500; letter-spacing:0.05em; }
  .works__sub{ margin-left:auto; font-size:0.92rem; color:var(--text-muted); max-width:38ch; }

  .works__grid{ display:grid; gap:30px 22px; }
  .works__grid--reels{ grid-template-columns:repeat(auto-fill, minmax(188px,1fr)); }
  .works__grid--ads{ grid-template-columns:repeat(auto-fill, minmax(330px,1fr)); }
  .works__grid--ia{ grid-template-columns:repeat(auto-fill, minmax(236px,1fr)); }

  .work{ display:flex; flex-direction:column; }
  .work__media{ position:relative; border-radius:14px; overflow:hidden; border:1px solid var(--hairline);
    background:linear-gradient(150deg,#17171f,#0e0e14); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:transform .4s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s; }
  .works__grid--reels .work__media{ aspect-ratio:9/16; }
  .works__grid--ads .work__media{ aspect-ratio:16/9; }
  .works__grid--ia .work__media{ aspect-ratio:4/5; }
  .work__media:hover{ transform:translateY(-4px); border-color:rgba(139,92,246,0.4); box-shadow:0 18px 40px rgba(0,0,0,0.5); }

  .work__play{ position:relative; z-index:2; width:80px; height:80px;
    display:flex; align-items:center; justify-content:center;
    filter:drop-shadow(0 8px 20px rgba(0,0,0,0.55));
    transition:transform .3s; }
  .work__media:hover .work__play{ transform:scale(1.1); }
  .work__play svg{ width:80px; height:80px; }
  .work__icon{ width:34px; height:34px; color:var(--text-dim); opacity:.55; transition:opacity .3s; }
  .work__media:hover .work__icon{ opacity:.85; }

  .work__cap{ text-align:center; padding:15px 8px 2px; }
  .work__cap-top{ display:flex; align-items:baseline; justify-content:center; gap:9px; margin-bottom:7px; }
  .work__brand{ font-size:1.02rem; font-weight:600; letter-spacing:-0.01em; color:var(--text); }
  .work__year{ font-size:0.78rem; color:var(--accent); font-weight:500; letter-spacing:0.04em; }
  .work__desc{ font-size:0.72rem; line-height:1.5; letter-spacing:0.055em; text-transform:uppercase; color:var(--text-dim); max-width:32ch; margin:0 auto; }

  /* back-to-funnel CTA */
  .portfolio-cta{ text-align:center; padding:clamp(80px,12vh,140px) clamp(20px,5vw,64px) clamp(90px,13vh,150px); position:relative; z-index:5; }
  .portfolio-cta::before{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse at center, rgba(139,92,246,0.09), transparent 66%); pointer-events:none; }
  .portfolio-cta__inner{ position:relative; max-width:640px; margin:0 auto; }
  .portfolio-cta h2{ font-size:clamp(2rem,4.5vw,3.2rem); font-weight:700; line-height:1.08; letter-spacing:-0.02em; margin-bottom:16px; }
  .portfolio-cta h2 .accent{ color:var(--accent); }
  .portfolio-cta p{ font-size:1.05rem; line-height:1.6; color:var(--text-muted); margin-bottom:32px; }

  /* footer */
  .portfolio-footer{ border-top:1px solid var(--hairline); padding:40px clamp(20px,5vw,64px); position:relative; z-index:5; }
  .portfolio-footer__inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
  .portfolio-footer__links{ display:flex; gap:22px; }
  .portfolio-footer__links a{ font-size:0.85rem; color:var(--text-muted); text-decoration:none; transition:color .2s; }
  .portfolio-footer__links a:hover{ color:var(--text); }
  .portfolio-footer__copy{ font-size:0.78rem; color:var(--text-dim); }

  @media (max-width:640px){
    .works__sub{ margin-left:0; flex-basis:100%; }
    .works__grid--reels{ grid-template-columns:repeat(auto-fill, minmax(148px,1fr)); }
    .works__grid--ads{ grid-template-columns:1fr; }
    .works__grid--ia{ grid-template-columns:repeat(auto-fill, minmax(158px,1fr)); }
    .portfolio-footer__inner{ justify-content:center; text-align:center; }
  }
