/* ---------- Fuentes propias (1.9): sin Google Fonts, recortadas a lo que usa el sitio ---------- */
@font-face{font-family:"Archivo";font-style:normal;font-weight:700 900;font-stretch:62% 90%;font-display:swap;src:url("../fonts/archivo-var.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/hanken-grotesk-var.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/jetbrains-mono-400.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/jetbrains-mono-600.woff2") format("woff2")}
@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:900;font-display:swap;src:url("../fonts/noto-jp-900-sub.woff2") format("woff2")}
*,*::before,*::after{box-sizing:border-box}body{margin:0}img{max-width:100%}[hidden]{display:none!important}
/* Layout: editorial agency site, single committed dark look (brand: red/black/white) with one cool "paper" band per page; giant condensed type + red duotone photos; hash-routed pages. */
:root{
  --ink:#0d0a0a;        /* fondo principal, negro con sesgo rojo */
  --ink-2:#171212;      /* superficies */
  --line:#2c2323;       /* bordes sobre negro */
  --bone:#f4f1ee;       /* texto principal */
  --mute:#9a8f8c;       /* texto secundario */
  --red:#e3232f;        /* rojo de marca (jockey) */
  --red-deep:#9e1620;
  --paper:#d9dddc;      /* banda clara, gris frío */
  --paper-ink:#141010;
  --f-display:"Archivo","Arial Narrow",Impact,sans-serif;
  --f-body:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --f-jp:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --wrap:1320px;
  --gut:clamp(16px,4vw,40px);
  --ease-out:cubic-bezier(.23,1,.32,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--bone);font-family:var(--f-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.mono{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}
.eyebrow{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);display:flex;gap:.6em;align-items:center}
.eyebrow::before{content:"";width:18px;height:2px;background:currentColor}
.display{font-family:var(--f-display);font-weight:900;font-stretch:68%;font-variation-settings:"wdth" 68;text-transform:uppercase;line-height:.86;letter-spacing:-.01em;text-wrap:balance;margin:0}
h2.display{font-size:clamp(2.4rem,6.6vw,5.6rem);overflow-wrap:break-word}
h3{font-family:var(--f-display);font-variation-settings:"wdth" 82;font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:1;margin:0;font-size:1.45rem}
p{margin:0;max-width:62ch}
.red{color:var(--red)}
.lede{font-size:clamp(1.08rem,1.5vw,1.25rem);color:var(--bone);max-width:46ch}
.muted{color:var(--mute)}

/* ---------- Nav ---------- */
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;font-size:1.6rem;letter-spacing:.01em;line-height:1}
.brand .jp{font-family:var(--f-jp);font-weight:900;color:var(--red);font-size:1.05rem;line-height:1}
.btn{display:inline-flex;align-items:center;gap:.6em;padding:14px 22px;border-radius:999px;background:var(--red);color:#fff;font-weight:700;text-decoration:none;font-size:.95rem;border:0;cursor:pointer;font-family:var(--f-body);transition:transform 160ms var(--ease-out),background-color .2s ease,border-color .2s ease;-webkit-tap-highlight-color:transparent}
@media (hover:hover) and (pointer:fine){.btn:hover{background:#ff2f3b;transform:translateY(-2px)}}
.btn:active{transform:scale(.97)}
.btn .arr{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--red);font-size:.8rem}
.btn.ghost{background:transparent;color:var(--bone);border:1px solid var(--line)}
@media (hover:hover) and (pointer:fine){.btn.ghost:hover{background:transparent;border-color:var(--bone)}.btn.dark:hover{background:#000}}
.btn.dark{background:var(--ink);color:var(--bone)}

/* ---------- Views ---------- */
.view{animation:enter .5s cubic-bezier(.2,.8,.2,1)}
@keyframes enter{from{opacity:.001;transform:translateY(10px)}to{opacity:1;transform:none}}
section{padding-block:clamp(64px,9vw,120px)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.sec-head > *{min-width:0}
@media (max-width:820px){.sec-head{grid-template-columns:1fr}}

/* duotone */
.duo{position:relative;background:var(--red);overflow:hidden}
.duo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.18) brightness(1.06);mix-blend-mode:multiply;transition:filter .6s, mix-blend-mode .6s}
.duo.reveal:hover img{filter:none;mix-blend-mode:normal}

/* ---------- Hero ---------- */
.hero{padding-block:clamp(24px,4vw,48px) 0;position:relative;overflow:hidden}
.mega{display:block;width:max-content;margin-inline:auto !important;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;text-transform:uppercase;color:var(--red);line-height:.8;letter-spacing:-.015em;margin:0;font-size:clamp(4.2rem,22.6vw,19.5rem);text-align:center;white-space:nowrap}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:end;margin-top:clamp(-210px,-14vw,-50px);position:relative}
.hero-grid > *{min-width:0}
.hero-photo{position:relative;z-index:2;margin:0;max-width:100%}
.hero-photo .arch{aspect-ratio:5/8;border-radius:999px 999px 0 0;-webkit-mask-image:linear-gradient(to bottom,#000 72%,transparent 100%);mask-image:linear-gradient(to bottom,#000 72%,transparent 100%)}
.hero-photo .arch img{object-position:50% 40%}
.hero-photo .ring{position:absolute;inset:-14px -14px auto -14px;aspect-ratio:5/8;border:1px solid var(--bone);border-bottom:0;border-radius:999px 999px 0 0;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 85%);mask-image:linear-gradient(to bottom,#000 55%,transparent 85%)}
.hero-photo .tag{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);background:var(--bone);color:var(--ink);padding:7px 12px;border-radius:999px;white-space:nowrap}
.hero-photo .kanji{position:absolute;left:-1.5em;top:30%;writing-mode:vertical-rl;font-family:var(--f-jp);font-weight:900;font-size:clamp(1.4rem,2.6vw,2.3rem);color:var(--red);line-height:1;letter-spacing:.12em}
.hero-left,.hero-right{display:grid;gap:22px;padding-bottom:36px}
.hero-left .lede{font-size:clamp(1rem,1.3vw,1.15rem)}
.hero-right h2{font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 80;text-transform:uppercase;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1;margin:0;text-wrap:balance}
.hero-right .cta-row{display:flex;flex-wrap:wrap;gap:10px}
.def{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:4px}
.def .jp{font-family:var(--f-jp);font-weight:900;font-size:1.3rem;color:var(--red)}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;margin-top:-6vw}
  .hero-photo{order:-1;max-width:320px;margin-inline:auto;width:100%}
  .hero-left,.hero-right{padding-bottom:0}
}


/* --- hero impact --- */
@media (min-width:901px){.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr)}}
.hero-photo::before{content:"";position:absolute;left:50%;top:38%;width:130%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(227,35,47,.55) 0%,rgba(227,35,47,.18) 40%,transparent 68%);filter:blur(10px);z-index:-1;pointer-events:none}
.hero-photo .arch{box-shadow:0 0 0 1px rgba(244,241,238,.35)}
.badge{position:absolute;right:-9%;top:6%;width:clamp(96px,10vw,140px);aspect-ratio:1;z-index:3;display:grid;place-items:center;background:var(--ink);border-radius:50%;box-shadow:0 0 0 1px var(--red)}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite}
.badge svg text{font-family:var(--f-mono);font-size:9.6px;fill:var(--bone);text-transform:uppercase}
.badge b{font-family:var(--f-jp);font-weight:900;color:var(--red);font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1}
@keyframes spin{to{transform:rotate(360deg)}}
.mega .ch{display:inline-block;animation:rise .9s cubic-bezier(.2,.9,.1,1) both;animation-delay:calc(var(--i) * 55ms)}
@keyframes rise{from{transform:translateY(38%) skewY(6deg);opacity:.15}to{transform:none;opacity:1}}
.mega-ghost{position:absolute;left:0;right:0;top:clamp(36px,6vw,72px);text-align:center;pointer-events:none;z-index:0}
.hero .mega{position:relative;z-index:1}
.hero-photo .arch img{animation:zoomin 1.6s cubic-bezier(.2,.8,.2,1) both}
@keyframes zoomin{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-photo .arch{transition:transform .1s linear}
@media (max-width:900px){.badge{right:-4%;top:4%}.hero-photo .kanji{display:none}}


/* --- hero logo (sin foto) --- */
.hero{padding-block:clamp(40px,6vw,88px) clamp(40px,5vw,72px)}
.hero::before{content:"";position:absolute;left:50%;top:42%;width:min(1100px,120vw);aspect-ratio:2/1;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(227,35,47,.28) 0%,transparent 65%);pointer-events:none}
.hero-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 20px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:clamp(20px,3vw,36px);position:relative}
.hero-logo{position:relative}
.hero-logo .badge{right:-1%;top:auto;bottom:-46%}
.hero-claim{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;text-transform:uppercase;color:var(--bone);text-align:center;font-size:clamp(1.5rem,4.4vw,3.6rem);line-height:1;margin:clamp(18px,2.4vw,30px) 0 0;position:relative;text-wrap:balance}
.hero-claim span{color:var(--red);display:block}
.hero .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:clamp(36px,5vw,64px);gap:28px 64px;align-items:start;border-top:1px solid var(--line);padding-top:clamp(24px,3vw,36px)}
.hero .hero-left,.hero .hero-right{padding-bottom:0}
@media (max-width:900px){.hero .hero-grid{grid-template-columns:1fr}.hero-logo .badge{width:76px;right:0;top:-40%}}

/* marquee */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:16px;background:var(--ink)}
.marquee .track{display:flex;width:max-content;animation:mq 38s linear infinite}
.marquee span{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(1.8rem,4vw,3.2rem);line-height:1;padding-inline:.5em;white-space:nowrap}
.marquee span:nth-child(even){color:transparent;-webkit-text-stroke:1.2px var(--red)}
@keyframes mq{to{transform:translateX(-50%)}}

/* manifesto */
.manifesto{background:#cf1c27;color:#fff}
.manifesto .display{font-size:clamp(2.8rem,8.6vw,7.6rem);color:var(--ink)}
.manifesto .display em{font-style:normal;color:#fff}
.manifesto-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:40px;align-items:end}
.manifesto-grid > *{min-width:0}
.manifesto p{color:#fff;font-size:1.08rem}
@media (max-width:820px){.manifesto-grid{grid-template-columns:1fr}}

/* focus cards */
.focus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.focus article{background:var(--ink);padding:clamp(22px,3vw,36px);display:grid;gap:14px;align-content:start;min-height:260px;transition:background .3s}
.focus .k{font-family:var(--f-jp);font-weight:900;color:var(--red);font-size:2rem;line-height:1}
.focus ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.chip{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:5px 10px;color:var(--mute)}
@media (max-width:820px){.focus{grid-template-columns:1fr}.focus article{min-height:0}}

/* paper band */
.paper{background:var(--paper);color:var(--paper-ink)}
.paper .muted{color:#4d4644}
.paper .eyebrow{color:var(--red-deep)}
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:2px solid var(--paper-ink)}
.step{padding:22px 18px 26px 0;display:grid;gap:12px;align-content:start;border-right:1px solid #b9bebd;padding-left:18px}
.step:first-child{padding-left:0}
.step:last-child{border-right:0}
.step .n{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;font-size:4.2rem;line-height:.8;color:var(--red)}
.step .res{font-size:.9rem;border-top:1px dashed #9fa5a4;padding-top:10px;color:#3d3735}
.step .res b{display:block;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep);margin-bottom:4px}
@media (max-width:1000px){.steps{grid-template-columns:1fr 1fr}.step{border-right:0;border-bottom:1px solid #b9bebd;padding-left:0}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* sprint */
.sprint{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:48px;align-items:start}
.sprint > *{min-width:0}
.months{display:grid;gap:0;border:1px solid var(--line)}
.month{display:grid;grid-template-columns:minmax(0,10rem) minmax(0,1fr);gap:20px;padding:22px;border-bottom:1px solid var(--line);align-items:start}
.month:last-child{border-bottom:0}
.month .m{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 64;font-size:2.4rem;overflow-wrap:anywhere;line-height:.85;text-transform:uppercase}
.month:nth-child(3) .m{color:var(--red)}
.quote{border-left:3px solid var(--red);padding:6px 0 6px 18px;font-size:1.15rem;font-weight:600;max-width:40ch}
.peso{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.peso span{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;text-transform:uppercase;font-size:1.3rem;border:1px solid var(--line);padding:8px 14px}
.peso i{font-style:normal;color:var(--red)}
@media (max-width:860px){.sprint{grid-template-columns:1fr}.month{grid-template-columns:1fr;gap:8px}}

/* guide cards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:var(--ink-2);border:1px solid var(--line);border-radius:18px;padding:24px;display:grid;gap:14px;align-content:start;text-decoration:none;transition:border-color .25s ease,transform .25s var(--ease-out);min-width:0;cursor:pointer;text-align:left;color:inherit;font:inherit}
.card .meta{display:flex;justify-content:space-between;gap:8px;align-items:center}
.card .type{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.card h3{font-size:1.5rem}
.card p{color:var(--mute);font-size:.95rem}
.card .go{font-weight:700;font-size:.9rem;display:flex;gap:.5em;align-items:center;margin-top:auto}
.card.solid{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.card.solid p{color:#4e4645}
.card.soon{cursor:default;border-style:dashed;background:transparent}
@media (max-width:980px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.cards{grid-template-columns:1fr}}

/* CTA band */
.cta-band{border-top:1px solid var(--line)}
.cta-band .inner{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;align-items:center}
.cta-band .inner > *{min-width:0}
.cta-band .display{font-size:clamp(2.8rem,8vw,7rem)}
.cta-band .inner{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(40px,6vw,96px)}
.cta-fig{position:relative;margin:0;justify-self:center;width:100%;max-width:330px}
.cta-fig::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--red);pointer-events:none}
.cta-photo{aspect-ratio:1100/1955;width:100%;position:relative}
.cta-photo img{object-position:50% 50%}
.cta-fig .tag{position:absolute;left:-14px;bottom:28px;background:var(--bone);color:var(--ink);padding:7px 12px;border-radius:999px;white-space:nowrap;z-index:1}
@media (max-width:820px){.cta-band .inner{grid-template-columns:1fr}.cta-fig{justify-self:start;max-width:260px;margin-left:4px}}

/* ---------- Page heads ---------- */
.page-head{padding-block:clamp(40px,6vw,80px) clamp(32px,4vw,56px);border-bottom:1px solid var(--line)}
.page-head .display{font-size:clamp(3rem,13vw,11.5rem);color:var(--red);line-height:.8}
.page-head .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px;align-items:end;margin-top:28px}
.page-head .row > *{min-width:0}
@media (max-width:820px){.page-head .row{grid-template-columns:1fr}}

/* services */
/* Ficha: cabecera (número · nombre · propuesta) → cuerpo (ejemplo | detalle) */
.service{display:grid;gap:clamp(32px,4vw,56px);padding-block:clamp(56px,7vw,104px);border-bottom:1px solid var(--line);scroll-margin-top:72px}
.service > *{min-width:0}
.svc-head{display:grid;grid-template-columns:auto minmax(0,1.25fr) minmax(0,1fr);gap:20px clamp(24px,4vw,56px);align-items:end}
.svc-head > *{min-width:0}
.service .idx{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;font-size:clamp(4.5rem,9vw,8rem);line-height:.78;color:transparent;-webkit-text-stroke:1.5px var(--red)}
.svc-title{display:grid;gap:12px;justify-items:start}
.service h2{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 68;text-transform:uppercase;font-size:clamp(2rem,4vw,3.4rem);line-height:.9;margin:0;text-wrap:balance}
.svc-tag{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bone);border:1px solid var(--line);border-radius:999px;padding:6px 12px;max-width:100%}
.svc-pitch{display:grid;gap:18px;justify-items:start;padding-bottom:4px}
.svc-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.svc-body > *{min-width:0}
.svc-body > .mg{position:sticky;top:96px}
.service:not(.has-demo) .svc-body{grid-template-columns:1fr}
.svc-detail{display:grid;gap:clamp(28px,3vw,40px)}
.svc-block{display:grid;gap:14px;align-content:start}
.svc-extra .hs-7{margin:0}
/* etapas en fila: tarjetas lado a lado bajo el cuerpo de la ficha */
.svc-steps{border-top:1px solid var(--line);padding-top:clamp(28px,3vw,40px)}
.svc-steps .classes{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.service .svc-steps ol.classes li{grid-template-columns:1fr;gap:10px;align-content:start}
.service .svc-steps ol.classes .rs{grid-column:auto;border-top:1px dashed var(--line);padding-top:8px;margin-top:0}
@media (max-width:1000px){.svc-head{grid-template-columns:auto minmax(0,1fr)}.svc-pitch{grid-column:1/-1}}
@media (max-width:900px){.svc-body{grid-template-columns:1fr}.svc-body > .mg{position:static}}
@media (max-width:560px){.svc-head{grid-template-columns:1fr;gap:16px}.service .idx{font-size:4rem}}

/* índice de servicios (Inicio y Servicios) */
.svc-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px clamp(20px,3vw,40px);padding-block:clamp(36px,5vw,64px);border-bottom:1px solid var(--line)}
.svc-group{min-width:0}
.svc-area{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);padding-bottom:12px;border-bottom:2px solid var(--bone)}
.svc-index ul{list-style:none;margin:0;padding:0}
.svc-index a{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;-webkit-tap-highlight-color:transparent}
.svc-index .n{font-family:var(--f-mono);font-size:.72rem;color:var(--mute);font-variant-numeric:tabular-nums;transition:color .2s ease}
.svc-index .t{font-family:var(--f-display);font-variation-settings:"wdth" 80;font-weight:800;text-transform:uppercase;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.04;text-wrap:balance}
.svc-index small{display:block;margin-top:6px;font-family:var(--f-mono);font-weight:400;font-size:.64rem;letter-spacing:.1em;color:var(--mute)}
.svc-index .go{color:var(--mute)}
@media (max-width:900px){.svc-index{grid-template-columns:1fr}}
.svc-home{border-bottom:1px solid var(--line)}
.svc-home .svc-index{padding-block:0;border-bottom:0}
.incl{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.incl li{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}
.service:not(.has-demo) .incl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,4vw,48px)}
.incl li b{font-family:var(--f-display);font-variation-settings:"wdth" 80;font-weight:800;text-transform:uppercase;font-size:1.1rem;line-height:1.1}
.incl li span{color:var(--mute)}
.classes{counter-reset:c;list-style:none;margin:0;padding:0;display:grid;gap:10px}
.classes li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px 14px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--ink-2)}
.classes .rs{grid-column:2;border-top:1px dashed var(--line);padding-top:8px;margin-top:4px}
.service:not(.has-demo) .classes li{grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);gap:18px}
.service:not(.has-demo) .classes .rs{grid-column:auto;border-top:0;padding-top:0;margin-top:0}
.classes .cn{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;font-size:2.8rem;line-height:.8;color:var(--red)}
.classes .rs{font-size:.92rem;color:var(--mute)}
.classes .rs b{display:block;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone);margin-bottom:4px}
@media (max-width:860px){.service:not(.has-demo) .incl{grid-template-columns:1fr}.service:not(.has-demo) .classes li{grid-template-columns:44px minmax(0,1fr);gap:6px 14px}.service:not(.has-demo) .classes .rs{grid-column:2}}
.scripts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.scripts div,.scripts p{border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:6px}
.scripts b{font-family:var(--f-display);font-variation-settings:"wdth" 78;font-weight:800;text-transform:uppercase;font-size:1.05rem}
.scripts span{font-size:.92rem;color:var(--mute)}
@media (max-width:620px){.scripts{grid-template-columns:1fr}}

