:root{
  --bg:#020402;
  --text:#d8ffe3;
  --muted:#75b988;
  --accent:#00ff66;
  --accent-2:#16ffb1;
  --danger:#ff315a;
  --panel:rgba(0,18,8,.76);
  --line:rgba(0,255,102,.32);
  --shadow:0 0 30px rgba(0,255,102,.18), inset 0 0 30px rgba(0,255,102,.06);
  --font:Consolas, Monaco, 'Courier New', monospace;
}

body[data-theme="1"]{--accent:#ffb000;--accent-2:#ffec8a;--text:#fff3cf;--muted:#d4a847;--panel:rgba(32,20,0,.78);--line:rgba(255,176,0,.35);--shadow:0 0 32px rgba(255,176,0,.22), inset 0 0 30px rgba(255,176,0,.05)}
body[data-theme="2"]{--accent:#00d9ff;--accent-2:#6ff5ff;--text:#d8fbff;--muted:#72c7d3;--panel:rgba(0,22,32,.78);--line:rgba(0,217,255,.32);--shadow:0 0 32px rgba(0,217,255,.20), inset 0 0 30px rgba(0,217,255,.06)}
body[data-theme="3"]{--accent:#ff2bd6;--accent-2:#b772ff;--text:#ffe2fb;--muted:#d88ccc;--panel:rgba(33,0,28,.78);--line:rgba(255,43,214,.30);--shadow:0 0 36px rgba(255,43,214,.22), inset 0 0 30px rgba(255,43,214,.05)}
body[data-theme="4"]{--accent:#9b5cff;--accent-2:#00ffcc;--text:#efe6ff;--muted:#c0a9eb;--panel:rgba(17,8,35,.82);--line:rgba(155,92,255,.34);--shadow:0 0 42px rgba(155,92,255,.24), inset 0 0 30px rgba(0,255,204,.05)}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 25%), var(--bg);
  color:var(--text);
  font-family:var(--font);
  overflow:hidden;
  transition:background .45s ease,color .45s ease;
}
a{color:inherit;text-decoration:none}

.crt-overlay{position:fixed;inset:0;z-index:50;pointer-events:none;background:linear-gradient(rgba(255,255,255,.035) 50%, rgba(0,0,0,.07) 50%);background-size:100% 4px;mix-blend-mode:screen;opacity:.43}
.noise-overlay{position:fixed;inset:-20%;z-index:49;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.06) 1px,transparent 1px);background-size:13px 13px;opacity:.08;animation:noise 1.7s steps(4) infinite}
@keyframes noise{to{transform:translate3d(17px,-13px,0)}}

.code-rain{position:fixed;inset:0;z-index:0;overflow:hidden;opacity:.35;filter:blur(.1px)}
.code-line{position:absolute;left:20px;white-space:nowrap;color:var(--accent);font-size:12px;text-shadow:0 0 10px var(--accent);opacity:.32;animation:codeFloat linear forwards}.code-line.signature{opacity:.70;color:var(--accent-2);font-weight:900;letter-spacing:.08em}
@keyframes codeFloat{from{transform:translateY(105vh)}to{transform:translateY(-12vh)}}

.topbar{position:fixed;top:0;left:0;right:0;z-index:20;height:76px;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(18px,4vw,54px);background:linear-gradient(180deg,rgba(0,0,0,.82),rgba(0,0,0,.28),transparent);border-bottom:1px solid color-mix(in srgb, var(--accent) 22%, transparent)}
.brand{display:flex;gap:13px;align-items:center}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);box-shadow:var(--shadow);font-weight:900;color:var(--accent)}.brand-copy{display:flex;flex-direction:column;font-weight:900;letter-spacing:.12em;line-height:1.1}.brand-copy span{font-size:10px;color:var(--muted);font-weight:700;margin-top:4px}.nav{display:flex;gap:clamp(10px,2vw,28px);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.nav a{color:var(--muted);position:relative}.nav a:hover,.nav a.active{color:var(--accent)}.nav a::after{content:"";position:absolute;left:0;bottom:-8px;width:0;height:1px;background:var(--accent);box-shadow:0 0 12px var(--accent);transition:.25s}.nav a:hover::after,.nav a.active::after{width:100%}.system-status{display:flex;align-items:center;gap:9px;color:var(--accent);font-size:12px;text-transform:uppercase}.pulse{width:8px;height:8px;border-radius:99px;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.35;transform:scale(.7)}}

.snap-container{height:100vh;overflow-y:auto;scroll-snap-type:y mandatory;position:relative;z-index:5;scrollbar-width:none}.snap-container::-webkit-scrollbar{display:none}.screen-section{min-height:100vh;scroll-snap-align:start;display:flex;align-items:center;padding:118px clamp(18px,5vw,78px) 66px;position:relative}.screen-section::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 40%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 35%),linear-gradient(135deg,rgba(255,255,255,.025),transparent 44%);pointer-events:none}.section-grid{position:relative;width:100%;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(22px,4vw,56px);align-items:center}.section-grid.reverse{grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr)}.section-grid.reverse .terminal-card{order:2}

