:root {
  --black: #050505;
  --white: #f5f0e8;
  --gold: #c8a96e;
  --accent: #e8d5b0;
  --vh: 1vh;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { background: radial-gradient(circle at 18% 12%, rgba(200,169,110,0.08) 0%, rgba(5,5,5,0) 42%), var(--black); color: var(--white); font-family: 'Cormorant Garamond', serif; overflow-x: hidden; cursor: default; line-height: 1.45; }

/* Cursor */
.cursor { width:12px;height:12px;background:var(--gold);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transition:transform 0.1s;transform:translate(-50%,-50%);mix-blend-mode:screen; }
.cursor-ring { width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;position:fixed;pointer-events:none;z-index:9998;transition:transform 0.15s ease,width 0.3s,height 0.3s;transform:translate(-50%,-50%);opacity:0.5; }

/* Nav */
nav { position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:20px 40px; }
nav::before { content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(5,5,5,0.9),transparent);pointer-events:none; }
.nav-logo { font-family:'Bebas Neue',sans-serif;font-size:clamp(0.85rem,3vw,1.3rem);letter-spacing:4px;color:var(--gold);text-decoration:none;position:relative; }
.nav-links { display:flex;gap:32px;list-style:none;position:relative; }
.nav-links a { color:var(--white);text-decoration:none;font-family:'Space Mono',monospace;font-size:0.65rem;letter-spacing:3px;text-transform:uppercase;opacity:0.7;transition:opacity 0.3s,color 0.3s; }
.nav-links a:hover { opacity:1;color:var(--gold); }

/* Hamburger */
.hamburger { display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:200;position:relative;padding:4px;background:none;border:none; }
.hamburger span { display:block;width:24px;height:1.5px;background:var(--gold);transition:all 0.3s ease;transform-origin:center; }
.hamburger.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu { display:none;position:fixed;inset:0;background:rgba(5,5,5,0.98);z-index:150;flex-direction:column;align-items:center;justify-content:center;gap:36px; }
.mobile-menu.open { display:flex; }
.mobile-menu a { font-family:'Bebas Neue',sans-serif;font-size:2.4rem;letter-spacing:6px;color:var(--white);text-decoration:none;transition:color 0.3s; }
.mobile-menu a:hover { color:var(--gold); }
.mobile-socials { display:flex;gap:12px;margin-top:16px;flex-wrap:wrap;justify-content:center; }
.mobile-socials a { font-family:'Space Mono',monospace;font-size:0.6rem!important;letter-spacing:2px!important;padding:12px 18px;border:1px solid rgba(200,169,110,0.4);display:flex;align-items:center;gap:8px; }
.mobile-socials svg { width:15px;height:15px;flex-shrink:0; }

