/* ============================================================
   LA FACTORÍA · Óliver Nabani — channel hub sobre cosmos
   navy + naranja + blanco · Space Grotesk
   ============================================================ */

@font-face{font-family:'Space Grotesk';src:url('../assets/fonts/SpaceGrotesk-Regular.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('../assets/fonts/SpaceGrotesk-Bold.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --navy:#0a0e27; --navy-deep:#050816; --navy-2:#121838;
  --primary:#F7430B; --primary-2:#ff6a32; --white:#fff;
  --text:#e8eef5; --mid:#aab4c8; --dim:#6b78a0;
  --glass:rgba(18,24,55,.5); --glass-2:rgba(18,24,55,.7);
  --font:'Space Grotesk',system-ui,sans-serif;
  --maxw:1180px; --pad:clamp(18px,4vw,56px);
  --ep:cubic-bezier(.6,0,.2,1); --soft:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{max-width:100%;overflow-x:clip;color-scheme:dark;scroll-behavior:smooth}
body{font-family:var(--font);font-weight:500;background:var(--navy-deep);color:var(--text);
  line-height:1.55;max-width:100%;overflow-x:clip;position:relative}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3,p,span,a,b,small,li{overflow-wrap:break-word}
::selection{background:var(--primary);color:#fff}

/* ---------- fondo cosmos + grano ---------- */
#cosmos{position:fixed;inset:0;z-index:-2;width:100%;height:100%;display:block;
  background:radial-gradient(130% 120% at 80% 8%,#141d44 0%,var(--navy) 46%,var(--navy-deep) 100%)}
.grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- iconos ---------- */
.ico{display:inline-block;width:24px;height:24px;flex:none;background-color:currentColor;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}
.ico--youtube{-webkit-mask-image:url(../assets/icons/youtube.svg);mask-image:url(../assets/icons/youtube.svg)}
.ico--twitch{-webkit-mask-image:url(../assets/icons/twitch.svg);mask-image:url(../assets/icons/twitch.svg)}
.ico--instagram{-webkit-mask-image:url(../assets/icons/instagram.svg);mask-image:url(../assets/icons/instagram.svg)}
.ico--discord{-webkit-mask-image:url(../assets/icons/discord.svg);mask-image:url(../assets/icons/discord.svg)}
.ico--whatsapp{-webkit-mask-image:url(../assets/icons/whatsapp.svg);mask-image:url(../assets/icons/whatsapp.svg)}
.ico--patreon{-webkit-mask-image:url(../assets/icons/patreon.svg);mask-image:url(../assets/icons/patreon.svg)}
.ico--x{-webkit-mask-image:url(../assets/icons/x.svg);mask-image:url(../assets/icons/x.svg)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:500;
  padding:12px 22px;border-radius:40px;transition:transform .4s var(--soft),background .4s,color .4s,box-shadow .4s}
.btn .ico{width:18px;height:18px}
.btn--primary{background:var(--primary);color:#fff;box-shadow:0 10px 32px -12px rgba(247,67,11,.9)}
.btn--primary:hover{transform:translateY(-3px);background:var(--primary-2);box-shadow:0 16px 44px -12px rgba(247,67,11,.95)}
.btn--ghost{background:rgba(255,255,255,.07);color:var(--text);backdrop-filter:blur(8px)}
.btn--ghost:hover{transform:translateY(-3px);color:#fff;background:rgba(247,67,11,.18)}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;
  padding:14px var(--pad);transition:background .4s,backdrop-filter .4s}
.nav.is-scrolled{background:rgba(5,8,22,.72);backdrop-filter:blur(14px)}
.nav__logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;letter-spacing:.04em}
.nav__logo img{height:25px;width:auto}
.nav__cta{margin-left:auto;font-size:12px;font-weight:500;letter-spacing:.1em;display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;border-radius:30px;background:rgba(247,67,11,.16);color:var(--text);transition:background .3s}
.nav__cta:hover{background:rgba(247,67,11,.3)}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(247,67,11,.5)}70%{box-shadow:0 0 0 8px rgba(247,67,11,0)}100%{box-shadow:0 0 0 0 rgba(247,67,11,0)}}

/* ---------- dots ---------- */
.dots{position:fixed;right:clamp(10px,1.6vw,24px);top:50%;transform:translateY(-50%);z-index:1000;display:flex;flex-direction:column;gap:13px}
.dots a{position:relative;width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.22);transition:background .35s,transform .35s var(--soft)}
.dots a::before{content:attr(data-label);position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:11px;letter-spacing:.05em;color:var(--mid);white-space:nowrap;opacity:0;transition:opacity .3s;pointer-events:none}
.dots a:hover::before{opacity:1}.dots a:hover{background:var(--mid)}
.dots a.is-active{background:var(--primary);transform:scale(1.5);box-shadow:0 0 10px rgba(247,67,11,.7)}

/* ============================================================
   CABECERA (tipo canal)
   ============================================================ */
.cab{max-width:var(--maxw);margin:0 auto;padding:clamp(74px,11vh,104px) var(--pad) 0}
.cab__banner{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 24px 60px -28px rgba(0,0,0,.9)}
.cab__banner img{width:100%;height:clamp(120px,21vw,300px);object-fit:cover;object-position:center}
.cab__banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(5,8,22,.5))}
.cab__profile{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(14px,2vw,26px);
  padding:0 clamp(6px,2vw,28px);margin-top:-34px;position:relative;z-index:2}
