/*
 * Módulo de portafolio Loto: índice gigante + caso (ventana viva + pruébalo aquí).
 * Se adapta a cada dirección redefiniendo estas variables en un contenedor padre.
 */
.pf{
  --pf-bg:#F6F5D2; --pf-ink:#2E3F86; --pf-muted:rgba(46,63,134,.72); --pf-line:rgba(46,63,134,.18);
  --pf-brand:#556FB6; --pf-accent:#F2C94C; --pf-accent-ink:#1B2558;
  --pf-surface:#FBFAE6; --pf-sheet:#F6F5D2; --pf-sheet-ink:#2E3F86;
  --pf-screen:#E9E7C3; --pf-device:#1B2558;
  --pf-radius:18px; --pf-shadow:0 1px 2px rgba(27,37,88,.10),0 18px 40px rgba(27,37,88,.18);
  --pf-display:"Bagel Fat One", "Arial Rounded MT Bold", system-ui, sans-serif;
  --pf-body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pf-mono:"DM Mono", ui-monospace, Menlo, monospace;
  --pf-name-size:clamp(44px, 9.5vw, 148px);
  color:var(--pf-ink); font-family:var(--pf-body); position:relative;
}
.pf *{box-sizing:border-box}
.pf [hidden]{display:none!important}

/* ---------- Índice ---------- */
.pf-index{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--pf-line)}
.pf-row{border-bottom:1.5px solid var(--pf-line);transition:opacity .35s ease}
.pf-link{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px 24px;padding:clamp(18px,2.6vw,30px) 4px;text-decoration:none;color:inherit;position:relative;touch-action:manipulation}
.pf-name{grid-column:1/-1;font:400 var(--pf-name-size)/.9 var(--pf-display);letter-spacing:-.02em;text-wrap:balance;overflow-wrap:anywhere;transition:transform .5s cubic-bezier(.2,.8,.2,1),color .3s ease}
.pf-meta{font:600 14px/1.4 var(--pf-body);letter-spacing:.01em;color:var(--pf-muted);min-width:0}
.pf-go{font:600 15px/1 var(--pf-body);display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid currentColor;white-space:nowrap;transition:background-color .25s,color .25s,border-color .25s}
.pf-thumb-inline{display:none}
.pf-rel{grid-column:1/-1;justify-self:start;font:700 13px/1 var(--pf-body);letter-spacing:.01em;padding:6px 10px;border-radius:999px;background:var(--pf-accent);color:var(--pf-accent-ink)}
@media (hover:hover) and (pointer:fine){
  .pf-index:hover .pf-row:not(:hover){opacity:.32}
  .pf-row:hover .pf-name{transform:translateX(clamp(8px,1.6vw,24px))}
  .pf-row:hover .pf-go{background:var(--pf-accent);border-color:var(--pf-accent);color:var(--pf-accent-ink)}
}
.pf-link:focus-visible{outline:3px solid var(--pf-accent);outline-offset:4px;border-radius:10px}
.pf-link:focus-visible .pf-go{background:var(--pf-accent);border-color:var(--pf-accent);color:var(--pf-accent-ink)}
.pf-next .pf-name{color:transparent;-webkit-text-stroke:1.5px var(--pf-ink)}
.pf-next:hover .pf-name,.pf-next .pf-link:focus-visible .pf-name{color:var(--pf-ink)}
.pf-next .pf-meta{text-transform:none;letter-spacing:0;font:500 16px/1.4 var(--pf-body)}