.terminal-card,.stats-panel,.floating-window,.mission-box,.diagnostic-panel,.credits-box{border:1px solid var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 96%, transparent), rgba(0,0,0,.62));box-shadow:var(--shadow);backdrop-filter:blur(8px)}.terminal-card{min-height:420px}.hero-card{min-height:520px}.terminal-head{height:42px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px;padding:0 14px;color:var(--muted);background:rgba(0,0,0,.36)}.terminal-head span{width:10px;height:10px;border-radius:99px;border:1px solid var(--accent);box-shadow:0 0 8px var(--accent)}.terminal-head strong{margin-left:7px;font-size:12px;letter-spacing:.08em}.terminal-body{padding:clamp(24px,4vw,50px)}
.level-tag{display:inline-block;margin:0 0 22px;padding:8px 12px;border:1px solid var(--line);color:var(--accent);background:rgba(0,0,0,.32);font-size:12px;letter-spacing:.14em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}.glitch-title{font-size:clamp(54px,10vw,128px);line-height:.85;margin:0 0 18px;color:var(--accent);letter-spacing:.03em;text-shadow:0 0 22px color-mix(in srgb,var(--accent) 60%, transparent);position:relative}.glitch-title::before,.glitch-title::after{content:attr(data-text);position:absolute;left:0;top:0;opacity:.45}.glitch-title::before{transform:translate(2px,-1px);color:var(--accent-2);clip-path:inset(0 0 55% 0);animation:glitch 2.1s infinite}.glitch-title::after{transform:translate(-2px,2px);color:#ff315a;clip-path:inset(50% 0 0 0);animation:glitch 1.7s infinite reverse}@keyframes glitch{0%,88%,100%{transform:translate(0)}90%{transform:translate(4px,-2px)}93%{transform:translate(-3px,2px)}}
.terminal-body h2{font-size:clamp(28px,4.6vw,58px);line-height:1.03;margin-bottom:20px;color:var(--text);text-shadow:0 0 18px color-mix(in srgb,var(--accent) 32%, transparent)}.terminal-body p{color:var(--muted);font-size:clamp(15px,1.45vw,19px);line-height:1.7}.lead{max-width:760px}.command-box{margin:28px 0 26px;padding:17px 18px;border:1px solid var(--line);background:rgba(0,0,0,.38);display:flex;align-items:center;gap:10px;color:var(--accent)}.command-box i,.blink{display:inline-block;width:9px;height:18px;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:blink .8s steps(1) infinite}@keyframes blink{50%{opacity:0}}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.btn{padding:15px 20px;border:1px solid var(--line);text-transform:uppercase;font-weight:900;letter-spacing:.09em;font-size:13px}.btn.primary{background:var(--accent);color:#001506;box-shadow:0 0 26px color-mix(in srgb,var(--accent) 55%, transparent)}.btn.ghost{background:rgba(0,0,0,.25);color:var(--accent)}.btn:hover{transform:translateY(-2px);filter:brightness(1.15)}

.stats-panel,.floating-window,.mission-box,.diagnostic-panel,.credits-box{padding:28px}.panel-title,.window-title,.mission-label{color:var(--accent);font-size:12px;letter-spacing:.15em;text-transform:uppercase;margin-bottom:22px}.stat-row{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.stat-row span{color:var(--muted)}.stat-row strong{color:var(--text);text-align:right}.progress-block{margin-top:18px}.progress-block span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.progress{height:10px;border:1px solid var(--line);background:rgba(0,0,0,.3);overflow:hidden}.progress b{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 16px var(--accent)}
.terminal-list{padding:0;margin:20px 0 0;list-style:none;color:var(--text)}.terminal-list li{padding:11px 0 11px 28px;position:relative;border-bottom:1px dashed color-mix(in srgb,var(--accent) 23%, transparent)}.terminal-list li::before{content:">";position:absolute;left:0;color:var(--accent)}.code-preview{font-size:14px;line-height:1.7;color:var(--accent);text-shadow:0 0 10px var(--accent)}.code-preview p{margin:.35em 0;color:inherit}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}.cards article{border:1px solid var(--line);background:rgba(0,0,0,.3);padding:18px;min-height:126px}.cards strong{display:block;color:var(--accent);margin-bottom:10px}.cards span{color:var(--muted);font-size:13px;line-height:1.55}.mission-box{display:grid;gap:12px}.loop-step{padding:16px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);box-shadow:inset 0 0 18px color-mix(in srgb,var(--accent) 8%, transparent)}.timeline{display:grid;gap:14px;margin-top:26px}.timeline div{display:grid;grid-template-columns:54px 1fr;gap:16px;align-items:center;padding:15px;border:1px solid var(--line);background:rgba(0,0,0,.24)}.timeline b{color:var(--accent);font-size:22px}.timeline span{color:var(--muted)}.diagnostic-panel p{display:flex;gap:12px;align-items:center;color:var(--muted);border-bottom:1px solid var(--line);padding:12px 0;margin:0}.diagnostic-panel span{color:var(--accent)}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:26px 0}.contact-grid a,.contact-grid span{border:1px solid var(--line);padding:16px;background:rgba(0,0,0,.28);color:var(--accent)}.final-command{margin-top:26px!important;color:var(--accent)!important}.credits-box h3{font-size:clamp(30px,4vw,48px);line-height:1.05;color:var(--accent);text-shadow:0 0 22px var(--accent)}.credits-box small{color:var(--muted);line-height:1.6}.corner-credit{position:fixed;right:22px;bottom:18px;z-index:30;color:var(--accent);font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.82}.section-counter{position:fixed;left:24px;bottom:16px;z-index:30;color:var(--accent);font-weight:900;text-shadow:0 0 14px var(--accent)}.section-counter span{font-size:34px}.section-counter small{color:var(--muted);font-size:14px;margin-left:4px}

@media (max-width:980px){body{overflow:auto}.topbar{height:auto;gap:16px;align-items:flex-start;flex-wrap:wrap}.nav{order:3;width:100%;overflow-x:auto;padding-bottom:8px}.system-status{display:none}.snap-container{scroll-snap-type:none}.screen-section{padding-top:142px}.section-grid,.section-grid.reverse{grid-template-columns:1fr}.section-grid.reverse .terminal-card{order:0}.cards,.contact-grid{grid-template-columns:1fr}.corner-credit,.section-counter{display:none}}
@media (max-width:560px){.terminal-body{padding:22px}.screen-section{padding-left:14px;padding-right:14px}.hero-card{min-height:auto}.terminal-card{min-height:auto}.brand-copy{font-size:13px}.nav a{font-size:12px}.glitch-title{font-size:54px}.terminal-body h2{font-size:30px}}