.cab__avatar{width:clamp(76px,10vw,108px);height:auto;border-radius:50%;border:3px solid var(--navy-deep);
  background:var(--navy);box-shadow:0 12px 30px -10px rgba(0,0,0,.8)}
.cab__id{align-self:flex-end;padding-bottom:6px}
.cab__id h1{font-size:clamp(26px,4vw,44px);font-weight:700;letter-spacing:-.02em;line-height:1}
.cab__id p{font-size:clamp(13px,1.5vw,16px);color:var(--mid);margin-top:6px;max-width:520px}
.cab__actions{display:flex;gap:10px;align-self:flex-end;padding-bottom:6px}
.cab__social{grid-column:1/-1;display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.cab__social a{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:var(--mid);
  background:var(--glass);backdrop-filter:blur(8px);transition:color .3s,background .3s,transform .3s var(--soft)}
.cab__social a:hover{color:#fff;background:rgba(247,67,11,.22);transform:translateY(-3px)}
.cab__social .ico{width:19px;height:19px}

/* ============================================================
   SECCIONES
   ============================================================ */
.sec{max-width:var(--maxw);margin:0 auto;padding:clamp(54px,9vh,108px) var(--pad)}
.phead{display:flex;align-items:baseline;gap:16px;margin-bottom:clamp(22px,4vh,40px)}
.phead__n{font-size:14px;font-weight:700;color:var(--primary);letter-spacing:.1em}
.phead h2{font-size:clamp(26px,4.4vw,52px);font-weight:700;letter-spacing:-.02em;line-height:1}
.phead__all{margin-left:auto;font-size:14px;color:var(--mid);transition:color .3s}
.phead__all:hover{color:var(--primary)}

/* ---------- VÍDEOS: 3 en fila ---------- */
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.8vw,24px)}
.video{position:relative;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;
  background:var(--glass);backdrop-filter:blur(8px);box-shadow:0 16px 40px -24px rgba(0,0,0,.85);
  transition:transform .5s var(--soft),box-shadow .5s}