/* En pantallas táctiles no hay vista flotante: la portada va dentro de la fila */
@media (hover:none),(pointer:coarse){
  .pf-thumb-inline{display:block;grid-column:1/-1;order:-1;border-radius:12px;overflow:hidden;aspect-ratio:16/10;max-width:100%;background:var(--pf-screen);box-shadow:var(--pf-shadow)}
  .pf-thumb-inline img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
  .pf-thumb-inline--v{aspect-ratio:4/5;max-width:min(100%,360px);background:#000}
  .pf-thumb-inline--v video{width:100%;height:100%;object-fit:cover;display:block}
}

/* Vista flotante que sigue al cursor */
.pf-float{position:fixed;left:0;top:0;width:min(34vw,440px);aspect-ratio:16/10;pointer-events:none;z-index:40;opacity:0;transform:translate3d(-50%,-50%,0) scale(.85);transition:opacity .25s ease;will-change:transform}
.pf-float.on{opacity:1}
.pf-float-in{width:100%;height:100%;border-radius:14px;overflow:hidden;box-shadow:var(--pf-shadow);background:var(--pf-screen);border:3px solid var(--pf-accent)}
.pf-float img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.pf-float video{display:none;width:100%;height:100%;object-fit:cover;background:#000}
.pf-float--v{width:min(15vw,220px);aspect-ratio:9/16}
.pf-float--v[data-ratio="16:9"]{width:min(30vw,400px);aspect-ratio:16/9}
.pf-float--v .pf-float-in{border-radius:18px}
.pf-float--v img{display:none}
.pf-float--v video{display:block}
@media (hover:none),(pointer:coarse){.pf-float{display:none}}

/* ---------- Caso (dialog) ---------- */
.pf-case{padding:0;margin:0;border:0;width:100%;max-width:100%;height:100%;max-height:100%;background:transparent;color:var(--pf-sheet-ink);overscroll-behavior:contain}
.pf-case::backdrop{background:rgba(15,20,48,.55);backdrop-filter:blur(3px)}
.pf-case[open]{display:block}
.pf-sheet{min-height:100%;margin-top:clamp(0px,3vh,28px);background:var(--pf-sheet);border-radius:var(--pf-radius) var(--pf-radius) 0 0;
  padding-block:clamp(18px,3vw,36px) 48px;padding-left:max(16px,env(safe-area-inset-left,0px),3vw);padding-right:max(16px,env(safe-area-inset-right,0px),3vw);
  display:grid;gap:clamp(24px,4vw,44px);align-content:start;animation:pf-up .45s cubic-bezier(.2,.8,.2,1)}
@keyframes pf-up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.pf-sheet>*{min-width:0;max-width:1320px;width:100%;margin-inline:auto}
.pf-case-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;position:sticky;top:0;z-index:5;padding-block:10px;background:var(--pf-sheet)}
.pf-eyebrow{display:block;font:700 14px/1.4 var(--pf-body);letter-spacing:.01em;color:var(--pf-muted);margin-bottom:6px}
.pf-case h3{margin:0;font:400 clamp(36px,6vw,84px)/.92 var(--pf-display);letter-spacing:-.02em;text-wrap:balance}
.pf-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;font:600 15px/1 var(--pf-body);text-decoration:none;border:1.5px solid currentColor;color:inherit;background:transparent;cursor:pointer;touch-action:manipulation;transition:background-color .2s,color .2s,border-color .2s}
.pf-btn:hover{background:var(--pf-sheet-ink);color:var(--pf-sheet);border-color:var(--pf-sheet-ink)}
.pf-btn--solid{background:var(--pf-accent);color:var(--pf-accent-ink);border-color:var(--pf-accent)}
.pf-btn--solid:hover{background:var(--pf-sheet-ink);color:var(--pf-sheet);border-color:var(--pf-sheet-ink)}
.pf-close{width:48px;height:48px;padding:0;border-radius:50%}
.pf-close svg{display:block}
.pf :focus-visible{outline:3px solid var(--pf-accent);outline-offset:3px}

.pf-h4{margin:0;font:700 clamp(20px,2vw,26px)/1.15 var(--pf-body);display:flex;align-items:center;gap:10px}
.pf-h4 svg{width:30px;height:30px;color:var(--pf-brand);--lc-accent:var(--pf-accent)}
.pf-help{margin:4px 0 0;color:var(--pf-muted);font-size:16px;line-height:1.5}

