/* 1) Fuente display local */ @font-face { font-family: 'Urban Starblues'; src: url('urban-starblues-demo/Urban%20Starblues%20Demo.otf') format('opentype'), url('urban-starblues-demo/Urban Starblues Demo.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; } /* 2) Variables */ :root { --bg: #ffffff; --ink: #0d0d0f; --fucsia: #ff0a8c; --neon: #39ff14; --muted: #6b6b6b; --card: #ffffff; --ring: rgba(57,255,20,0.35); --shadow: 0 8px 24px rgba(0,0,0,0.08); } /* 3) Reset */ * { box-sizing: border-box; margin: 0; padding: 0; } html, body { width: 100%; } img { max-width: 100%; height: auto; display: block; } /* 4) Tipografías base (texto legible) */ body { font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif; color: var(--ink); background: var(--bg); line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* 5) Header */ .site-header { position: sticky; top: 0; z-index: 10; background: linear-gradient(180deg, #fff, #fff8); backdrop-filter: blur(6px); border-bottom: 3px dashed var(--fucsia); } .site-header .brand { display: flex; flex-direction: column; /* logo arriba, nav abajo */ align-items: center; justify-content: center; text-align: center; gap: 0.65rem; padding: 1.2rem 1.25rem 1.3rem; } /* 6) Logo (Urban Starblues grande y limpio) */ .logo { font-family: 'Urban Starblues', cursive; font-size: clamp(3rem, 9vw + 1rem, 9rem); line-height: 1; letter-spacing: 0; /* respeta el kerning original */ font-weight: normal; color: var(--ink); text-shadow: 0 0 8px var(--fucsia), 0 0 16px var(--fucsia); margin: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* 7) Navegación centrada (Urban Starblues en botones) */ .nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 0.2rem; } .nav-link { font-family: 'Urban Starblues', cursive; text-decoration: none; font-weight: 700; font-size: clamp(0.95rem, 0.5rem + 1vw, 1.25rem); padding: 0.6rem 1rem; border: 2px solid var(--ink); border-radius: 999px; background: var(--bg); color: var(--ink); box-shadow: 0 0 0 4px var(--ring), var(--shadow); transition: transform .15s ease, box-shadow .2s ease, background .2s ease; } .nav-link:hover { transform: translateY(-2px) rotate(-1deg); box-shadow: 0 0 0 6px var(--ring), 0 10px 24px rgba(255,10,140,.25); } /* 8) Main a ancho completo (sin tope) */ main{ width: 100%; max-width: none; margin: 0; padding: clamp(12px, 2vw, 24px) clamp(14px, 3vw, 56px) 3rem; } /* 9) Filtros (tabs) */ .filtros { margin: 1.25rem 0 1rem; user-select: none; } .filtros input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; } .tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; } .tab { font-family: 'Urban Starblues', cursive; cursor: pointer; padding: 0.6rem 1rem; border: 2px solid var(--ink); border-radius: 12px; background: var(--bg); box-shadow: 0 0 0 5px var(--ring), var(--shadow); transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease; } .tab:hover { transform: translateY(-2px) rotate(-1deg); } /* Activo */ #cat-todo:checked ~ .tabs label[for="cat-todo"], #cat-mural:checked ~ .tabs label[for="cat-mural"], #cat-protesta:checked ~ .tabs label[for="cat-protesta"], #cat-collage:checked ~ .tabs label[for="cat-collage"], #cat-stencil:checked ~ .tabs label[for="cat-stencil"], #cat-performance:checked ~ .tabs label[for="cat-performance"]{ color:#000; background: linear-gradient(90deg, var(--fucsia), var(--neon)); border-color:#000; text-shadow: 0 0 10px #fff; } /* 10) Galería full-width y fluida (sin huecos) */ .galeria{ display: grid; /* tantas columnas como quepan; cada tarjeta crece hasta llenar */ grid-template-columns: repeat(auto-fit, minmax(clamp(280px, 24vw, 520px), 1fr)); gap: clamp(12px, 1.6vw, 28px); margin-bottom: 2rem; } /* 11) Tarjeta */ .item{ grid-column: auto; /* sin span fijo */ display: flex; flex-direction: column; background: var(--card); border: 3px solid #000; border-radius: 16px; overflow: hidden; box-shadow: 0 0 0 8px var(--ring), var(--shadow); transform: rotate(-.25deg); transition: transform .18s ease, box-shadow .2s ease, border-color .2s ease; } .item:hover{ transform: translateY(-4px) rotate(.25deg); box-shadow: 0 0 0 10px var(--ring), 0 18px 36px rgba(255,10,140,.25); border-color: var(--fucsia); } .item img{ aspect-ratio: 4 / 3; /* cambia a 16/9 si prefieres panorámico */ object-fit: cover; border-bottom: 3px solid #000; } .item figcaption{ padding: .95rem 1rem 1.1rem; } /* 12) Título y meta (legibles) */ .title{ font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif; margin: .35rem 0 .15rem; font-size: clamp(1.05rem, .9rem + .5vw, 1.35rem); } .meta{ font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif; margin: 0; color: var(--muted); font-size: .95rem; } /* 13) Chips (si los usas) */ .chip{ display:inline-block; font-weight:800; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; border:2px solid #000; padding:.25rem .5rem; border-radius:999px; box-shadow: inset 0 0 12px rgba(0,0,0,.06); } .chip-mural { box-shadow: 0 0 14px var(--fucsia); } .chip-protesta { box-shadow: 0 0 14px var(--neon); } .chip-collage { box-shadow: 0 0 14px rgba(255,10,140,.65); } .chip-stencil { box-shadow: 0 0 14px rgba(57,255,20,.65); } .chip-performance { box-shadow: 0 0 14px rgba(0,0,0,.25); } /* 14) Secciones info/contacto */ .sobre, .contacto{ background:#fff; border:3px solid #000; border-radius:20px; padding:1.25rem; margin-top:2rem; box-shadow:0 0 0 10px var(--ring), var(--shadow); } .sobre h2, .contacto h2{ font-family: 'Urban Starblues', cursive; font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem); margin-bottom:.75rem; text-shadow:0 0 10px var(--fucsia), 0 0 20px var(--fucsia); } .sobre p, .contacto p { font-size: 1rem; } .cta{ display:inline-block; margin-top:.35rem; text-decoration:none; font-weight:800; color:#000; background: linear-gradient(90deg, var(--fucsia), var(--neon)); border:2px solid #000; border-radius:12px; padding:.6rem .9rem; box-shadow:0 0 0 6px var(--ring), var(--shadow); transition: transform .15s ease, box-shadow .2s ease; } .cta:hover{ transform: translateY(-2px) rotate(-1deg); box-shadow: 0 0 0 8px var(--ring), 0 16px 30px rgba(57,255,20,.25); } /* 15) Footer */ .site-footer{ text-align:center; padding:2rem 1rem 2.5rem; color:var(--muted); } /* 16) Ajustes para pantallas grandes */ @media (min-width: 1600px){ .galeria{ grid-template-columns: repeat(auto-fit, minmax(clamp(320px, 22vw, 600px), 1fr)); gap: clamp(16px, 1.4vw, 32px); } .title{ font-size: clamp(1.15rem, 1rem + .6vw, 1.6rem); } .meta{ font-size: 1rem; } } /* 17) Móviles */ @media (max-width: 640px){ .nav-link{ padding:.5rem .8rem; } .logo{ font-size: clamp(2.6rem, 12vw + 1rem, 6.5rem); } }