.video:hover{transform:translateY(-6px);box-shadow:0 28px 58px -22px rgba(247,67,11,.5)}
.video__thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#0e1430}
.video__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--soft)}
.video:hover .video__thumb img{transform:scale(1.06)}
.video__thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,8,22,.85));opacity:.5;transition:opacity .4s}
.video:hover .video__thumb::after{opacity:.2}
.video__badge{position:absolute;top:11px;left:11px;z-index:2;font-size:10.5px;font-weight:700;letter-spacing:.07em;padding:5px 10px;border-radius:30px;background:var(--primary);color:#fff}
.video__play{position:absolute;inset:0;z-index:2;display:grid;place-items:center;opacity:0;transition:opacity .35s}
.video:hover .video__play{opacity:1}.video__play .ico{width:46px;height:46px;color:#fff}
.video__meta{padding:14px 16px 18px}
.video__date{font-size:11.5px;font-weight:500;letter-spacing:.07em;color:var(--primary);text-transform:uppercase}
.video__title{margin-top:7px;font-size:clamp(15px,1.4vw,18px);font-weight:700;line-height:1.28}

/* ---------- AGENDA ---------- */
.agenda__row{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:clamp(16px,2.6vw,32px);align-items:start}
.cal{border-radius:16px;background:var(--glass);backdrop-filter:blur(10px);padding:16px;box-shadow:0 16px 40px -26px rgba(0,0,0,.85)}
.agenda__side{display:flex;flex-direction:column;gap:12px}
.agenda__list{display:flex;flex-direction:column;gap:8px}
.aitem{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:var(--glass);transition:background .3s,transform .3s var(--soft)}
.aitem:hover{background:rgba(247,67,11,.14);transform:translateX(4px)}
.aitem__date{font-size:12.5px;color:var(--primary);font-weight:500;white-space:nowrap}
.aitem__tag{font-size:9.5px;font-weight:700;letter-spacing:.1em;color:var(--dim)}
.aitem--directo .aitem__tag{color:var(--primary)}
.aitem__title{font-size:13.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal__bar{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:14px}
.cal__bar button{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.07);font-size:17px;color:var(--text);transition:background .3s}
.cal__bar button:hover{background:rgba(247,67,11,.22)}
.cal__month{font-size:15px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;min-width:130px;text-align:center}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal__dow{font-size:11px;color:var(--dim);text-align:center;padding:4px 0;font-weight:500}
.cal__cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--dim);border-radius:8px;transition:background .25s,color .25s}
.cal__cell--empty{opacity:0}
.cal__cell--today{color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.cal__cell--ev{color:var(--text);cursor:pointer;font-weight:700}
.cal__cell--ev::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--mid)}
.cal__cell--directo::after{background:var(--primary);box-shadow:0 0 8px rgba(247,67,11,.85)}
.cal__cell--ev:hover{background:rgba(247,67,11,.2);color:#fff}
.cal__legend{display:flex;gap:18px;justify-content:center;margin-top:14px;font-size:12px;color:var(--mid)}
.cal__legend span{display:inline-flex;align-items:center;gap:7px}.cal__legend i{width:8px;height:8px;border-radius:50%}
.d-directo{background:var(--primary)}.d-video{background:var(--mid)}
.nextbig{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:28px;border-radius:16px;overflow:hidden;position:relative;
  background:linear-gradient(150deg,rgba(247,67,11,.2),rgba(18,24,55,.62));box-shadow:0 16px 40px -26px rgba(0,0,0,.85);transition:transform .4s var(--soft),box-shadow .4s}
.nextbig:hover{transform:translateY(-4px);box-shadow:0 24px 52px -22px rgba(247,67,11,.55)}
.nextbig__tag{font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--primary)}
.nextbig__date{font-size:clamp(24px,3.6vw,38px);font-weight:700;color:#fff}
.nextbig__title{font-size:15px;color:var(--text);line-height:1.3}
.nextbig__go{margin-top:6px;font-size:14px;font-weight:500;color:var(--primary)}

/* ---------- REDES (con imagen de fondo tenue) ---------- */
.redes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.red{position:relative;display:flex;flex-direction:column;gap:9px;padding:26px;border-radius:16px;overflow:hidden;isolation:isolate;
  background:var(--glass-2);box-shadow:0 14px 36px -26px rgba(0,0,0,.85);transition:transform .5s var(--soft),box-shadow .5s;min-height:200px}
.red__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;opacity:.3;
  filter:grayscale(1) contrast(1.04) brightness(.92);transition:opacity .5s var(--soft),transform .8s var(--soft);transform:scale(1.02);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.95),rgba(0,0,0,.12));mask-image:linear-gradient(180deg,rgba(0,0,0,.95),rgba(0,0,0,.12))}