/* Ventana viva */
.pf-live{display:grid;gap:16px}
.pf-live-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px}
.pf-devices{display:grid;grid-template-columns:minmax(0,3.2fr) minmax(0,1fr);gap:clamp(14px,2.4vw,32px);align-items:start}
.pf-browser,.pf-phone{margin:0;position:relative;display:grid}
.pf-browser{border-radius:14px;background:var(--pf-device);padding:0 6px 6px;box-shadow:var(--pf-shadow)}
.pf-bar{display:flex;align-items:center;gap:6px;height:38px;padding:0 8px;color:#fff}
.pf-bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.35)}
.pf-bar span{margin-left:10px;flex:1;min-width:0;height:24px;border-radius:999px;background:rgba(255,255,255,.12);font:400 13px/24px var(--pf-mono);padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-screen{position:relative;overflow:hidden;background:var(--pf-screen);border-radius:8px;cursor:ns-resize}
.pf-screen::-webkit-scrollbar{display:none}
.pf-browser .pf-screen{aspect-ratio:16/10;max-width:100%}
.pf-screen img{display:block;width:100%;height:auto}
.pf-phone{border-radius:34px;background:var(--pf-device);padding:10px;box-shadow:var(--pf-shadow);max-width:300px;justify-self:center;width:100%}
.pf-phone .pf-screen{aspect-ratio:390/780;max-width:100%;border-radius:24px}
.pf-phone::before{content:"";position:absolute;top:16px;left:50%;width:70px;height:18px;margin-left:-35px;border-radius:999px;background:var(--pf-device);z-index:2}
.pf-rail{position:absolute;right:-12px;top:44px;bottom:12px;width:4px;border-radius:4px;background:var(--pf-line)}
.pf-phone .pf-rail{top:24px;bottom:24px;right:-12px}
.pf-rail b{position:absolute;left:0;right:0;top:0;border-radius:4px;background:var(--pf-brand);min-height:14px}
.pf-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--pf-accent);color:var(--pf-accent-ink);font:600 14px/1 var(--pf-body);pointer-events:none;box-shadow:var(--pf-shadow);transition:opacity .3s ease,transform .3s ease;white-space:nowrap}
.pf-screen-wrap{position:relative;display:grid}
.pf-touched .pf-hint{opacity:0;transform:translate(-50%,8px)}
.pf-figcap{font:400 13px/1.4 var(--pf-mono);color:var(--pf-muted);margin-top:8px;letter-spacing:.04em}

/* Sobre el proyecto + demo */
.pf-case-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(20px,4vw,56px);align-items:start}
.pf-about{display:grid;gap:16px}
.pf-about p{margin:0;font-size:18px;line-height:1.55;max-width:60ch}
.pf-about ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.pf-about li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start}
.pf-about li::before{content:"";width:14px;height:14px;margin-top:5px;background:var(--pf-brand);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}
.pf-stack{display:flex;flex-wrap:wrap;gap:8px}
.pf-stack span{font:500 13px/1 var(--pf-mono);letter-spacing:.04em;padding:8px 10px;border-radius:999px;border:1.5px solid var(--pf-line)}

.pf-demo{background:var(--pf-surface);border:1.5px solid var(--pf-line);border-radius:var(--pf-radius);padding:clamp(16px,2.4vw,28px);display:grid;gap:18px}
.pf-demo fieldset{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}
.pf-demo legend{font:700 14px/1.2 var(--pf-body);letter-spacing:.01em;color:var(--pf-muted);margin-bottom:10px;padding:0}
.pf-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:8px}
.pf-chips{display:flex;flex-wrap:wrap;gap:8px}
.pf-opt{position:relative;display:block}
.pf-opt input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%}
.pf-opt span{display:grid;gap:4px;min-height:44px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--pf-line);background:transparent;transition:background-color .2s,border-color .2s,color .2s}
.pf-opt b{font-weight:600;font-size:15px}
.pf-opt small{font:400 13px/1.3 var(--pf-mono);color:var(--pf-muted)}
.pf-chips .pf-opt span{place-items:center;min-width:64px;border-radius:999px;font-weight:600}
.pf-opt input:checked+span{background:var(--pf-sheet-ink);color:var(--pf-sheet);border-color:var(--pf-sheet-ink)}
.pf-opt input:checked+span small{color:inherit;opacity:.8}
.pf-opt input:focus-visible+span{outline:3px solid var(--pf-accent);outline-offset:2px}
.pf-opt:hover span{border-color:var(--pf-sheet-ink)}

