/* Venue: tehmplo. Solo redefine acentos y bloques propios; el resto
   viene de venue-core.css. Portado del paquete de diseno. */

.vn-venue--tehmplo {
  --accent: #f000cf;
  --accent-blue: #087ee8;
  --accent-cyan: #00e5de;
  --venue-bg: #05050a;
  --venue-fallback: #35107a;
  background: var(--venue-bg);
}
.vn-venue--tehmplo .vn-button--solid { background: var(--accent-cyan); border-color: var(--accent-cyan); }
.vn-tehmplo-pre-faq { position: relative; }
.vn-tehmplo-hero { position: relative; min-height: 100svh; overflow: hidden; background: var(--venue-fallback) url('/images/events/tehmplo-gradient.webp') center/cover; isolation: isolate; }
.vn-tehmplo-hero::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(5,5,10,.14), rgba(5,5,10,.02) 46%, rgba(5,5,10,.62)); content: ""; }
.vn-tehmplo-grid { position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px); background-size: 12.5% 25%; mask-image: linear-gradient(180deg, #000, transparent 85%); }
.vn-tehmplo-hero__figure { position: absolute; z-index: 0; right: 2%; bottom: -4%; width: min(51vw, 760px); pointer-events: none; will-change: transform; }
.vn-tehmplo-hero__figure img { width: 100%; max-height: 92vh; object-fit: contain; object-position: bottom; filter: drop-shadow(0 30px 60px rgba(0,0,0,.35)); }
[data-tehmplo-figure] { transform: translate3d(var(--figure-x, 0), var(--figure-y, 0), 0); }
.vn-tehmplo-hero__content { position: relative; z-index: 2; width: min(100%, var(--max)); min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; margin-inline: auto; padding: 130px var(--gutter) 95px; }
.vn-tehmplo-hero h1 { max-width: 950px; margin: 18px 0 32px; font-size: clamp(104px, 18vw, 276px); font-weight: 600; line-height: .61; letter-spacing: -.1em; text-transform: uppercase; }
.vn-tehmplo-hero h1 span { display: block; }
.vn-tehmplo-hero h1 span:nth-child(2) { margin-left: 22%; color: transparent; -webkit-text-stroke: 2px var(--ivory); }
.vn-tehmplo-hero h1 em { display: block; margin: 42px 0 0 8%; color: var(--accent-cyan); font: 400 .16em/1 var(--font-serif); letter-spacing: 0; text-transform: none; }
.vn-tehmplo-hero__copy { max-width: 530px; margin: 0 0 28px; font-size: clamp(16px, 1.5vw, 22px); line-height: 1.55; }
.vn-tehmplo-hero .vn-button { width: fit-content; }
.vn-tehmplo-hero__stamp { position: absolute; z-index: 2; top: 118px; right: var(--gutter); width: 142px; aspect-ratio: 1; display: flex; align-items: center; flex-direction: column; justify-content: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(5,5,10,.12); backdrop-filter: blur(10px); text-align: center; transform: rotate(7deg); }
.vn-tehmplo-hero__stamp span { font: 500 8px/1.4 var(--font-mono); letter-spacing: .15em; text-transform: uppercase; }
.vn-tehmplo-hero__stamp strong { margin: 7px 0; color: var(--accent-cyan); font: 500 20px/1 var(--font-mono); }
.vn-electric-thread { position: sticky; z-index: 6; top: 50vh; width: 100%; height: 1px; pointer-events: none; transform: scaleX(var(--line-progress, .08)); transform-origin: left; background: linear-gradient(90deg, transparent, var(--accent), var(--accent-cyan), transparent); box-shadow: 0 0 18px rgba(0,229,222,.65); }
[data-tehmplo-line] { transform: scaleX(var(--line-progress, .08)); transform-origin: left; }
.vn-electric-thread i { position: absolute; right: 5vw; top: -5px; width: 11px; height: 11px; border: 1px solid var(--accent-cyan); border-radius: 50%; background: var(--venue-bg); }
.vn-tehmplo-manifesto { margin-top: -1px; background: #07060c; }
.vn-tehmplo-manifesto__words { margin: 70px 0 90px; }
.vn-tehmplo-manifesto__words span { display: block; font-size: clamp(68px, 14vw, 218px); font-weight: 600; line-height: .74; letter-spacing: -.095em; text-transform: uppercase; }
.vn-tehmplo-manifesto__words span:nth-child(1) { color: var(--accent); }
.vn-tehmplo-manifesto__words span:nth-child(2) { margin-left: 9%; color: transparent; -webkit-text-stroke: 1px var(--accent-blue); }
.vn-tehmplo-manifesto__words span:nth-child(3) { margin-left: 20%; color: var(--accent-cyan); }
.vn-tehmplo-manifesto__lower { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; padding-top: 50px; border-top: 1px solid var(--line-dark); }
.vn-tehmplo-manifesto__lower .vn-lead, .vn-tehmplo-manifesto__lower .vn-body-copy { max-width: 590px; }
.vn-tehmplo-night { background: #e9e4dc; color: #080807; }
.vn-tehmplo-night__head { display: flex; justify-content: space-between; gap: 30px; align-items: start; margin-bottom: 70px; }
.vn-tehmplo-night__head span { font: 500 10px/1.4 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; }
.vn-solomun-feature { position: relative; min-height: min(82vh, 880px); display: flex; align-items: end; overflow: hidden; padding: clamp(28px, 5vw, 72px); background: var(--venue-fallback); color: var(--ivory); isolation: isolate; }
.vn-solomun-feature img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.vn-solomun-feature:hover img { transform: scale(1.035); }
.vn-solomun-feature__shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.78), rgba(0,0,0,.12) 70%), linear-gradient(180deg, transparent, rgba(0,0,0,.62)); }
.vn-solomun-feature__content { width: 100%; }
.vn-solomun-feature__content > p { font: 500 9px/1.4 var(--font-mono); letter-spacing: .17em; text-transform: uppercase; }
.vn-solomun-feature h2 { margin: 12px 0 36px; font-size: clamp(90px, 16vw, 246px); line-height: .72; letter-spacing: -.095em; }
.vn-solomun-feature__content > div { display: grid; grid-template-columns: minmax(280px, 600px) auto; justify-content: space-between; align-items: end; gap: 40px; }
.vn-solomun-feature__content > div p { margin: 0; color: var(--ivory-dim); font-size: 18px; line-height: 1.6; }
.vn-solomun-feature__date { position: absolute; top: 20px; right: 30px; color: rgba(255,255,255,.2); font: 500 clamp(120px, 24vw, 370px)/.7 var(--font-display); letter-spacing: -.1em; }
.vn-tehmplo-facts { background: #08070f; }
.vn-tehmplo-facts__head { display: grid; grid-template-columns: .55fr 1.45fr; gap: 50px; margin-bottom: 90px; }
.vn-electric-field { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.vn-electric-panel { min-height: 310px; display: flex; flex-direction: column; grid-column: span 4; padding: 26px; background: linear-gradient(145deg, rgba(240,0,207,.16), rgba(8,126,232,.14), rgba(0,229,222,.12)); background-size: 180% 180%; border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(12px); }
.vn-electric-panel:nth-child(2), .vn-electric-panel:nth-child(5) { transform: translateY(52px); }
.vn-electric-panel span { color: var(--accent-cyan); font: 500 9px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; }
.vn-electric-panel h3 { margin: auto 0 15px; font-size: clamp(44px, 5vw, 78px); line-height: .88; letter-spacing: -.07em; }
.vn-electric-panel p { min-height: 52px; margin: 0; color: var(--ivory-dim); line-height: 1.55; }
@keyframes vn-electric-shift {
  from { background-position: 0 0; }
  to { background-position: 100% 100%; }
}
.motion-ready .vn-electric-panel.vn-reveal.is-visible { animation: vn-electric-shift 8s ease-in-out infinite alternate; }
.vn-tehmplo-flow { background: linear-gradient(135deg, #3f076a, #060611 60%); }
.vn-tehmplo-flow__head { margin-bottom: 100px; }
.vn-flow-line { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.3); }
.vn-flow-line article { position: relative; min-height: 370px; display: flex; flex-direction: column; padding: 30px 24px; border-right: 1px solid rgba(255,255,255,.18); }
.vn-flow-line article::before { position: absolute; top: -7px; left: 24px; width: 13px; height: 13px; border: 2px solid var(--accent-cyan); border-radius: 50%; background: #120323; content: ""; }
.vn-flow-line article:last-child { border-right: 0; }
.vn-flow-line span, .vn-tehmplo-service span { color: var(--accent-cyan); font: 500 9px/1.4 var(--font-mono); letter-spacing: .17em; text-transform: uppercase; }
.vn-flow-line h3 { margin: auto 0 15px; font: 400 clamp(38px, 4vw, 62px)/1 var(--font-serif); }
.vn-flow-line p { min-height: 78px; margin: 0; color: var(--ivory-dim); line-height: 1.55; }
.vn-tehmplo-services { background: #e9e4dc; color: #080807; }
.vn-tehmplo-services__head { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 55px; margin-bottom: 90px; }
.vn-tehmplo-services__head .vn-section-label { grid-column: 1 / -1; }
.vn-tehmplo-services__head .vn-body-copy { color: rgba(8,8,7,.62); }
.vn-tehmplo-service-deck { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.vn-tehmplo-service { position: relative; min-height: 470px; display: flex; align-items: end; overflow: hidden; padding: 32px; background: #0b0911; color: var(--ivory); isolation: isolate; }
.vn-tehmplo-service--gradient { background: linear-gradient(135deg, #f000cf, #087ee8); color: #fff; }
.vn-tehmplo-service img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vn-tehmplo-service--photo::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, transparent, rgba(0,0,0,.84)); content: ""; }
.vn-tehmplo-service h3 { max-width: 620px; margin: 20px 0 0; font-size: clamp(44px, 6vw, 90px); line-height: .88; letter-spacing: -.07em; }
.vn-tehmplo-service p { max-width: 490px; margin: 18px 0 0; line-height: 1.6; opacity: .74; }
.vn-tehmplo-final { background: #05050a; }
.vn-tehmplo-final__glow { position: absolute; width: min(90vw, 1100px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(240,0,207,.65), rgba(8,126,232,.25) 44%, transparent 68%); filter: blur(18px); transform: translateY(28%); }
@media (max-width: 1080px) {
  .vn-tehmplo-facts__head { grid-template-columns: 1fr; }
  .vn-tehmplo-hero__figure { right: -12%; width: 66vw; opacity: .74; }
  .vn-tehmplo-services__head { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .vn-tehmplo-hero::after { background: linear-gradient(180deg, rgba(5,5,10,.04), rgba(5,5,10,.82)); }
  .vn-tehmplo-hero__figure { right: -28%; width: 108vw; opacity: .58; transform: none; }
  [data-tehmplo-figure] { transform: none; }
  .vn-tehmplo-hero__content { padding-bottom: 90px; }
  .vn-tehmplo-hero h1 { font-size: clamp(90px, 31vw, 142px); }
  .vn-tehmplo-hero h1 span:nth-child(2), .vn-tehmplo-hero h1 em { margin-left: 0; }
  .vn-tehmplo-hero h1 em { margin-top: 30px; font-size: .14em; }
  .vn-tehmplo-hero__stamp { top: 82px; width: 105px; }
  .vn-electric-thread { display: none; }
  .vn-tehmplo-manifesto__words span { font-size: clamp(64px, 21vw, 104px); }
  .vn-tehmplo-manifesto__words span:nth-child(2), .vn-tehmplo-manifesto__words span:nth-child(3) { margin-left: 0; }
  .vn-tehmplo-manifesto__lower { grid-template-columns: 1fr; }
  .vn-tehmplo-night__head { flex-direction: column; }
  .vn-solomun-feature { min-height: 78svh; }
  .vn-solomun-feature h2 { font-size: clamp(88px, 28vw, 132px); }
  .vn-solomun-feature__content > div { grid-template-columns: 1fr; }
  .vn-electric-field { grid-template-columns: 1fr; }
  .vn-electric-panel { min-height: 270px; grid-column: auto; }
  .vn-electric-panel:nth-child(2), .vn-electric-panel:nth-child(5) { transform: none; }
  .vn-flow-line { grid-template-columns: 1fr; }
  .vn-flow-line article { min-height: 260px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .vn-tehmplo-service-deck { grid-template-columns: 1fr; }
  .vn-tehmplo-service { min-height: 68svh; }
}
@media (prefers-reduced-motion: reduce) {
  [data-tehmplo-line], [data-tehmplo-figure] { transform: none; }
  .vn-electric-panel { animation: vn-none; }
  .vn-solomun-feature img { transition: none; }
}
