:root{
  --bg:#09090b;
  --bg-soft:#101014;
  --panel:#131318;
  --panel-2:#18181e;
  --paper:#f2efe9;
  --paper-2:#e7e1d8;
  --ink:#121214;
  --text:#f5f3ee;
  --muted:#a5a2a0;
  --muted-2:#777579;
  --line:rgba(255,255,255,.12);
  --line-strong:rgba(255,255,255,.22);
  --wine:#7a2635;
  --wine-hi:#a03a4b;
  --wine-soft:#c99ca5;
  --blue:#6c83db;
  --max:1380px;
  --sans:"DM Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.5;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{color:inherit}
img{display:block;max-width:100%}
::selection{background:var(--wine);color:#fff}
:focus-visible{outline:2px solid var(--wine-hi);outline-offset:4px}
.shell{width:min(var(--max),calc(100% - 48px));margin:auto}
.mono,.eyebrow{font-family:var(--mono);font-size:11px;line-height:1.35;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.eyebrow{margin-bottom:12px}
.serif{font-family:var(--serif)}
.muted{color:var(--muted)}
.wine{color:var(--wine-hi)}
.rule{height:1px;background:var(--line)}
.skip{position:absolute;left:-9999px;top:8px;background:#fff;color:#111;padding:10px 14px;z-index:100}
.skip:focus{left:8px}

.site-head{position:sticky;top:0;z-index:70;background:rgba(9,9,11,.86);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.head-in{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.025em}
.brand-mark{width:32px;height:32px;border:1px solid var(--line-strong);display:grid;place-items:center;border-radius:50%;font-family:var(--mono);font-size:11px}
.brand-copy{font-size:14px}.brand-copy span{font-weight:400;color:var(--muted)}
.nav{display:flex;align-items:center;gap:22px;font-size:13px}
.nav a{position:relative;color:#d8d6d1}
.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--wine-hi);transition:.2s}
.nav a:hover:after,.nav a[aria-current="page"]:after{right:0}
.nav-cta{display:flex;align-items:center;gap:10px}
.menu-btn{display:none;border:1px solid var(--line);background:none;border-radius:9px;padding:10px 12px}
.mobile-menu{display:none}

.btn,.btn-ghost,.media-action,.text-link{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;
  transition:transform .2s,background .2s,border-color .2s,color .2s
}
.btn{padding:10px 15px;background:var(--paper);color:var(--ink);border:1px solid var(--paper);border-radius:10px;font-weight:700;font-size:13px}
.btn:hover{transform:translateY(-1px);background:#fff}
.btn-ghost{padding:10px 14px;border:1px solid var(--line-strong);border-radius:10px;font-size:13px}
.btn-ghost:hover,.media-action:hover{background:rgba(255,255,255,.05)}
.media-action{padding:10px 14px;border:1px solid var(--line-strong);border-radius:10px;background:transparent;font-size:13px;cursor:pointer}
.media-action .play{width:24px;height:24px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;font-size:10px}
.text-link{justify-content:flex-start;min-height:34px;font-size:13px;font-weight:700}
.text-link .arr{transition:transform .2s}.text-link:hover .arr{transform:translateX(4px)}

.hero{padding:36px 0 24px}
.hero-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:28px;align-items:end}
.hero-copy{padding-bottom:18px}
.hero-copy h1{font-family:var(--serif);font-weight:500;font-size:clamp(56px,7.4vw,104px);line-height:.87;letter-spacing:-.06em;margin:18px 0 22px;max-width:12ch}
.hero-copy p{font-size:18px;color:#bbb8b5;max-width:42ch;margin:0}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.hero-reel{position:relative;min-height:660px;border:1px solid var(--line-strong);overflow:hidden;background:#16171a}
.hero-reel .poster{position:absolute;inset:0;background:
linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.62)),
radial-gradient(circle at 68% 20%,rgba(255,255,255,.14),transparent 26%),
linear-gradient(135deg,#5d6672,#282d35 48%,#111216)}
.hero-reel .poster:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:12.5% 12.5%;mask-image:linear-gradient(to bottom,#000 0,transparent 82%)}
.reel-copy{position:absolute;left:24px;right:24px;bottom:24px;z-index:2}
.reel-copy h2{font-size:clamp(34px,5vw,64px);line-height:.9;letter-spacing:-.05em;margin:8px 0 10px;max-width:9ch}
.reel-copy p{margin:0;color:#dedbd6;max-width:46ch}
.timecode{position:absolute;z-index:3;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#efede8}
.tc-top{top:16px;left:16px}.tc-right{top:16px;right:16px}.tc-bottom{bottom:16px;right:16px}
.signal-scale{position:absolute;z-index:3;right:18px;top:52px;display:flex;align-items:flex-start;gap:5px}
.signal-scale i{display:block;width:1px;background:rgba(255,255,255,.72)}
.signal-scale i:nth-child(1){height:10px}.signal-scale i:nth-child(2){height:18px}.signal-scale i:nth-child(3){height:13px}.signal-scale i:nth-child(4){height:28px}.signal-scale i:nth-child(5){height:16px}.signal-scale i:nth-child(6){height:35px}.signal-scale i:nth-child(7){height:14px}.signal-scale i:nth-child(8){height:24px}.signal-scale i:nth-child(9){height:11px}
.reel-launch{position:absolute;z-index:4;left:24px;top:24px}
.wine-stripe{height:5px;background:var(--wine)}

.proof-strip{padding:17px 0}
.proof-in{display:flex;gap:9px;flex-wrap:wrap}
.proof-pill{border:1px solid var(--line);padding:8px 10px;font-size:12px;color:#c6c3bf;background:rgba(255,255,255,.015)}

.section{padding:92px 0;border-top:1px solid var(--line)}
.section-dark{background:var(--bg-soft)}
.section-paper{background:var(--paper);color:var(--ink);border-top:0}
.section-head{display:grid;grid-template-columns:205px 1fr;gap:34px;margin-bottom:36px}
.section-head h2,.page-title{font-family:var(--serif);font-weight:500;font-size:clamp(44px,5.4vw,76px);line-height:.92;letter-spacing:-.05em;margin:0 0 12px}
.section-lead{font-size:17px;color:var(--muted);max-width:720px;margin:0}
.section-paper .section-lead{color:#5d5954}
.section-paper .eyebrow,.section-paper .mono{color:#746f68}

.work-grid{display:grid;grid-template-columns:1.32fr .68fr;gap:16px}
.case-feature,.case-stack{border:1px solid var(--line);background:var(--panel)}
.media-frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:#121214}
.media-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.06)}
.media-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.36));pointer-events:none}

.media-frame.media-failed{
  background:
    radial-gradient(circle at 72% 20%,rgba(255,255,255,.10),transparent 24%),
    linear-gradient(145deg,#121318 0 48%,#7a2635 48.2% 67%,#e6e0d7 67.2% 100%);
}
.media-frame.media-failed:before{
  content:"MEDIA / FIELD NOTES";position:absolute;left:16px;bottom:16px;z-index:1;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#fff;
}
.media-badge{position:absolute;z-index:3;left:14px;top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;background:rgba(9,9,11,.7);border:1px solid rgba(255,255,255,.18);padding:7px 9px}
.media-play{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(9,9,11,.56);display:grid;place-items:center;font-size:20px;cursor:pointer;backdrop-filter:blur(6px)}
.case-copy{padding:22px}
.case-copy h3{font-family:var(--serif);font-size:40px;line-height:.94;font-weight:500;letter-spacing:-.04em;margin:8px 0 10px}
.case-copy p{color:var(--muted);margin:0 0 14px}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 18px}
.tag{border:1px solid var(--line);padding:6px 9px;font-size:11px;color:#d1ceca}
.stack-card{border-bottom:1px solid var(--line)}
.stack-card:last-child{border-bottom:0}
.stack-card .media-frame{aspect-ratio:16/10}
.stack-copy{padding:16px}
.stack-copy h3{font-family:var(--serif);font-size:30px;line-height:.94;font-weight:500;margin:8px 0 8px}
.stack-copy p{font-size:13px;color:var(--muted);margin:0 0 10px}

.sound-list{border-top:1px solid var(--line)}
.sound-row{display:grid;grid-template-columns:54px minmax(220px,1fr) minmax(160px,.75fr) 90px;gap:16px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}
.sound-icon{width:42px;height:42px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center}
.sound-row strong{display:block;font-size:15px}
.sound-row small{display:block;color:var(--muted);margin-top:2px}
.wave{height:24px;background:repeating-linear-gradient(90deg,#777 0 2px,transparent 2px 5px);mask:linear-gradient(180deg,transparent,#000 25%,#000 75%,transparent);opacity:.75}
.sound-end{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--muted);text-align:right}

.services-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.service-list{border-top:1px solid var(--line)}
.service-row{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:21px 0;border-bottom:1px solid var(--line)}
.service-row h3{font-size:23px;line-height:1.05;margin:0 0 7px}
.service-row p{margin:0;color:var(--muted);max-width:60ch}
.capability-panel{background:var(--wine);padding:24px;display:flex;flex-direction:column;justify-content:space-between;min-height:100%}
.capability-panel .eyebrow{color:#e6c6cd}
.capability-panel h3{font-family:var(--serif);font-weight:500;font-size:45px;line-height:.92;letter-spacing:-.04em;margin:8px 0 12px}
.capability-panel p{color:#ecdde0;max-width:38ch}
.cap-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.cap-item{border-top:1px solid rgba(255,255,255,.3);padding-top:8px;font-size:12px;color:#fff}

.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.metric{padding:28px 20px}
.metric+.metric{border-left:1px solid var(--line)}
.metric strong{display:block;font-family:var(--serif);font-weight:500;font-size:48px;line-height:.9;letter-spacing:-.04em}
.metric span{display:block;color:var(--muted);font-size:12px;margin-top:7px}

.about-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:38px;align-items:start}
.about-panel{border:1px solid var(--line);padding:24px;position:sticky;top:100px}
.about-panel h3{font-family:var(--serif);font-weight:500;font-size:40px;line-height:.95;margin:10px 0}
.about-panel p{color:var(--muted)}
.about-body p{font-family:var(--serif);font-size:27px;line-height:1.25;color:#dfdcd7;margin:0 0 26px}
.about-body p.small{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--muted)}
.timeline{border-top:1px solid var(--line);margin-top:28px}
.timeline-row{display:grid;grid-template-columns:110px 1fr auto;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);align-items:start}
.timeline-row b{font-size:15px}.timeline-row span{color:var(--muted);font-size:13px}
.timeline-code{font-family:var(--mono);font-size:10px;color:var(--muted)}

.brands{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.brand-name{padding:14px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;color:#d0ceca}

.cta{padding:92px 0;background:var(--paper);color:var(--ink)}
.cta h2{font-family:var(--serif);font-weight:500;font-size:clamp(52px,7.6vw,104px);line-height:.88;letter-spacing:-.06em;max-width:10ch;margin:12px 0 20px}
.cta p{max-width:55ch;color:#59564f;font-size:17px}
.cta .btn{background:var(--ink);color:#fff;border-color:var(--ink)}

.site-foot{padding:28px 0}
.foot-in{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;color:var(--muted);font-size:12px}
.foot-nav{display:flex;gap:16px;flex-wrap:wrap}
.foot-nav a{color:#c8c5c0}

.page-hero{padding:72px 0 52px}
.page-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:end}
.page-title{font-size:clamp(56px,8vw,108px);max-width:10ch}
.page-intro{font-size:18px;color:var(--muted);max-width:54ch;margin:0}
.page-aside{border:1px solid var(--line);padding:20px}
.page-aside h3{margin:8px 0 10px;font-size:21px}
.page-aside p{margin:0;color:var(--muted);font-size:14px}

.project-detail{padding:78px 0;border-top:1px solid var(--line)}
.project-detail-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:38px;align-items:start}
.project-copy{position:sticky;top:104px}
.project-copy h2{font-family:var(--serif);font-weight:500;font-size:58px;line-height:.92;letter-spacing:-.045em;margin:10px 0 13px}
.project-copy p{color:var(--muted);font-size:16px}
.project-media{display:grid;gap:12px}
.project-media .media-frame{border:1px solid var(--line)}
.detail-list{border-top:1px solid var(--line);margin-top:20px}
.detail-line{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
.detail-line span:first-child{color:var(--muted)}

.archive{border-top:1px solid var(--line)}
.archive-row{display:grid;grid-template-columns:105px 1fr 1fr 72px;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px;align-items:start}
.archive-row b{font-size:15px}.archive-row span{color:var(--muted)}
.archive-id{font-family:var(--mono);font-size:10px;color:var(--muted)}

.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.offer{border:1px solid var(--line);padding:24px;min-height:330px;display:flex;flex-direction:column;justify-content:space-between}
.offer h2{font-family:var(--serif);font-size:46px;line-height:.93;font-weight:500;margin:10px 0}
.offer p{color:var(--muted)}
.offer ul{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line)}
.offer li{padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}

.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px}
.contact-card{border:1px solid var(--line);padding:22px}
.contact-card h2{font-family:var(--serif);font-size:46px;line-height:.94;font-weight:500;margin:8px 0 12px}
.contact-card p{color:var(--muted)}
.contact-form{display:grid;gap:14px}
.field{display:grid;gap:7px}
.field label{font-size:12px;color:#d0cdca}
.field input,.field textarea{width:100%;background:#0f1014;border:1px solid var(--line-strong);color:#fff;border-radius:8px;padding:12px 13px}
.field textarea{min-height:180px;resize:vertical}
.form-note{font-size:12px;color:var(--muted)}
.copy-email{cursor:pointer;background:none;border:0;padding:0;color:#fff;text-decoration:underline;text-underline-offset:4px}


@media(max-width:1000px){
  .hero-grid,.work-grid,.services-grid,.about-grid,.page-hero-grid,.project-detail-grid,.offer-grid,.contact-grid{grid-template-columns:1fr}
  .hero-reel{min-height:560px}
  .section-head{grid-template-columns:1fr;gap:10px}
  .case-stack{display:grid;grid-template-columns:1fr 1fr}
  .stack-card:first-child{border-right:1px solid var(--line);border-bottom:0}
  .about-panel,.project-copy{position:relative;top:auto}
}
@media(max-width:760px){
  .shell{width:min(100% - 30px,var(--max))}
  .head-in{height:64px}
  .nav,.nav-cta{display:none}
  .menu-btn{display:block}
  .mobile-menu{position:fixed;inset:64px 0 0;z-index:69;background:rgba(9,9,11,.98);padding:24px;display:none}
  .mobile-menu.open{display:flex;flex-direction:column;gap:4px}
  .mobile-menu a{padding:14px 0;border-bottom:1px solid var(--line);font-size:22px;font-family:var(--serif)}
  .mobile-menu .btn{margin-top:18px;font-family:var(--sans);font-size:13px}
  .hero{padding-top:24px}.hero-copy h1{font-size:58px;max-width:11ch}.hero-copy p{font-size:16px}
  .hero-reel{min-height:460px}
  .reel-copy h2{font-size:42px}
  .section{padding:66px 0}.section-head h2{font-size:46px}
  .case-stack{grid-template-columns:1fr}.stack-card:first-child{border-right:0;border-bottom:1px solid var(--line)}
  .sound-row{grid-template-columns:48px 1fr 72px}.wave{display:none}
  .service-row{grid-template-columns:1fr;gap:8px}
  .metric-grid{grid-template-columns:1fr 1fr}
  .metric:nth-child(3){border-left:0;border-top:1px solid var(--line)}
  .metric:nth-child(4){border-top:1px solid var(--line)}
  .about-body p{font-size:23px}
  .timeline-row{grid-template-columns:85px 1fr}.timeline-code{grid-column:2}
  .page-hero{padding:54px 0 38px}.page-title{font-size:64px}
  .project-copy h2{font-size:48px}
  .archive-row{grid-template-columns:75px 1fr 58px}.archive-row .archive-role{grid-column:2/4}
  .cap-list{grid-template-columns:1fr}
  .contact-card h2{font-size:38px}
  .foot-in{flex-direction:column}
}
@media(max-width:480px){
  .hero-copy h1{font-size:49px}
  .hero-reel{min-height:420px}
  .reel-copy{left:18px;right:18px;bottom:18px}
  .reel-copy h2{font-size:36px}
  .metric-grid{grid-template-columns:1fr}
  .metric+.metric{border-left:0;border-top:1px solid var(--line)}
  .metric:nth-child(3),.metric:nth-child(4){border-top:1px solid var(--line)}
  .page-title{font-size:55px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition:none!important;animation:none!important}
}


/* =========================================================
   v0.6 · PERSONALIDAD / MEDIA LOCAL / MICROINSTRUMENTACIÓN
   ========================================================= */
:root{
  --wine:#762433;
  --wine-hi:#a43b4e;
  --oled:#9edbbf;
}
.brand-mark{
  border:0;width:38px;height:38px;border-radius:0;padding:0;
  display:flex;align-items:center;justify-content:center;
}
.brand-mark img{
  max-width:34px;max-height:28px;filter:invert(1);opacity:.96;
}
.brand-copy{letter-spacing:-.02em}
.brand-copy strong{font-weight:650}
.header-vu{
  display:flex;align-items:flex-end;gap:3px;height:19px;margin-left:4px;
}
.header-vu i{
  display:block;width:3px;height:7px;background:rgba(255,255,255,.18);
  transition:background .15s,height .15s;
}
.header-vu i:nth-child(3n+1){height:11px}
.header-vu i:nth-child(4n){height:15px}
.header-vu i.on{background:var(--wine-hi)}
.brand:hover .brand-mark img{opacity:1}

.rec-dot-live{
  display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--wine-hi);
  box-shadow:0 0 0 rgba(164,59,78,.35);
  animation:recPulse 1.45s ease-in-out infinite;
}
@keyframes recPulse{
  0%,100%{opacity:.45;box-shadow:0 0 0 0 rgba(164,59,78,.20)}
  50%{opacity:1;box-shadow:0 0 0 5px rgba(164,59,78,0)}
}

.hero-grid{grid-template-columns:.84fr 1.16fr}
.hero-personal{
  position:relative;min-height:650px;border:1px solid var(--line-strong);overflow:hidden;background:#111;
}
.hero-personal img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 44%;
  filter:saturate(.88) contrast(1.03);
}
.hero-personal::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.02) 30%,rgba(0,0,0,.64) 100%);
}
.hero-personal .hero-photo-caption{
  position:absolute;z-index:3;left:20px;bottom:18px;right:20px;
  display:flex;justify-content:space-between;gap:14px;align-items:end
}
.hero-photo-caption strong{
  font-family:var(--serif);font-size:clamp(27px,3.2vw,42px);font-weight:500;line-height:.95;
  max-width:12ch;
}
.hero-photo-caption span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:#ebe8e1}

.tuner{
  margin-top:28px;border-top:1px solid var(--line);padding-top:13px;max-width:610px;
}
.tuner-top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:10px}
.oled{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--oled);
  border:1px solid rgba(158,219,191,.28);padding:6px 8px;background:rgba(7,29,22,.36);
  min-width:128px;text-align:center;
}
.tuner-scale{
  position:relative;height:48px;border-bottom:1px solid var(--line-strong);display:grid;
  grid-template-columns:repeat(4,1fr);align-items:end;
}
.tuner-scale::before{
  content:"";position:absolute;left:0;right:0;bottom:14px;height:15px;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.24) 0 1px,transparent 1px 13px);
}
.tuner-needle{
  position:absolute;bottom:7px;left:12.5%;width:1px;height:28px;background:var(--wine-hi);
  box-shadow:0 0 8px rgba(164,59,78,.65);
  transform:translateX(-50%);transition:left .45s cubic-bezier(.2,.8,.2,1);
}
.tuner-stop{
  position:relative;z-index:2;border:0;background:none;color:#aaa;padding:0 4px 29px;
  cursor:pointer;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;
}
.tuner-stop:hover,.tuner-stop.active{color:#fff}

.local-media{
  position:relative;overflow:hidden;background:#111;
}
.local-media img{width:100%;height:100%;object-fit:cover}
.local-media.stage img{object-position:center 35%}
.local-media.voice img{object-position:center 28%}
.local-media.portrait img{object-position:center 20%}


.audio-rack{
  display:grid;grid-template-columns:.78fr 1.22fr;gap:18px;align-items:stretch;
}
.voice-visual{min-height:450px;border:1px solid var(--line);position:relative}
.voice-visual .local-media{height:100%}
.voice-visual::after{
  content:"VOICE / STUDIO";position:absolute;left:14px;bottom:12px;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#eee;
}
.podcast-inline{
  border:1px solid var(--line);background:#111;padding:18px;display:flex;flex-direction:column;
}
.podcast-inline h3{
  font-family:var(--serif);font-size:36px;line-height:.95;font-weight:500;margin:8px 0 9px;
}
.podcast-inline p{color:var(--muted);margin:0 0 16px}
.audio-meta-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px
}
.audio-meta{
  border-top:1px solid var(--line);padding-top:8px;font-family:var(--mono);font-size:9px;
  letter-spacing:.07em;color:var(--muted)
}

.micro-vu{
  display:flex;gap:4px;align-items:flex-end;height:24px;margin:14px 0 5px;
}
.micro-vu i{width:5px;height:6px;background:#333}
.micro-vu i:nth-child(2){height:10px}.micro-vu i:nth-child(3){height:16px}.micro-vu i:nth-child(4){height:12px}
.micro-vu i:nth-child(5){height:21px}.micro-vu i:nth-child(6){height:18px}.micro-vu i:nth-child(7){height:9px}
.micro-vu i:nth-child(-n+4){background:#777}.micro-vu i:nth-child(5){background:var(--wine-hi)}

.photo-break{
  margin-top:34px;display:grid;grid-template-columns:1.1fr .9fr;gap:16px
}
.photo-break .local-media{min-height:390px;border:1px solid var(--line)}
.photo-note{
  border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;justify-content:space-between
}
.photo-note h3{font-family:var(--serif);font-weight:500;font-size:40px;line-height:.95;margin:10px 0}
.photo-note p{color:var(--muted)}

.about-portrait-grid{
  display:grid;grid-template-columns:.78fr 1.22fr;gap:28px;align-items:start
}
.about-portrait{
  position:sticky;top:100px;border:1px solid var(--line);min-height:540px;
}
.about-portrait .local-media{height:540px}
.about-body-v06 p{
  font-family:var(--serif);font-size:27px;line-height:1.25;color:#dfdcd7;margin:0 0 24px
}
.about-body-v06 p.small{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--muted)}

.footer-logo img{width:min(430px,82vw);filter:invert(1);opacity:.72}

@media(max-width:1000px){
  .audio-rack,.photo-break,.about-portrait-grid{grid-template-columns:1fr}
  .about-portrait{position:relative;top:auto}
  .hero-personal{min-height:560px}
}
@media(max-width:760px){
  .hero-grid{grid-template-columns:1fr}
  .hero-personal{min-height:510px}
  .tuner{max-width:none}
  .audio-meta-grid{grid-template-columns:1fr}
  .voice-visual{min-height:420px}
  .about-portrait,.about-portrait .local-media{min-height:480px;height:480px}
  .header-vu{display:none}
}
@media(prefers-reduced-motion:reduce){
  .rec-dot-live{animation:none}
  .tuner-needle{transition:none}
}


/* =========================================================
   v0.7 · CIERRE DE CARGAS / MENOS REPETICIÓN / MÁS CONTENIDO
   ========================================================= */
.project-rail{
  display:grid;grid-template-columns:1.15fr .85fr;gap:14px;
}
.project-poster{
  min-height:420px;border:1px solid var(--line);position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 78% 18%,rgba(255,255,255,.08),transparent 25%),
    linear-gradient(145deg,#17181d 0 58%,#762433 58.2% 74%,#0d0d10 74.2%);
}
.project-poster::before{
  content:"";position:absolute;inset:0;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 18px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 18px);
  mask-image:linear-gradient(180deg,#000 0,transparent 85%);
}
.project-poster .poster-index{
  position:absolute;left:16px;top:15px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#eee;
}
.project-poster .poster-copy{
  position:absolute;left:20px;right:20px;bottom:18px;z-index:2;
}
.project-poster .poster-copy h3{
  font-family:var(--serif);font-weight:500;font-size:clamp(38px,4.8vw,64px);
  line-height:.9;letter-spacing:-.045em;margin:8px 0 9px;max-width:9ch;
}
.project-poster .poster-copy p{margin:0;color:#d9d5cf;max-width:50ch}
.project-poster .poster-link{
  position:absolute;right:18px;top:16px;z-index:3;font-family:var(--mono);font-size:10px;letter-spacing:.09em;
  border:1px solid rgba(255,255,255,.25);padding:7px 9px;background:rgba(0,0,0,.18)
}
.project-list{
  border:1px solid var(--line);display:flex;flex-direction:column;
}
.project-mini{
  flex:1;padding:18px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;
  min-height:195px;position:relative;overflow:hidden;background:rgba(255,255,255,.015)
}
.project-mini:last-child{border-bottom:0}
.project-mini::after{
  content:"";position:absolute;right:-50px;bottom:-70px;width:170px;height:170px;border:1px solid rgba(255,255,255,.08);border-radius:50%;
}
.project-mini h3{font-family:var(--serif);font-weight:500;font-size:30px;line-height:.93;margin:8px 0}
.project-mini p{font-size:13px;color:var(--muted);margin:0;max-width:38ch}
.project-mini .mini-link{font-size:12px;font-weight:700;margin-top:14px}
.artist-grid{
  display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:18px
}
.artist-grid a{
  min-height:112px;padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.01)
}
.artist-grid a:hover{background:rgba(255,255,255,.035)}
.artist-grid strong{font-family:var(--serif);font-size:24px;font-weight:500}
.artist-grid span{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--muted)}
.audio-library{
  border-top:1px solid var(--line);
}
.audio-item{
  display:grid;grid-template-columns:56px minmax(220px,1fr) auto;gap:16px;align-items:center;
  padding:17px 0;border-bottom:1px solid var(--line)
}
.audio-symbol{
  width:42px;height:42px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;
  font-size:12px
}
.audio-item strong{display:block}
.audio-item small{display:block;color:var(--muted);margin-top:3px}
.audio-go{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#d9d5d0}
.audio-item:hover .audio-symbol{border-color:var(--wine-hi);color:var(--wine-hi)}
.signal-rule{
  height:38px;position:relative;margin:22px 0 4px;border-bottom:1px solid var(--line)
}
.signal-rule::before{
  content:"";position:absolute;left:0;right:0;bottom:10px;height:14px;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.2) 0 1px,transparent 1px 14px)
}
.signal-rule span{
  position:absolute;bottom:0;left:38%;width:1px;height:28px;background:var(--wine-hi);box-shadow:0 0 7px rgba(164,59,78,.5)
}
.source-note{
  font-size:11px;color:var(--muted);border-left:2px solid var(--wine);padding-left:12px;margin-top:14px
}
@media(max-width:900px){
  .project-rail{grid-template-columns:1fr}
  .artist-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .artist-grid{grid-template-columns:1fr}
  .audio-item{grid-template-columns:48px 1fr}
  .audio-go{grid-column:2}
  .project-poster{min-height:390px}
}

/* v1.0 RC */
body{min-width:320px}
.brand-copy{white-space:nowrap}
.nav a[aria-current="page"]{color:#fff}
.nav a[aria-current="page"]::after{right:0}
.hero-copy h1,.section-head h2,.page-title,.cta h2{text-wrap:balance}
.section-lead,.page-intro{max-width:66ch}
.hero-personal img{transition:transform 1.2s cubic-bezier(.2,.75,.2,1)}
.hero-personal:hover img{transform:scale(1.015)}
.project-poster .poster-copy h3,.project-mini h3{text-wrap:balance}

.format-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}
.format-card{min-height:260px;border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.012);position:relative;overflow:hidden}
.format-card::after{content:"";position:absolute;right:-55px;bottom:-70px;width:170px;height:170px;border:1px solid rgba(255,255,255,.07);border-radius:50%}
.format-card .format-no{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--muted)}
.format-card h3{font-family:var(--serif);font-weight:500;font-size:31px;line-height:.94;margin:12px 0 9px;max-width:12ch}
.format-card p{font-size:13px;color:var(--muted);margin:0;max-width:34ch}
.format-card .format-foot{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#d2cfca;margin-top:18px}

.external-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.external-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);padding:8px 10px;font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#d2cfca}
.external-chip:hover{border-color:var(--wine-hi);color:#fff}

.footer-logo img{max-height:34px;width:auto;max-width:min(430px,72vw)}
.foot-in{align-items:center}
.site-foot{border-top:1px solid var(--line)}
.contact-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
.contact-meta div{border-top:1px solid var(--line);padding-top:8px;font-size:12px;color:var(--muted)}
.contact-meta strong{display:block;color:#ddd;font-size:13px;margin-bottom:3px}

@media(max-width:900px){.format-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){
  .format-grid{grid-template-columns:1fr}
  .contact-meta{grid-template-columns:1fr}
  .brand-copy span{display:none}
}

/* RC2 · semantic/accessibility refinements; visual appearance unchanged */
.aside-title{
  margin:8px 0 10px;
  font-size:21px;
  line-height:1.12;
  font-weight:700;
}
.photo-note h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:40px;
  line-height:.95;
  margin:10px 0;
}
.about-panel h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:40px;
  line-height:.95;
  margin:10px 0;
}

/* =========================================================
   v1.1 RC1 · CONVERGENCIA
   ========================================================= */
:root{
  --wine:#762433;
  --wine-hi:#a43b4e;
  --glass:rgba(255,255,255,.055);
  --gridline:rgba(255,255,255,.055);
}

/* segmented header meter: visible on mobile too */
.header-vu{display:flex!important;gap:2px;height:15px;align-items:center;margin-left:8px}
.header-vu i{width:5px;height:5px!important;border-radius:1px;background:rgba(255,255,255,.13);transition:background .16s,transform .16s}
.header-vu i.on{background:var(--wine-hi);box-shadow:0 0 5px rgba(164,59,78,.28);transform:translateY(-1px)}
.header-vu i:nth-child(6n){margin-right:2px}

/* more intentional editorial photo treatment without altering source files */
.art-photo{position:relative;isolation:isolate;background:#0d0e11}
.art-photo img{filter:saturate(.74) contrast(1.08) brightness(.96)}
.art-photo::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;opacity:.13;background-image:radial-gradient(rgba(255,255,255,.8) .55px,transparent .7px);background-size:4px 4px}
.art-photo::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(135deg,rgba(118,36,51,.09),transparent 34%,rgba(255,255,255,.025) 70%,transparent)}
.frame-corners{position:absolute;inset:14px;z-index:4;pointer-events:none;background:linear-gradient(#fff,#fff) left top/22px 1px no-repeat,linear-gradient(#fff,#fff) left top/1px 22px no-repeat,linear-gradient(#fff,#fff) right top/22px 1px no-repeat,linear-gradient(#fff,#fff) right top/1px 22px no-repeat,linear-gradient(#fff,#fff) left bottom/22px 1px no-repeat,linear-gradient(#fff,#fff) left bottom/1px 22px no-repeat,linear-gradient(#fff,#fff) right bottom/22px 1px no-repeat,linear-gradient(#fff,#fff) right bottom/1px 22px no-repeat;opacity:.38}

/* glass tuner: subtle radio depth */
.tuner-glass{position:relative;padding:14px 14px 0;border:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));box-shadow:inset 0 1px rgba(255,255,255,.06),inset 0 -16px 28px rgba(0,0,0,.22)}
.tuner-glass .tuner-scale{overflow:hidden;background:linear-gradient(180deg,rgba(25,27,30,.88),rgba(9,10,12,.96));box-shadow:inset 0 8px 24px rgba(0,0,0,.44),inset 0 1px rgba(255,255,255,.05)}
.tuner-glass-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 0 22%,rgba(255,255,255,.055) 35%,transparent 50%);opacity:.45}
.tuner-needle{width:2px!important;height:29px!important;background:#a93448!important;box-shadow:0 0 3px rgba(202,66,89,.95),0 0 9px rgba(164,59,78,.68),0 0 18px rgba(118,36,51,.35)!important;z-index:3}
.oled{box-shadow:inset 0 0 12px rgba(40,115,82,.12),0 0 8px rgba(158,219,191,.05)}

/* YouTube / community block */
.channel-card{border:1px solid var(--line);background:#0b0c0f;position:relative;overflow:hidden;margin-top:18px}
.channel-card::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,var(--gridline) 0 1px,transparent 1px 32px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 32px);opacity:.62;pointer-events:none}
.channel-card::after{content:"";position:absolute;width:210px;height:8px;background:var(--wine);right:-48px;top:72px;transform:rotate(-21deg);opacity:.9;pointer-events:none}
.channel-top{position:relative;z-index:2;display:flex;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#d8d4cf}
.channel-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr .82fr;min-height:390px}
.channel-copy{padding:36px 28px;display:flex;flex-direction:column;justify-content:center}
.channel-copy h3{font-family:var(--serif);font-size:clamp(44px,5vw,68px);font-weight:500;line-height:.9;letter-spacing:-.045em;max-width:9ch;margin:12px 0 14px}
.channel-copy p{color:var(--muted);max-width:44ch}
.channel-visual{min-height:390px;overflow:hidden;border-left:1px solid var(--line)}
.channel-visual img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.interview-row{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.interview-button{appearance:none;text-align:left;background:rgba(255,255,255,.01);color:#fff;border:0;border-right:1px solid var(--line);padding:16px;min-height:108px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;gap:8px;cursor:pointer}
.interview-button:last-child{border-right:0}.interview-button:hover{background:rgba(255,255,255,.045)}
.interview-button strong{font-family:var(--serif);font-size:27px;font-weight:500;grid-column:1}
.interview-button span{font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:var(--muted);grid-column:1}
.interview-button b{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--wine-hi);grid-column:2;grid-row:1/3;align-self:center}
.interview-pending span{color:#777}
.compact-channel{margin-top:0}.compact-channel .channel-grid{min-height:330px}.compact-channel .channel-visual{min-height:330px}.compact-channel .channel-copy h3{font-size:44px}

.project-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.project-grid-dark{min-height:250px!important;background:#0c0d10!important}
.project-grid-dark::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 24px),repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 24px);pointer-events:none}
.project-grid-dark::after{border-radius:0!important;width:190px!important;height:7px!important;background:var(--wine);transform:rotate(-28deg);right:-48px!important;bottom:42px!important;border:0!important;opacity:.8}
.project-grid-dark>*{position:relative;z-index:2}