.pf-out{display:grid;gap:10px;padding:18px;border-radius:14px;background:var(--pf-sheet-ink);color:var(--pf-sheet)}
.pf-out .pf-big{font:400 clamp(40px,5vw,64px)/1 var(--pf-display);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.pf-out .pf-sub{font:500 16px/1.45 var(--pf-body);opacity:.9}
.pf-out dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px 16px}
.pf-out dt{font:700 14px/1.3 var(--pf-body);opacity:.88}
.pf-out dd{margin:0;font:600 16px/1.3 var(--pf-body);font-variant-numeric:tabular-nums}
.pf-months{display:flex;flex-wrap:wrap;gap:4px}
.pf-months i{width:12px;height:12px;border-radius:3px;background:var(--pf-accent);animation:pf-pop .3s cubic-bezier(.34,1.6,.5,1) both}
.pf-months i:first-child{background:#fff;width:22px}
@keyframes pf-pop{from{transform:scale(0)}to{transform:none}}
.pf-note{margin:0;font:400 14px/1.5 var(--pf-body);color:var(--pf-muted)}

.pf-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;border:1.5px solid var(--pf-line);justify-self:start}
.pf-tabs button{min-height:40px;padding:0 16px;border-radius:999px;border:0;background:transparent;color:inherit;font:600 14px/1 var(--pf-body);cursor:pointer;touch-action:manipulation}
.pf-tabs button[aria-selected="true"]{background:var(--pf-sheet-ink);color:var(--pf-sheet)}
.pf-step{display:flex;align-items:center;gap:6px}
.pf-step button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--pf-line);background:transparent;color:inherit;font:600 20px/1 var(--pf-body);cursor:pointer;touch-action:manipulation}
.pf-step button:hover{border-color:var(--pf-sheet-ink)}
.pf-step output{min-width:5ch;text-align:center;font:600 18px/1 var(--pf-body);font-variant-numeric:tabular-nums}
.pf-range{width:100%;accent-color:var(--pf-brand);min-height:44px}
.pf-range-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.pf-range-row output{font:600 16px/1 var(--pf-body);font-variant-numeric:tabular-nums;min-width:7ch;text-align:right}