/* V1.0.3 · Tarjetas sociales + sonido visual */
.social-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 4px}
.social-card{border:1px solid var(--line);background:rgba(0,0,0,.30);padding:20px 16px;min-height:164px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;color:var(--text);box-shadow:inset 0 0 24px color-mix(in srgb,var(--accent) 9%, transparent);position:relative;overflow:hidden}
.social-card::before{content:"";position:absolute;inset:-1px;background:linear-gradient(120deg,transparent, color-mix(in srgb,var(--accent) 16%, transparent), transparent);transform:translateX(-100%);transition:.45s;pointer-events:none}
.social-card:hover::before{transform:translateX(100%)}
.social-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 0 28px color-mix(in srgb,var(--accent) 25%, transparent), inset 0 0 24px color-mix(in srgb,var(--accent) 12%, transparent)}
.social-card strong{color:var(--accent);font-size:18px;text-transform:uppercase;letter-spacing:.08em}
.social-card small{color:var(--muted);line-height:1.45}
.social-icon{width:48px;height:48px;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);font-weight:900;font-size:24px;text-shadow:0 0 12px var(--accent);box-shadow:var(--shadow);background:rgba(0,0,0,.34);font-family:Arial, Helvetica, sans-serif}
.social-icon.linkedin{font-size:22px;border-radius:4px;text-transform:lowercase}
.social-icon.facebook{font-size:34px;border-radius:4px;font-family:Arial, Helvetica, sans-serif;align-items:end;line-height:.8;padding-bottom:6px}
.social-icon.instagram{border-radius:13px;position:relative}
.social-icon.instagram::before{content:"";width:22px;height:22px;border:3px solid var(--accent);border-radius:999px;box-shadow:0 0 10px var(--accent)}
.social-icon.instagram::after{content:"";position:absolute;right:10px;top:10px;width:6px;height:6px;background:var(--accent);border-radius:999px;box-shadow:0 0 10px var(--accent)}
.btn,.nav a,.brand,.social-card{transition:transform .2s ease, filter .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease}
.btn:active,.nav a:active,.social-card:active,.brand:active{transform:translateY(1px) scale(.985)}
@media (max-width:980px){.social-grid{grid-template-columns:1fr}.social-card{min-height:124px}}


/* V1.0.6 · Instagram limpio, sin punto, y ajuste visual final */
.social-icon.instagram{
  border-radius:14px;
  position:relative;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--accent) 20%, rgba(0,0,0,.34)),
      rgba(0,0,0,.36) 42%,
      color-mix(in srgb,var(--accent-2) 18%, rgba(0,0,0,.34))
    );
}
.social-icon.instagram::before,
.social-icon.instagram::after{content:none!important;display:none!important}
.social-icon.instagram svg{width:31px;height:31px;display:block;stroke:var(--accent);stroke-width:2.1;fill:none;filter:drop-shadow(0 0 7px var(--accent))}

/* V1.0.11 · Ajuste específico del H1 principal para “Desarrollo a medida en Sevilla” */
.hero-section .glitch-title{
  font-size:clamp(30px,4.4vw,58px);
  line-height:1.04;
  letter-spacing:.005em;
  max-width:100%;
  overflow-wrap:normal;
}
@media (max-width:560px){
  .hero-section .glitch-title{font-size:clamp(28px,10vw,42px);}
}

/* V1.0.12 · Ajustes finales de título y navegación móvil */
.hero-section .hero-title{
  font-size:clamp(62px,7.4vw,104px);
  line-height:.88;
  letter-spacing:.018em;
  text-transform:uppercase;
  max-width:780px;
}
.hero-section .hero-title span{display:block}
.hero-section .hero-title::before,
.hero-section .hero-title::after{
  content:none!important;
  display:none!important;
}

/* En móviles táctiles evitamos que el hover quede “pegado” y mantenga la barra inferior activa. */
@media (hover:none) and (pointer:coarse){
  .nav a:hover{color:var(--muted)}
  .nav a:hover::after{width:0}
  .nav a.active{color:var(--accent)}
  .nav a.active::after{width:100%}
}

@media (max-width:560px){
  .hero-section .hero-title{
    font-size:clamp(48px,15.5vw,72px);
    line-height:.90;
    letter-spacing:.006em;
  }
}


/* V1.0.14 · Recupera animación glitch del H1 + cursor terminal superior */
.hero-section .hero-title{
  position:relative;
  isolation:isolate;
  filter:drop-shadow(0 0 16px color-mix(in srgb,var(--accent) 42%, transparent));
}
.hero-section .hero-title span{
  position:relative;
  display:block;
  width:max-content;
  max-width:100%;
}
.hero-section .hero-title span::before,
.hero-section .hero-title span::after{
  content:attr(data-line);
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.46;
  mix-blend-mode:screen;
}
.hero-section .hero-title span::before{
  color:var(--accent-2);
  transform:translate(2px,-1px);
  clip-path:inset(0 0 54% 0);
  animation:heroGlitchTop 2.05s infinite steps(1,end);
}
.hero-section .hero-title span::after{
  color:#ff4b6e;
  transform:translate(-2px,2px);
  clip-path:inset(48% 0 0 0);
  animation:heroGlitchBottom 1.65s infinite steps(1,end) reverse;
}
@keyframes heroGlitchTop{
  0%,82%,100%{transform:translate(0,0);clip-path:inset(0 0 54% 0);opacity:.34}
  84%{transform:translate(5px,-2px);clip-path:inset(0 0 62% 0);opacity:.58}
  87%{transform:translate(-4px,1px);clip-path:inset(12% 0 46% 0);opacity:.50}
  90%{transform:translate(3px,0);clip-path:inset(0 0 35% 0);opacity:.62}
  93%{transform:translate(-2px,-1px);clip-path:inset(8% 0 58% 0);opacity:.44}
}
@keyframes heroGlitchBottom{
  0%,80%,100%{transform:translate(0,0);clip-path:inset(48% 0 0 0);opacity:.30}
  83%{transform:translate(-5px,2px);clip-path:inset(54% 0 0 0);opacity:.58}
  86%{transform:translate(4px,-1px);clip-path:inset(39% 0 10% 0);opacity:.50}
  89%{transform:translate(-3px,0);clip-path:inset(65% 0 0 0);opacity:.62}
  94%{transform:translate(2px,1px);clip-path:inset(44% 0 8% 0);opacity:.42}
}
.terminal-cursor-line{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0 0 18px;
  padding:8px 12px;
  border:1px solid color-mix(in srgb,var(--accent) 42%, transparent);
  color:var(--accent);
  background:rgba(0,0,0,.24);
  font-size:12px;
  letter-spacing:.10em;
  text-transform:uppercase;
  text-shadow:0 0 12px var(--accent);
  box-shadow:inset 0 0 16px color-mix(in srgb,var(--accent) 9%, transparent);
}
.terminal-cursor-line b{
  width:9px;
  height:17px;
  display:inline-block;
  background:var(--accent);
  box-shadow:0 0 12px var(--accent);
  animation:blink .72s steps(1,end) infinite;
}