/* faq */
.faq{display:grid;gap:0;border-top:2px solid var(--paper-ink)}
.faq details{border-bottom:1px solid #b9bebd;padding:20px 0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 80;text-transform:uppercase;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.05}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--red);font-size:1.6rem;line-height:.8;transition:transform 200ms var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:12px;color:#3d3735}

/* dojo */
/* Sin filtros: si la página Dojo es una versión anterior, sus filtros y el aviso vacío de noticias no se muestran */
.filters,.empty[data-kind="noticia"]{display:none!important}
.dojo-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0;border:1px solid var(--line);border-radius:22px;overflow:hidden;margin-bottom:16px}
.dojo-feature > *{min-width:0}
.dojo-feature .duo{min-height:320px}
.dojo-feature .body{padding:clamp(24px,4vw,44px);display:grid;gap:16px;align-content:center;background:var(--ink-2)}
.dojo-feature h3{font-size:clamp(1.8rem,3.4vw,2.8rem);font-variation-settings:"wdth" 70;font-weight:900;line-height:.92}
.lessons{list-style:none;margin:0;padding:0;display:grid;gap:6px;counter-reset:l}
.lessons li{counter-increment:l;display:flex;gap:12px;font-size:.95rem;color:var(--mute)}
.lessons li::before{content:counter(l,decimal-leading-zero);font-family:var(--f-mono);font-size:.72rem;color:var(--red);padding-top:3px}
@media (max-width:820px){.dojo-feature{grid-template-columns:1fr}.dojo-feature .duo{min-height:240px}}
.empty{border:1px dashed var(--line);border-radius:18px;padding:28px;display:grid;gap:8px;color:var(--mute);grid-column:1/-1}
.empty b{color:var(--bone);font-family:var(--f-display);font-variation-settings:"wdth" 80;text-transform:uppercase;font-size:1.2rem}