/* Hero */
#hero { height:100vh;height:calc(var(--vh,1vh)*100);display:flex;align-items:center;justify-content:flex-start;position:relative;overflow:hidden; }
#hero::before{
  content:"";
  position:absolute;
  left:-320px;
  top:50%;
  transform:translateY(-50%);
  width:860px;
  height:860px;
  border-radius:50%;
  background:
    radial-gradient(circle at 58% 50%,
      rgba(2,2,2,1) 0%,
      rgba(2,2,2,0.99) 24%,
      rgba(4,4,4,0.92) 46%,
      rgba(8,8,8,0.70) 64%,
      rgba(12,12,12,0.46) 78%,
      rgba(18,18,18,0.24) 90%,
      transparent 100%),
    linear-gradient(90deg,
      rgba(0,0,0,0.36) 0%,
      rgba(0,0,0,0.16) 42%,
      transparent 74%);
  filter: blur(2px);
  box-shadow:
    0 0 42px rgba(200,169,110,0.18),
    0 0 110px rgba(200,169,110,0.08);
  z-index:1;
  pointer-events:none;
}
.hero-image-stack { position:absolute; right:5.5%; bottom:4%; width:min(52vw,820px); height:min(84vh,760px); z-index:2; pointer-events:none; }
.hero-image { position:absolute; object-fit:cover; border:1px solid rgba(200,169,110,0.28); box-shadow:0 18px 40px rgba(0,0,0,0.38); }
.hero-image-main { right:0; bottom:0; width:72%; height:82%; opacity:0.8; filter:grayscale(10%) contrast(1.15) brightness(1.02); }
.hero-image-top { left:0; top:2%; width:36%; height:37%; opacity:0.95; filter:grayscale(4%) contrast(1.08); object-position:center 50%; }
.hero-image-bottom { left:8%; bottom:0; width:31%; height:40%; opacity:0.92; filter:grayscale(4%) contrast(1.08); }
.hero-image-top,
.hero-image-bottom {
  box-shadow:
    0 0 26px rgba(200,169,110,0.25),
    0 16px 34px rgba(0,0,0,0.42);
}
.hero-grain { position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");opacity:0.4;pointer-events:none; }
.hero-line-v { position:absolute;left:36%;top:10%;width:1px;height:80%;background:linear-gradient(to bottom,transparent,var(--gold) 30%,var(--gold) 70%,transparent);opacity:0.28; }
.hero-content { position:relative;z-index:3;padding:0 60px;max-width:900px;width:100%; }
.hero-eyebrow { font-family:'Space Mono',monospace;font-size:0.62rem;letter-spacing:6px;color:var(--gold);text-transform:uppercase;margin-bottom:20px;opacity:0;animation:fadeUp 1s 0.3s forwards; }
.hero-logo-wrap {
  position: relative;
  display: inline-block;
  isolation: isolate;
  overflow: visible;
}
.hero-logo-wrap::before {
  display: none;
}
.hero-logo-wrap::after {
  display: none;
}
.hero-logo-img { height:clamp(220px,25vw,330px);width:auto;object-fit:contain;object-position:left center;display:block;margin-left:-2px;mix-blend-mode:normal;filter:none;max-width:92vw;opacity:0;animation:fadeUp 1s 0.5s forwards; }
.hero-divider { width:60px;height:1px;background:var(--gold);margin:20px 0;opacity:0;animation:fadeUp 1s 0.75s forwards; }
.hero-subtitle { font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.1rem,2.6vw,1.7rem);color:var(--accent);text-shadow:0 6px 22px rgba(0,0,0,0.45);opacity:0;animation:fadeUp 1s 0.9s forwards; }
.hero-cta { margin-top:40px;display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeUp 1s 1.1s forwards; }

.scroll-indicator {
  position:absolute;
  bottom:34px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  opacity:0;
  animation:fadeIn 1s 1.5s forwards;
  z-index:4;
}
.scroll-indicator span {
  font-family:'Space Mono',monospace;
  font-size:0.5rem;
  letter-spacing:4px;
  color:rgba(200,169,110,0.72);
  text-transform:uppercase;
}
.scroll-line {
  position:relative;
  width:1px;
  height:62px;
  background:linear-gradient(to bottom,rgba(200,169,110,0.86),rgba(200,169,110,0.2),transparent);
  overflow:visible;
}
.scroll-line::before {
  content:"";
  position:absolute;
  top:-4px;
  left:50%;
  transform:translateX(-50%);
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 12px rgba(200,169,110,0.45);
  animation:scrollDot 1.8s ease-in-out infinite;
}
.scroll-line::after {
  content:"";
  position:absolute;
  bottom:-9px;
  left:50%;
  width:8px;
  height:8px;
  border-right:1px solid rgba(200,169,110,0.72);
  border-bottom:1px solid rgba(200,169,110,0.72);
  transform:translateX(-50%) rotate(45deg);
  animation:scrollArrow 1.8s ease-in-out infinite;
}