/* V1.0.16 · Reubicación del prompt terminal superior a la esquina superior derecha de la ventana principal */
.hero-card .terminal-body{
  position:relative;
}
.hero-card .terminal-cursor-line{
  position:absolute;
  top:34px;
  right:clamp(22px,3.4vw,46px);
  margin:0;
  z-index:3;
  white-space:nowrap;
}

@media (max-width:760px){
  .hero-card .terminal-cursor-line{
    position:static;
    margin:0 0 18px;
    max-width:100%;
    overflow:hidden;
  }
}


/* V1.0.17 · Corrección menú móvil: activo real por sección y sin hover pegado */
@media (hover:none) and (pointer:coarse){
  .nav a{
    -webkit-tap-highlight-color:transparent;
  }
  .nav a:hover,
  .nav a:focus,
  .nav a:focus-visible{
    color:var(--muted)!important;
    outline:none;
  }
  .nav a:hover::after,
  .nav a:focus::after,
  .nav a:focus-visible::after{
    width:0!important;
  }
  .nav a.active,
  .nav a.active:hover,
  .nav a.active:focus,
  .nav a.active:focus-visible{
    color:var(--accent)!important;
  }
  .nav a.active::after,
  .nav a.active:hover::after,
  .nav a.active:focus::after,
  .nav a.active:focus-visible::after{
    width:100%!important;
    background:var(--accent)!important;
    box-shadow:0 0 12px var(--accent)!important;
  }
}

html.is-touch .nav a:not(.active)::after{width:0!important}
html.is-touch .nav a.active::after{width:100%!important}


/* V1.1.0 · Prompt C:\JOSECW\DESARROLLO reubicado sobre el panel derecho */
.hero-side{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:16px;
  width:100%;
}
.hero-side .stats-panel{
  width:100%;
}
.hero-side .hero-side-prompt{
  position:static;
  margin:0 12px 0 0;
  width:max-content;
  max-width:100%;
  z-index:4;
  white-space:nowrap;
}
@media (max-width:980px){
  .hero-side{align-items:flex-start}
  .hero-side .hero-side-prompt{margin:0 0 2px 0}
}
@media (max-width:560px){
  .hero-side .hero-side-prompt{
    font-size:10px;
    letter-spacing:.06em;
    max-width:100%;
    overflow:hidden;
  }
}


/* V1.1.1 · Intro terminal, transición entre secciones y móvil cinematográfico */
body.booting{overflow:hidden}
.boot-intro{
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(circle at 50% 38%, color-mix(in srgb,var(--accent) 18%, transparent), transparent 34%),
    linear-gradient(180deg,#000 0%,#020402 55%,#000 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .72s ease, visibility .72s ease;
}
.boot-intro::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(rgba(255,255,255,.035) 50%, rgba(0,0,0,.10) 50%);
  background-size:100% 4px;
  mix-blend-mode:screen;
  opacity:.55;
}
.boot-intro.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.boot-window{
  width:min(760px,92vw);
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(0,0,0,.88),rgba(0,18,8,.82));
  box-shadow:0 0 42px color-mix(in srgb,var(--accent) 28%, transparent), inset 0 0 32px color-mix(in srgb,var(--accent) 9%, transparent);
  position:relative;
  overflow:hidden;
}
.boot-window::after{
  content:"";
  position:absolute;
  inset:-60% -20%;
  background:linear-gradient(110deg,transparent 40%,color-mix(in srgb,var(--accent) 18%, transparent) 50%,transparent 60%);
  animation:bootSweep 2.25s ease-in-out infinite;
  pointer-events:none;
}
@keyframes bootSweep{0%{transform:translateX(-70%)}70%,100%{transform:translateX(70%)}}
.boot-body{padding:34px;position:relative;z-index:1}
.boot-brand{font-size:clamp(34px,6vw,64px);font-weight:900;letter-spacing:.06em;color:var(--accent);text-shadow:0 0 26px var(--accent);line-height:.95;margin-bottom:28px}
.boot-brand small{display:block;margin-top:9px;font-size:13px;color:var(--muted);letter-spacing:.18em;text-shadow:none}
.boot-log{min-height:174px;border:1px solid var(--line);padding:18px;background:rgba(0,0,0,.42);box-shadow:inset 0 0 22px color-mix(in srgb,var(--accent) 8%, transparent)}
.boot-log p{margin:0 0 10px;color:var(--muted);font-size:14px;line-height:1.45;text-shadow:0 0 10px color-mix(in srgb,var(--accent) 40%, transparent)}
.boot-log p::before{content:"> ";color:var(--accent)}
.boot-progress{height:12px;border:1px solid var(--line);margin:18px 0 20px;background:rgba(0,0,0,.4);overflow:hidden}
.boot-progress b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 18px var(--accent);animation:bootProgress 3.15s ease-out forwards}
@keyframes bootProgress{to{width:100%}}
.boot-skip{font-family:var(--font);cursor:pointer;border:1px solid var(--line);background:rgba(0,0,0,.34);color:var(--accent);padding:13px 18px;font-weight:900;letter-spacing:.10em;text-transform:uppercase;box-shadow:inset 0 0 18px color-mix(in srgb,var(--accent) 9%, transparent);transition:transform .2s ease, background .2s ease, box-shadow .2s ease}
.boot-skip:hover{background:var(--accent);color:#001506;box-shadow:0 0 26px color-mix(in srgb,var(--accent) 54%, transparent)}

.section-transition{
  position:fixed;
  inset:0;
  z-index:80;
  pointer-events:none;
  display:grid;
  place-items:center;
  opacity:0;
  visibility:hidden;
  background:radial-gradient(circle at 50% 50%, color-mix(in srgb,var(--accent) 20%, transparent), rgba(0,0,0,.18) 30%, transparent 62%);
  transition:opacity .22s ease, visibility .22s ease;
}
.section-transition span{
  display:inline-flex;
  align-items:center;
  padding:14px 22px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.78);
  color:var(--accent);
  font-size:13px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-shadow:0 0 12px var(--accent);
  box-shadow:0 0 28px color-mix(in srgb,var(--accent) 32%, transparent), inset 0 0 18px color-mix(in srgb,var(--accent) 12%, transparent);
  transform:translateY(10px) scale(.98);
  transition:transform .22s ease;
}
.section-transition.is-active{opacity:1;visibility:visible}
.section-transition.is-active span{transform:translateY(0) scale(1)}
.section-transition span::after{content:"_";margin-left:8px;animation:blink .62s steps(1,end) infinite}