/* Sala de proyección */
.pf-sala-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pf-lang{display:inline-flex;gap:4px;padding:4px;border-radius:999px;border:1.5px solid var(--pf-line)}
.pf-lang button{min-height:40px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:inherit;font:600 14px/1 var(--pf-body);cursor:pointer;touch-action:manipulation}
.pf-lang button[aria-pressed="true"]{background:var(--pf-sheet-ink);color:var(--pf-sheet)}
.pf-lang-note{margin:0;min-height:1.2em;font:500 13px/1.3 var(--pf-mono);color:var(--pf-muted)}
.pf-ep abbr{text-decoration:none;font-weight:600}
.pf-sala{display:grid;gap:16px}
.pf-sala-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(16px,3vw,40px);align-items:start}
.pf-sala-grid:has(.pf-player[data-ratio="16:9"]){grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.pf-player{margin:0;justify-self:center;width:100%;background:var(--pf-device);padding:10px;border-radius:30px;box-shadow:var(--pf-shadow)}
.pf-player[data-ratio="9:16"]{max-width:340px}
.pf-player[data-ratio="16:9"]{border-radius:16px;padding:8px}
.pf-vscreen{position:relative;border-radius:22px;overflow:hidden;background:#000;aspect-ratio:9/16;max-width:100%}
.pf-player[data-ratio="16:9"] .pf-vscreen{aspect-ratio:16/9;border-radius:10px}
.pf-vscreen video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pf-eps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px;align-content:start}
.pf-ep{width:100%;display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center;padding:8px;border-radius:14px;border:1.5px solid var(--pf-line);background:transparent;color:inherit;text-align:left;cursor:pointer;touch-action:manipulation;transition:background-color .2s,border-color .2s,color .2s}
.pf-ep img{width:56px;aspect-ratio:3/4;object-fit:cover;border-radius:8px;display:block;background:var(--pf-screen)}
.pf-ep span{display:grid;gap:3px;min-width:0}
.pf-ep b{font:600 15px/1.25 var(--pf-body)}
.pf-ep small{font:400 13px/1.3 var(--pf-mono);color:var(--pf-muted)}
.pf-ep:hover{border-color:var(--pf-sheet-ink)}
.pf-ep[aria-pressed="true"]{background:var(--pf-sheet-ink);color:var(--pf-sheet);border-color:var(--pf-sheet-ink)}
.pf-ep[aria-pressed="true"] small{color:inherit;opacity:.8}
.pf-badge{justify-self:start;font:700 13px/1 var(--pf-body);letter-spacing:.01em;padding:5px 9px;border-radius:999px;background:var(--pf-accent);color:var(--pf-accent-ink)}
@media (max-width:820px){.pf-sala-grid,.pf-sala-grid:has(.pf-player[data-ratio="16:9"]){grid-template-columns:minmax(0,1fr)}}

.pf-case-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;border-top:1.5px solid var(--pf-line)}

@media (max-width:820px){
  .pf-devices{grid-template-columns:minmax(0,1fr)}
  .pf-browser{display:none}
  .pf-phone{max-width:320px}
  .pf-case-grid{grid-template-columns:minmax(0,1fr)}
  .pf-link{grid-template-columns:minmax(0,1fr)}
  .pf-go{justify-self:start}
}
/* Pantallas táctiles: el marco no atrapa el scroll y deja espacio para seguir bajando */
.pf-scrub{display:none}
/* Táctil: el marco no captura el dedo (deslizar mueve la página); se recorre con la barra o en automático */
@media (pointer:coarse){
  .pf-screen{cursor:auto;touch-action:pan-y}
  .pf-phone{max-width:min(74vw,280px)}
  .pf-hint{display:none}
  .pf-scrub{display:grid;gap:4px;margin-top:12px;font:600 14px/1.2 var(--pf-body);color:rgba(255,255,255,.88);padding:0 6px 4px}
  .pf-scrub input{width:100%;min-height:44px;accent-color:var(--pf-accent);margin:0}
}
@media (max-width:820px){
  .pf-sala-grid>*{min-width:0}
  .pf-player[data-ratio="9:16"]{max-width:min(74vw,300px)}
  .pf-eps{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:8px;scrollbar-width:thin;overscroll-behavior-x:contain}
  .pf-eps li{flex:0 0 min(78%,280px);scroll-snap-align:start}
  .pf-case h3{font-size:clamp(32px,10vw,48px)}
  /* El encabezado se va con el scroll; cerrar queda siempre a la mano */
  .pf-case-head{position:relative;gap:10px;padding-right:56px}
  .pf-eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pf .pf-case-head>div:first-child{padding-right:52px;min-width:0;max-width:100%}
  .pf-close{position:fixed;top:calc(env(safe-area-inset-top,0px) + 14px);right:max(12px,env(safe-area-inset-right,0px));z-index:6;background:var(--pf-sheet);box-shadow:var(--pf-shadow)}
}
@media (prefers-reduced-motion:reduce){
  .pf-name,.pf-row,.pf-go,.pf-float{transition:none}
  .pf-sheet,.pf-months i{animation:none}
}