/* Buttons */
.btn { display:inline-flex;align-items:center;gap:10px;padding:14px 28px;font-family:'Space Mono',monospace;font-size:0.62rem;letter-spacing:3px;text-transform:uppercase;text-decoration:none;transition:all 0.3s; }
.btn svg { width:16px;height:16px;flex-shrink:0; }
.btn-primary { background:var(--gold);color:var(--black); }
.btn-primary:hover { background:var(--accent);transform:translateY(-2px); box-shadow:0 12px 28px rgba(200,169,110,0.28); }
.btn-secondary { border:1px solid rgba(200,169,110,0.5);color:var(--gold); }
.btn-secondary:hover { border-color:var(--gold);background:rgba(200,169,110,0.1);transform:translateY(-2px); box-shadow:0 12px 28px rgba(200,169,110,0.18); }

/* Sections */
section { padding: clamp(72px, 8vw, 120px) clamp(20px, 5vw, 88px); }
.section-label { font-family:'Space Mono',monospace;font-size:0.6rem;letter-spacing:5px;color:var(--gold);text-transform:uppercase;margin-bottom:12px; }
.section-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(2.2rem,6vw,5.4rem);line-height:0.95;margin-bottom:40px;letter-spacing:0.5px; }

/* About */
#about { display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,90px);align-items:center;max-width:1500px;margin:0 auto; }
.about-image-wrap { position:relative; }
.about-image { width:100%;height:600px;object-fit:cover;object-position:top;filter:grayscale(20%) contrast(1.05); }
.about-image-border { position:absolute;top:20px;left:20px;right:-20px;bottom:-20px;border:1px solid var(--gold);opacity:0.3;pointer-events:none; }
.about-text { font-size:clamp(1.03rem,1.2vw,1.2rem);line-height:1.9;color:rgba(245,240,232,0.78);margin-bottom:24px;max-width:62ch; }
.about-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px; }
.stat { border-left:2px solid var(--gold);padding-left:16px; }
.stat-num { font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:var(--gold);line-height:1; }
.stat-label { font-family:'Space Mono',monospace;font-size:0.55rem;letter-spacing:2px;color:rgba(245,240,232,0.5);text-transform:uppercase;margin-top:4px; }

/* Clases */
#clases { background:#0a0a0a;position:relative;overflow:hidden; }
#clases::before { content:'';position:absolute;top:-100px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(200,169,110,0.07) 0%,transparent 70%);pointer-events:none; }
.clases-inner { max-width:1500px;margin:0 auto; }
.clases-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:60px; }
.clase-card { background:#111;padding:40px 32px;position:relative;overflow:hidden;transition:background 0.4s;border:1px solid #1a1a1a; }
.clase-card::before { content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--gold);transition:width 0.5s ease; }
.clase-card:hover::before { width:100%; }
.clase-card:hover { background:#141414; }
.clase-num { font-family:'Bebas Neue',sans-serif;font-size:4.2rem;color:rgba(200,169,110,0.34);line-height:1;margin-bottom:16px;transition:color 0.3s; text-shadow:0 0 12px rgba(200,169,110,0.18); }
.clase-card:hover .clase-num { color:rgba(200,169,110,0.62); }
.clase-name { font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:2px;margin-bottom:12px;color:var(--white); }
.clase-desc { font-size:0.95rem;color:rgba(245,240,232,0.55);line-height:1.7;font-style:italic; }
.clase-icon { position:absolute;top:24px;right:24px;font-size:1.5rem;opacity:0.3; }

/* Team */
#equipo { max-width:1500px;margin:0 auto; }
.team-grid { display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:60px; }
.team-member { position:relative; }
.member-image-wrap { overflow:hidden;height:500px;position:relative; }
.member-image { width:100%;height:100%;object-fit:cover;object-position:top;filter:grayscale(30%);transition:filter 0.5s,transform 0.7s; }
.team-member:hover .member-image { filter:grayscale(0%);transform:scale(1.03); }
.member-overlay { position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(5,5,5,0.95) 30%,transparent);padding:40px 28px 28px; }
.member-name { font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:3px;color:var(--white); }
.member-role { font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1rem;color:var(--gold);margin-top:4px; }