/* Audio console */
.audio-console{display:grid;grid-template-columns:.92fr 1.08fr;border:1px solid var(--line);background:#0c0d10;margin-top:24px}
.audio-console-copy{padding:26px;position:relative;overflow:hidden;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 28px),repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 28px)}
.audio-console-copy h3{font-family:var(--serif);font-size:42px;line-height:.93;font-weight:500;margin:10px 0 12px;max-width:12ch}
.audio-console-copy p{color:var(--muted);max-width:42ch}
.podcast-embed-wrap{display:grid;place-items:center;gap:10px;padding:16px;border-left:1px solid var(--line);min-height:0;background:#111}
.podcast-frame{display:block;width:100%;max-width:660px;height:175px;border:0;border-radius:10px;overflow:hidden}
.podcast-show-link{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#c9c5c0;text-transform:uppercase}.podcast-show-link:hover{color:#fff}
.dial-player{margin-top:28px;border-top:1px solid var(--line);padding-top:12px}
.dial-label{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:#bbb}
.dial-window{height:68px;margin-top:8px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#202126,#0b0c0e 64%);box-shadow:inset 0 14px 24px rgba(0,0,0,.48),inset 0 -3px 12px rgba(255,255,255,.02)}
.dial-window::before{content:"";position:absolute;left:14px;right:14px;bottom:18px;height:25px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 1px,transparent 1px 12px)}
.dial-glass{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,rgba(255,255,255,.02),rgba(255,255,255,.08) 28%,transparent 46%);box-shadow:inset 0 0 22px rgba(255,255,255,.025)}
.dial-needle{position:absolute;z-index:3;bottom:9px;left:12%;height:48px;width:2px;background:#a93448;transform:translateX(-50%);box-shadow:0 0 3px #df5068,0 0 10px rgba(169,52,72,.78),0 0 22px rgba(118,36,51,.38);transition:left .12s linear}
.dial-marks{height:12px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.13) 0 1px,transparent 1px 8px)}
.audio-library-vnext{margin-top:14px}

/* large cards: dark grid + red signal instead of burgundy fill */
.capability-panel.capability-grid{background:#0b0c0f!important;border:1px solid var(--line);position:relative;overflow:hidden}
.capability-panel.capability-grid::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 26px),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 26px)}
.capability-panel.capability-grid::after{content:"";position:absolute;width:230px;height:8px;right:-58px;top:84px;background:var(--wine);transform:rotate(-24deg)}
.capability-panel.capability-grid>*{position:relative;z-index:2}
.capability-panel.capability-grid .eyebrow{color:#aaa!important}.capability-panel.capability-grid p{color:var(--muted)!important}

/* transfer section */
.transfer-section{display:grid;grid-template-columns:1.04fr .96fr;gap:28px;align-items:stretch}
.transfer-copy{padding:22px 0;display:flex;flex-direction:column;justify-content:center}
.transfer-copy h2{font-family:var(--serif);font-size:clamp(48px,6vw,78px);font-weight:500;line-height:.9;letter-spacing:-.045em;margin:10px 0 18px;max-width:10ch}
.process-quote{font-family:var(--serif);font-size:25px;line-height:1.2;color:#d9d6d1;border-left:2px solid var(--wine);padding:12px 0 12px 18px;margin:26px 0 22px;max-width:30ch}
.transfer-photo{min-height:520px;border:1px solid var(--line);overflow:hidden}
.transfer-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}.transfer-photo figcaption,.media-caption,.about-portrait-card figcaption,.about-landscape-card figcaption{position:absolute;z-index:4;left:14px;bottom:12px;font-family:var(--mono);font-size:9px;letter-spacing:.11em;color:#eee;background:rgba(0,0,0,.45);padding:6px 8px}

/* About page */
.process-aside{background:#0b0c0f!important;position:relative;overflow:hidden}
.process-aside::after{content:"";position:absolute;z-index:0;width:180px;height:6px;background:var(--wine);right:-45px;bottom:42px;transform:rotate(-28deg);opacity:.52}
.process-aside>*{position:relative;z-index:1}
.about-image-duo{display:grid;grid-template-columns:.72fr 1.28fr;gap:16px;align-items:stretch}
.about-portrait-card,.about-landscape-card{border:1px solid var(--line);overflow:hidden;min-height:520px;position:relative}
.about-portrait-card img,.about-landscape-card img{width:100%;height:100%;object-fit:cover}
.about-portrait-card img{object-position:center 22%}.about-landscape-card img{object-position:center 34%}
.narrative-grid{display:grid;grid-template-columns:.76fr 1.24fr;gap:34px}.narrative-marker{position:sticky;top:95px;align-self:start}.narrative-marker h2{font-family:var(--serif);font-size:52px;line-height:.92;font-weight:500;margin:10px 0;max-width:9ch}.narrative-copy p{font-family:var(--serif);font-size:27px;line-height:1.25;color:#dedbd6;margin:0 0 24px}.narrative-copy p.small{font-family:var(--sans);font-size:15px;color:var(--muted);line-height:1.65}
.transfer-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.transfer-grid article{padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:250px;background:rgba(255,255,255,.01)}
.transfer-grid article span{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--wine-hi)}
.transfer-grid h3{font-family:var(--serif);font-size:30px;line-height:.95;font-weight:500;margin:28px 0 10px}.transfer-grid p{font-size:13px;color:var(--muted)}
.process-story{max-width:900px}.process-story h2{font-family:var(--serif);font-size:clamp(52px,7vw,86px);font-weight:500;line-height:.88;letter-spacing:-.05em;margin:10px 0 22px;max-width:10ch}.process-lead{font-family:var(--serif);font-size:27px;line-height:1.28;color:#dedbd6;max-width:32ch}.process-strip{margin-top:28px;border-top:1px solid var(--line)}.process-strip span{display:block;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}

/* Blueprint / systems */
.blueprint-panel{min-height:520px;border:1px solid rgba(131,170,202,.32);position:relative;overflow:hidden;background-color:#0b1118;background-image:linear-gradient(rgba(124,169,204,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(124,169,204,.08) 1px,transparent 1px),linear-gradient(rgba(124,169,204,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(124,169,204,.035) 1px,transparent 1px);background-size:40px 40px,40px 40px,8px 8px,8px 8px}
.blueprint-title{position:absolute;left:16px;top:14px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:#98bad2}
.blueprint-node{position:absolute;border:1px solid rgba(151,192,222,.48);color:#b9d5e7;padding:9px 11px;font-family:var(--mono);font-size:9px;letter-spacing:.09em;background:rgba(8,17,25,.75);z-index:2}
.blueprint-node.n1{left:10%;top:20%}.blueprint-node.n2{left:39%;top:38%}.blueprint-node.n3{right:10%;top:20%}.blueprint-node.n4{left:12%;bottom:24%}.blueprint-node.n5{right:11%;bottom:22%}
.blueprint-panel svg{position:absolute;inset:70px 20px 20px;width:calc(100% - 40px);height:calc(100% - 90px)}.blueprint-panel path{fill:none;stroke:rgba(151,192,222,.5);stroke-width:1.3;stroke-dasharray:5 6}
.artist-grid-vnext button{appearance:none;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.01);color:#fff;text-align:left;min-height:112px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer}.artist-grid-vnext button:hover{background:rgba(255,255,255,.04)}.artist-grid-vnext button strong{font-family:var(--serif);font-size:24px;font-weight:500}.artist-grid-vnext button span{font-family:var(--mono);font-size:9px;color:var(--muted)}

/* Media modal */
.media-modal{position:fixed;inset:0;z-index:999;background:rgba(3,4,6,.92);backdrop-filter:blur(14px);display:none;align-items:center;justify-content:center;padding:24px}.media-modal.open{display:flex}.media-modal-card{width:min(1080px,100%);background:#08090b;border:1px solid var(--line-strong);box-shadow:0 30px 80px rgba(0,0,0,.6)}.media-modal-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:9px;letter-spacing:.08em}.media-modal-close{appearance:none;border:1px solid var(--line);background:#111;color:#fff;padding:7px 9px;cursor:pointer}.media-modal-frame{aspect-ratio:16/9;background:#000}.media-modal-frame iframe{display:block;width:100%;height:100%;border:0}.media-modal-note{padding:9px 14px;color:var(--muted);font-size:11px}

/* signal cursor / reticle */
.signal-cursor{position:fixed;z-index:1100;left:0;top:0;width:24px;height:24px;pointer-events:none;opacity:0;transform:translate3d(-100px,-100px,0);transition:width .18s,height .18s,opacity .18s}.signal-cursor::before,.signal-cursor::after{content:"";position:absolute;background:rgba(255,255,255,.72)}.signal-cursor::before{left:50%;top:0;width:1px;height:100%;transform:translateX(-50%)}.signal-cursor::after{top:50%;left:0;height:1px;width:100%;transform:translateY(-50%)}.signal-cursor-dot{position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:var(--wine-hi);transform:translate(-50%,-50%);box-shadow:0 0 7px rgba(164,59,78,.7)}.signal-cursor-label{position:absolute;left:31px;top:3px;font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:#fff;white-space:nowrap;opacity:0;transition:opacity .15s}.signal-cursor.active{width:38px;height:38px}.signal-cursor.active .signal-cursor-label{opacity:1}.signal-cursor-trail{position:fixed;z-index:1099;width:4px;height:4px;border-radius:50%;background:var(--wine-hi);pointer-events:none;opacity:.25;box-shadow:0 0 10px rgba(164,59,78,.4)}
@media (hover:hover) and (pointer:fine){html.signal-cursor-ready,html.signal-cursor-ready a,html.signal-cursor-ready button{cursor:none}.signal-cursor{opacity:1}}

/* responsive */
@media(max-width:1000px){.channel-grid,.audio-console,.transfer-section,.about-image-duo,.narrative-grid{grid-template-columns:1fr}.channel-visual{border-left:0;border-top:1px solid var(--line)}.podcast-embed-wrap{border-left:0;border-top:1px solid var(--line)}.narrative-marker{position:relative;top:auto}.transfer-grid{grid-template-columns:1fr 1fr}.about-landscape-card{min-height:460px}}
@media(max-width:760px){
  .brand-copy{font-size:14px}.header-vu{margin-left:4px;gap:2px}.header-vu i{width:4px}.header-vu i:nth-child(n+11){display:none}
  .hero-vnext{padding-top:22px}.hero-personal{min-height:490px}
  .interview-row{grid-template-columns:1fr}.interview-button{border-right:0;border-bottom:1px solid var(--line);min-height:90px}
  .project-duo{grid-template-columns:1fr}.channel-copy{padding:28px 20px}.channel-copy h3{font-size:49px}.channel-grid{min-height:auto}.channel-visual{min-height:300px}
  .audio-console-copy{padding:20px}.podcast-embed-wrap{padding:10px;min-height:0}
  .transfer-grid{grid-template-columns:1fr}.transfer-grid article{min-height:190px}
  .transfer-photo{min-height:460px}.about-portrait-card,.about-landscape-card{min-height:470px}
  .narrative-copy p,.process-lead{font-size:23px}.narrative-marker h2{font-size:45px}
  .process-quote{font-size:22px}
  .media-modal{padding:10px}.media-modal-card{width:100%}
}
@media(max-width:480px){.header-vu i:nth-child(n+9){display:none}.brand-mark{width:31px}.brand-mark img{max-width:29px}.brand-copy{font-size:13px}.hero-copy h1{font-size:47px}.tuner-glass{padding-left:9px;padding-right:9px}.tuner-stop{font-size:8px}.channel-copy h3{font-size:43px}.audio-console-copy h3{font-size:36px}.transfer-copy h2{font-size:50px}.process-story h2{font-size:50px}}
@media(prefers-reduced-motion:reduce){.signal-cursor,.signal-cursor-trail{display:none!important}.art-photo img{transition:none!important}}

/* RC2 · interview stills + local audio */
.interview-button{grid-template-columns:112px minmax(0,1fr) auto;grid-template-rows:1fr;align-items:center;gap:14px;padding:0;min-height:116px;overflow:hidden}
.interview-thumb{display:block;width:112px;height:100%;min-height:116px;overflow:hidden;border-right:1px solid var(--line);background:#111}
.interview-thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.78) contrast(1.04)}
.interview-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.interview-button strong,.interview-button .interview-copy>span{grid-column:auto}
.interview-button b{grid-column:auto;grid-row:auto;align-self:center;margin-right:14px}
.interview-button:hover .interview-thumb img{filter:saturate(.95) contrast(1.06)}

.artist-grid-vnext button{padding:0;min-height:178px;overflow:hidden;justify-content:flex-end;position:relative;background:#0b0c0e}
.artist-grid-vnext .artist-thumb{position:absolute;inset:0;display:block}
.artist-grid-vnext .artist-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 28%,rgba(0,0,0,.82) 100%)}
.artist-grid-vnext .artist-thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.76) contrast(1.04);transition:transform .28s ease,filter .28s ease}
.artist-grid-vnext button strong,.artist-grid-vnext button>span:not(.artist-thumb){position:relative;z-index:2;margin:0 14px}
.artist-grid-vnext button>span:not(.artist-thumb){margin-bottom:14px;color:rgba(255,255,255,.72)}
.artist-grid-vnext button strong{margin-bottom:2px;color:#fff;text-shadow:0 1px 18px rgba(0,0,0,.6)}
.artist-grid-vnext button:hover .artist-thumb img{transform:scale(1.025);filter:saturate(.92) contrast(1.06)}

.audio-item.audio-local{cursor:default;align-items:center}
.audio-item.audio-local:hover{background:rgba(255,255,255,.018)}
.audio-item.audio-local audio{display:block;width:100%;max-width:620px;height:34px;margin-top:10px;accent-color:var(--wine-hi)}
.audio-item.audio-local .audio-go{color:var(--muted)}

@media(max-width:760px){
  .interview-button{grid-template-columns:104px minmax(0,1fr) auto;min-height:96px}
  .interview-thumb{width:104px;min-height:96px}
  .interview-button b{margin-right:10px}
  .artist-grid-vnext button{min-height:210px}
}
@media(max-width:480px){
  .interview-button{grid-template-columns:92px minmax(0,1fr) auto}
  .interview-thumb{width:92px}
  .interview-button strong{font-size:22px}
}
.interview-button .interview-thumb,.interview-button .interview-copy{grid-column:auto;grid-row:auto}
.interview-button .interview-copy{font-family:inherit;font-size:inherit;letter-spacing:normal;color:inherit}


/* RC3 · ajustes mínimos de lanzamiento: VU móvil, contacto y foto */
.contact-landscape{
  height:420px;
  border:1px solid var(--line);
  overflow:hidden;
}
.contact-landscape img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
}
.contact-email-title{
  overflow-wrap:anywhere;
  word-break:break-word;
  max-width:100%;
}

/* Mantener los 18 segmentos completos, rectos y alineados también en móvil. */
.header-vu{
  flex:0 0 auto;
  align-items:center;
}
.header-vu i,
.header-vu i.on{
  height:5px!important;
  transform:none!important;
  margin-right:0!important;
}
@media(max-width:760px){
  .header-vu{display:flex!important;gap:2px;margin-left:4px;height:15px}
  .header-vu i{display:block!important;width:3px!important;height:5px!important}
  .header-vu i:nth-child(n){display:block!important}
}
@media(max-width:480px){
  .head-in{gap:10px}
  .brand{gap:6px}
  .brand-copy{font-size:12px}
  .header-vu{gap:1.5px;margin-left:2px}
  .header-vu i{display:block!important;width:2.5px!important;height:5px!important}
  .contact-landscape{height:300px}
  .contact-landscape img{object-position:center 34%}
  .contact-email-title{font-size:clamp(27px,8.2vw,34px)}
}


/* =========================================================
   v1.1.4-RC1 REVIEW · 1.4-01 CABECERA + 1.4-02 VU ESTÉREO
   Base: 1.1.2-RC3. Ajuste conservador; sin cambios de contenido.
   ========================================================= */
.brand{
  gap:9px;
  min-width:0;
}
.brand-copy{
  flex:0 0 auto;
  font-family:var(--mono);
  font-size:12.5px;
  line-height:1;
  font-weight:600;
  letter-spacing:.045em;
  text-transform:uppercase;
  white-space:nowrap;
}
.header-vu.header-vu-stereo{
  display:grid!important;
  grid-template-rows:repeat(2,4px);
  align-content:center;
  gap:3px!important;
  height:11px!important;
  margin-left:5px!important;
  flex:0 0 auto;
}
.header-vu .vu-channel{
  display:flex!important;
  align-items:center;
  gap:2px;
  height:4px;
}
.header-vu .vu-channel i,
.header-vu .vu-channel i.on{
  display:block!important;
  width:5px!important;
  height:4px!important;
  min-width:5px;
  margin:0!important;
  border-radius:1px;
  background:rgba(255,255,255,.14);
  box-shadow:none;
  transform:none!important;
  transition:background .16s;
}
.header-vu .vu-channel i.on{
  background:var(--wine-hi);
  box-shadow:0 0 4px rgba(164,59,78,.22);
}
@media(max-width:760px){
  .brand{gap:7px}
  .brand-copy{font-size:11.5px;letter-spacing:.035em}
  .header-vu.header-vu-stereo{
    display:grid!important;
    gap:2px!important;
    margin-left:2px!important;
    height:10px!important;
  }
  .header-vu .vu-channel{gap:1.5px;height:4px}
  .header-vu .vu-channel i,
  .header-vu .vu-channel i.on{
    display:block!important;
    width:3px!important;
    min-width:3px;
    height:4px!important;
  }
}
@media(max-width:480px){
  .head-in{gap:9px}
  .brand{gap:6px}
  .brand-mark{width:31px;height:31px}
  .brand-mark img{max-width:29px}
  .brand-copy{font-size:10.5px;letter-spacing:.02em}
  .header-vu.header-vu-stereo{margin-left:1px!important}
  .header-vu .vu-channel{gap:1px}
  .header-vu .vu-channel i,
  .header-vu .vu-channel i.on{
    width:2.6px!important;
    min-width:2.6px;
  }
  .menu-btn{padding:9px 11px}
}

/* RC1 QA: evitar compresión de navegación en tablet estrecha. */
@media(max-width:900px){
  .head-in{height:64px}
  .nav,.nav-cta{display:none}
  .menu-btn{display:block}
  .mobile-menu{position:fixed;inset:64px 0 0;z-index:69;background:rgba(9,9,11,.98);padding:24px;display:none}
  .mobile-menu.open{display:flex;flex-direction:column;gap:4px}
  .mobile-menu a{padding:14px 0;border-bottom:1px solid var(--line);font-size:22px;font-family:var(--serif)}
  .mobile-menu .btn{margin-top:18px;font-family:var(--sans);font-size:13px}
}
@media(max-width:480px){
  .brand-copy{font-size:11.5px}
}

/* =========================================================
   v1.1.4-RC2 REVIEW · ajuste de cabecera + 1.4-03 CONTACTO
   + 1.4-04 GEOMETRÍA FOTOGRÁFICA MÓVIL
   Base: v1.1.4-RC1 REVIEW. Sin cambios de contenido.
   ========================================================= */
/* El nombre contiene un único espacio real; compensamos la amplitud visual
   del blanco en mono sin comprimir las letras. */
.brand-copy{
  word-spacing:-.16em;
}

/* El correo debe leerse como una unidad, no partirse arbitrariamente. */
.contact-email-title{
  font-size:clamp(28px,2.8vw,38px)!important;
  line-height:.98!important;
  letter-spacing:-.035em;
  overflow-wrap:normal;
  word-break:normal;
  white-space:nowrap;
}

/* Algunos <figure> conservaban en móvil el margen horizontal por defecto
   del navegador, estrechándolos respecto a las tarjetas vecinas. */
@media(max-width:760px){
  .project-media figure.local-media,
  .about-portrait-card,
  .about-landscape-card{
    margin:0;
  }
  .contact-email-title{
    font-size:clamp(18px,5.55vw,25px)!important;
    letter-spacing:-.025em;
  }

  /* Las fotografías pasan a ocupar el mismo ancho útil que sus tarjetas.
     Además evitamos marcos excesivamente altos que fuerzan recortes laterales. */
  .project-media figure.local-media.stage{
    width:100%;
    min-height:0!important;
    aspect-ratio:4/5;
  }
  .about-portrait-card{
    width:100%;
    min-height:0!important;
    aspect-ratio:3/4;
  }
  .about-landscape-card{
    width:100%;
    min-height:0!important;
    aspect-ratio:4/3;
  }
}

/* =========================================================
   v1.1.4-RC4 REVIEW · 1.4-07 CURACIÓN + 1.4-08 FOOTER
   ========================================================= */
.contact-landscape.portrait img{
  object-position:center 24%;
}
@media(max-width:480px){
  .contact-landscape.portrait img{object-position:center 22%}
}

/* =========================================================
   v1.1.4-RC5 REVIEW · formulario directo + estados
   ========================================================= */
.contact-form{position:relative}
.hp-field{
  position:absolute!important;
  width:1px!important;height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
}
.contact-form button[disabled]{opacity:.58;cursor:wait}
.form-status{min-height:1.5em;margin:14px 0 0;color:var(--muted)}
.form-status.success{color:#a9d2bb}
.form-status.error{color:#e1a4ae}
.form-status a{color:inherit;text-decoration:underline;text-underline-offset:3px}


/* RC6 · VU white → amber → red + approved signal cursor refinement */
.header-vu .vu-channel{gap:2px!important}
.header-vu .vu-channel i{margin:0!important;background:rgba(255,255,255,.13)!important;box-shadow:none!important;transform:none!important}
.header-vu .vu-channel i.on:nth-child(-n+7){background:#ece9e4!important;box-shadow:0 0 3px rgba(236,233,228,.16)!important}
.header-vu .vu-channel i.on:nth-child(n+8):nth-child(-n+10){background:#d69a3a!important;box-shadow:0 0 4px rgba(214,154,58,.24)!important}
.header-vu .vu-channel i.on:nth-child(n+11){background:#b83e52!important;box-shadow:0 0 5px rgba(184,62,82,.30)!important}
@media(max-width:760px){.header-vu .vu-channel{gap:1.5px!important}}
@media(max-width:480px){.header-vu .vu-channel{gap:1px!important}}

.signal-cursor{transition:width .12s,height .12s,opacity .12s}
.signal-cursor-dot{background:var(--wine-hi);box-shadow:0 0 6px rgba(164,59,78,.52)}
.signal-cursor-trail{position:fixed;z-index:1099;border-radius:50%;background:var(--wine-hi);pointer-events:none;will-change:transform;box-shadow:0 0 7px rgba(164,59,78,.32)}
.signal-cursor-trail.trail-1{width:4px;height:4px;opacity:.28}
.signal-cursor-trail.trail-2{width:3px;height:3px;opacity:.20}
.signal-cursor-trail.trail-3{width:3px;height:3px;opacity:.13}
.signal-cursor-trail.trail-4{width:2px;height:2px;opacity:.08}
@media (hover:hover) and (pointer:fine){
  html.signal-cursor-ready,html.signal-cursor-ready a,html.signal-cursor-ready button{cursor:none}
  html.signal-cursor-ready input,html.signal-cursor-ready textarea,html.signal-cursor-ready select,html.signal-cursor-ready [contenteditable="true"]{cursor:auto}
}


/* =========================================================
   v1.1.4-RC7 HOSTINGER · PHOTO SYSTEM + AUDIO/MEDIA + SIGNAL FLUIDITY
   ========================================================= */
/* Fotografía: eliminar márgenes heredados, mantener ejes y pocas proporciones estables. */
figure.art-photo,
figure.local-media,
.transfer-photo,
.about-portrait-card,
.about-landscape-card{margin:0}
.art-photo img,.local-media img,.channel-visual img,.transfer-photo img,
.about-portrait-card img,.about-landscape-card img,.contact-landscape img{
  display:block;width:100%;height:100%;object-fit:cover;
}
/* Escenas/proyectos: formato editorial apaisado; retratos conservan verticalidad. */
.project-media figure.local-media.stage{min-height:0!important;aspect-ratio:4/3}
.contact-landscape{height:auto;aspect-ratio:16/9}
.transfer-photo{min-height:0;aspect-ratio:4/5}
.about-portrait-card{min-height:0;aspect-ratio:3/4}
.about-landscape-card{min-height:0;aspect-ratio:4/3}
.voice-visual{min-height:0;aspect-ratio:4/3}
@media(max-width:760px){
  .project-media figure.local-media.stage{aspect-ratio:4/3}
  .contact-landscape{height:auto;aspect-ratio:4/3}
  .transfer-photo{min-height:0;aspect-ratio:4/5}
  .voice-visual{min-height:0;aspect-ratio:4/3}
  .about-portrait-card{aspect-ratio:3/4}
  .about-landscape-card{aspect-ratio:4/3}
}

/* Audio local: un solo lenguaje de control, tiempos y estados. */
.audio-item.audio-local{
  grid-template-columns:56px minmax(0,1fr) auto;
  gap:16px;padding:18px 0;transition:background .18s ease;
}
.audio-item.audio-local:hover{background:rgba(255,255,255,.018)}
.audio-item.audio-local.is-playing{background:rgba(164,59,78,.055)}
.audio-item.audio-local .audio-symbol{
  appearance:none;color:#fff;background:transparent;cursor:pointer;
  width:46px;height:46px;min-width:46px;border:1px solid var(--line-strong);
  transition:border-color .16s ease,color .16s ease,background .16s ease,transform .16s ease;
}
.audio-item.audio-local .audio-symbol:hover,
.audio-item.audio-local .audio-symbol:focus-visible,
.audio-item.audio-local.is-playing .audio-symbol{
  border-color:var(--wine-hi);color:#fff;background:rgba(164,59,78,.12);
}
.audio-item.audio-local .audio-symbol:active{transform:scale(.96)}
.audio-body{min-width:0}
.audio-title-line{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.audio-title-line strong{min-width:0}
.audio-duration,.audio-time{
  flex:0 0 auto;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--muted)
}
.audio-controls{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:12px;align-items:center;margin-top:11px}
.audio-progress{width:100%;height:24px;margin:0;accent-color:var(--wine-hi);cursor:pointer}
.audio-item.audio-local audio{display:none}
.audio-item.audio-local .audio-go{align-self:center;color:var(--muted)}
.audio-symbol:focus-visible,.audio-progress:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:760px){
  .audio-item.audio-local{grid-template-columns:50px minmax(0,1fr);gap:12px;padding:16px 0}
  .audio-item.audio-local .audio-go{display:none}
  .audio-item.audio-local .audio-symbol{width:46px;height:46px;min-width:46px}
  .audio-title-line{align-items:flex-start}
  .audio-controls{grid-template-columns:1fr;gap:3px}
  .audio-time{justify-self:end}
}

/* Cursor-señal: misma idea, seguimiento más inmediato y estela corta más suave. */
.signal-cursor,.signal-cursor-trail{will-change:transform}
.signal-cursor{transition:width .10s ease,height .10s ease,opacity .10s ease}
.signal-cursor::before,.signal-cursor::after{background:rgba(255,255,255,.76)}
.signal-cursor-dot{width:3px;height:3px}
.signal-cursor-trail.trail-1{opacity:.24}
.signal-cursor-trail.trail-2{opacity:.16}
.signal-cursor-trail.trail-3{opacity:.10}
.signal-cursor-trail.trail-4{opacity:.05}

/* =========================================================
   v1.1.4-RC8 WIP · polish requested after first Hostinger pass
   ========================================================= */
/* Hero camera label: preserve framing guide but give the label breathing room. */
.hero-personal .tc-top{left:42px;top:20px}
@media(max-width:760px){.hero-personal .tc-top{left:40px;top:20px}}

/* Home interviews: ready for six cards in two rows (3 x 2) without changing Trabajo. */
.interview-row-home{grid-template-columns:repeat(3,minmax(0,1fr))}
.interview-row-home .interview-button:nth-child(3n){border-right:0}
.interview-row-home .interview-button:nth-child(n+4){border-top:1px solid var(--line)}
@media(max-width:760px){
  .interview-row-home{grid-template-columns:1fr}
  .interview-row-home .interview-button{border-right:0;border-top:0;border-bottom:1px solid var(--line)}
  .interview-row-home .interview-button:last-child{border-bottom:0}
}

/* La Historieta: same visual language as a text link, but behaves as an in-page player control. */
.mini-link-button{appearance:none;border:0;background:transparent;color:inherit;padding:0;font:inherit;text-align:left;cursor:pointer}
.mini-link-button:focus-visible{outline:2px solid #fff;outline-offset:5px}

/* Footer identity: exact typographic treatment used by the header, no second wordmark. */
.footer-brand{display:inline-flex;align-items:center;gap:9px;color:#fff;text-decoration:none;opacity:.76;transition:opacity .16s ease}
.footer-brand:hover,.footer-brand:focus-visible{opacity:1}
.footer-brand .brand-mark{width:38px;height:38px}
.footer-brand .brand-mark img{max-width:34px;max-height:28px}
.footer-brand .brand-copy{font-family:var(--mono);font-size:12.5px;line-height:1;font-weight:600;letter-spacing:.045em;word-spacing:-.16em;text-transform:uppercase;white-space:nowrap}
@media(max-width:760px){.footer-brand .brand-copy{font-size:11.5px}}

/* Cursor: make the approved short signal trail perceptible as fine burgundy sparks. */
.signal-spark{position:fixed;z-index:1098;left:0;top:0;width:3px;height:1px;border-radius:999px;background:var(--wine-hi);pointer-events:none;opacity:0;box-shadow:0 0 6px rgba(164,59,78,.48);transform-origin:center;will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){.signal-spark{display:none!important}}
.media-modal-card.portrait{width:min(460px,92vw)}
.media-modal-card.portrait .media-modal-frame{aspect-ratio:9/16;max-height:76vh}


/* =========================================================
   v1.1.4-RC9 HOSTINGER · confirmed bugfixes + asset refresh
   ========================================================= */
/* Desktop VU: force two clean horizontal rows to avoid vertical collapse. */
.header-vu.header-vu-stereo{display:flex!important;flex-direction:column!important;justify-content:center;align-items:flex-start;gap:3px!important;line-height:0}
.header-vu .vu-channel{display:flex!important;flex-direction:row!important;align-items:center;gap:2px!important;height:4px;line-height:0}
.header-vu .vu-channel i,.header-vu .vu-channel i.on{display:block!important;flex:0 0 auto}

/* Defensive seam repair for stills/cards showing a thin white line in some cached builds. */
.interview-thumb img,.local-media img,.channel-visual img,.transfer-photo img,.about-portrait-card img,.about-landscape-card img,.contact-landscape img,.artist-thumb img,.brand-stage-card img,.systems-visual img{display:block;box-shadow:0 2px 0 #09090b;backface-visibility:hidden;transform:translateZ(0)}
.interview-thumb{position:relative;background:#09090b}
.interview-thumb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#09090b;pointer-events:none}

/* Less prominent relocation of the El Corte Inglés stage image. */
.brands-feature{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}
.brand-stage-card{min-height:250px;border:1px solid var(--line);overflow:hidden;position:relative;background:#07080a}
.brand-stage-card img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
@media(max-width:760px){.brands-feature{grid-template-columns:1fr}.brand-stage-card{min-height:220px}}

/* About refresh: better crop for the new studio landscape. */
.about-landscape-card.contact-shot img{object-position:center 22%}

/* Work / systems: use the improved technical artwork instead of the temporary blueprint. */
.systems-visual{min-height:520px;border:1px solid var(--line);overflow:hidden;position:relative;background:#07080a}
.systems-visual img{width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:760px){.systems-visual{min-height:420px}}

/* Cursor trail: more visible signal wake while staying refined. */
.signal-cursor-dot{width:4px;height:4px;box-shadow:0 0 10px rgba(164,59,78,.72)}
.signal-cursor-trail{box-shadow:0 0 10px rgba(164,59,78,.44)}
.signal-cursor-trail.trail-1{width:5px;height:5px;opacity:.34}
.signal-cursor-trail.trail-2{width:4px;height:4px;opacity:.25}
.signal-cursor-trail.trail-3{width:4px;height:4px;opacity:.18}
.signal-cursor-trail.trail-4{width:3px;height:3px;opacity:.12}
.signal-cursor-trail.trail-5{width:3px;height:3px;opacity:.08}
.signal-cursor-trail.trail-6{width:2px;height:2px;opacity:.05}
.signal-spark{width:5px;height:2px;opacity:0;box-shadow:0 0 8px rgba(164,59,78,.62)}


/* CIERRE DE CHAT · Apple Podcasts desktop compact without changing mobile sizing */
@media(min-width:1001px){
  .podcast-embed-wrap{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:18px 20px;}
  .podcast-frame{flex:0 0 175px;}
}

/* CIERRE DE CHAT · restore compact Reinventarse geometry from RC4 reference */
.transfer-photo{aspect-ratio:auto;min-height:520px;}
@media(max-width:760px){.transfer-photo{aspect-ratio:auto;min-height:460px;}}

/* CIERRE DE CHAT · brand proof compact; preserve current .brand-name sizing */
.brand-row-break{flex-basis:100%;height:0;pointer-events:none;}
.brand-stage-card{min-height:0;height:210px;}
.brand-stage-card img{object-position:center 24%;}
@media(max-width:760px){.brand-stage-card{min-height:0;height:210px;}}

/* CIERRE DE CHAT TEST 2 · IA/process diagram animated on viewport entry */
.ddf{
  --ddf-fondo:      #060606;
  --ddf-tinta:      #ede7df;   /* blanco cálido */
  --ddf-gris:       #8a8580;
  --ddf-gris-tenue: #4a4643;
  --ddf-acento:     #7d1f2d;   /* granate oscuro */
  --ddf-acento-luz: #c4808b;   /* mismo tono, aclarado para texto */
  --ddf-mono: ui-monospace, "SF Mono", "JetBrains Mono", "IBM Plex Mono", Menlo, Consolas, monospace;

  margin: 0;
  padding: 0;
  background: var(--ddf-fondo);
  color: var(--ddf-tinta);
  font-family: var(--ddf-mono);
}

.ddf *{ box-sizing: border-box; }

/* --- escenario: la caja donde conviven SVG y texto HTML --------- */
.ddf-stage{
  position: relative;
  width: 100%;
  container-type: inline-size;
}
.ddf-stage::before{           /* retícula */
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(to right,  rgba(237,231,223,.045) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(to bottom, rgba(237,231,223,.045) 0 1px, transparent 1px 40px);
  background-position: center;
}
.ddf-stage svg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.ddf-stage--h{ aspect-ratio: 5 / 3; }
.ddf-stage--v{ aspect-ratio: 36 / 66; display: none; }

@media (max-width: 639px){
  .ddf-stage--h{ display: none; }
  .ddf-stage--v{ display: block; }
}

/* --- etiquetas HTML sobre el SVG -------------------------------- */
.ddf-lb{
  position: absolute;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  line-height: 1.25;
}

/* horizontal: 600 x 360 unidades → % = x/6 , y/3.6 */
.ddf-stage--h .ddf-lb{
  left: calc(var(--x) / 6 * 1%);
  top:  calc(var(--y) / 3.6 * 1%);
  transform: translate(-50%, -50%);
  text-align: center;
}
/* vertical: 360 x 660 unidades → % = x/3.6 , y/6.6 */
.ddf-stage--v .ddf-lb{
  left: calc(var(--x) / 3.6 * 1%);
  top:  calc(var(--y) / 6.6 * 1%);
  transform: translate(0, -50%);
  text-align: left;
}
.ddf-stage--v .ddf-lb.is-right{ transform: translate(-100%, -50%); text-align: right; }

/* nodos del proceso */
.ddf-node{
  font-size: 11px;            /* respaldo si no hay unidades de contenedor */
  letter-spacing: .14em;
  margin-right: -.14em;       /* compensa el espacio del último carácter */
  font-weight: 500;
  color: var(--ddf-tinta);
}
.ddf-stage--h .ddf-node{ font-size: 1.5cqw; }
.ddf-stage--v .ddf-node{ font-size: 3.6cqw; }

.ddf-node--firma{ color: var(--ddf-acento-luz); }

/* apoyo IA */
.ddf-ai{
  font-size: 8px;
  color: var(--ddf-gris);
  letter-spacing: .04em;
}
.ddf-stage--h .ddf-ai{ font-size: 1.08cqw; }
.ddf-stage--v .ddf-ai{ font-size: 2.36cqw; }
.ddf-ai span{ display: block; }

/* anotaciones bajo el eje */
.ddf-note{
  font-size: 7px;
  color: var(--ddf-gris-tenue);
  letter-spacing: .06em;
}
.ddf-stage--h .ddf-note{ font-size: .95cqw; }
.ddf-stage--v .ddf-note{ font-size: 2.1cqw; }
.ddf-note--firma{ color: var(--ddf-acento-luz); opacity: .85; }

/* leyenda */
.ddf-legend{
  display: flex;
  gap: 1.6em;
  margin: 0; padding: 0;
  list-style: none;
  font-size: 7px;
  color: var(--ddf-gris);
  letter-spacing: .06em;
}
.ddf-stage--h .ddf-legend{ font-size: .95cqw; }
.ddf-stage--v .ddf-legend{ font-size: 2.1cqw; }
.ddf-legend li{ display: flex; align-items: center; gap: .6em; }
.ddf-legend li::before{
  content: "";
  width: 2.4em; height: 0;
  border-top: 1px solid var(--ddf-gris);
}
.ddf-legend .is-dash::before{ border-top-style: dotted; border-color: var(--ddf-gris-tenue); }

/* --- geometría base de los elementos animables ------------------ */
.ddf-conn{ transform-box: view-box; }
.ddf-ring{ transform-box: view-box; }
.ddf-signal{
  fill: none;
  stroke: var(--ddf-tinta);
  stroke-width: 1.8;
  stroke-linecap: round;
  opacity: 0;                 /* sin animación no aparece: es decorativa */
}

/* ===============================================================
   SECUENCIA ANIMADA
   Orden: retícula → eje → nodos (a medida que la línea los alcanza)
   → conectores y etiquetas de IA → «sin apoyo» → «decisión final»
   → señal por el eje con parada en FIRMO → retorno del ciclo.
   =============================================================== */
@media (prefers-reduced-motion: no-preference){

  .ddf.ddf-animate .ddf-stage::before{ animation: ddf-in .9s ease-out both; }

  .ddf.ddf-animate .ddf-fade{ animation: ddf-in .5s ease-out var(--d, 0s) both; }

  .ddf.ddf-animate .ddf-axis{
    stroke-dasharray: 540;
    animation: ddf-draw 1.1s cubic-bezier(.2,.7,.2,1) .35s both;
  }

  .ddf.ddf-animate .ddf-conn{ animation: ddf-grow-y .5s cubic-bezier(.2,.7,.2,1) var(--d, 0s) both; }
  .ddf.ddf-animate .ddf-stage--v .ddf-conn{ animation-name: ddf-grow-x; }

  .ddf.ddf-animate .ddf-ring{ animation: ddf-pulse .55s ease-out var(--d, 0s) both; }

  .ddf.ddf-animate .ddf-stage--h .ddf-signal{
    stroke-dasharray: 34 900;
    animation: ddf-run-h 2.4s linear 4.8s both;
  }
  .ddf.ddf-animate .ddf-stage--v .ddf-signal{
    stroke-dasharray: 34 900;
    animation: ddf-run-v 2.4s linear 4.8s both;
  }
}

@keyframes ddf-in{ from{ opacity: 0 } to{ opacity: 1 } }

@keyframes ddf-draw{
  from{ stroke-dashoffset: 540; opacity: .85 }
  to  { stroke-dashoffset: 0;   opacity: .85 }
}

@keyframes ddf-grow-y{
  from{ transform: scaleY(.001); opacity: 0 }
  to  { transform: scaleY(1);    opacity: 1 }
}
@keyframes ddf-grow-x{
  from{ transform: scaleX(.001); opacity: 0 }
  to  { transform: scaleX(1);    opacity: 1 }
}

@keyframes ddf-pulse{
  0%  { transform: scale(1);    opacity: .35 }
  45% { transform: scale(1.22); opacity: 1 }
  100%{ transform: scale(1);    opacity: 1 }
}

/* la señal se detiene un instante al llegar a FIRMO */
@keyframes ddf-run-h{
  0%   { opacity: 0;   stroke-dashoffset: 34 }
  7%   { opacity: .55 }
  55%  { stroke-dashoffset: -402 }
  68%  { opacity: .55; stroke-dashoffset: -402 }
  93%  { opacity: .4 }
  100% { opacity: 0;   stroke-dashoffset: -560 }
}
@keyframes ddf-run-v{
  0%   { opacity: 0;   stroke-dashoffset: 34 }
  7%   { opacity: .55 }
  55%  { stroke-dashoffset: -434 }
  68%  { opacity: .55; stroke-dashoffset: -434 }
  93%  { opacity: .4 }
  100% { opacity: 0;   stroke-dashoffset: -640 }
}

.project-detail-grid > .ddf{width:100%;border:1px solid var(--line);padding:18px;background:#060606;}
@media(max-width:760px){.project-detail-grid > .ddf{padding:12px;}}


/* =========================================================
   CIERRE DE CHAT TEST 2 · 2026-09-05
   ========================================================= */

/* Hero: framing guide parity and crop favoring the complete wall PLAY mark. */
.hero-personal img{object-position:80% 44%;}
.hero-personal .tc-top{left:38px;top:14px;}
@media(max-width:760px){.hero-personal .tc-top{left:38px;top:14px;}}

/* Apple Podcasts: approved compact episode on <=1000px; show embed fills desktop panel. */
.podcast-frame{transition:height .18s ease;}
@media(min-width:1001px){
  .podcast-embed-wrap{justify-content:center;padding:22px 20px;}
  .podcast-frame.is-show-player{height:450px;flex:0 0 450px;max-width:660px;}
}
@media(max-width:1000px){.podcast-frame{height:175px!important;flex:0 0 175px!important;}}

/* Cursor signal: deliberately ~3× denser and brighter over dark surfaces. */
.signal-cursor-dot{width:5px;height:5px;background:#cf536b;box-shadow:0 0 10px rgba(236,102,128,.98),0 0 22px rgba(164,59,78,.78);}
.signal-cursor-trail{width:var(--trail-size,3px)!important;height:var(--trail-size,3px)!important;opacity:calc(var(--trail-opacity,.18) * 1.12)!important;background:#cf536b;box-shadow:0 0 10px rgba(236,102,128,.82),0 0 20px rgba(164,59,78,.56)!important;}
.signal-spark{width:7px;height:2px;background:#dc6077;box-shadow:0 0 8px rgba(246,124,146,.92),0 0 17px rgba(164,59,78,.68)!important;}

/* Brand chips keep the approved size; only content grows. */
.brand-name{font-size:13px;padding:14px 18px;}


/* CIERRE TEST 5 · brands fill the desktop row without changing chip typography or padding. */
@media (min-width: 1400px){
  .brands{flex-wrap:nowrap;width:100%;}
  .brand-name{flex:1 1 auto;min-width:0;text-align:center;white-space:nowrap;}
}


/* =========================================================
   CIERRE DE CHAT TEST 6 · 2026-09-05
   Four narrow refinements only: hero guide/crop, cursor wake, brands fit.
   ========================================================= */

/* Hero: the top label sits almost flush with the framing guide. */
.hero-personal .tc-top{left:35px;top:14px;}
@media(max-width:760px){.hero-personal .tc-top{left:35px;top:14px;}}

/* Hero: slightly wider framing on desktop, no hover zoom; keep PLAY and guitar in view. */
@media(min-width:761px){
  .hero-personal{min-height:0;aspect-ratio:1.08 / 1;}
  .hero-personal img{object-position:76% 44%;}
  .hero-personal:hover img{transform:none;}
}

/* Brand row: activate proportional fill earlier on real desktop widths. */
@media(min-width:1100px){
  .brands{flex-wrap:nowrap;width:100%;justify-content:stretch;}
  .brand-name{flex:1 1 auto;min-width:0;text-align:center;white-space:nowrap;}
}


/* =========================================================
   CIERRE DE CHAT TEST 7 · 2026-09-05
   Two changes only: original hero label offset + longer cursor wake.
   ========================================================= */

/* Restore the first-version top-left timecode offsets exactly. */
.hero-personal .tc-top{left:16px;top:16px;}
@media(max-width:760px){.hero-personal .tc-top{left:16px;top:16px;}}


/* =========================================================
   CIERRE DE CHAT TEST 9 · photo curation pass
   New interview image, Contact live image, documentary brand collage.
   ========================================================= */

/* Home / Conversaciones: preserve both faces and the interview gesture. */
.channel-visual-conversation img{object-position:center center;}

/* Contact: reuse the strong live image without the former portrait-specific crop. */
.contact-landscape.contact-live img{object-position:center 42%;}
@media(max-width:760px){
  .contact-landscape.contact-live{aspect-ratio:4/3;}
  .contact-landscape.contact-live img{object-position:center 40%;}
}

/* Años de encargos reales: documentary collage + proof copy, brands across full width. */
.brands-feature-collage{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  gap:24px;
  align-items:start;
}
.brands-feature-collage .brand-collage{
  height:auto;
  min-height:0;
  aspect-ratio:1 / 1;
}
.brands-feature-collage .brand-collage img{
  width:100%;height:100%;object-fit:cover;object-position:center center;
}
.brand-proof-copy{align-self:center;max-width:46ch;}
.brands-feature-collage .brands-wide{
  grid-column:1 / -1;
  width:100%;
  display:flex;
  flex-wrap:wrap;
}
.brands-feature-collage .brands-wide .brand-name{
  flex:1 0 max-content;
  min-width:max-content;
  text-align:center;
  white-space:nowrap;
}
@media(max-width:760px){
  .brands-feature-collage{grid-template-columns:1fr;}
  .brands-feature-collage .brand-collage{aspect-ratio:1 / 1;}
  .brands-feature-collage .brands-wide{grid-column:1;}
}

/* =========================================================
   RC17 · mobile hero centering
   Keep desktop framing; center the hero portrait more on mobile only.
   ========================================================= */
@media(max-width:760px){
  .hero-personal img{object-position:44% 44%;}
}

/* =========================================================
   CURSOR LAB · PULSO + FOCUS + REFINED SIGNAL + PLAYHEAD
   RC17 signal remains the stable option A.
   ========================================================= */
.pulso-follower{
  position:fixed;
  z-index:1100;
  left:0;
  top:0;
  width:22px;
  height:22px;
  pointer-events:none;
  opacity:0;
  transform:translate3d(-100px,-100px,0);
  will-change:transform;
  transition:opacity .12s ease;
}
.pulso-follower.visible{opacity:1}
.pulso-ring{
  position:absolute;
  left:50%;
  top:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  border:1px solid var(--wine-hi);
  background:var(--wine-hi);
  box-shadow:0 0 8px rgba(160,58,75,.38);
  transform:translate(-50%,-50%);
  transition:width .14s ease,height .14s ease,background .14s ease,transform .1s ease,box-shadow .14s ease;
}
.pulso-play{
  position:absolute;
  left:50%;
  top:50%;
  color:var(--paper);
  font-size:7px;
  line-height:1;
  opacity:0;
  transform:translate(-42%,-50%);
  transition:opacity .1s ease;
}
.pulso-follower.active .pulso-ring{width:18px;height:18px;background:rgba(9,9,11,.12);box-shadow:0 0 0 1px rgba(242,239,233,.14)}
.pulso-follower.media .pulso-ring{width:20px;height:20px;background:var(--wine-hi);box-shadow:0 0 12px rgba(160,58,75,.48)}
.pulso-follower.media .pulso-play{opacity:1}
.pulso-follower.pressed .pulso-ring{transform:translate(-50%,-50%) scale(.68)}

.focus-frame{
  position:fixed;
  z-index:1099;
  left:0;
  top:0;
  min-width:18px;
  min-height:18px;
  pointer-events:none;
  opacity:0;
  transform:translate3d(-100px,-100px,0);
  will-change:transform,width,height;
  transition:transform .14s cubic-bezier(.2,.72,.25,1),width .14s cubic-bezier(.2,.72,.25,1),height .14s cubic-bezier(.2,.72,.25,1),opacity .1s ease;
}
.focus-frame.visible{opacity:1}
.focus-frame span{position:absolute;width:12px;height:12px;transition:width .12s ease,height .12s ease,opacity .12s ease}
.focus-frame span::before,.focus-frame span::after{content:"";position:absolute;background:var(--wine-hi);box-shadow:0 0 5px rgba(160,58,75,.28)}
.focus-frame span::before{width:100%;height:1px}
.focus-frame span::after{width:1px;height:100%}
.focus-tl{left:0;top:0}.focus-tl::before,.focus-tr::before{top:0}.focus-tl::after,.focus-bl::after{left:0}
.focus-tr{right:0;top:0}.focus-tr::after,.focus-br::after{right:0}
.focus-bl{left:0;bottom:0}.focus-bl::before,.focus-br::before{bottom:0}
.focus-br{right:0;bottom:0}
.focus-frame.media span{width:15px;height:15px}
.focus-frame.pressed span{width:7px;height:7px;opacity:.72}

/* Refined actual + Focus: Focus becomes the sole interactive signal. */
.signal-cursor.focus-engaged{width:24px;height:24px}
.signal-cursor.focus-engaged::before{opacity:0;transform:translateX(-50%) scaleY(.18)}
.signal-cursor.focus-engaged::after{opacity:0;transform:translateY(-50%) scaleX(.18)}
.signal-cursor.focus-engaged .signal-cursor-label{opacity:0}
.signal-cursor::before,.signal-cursor::after{transition:opacity .11s ease,transform .11s ease}
html.signal-focus-engaged .signal-cursor-trail{opacity:0!important;transition:opacity .11s ease!important}

/* Playhead + Focus: an editing marker for neutral space, absent on actions. */
.playhead-cursor{
  position:fixed;
  z-index:1100;
  left:0;
  top:0;
  width:15px;
  height:21px;
  pointer-events:none;
  opacity:0;
  transform:translate3d(-100px,-100px,0);
  will-change:transform,opacity;
  filter:drop-shadow(0 0 7px rgba(164,59,78,.5));
  transition:opacity .1s ease,filter .1s ease;
}
.playhead-cursor::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:7px solid #cf536b;
  transform:translateX(-50%);
}
.playhead-cursor::after{
  content:"";
  position:absolute;
  left:50%;
  top:6px;
  width:1px;
  height:14px;
  background:linear-gradient(to bottom,#cf536b 0 70%,rgba(207,83,107,0) 100%);
  transform:translateX(-50%);
}
.playhead-cursor.visible{opacity:1}
.playhead-cursor.interactive{opacity:0;filter:none}
@media (hover:hover) and (pointer:fine){
  html.playhead-cursor-ready,html.playhead-cursor-ready a,html.playhead-cursor-ready button{cursor:none}
  html.playhead-cursor-ready input,html.playhead-cursor-ready textarea,html.playhead-cursor-ready select,html.playhead-cursor-ready [contenteditable="true"]{cursor:auto}
}
@media(prefers-reduced-motion:reduce){
  .pulso-follower,.focus-frame,.playhead-cursor{display:none!important}
}

/* =========================================================
   CURSOR CONCEPT SHEET · 01 RETICULA+ / 02 PLAYHEAD 2.0 /
   03 MARCADOR. Isolated, desktop-only, and reversible.
   ========================================================= */
.concept-cursor{
  position:fixed;
  z-index:1102;
  left:0;
  top:0;
  width:36px;
  height:36px;
  pointer-events:none;
  opacity:0;
  transform:translate3d(-100px,-100px,0);
  will-change:transform,opacity;
  transition:opacity .08s ease;
}
.concept-cursor.visible{opacity:1}
.concept-core,.concept-play,.concept-streak,.concept-line,.concept-arm,.concept-corner,.concept-press-ring{position:absolute;pointer-events:none}
.concept-core{
  left:50%;top:50%;width:5px;height:5px;border-radius:50%;
  background:#cf536b;box-shadow:0 0 9px rgba(236,102,128,.82);
  transform:translate(-50%,-50%);transition:opacity .1s ease,width .1s ease,height .1s ease,border-radius .1s ease;
}
.concept-play{
  left:50%;top:50%;color:#f2efe9;font-size:12px;line-height:1;
  opacity:0;transform:translate(-42%,-50%);text-shadow:0 0 8px rgba(207,83,107,.95);
  transition:opacity .1s ease;
}
.concept-press-ring{
  left:50%;top:50%;width:12px;height:12px;border:1px solid #cf536b;border-radius:50%;
  opacity:0;transform:translate(-50%,-50%) scale(.45);
}
.concept-cursor.pressed .concept-press-ring{opacity:.9;transform:translate(-50%,-50%) scale(1.85);transition:opacity .18s ease,transform .18s ease}
.concept-corner{width:9px;height:9px;opacity:0;transition:opacity .1s ease,transform .12s ease}
.concept-corner::before,.concept-corner::after{content:"";position:absolute;background:rgba(242,239,233,.94);box-shadow:0 0 4px rgba(242,239,233,.24)}
.concept-corner::before{width:100%;height:1px}.concept-corner::after{width:1px;height:100%}
.concept-tl{left:3px;top:3px}.concept-tl::before,.concept-tr::before{top:0}.concept-tl::after,.concept-bl::after{left:0}
.concept-tr{right:3px;top:3px}.concept-tr::after,.concept-br::after{right:0}
.concept-bl{left:3px;bottom:3px}.concept-bl::before,.concept-br::before{bottom:0}
.concept-br{right:3px;bottom:3px}
.concept-trail{
  position:fixed;z-index:1098;left:0;top:0;width:var(--concept-trail-size,3px);height:var(--concept-trail-size,3px);
  border-radius:50%;background:#cf536b;opacity:var(--concept-trail-opacity,.2);pointer-events:none;
  box-shadow:0 0 7px rgba(207,83,107,.52);will-change:transform;transition:opacity .1s ease;
}
.concept-trail.concept-trail-muted{opacity:0}
.concept-trail-medium{box-shadow:0 0 8px rgba(207,83,107,.57)}
.concept-trail-extended{box-shadow:0 0 9px rgba(207,83,107,.62)}
@media (hover:hover) and (pointer:fine){
  html.concept-cursor-ready,html.concept-cursor-ready a,html.concept-cursor-ready button{cursor:none}
  html.concept-cursor-ready input,html.concept-cursor-ready textarea,html.concept-cursor-ready select,html.concept-cursor-ready [contenteditable="true"]{cursor:auto}
}

/* 01 · RETICULA+ */
.reticula-plus .concept-arm{background:rgba(242,239,233,.9);transition:opacity .1s ease,transform .12s ease}
.reticula-plus .arm-t,.reticula-plus .arm-b{left:50%;width:1px;height:7px;transform:translateX(-50%)}
.reticula-plus .arm-t{top:2px}.reticula-plus .arm-b{bottom:2px}
.reticula-plus .arm-l,.reticula-plus .arm-r{top:50%;width:7px;height:1px;transform:translateY(-50%)}
.reticula-plus .arm-l{left:2px}.reticula-plus .arm-r{right:2px}
.reticula-plus.interactive .concept-arm{opacity:0}
.reticula-plus.interactive .concept-corner{opacity:1}
.reticula-plus.media .concept-core{opacity:0}
.reticula-plus.media .concept-play{opacity:1;color:#cf536b}
.reticula-plus.pressed .concept-core{width:7px;height:7px}
.reticula-plus-calibrada.focused-cta{opacity:0}
.cta-focus-frame span::before,.cta-focus-frame span::after{background:var(--wine);box-shadow:0 0 6px rgba(92,27,40,.38)}

/* RETICULA+ · extended trail: same cursor, slightly longer signal. */
.reticula-plus-trail .concept-core,.reticula-plus-calibrada .concept-core{box-shadow:0 0 10px rgba(236,102,128,.9)}

/* 02 · PLAYHEAD 2.0 */
.playhead-2 .concept-core,.playhead-2 .concept-arm{display:none}
.playhead-2 .concept-line{left:50%;top:7px;width:2px;height:22px;background:#cf536b;box-shadow:0 0 9px rgba(236,102,128,.9);transform:translateX(-50%);transition:height .1s ease,top .1s ease,opacity .1s ease}
.playhead-2 .concept-streak{left:50%;top:50%;width:34px;height:8px;background:linear-gradient(90deg,rgba(207,83,107,0),rgba(207,83,107,.5),rgba(242,239,233,.45),rgba(207,83,107,0));filter:blur(2px);opacity:.23;transform:translate(-50%,-50%) scaleX(.7);transition:opacity .1s ease,transform .1s ease}
.playhead-2.moving .concept-streak{opacity:.78;transform:translate(-50%,-50%) scaleX(1.35)}
.playhead-2.interactive .concept-corner{opacity:1}
.playhead-2.interactive .concept-streak{opacity:.42;transform:translate(-50%,-50%) scaleX(1)}
.playhead-2.media .concept-line{opacity:.28;height:16px;top:10px}
.playhead-2.media .concept-play{opacity:1;color:#cf536b}
.playhead-2.pressed .concept-line{height:14px;top:11px}

/* 03 · MARCADOR */
.marcador .concept-arm,.marcador .concept-line,.marcador .concept-streak{display:none}
.marcador .concept-tl{opacity:1;left:6px;top:6px}
.marcador .concept-core{left:58%;top:57%;width:6px;height:6px}
.marcador.interactive .concept-tl,.marcador.interactive .concept-br{opacity:1}
.marcador.interactive .concept-tl{transform:translate(-2px,-2px)}
.marcador.interactive .concept-br{transform:translate(2px,2px)}
.marcador.media .concept-core{opacity:0}
.marcador.media .concept-play{opacity:1;color:#cf536b}
.marcador.pressed .concept-core{width:11px;height:11px;border-radius:1px;box-shadow:0 0 5px #cf536b,0 0 18px rgba(207,83,107,.9)}

@media(prefers-reduced-motion:reduce){
  .concept-cursor,.concept-trail{display:none!important}
}