.screen-section .terminal-card,
.screen-section .hero-side,
.screen-section .floating-window,
.screen-section .mission-box,
.screen-section .diagnostic-panel,
.screen-section .credits-box{
  opacity:.34;
  transform:translateY(24px) scale(.985);
  filter:blur(.6px);
  transition:opacity .7s ease, transform .7s ease, filter .7s ease, box-shadow .7s ease;
}
.screen-section.is-active .terminal-card,
.screen-section.is-active .hero-side,
.screen-section.is-active .floating-window,
.screen-section.is-active .mission-box,
.screen-section.is-active .diagnostic-panel,
.screen-section.is-active .credits-box{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:none;
}
.screen-section.is-active .terminal-card{box-shadow:0 0 42px color-mix(in srgb,var(--accent) 24%, transparent), inset 0 0 32px color-mix(in srgb,var(--accent) 8%, transparent)}
.screen-section.is-active .level-tag{animation:levelPing .78s ease both}
@keyframes levelPing{0%{opacity:.25;transform:translateX(-10px)}100%{opacity:1;transform:translateX(0)}}

@media (max-width:760px){
  body{background:radial-gradient(circle at 50% 18%, color-mix(in srgb,var(--accent) 24%, transparent), transparent 34%), #010301}
  .boot-intro{padding:14px;align-items:center}
  .boot-body{padding:24px 18px}
  .boot-log{min-height:154px;padding:14px}
  .boot-log p{font-size:12px}
  .boot-skip{width:100%}
  .topbar{
    padding:12px 14px 10px;
    background:linear-gradient(180deg,rgba(0,0,0,.94),rgba(0,0,0,.76));
    backdrop-filter:blur(10px);
    border-bottom:1px solid color-mix(in srgb,var(--accent) 38%, transparent);
  }
  .brand-mark{width:36px;height:36px;font-size:12px}
  .brand-copy{font-size:12px;letter-spacing:.10em}
  .nav{
    margin-top:4px;
    display:flex;
    gap:12px;
    width:100%;
    overflow-x:auto;
    padding:9px 2px 6px;
    border-top:1px solid color-mix(in srgb,var(--accent) 12%, transparent);
    scroll-snap-type:x mandatory;
  }
  .nav a{
    flex:0 0 auto;
    scroll-snap-align:center;
    padding:7px 10px;
    border:1px solid color-mix(in srgb,var(--accent) 16%, transparent);
    background:rgba(0,0,0,.26);
    letter-spacing:.06em;
  }
  .nav a.active{
    background:color-mix(in srgb,var(--accent) 12%, rgba(0,0,0,.34));
    box-shadow:0 0 18px color-mix(in srgb,var(--accent) 22%, transparent);
  }
  .nav a::after{bottom:-1px;left:10px;right:10px;width:0}
  .snap-container{overflow-y:auto;scroll-snap-type:none}
  .screen-section{
    min-height:100svh;
    padding:126px 14px 44px;
    align-items:flex-start;
  }
  .screen-section::before{background:radial-gradient(circle at 50% 18%, color-mix(in srgb,var(--accent) 20%, transparent), transparent 38%),linear-gradient(180deg,rgba(255,255,255,.03),transparent 36%)}
  .section-grid,.section-grid.reverse{gap:24px;width:100%}
  .terminal-card,.stats-panel,.floating-window,.mission-box,.diagnostic-panel,.credits-box{
    border-color:color-mix(in srgb,var(--accent) 42%, transparent);
    box-shadow:0 0 32px color-mix(in srgb,var(--accent) 18%, transparent), inset 0 0 22px color-mix(in srgb,var(--accent) 7%, transparent);
  }
  .terminal-head{height:38px;font-size:11px;overflow:hidden;white-space:nowrap}
  .terminal-body{padding:24px 20px 26px}
  .level-tag{font-size:11px;letter-spacing:.10em;margin-bottom:18px}
  .hero-section .hero-title{font-size:clamp(50px,16vw,78px);line-height:.88;margin-bottom:22px}
  .terminal-body h2{font-size:clamp(29px,9.5vw,42px);line-height:1.04}
  .terminal-body p{font-size:15px;line-height:1.65}
  .command-box{padding:14px;margin:22px 0 22px;min-height:52px}
  .hero-actions{gap:11px}
  .btn{width:100%;text-align:center;padding:15px 16px}
  .stats-panel,.floating-window,.mission-box,.diagnostic-panel,.credits-box{padding:22px 18px}
  .hero-side{gap:10px}
  .hero-side .hero-side-prompt{align-self:flex-end;margin-right:0;max-width:86%;font-size:9px;padding:7px 9px}
  .cards,.timeline{gap:11px}
  .timeline div{grid-template-columns:42px 1fr;padding:13px}
  .social-grid{gap:12px}
  .social-card{min-height:112px;padding:16px}
  .corner-credit{display:block;right:10px;bottom:8px;font-size:8px;opacity:.58;max-width:170px;text-align:right}
  .section-counter{display:block;left:12px;bottom:8px;font-size:11px;opacity:.88}
  .section-counter span{font-size:25px}
  .section-transition span{font-size:10px;letter-spacing:.10em;max-width:88vw;text-align:center}
}

@media (prefers-reduced-motion:reduce){
  .boot-window::after,.boot-progress b,.screen-section .terminal-card,.screen-section .hero-side,.screen-section .floating-window,.screen-section .mission-box,.screen-section .diagnostic-panel,.screen-section .credits-box{animation:none!important;transition:none!important}
  .section-transition{display:none!important}
}

/* V1.1.2 · Mensaje de bloqueo para botón derecho/F12 */
.security-toast{
  position:fixed;
  top:88px;
  right:28px;
  z-index:99999;
  min-width:min(340px, calc(100vw - 32px));
  padding:16px 18px;
  border:1px solid var(--accent);
  background:linear-gradient(135deg, rgba(0,0,0,.94), color-mix(in srgb,var(--panel) 88%, black));
  color:var(--accent-2);
  box-shadow:0 0 26px color-mix(in srgb,var(--accent) 38%, transparent), inset 0 0 24px rgba(255,0,0,.08);
  font-family:var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:0;
  pointer-events:none;
  transform:translateY(-10px) scale(.97);
  transition:opacity .18s ease, transform .18s ease;
}
.security-toast::before{
  content:'>';
  color:#ff345c;
  margin-right:10px;
  text-shadow:0 0 12px #ff345c;
}
.security-toast strong{
  display:block;
  color:#ff345c;
  font-size:14px;
  margin-bottom:6px;
  text-shadow:0 0 14px rgba(255,52,92,.9);
}
.security-toast span{
  display:block;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.security-toast.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  animation:securityGlitch .34s steps(2,end) 1;
}
@keyframes securityGlitch{
  0%{clip-path:inset(0 0 0 0);transform:translate(0,0) scale(1)}
  30%{clip-path:inset(8% 0 18% 0);transform:translate(-2px,1px) scale(1.01)}
  55%{clip-path:inset(24% 0 5% 0);transform:translate(2px,-1px) scale(.995)}
  100%{clip-path:inset(0 0 0 0);transform:translate(0,0) scale(1)}
}
@media (max-width:560px){
  .security-toast{top:auto;right:16px;left:16px;bottom:22px;min-width:0}
}

/* V1.1.4 · Ajuste de ancho SOLO en móvil: escritorio conserva el ancho original */
@media (max-width:760px){
  html,
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  body{
    min-width:0;
  }
  .snap-container,
  .screen-section,
  .section-grid,
  .terminal-card,
  .stats-panel,
  .floating-window,
  .mission-box,
  .diagnostic-panel,
  .credits-box,
  .topbar{
    max-width:100vw;
  }
  .snap-container{
    width:100%;
    overflow-x:hidden;
  }
  .section-grid,
  .section-grid > *,
  .hero-side,
  .hero-card,
  .terminal-body,
  .terminal-head,
  .nav{
    min-width:0;
  }
  .terminal-card,
  .stats-panel,
  .floating-window,
  .mission-box,
  .diagnostic-panel,
  .credits-box{
    width:100%;
  }
  .terminal-head strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  img,svg,canvas,video{
    max-width:100%;
  }
  .topbar{
    left:0;
    right:0;
    width:100%;
    max-width:100vw;
    overflow:hidden;
  }
  .nav{
    max-width:100%;
    overflow-x:auto;
    overscroll-behavior-x:contain;
  }
  .screen-section{
    width:100%;
    max-width:100vw;
    padding-left:12px;
    padding-right:12px;
    overflow:hidden;
  }
  .section-grid{
    width:100%;
    max-width:100%;
  }
  .terminal-card,
  .stats-panel,
  .floating-window,
  .mission-box,
  .diagnostic-panel,
  .credits-box{
    width:100%;
    max-width:100%;
  }
  .terminal-body{
    width:100%;
    max-width:100%;
    overflow:hidden;
  }
  .hero-side .hero-side-prompt{
    max-width:100%;
    align-self:flex-start;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .stat-row,
  .diagnostic-panel p,
  .contact-grid a,
  .contact-grid span,
  .social-card,
  .command-box{
    min-width:0;
    max-width:100%;
  }
  .stat-row strong{
    overflow-wrap:anywhere;
  }
  .hero-section .hero-title{
    max-width:100%;
    overflow:hidden;
  }
  .hero-section .hero-title span{
    width:auto;
    max-width:100%;
    overflow-wrap:normal;
  }
}

@media (max-width:390px){
  .screen-section{
    padding-left:10px;
    padding-right:10px;
  }
  .terminal-body{
    padding-left:16px;
    padding-right:16px;
  }
  .hero-section .hero-title{
    font-size:clamp(43px,14.8vw,58px);
  }
  .terminal-body h2{
    font-size:clamp(25px,8.6vw,34px);
  }
  .brand-copy{font-size:11px}
  .nav a{font-size:11px;padding-left:8px;padding-right:8px}
}

/* V1.1.5 · Interlineado más compacto en títulos y textos */
.hero-section .hero-title{
  line-height:.82;
  margin-bottom:18px;
}
.terminal-body h2,
.credits-box h3{
  line-height:.96;
  margin-bottom:16px;
}
.terminal-body p,
.lead,
.cards span,
.timeline span,
.social-card small,
.credits-box small,
.stat-row,
.terminal-list li,
.diagnostic-panel p,
.boot-log p{
  line-height:1.52;
}
.command-box{
  line-height:1.35;
}
@media (max-width:760px){
  .hero-section .hero-title{
    line-height:.84;
    margin-bottom:18px;
  }
  .terminal-body h2,
  .credits-box h3{
    line-height:.98;
    margin-bottom:14px;
  }
  .terminal-body p,
  .lead,
  .cards span,
  .timeline span,
  .social-card small,
  .credits-box small,
  .stat-row,
  .terminal-list li,
  .diagnostic-panel p,
  .boot-log p{
    line-height:1.48;
  }
}

/* V1.1.6 · H2 ligeramente más pequeños */
.terminal-body h2{
  font-size:clamp(26px,4.15vw,52px);
}
@media (max-width:760px){
  .terminal-body h2{
    font-size:clamp(27px,8.6vw,38px);
  }
}
@media (max-width:390px){
  .terminal-body h2{
    font-size:clamp(24px,8vw,31px);
  }
}

/* V1.1.7 · Página interior PROYECTOS */
.projects-layout{
  position:relative;
  width:100%;
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);
  gap:clamp(24px,4vw,58px);
  align-items:center;
}
.projects-page .projects-hero{min-height:560px}
.projects-page .projects-hero .hero-title{
  font-size:clamp(58px,6.5vw,108px);
  line-height:.88;
  max-width:760px;
}
.projects-console{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:16px;
  width:100%;
}
.projects-prompt{margin:0 12px 0 0}
.projects-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.project-card{
  position:relative;
  min-height:226px;
  padding:22px 20px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, color-mix(in srgb,var(--panel) 95%, transparent), rgba(0,0,0,.60));
  box-shadow:var(--shadow);
  overflow:hidden;
  isolation:isolate;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease, filter .22s ease;
}
.project-card::before{
  content:"";
  position:absolute;
  inset:-1px;
  background:linear-gradient(120deg, transparent 0%, color-mix(in srgb,var(--accent) 18%, transparent) 48%, transparent 72%);
  transform:translateX(-115%);
  transition:transform .65s ease;
  z-index:-1;
}
.project-card:hover{
  transform:translateY(-4px);
  border-color:var(--accent);
  box-shadow:0 0 34px color-mix(in srgb,var(--accent) 26%, transparent), inset 0 0 26px color-mix(in srgb,var(--accent) 8%, transparent);
}
.project-card:hover::before{transform:translateX(110%)}
.project-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  margin-bottom:18px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.34);
  box-shadow:inset 0 0 20px color-mix(in srgb,var(--accent) 12%, transparent), 0 0 20px color-mix(in srgb,var(--accent) 16%, transparent);
}
.project-icon svg{
  width:38px;
  height:38px;
  stroke:var(--accent);
  stroke-width:2.4;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 8px var(--accent));
}
.project-kicker{
  margin:0 0 8px;
  color:var(--accent)!important;
  font-size:11px!important;
  line-height:1.15!important;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:900;
}
.project-card h3{
  margin:0 0 12px;
  color:var(--text);
  font-size:clamp(22px,2.2vw,31px);
  line-height:1.02;
  text-shadow:0 0 16px color-mix(in srgb,var(--accent) 30%, transparent);
}
.project-card p:not(.project-kicker){
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.45;
}
.projects-section .projects-hero,
.projects-section .projects-console{
  opacity:.34;
  transform:translateY(24px) scale(.985);
  filter:blur(.6px);
  transition:opacity .7s ease, transform .7s ease, filter .7s ease, box-shadow .7s ease;
}
.projects-section.is-active .projects-hero,
.projects-section.is-active .projects-console{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:none;
}
.projects-section.is-active .project-card:nth-child(1){transition-delay:.04s}
.projects-section.is-active .project-card:nth-child(2){transition-delay:.08s}
.projects-section.is-active .project-card:nth-child(3){transition-delay:.12s}
.projects-section.is-active .project-card:nth-child(4){transition-delay:.16s}
.projects-section.is-active .project-card:nth-child(5){transition-delay:.20s}
.projects-section.is-active .project-card:nth-child(6){transition-delay:.24s}