/* Ubicacion */
#ubicacion { background:#080808;text-align:center;position:relative; }
#ubicacion .inner { max-width:700px;margin:0 auto; }
.location-detail { display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px;font-size:1.1rem;color:rgba(245,240,232,0.7); }
.location-detail svg { width:18px;height:18px;color:var(--gold);flex-shrink:0; }
.divider { width:60px;height:1px;background:var(--gold);margin:40px auto;opacity:0.4; }

/* Footer */
#contacto { background:var(--black);border-top:1px solid #1a1a1a;padding:80px 60px; }
.contact-inner { max-width:1500px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:40px; }
.footer-logo { font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:6px;color:var(--gold); }
.footer-tagline { font-style:italic;font-size:0.9rem;color:rgba(245,240,232,0.4);margin-top:4px; }
.social-links { display:flex;gap:16px;flex-wrap:wrap; }
.social-btn { display:flex;align-items:center;gap:10px;padding:14px 24px;text-decoration:none;font-family:'Space Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;transition:all 0.3s;border:1px solid #2a2a2a;color:var(--white); }
.social-btn:hover { border-color:var(--gold);color:var(--gold);transform:translateY(-3px); }
.social-btn svg { width:18px;height:18px;flex-shrink:0; }
.footer-copy { font-family:'Space Mono',monospace;font-size:0.5rem;letter-spacing:2px;color:rgba(245,240,232,0.2);margin-top:60px;text-align:center; }

/* Reveal */
.reveal { opacity:0;transform:translateY(40px);transition:opacity 0.8s ease,transform 0.8s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.25s; }
.reveal-delay-3 { transition-delay:0.4s; }

/* Animations */
@keyframes fadeUp { from {opacity:0;transform:translateY(30px);} to {opacity:1;transform:translateY(0);} }
@keyframes fadeIn { from {opacity:0;} to {opacity:1;} }
@keyframes scrollPulse { 0%,100% {opacity:1;} 50% {opacity:0.2;} }
@keyframes scrollDot {
  0% { transform:translate(-50%, 0); opacity:0.95; }
  60% { transform:translate(-50%, 24px); opacity:0.55; }
  100% { transform:translate(-50%, 42px); opacity:0.05; }
}
@keyframes scrollArrow {
  0%, 100% { opacity:0.25; transform:translateX(-50%) rotate(45deg); }
  50% { opacity:0.85; transform:translate(-50%, 4px) rotate(45deg); }
}

@media (min-width:1200px) {
  .hero-content {
    max-width: min(50vw, 820px);
    padding-left: clamp(56px, 7vw, 120px);
    padding-right: 24px;
  }
  .hero-line-v { left: 38%; }
  .hero-logo-img { height: clamp(240px, 23vw, 350px); }
  .hero-image-stack {
    right: clamp(3%, 6vw, 10%);
    width: min(50vw, 860px);
  }
  .hero-image-main { width: 70%; height: 84%; }
  .hero-image-top { left: 2%; width: 34%; height: 37%; object-position:center 50%; }
  .hero-image-bottom { left: 10%; width: 31%; height: 40%; }
}

/* Tablet 768-1024px */
@media (max-width:1024px) {
  section { padding:80px 40px; }
  .hero-content { max-width: 760px; }

  #about { gap:48px; }
  .clases-grid { grid-template-columns:repeat(2,1fr); }
  .team-grid { gap:32px; }
  .member-image-wrap { height:420px; }
  .hero-image-stack { width:min(46vw,560px); height:min(72vh,560px); right:1%; }
  .hero-image-main { width:70%; height:80%; }
  .hero-image-top { width:38%; height:36%; object-position:center 50%; }
  .hero-image-bottom { width:42%; height:32%; }
}

/* Mobile landscape / tablet pequeno 480-768px */
@media (max-width:768px) {
  body { cursor:auto; }
  .cursor,.cursor-ring { display:none; }
  nav { padding:16px 20px; }
  .nav-links { display:none; }
  .hamburger { display:flex; }
  section { padding:70px 24px; }
  #about { grid-template-columns:1fr;gap:36px; }
  .about-image { height:380px; }
  .about-image-border { display:none; }
  .about-stats { grid-template-columns:repeat(3,1fr);gap:14px; }
  .clases-grid { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:1fr;gap:24px; }
  .member-image-wrap { height:380px; }
  .hero-image-stack { width:min(62vw,340px); height:min(48vh,430px); right:-2%; top:72px; bottom:auto; opacity:0.96; z-index:2; }
  #hero::before{
    left:-260px;
    width:640px;
    height:640px;
    opacity:0.92;
  }
  .hero-image-main { width:74%; height:78%; opacity:0.92; }
  .hero-image-top { width:48%; height:34%; left:-2%; top:0; opacity:0.94; object-position:center 50%; }
  .hero-image-bottom { width:42%; height:36%; left:8%; bottom:0; opacity:0.92; }
  .hero-content { padding:0 24px; max-width:100%; margin-top:72px; z-index:3; }
  .hero-line-v { left: 30%; opacity: 0.2; }
  .hero-logo-img { height:clamp(148px,27vw,205px); margin-top:-10px; }
  .hero-eyebrow { margin-bottom:8px; }
  .hero-divider { margin:12px 0; }
  .hero-subtitle { font-size:1rem; }
  .hero-cta { margin-top:22px; }
  .hero-cta { flex-direction:column;gap:12px; }
  .btn { justify-content:center; }
  .scroll-indicator { bottom:18px; }
  .scroll-indicator span { display:none; }
  .scroll-line { height:46px; }
  #ubicacion .location-detail { align-items:flex-start; }
  #ubicacion .location-detail svg { margin-top:3px; }
  .contact-inner { flex-direction:column;text-align:center; }
  .social-links { justify-content:center; }
  #contacto { padding:60px 24px; }
}