/* article */
.article{max-width:760px;margin-inline:auto;padding-block:clamp(40px,6vw,80px)}
.article .back{background:none;border:0;color:var(--mute);font:600 .9rem var(--f-body);cursor:pointer;padding:0;display:inline-flex;gap:.5em;margin-bottom:28px}
.article .back:hover{color:var(--bone)}
.article h1{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(2.6rem,7vw,4.8rem);line-height:.9;margin:14px 0 20px;text-wrap:balance}
.article .intro{font-size:1.2rem;color:var(--bone);margin-bottom:36px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.article h2{font-family:var(--f-display);font-weight:800;font-variation-settings:"wdth" 78;text-transform:uppercase;font-size:1.7rem;line-height:1;margin:40px 0 14px}
.article p{margin:0 0 16px;color:#d8d1ce}
.article ol,.article ul{margin:0 0 18px;padding-left:1.3em;color:#d8d1ce;display:grid;gap:8px}
.article li::marker{color:var(--red);font-weight:700}
.article strong{color:var(--bone)}
.callout{border-left:3px solid var(--red);background:var(--ink-2);padding:16px 20px;border-radius:0 12px 12px 0;margin:22px 0;font-weight:600}
.tbl{overflow-x:auto;margin:0 0 20px;border:1px solid var(--line);border-radius:12px}
.tbl table{border-collapse:collapse;width:100%;min-width:480px;font-size:.95rem}
.tbl th,.tbl td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);background:var(--ink-2)}
.tbl tr:last-child td{border-bottom:0}
.code{position:relative;background:#050404;border:1px solid var(--line);border-radius:12px;margin:0 0 20px}
.code pre{margin:0;padding:18px;overflow-x:auto;font-family:var(--f-mono);font-size:.84rem;line-height:1.7;color:#e9e2df;white-space:pre-wrap}
.code .copy{position:absolute;top:10px;right:10px;font:600 .75rem var(--f-body);background:var(--ink-2);color:var(--bone);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}
.next{margin-top:48px;padding-top:28px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}

/* projects */
.metric-legend{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border-top:2px solid var(--paper-ink)}
.metric-legend div,.metric-legend p{padding:16px 14px 16px 0;border-right:1px solid #b9bebd;display:grid;gap:6px;padding-left:14px}
.metric-legend div:first-child,.metric-legend p:first-child{padding-left:0}
.metric-legend div:last-child,.metric-legend p:last-child{border-right:0}
.metric-legend .n{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;font-size:2.4rem;line-height:.8;color:var(--red)}
.metric-legend b{font-family:var(--f-display);font-variation-settings:"wdth" 80;text-transform:uppercase;font-size:1rem;line-height:1.05}
.metric-legend span{font-size:.84rem;color:#4d4644}
@media (max-width:900px){.metric-legend{grid-template-columns:1fr 1fr 1fr}.metric-legend div,.metric-legend p{border-right:0;border-bottom:1px solid #b9bebd;padding-left:0}}
@media (max-width:520px){.metric-legend{grid-template-columns:1fr 1fr}}
.case{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);border:1px solid var(--line);border-radius:22px;overflow:hidden;margin-bottom:18px}
.case > *{min-width:0}
.case .vis{background:repeating-linear-gradient(135deg,var(--ink-2) 0 12px,var(--ink) 12px 24px);display:grid;place-items:center;min-height:300px;position:relative;border-right:1px solid var(--line)}
.case .vis .ph{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);text-align:center;padding:20px}
.case .vis .num{position:absolute;left:18px;top:14px;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;font-size:4rem;line-height:.8;color:var(--red)}
.case .info{padding:clamp(22px,3vw,36px);display:grid;gap:18px;align-content:start}
.fill{border:1px dashed var(--red);border-radius:8px;padding:2px 8px;color:#ffb3b8;font-family:var(--f-mono);font-size:.78rem;letter-spacing:.04em;display:inline-block}
.case h3{font-size:clamp(1.6rem,3vw,2.3rem);font-variation-settings:"wdth" 70;font-weight:900}
.case .rows{display:grid;gap:12px}
.case .rows div,.case .rows p{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;font-size:.95rem}
.case .rows dt,.case .rows .l{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding-top:4px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.kpis div,.kpis p{background:var(--ink);padding:14px;display:grid;gap:4px}
.kpis .v{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;font-size:1.9rem;line-height:1;color:var(--bone);font-variant-numeric:tabular-nums}
.kpis .v.ph{color:#8a7e7b}
.kpis .l{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
@media (max-width:860px){.case{grid-template-columns:1fr}.case .vis{min-height:200px;border-right:0;border-bottom:1px solid var(--line)}.kpis{grid-template-columns:1fr 1fr}.case .rows div,.case .rows p{grid-template-columns:1fr;gap:2px}}
.note{display:flex;gap:12px;align-items:flex-start;border:1px dashed var(--red);border-radius:14px;padding:14px 18px;margin-bottom:28px;font-size:.92rem;color:#ffc9cc}
.note b{color:#fff}

/* about */
.about-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:end;padding-block:clamp(40px,6vw,80px)}
.about-hero > *{min-width:0}
.about-hero .duo{aspect-ratio:4/5}
.about-hero .display{font-size:clamp(4rem,11vw,9.5rem)}
.about-hero .txt{display:grid;gap:22px}
.signature{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:18px}
.signature svg{width:54px;height:auto;flex:none}
@media (max-width:860px){.about-hero{grid-template-columns:1fr}.about-hero .duo{max-width:440px}}
.principles{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:2px solid var(--paper-ink);counter-reset:p}
.principles li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;padding:22px 0;border-bottom:1px solid #b9bebd;font-family:var(--f-display);font-variation-settings:"wdth" 78;font-weight:800;text-transform:uppercase;font-size:clamp(1.3rem,2.6vw,2rem);line-height:1.02;counter-increment:p}
.principles li::before{content:counter(p,decimal-leading-zero);font-family:var(--f-mono);font-size:.8rem;font-weight:600;color:var(--red-deep);letter-spacing:.1em;padding-top:.4em}
.four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.four div,.four p{min-width:0;border:1px solid var(--line);border-radius:16px;padding:22px;display:grid;gap:8px;align-content:start}
.four b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(1.4rem,2.2vw,2.1rem);line-height:.9;color:var(--red);overflow-wrap:anywhere}
.four span{color:var(--mute);font-size:.95rem}
@media (max-width:900px){.four{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.four{grid-template-columns:1fr}}
.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.strip .duo{aspect-ratio:9/16;border-radius:4px}
@media (max-width:620px){.strip{grid-template-columns:1fr 1fr}.strip .duo:last-child{display:none}}


/* about photo */
.about-photo{position:relative;margin:0;max-width:100%;isolation:isolate}
.about-photo .ap-img,.about-photo .ap-block,.about-photo .ap-frame{aspect-ratio:4/5;clip-path:polygon(0 0,82% 0,100% 14%,100% 100%,18% 100%,0 86%)}
.about-photo .ap-img{position:relative;z-index:2}
.about-photo .ap-img::after{content:"";position:absolute;inset:0;background:radial-gradient(rgba(13,10,10,.55) 1px,transparent 1.4px) 0 0/5px 5px;mix-blend-mode:multiply;pointer-events:none;transition:opacity .6s}
.about-photo .ap-img:hover::after{opacity:0}
.about-photo .ap-block{position:absolute;inset:0;transform:translate(22px,22px);background:var(--red);z-index:1}
.about-photo .ap-frame{position:absolute;inset:0;transform:translate(-14px,-14px);background:var(--bone);z-index:0;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1.5px}
.about-photo .ap-word{position:absolute;left:-.08em;bottom:-.18em;z-index:3;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(4.5rem,11vw,9rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--bone);pointer-events:none}
.about-photo .ap-sticker{position:absolute;right:-8px;top:18%;z-index:4;background:var(--bone);color:var(--ink);padding:9px 14px;transform:rotate(-6deg);box-shadow:0 10px 24px -10px #000}
@media (max-width:860px){.about-photo{max-width:420px;margin-right:22px}}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);padding-block:clamp(48px,7vw,96px)}
.contact > *{min-width:0}
.channels{display:grid;gap:0;border-top:1px solid var(--line)}
.channel{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.channel .l{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.channel .v{user-select:all;overflow-wrap:anywhere}
.mini{font:600 .75rem var(--f-body);background:transparent;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}
.mini:hover{color:var(--bone);border-color:var(--bone)}
form{display:grid;gap:16px;background:var(--ink-2);border:1px solid var(--line);border-radius:22px;padding:clamp(20px,3vw,36px)}
.field{display:grid;gap:8px}
.field label,.field legend{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.field input,.field textarea,.field select{width:100%;background:var(--ink);border:1px solid var(--line);border-radius:12px;padding:14px;color:var(--bone);font:400 1rem var(--f-body)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--red)}
.field textarea{min-height:130px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
fieldset{border:0;padding:0;margin:0}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg label{font:600 .9rem var(--f-body);text-transform:none;letter-spacing:0;color:var(--bone);border:1px solid var(--line);border-radius:999px;padding:9px 14px;cursor:pointer;display:flex;gap:8px;align-items:center}
.seg input{accent-color:var(--red);width:auto}
.seg label:has(input:checked){border-color:var(--red);background:color-mix(in srgb,var(--red) 18%,transparent)}
.form-msg{border:1px solid var(--red);border-radius:12px;padding:14px;font-size:.92rem}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
@media (max-width:520px){.two{grid-template-columns:1fr}.channel{grid-template-columns:1fr auto}.channel .l{grid-column:1/-1}}

/* footer */
.legal-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.legal a,.legal-btn{color:var(--mute);text-decoration:none;transition:color .2s ease}
.legal-btn{background:none;border:0;padding:0;font:inherit;cursor:pointer}
@media (hover:hover) and (pointer:fine){.legal a:hover,.legal-btn:hover{color:var(--bone)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
.back{text-decoration:none}

/* ---------- WordPress: utilidades y bloques ---------- */
.hs-1{display:grid;gap:18px}
.hs-2{display:grid;gap:22px}
.hs-3{border-top:1px solid var(--line)}
.hs-4{display:grid;gap:18px;justify-items:start}
.hs-5{display:grid;gap:24px;justify-items:start}
.hs-6{display:grid;gap:32px}
.hs-7{margin-bottom:14px}
.hs-8{font-size:.92rem;margin-top:6px}
.hs-9{padding-top:clamp(32px,4vw,56px)}
.hs-10{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hs-11{justify-self:start}
.hs-12{padding-block:clamp(40px,5vw,64px)}
.hs-13{margin-bottom:18px}
.hs-14{display:flex;gap:8px;flex-wrap:wrap}
.hs-15{font-size:1rem}
.hs-16{padding-top:0}
.hs-17{display:grid;gap:28px;align-content:start}
.wp-block-buttons{display:contents}
.wp-block-image{margin:0;height:100%}
.wp-block-image img{display:block;width:100%;height:100%;object-fit:cover}
.wp-block-details summary{cursor:pointer}
p.hero-top,p.eyebrow,p.tag,p.note{max-width:none}

@keyframes typing{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}

/* ---------- Hovers: corte, sello y tinta ----------
   Tres gestos del mismo lenguaje: el "corte" (una línea roja que barre como un trazo de katana),
   el "sello" (el hanko 激 que se estampa) y la "tinta" (los números en contorno se rellenan).
   La base define la salida (rápida) y :hover la entrada (más lenta y deliberada).
   Solo con mouse: en pantallas táctiles no hay hover falso. */
:root{--cut-in:420ms;--cut-out:180ms;--ease-stamp:cubic-bezier(.2,1.25,.4,1)}

/* piezas comunes */
.card,.focus article,.step,.month,.svc-index a,.incl li,.classes li,.scripts p,.scripts div,.four div,.four p,.case,.dojo-feature{position:relative}
.card::before,.focus article::before,.step::before,.month::before,.svc-index a::after,.incl li::after{
  content:"";position:absolute;background:var(--red);pointer-events:none;
  transition:clip-path var(--cut-out) ease-out}
/* corte horizontal: de izquierda a derecha */
.card::before,.step::before,.svc-index a::after,.incl li::after{height:2px;left:0;right:0;clip-path:inset(0 100% 0 0)}
.card::before{bottom:0}
.step::before{top:-2px}
.svc-index a::after,.incl li::after{bottom:-1px}
/* corte vertical: de arriba hacia abajo, como una pincelada */
.focus article::before,.month::before{width:3px;top:0;bottom:0;left:0;clip-path:inset(0 0 100% 0)}

/* tarjetas de guías: corte + sello 激 */
.card{overflow:hidden;transition:border-color .2s ease,transform 200ms var(--ease-out),background-color .2s ease}
.card::after{content:"激";position:absolute;right:20px;bottom:20px;width:34px;height:34px;display:grid;place-items:center;
  font:900 1rem/1 var(--f-jp);color:var(--red);border:1.5px solid currentColor;border-radius:7px;pointer-events:none;
  opacity:0;transform:scale(1.35) rotate(-14deg);transition:opacity 120ms ease,transform 160ms ease-out}
.card .go{transition:transform 200ms var(--ease-out),color .2s ease}
.card.soon::before,.card.soon::after{display:none}
a.card:active{transform:scale(.985)}

/* índice de servicios */
.svc-index .t{transition:transform 200ms var(--ease-out)}
.svc-index .n,.svc-index .go{transition:color .2s ease,transform 200ms var(--ease-out)}
.svc-index a:active .t{opacity:.7}

/* pilares 壱弐参 */
.focus article{transition:background-color .3s ease}
.focus .k{display:inline-block;justify-self:start;transition:transform 200ms var(--ease-out)}
.focus .chip{transition:border-color .2s ease,color .2s ease}

/* pasos del método (banda clara) */
.step .n{transition:transform 200ms var(--ease-out)}

/* fase sprint */
.month .m{transition:transform 200ms var(--ease-out),color .2s ease}

/* fichas de servicio */
.service .idx{background:linear-gradient(var(--red),var(--red)) no-repeat 0 100%/100% 0;-webkit-background-clip:text;background-clip:text;transition:background-size 260ms ease-out}
.incl li b{display:inline-block;transition:transform 200ms var(--ease-out),color .2s ease}
.classes li{transition:border-color .2s ease,background-color .2s ease}
.classes .cn{transition:transform 200ms var(--ease-out)}
.scripts p,.scripts div{transition:border-color .2s ease}
.scripts b{transition:color .2s ease}

/* proyectos, sobre mí, dojo */
.case,.dojo-feature{transition:border-color .25s ease}
.case .vis .num{transition:transform 260ms var(--ease-out)}
.dojo-feature .duo img{transition:filter .6s ease,transform 600ms var(--ease-out)}
.four div,.four p{transition:border-color .2s ease}
.four b{display:inline-block;transition:transform 200ms var(--ease-out)}

/* preguntas frecuentes */
.faq summary{transition:color .2s ease}

@media (hover:hover) and (pointer:fine){
  /* el corte entra lento y sale rápido */
  .card:hover::before,.step:hover::before,.svc-index a:hover::after,.incl li:hover::after,
  .focus article:hover::before,.month:hover::before{clip-path:inset(0);transition:clip-path var(--cut-in) var(--ease-out)}

  .card:not(.soon):hover{border-color:color-mix(in srgb,var(--red) 60%,var(--line));transform:translateY(-3px)}
  .card:not(.soon):hover::after{opacity:.9;transform:scale(1) rotate(-6deg);transition:opacity 120ms ease 60ms,transform 380ms var(--ease-stamp) 60ms}
  .card:not(.soon):hover .go{transform:translateX(4px);color:var(--red)}
  .card.solid:hover .go{color:var(--red-deep)}

  .svc-index a:hover .t{transform:translateX(6px)}
  .svc-index a:hover .n{color:var(--red)}
  .svc-index a:hover .go{color:var(--red);transform:translateX(4px)}

  .focus article:hover{background:var(--ink-2)}
  .focus article:hover .k{transform:translateY(-3px) rotate(-4deg)}
  .focus article:hover .chip{border-color:#4a3a3a;color:var(--bone)}

  .step:hover .n{transform:translateY(-6px)}

  .month:hover .m{transform:translateX(8px)}
  .month:not(:nth-child(3)):hover .m{color:var(--bone)}

  .service:hover .idx{background-size:100% 100%;transition:background-size 900ms var(--ease-out)}
  .incl li:hover b{transform:translateX(6px);color:var(--bone)}
  .classes li:hover{border-color:color-mix(in srgb,var(--red) 55%,var(--line));background:#1c1515}
  .classes li:hover .cn{transform:translateY(-3px) rotate(-6deg)}
  .scripts p:hover,.scripts div:hover{border-color:color-mix(in srgb,var(--red) 55%,var(--line))}
  .scripts p:hover b,.scripts div:hover b{color:var(--red)}

  .case:hover,.dojo-feature:hover{border-color:color-mix(in srgb,var(--red) 50%,var(--line))}
  .case:hover .vis .num{transform:translateY(-4px)}
  .dojo-feature:hover .duo img{transform:scale(1.04)}
  .four div:hover,.four p:hover{border-color:color-mix(in srgb,var(--red) 55%,var(--line))}
  .four div:hover b,.four p:hover b{transform:translateY(-3px)}

  .faq summary:hover{color:var(--red-deep)}
  .faq details:not([open]) summary:hover::after{transform:rotate(90deg)}

  .marquee:hover .track{animation-play-state:paused}
}

/* teclado: los enlaces muestran el mismo gesto al recibir foco */
.card:focus-visible::before,.svc-index a:focus-visible::after{clip-path:inset(0)}
.svc-index a:focus-visible .t{transform:translateX(6px)}
.svc-index a:focus-visible .n,.svc-index a:focus-visible .go{color:var(--red)}

/* ---------- Dojo ---------- */
.card h3{font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.02;text-wrap:balance}
.card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dojo-cards .card{padding:22px;gap:10px}
.dojo-cards .card p{-webkit-line-clamp:2}
/* tarjeta destacada: invitación a aprender más (ocupa toda la fila) */
.card-cta{grid-column:1/-1;position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px clamp(20px,3vw,40px);align-items:center;
  background:#cf1c27;color:#fff;border-radius:18px;padding:clamp(22px,3vw,34px);transition:transform 200ms var(--ease-out)}
.card-cta::after{content:"学";position:absolute;right:-.06em;bottom:-.32em;font-family:var(--f-jp);font-weight:900;font-size:clamp(7rem,14vw,11rem);line-height:1;color:rgba(13,10,10,.12);pointer-events:none}
.card-cta > *{position:relative;z-index:1;min-width:0}
.cc-badge{position:relative;width:clamp(84px,8vw,104px);aspect-ratio:1;border-radius:50%;background:var(--ink);display:grid;place-items:center;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.cc-badge svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite}
.cc-badge svg text{font-family:var(--f-mono);font-size:9.6px;fill:var(--bone);text-transform:uppercase}
.cc-badge b{font-family:var(--f-jp);font-weight:900;color:var(--red);font-size:clamp(1.5rem,2.4vw,2rem);line-height:1}
.cc-txt{display:grid;gap:8px}
.card-cta .eyebrow{color:#fff}
.card-cta h3{font-size:clamp(1.5rem,3vw,2.4rem);font-variation-settings:"wdth" 68;font-weight:900;line-height:.92;color:var(--ink);text-wrap:balance}
.card-cta h3 span{display:block;color:#fff}
.cc-txt p:not(.eyebrow){color:#fff;font-size:.95rem;max-width:56ch}
.card-cta .btn{justify-self:end;white-space:nowrap}
@media (hover:hover) and (pointer:fine){.card-cta:hover{transform:translateY(-3px)}}
@media (max-width:820px){
  .card-cta{grid-template-columns:minmax(0,1fr);gap:16px}
  .cc-badge{position:absolute;top:18px;right:18px;width:72px}
  .cc-txt{padding-right:84px}
  .card-cta .btn{justify-self:start}
}
@media (max-width:420px){.cc-txt{padding-right:0}.cc-badge{display:none}}
.dojo-cards + .dojo-feature{margin:16px 0 0}
.dojo-cta{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px clamp(24px,4vw,56px);align-items:end;margin-top:clamp(48px,6vw,88px);padding-top:clamp(40px,5vw,64px);border-top:1px solid var(--line)}
.dojo-cta > *{min-width:0}
.dojo-cta h2.display{font-size:clamp(2.2rem,5.2vw,4.4rem)}
@media (max-width:820px){.dojo-cta{grid-template-columns:1fr}}

/* guía: cabecera → lo esencial → un dato → lo que queda para la asesoría → llamado */
.article.guide{max-width:880px;padding-block:clamp(24px,4vw,48px) clamp(40px,5vw,72px)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 8px;list-style:none;margin:0 0 clamp(20px,3vw,36px);padding:0;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.crumbs li{display:flex;gap:8px;align-items:center}
.crumbs li + li::before{content:"/";color:#4a3a3a}
.crumbs a{color:var(--mute);text-decoration:none;transition:color .2s ease}
.crumbs [aria-current]{color:var(--bone)}
@media (hover:hover) and (pointer:fine){.crumbs a:hover{color:var(--bone)}}
.guide-head{display:grid;gap:14px;padding-bottom:clamp(24px,3vw,36px);margin-bottom:clamp(24px,3vw,40px);border-bottom:1px solid var(--line)}
.article.guide h1{margin:0;font-size:clamp(2.2rem,6vw,4.2rem);max-width:18ch}
.guide-meta{color:var(--mute);font-size:.66rem;max-width:none}
.article.guide .intro{font-size:clamp(1.1rem,1.7vw,1.3rem);line-height:1.5;color:var(--bone);border:0;padding:0;margin:0 0 clamp(24px,3vw,40px);max-width:58ch}
.key{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 clamp(32px,4vw,48px)}
.key > div{background:var(--ink-2);border:1px solid var(--line);border-radius:16px;padding:clamp(16px,2vw,22px);display:grid;gap:10px;align-content:start;min-width:0}
.key b{font-family:var(--f-mono);font-weight:600;font-size:.7rem;letter-spacing:.12em;color:var(--red)}
.key h3{font-size:clamp(1.1rem,1.6vw,1.25rem);line-height:1.04;text-wrap:balance}
.article .key p{margin:0;font-size:.92rem;color:var(--mute)}
.article.guide .guide-body h2{font-size:clamp(1.3rem,2.2vw,1.6rem);margin:0 0 10px}
.article.guide .guide-body > p{max-width:62ch}
@media (max-width:760px){
  .key{grid-template-columns:1fr;gap:8px}
  .key > div{grid-template-columns:28px minmax(0,1fr);column-gap:12px;row-gap:4px}
  .key b{grid-row:1/3;padding-top:3px}
}

/* lo que queda para la asesoría: lista con candado y "texto" difuminado */
.lock{position:relative;margin-top:clamp(28px,4vw,44px);border:1px dashed color-mix(in srgb,var(--red) 55%,var(--line));border-radius:18px;padding:clamp(18px,2.4vw,26px) clamp(18px,2.4vw,26px) 0;overflow:hidden;background:linear-gradient(180deg,transparent 40%,rgba(227,35,47,.07))}
.article .lock-t{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 14px}
.article .lock ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.article .lock li{display:flex;gap:12px;align-items:flex-start;color:var(--bone);font-weight:600}
.lock li::before{content:"";flex:none;width:14px;height:14px;margin-top:5px;background:var(--red);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1Zm2 0h6V7a3 3 0 0 0-6 0v3Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1Zm2 0h6V7a3 3 0 0 0-6 0v3Z'/%3E%3C/svg%3E") center/contain no-repeat}
.lock::after{content:"";display:block;height:70px;margin-top:18px;filter:blur(4px);opacity:.5;pointer-events:none;
  background:linear-gradient(var(--mute),var(--mute)) 0 6px/86% 8px no-repeat,linear-gradient(var(--mute),var(--mute)) 0 26px/72% 8px no-repeat,linear-gradient(var(--mute),var(--mute)) 0 46px/80% 8px no-repeat;
  -webkit-mask:linear-gradient(#000,transparent);mask:linear-gradient(#000,transparent)}

/* llamado final */
.guide-cta{margin-top:clamp(28px,4vw,44px);background:#cf1c27;color:#fff;border-radius:22px;padding:clamp(24px,4vw,44px);display:grid;gap:14px;justify-items:start}
.guide-cta .eyebrow{color:#fff}
.article .guide-cta h2{margin:0;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 68;text-transform:uppercase;font-size:clamp(1.8rem,4.4vw,3rem);line-height:.9;color:var(--ink);text-wrap:balance}
.guide-cta h2 span{display:block;color:#fff}
.article .guide-cta p{color:#fff;margin:0;max-width:52ch}
.guide-cta-acts{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:6px}
.guide-cta-link{color:#fff;font-weight:700;text-underline-offset:4px}
.guide-more{padding-block:clamp(40px,6vw,80px);border-top:1px solid var(--line)}
.guide-more-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:clamp(20px,3vw,32px)}
.guide-more-h .display{font-size:clamp(2rem,5vw,3.6rem)}

/* ---------- Superficies del navegador ---------- */
::selection{background:var(--red);color:#fff}
html{scrollbar-color:#3a2a2a var(--ink);scrollbar-width:thin}
input,textarea{caret-color:var(--red)}
.skip{position:absolute;left:12px;top:-64px;z-index:100;background:var(--bone);color:var(--ink);padding:10px 16px;border-radius:999px;font-weight:700;text-decoration:none;transition:top .2s var(--ease-out)}
.skip:focus{top:12px}

/* ---------- Header ----------
   Indicador de página que se desliza (capa duplicada recortada con clip-path),
   progreso de lectura, se oculta al bajar y vuelve al subir. */
.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--ink) 78%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid transparent;transition:transform 340ms var(--ease-out),background-color .3s ease,border-color .3s ease}
.nav.is-scrolled{background:color-mix(in srgb,var(--ink) 92%,transparent);border-bottom-color:var(--line)}
.nav.is-hidden{transform:translateY(-100%)}
.nav .wrap{display:flex;align-items:center;gap:16px;padding-block:14px}
.nav-main{flex:1;display:flex;justify-content:center;min-width:0}
.nav-end{display:flex;align-items:center;gap:10px}
.nav .btn{padding:10px 16px}
.brand .jp{display:inline-block;transition:transform 320ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.brand:hover .jp{transform:rotate(-12deg) scale(1.12)}}

.links{position:relative;display:flex;gap:2px;list-style:none;margin:0;padding:4px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--ink-2) 55%,transparent)}
.links li{margin:0}
.links a{position:relative;display:block;padding:8px 15px;border-radius:999px;text-decoration:none;font-size:.9rem;font-weight:600;color:var(--mute);white-space:nowrap;transition:color .2s ease}
@media (hover:hover) and (pointer:fine){.links a:hover{color:var(--bone)}}
.links:not(.has-clip) a[aria-current="page"]{background:var(--bone);color:var(--ink)}
.nav-main{position:relative}
.links-clip{position:absolute;padding:5px;display:flex;gap:2px;background:var(--bone);border-radius:999px;pointer-events:none;
  clip-path:inset(50% 50% 50% 50% round 999px);transition:clip-path 380ms var(--ease-out)}
.links-clip span{display:block;padding:8px 15px;font-size:.9rem;font-weight:600;line-height:inherit;white-space:nowrap;color:var(--ink)}
.links-clip.no-anim{transition:none}

.menu-btn{display:none;align-items:center;gap:10px;background:none;border:1px solid var(--line);color:var(--bone);border-radius:999px;padding:9px 15px 9px 13px;font:600 .9rem var(--f-body);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .2s ease,transform 140ms var(--ease-out)}
.menu-btn:active{transform:scale(.96)}
.menu-ico{position:relative;width:16px;height:10px}
.menu-ico i{position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px;transition:transform 300ms var(--ease-out)}
.menu-ico i:first-child{top:0}
.menu-ico i:last-child{bottom:0}
.menu-btn[aria-expanded="true"]{border-color:var(--bone)}
.menu-btn[aria-expanded="true"] .menu-ico i:first-child{transform:translateY(4px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .menu-ico i:last-child{transform:translateY(-4px) rotate(-45deg)}

/* menú móvil: cortina que baja como un corte, enlaces escalonados */
.mobile-menu{position:absolute;left:0;right:0;top:100%;height:calc(100dvh - var(--nav-h,64px));background:var(--ink);overflow-y:auto;overscroll-behavior:contain;
  visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path 380ms cubic-bezier(.77,0,.175,1),visibility 0s linear 380ms}
.mobile-menu.is-open{visibility:visible;clip-path:inset(0);transition:clip-path 480ms cubic-bezier(.77,0,.175,1),visibility 0s}
.mm-inner{position:relative;isolation:isolate;min-height:100%;padding:20px var(--gut) calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:28px;overflow:hidden}
.mobile-menu ul{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.mobile-menu li{margin:0;border-bottom:1px solid var(--line);opacity:0;transform:translateY(18px);transition:opacity .2s ease,transform .3s var(--ease-out)}
.mobile-menu.is-open li{opacity:1;transform:none;transition:opacity .35s ease,transform .55s var(--ease-out);transition-delay:calc(90ms + var(--i) * 45ms)}
.mobile-menu a{display:block;padding:14px 0;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;font-size:clamp(2.2rem,11vw,3.8rem);text-transform:uppercase;line-height:.9;text-decoration:none;color:var(--bone);-webkit-tap-highlight-color:transparent}
.mobile-menu a[aria-current="page"]{color:var(--red)}
.mobile-menu a:active{color:var(--red)}
.mm-foot{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;margin-top:auto;opacity:0;transition:opacity .3s ease}
.mobile-menu.is-open .mm-foot{opacity:1;transition-delay:360ms}
.mm-wa{color:var(--mute);font-weight:600;text-decoration:none}
.mm-k{position:absolute;right:-.12em;bottom:-.22em;z-index:-1;font-family:var(--f-jp);font-weight:900;font-size:min(70vw,420px);line-height:1;color:var(--ink-2);pointer-events:none}
html.menu-open{overflow:hidden}
@media (max-width:980px){.nav-main,.nav-end .btn{display:none}.menu-btn{display:inline-flex}.nav .wrap{justify-content:space-between}}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line);padding-block:48px 28px;overflow:hidden}
.foot{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:32px}
.foot > *{min-width:0}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot a{text-decoration:none;color:var(--mute)}
.foot a:hover{color:var(--bone)}
.foot-mega{font-family:var(--f-jp);font-weight:900;color:var(--ink-2);-webkit-text-stroke:1px var(--line);font-size:clamp(5rem,20vw,16rem);line-height:1;margin-top:28px;white-space:nowrap;text-align:center}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--mute);font-size:.82rem;margin-top:8px}
@media (max-width:720px){.foot{grid-template-columns:1fr 1fr}.foot > :first-child{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){.nav.is-hidden{transform:none}}

/* ---------- Contacto ---------- */
.contact-h1 .h1-sub{display:block;margin-top:.5em;font-family:var(--f-body);font-size:clamp(1rem,1.6vw,1.2rem);font-weight:600;font-variation-settings:normal;font-stretch:normal;text-transform:none;letter-spacing:0;line-height:1.3;color:var(--bone)}
.note-admin{margin-top:12px;padding:10px 14px;border:1px dashed var(--line);border-radius:12px;color:var(--mute);font-size:.85rem;max-width:none}
.note-admin a{color:var(--bone)}
.contact-faq .faq details p a{color:var(--red-deep);font-weight:600;text-underline-offset:3px}

/* =====================================================================
   1.9 · Banner SEO, tarjetas con ícono, galería, efectos y CRO
   ===================================================================== */
picture{display:contents}
.duo picture img,.wp-block-image picture img{display:block;width:100%;height:100%;object-fit:cover}
.btn .wa-ico{width:20px;height:20px;flex:none}

/* ---------- Banner principal ---------- */
.hx{padding-block:clamp(28px,4vw,56px) clamp(48px,6vw,88px)}
.hx-stage{position:relative}
.hx .mega{position:relative;z-index:0;margin:0}
.hx-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1fr);gap:28px clamp(24px,4vw,56px);align-items:end;margin-top:clamp(-120px,-7.5vw,-36px);position:relative;z-index:1}
.hx-grid > *{min-width:0}
.hx-copy{display:grid;gap:18px;padding-bottom:12px}
.hx-h1{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;text-transform:uppercase;font-size:clamp(2rem,3.6vw,3.3rem);line-height:.92;margin:0;text-wrap:balance;letter-spacing:-.005em}
.hx-h1 span{display:block;color:var(--red)}
.hx-copy .lede{font-size:clamp(1rem,1.25vw,1.12rem);color:#d8d0cd;max-width:36ch}
.hx-photo{position:relative;margin:0 auto;width:100%;max-width:380px}
.hx-photo::before{content:"";position:absolute;left:50%;top:40%;width:150%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(227,35,47,.5) 0%,rgba(227,35,47,.14) 42%,transparent 68%);filter:blur(12px);z-index:-1;pointer-events:none}
.hx-arch{aspect-ratio:5/7;border-radius:999px 999px 18px 18px;box-shadow:0 0 0 1px rgba(244,241,238,.3),0 40px 80px -30px rgba(0,0,0,.9)}
.hx-arch img{object-position:50% 22%;animation:zoomin 1.6s cubic-bezier(.2,.8,.2,1) both}
.hx-ring{position:absolute;inset:-14px -14px 40% -14px;border:1px solid var(--bone);border-bottom:0;border-radius:999px 999px 0 0;opacity:.55;pointer-events:none}
.hx-photo .badge{right:-12%;top:auto;bottom:16%;width:clamp(86px,8vw,118px)}
.hx-photo .tag{position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);background:var(--bone);color:var(--ink);padding:7px 12px;border-radius:999px;white-space:nowrap;margin:0;z-index:3}
.hx-st{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:12px;background:rgba(23,18,18,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #3a2e2e;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--bone);white-space:nowrap;box-shadow:0 18px 40px -18px rgba(0,0,0,.9);animation:stIn .8s var(--ease-out) both,bob 6s ease-in-out infinite;will-change:transform}
.hx-st b{color:var(--red);font-weight:600}
.st-1{left:-22%;top:18%;animation-delay:.5s,1.3s}
.st-2{right:-16%;top:6%;animation-delay:.7s,0s}
.st-3{left:-14%;bottom:24%;animation-delay:.9s,2.4s}
.hx-dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(227,35,47,.7);animation:ping 1.8s ease-out infinite}
.hx-typing{display:inline-flex;gap:3px;font-style:normal}
.hx-typing i{width:4px;height:4px;border-radius:50%;background:var(--bone);animation:typing 1.2s ease-in-out infinite}
.hx-typing i:nth-child(2){animation-delay:.15s}.hx-typing i:nth-child(3){animation-delay:.3s}
@keyframes stIn{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes ping{to{box-shadow:0 0 0 10px rgba(227,35,47,0)}}
@keyframes typing{0%,60%,100%{opacity:.25;transform:none}30%{opacity:1;transform:translateY(-2px)}}
.hx-cta{display:grid;gap:12px;justify-items:start;padding-bottom:12px}
.hx-cta .btn{font-size:1rem}
.hx-cta .btn:first-child{padding:16px 24px;box-shadow:0 14px 40px -12px rgba(227,35,47,.65)}
.hx-trust{list-style:none;margin:8px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:grid;gap:8px;width:100%}
.hx-trust li{display:flex;gap:10px;align-items:center;font-size:.92rem;color:#cfc6c3}
.hx-trust li::before{content:"";width:16px;height:16px;flex:none;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.5 8.2 2.2 2.2 4.8-4.8' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
@media (max-width:1100px){.st-1{left:-10%}.st-3{left:-8%}.st-2{right:-6%}}
@media (max-width:900px){
  .hx-grid{grid-template-columns:1fr;margin-top:22px;gap:26px}
  .hx-photo{order:-1;max-width:min(230px,60vw)}
  .st-3{display:none}
  .hx-photo .badge{right:-10%;width:78px}
  .st-1{left:-14%;top:12%}.st-2{right:-14%;top:2%}.st-3{left:-12%;bottom:20%}
  .hx-st{font-size:.6rem;padding:7px 10px}
  .hx-copy,.hx-cta{padding-bottom:0}
  .hx-cta{grid-template-columns:1fr 1fr;width:100%;justify-items:stretch}
  .hx-cta .btn{justify-content:center;padding-inline:14px}
  .hx-trust{grid-column:1/-1}
}
@media (max-width:420px){.hx-cta{grid-template-columns:1fr}}
@media (max-width:820px){.cta-band .cta-fig{max-width:220px}}

/* ---------- Servicios: tarjetas con ícono ---------- */
.svc-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.svc-card{position:relative;display:grid;gap:14px;align-content:start;min-height:250px;height:100%;padding:22px 22px 24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,var(--ink-2),var(--ink) 70%);text-decoration:none;overflow:hidden;isolation:isolate;transition:border-color .25s ease,transform 260ms var(--ease-out)}
.svc-card::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--red);clip-path:inset(100% 0 0 0);transition:clip-path var(--cut-out,180ms) ease-in}
.sc-top{display:flex;justify-content:space-between;gap:10px;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.sc-n{color:var(--red);transition:color .2s}
.svc-ico{width:56px;height:56px;color:var(--bone);transition:transform 320ms var(--ease-out)}
.svc-ico .ic-a{stroke:var(--red);transition:stroke .2s}
.sc-t{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 74;text-transform:uppercase;font-size:clamp(1.3rem,1.9vw,1.65rem);line-height:.95;text-wrap:balance;margin-top:auto}
.sc-tag{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);transition:color .2s}
.sc-go{position:absolute;right:18px;bottom:18px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--bone);transition:transform 260ms var(--ease-out),background .2s,border-color .2s}
.svc-cards li:nth-child(1) .svc-card{background:linear-gradient(160deg,#2a1213,var(--ink) 75%)}
@media (hover:hover) and (pointer:fine){
  .svc-card:hover{border-color:var(--red);transform:translateY(-4px)}
  .svc-card:hover::before{clip-path:inset(0);transition:clip-path var(--cut-in,420ms) var(--ease-out)}
  .svc-card:hover .sc-n,.svc-card:hover .sc-tag,.svc-card:hover .sc-top{color:#fff}
  .svc-card:hover .svc-ico{transform:translateY(-4px) rotate(-4deg)}
  .svc-card:hover .svc-ico .ic-a{stroke:var(--ink)}
  .svc-card:hover .sc-go{background:var(--bone);color:var(--red);border-color:var(--bone);transform:rotate(45deg)}
}
.svc-card:focus-visible::before{clip-path:inset(0)}
@media (max-width:980px){.svc-cards{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.svc-cards{grid-template-columns:1fr 1fr;gap:8px}.svc-card{min-height:190px;padding:16px;gap:10px;border-radius:14px}.svc-ico{width:40px;height:40px}.sc-t{font-size:1.05rem}.sc-tag{display:none}.sc-go{width:28px;height:28px;right:12px;bottom:12px;font-size:.8rem}.sc-top .sc-area{display:none}}
.svc-home .svc-cards{margin-top:4px}
.page-head + .wrap > .svc-cards{margin-block:clamp(28px,4vw,48px)}

/* ---------- Método compacto ---------- */
.steps-v .step{gap:10px}
.steps-v .step h3{font-size:1.5rem}
@media (max-width:1000px){.steps-v{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px}.steps-v .step{padding:18px 0}}
@media (max-width:560px){.steps-v{grid-template-columns:1fr 1fr}.steps-v .step .n{font-size:3rem}.steps-v .step h3{font-size:1.15rem}.steps-v .step .res{font-size:.82rem}}

/* ---------- Fase Sprint: barra de 3 meses ---------- */
.sprint-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;position:relative}
.sprint-bar::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,#5a1a1f,var(--red));transform-origin:left;transform:scaleX(var(--p,1));transition:transform 1.4s var(--ease-out)}
.sb-m{padding:28px 24px 26px;display:grid;gap:6px;border-right:1px solid var(--line);align-content:start}
.sb-m:last-child{border-right:0;background:linear-gradient(160deg,#2a1213,transparent)}
.sb-k{color:var(--mute)}
.sb-t{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 64;text-transform:uppercase;font-size:clamp(2.2rem,4vw,3.4rem);line-height:.85}
.sb-m:last-child .sb-t{color:var(--red)}
.sprint-v .peso{margin-top:22px}
.sprint-v .quote{align-self:end}
@media (max-width:700px){.sprint-bar{grid-template-columns:1fr}.sb-m{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:4.5rem minmax(0,1fr);align-items:baseline;padding:18px}.sb-m:last-child{border-bottom:0}.sb-t{font-size:2rem}.sb-m .muted{grid-column:2}.sb-k{grid-row:1/3}}

/* ---------- Galería ---------- */
.gal{border-top:1px solid var(--line);overflow:hidden}
.gal-head{margin-bottom:clamp(28px,4vw,48px)}
.gal-head .display{max-width:18ch}
.gal-hint{display:none}
@media (max-width:1000px){.gal-hint{display:inline}}
.gal-track{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-inline:var(--gut);cursor:grab}
.gal-track::-webkit-scrollbar{display:none}
.gal-row{list-style:none;margin:0 auto;padding:0;display:flex;gap:clamp(12px,1.6vw,20px);width:max-content}
.gal-item{position:relative;width:clamp(190px,calc((min(100vw,var(--wrap)) - 2 * var(--gut) - 4 * clamp(12px,1.6vw,20px)) / 5),300px);flex:none;scroll-snap-align:center}
.gal-item:nth-child(even){margin-top:clamp(28px,4vw,64px)}
.gal-item .duo{aspect-ratio:3/4;border-radius:16px}
.gal-item .duo img{transition:filter .6s,mix-blend-mode .6s,transform .8s var(--ease-out)}
.gal-cap{display:block;margin-top:10px;color:var(--mute)}
@media (hover:hover) and (pointer:fine){.gal-item:hover .duo img{transform:scale(1.05)}.gal-item:hover .gal-cap{color:var(--bone)}}

/* ---------- FAQ en Inicio ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px);align-items:start}
.faq-grid > *{min-width:0}
.faq-grid .muted a{color:var(--red-deep);font-weight:600}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}}

/* ---------- CTA final ---------- */
.cta-band .cta-row{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- Detalle plegable en fichas de servicio ---------- */
.eyebrow .hint{font-size:.62rem;letter-spacing:.1em;color:var(--mute);text-transform:none}
.eyebrow .hint::before{display:none}
.incl li{padding:0}
.incl details{padding:14px 0}
.incl summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.incl summary::-webkit-details-marker,.cl-d summary::-webkit-details-marker{display:none}
.incl summary::after,.cl-d summary::after{content:"+";color:var(--red);font-family:var(--f-mono);font-size:1.1rem;line-height:1;transition:transform 200ms var(--ease-out)}
.incl details[open] summary::after,.cl-d[open] summary::after{transform:rotate(45deg)}
.incl details span{display:block;margin-top:6px;color:var(--mute);font-size:.95rem}
.incl li > b{display:block;padding:14px 0}
.cl-d summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center}
.cl-d[open] .hs-8{animation:enter .35s var(--ease-out)}

/* ---------- Botón flotante de WhatsApp ---------- */
.wa-fab{position:fixed;right:clamp(14px,2vw,24px);bottom:clamp(14px,2vw,24px);z-index:80;display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 20px 0 16px;border-radius:999px;background:#1fae5b;color:#fff;text-decoration:none;font-weight:700;font-size:.95rem;box-shadow:0 14px 34px -10px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.08) inset;transition:transform 260ms var(--ease-out),padding .3s var(--ease-out),gap .3s;-webkit-tap-highlight-color:transparent}
.wa-fab .wa-ico{width:26px;height:26px;flex:none}
.wa-fab-t{white-space:nowrap;overflow:hidden;max-width:220px;transition:max-width .35s var(--ease-out),opacity .25s}
.wa-fab::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(31,174,91,.55);animation:waPulse 2.6s ease-out 2s infinite;pointer-events:none}
.wa-fab.is-mini{padding:0 15px;gap:0}
.wa-fab.is-mini .wa-fab-t{max-width:0;opacity:0}
.wa-fab.is-away{transform:translateY(120px)}
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(31,174,91,.55)}70%,100%{box-shadow:0 0 0 16px rgba(31,174,91,0)}}
@media (hover:hover) and (pointer:fine){.wa-fab:hover{transform:translateY(-3px)}.wa-fab.is-mini:hover{padding:0 20px 0 16px;gap:10px}.wa-fab.is-mini:hover .wa-fab-t{max-width:220px;opacity:1}}
@media (max-width:640px){.wa-fab{height:52px}.wa-fab .wa-fab-t{max-width:0;opacity:0}.wa-fab{padding:0 13px;gap:0}}
html.menu-open .wa-fab{transform:translateY(120px)}

/* ---------- Aparición al hacer scroll ---------- */
.js-rv .rv{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-out),transform .8s var(--ease-out);transition-delay:calc(var(--rv,0) * 70ms)}
.js-rv .rv.in{opacity:1;transform:none}
.js-rv .duo.rv-img{clip-path:inset(12% 0 0 0 round 16px);transition:clip-path 1s var(--ease-out)}
.js-rv .duo.rv-img.in{clip-path:inset(0 0 0 0 round 0)}
.js-rv .gal-item .duo.rv-img.in{clip-path:inset(0 0 0 0 round 16px)}

/* ---------- Contacto 1.9 ---------- */
.contact-wa{display:grid;gap:14px;padding:22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,#16261c,var(--ink-2) 70%)}
.contact-wa .who{display:flex;gap:14px;align-items:center}
.contact-wa .who .duo{width:64px;height:64px;border-radius:50%;flex:none}
.contact-wa .who p{max-width:none}
.contact-wa .btn{background:#1fae5b;justify-content:center}
@media (hover:hover) and (pointer:fine){.contact-wa .btn:hover{background:#24c467}}

/* ---------- Página de servicios / sobre mí ---------- */
.about-hero .lede{max-width:40ch}
.strip.strip-5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:820px){.strip.strip-5{grid-template-columns:repeat(3,minmax(0,1fr))}.strip.strip-5 .duo:nth-child(n+4){display:none}}

@media (prefers-reduced-motion:reduce){
  .hx-st,.hx-dot,.hx-typing i,.wa-fab::after,.hx-arch img{animation:none}
  .js-rv .rv{opacity:1;transform:none;transition:none}
  .js-rv .duo.rv-img{clip-path:none}
}
.contact-wa .who .duo img{object-position:50% 12%}

/* ---------- Banner gráfico (sin foto): arco rojo + celular con video ---------- */
.hx-canvas{position:relative;overflow:hidden;display:grid;place-items:center;
  background:
    radial-gradient(circle at 50% 30%,rgba(255,80,90,.55),transparent 55%),
    radial-gradient(rgba(13,10,10,.32) 1.2px,transparent 1.4px) 0 0/10px 10px,
    linear-gradient(170deg,#ff2f3b 0%,var(--red) 45%,#7a0f17 100%)}
.hx-canvas::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-12deg,transparent 0 46px,rgba(13,10,10,.12) 46px 48px);pointer-events:none}
.hx-kanji{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font-family:var(--f-jp);font-weight:900;font-size:clamp(11rem,22vw,19rem);line-height:1;color:rgba(13,10,10,.2);pointer-events:none}
.hx-sun{position:absolute;width:62%;aspect-ratio:1;border-radius:50%;left:50%;top:16%;transform:translateX(-50%);background:radial-gradient(circle at 40% 35%,#ff6a72,var(--red) 60%);box-shadow:0 0 0 1px rgba(255,255,255,.18);opacity:.7}
.hx-phone{position:relative;z-index:1;width:64%;aspect-ratio:9/18.5;margin-top:12%;border-radius:28px;background:#050404;padding:6px;box-shadow:0 30px 60px -20px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.12);transform:rotate(-4deg);animation:phoneIn 1.1s var(--ease-out) both}
.hx-scr{position:relative;height:100%;border-radius:22px;overflow:hidden;background:radial-gradient(120% 70% at 50% 0%,#3a1216,#120c0c 65%);display:flex;flex-direction:column;padding:12px 10px 10px}
.hx-tabs{display:flex;justify-content:center;gap:10px;font-size:.62rem;font-weight:600;color:rgba(255,255,255,.55);max-width:none}
.hx-tabs b{color:#fff;border-bottom:2px solid #fff;padding-bottom:2px}
.hx-hooks{position:relative;flex:1;display:grid;align-items:center}
.hx-hooks p{grid-area:1/1;margin:0;padding:0 6px;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(1.25rem,2.2vw,1.85rem);line-height:.95;color:#fff;text-align:left;opacity:0;animation:hookCycle 9s infinite}
.hx-hooks p:nth-child(2){animation-delay:3s}.hx-hooks p:nth-child(3){animation-delay:6s}
.hx-hooks span{display:block}
.hx-hooks mark{display:inline-block;margin-top:4px;background:var(--red);color:#fff;padding:2px 6px 0;transform:rotate(-2deg)}
@keyframes hookCycle{0%{opacity:0;transform:translateY(12px)}4%,30%{opacity:1;transform:none}34%,100%{opacity:0;transform:translateY(-10px)}}
.hx-side{position:absolute;right:6px;bottom:58px;list-style:none;margin:0;padding:0;display:grid;gap:9px;justify-items:center}
.hx-side li{display:grid;justify-items:center;gap:1px}
.hx-side svg{width:20px;height:20px;fill:#fff}
.hx-side li:first-child svg{fill:var(--red);animation:heart 2.4s ease-in-out infinite}
.hx-side small{font-family:var(--f-mono);font-size:.5rem;color:#fff}
.hx-meta{display:grid;gap:2px;font-size:.62rem;color:#fff;max-width:72%;margin-bottom:8px}
.hx-meta span{color:rgba(255,255,255,.65);font-size:.56rem}
.hx-prog{display:block;height:3px;border-radius:3px;background:rgba(255,255,255,.2);overflow:hidden}
.hx-prog i{display:block;height:100%;background:#fff;transform-origin:left;animation:prog 3s linear infinite}
@keyframes prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes heart{0%,70%,100%{transform:scale(1)}80%{transform:scale(1.25)}}
@keyframes phoneIn{from{opacity:0;transform:translateY(30px) rotate(-10deg)}to{opacity:1;transform:rotate(-4deg)}}
.hx-chart{flex-direction:column;align-items:flex-start;gap:6px}
.hx-bars{display:flex;align-items:flex-end;gap:3px;height:26px;font-style:normal}
.hx-bars i{width:7px;border-radius:2px 2px 0 0;background:var(--red);animation:bar 2.6s var(--ease-out) infinite alternate}
.hx-bars i:nth-child(1){height:30%}.hx-bars i:nth-child(2){height:42%;animation-delay:.1s}.hx-bars i:nth-child(3){height:38%;animation-delay:.2s}.hx-bars i:nth-child(4){height:60%;animation-delay:.3s}.hx-bars i:nth-child(5){height:74%;animation-delay:.4s}.hx-bars i:nth-child(6){height:100%;animation-delay:.5s;background:#fff}
@keyframes bar{from{transform:scaleY(.55);transform-origin:bottom}to{transform:scaleY(1);transform-origin:bottom}}
.st-4{right:-18%;bottom:34%;animation-delay:1.1s,3.2s}
.hx-art .badge{bottom:6%;right:-10%}
@media (max-width:1100px){.st-4{right:-8%}}
@media (max-width:900px){.st-4{right:-16%;bottom:40%}.hx-hooks p{font-size:1.15rem}.hx-phone{border-radius:22px}.hx-scr{border-radius:17px}}
@media (prefers-reduced-motion:reduce){.hx-hooks p{animation:none}.hx-hooks p:first-child{opacity:1}.hx-phone,.hx-prog i,.hx-bars i,.hx-side li:first-child svg{animation:none}}
.hx-phone{width:58%;margin-top:22%}
.hx-hooks p{padding-right:30px}
@media (max-width:900px){.st-4{display:none}.hx-phone{width:62%;margin-top:26%}.hx-hooks p{font-size:1rem}.hx-side svg{width:15px;height:15px}.hx-side{gap:6px;bottom:44px}}

/* ---------- Banner 3D: 激 con volumen + órbita de servicios ---------- */
.h3d{max-width:420px}
.h3d::before{top:46%}
.h3d-scene{position:relative;width:100%;aspect-ratio:1/1.08;container-type:inline-size;perspective:1100px;perspective-origin:50% 38%}
.h3d-rig{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(calc(var(--rx,0) * 1deg)) rotateY(calc(var(--ry,0) * 1deg));transition:transform .6s var(--ease-out)}
.h3d-floor{position:absolute;left:-40%;right:-40%;top:58%;height:120%;transform-origin:50% 0;transform:rotateX(80deg);
  background:linear-gradient(rgba(227,35,47,.55) 1px,transparent 1px) 0 0/100% 9cqw,linear-gradient(90deg,rgba(227,35,47,.55) 1px,transparent 1px) 0 0/9cqw 100%;
  -webkit-mask-image:radial-gradient(closest-side,#000 30%,transparent 100%);mask-image:radial-gradient(closest-side,#000 30%,transparent 100%);animation:floorRun 3s linear infinite}
@keyframes floorRun{to{background-position:0 9cqw,0 0}}
.h3d-glow{position:absolute;left:50%;top:60%;width:80cqw;height:22cqw;margin-left:-40cqw;border-radius:50%;background:radial-gradient(closest-side,rgba(227,35,47,.75),transparent);transform:rotateX(80deg) translateZ(-2cqw);filter:blur(6px)}
.h3d-kanji{position:absolute;left:50%;top:46%;transform-style:preserve-3d;animation:sway 8s ease-in-out infinite alternate}
.h3d-kanji b{position:absolute;left:0;top:0;transform:translate(-50%,-50%) translateZ(calc(var(--z) * -1.1cqw));font-family:var(--f-jp);font-weight:900;font-size:50cqw;line-height:1;color:color-mix(in srgb,#5c0b12 calc(var(--z) * 7%),#b8141f);backface-visibility:visible;user-select:none}
.h3d-kanji b:first-child{color:var(--red);background:linear-gradient(160deg,#ff6a72 0%,var(--red) 45%,#a3121c 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 18px rgba(227,35,47,.45))}
.h3d-kanji b:last-child{color:#2a0609;filter:drop-shadow(0 30px 30px rgba(0,0,0,.6))}
@keyframes sway{from{transform:rotateY(-30deg) rotateX(6deg)}to{transform:rotateY(30deg) rotateX(-4deg)}}
.h3d-ring{position:absolute;left:50%;top:50%;transform-style:preserve-3d;animation:orbit 26s linear infinite}
@keyframes orbit{from{transform:rotateX(-10deg) rotateY(0)}to{transform:rotateX(-10deg) rotateY(-360deg)}}
.h3d-card{position:absolute;width:23cqw;margin:-12cqw 0 0 -11.5cqw;padding:3.4cqw 2cqw 2.6cqw;display:grid;justify-items:center;gap:1.6cqw;border-radius:4cqw;
  background:linear-gradient(160deg,rgba(40,24,24,.92),rgba(13,10,10,.92));border:1px solid rgba(227,35,47,.55);box-shadow:0 0 0 1px rgba(255,255,255,.05) inset,0 16px 30px -12px rgba(0,0,0,.9);
  transform:rotateY(calc(var(--i) * 60deg)) translateZ(45cqw);backface-visibility:hidden}
.h3d-card .svc-ico{width:10cqw;height:10cqw;color:var(--bone)}
.h3d-card em{font-style:normal;font-family:var(--f-mono);font-size:2.6cqw;letter-spacing:.08em;text-transform:uppercase;color:var(--bone);white-space:nowrap}
.h3d .tag{bottom:2%}
@media (max-width:900px){.h3d{max-width:min(320px,82vw)}}
@media (prefers-reduced-motion:reduce){.h3d-kanji,.h3d-ring,.h3d-floor{animation:none}.h3d-kanji{transform:rotateY(-18deg)}}
@media (min-width:901px){.hx-grid:has(.h3d){grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr)}.h3d{max-width:480px}}
.h3d-card{width:26cqw;margin:-13cqw 0 0 -13cqw}
.h3d-card em{font-size:2.8cqw}

/* =====================================================================
   2.0 · Banner «muro de videos»: piezas de contenido en movimiento
   ===================================================================== */
.hv{position:relative;overflow:hidden;padding:clamp(24px,3vw,40px) 0 0;min-height:min(880px,100svh);display:flex;flex-direction:column;isolation:isolate}
.hv::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--ink) 30%,rgba(13,10,10,.75) 48%,rgba(13,10,10,0) 70%),radial-gradient(60% 70% at 20% 55%,rgba(227,35,47,.22),transparent 70%)}
.hv-inner{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;width:100%}
.hv-copy{width:min(640px,52%);display:grid;gap:20px;padding:clamp(12px,3vw,40px) 0 clamp(36px,5vw,64px);margin-block:auto}
.hv .mega{margin:0 !important;font-size:clamp(4rem,14vw,12rem);text-align:left;width:auto}
.hv .mega .ch{animation:rise .9s cubic-bezier(.2,.9,.1,1) both;animation-delay:calc(var(--i) * 55ms)}
.hv .hx-h1{font-size:clamp(2rem,3.6vw,3.4rem)}
.hv .lede{color:#d8d0cd;max-width:40ch}
.hv-cta{display:flex;flex-wrap:wrap;gap:10px}
.hv-cta .btn:first-child{padding:16px 24px;font-size:1rem;box-shadow:0 14px 40px -12px rgba(227,35,47,.7)}
.hv .hx-trust{display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid var(--line);margin:4px 0 0;padding-top:16px}
/* muro */
.hv-wall{position:absolute;z-index:0;top:-4%;bottom:0;right:-4%;width:60%;perspective:1500px;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 82%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 82%,transparent 100%)}
.hv-plane{position:absolute;inset:-30% 0 -30% 4%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;transform-style:preserve-3d;
  transform:rotateX(calc(16deg + var(--rx,0) * 1deg)) rotateY(calc(-20deg + var(--ry,0) * 1deg)) rotateZ(7deg);transition:transform .8s var(--ease-out)}
.hv-col{min-width:0}
.hv-track{display:flex;flex-direction:column;animation:wallUp 48s linear infinite;will-change:transform}
.hv-col-2 .hv-track{animation-name:wallDown;animation-duration:56s}
.hv-col-3 .hv-track{animation-duration:42s}
.hv-wall:hover .hv-track{animation-play-state:paused}
@keyframes wallUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes wallDown{from{transform:translateY(-50%)}to{transform:translateY(0)}}
/* tarjetas */
.wc{position:relative;margin-bottom:18px;border-radius:18px;overflow:hidden;background:linear-gradient(160deg,#211616,#120d0d);border:1px solid #3a2e2e;box-shadow:0 24px 50px -24px rgba(0,0,0,.95);padding:16px;color:var(--bone)}
.wc .mono,.wc-k{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.wc-video{aspect-ratio:9/15;padding:12px;display:flex;flex-direction:column;background:radial-gradient(120% 70% at 50% 0%,#5a1219,#120c0c 70%);border-color:#4a2a2c}
.wc-v2{background:radial-gradient(120% 70% at 30% 10%,#e3232f,#3a0b10 70%)}
.wc-v3{background:radial-gradient(120% 80% at 70% 0%,#2a2a2a,#0d0a0a 70%)}
.wc-tabs{font-size:.6rem;color:rgba(255,255,255,.6);text-align:center}.wc-tabs b{color:#fff}
.wc-hook{margin:auto 0;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(1.1rem,1.7vw,1.6rem);line-height:.95}
.wc-hook mark{background:var(--red);color:#fff;padding:1px 5px 0;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.wc-v2 .wc-hook mark{background:#0d0a0a}
.wc-heart{position:absolute;right:10px;bottom:34px;color:var(--red);font-size:1.1rem;display:grid;justify-items:center;animation:heart 2.4s ease-in-out infinite}
.wc-v2 .wc-heart{color:#fff}
.wc-heart small{font-family:var(--f-mono);font-size:.5rem;color:#fff}
.wc-prog{display:block;height:3px;background:rgba(255,255,255,.2);border-radius:3px;overflow:hidden;margin-top:10px}
.wc-prog i{display:block;height:100%;background:#fff;transform-origin:left;animation:prog 4s linear infinite}
.wc-img{padding:0;aspect-ratio:4/3}
.wc-img img{width:100%;height:100%;object-fit:cover;object-position:0 0;display:block}
.wc-lab{position:absolute;left:10px;bottom:10px;background:var(--bone);color:var(--ink);font-family:var(--f-mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:999px}
.wc-chat{display:grid;gap:8px}
.wc-chat p{margin:0;font-size:.78rem;padding:8px 11px;border-radius:12px;max-width:85%;line-height:1.3}
.wc-chat .in{background:#2a1f1f}.wc-chat .out{background:#1fae5b;color:#fff;justify-self:end}
.wc-chat .typing{display:flex;gap:4px;width:max-content}.wc-chat .typing i{width:5px;height:5px;border-radius:50%;background:var(--bone);animation:typing 1.2s ease-in-out infinite}.wc-chat .typing i:nth-child(2){animation-delay:.15s}.wc-chat .typing i:nth-child(3){animation-delay:.3s}
.wc-stats{display:grid;gap:10px}
.wc-up{position:absolute;right:16px;top:12px;color:var(--red)}
.wc-bars{display:flex;align-items:flex-end;gap:5px;height:70px}
.wc-bars i{flex:1;border-radius:4px 4px 0 0;background:var(--red);transform-origin:bottom;animation:bar 2.4s var(--ease-out) infinite alternate}
.wc-bars i:nth-child(1){height:22%}.wc-bars i:nth-child(2){height:30%;animation-delay:.1s}.wc-bars i:nth-child(3){height:28%;animation-delay:.2s}.wc-bars i:nth-child(4){height:46%;animation-delay:.3s}.wc-bars i:nth-child(5){height:58%;animation-delay:.4s}.wc-bars i:nth-child(6){height:76%;animation-delay:.5s}.wc-bars i:nth-child(7){height:100%;animation-delay:.6s;background:var(--bone)}
.wc-prompt{display:grid;gap:8px;font-family:var(--f-mono);font-size:.7rem}
.wc-prompt p{margin:0}.wc-prompt b{color:var(--red);font-weight:600}
.wc-caret{color:var(--mute)}.wc-caret i{font-style:normal;color:var(--red);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.wc-seo{display:grid;gap:9px}
.wc-search{border:1px solid var(--red);border-radius:999px;padding:8px 12px;font-size:.72rem}
.wc-res{height:9px;border-radius:5px;background:#2c2323}.wc-res.hi{background:var(--red);width:78%;animation:grow 3s var(--ease-out) infinite alternate}.wc-res.s{width:60%}
@keyframes grow{from{width:40%}to{width:86%}}
.wc-kanji{aspect-ratio:1;display:grid;place-items:center;align-content:center;gap:6px;background:linear-gradient(160deg,#ff2f3b,#9e1620);border-color:#ff4a54}
.wc-kanji b{font-family:var(--f-jp);font-weight:900;font-size:clamp(4rem,7vw,6.5rem);line-height:1;color:#0d0a0a}
.wc-kanji .mono{color:#fff}
/* franja de herramientas */
.hv-ticker{position:relative;z-index:2;border-top:1px solid var(--line);background:rgba(13,10,10,.85);overflow:hidden;padding-block:14px}
.hv-ticker .track{display:flex;width:max-content;animation:mq 30s linear infinite}
.hv-ticker span{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);padding-inline:1.6em;white-space:nowrap}
.hv-ticker span::before{content:"✦";color:var(--red);margin-right:1.6em}
@media (max-width:900px){
  .hv{min-height:0}
  .hv::before{background:linear-gradient(180deg,var(--ink) 0,rgba(13,10,10,0) 30%,rgba(13,10,10,0) 70%,var(--ink) 100%)}
  .hv-copy{width:100%;padding-bottom:8px}
  .hv-wall{position:relative;order:2;top:auto;right:auto;width:auto;height:340px;margin:8px -16px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
  .hv-plane{inset:-40% 2% -40% 2%;gap:12px;transform:rotateX(20deg) rotateZ(-6deg)}
  .wc{margin-bottom:12px;border-radius:14px;padding:12px}
  .hv-cta .btn{flex:1 1 200px;justify-content:center}
  .hv .hx-trust{display:grid}
}
@media (prefers-reduced-motion:reduce){.hv-track,.wc-prog i,.wc-bars i,.wc-res.hi,.wc-heart,.hv-ticker .track{animation:none}}

/* ---------- 2.0 · Tarjetas con imagen ---------- */
.svc-card.has-img{padding-top:0;min-height:0}
.sc-img{display:block;margin:0 -22px 4px;aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--line);background:#0b0808;position:relative}
.sc-img img{width:100%;height:100%;object-fit:cover;object-position:0 0;transition:transform 1.2s var(--ease-out),object-position 3s ease}
.sc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(13,10,10,.85))}
.svc-card.has-img .svc-ico{position:absolute;top:12px;right:12px;width:40px;height:40px;padding:8px;border-radius:12px;background:rgba(13,10,10,.85);z-index:1}
.svc-card.has-img .sc-top{margin-top:6px}
.svc-card.has-img .sc-go{top:auto}
@media (hover:hover) and (pointer:fine){.svc-card.has-img:hover .sc-img img{transform:scale(1.06);object-position:0 100%}}
@media (max-width:560px){.sc-img{margin:0 -16px 2px}.svc-card.has-img .svc-ico{width:32px;height:32px;padding:6px;top:8px;right:8px}}
.card.has-cover{padding-top:0;overflow:hidden}
.card-img{display:block;margin:0 -24px 0;aspect-ratio:1200/630;overflow:hidden;border-bottom:1px solid var(--line)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.card.has-cover:hover .card-img img{transform:scale(1.05)}}
.guide-cover{margin:22px 0 8px;border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.guide-cover img{width:100%;height:auto;display:block}
.paper .sprint-lab{margin-top:clamp(36px,5vw,56px);margin-bottom:14px}
.paper .sprint-bar{border-color:#b9bebd;background:#e6e9e8}
.paper .sb-m{border-color:#b9bebd}
.paper .sb-m:last-child{background:linear-gradient(160deg,#f7d5d7,transparent)}
.paper .sb-k{color:#5d5553}
.hv .hero-top{width:min(640px,52%);margin-bottom:0}
.hv .hero-top .mono{display:none}
@media (max-width:900px){.hv .hero-top{width:100%}}
@media (max-width:900px){.hv-ticker{order:3}}

/* =====================================================================
   2.1 · Ejemplos visuales de servicios: animaciones de la marca
   ===================================================================== */
.mg{margin:0;border:1px solid var(--line);border-radius:20px;background:radial-gradient(120% 80% at 100% 0%,rgba(227,35,47,.16),transparent 55%),var(--ink-2);padding:clamp(16px,2vw,22px);display:grid;gap:14px;min-width:0;overflow:hidden}
.mg-stage{position:relative;min-height:330px;display:grid;align-items:center;min-width:0}
.mg-cap{display:grid;gap:6px;border-top:1px solid var(--line);padding-top:12px}
.mg-cap .muted{font-size:.88rem;max-width:none}
.mg .mono{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.mg mark{background:var(--red);color:#fff;padding:1px 5px 0}

/* contenido */
.mgc{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:16px;align-items:center}
.mg-phone{aspect-ratio:9/17;border-radius:24px;background:#050404;padding:5px;box-shadow:0 24px 50px -20px #000;transform:rotate(-3deg)}
.mg-scr{position:relative;height:100%;border-radius:19px;overflow:hidden;background:radial-gradient(120% 70% at 50% 0%,#5a1219,#120c0c 70%);display:flex;flex-direction:column;padding:10px}
.mg-tabs{font-size:.56rem;color:rgba(255,255,255,.6);text-align:center}.mg-tabs b{color:#fff}
.mg-hooks{flex:1;display:grid;align-items:center}
.mg-hooks p{grid-area:1/1;margin:0;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(1rem,1.7vw,1.35rem);line-height:.95;color:#fff;opacity:0;animation:mgHook 8s infinite}
.mg-hooks p:nth-child(2){animation-delay:2s}.mg-hooks p:nth-child(3){animation-delay:4s}.mg-hooks p:nth-child(4){animation-delay:6s}
@keyframes mgHook{0%{opacity:0;transform:translateY(10px)}5%,22%{opacity:1;transform:none}27%,100%{opacity:0;transform:translateY(-8px)}}
.mg-side{position:absolute;right:8px;bottom:40px;display:grid;gap:8px;color:#fff;font-style:normal;font-size:.9rem;text-align:center}
.mg-side i{font-style:normal}.mg-side i:first-child{color:var(--red);animation:heart 2s ease-in-out infinite}
.mg-user{font-size:.52rem;color:rgba(255,255,255,.75);margin-bottom:6px}
.mg-prog{display:block;height:3px;border-radius:3px;background:rgba(255,255,255,.2);overflow:hidden}
.mg-prog i{display:block;height:100%;background:#fff;transform-origin:left;animation:prog 8s linear infinite}
.mgc-script{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mgc-script li{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#140f0f;overflow:hidden;animation:mgRow 8s infinite;animation-delay:var(--d)}
.mgc-script b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 74;text-transform:uppercase;font-size:1.05rem}
.mgc-script span{font-family:var(--f-mono);font-size:.6rem;color:var(--mute)}
.mgc-script i{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--red);transform-origin:left;transform:scaleX(0);animation:mgFill 8s infinite;animation-delay:var(--d)}
@keyframes mgRow{0%,25%{border-color:var(--red);background:#2a1214}26%,100%{border-color:var(--line);background:#140f0f}}
@keyframes mgFill{0%{transform:scaleX(0)}25%{transform:scaleX(1)}26%,100%{transform:scaleX(0)}}
.mgc-seo{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0;max-width:none}
.mgc-seo span{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--bone);animation:mgChip 4s infinite;animation-delay:var(--d)}
@keyframes mgChip{0%,10%{border-color:var(--line);color:var(--mute)}20%,70%{border-color:var(--red);color:var(--bone)}100%{border-color:var(--line);color:var(--mute)}}

/* asesoría */
.mgk{display:grid;gap:22px}
.mgk-head{display:flex;gap:12px;align-items:center}
.mgk-k{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--red);font-family:var(--f-jp);font-weight:900;font-size:1.4rem;color:#fff}
.mgk-head p{display:grid;gap:2px;margin:0}.mgk-head b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 74;text-transform:uppercase;font-size:1.1rem}
.mgk-track{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr)}
.mgk-line{position:absolute;left:10%;right:10%;top:19px;height:2px;background:var(--line)}
.mgk-line i{display:block;height:100%;background:var(--red);transform-origin:left;animation:mgLine 10s infinite}
@keyframes mgLine{0%{transform:scaleX(0)}80%,96%{transform:scaleX(1)}100%{transform:scaleX(0)}}
.mgk-track li{position:relative;display:grid;justify-items:center;gap:8px}
.mgk-track b{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--ink);font-family:var(--f-mono);font-size:.8rem;animation:mgNode 10s infinite;animation-delay:calc(var(--i) * 2s)}
.mgk-track span{font-family:var(--f-mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
@keyframes mgNode{0%{background:var(--ink);border-color:var(--line);transform:none}4%,18%{background:var(--red);border-color:var(--red);transform:scale(1.12)}22%,96%{background:#3a1215;border-color:var(--red);transform:none}100%{background:var(--ink);border-color:var(--line)}}
.mgk-out{position:relative;min-height:96px;border:1px solid var(--line);border-radius:14px;background:#140f0f}
.mgk-out p{position:absolute;inset:0;margin:0;padding:18px;display:grid;gap:6px;align-content:center;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;text-transform:uppercase;font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1;opacity:0;animation:mgOut 10s infinite;animation-delay:calc(var(--i) * 2s)}
.mgk-out small{font-family:var(--f-mono);font-weight:400;font-size:.6rem;letter-spacing:.1em;color:var(--red)}
@keyframes mgOut{0%{opacity:0;transform:translateY(8px)}3%,18%{opacity:1;transform:none}21%,100%{opacity:0;transform:translateY(-6px)}}

/* web */
.mgw{display:grid;gap:12px}
.mgw-bar{display:flex;gap:10px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:#1b1414}
.mgw-dots{display:flex;gap:5px}.mgw-dots i{width:8px;height:8px;border-radius:50%;background:#3a2e2e}.mgw-dots i:first-child{background:var(--red)}
.mgw-url{flex:1;font-family:var(--f-mono);font-size:.62rem;color:var(--mute);background:var(--ink);border-radius:999px;padding:4px 10px}
.mgw-page{position:relative;margin-top:-12px;border:1px solid var(--line);border-radius:0 0 12px 12px;background:var(--ink);padding:12px;display:grid;gap:12px;overflow:hidden}
.mgw-nav{display:flex;align-items:center;gap:10px;animation:mgBuild 9s infinite both}
.mgw-nav b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;font-size:.8rem;margin-right:auto}
.mgw-nav span{width:30px;height:6px;border-radius:3px;background:#2c2323}
.mgw-nav em{font-style:normal;font-size:.55rem;font-weight:700;background:var(--red);color:#fff;border-radius:999px;padding:4px 8px}
.mgw-hero{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;align-items:center}
.mgw-txt{display:grid;gap:7px;animation:mgBuild 9s infinite both;animation-delay:.3s}
.mgw-txt i{height:14px;border-radius:4px;background:var(--bone)}.mgw-txt .w1{width:92%}.mgw-txt .w2{width:70%;background:var(--red)}.mgw-txt .w3{width:50%;height:6px;background:#3a2e2e}
.mgw-btn{justify-self:start;margin-top:4px;font-size:.6rem;font-weight:700;background:var(--red);color:#fff;padding:7px 12px;border-radius:999px;animation:mgClick 9s infinite}
/* foto en arco de la marca (torii) con etiqueta flotante */
.mgw-arch{position:relative;aspect-ratio:4/5;border-radius:999px 999px 12px 12px;overflow:hidden;background:#1b1414;box-shadow:0 18px 30px -18px rgba(0,0,0,.9);animation:mgBuild 9s infinite both;animation-delay:.6s}
.mgw-arch picture,.mgw-arch img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.mgw-arch::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(13,10,10,.7));pointer-events:none}
.mgw-pop{position:absolute;z-index:1;right:10px;bottom:10px;font-family:var(--f-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;background:var(--red);color:#fff;border-radius:999px;padding:5px 9px;animation:mgPop 9s infinite both;animation-delay:2.2s}
.mgw-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mgw-card{display:grid;gap:4px;align-content:start;padding:10px 10px 12px;background:#1b1414;animation:mgBuild 9s infinite both}
.mgw-card:nth-child(1){animation-delay:.9s}.mgw-card:nth-child(2){animation-delay:1.1s}.mgw-card:nth-child(3){animation-delay:1.3s}
.mgw-card small{font-family:var(--f-mono);font-size:.5rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}
.mgw-card b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;font-size:.8rem;color:var(--bone);margin-bottom:6px}
.mgw-card.sh-notch{clip-path:polygon(14% 0,100% 0,100% 86%,86% 100%,0 100%,0 14%)}
.mgw-card.sh-cut{clip-path:polygon(0 9%,100% 0,100% 91%,0 100%)}
.mgw-card.sh-arch{border-radius:999px 999px 10px 10px;padding-top:16px}
.mgw-meter{display:block;height:4px;border-radius:2px;background:#2c2323;overflow:hidden}
.mgw-meter i{display:block;height:100%;width:var(--v,100%);background:var(--red);transform-origin:left;animation:mgMeter 9s infinite}
.mgw-cursor{position:absolute;width:14px;height:14px;left:80%;top:85%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1l11 7-5 1-2 5z' fill='%23fff' stroke='%230d0a0a'/%3E%3C/svg%3E") center/contain no-repeat;animation:mgCursor 9s infinite}
@keyframes mgCursor{0%,20%{left:80%;top:85%}40%,55%{left:16%;top:56%}75%,100%{left:80%;top:85%}}
@keyframes mgClick{0%,44%{transform:none;box-shadow:0 0 0 0 rgba(227,35,47,.6)}47%{transform:scale(.92)}52%{transform:none;box-shadow:0 0 0 12px rgba(227,35,47,0)}100%{box-shadow:none}}
.mgw-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;max-width:none}
.mgw-chips span{font-family:var(--f-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);border-radius:999px;padding:6px 10px;animation:mgPop 9s infinite both}
.mgw-chips span:nth-child(1){animation-delay:2s}.mgw-chips span:nth-child(2){animation-delay:2.4s}.mgw-chips span:nth-child(3){animation-delay:2.8s}.mgw-chips span:nth-child(4){animation-delay:3.2s}
@keyframes mgPop{0%{opacity:0;transform:scale(.8)}6%,85%{opacity:1;transform:none;border-color:var(--red)}100%{opacity:0}}

/* crm */
.mgr{display:grid;grid-template-columns:auto 50px minmax(0,1fr);gap:8px;align-items:center}
.mgr-src{display:grid;gap:12px}
.chn{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;border-radius:8px;padding:6px 8px;background:#1b1414;border:1px solid var(--line);text-align:center}
.chn-wa{color:#4fd68a}.chn-ig{color:#ff7a9a}.chn-web{color:var(--bone)}
.mgr-flow{position:relative;height:120px;display:grid;align-content:space-between}
.mgr-flow i{position:relative;height:2px;background:var(--line);overflow:hidden}
.mgr-flow i::after{content:"";position:absolute;top:0;left:-30%;width:30%;height:100%;background:var(--red);animation:mgFlow 1.6s linear infinite}
.mgr-flow i:nth-child(2)::after{animation-delay:.5s}.mgr-flow i:nth-child(3)::after{animation-delay:1s}
@keyframes mgFlow{to{left:100%}}
.mgr-box{border:1px solid var(--line);border-radius:14px;background:#140f0f;overflow:hidden}
.mgr-h{display:flex;justify-content:space-between;align-items:center;margin:0;padding:10px 12px;border-bottom:1px solid var(--line);max-width:none}
.mgr-h b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 74;text-transform:uppercase}
.mgr-box ul{list-style:none;margin:0;padding:0}
.mgr-box li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);animation:mgIn 8s infinite both;animation-delay:calc(var(--i) * .6s)}
.mgr-box li:last-child{border-bottom:0}
.mgr-box li p{margin:0;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgr-box .chn{padding:3px 5px;font-size:.52rem}
.mst{font-style:normal;font-family:var(--f-mono);font-size:.55rem;text-transform:uppercase;border-radius:999px;padding:3px 7px;border:1px solid var(--red);color:var(--red);animation:mgSt 8s infinite;animation-delay:calc(var(--i) * .6s + 2s)}
@keyframes mgIn{0%{opacity:0;transform:translateX(-14px)}6%,92%{opacity:1;transform:none}100%{opacity:0}}
@keyframes mgSt{0%,30%{background:transparent;color:var(--red)}40%,90%{background:var(--red);color:#fff}100%{background:transparent}}

/* prompt */
.mgp{display:grid;gap:14px}
.mgp-term{border:1px solid var(--line);border-radius:14px;background:#0a0707;padding:12px 14px;display:grid;gap:9px;font-family:var(--f-mono);font-size:.72rem}
.mgp-top{display:flex;gap:5px;align-items:center;margin-bottom:4px}.mgp-top i{width:8px;height:8px;border-radius:50%;background:#3a2e2e}.mgp-top em{font-style:normal;margin-left:8px;color:var(--mute);font-size:.6rem}
.mgp-term p{margin:0;display:grid;gap:2px;max-width:none;opacity:.15;animation:mgLineIn 10s infinite;animation-delay:calc(var(--i) * 1.4s)}
.mgp-term b{color:var(--red);font-weight:600;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase}
.mgp-term span{overflow:hidden;white-space:nowrap;clip-path:inset(0 100% 0 0);animation:mgType 10s steps(30) infinite;animation-delay:calc(var(--i) * 1.4s)}
@keyframes mgLineIn{0%{opacity:.15}4%,92%{opacity:1}100%{opacity:.15}}
@keyframes mgType{0%{clip-path:inset(0 100% 0 0)}10%,92%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 100% 0 0)}}
.mgp-meter{display:grid;gap:6px}
.mgp-bar{display:block;height:8px;border-radius:999px;background:#2c2323;overflow:hidden}
.mgp-bar i{display:block;height:100%;background:linear-gradient(90deg,#5a1a1f,var(--red));transform-origin:left;animation:mgMeter 10s infinite}
@keyframes mgMeter{0%{transform:scaleX(.08)}75%,92%{transform:scaleX(1)}100%{transform:scaleX(.08)}}
.mgp-lv{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:.58rem;text-transform:uppercase;color:var(--mute)}
.mgp-lv em{font-style:normal}.mgp-lv em:last-child{color:var(--red)}

/* agente */
.mga{display:grid;gap:10px;border:1px solid var(--line);border-radius:14px;background:#140f0f;overflow:hidden}
.mga-h{display:flex;align-items:center;gap:10px;margin:0;padding:10px 12px;border-bottom:1px solid var(--line);max-width:none}
.mga-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--red);font-family:var(--f-mono);font-size:.62rem;font-weight:600}
.mga-h b{font-size:.85rem}.mga-h em{font-style:normal;font-size:.62rem;color:#4fd68a;margin-left:auto}
.mga-chat{display:flex;flex-direction:column;gap:8px;padding:4px 12px;min-height:210px}
.mga-chat p{margin:0;font-size:.8rem;line-height:1.35;padding:9px 12px;border-radius:14px;max-width:82%;opacity:0;animation:mgMsg 12s infinite both}
.mga-chat .u{align-self:flex-end;background:var(--red);color:#fff;border-bottom-right-radius:4px}
.mga-chat .a{align-self:flex-start;background:#2a1f1f;border-bottom-left-radius:4px}
.mga-chat .typing{display:flex;gap:4px;align-self:flex-start;background:#2a1f1f;padding:11px 12px}
.mga-chat .typing i{width:5px;height:5px;border-radius:50%;background:var(--mute);animation:typing 1s ease-in-out infinite}
.mga-chat .m1{animation-delay:.2s}.mga-chat .m2{animation-delay:2.4s}.mga-chat .m3{animation-delay:4.4s}.mga-chat .m4{animation-delay:6.6s}
.mga-chat .t1{animation-name:mgTyping;animation-delay:1s}.mga-chat .t2{animation-name:mgTyping;animation-delay:5.2s}
@keyframes mgMsg{0%{opacity:0;transform:translateY(8px)}3%,88%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes mgTyping{0%{opacity:0;max-height:0;padding-block:0}2%,10%{opacity:1;max-height:40px;padding-block:11px}12%,100%{opacity:0;max-height:0;padding-block:0;margin-top:-8px}}
.mga-src{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0;padding:10px 12px;border-top:1px dashed var(--line);max-width:none}
.mga-src em{font-style:normal;font-family:var(--f-mono);font-size:.58rem;border:1px solid var(--line);border-radius:6px;padding:3px 7px;animation:mgChip 4s infinite}
.mga-src em:nth-child(3){animation-delay:1.3s}.mga-src em:nth-child(4){animation-delay:2.6s}

@media (max-width:560px){.mgc{grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:10px}.mgc-script li{padding:9px 10px}.mgc-script b{font-size:.85rem}.mgk-track span{font-size:.5rem}.mgr{grid-template-columns:1fr}.mgr-src{grid-template-columns:repeat(3,1fr)}.mgr-flow{display:none}}
@media (prefers-reduced-motion:reduce){.mg *{animation:none!important}.mg-hooks p:first-child,.mgk-out p:first-child,.mga-chat p:not(.typing),.mgp-term p,.mgr-box li,.mgw-chips span,.mgw-nav,.mgw-txt,.mgw-arch,.mgw-pop,.mgw-card{opacity:1}.mgw-meter i{transform:none}.mgp-term span{clip-path:none}}
.form-msg.is-ok{border-color:#1fae5b;background:rgba(31,174,91,.08)}
#contactForm .hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
#contactForm label small{color:var(--mute);font-weight:400;text-transform:none;letter-spacing:0}
.form-legal{font-size:.78rem}
#contactForm button[disabled]{opacity:.7;cursor:progress}

/* ---------- 2.1 · Sobre nosotros ---------- */
.about-us{align-items:center}
.about-us .def{max-width:46ch}
.about-mark{position:relative;aspect-ratio:1;max-width:460px;width:100%;justify-self:center;border-radius:28px;overflow:hidden;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 35%,rgba(255,80,90,.5),transparent 60%),radial-gradient(rgba(13,10,10,.3) 1.2px,transparent 1.4px) 0 0/10px 10px,linear-gradient(160deg,#ff2f3b,var(--red) 45%,#6e0d15)}
.am-k{font-family:var(--f-jp);font-weight:900;font-size:clamp(9rem,20vw,16rem);line-height:1;color:var(--ink);text-shadow:0 30px 60px rgba(0,0,0,.35);animation:amFloat 6s ease-in-out infinite}
@keyframes amFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}
.about-mark .badge{right:6%;top:6%;bottom:auto;width:clamp(84px,9vw,118px)}
.am-pills{position:absolute;left:6%;bottom:6%;list-style:none;margin:0;padding:0;display:grid;gap:6px}
.am-pills li{justify-self:start;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(13,10,10,.85);color:var(--bone);padding:7px 11px;border-radius:999px;animation:stIn .7s var(--ease-out) both;animation-delay:calc(.4s + var(--i) * .15s)}
.us-stats{padding-block:0 clamp(56px,7vw,96px)}
.us-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.us-item{display:grid;gap:8px;align-content:start;margin:0;max-width:none;padding:22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,var(--ink-2),var(--ink));color:var(--mute);font-size:.92rem}
.us-item b{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 62;font-size:2.6rem;line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--red)}
.us-item span{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 74;text-transform:uppercase;font-size:1.3rem;line-height:1;color:var(--bone)}
@media (max-width:980px){.us-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.us-grid{grid-template-columns:1fr}}
.us-what{border-top:1px solid var(--line)}
.contact-wa .who .wa-av{width:56px;height:56px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--red);font-family:var(--f-jp);font-weight:900;font-size:1.6rem;color:#fff;margin:0}

/* =====================================================================
   2.3 · Manifiesto en tres actos (se fija en pantalla y avanza con el scroll)
   --a: el pico · --b: la coherencia · --c: la marca (0 → 1). Sin JS: todo en 1.
   ===================================================================== */
.mx{--a:1;--b:1;--c:1;position:relative;background:#cf1c27;color:#fff;isolation:isolate}
.mx-pin{position:relative;overflow:hidden;padding-top:clamp(56px,7vw,96px);display:flex;flex-direction:column}
.mx.is-live{height:300vh}
.mx.is-live .mx-pin{position:sticky;top:0;height:100vh;height:100svh;padding-top:clamp(70px,9vh,110px)}
.mx-pin::before{content:"激";position:absolute;right:-6%;top:-14%;font-family:var(--f-jp);font-weight:900;font-size:clamp(18rem,44vw,42rem);line-height:1;color:rgba(13,10,10,.09);z-index:-1;pointer-events:none;transform:rotate(calc(var(--b) * -8deg)) scale(calc(.9 + var(--c) * .15))}
.mx-pin::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(rgba(13,10,10,.18) 1.2px,transparent 1.4px) 0 0/12px 12px;-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000);mask-image:linear-gradient(90deg,transparent 35%,#000)}
.mx-grid{flex:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);align-items:center;width:100%}
.mx-grid > *{min-width:0}
.mx-copy{display:grid;gap:clamp(18px,2.4vh,30px)}
.mx .mx-eb{color:#fff}
.mx-h{font-size:clamp(2.6rem,6.2vw,6rem);line-height:.88}
.mx-h .w{display:inline-block;color:transparent;-webkit-text-stroke:1.5px rgba(13,10,10,.55);transition:color .35s ease,-webkit-text-stroke-color .35s ease,transform .5s var(--ease-out);transform:translateY(.08em)}
.mx-h .wa.on{color:var(--ink);-webkit-text-stroke-color:var(--ink);transform:none}
.mx-h .wb{-webkit-text-stroke-color:rgba(255,255,255,.55)}
.mx-h .wb.on{color:#fff;-webkit-text-stroke-color:#fff;transform:none}
.mx-h .mk{position:relative}
.mx-h .mk::before{content:"";position:absolute;inset:.06em -.06em -.02em;background:var(--ink);z-index:-1;transform:scaleX(var(--c));transform-origin:left}
.mx-l1{position:relative;display:inline}
.mx-l1::after{content:"";position:absolute;left:0;right:0;top:52%;height:.09em;background:#fff;transform:scaleX(var(--b)) rotate(-2deg);transform-origin:left;pointer-events:none}
.mx:not(.is-live) .mx-l1::after{display:none}
.mx:not(.is-live) .mx-h .w{color:var(--ink);-webkit-text-stroke:0;transform:none}
.mx:not(.is-live) .mx-h .wb{color:#fff}
/* pasos */
.mx-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:520px}
.mx-steps li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid rgba(255,255,255,.28);opacity:.45;transition:opacity .4s ease}
.mx-steps li.on{opacity:1}
.mx-steps b{font-family:var(--f-mono);font-size:.72rem;color:var(--ink)}
.mx-steps span{font-size:1rem;color:#fff}
.mx-steps strong{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 74;text-transform:uppercase;letter-spacing:.01em}
.mx:not(.is-live) .mx-steps li{opacity:1}
.mx-cta{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.mx-link{color:#fff;font-weight:700;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.5);padding-bottom:2px}
.mx-link:hover{border-color:#fff}
/* escenario */
.mx-stage{position:relative;height:min(64vh,560px);perspective:1200px}
.mx-viral{position:absolute;left:50%;top:50%;width:min(56%,250px);transform:translate(-50%,-50%) translateY(calc(var(--b) * 46vh)) rotate(calc(-6deg + var(--b) * -24deg)) scale(calc(.82 + var(--a) * .18 - var(--b) * .2));opacity:calc(1 - var(--b));filter:grayscale(calc(var(--b) * 100%));z-index:3}
.mx-vid{aspect-ratio:9/16;border-radius:26px;background:radial-gradient(120% 70% at 50% 0%,#ff3b47,#2a0609 72%);border:6px solid #050404;box-shadow:0 40px 80px -24px rgba(0,0,0,.8);display:flex;flex-direction:column;padding:14px;position:relative;overflow:hidden}
.mx-live{font-family:var(--f-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(13,10,10,.5);border-radius:999px;padding:4px 8px;justify-self:start;align-self:flex-start;animation:blink 1.2s steps(1) infinite}
.mx-hook{margin:auto 0;font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:.92;color:#fff}
.mx-hook mark{background:#fff;color:var(--red);padding:0 6px}
.mx-views{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 70;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1;color:#fff}
.mx-views b{font-weight:900}
.mx-subs{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.06em;color:rgba(255,255,255,.75);margin:6px 0 10px}
.mx-prog{height:3px;border-radius:3px;background:rgba(255,255,255,.25);overflow:hidden}
.mx-prog i{display:block;height:100%;background:#fff;transform-origin:left;transform:scaleX(var(--a))}
.mx-tag{position:absolute;right:-18%;top:12%;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:#fff;padding:7px 11px;border-radius:999px;transform:rotate(6deg);white-space:nowrap}
/* perfil */
.mx-profile{position:absolute;inset:0;display:grid;align-content:center;gap:14px;opacity:calc(var(--b) * 1.4 - .2);z-index:2}
.mx-ph{display:flex;align-items:center;gap:12px;opacity:var(--c);transform:translateY(calc((1 - var(--c)) * 16px))}
.mx-av{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--red);font-family:var(--f-jp);font-weight:900;font-size:1.7rem;box-shadow:0 0 0 3px #fff,0 0 0 calc(3px + var(--c) * 6px) rgba(13,10,10,.35)}
.mx-ph p{display:grid;gap:2px;margin:0;max-width:none}
.mx-ph b{font-size:1.05rem}
.mx-ph span{font-size:.85rem;color:rgba(255,255,255,.85)}
.mx-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;transform-style:preserve-3d}
.tl{position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden;display:grid;align-content:end;padding:10px;box-shadow:0 18px 30px -16px rgba(0,0,0,.7);
  transform:translate(calc(var(--x) * 1px * (1 - var(--b))),calc(var(--y) * 1px * (1 - var(--b)))) rotate(calc(var(--r) * 1deg * (1 - var(--b)))) scale(calc(.7 + var(--b) * .3));will-change:transform}
.tl span{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 68;text-transform:uppercase;font-size:clamp(.72rem,1.15vw,1rem);line-height:.95}
.tl b{color:var(--red)}
.tl-play{position:absolute;top:8px;right:8px;font-style:normal;font-size:.55rem;opacity:.8}
.tl-r{background:linear-gradient(160deg,#1a0b0c,#0d0a0a);color:#fff;border:1px solid #3a1a1d}
.tl-r2{background:#fff;color:var(--ink)}.tl-r2 b{color:var(--red)}
.tl-b{background:var(--ink);color:#fff}
.tl-k{background:var(--ink);place-items:center;align-content:center}
.tl-k span{font-family:var(--f-jp);font-size:clamp(2rem,3.6vw,3.2rem);color:var(--red)}
.tl-k2{background:#f4f1ee;color:var(--ink)}
.mx-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;max-width:none;opacity:var(--c)}
.mx-chips span{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:#fff;border-radius:999px;padding:6px 10px}
.mx-note{position:absolute;right:0;bottom:-6px;margin:0;color:rgba(255,255,255,.7)}
.mx:not(.is-live) .mx-viral{display:none}
/* franja */
.mx-ticker{margin-top:clamp(28px,4vh,56px);background:var(--ink);overflow:hidden;padding-block:14px}
.mx-ticker .track{display:flex;width:max-content;animation:mq 34s linear infinite}
.mx-ticker span{font-family:var(--f-display);font-weight:900;font-variation-settings:"wdth" 66;text-transform:uppercase;font-size:clamp(1.4rem,3vw,2.4rem);line-height:1;padding-inline:.6em;white-space:nowrap;color:var(--bone)}
.mx-ticker span:nth-child(3n+2){color:transparent;-webkit-text-stroke:1.2px var(--red)}
.mx-ticker span::after{content:"✦";color:var(--red);margin-left:1.2em;-webkit-text-stroke:0}
/* celular */
@media (max-width:900px){
  .mx.is-live{height:260vh}
  .mx.is-live .mx-pin{padding-top:76px}
  .mx-grid{grid-template-columns:1fr;align-content:start;gap:14px}
  .mx-h{font-size:clamp(2rem,9vw,3rem)}
  .mx-steps{display:none}
  .mx-cta .btn{padding:12px 18px}
  .mx-stage{height:min(46vh,420px);width:min(100%,360px);justify-self:center}
  .mx-tag{right:-8%}
  .mx-ticker{margin-top:auto}
  .mx:not(.is-live) .mx-steps{display:grid}
}
@media (prefers-reduced-motion:reduce){.mx-ticker .track,.mx-live{animation:none}}
/* ajustes 2.3 */
.mx-l1::after{display:none}
.mx-h .wa{position:relative}
.mx-h .wa:nth-child(n+4)::after{content:"";position:absolute;left:-.04em;right:-.04em;top:50%;height:.09em;background:#fff;transform:scaleX(var(--b)) rotate(-3deg);transform-origin:left;pointer-events:none}
.mx:not(.is-live) .mx-h .wa::after{display:none}
.mx-h .mk::before{display:none}
.mx-h .mk{background:linear-gradient(var(--ink),var(--ink)) no-repeat left center/calc(var(--c) * 100%) 92%;padding-inline:.06em;margin-inline:-.03em}
.mx-profile{justify-items:center;align-content:center}
.mx-ph,.mx-chips{width:min(100%,46vh,440px)}
.mx-tiles{width:min(100%,46vh,440px)}
.tl{aspect-ratio:1;padding:8px}
@media (max-width:900px){
  .mx-stage{height:min(50vh,430px)}
  .mx-ph,.mx-chips,.mx-tiles{width:min(100%,34vh,330px)}
  .mx-av{width:40px;height:40px;font-size:1.2rem}
  .mx-ph span{display:none}
  .tl span{font-size:.62rem}
  .tl-k span{font-size:1.8rem}
  .mx-copy{gap:12px}
}

/* =====================================================================
   2.4 · Fotos reales en banner, galería y manifiesto
   ===================================================================== */
/* banner: reels con foto */
.wc-reel{position:relative;padding:12px;background:#000;isolation:isolate}
.wc-reel picture img,.wc-photo picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.wc-reel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.35) 0,transparent 30%,transparent 45%,rgba(0,0,0,.85) 100%)}
.wc-reel .wc-hook{margin-top:auto;margin-bottom:8px;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.wc-reel .wc-heart{color:#fff}
.wc-photo{position:relative;padding:0;aspect-ratio:4/5;background:#000}
.wc-photo picture img{position:absolute}
/* galería: cinta infinita de fotos a color */
.gal-track{display:flex;width:max-content;gap:clamp(12px,1.6vw,20px);overflow:visible;padding-inline:0;cursor:default;scroll-snap-type:none;animation:galRun 70s linear infinite}
.gal:hover .gal-track{animation-play-state:paused}
@keyframes galRun{to{transform:translateX(calc(-50% - clamp(6px,.8vw,10px)))}}
.gal-row{margin:0;width:auto}
.gal-item{width:clamp(170px,19vw,260px)}
.gal-ph{position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;background:var(--ink-2);box-shadow:0 0 0 1px var(--line)}
.gal-ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.05);transition:transform .9s var(--ease-out),filter .5s ease}
.gal-ph::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 0 var(--red);transition:box-shadow .3s ease}
@media (hover:hover) and (pointer:fine){.gal-item:hover .gal-ph img{transform:scale(1.06);filter:none}.gal-item:hover .gal-ph::after{box-shadow:inset 0 0 0 3px var(--red)}}
.gal-item:nth-child(even){margin-top:clamp(24px,3vw,48px)}
.js-rv .gal-item.rv{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.gal-track{animation:none;overflow-x:auto;width:auto}}
/* manifiesto: feed con fotos */
.tl-ph{padding:0;background:#000;color:#fff;isolation:isolate}
.tl-ph picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.tl-ph::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.85))}
.tl-ph span{padding:8px;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.tl-ph b{color:#ff5a63}
.tl-ph .tl-play{color:#fff}
.mx-vid{isolation:isolate}
.mx-vid .mx-vid-bg,.mx-vid picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.mx-vid::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 30%,transparent 45%,rgba(160,15,25,.85))}
/* sobre nosotros: abanico de fotos */
.about-mark .am-ph{position:absolute;width:44%;aspect-ratio:3/4;border-radius:16px;overflow:hidden;border:4px solid var(--ink);box-shadow:0 24px 40px -18px rgba(0,0,0,.8)}
.about-mark .am-ph img{width:100%;height:100%;object-fit:cover}
.am-ph.p1{left:6%;top:14%;transform:rotate(-8deg)}
.am-ph.p2{left:30%;top:6%;transform:rotate(3deg);z-index:1}
.am-ph.p3{right:5%;top:20%;transform:rotate(9deg)}
.about-mark .am-k{position:absolute;bottom:-6%;left:50%;transform:translateX(-50%);font-size:clamp(7rem,14vw,11rem);opacity:.9;animation:none}
.about-mark .am-pills{z-index:2}
.about-mark .badge{z-index:3}
.wc-photo{isolation:isolate}.wc-photo picture img{z-index:0}.wc-photo .wc-lab{z-index:1}

/* =====================================================================
   2.6 · Carrusel 3D de fotos (estilo coverflow): la foto activa al centro,
   las vecinas giran en profundidad. Todas en arco, del mismo tamaño.
   ===================================================================== */
.gal-3d{overflow:hidden}
.r3{position:relative;--w:22cqw;--sp:18cqw;--dz:14cqw;--ang:46deg;max-width:1200px;margin-inline:auto;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.r3-stage{position:relative;container-type:inline-size;height:clamp(300px,34vw,480px);perspective:1400px;perspective-origin:50% 45%;cursor:grab;overflow:hidden;outline:none}
.r3.is-drag .r3-stage{cursor:grabbing}
.r3-stage:focus-visible{box-shadow:0 0 0 2px var(--red);border-radius:16px}
.r3-ring{position:absolute;inset:0;list-style:none;margin:0;padding:0;transform-style:preserve-3d}
.r3-card{position:absolute;left:50%;top:50%;width:var(--w);aspect-ratio:3/4.2;margin:calc(var(--w) * -0.7) 0 0 calc(var(--w) / -2);
  transform:translate3d(calc(var(--d, 0) * var(--sp)),0,calc(var(--ad, 0) * var(--dz) * -1)) rotateY(calc(var(--d, 0) * var(--ang) * -1));
  opacity:max(0, calc(1 - var(--ad, 0) * .32));
  transition:transform .85s cubic-bezier(.2,.7,.2,1),opacity .85s ease;cursor:pointer;will-change:transform}
.r3-card.no-tr{transition:none}
.r3.is-drag .r3-card{transition:none}
.r3-f{position:absolute;inset:0;overflow:hidden;border-radius:999px 999px 14px 14px;background:#1b1414;box-shadow:0 30px 60px -28px rgba(0,0,0,.95)}
.r3-f picture,.r3-f img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.r3-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,10,10,.1),rgba(13,10,10,.6));opacity:calc(var(--ad, 0) * .7);pointer-events:none;transition:opacity .85s ease}
.r3-card.is-active .r3-f{box-shadow:0 0 0 1px rgba(227,35,47,.55),0 40px 70px -28px rgba(0,0,0,.95)}
.r3-floor{position:absolute;left:50%;bottom:2%;width:64%;height:12%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(227,35,47,.4),rgba(227,35,47,0));filter:blur(10px);pointer-events:none}
.r3-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:14px}
.r3-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--bone);cursor:pointer;transition:background-color .3s ease,border-color .3s ease}
.r3-btn:hover{background:var(--red);border-color:var(--red)}
.r3-btn:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.r3-count{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.12em;color:var(--mute);min-width:7ch;text-align:center}
/* galería del inicio */
.r3-gal{--w:21cqw;--sp:19cqw}
/* sobre nosotros: 8 fotos, un poco más grandes */
.r3-about{--w:30cqw;--sp:25cqw;--dz:16cqw;--ang:50deg;width:100%;max-width:560px;justify-self:center}
.r3-about .r3-stage{height:clamp(300px,36vw,440px)}
@media (max-width:700px){
  .r3{--w:44cqw;--sp:31cqw;--dz:10cqw;--ang:40deg}
  .r3-stage{height:min(112vw,420px)}
  .r3-about{--w:46cqw;--sp:33cqw}
}
@media (prefers-reduced-motion:reduce){.r3-card{transition:none}}

/* cierres: foto en arco con inclinación 3D */
.cta-fig{perspective:900px}
.cta-photo{border-radius:999px 999px 22px 22px;overflow:hidden;transform-style:preserve-3d;transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));transition:transform .5s var(--ease-out);box-shadow:0 40px 70px -30px rgba(0,0,0,.85)}
.cta-fig::before{border-radius:999px 999px 22px 22px}
.cta-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,30%),rgba(255,255,255,.28),transparent 45%);opacity:var(--go,0);transition:opacity .3s ease}
.cta-fig .tag{z-index:2}
.dojo-feature .duo{border-radius:999px 999px 18px 18px}
