/* =====================================================================
   TAMAÑOS DE TEXTO: todos con clamp(mínimo móvil, fluido, máximo escritorio).
   Para hacer un texto más pequeño/grande, cambia esos tres valores.
   ===================================================================== */
:root{
  --bg:#000; --orange:#FF6B00; --line:rgba(255,107,0,.35); --muted:#9a9a9a;
  --display:'Syne','Arial Black',Impact,sans-serif; /* Syne Bold (700) — como el logo */
  --body:'Poppins',system-ui,sans-serif;            /* Poppins Regular (400) — como el logo */
}
*{box-sizing:border-box;margin:0;padding:0;min-width:0}
html{scroll-behavior:smooth;overflow-x:clip;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:#fff;font-family:var(--body);font-weight:400;line-height:1.65;overflow-x:clip}
#fx{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
main,footer{position:relative;z-index:1}
section{min-height:100vh;min-height:100svh;padding:12vh 6vw;display:flex;flex-direction:column;justify-content:center;max-width:100%}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.02;letter-spacing:-.02em;text-transform:uppercase;overflow-wrap:break-word;text-wrap:balance}
p,a,b,span,input,textarea{overflow-wrap:break-word}
.split,.fade{text-shadow:0 0 18px #000}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.06em .03em .12em;margin:-.06em -.03em -.12em}
.w>span{display:inline-block;will-change:transform}

/* HERO */
.logo{display:block;width:clamp(96px,11vw,150px);height:auto;margin:0 auto 5vh}
#hero{position:relative;text-align:center;align-items:center;padding-top:8vh;padding-bottom:24vh} /* padding-bottom = hueco para el punto de luz */
#hero h1{font-size:clamp(1.7rem,5.4vw,5rem);max-width:min(20ch,100%);margin:0 auto}
#hero h2{font-size:clamp(1.1rem,2.7vw,2.4rem);color:var(--orange);margin-top:4vh;max-width:100%}
#hero p{max-width:min(50ch,100%);margin:3vh auto 0;color:var(--muted);font-size:clamp(.9rem,1.3vw,1.15rem)}
.scroll{position:absolute;bottom:2.5vh;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.7rem;color:var(--orange);text-decoration:none;font:700 .68rem var(--display);letter-spacing:.32em;text-transform:uppercase;padding:.4rem 1rem}
.scroll span{padding-left:.32em;animation:blink 2s ease-in-out infinite}
.scroll i{display:block;width:1px;height:44px;background:linear-gradient(var(--orange),transparent);animation:drip 2s infinite}
.scroll:hover span,.scroll:focus-visible span{animation:none;text-shadow:0 0 14px var(--orange)}
.scroll:focus-visible{outline:1px solid var(--orange)}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes blink{50%{opacity:.35}}

/* CONFLICTO */
#conflict h2{font-size:clamp(1.1rem,2.6vw,2.4rem);max-width:min(26ch,100%)}
#conflict .manifesto{font-size:clamp(1.5rem,4.2vw,3.8rem);margin-top:9vh;color:var(--orange);max-width:min(16ch,100%)}

/* VIAJE */
#journey{gap:20vh;padding-top:18vh;padding-bottom:18vh}
.block{max-width:min(520px,100%)}
.block:nth-child(even){align-self:flex-end;text-align:right}
.block h3{font-size:clamp(1.35rem,3.1vw,2.8rem);margin-bottom:2.2vh}
.block p{color:#d6d6d6;font-size:clamp(.88rem,1.15vw,1.05rem)}
.block .n{display:block;font-weight:700;font-family:var(--display);color:var(--orange);font-size:clamp(.85rem,1.2vw,1.1rem);margin-bottom:1.2vh}

/* PORTFOLIO */
#portfolio{align-items:center;text-align:center}
#pf-module{border:1px solid var(--line);background:rgba(30,30,30,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:clamp(1.6rem,5vw,4rem) clamp(1.2rem,5vw,4rem);max-width:820px;width:100%}
#pf-module h2{font-size:clamp(1.4rem,3.8vw,3.4rem)}
#pf-module p{color:var(--muted);margin:2.5vh auto 4vh;max-width:min(44ch,100%);font-size:clamp(.88rem,1.15vw,1.05rem)}
.btn{display:inline-block;max-width:100%;background:var(--orange);color:#000;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.03em;line-height:1.3;text-align:center;padding:.95rem 1.6rem;border:0;cursor:pointer;text-decoration:none;font-size:clamp(.72rem,1vw,.85rem);transition:box-shadow .3s,transform .3s}
.btn:hover,.btn:focus-visible{box-shadow:0 0 30px 6px rgba(255,107,0,.6);transform:translateY(-3px);outline:none}

/* CONTACTO */
#contact h2{font-size:clamp(1.2rem,3vw,2.6rem);max-width:min(18ch,100%)}
#contact .sub{color:var(--muted);margin-top:2vh;font-size:clamp(.9rem,1.2vw,1.1rem)}
.mail{display:block;margin-top:7vh;text-align:left;border:0;padding:.1em 0 .18em;font-family:var(--display);font-weight:700;letter-spacing:-.03em;line-height:1.1;font-size:clamp(1rem,5vw,4.6rem);overflow-wrap:anywhere;
  color:transparent;background-color:transparent;background-image:linear-gradient(90deg,var(--orange) 50%,#fff 50%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;transition:background-position .7s cubic-bezier(.7,0,.2,1)}
.mail:hover,.mail:focus-visible,.mail.ok{background-position:0 0;outline:none}
.mail-line{height:2px;background:var(--orange);box-shadow:0 0 14px var(--orange);transform-origin:left}
.copy{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;align-items:center;margin-top:2.2vh;font-size:clamp(.85rem,1.1vw,1rem)}
.copy #copy-label{color:var(--orange)}
.copy a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);transition:color .2s}
.copy a:hover{color:#fff}
.rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4vh 4vw;margin-top:10vh;padding-top:4vh;border-top:1px solid var(--line)}
.rows b{display:block;font-family:var(--display);color:var(--orange);font-size:.85rem;margin-bottom:.5rem}
.rows a,.rows span{color:#fff;text-decoration:none;font-size:clamp(1rem,1.7vw,1.5rem);transition:color .2s}
.rows a:hover{color:var(--orange)}
.socials{display:flex;flex-direction:column;gap:.3rem}
.socials a::after{content:" ↗";color:var(--orange)}

/* CURSOR */
.cur,.cur-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:9999;border-radius:50%;opacity:0;will-change:transform}
.cur{width:38px;height:38px;margin:-19px 0 0 -19px;border:1.5px solid var(--orange);display:grid;place-items:center;transition:width .3s,height .3s,margin .3s,background .3s,opacity .3s}
.cur-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--orange);transition:opacity .3s}
.cur span{font:700 .62rem var(--display);text-transform:uppercase;letter-spacing:.05em;color:#000;opacity:0;transition:opacity .2s}
.cur.is-hover{width:66px;height:66px;margin:-33px 0 0 -33px;background:rgba(255,107,0,.15)}
.cur.has-label{width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--orange)}
.cur.has-label span{opacity:1}
.cur.on,.cur-dot.on{opacity:1}
.cur.has-label+.cur-dot{opacity:0}
@media(hover:none),(pointer:coarse){.cur,.cur-dot{display:none}}
@media(hover:hover) and (pointer:fine){*,*::before,*::after{cursor:none!important}}
footer{padding:5vh 6vw;border-top:1px solid #1E1E1E;color:var(--muted);text-align:center;font-size:.8rem;background:#000}

/* TABLET */
@media(max-width:900px){
  .rows{grid-template-columns:minmax(0,1fr);margin-top:7vh}
}
/* MÓVIL */
@media(max-width:700px){
  section{padding:11vh 7vw}
  #hero{padding-top:12vh;padding-bottom:24vh}
  #journey{gap:16vh}
  .block:nth-child(even){text-align:left;align-self:flex-start}
}
@media(prefers-reduced-motion:reduce){.scroll i,.scroll span{animation:none}.mail{transition:none}}