/* Mobile portrait hasta 480px */
@media (max-width:480px) {
  nav { padding:14px 16px; }
  section { padding:60px 16px; }
  .hero-content { padding:0 16px; margin-top:82px; z-index:3; }
  #hero::before{
    left:-220px;
    width:520px;
    height:520px;
    opacity:0.9;
  }
  .hero-logo-img { height:176px; margin-top:0; }
  .hero-eyebrow { margin-bottom:6px; }
  .hero-image-stack { width:290px; height:390px; right:-16px; top:78px; bottom:auto; }
  .hero-image-main { width:74%; height:78%; opacity:0.94; }
  .hero-image-top { width:48%; height:34%; left:-2%; top:0; opacity:0.95; object-position:center 50%; }
  .hero-image-bottom { width:42%; height:36%; left:8%; bottom:0; opacity:0.94; }
  .hero-line-v { display:none; }
  .hero-subtitle { max-width:96%; font-size:0.92rem; }
  .hero-cta .btn { font-size:0.58rem;padding:12px 20px; position:relative; z-index:4; }
  .about-stats { grid-template-columns:repeat(2,1fr);gap:12px; }
  .stat-num { font-size:1.8rem; }
  .clase-card { padding:24px 18px; }
  .clase-num { font-size:3rem; }
  .clases-grid { gap:1px; }
  .member-image-wrap { height:300px; }
  .member-name { font-size:1.6rem; }
  .social-links { flex-direction:column;gap:10px; }
  .social-btn { justify-content:center; }
  #contacto { padding:50px 16px; }
  .footer-logo { font-size:1.5rem; }
}

@media (min-width:1600px) {
  nav { padding: 24px 64px; }
  .hero-content { max-width: 1020px; padding: 0 72px; }
  .hero-subtitle { font-size: clamp(1.25rem, 1.6vw, 1.8rem); }
  .about-image { height: 700px; }
  .member-image-wrap { height: 620px; }
}

@media (min-width:1920px) {
  #about, .clases-inner, #equipo, .contact-inner { max-width: 1700px; }
  .section-title { font-size: clamp(2.6rem, 4.8vw, 6rem); }
}