@media (max-width:1120px){
  .projects-layout{
    grid-template-columns:1fr;
    max-width:820px;
    align-items:start;
  }
  .projects-console{align-items:flex-start}
  .projects-prompt{margin:0}
}
@media (max-width:760px){
  .projects-page .screen-section{padding-top:126px}
  .projects-layout{
    width:100%;
    max-width:100%;
    gap:24px;
  }
  .projects-page .projects-hero .hero-title{
    font-size:clamp(46px,14.5vw,70px);
    line-height:.9;
  }
  .projects-grid{
    grid-template-columns:1fr;
    gap:13px;
  }
  .project-card{
    min-height:0;
    padding:18px 16px;
  }
  .project-icon{
    width:50px;
    height:50px;
    margin-bottom:14px;
  }
  .project-icon svg{width:32px;height:32px}
  .project-card h3{font-size:24px}
  .project-card p:not(.project-kicker){font-size:13px;line-height:1.42}
}


/* V1.1.8 · Proyectos: hero arriba, grid debajo y Lightbox */
.projects-layout-v118{
  max-width:1180px;
  grid-template-columns:1fr;
  gap:28px;
  align-items:start;
}
.projects-hero-full{
  width:100%;
  min-height:auto!important;
}
.projects-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}
.projects-title-row .level-tag{
  margin:0;
}
.projects-prompt-inline{
  position:static;
  flex:0 0 auto;
  margin:0;
  max-width:100%;
  white-space:nowrap;
}
.projects-page .projects-title-fixed{
  font-size:clamp(70px,9vw,142px)!important;
  line-height:.82!important;
  max-width:100%!important;
  margin-bottom:22px;
  overflow:visible;
}
.projects-page .projects-title-fixed span{
  display:block;
  width:max-content;
  max-width:100%;
}
.projects-console-full{
  align-items:stretch;
  width:100%;
}
.projects-grid-full{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.project-card{
  cursor:pointer;
}
.project-open{
  margin-top:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:10px 13px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.32);
  color:var(--accent);
  font-family:var(--font);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:inset 0 0 14px color-mix(in srgb,var(--accent) 8%, transparent);
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.project-card:hover .project-open,
.project-open:hover{
  background:var(--accent);
  color:#001506;
  box-shadow:0 0 22px color-mix(in srgb,var(--accent) 34%, transparent);
  transform:translateY(-1px);
}
.project-lightbox{
  position:fixed;
  inset:0;
  z-index:110;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
}
.project-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.project-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(8px);
}
.project-lightbox-window{
  position:relative;
  z-index:1;
  width:min(1180px,94vw);
  max-height:88vh;
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(0,12,5,.95),rgba(0,0,0,.92));
  box-shadow:0 0 52px color-mix(in srgb,var(--accent) 34%, transparent), inset 0 0 34px color-mix(in srgb,var(--accent) 9%, transparent);
  overflow:hidden;
  transform:translateY(12px) scale(.985);
  transition:transform .22s ease;
}
.project-lightbox.is-open .project-lightbox-window{
  transform:translateY(0) scale(1);
}
.lightbox-close{
  margin-left:auto;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.35);
  color:var(--accent);
  font-family:var(--font);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.project-lightbox-body{
  padding:18px;
  max-height:calc(88vh - 44px);
  overflow:auto;
}
.project-lightbox-body img{
  display:block;
  width:100%;
  height:auto;
  border:1px solid color-mix(in srgb,var(--accent) 24%, transparent);
  box-shadow:inset 0 0 24px color-mix(in srgb,var(--accent) 10%, transparent);
}
@media (max-width:1120px){
  .projects-grid-full{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .projects-title-row{
    flex-direction:column;
    gap:12px;
  }
  .projects-prompt-inline{
    align-self:flex-start;
    font-size:9px;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .projects-page .projects-title-fixed{
    font-size:clamp(54px,18vw,78px)!important;
    line-height:.86!important;
  }
  .projects-grid-full{grid-template-columns:1fr;}
  .project-lightbox{padding:12px;}
  .project-lightbox-window{width:96vw;max-height:86vh;}
  .project-lightbox-body{padding:10px;max-height:calc(86vh - 44px);}
}


/* V1.1.9 · Botón PROYECTOS en menú y en el lateral de cada sección */
.section-side-stack{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:16px;
  width:100%;
}
.section-side-stack > .floating-window,
.section-side-stack > .mission-box,
.section-side-stack > .diagnostic-panel,
.section-side-stack > .credits-box{
  width:100%;
}
.section-projects-cta{
  min-width:160px;
  text-align:center;
  align-self:flex-end;
  padding:13px 18px;
  font-size:12px;
  position:relative;
  overflow:hidden;
}
.section-projects-cta::before{
  content:"";
  position:absolute;
  inset:-1px;
  background:linear-gradient(90deg, transparent, color-mix(in srgb,var(--accent) 20%, transparent), transparent);
  transform:translateX(-110%);
  transition:transform .45s ease;
  pointer-events:none;
}
.section-projects-cta:hover::before{transform:translateX(110%)}
.hero-side .section-projects-cta{
  margin-right:12px;
}
@media (max-width:980px){
  .section-side-stack{align-items:flex-start;order:2;}
  .section-grid.reverse .section-side-stack{order:2;}
  .section-projects-cta,
  .hero-side .section-projects-cta{align-self:flex-start;margin-right:0;}
}
@media (max-width:560px){
  .section-projects-cta{width:100%;}
}

/* V1.1.10 · Ajuste del H1 en móvil para evitar corte en “DESARROLLO” */
@media (max-width:760px){
  .hero-section .hero-title{
    font-size:clamp(44px,13vw,56px)!important;
    line-height:.86!important;
    letter-spacing:-.035em!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  .hero-section .hero-title span{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
}
@media (max-width:430px){
  .hero-section .hero-title{
    font-size:clamp(42px,12.6vw,52px)!important;
    letter-spacing:-.045em!important;
  }
}
@media (max-width:360px){
  .hero-section .hero-title{
    font-size:clamp(38px,12vw,46px)!important;
  }
}

/* V1.1.11 · Ajuste del H1 de PROYECTOS en móvil para evitar cortes */
@media (max-width:760px){
  .projects-page .projects-title-fixed{
    font-size:clamp(42px,12.8vw,58px)!important;
    line-height:.88!important;
    letter-spacing:-.035em!important;
    max-width:100%!important;
    overflow:visible!important;
    word-break:normal!important;
  }
  .projects-page .projects-title-fixed span{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  .projects-page .projects-title-fixed span::before,
  .projects-page .projects-title-fixed span::after{
    max-width:100%!important;
    white-space:nowrap!important;
  }
}
@media (max-width:430px){
  .projects-page .projects-title-fixed{
    font-size:clamp(38px,12vw,50px)!important;
    letter-spacing:-.048em!important;
  }
}
@media (max-width:360px){
  .projects-page .projects-title-fixed{
    font-size:clamp(34px,11.4vw,44px)!important;
  }
}