.red::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(160deg,rgba(10,14,39,.5),rgba(10,14,39,.9))}
.red:hover{transform:translateY(-7px);box-shadow:0 30px 60px -24px var(--accent,rgba(247,67,11,.55))}
.red:hover .red__bg{opacity:.52;transform:scale(1.08)}
.red .ico{width:34px;height:34px;color:#fff;transition:transform .45s var(--soft)}
.red:hover .ico{transform:scale(1.12)}
.red b{font-size:21px;font-weight:700}
.red small{font-size:13.5px;color:var(--mid);line-height:1.45;flex:1}
.red__go{font-size:13px;font-weight:500;color:var(--primary);transition:letter-spacing .3s}
.red:hover .red__go{letter-spacing:.04em}
.red--yt{--accent:rgba(255,0,0,.4)}.red--tw{--accent:rgba(145,70,255,.4)}.red--pt{--accent:rgba(255,66,77,.38)}
.red--dc{--accent:rgba(88,101,242,.42)}.red--ig{--accent:rgba(225,48,108,.4)}.red--x{--accent:rgba(255,255,255,.28)}.red--wa{--accent:rgba(37,211,102,.38)}

/* ---------- DIRECTOS (páginas interactivas) ---------- */
.phead__note{margin-left:auto;font-size:13px;color:var(--mid);max-width:330px;text-align:right;align-self:center}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.dcard{position:relative;display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:14px;overflow:hidden;
  background:var(--glass);box-shadow:0 14px 36px -26px rgba(0,0,0,.85);transition:transform .5s var(--soft),box-shadow .5s}
.dcard::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .5s;
  background:radial-gradient(120% 120% at 0% 0%,rgba(247,67,11,.16),transparent 70%)}
.dcard:hover{transform:translateY(-5px);box-shadow:0 26px 54px -24px rgba(247,67,11,.5)}
.dcard:hover::before{opacity:1}
.dcard__date{font-size:12px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--primary)}
.dcard__title{font-size:19px;font-weight:700;line-height:1.2}
.dcard__sum{font-size:14px;color:var(--mid);line-height:1.45;flex:1}
.dcard__go{font-size:13px;font-weight:500;color:var(--primary);transition:letter-spacing .3s}
.dcard:hover .dcard__go{letter-spacing:.04em}

/* ---------- SOBRE MÍ ---------- */
.sobre__big{font-size:clamp(28px,5vw,54px);font-weight:700;letter-spacing:-.02em;line-height:1.05;max-width:760px}
.sobre__p{margin-top:18px;font-size:clamp(16px,2vw,20px);color:var(--mid);max-width:680px}
.sec .btn{margin-top:26px}
.foot{margin-top:42px;font-size:13px;color:var(--dim);letter-spacing:.03em}
.sobre__cols{display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(28px,5vw,60px);margin-top:26px;align-items:start}
.pillars{list-style:none;display:flex;flex-direction:column;gap:12px}
.pillars li{padding:18px 20px;border-radius:14px;background:var(--glass);border-left:3px solid var(--primary)}
.pillars b{display:block;font-size:17px;font-weight:700;margin-bottom:5px}
.pillars span{font-size:14px;color:var(--mid);line-height:1.45}

/* ============================================================
   APARICIÓN SUAVE (reveal)
   ============================================================ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--soft),transform 1.1s var(--soft)}
.reveal.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal{opacity:1!important;transform:none!important}
}
.rev .reveal{opacity:1!important;transform:none!important}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:920px){
  .dots{display:none}
  .vgrid{grid-template-columns:1fr}
  .agenda__row{grid-template-columns:1fr}
  .sobre__cols{grid-template-columns:1fr}
  .cab__profile{grid-template-columns:auto 1fr;row-gap:12px}
  .cab__actions{grid-column:1/-1;justify-self:start}
}
@media(max-width:560px){
  .cab__profile{grid-template-columns:1fr;text-align:left}
  .cab__actions .btn{flex:1 1 auto;justify-content:center}
  .phead{flex-wrap:wrap;gap:8px}.phead__all,.phead__note{margin-left:0;flex-basis:100%;text-align:left}
}