/* Galeria */
#galeria {
  background: linear-gradient(180deg, #070707 0%, #0d0d0d 100%);
  position: relative;
  overflow: hidden;
}
#galeria::before {
  content: '';
  position: absolute;
  left: -120px;
  top: 20%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(200,169,110,0.11) 0%, rgba(200,169,110,0) 72%);
  pointer-events: none;
}
.galeria-inner { max-width: 1500px; margin: 0 auto; position: relative; z-index: 1; }
.galeria-lead {
  max-width: 62ch;
  color: rgba(245,240,232,0.72);
  font-size: clamp(0.98rem, 1.12vw, 1.15rem);
  line-height: 1.8;
  margin-bottom: 36px;
}
.galeria-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}
.galeria-item {
  margin: 0;
  border: 1px solid rgba(200,169,110,0.18);
  background: #0f0f0f;
  overflow: hidden;
  position: relative;
  min-height: 210px;
}
.galeria-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.36), rgba(0,0,0,0));
  opacity: 0;
  transition: opacity 0.35s ease;
}
.galeria-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(0.94) contrast(1.04);
  transition: transform 0.7s ease, filter 0.4s ease;
}
.galeria-item:hover img {
  transform: scale(1.04);
  filter: saturate(1.05) contrast(1.08);
}
.galeria-item:hover::after { opacity: 1; }

.galeria-item { grid-column: span 3; min-height: 240px; }
.galeria-item-lg { grid-column: span 6; grid-row: span 2; min-height: 500px; }
.galeria-item-tall { grid-row: span 2; min-height: 500px; }
.galeria-item-wide { grid-column: span 6; min-height: 280px; }

@media (max-width:1024px) {
  .galeria-item { grid-column: span 4; min-height: 220px; }
  .galeria-item-lg, .galeria-item-wide { grid-column: span 8; }
  .galeria-item-tall { grid-row: span 1; min-height: 340px; }
}

@media (max-width:768px) {
  .galeria-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .galeria-item, .galeria-item-lg, .galeria-item-tall, .galeria-item-wide {
    grid-column: span 1;
    grid-row: span 1;
    min-height: 220px;
  }
}

@media (max-width:480px) {
  .galeria-grid { grid-template-columns: 1fr; gap: 10px; }
  .galeria-item, .galeria-item-lg, .galeria-item-tall, .galeria-item-wide { min-height: 240px; }
}

/* Galeria premium override */
#galeria {
  background:
    radial-gradient(circle at 88% 12%, rgba(200,169,110,0.16), rgba(200,169,110,0) 38%),
    linear-gradient(180deg, #060606 0%, #0c0c0c 100%);
}
#galeria::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  mask-image: radial-gradient(circle at 50% 30%, #000 45%, transparent 85%);
}
.galeria-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: 84px;
  gap: 12px;
}
.galeria-item {
  grid-column: span 3;
  grid-row: span 3;
  border: 1px solid rgba(200,169,110,0.2);
  border-radius: 2px;
  min-height: 0;
  transform: translateY(0);
  transition: transform 0.45s ease, border-color 0.35s ease, box-shadow 0.4s ease;
}
.galeria-item img {
  filter: saturate(0.92) contrast(1.05) brightness(0.9);
}
.galeria-item:hover {
  transform: translateY(-5px);
  border-color: rgba(200,169,110,0.5);
  box-shadow: 0 18px 34px rgba(0,0,0,0.35);
}
.galeria-item:hover img { filter: saturate(1.06) contrast(1.08) brightness(0.97); }

.galeria-item:nth-child(1) { grid-column: span 6; grid-row: span 6; }
.galeria-item:nth-child(2) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(3) { grid-column: span 3; grid-row: span 5; }
.galeria-item:nth-child(4) { grid-column: span 4; grid-row: span 4; }
.galeria-item:nth-child(5) { grid-column: span 4; grid-row: span 5; }
.galeria-item:nth-child(6) { grid-column: span 4; grid-row: span 4; }
.galeria-item:nth-child(7) { grid-column: span 5; grid-row: span 5; }
.galeria-item:nth-child(8) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(9) { grid-column: span 4; grid-row: span 3; }
.galeria-item:nth-child(10) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(11) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(12) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(13) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(14) { grid-column: span 3; grid-row: span 3; }
.galeria-item:nth-child(15) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(16) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(17) { grid-column: span 3; grid-row: span 3; }
.galeria-item:nth-child(18) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(19) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(20) { grid-column: span 6; grid-row: span 4; }
.galeria-item:nth-child(21) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(22) { grid-column: span 3; grid-row: span 4; }
.galeria-item:nth-child(23) { grid-column: span 6; grid-row: span 4; }
.galeria-item:nth-child(24) { grid-column: span 6; grid-row: span 4; }

@media (max-width:1024px) {
  .galeria-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); grid-auto-rows: 74px; }
  .galeria-item { grid-column: span 4 !important; grid-row: span 4 !important; }
  .galeria-item:nth-child(1),
  .galeria-item:nth-child(7),
  .galeria-item:nth-child(20),
  .galeria-item:nth-child(23),
  .galeria-item:nth-child(24) { grid-column: span 8 !important; }
}

@media (max-width:768px) {
  .galeria-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 128px; gap: 10px; }
  .galeria-item { grid-column: span 1 !important; grid-row: span 2 !important; }
  .galeria-item:nth-child(1),
  .galeria-item:nth-child(5),
  .galeria-item:nth-child(11),
  .galeria-item:nth-child(17),
  .galeria-item:nth-child(23) { grid-column: span 2 !important; }
}

@media (max-width:480px) {
  .galeria-grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .galeria-item { grid-column: span 1 !important; grid-row: span 1 !important; height: 260px; }
}

/* Performance mode: galeria liviana */
#galeria::after { display: none; }
.galeria-grid { grid-auto-rows: 72px; gap: 10px; }
.galeria-item {
  transition: none;
  box-shadow: none !important;
  content-visibility: auto;
  contain-intrinsic-size: 320px;
}
.galeria-item::after { display: none; }
.galeria-item img {
  transition: none;
  filter: none;
}
.galeria-item:hover { transform: none; border-color: rgba(200,169,110,0.28); }
.galeria-item:hover img { filter: none; transform: none; }
#galeria .reveal {
  opacity: 1;
  transform: none;
  transition: none;
}

/* Final mobile gallery fix (override all previous gallery variants) */
@media (max-width:768px) {
  #galeria .galeria-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 160px;
    gap: 10px;
  }
  #galeria .galeria-item,
  #galeria .galeria-item:nth-child(n) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
    min-height: 0 !important;
    height: auto !important;
  }
  #galeria .galeria-item:nth-child(1),
  #galeria .galeria-item:nth-child(6),
  #galeria .galeria-item:nth-child(12),
  #galeria .galeria-item:nth-child(18),
  #galeria .galeria-item:nth-child(24) {
    grid-column: span 2 !important;
    grid-row: span 1 !important;
  }
  #galeria .galeria-item img {
    object-position: center 24%;
  }
}

@media (max-width:480px) {
  #galeria .galeria-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 220px;
    gap: 10px;
  }
  #galeria .galeria-item,
  #galeria .galeria-item:nth-child(n) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
  #galeria .galeria-item img {
    object-position: center 20%;
  }
  #galeria .galeria-item:nth-child(2) img,
  #galeria .galeria-item:nth-child(5) img,
  #galeria .galeria-item:nth-child(10) img,
  #galeria .galeria-item:nth-child(14) img,
  #galeria .galeria-item:nth-child(21) img {
    object-position: center 14%;
  }
  #galeria .galeria-item:nth-child(3) img,
  #galeria .galeria-item:nth-child(8) img,
  #galeria .galeria-item:nth-child(16) img {
    object-position: center 10%;
  }
}
