:root{
  --bg:#FFF200; --ink:#0B0B0B; --pink:#FF3CAC; --white:#fff;
  --d:"Archivo Black","Arial Black",Impact,sans-serif; --b:Archivo,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:1.05rem/1.5 var(--b);transition:background .6s;overflow-x:hidden}
:focus-visible{outline:4px solid var(--pink);outline-offset:3px}
h1,h2,h3,b,.logo{font-family:var(--d);font-weight:400}
a{color:inherit}
.bd{border:3px solid var(--ink)}

.ticker{background:var(--ink);color:var(--bg);overflow:hidden;white-space:nowrap;padding:.5rem 0;font:.85rem var(--d);letter-spacing:.08em}
.belt{display:inline-block;animation:belt 28s linear infinite}
@keyframes belt{to{transform:translateX(-50%)}}

.top{display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1rem,4vw,3rem);border-bottom:3px solid var(--ink);position:sticky;top:0;background:var(--bg);z-index:5;transition:background .6s}
.logo{font-size:1.5rem;text-decoration:none;letter-spacing:-.02em}
.top nav{display:flex;gap:2rem;font-weight:600}
.top nav a{text-decoration:none}.top nav a:hover{background:var(--ink);color:var(--bg);padding:0 .3rem;margin:0 -.3rem}
.favs{border:3px solid var(--ink);background:var(--white);padding:.2rem .9rem;box-shadow:4px 4px 0 var(--ink);font-weight:600}
.favs b{color:var(--pink)}

main{overflow:hidden}
section{padding:5rem clamp(1rem,4vw,3rem);max-width:1300px;margin:0 auto}
h2{font-size:clamp(2.2rem,6vw,4.4rem);line-height:.95;letter-spacing:-.03em;text-transform:uppercase}

/* hero */
.hero{text-align:center;position:relative;padding-top:2rem}
.kicker{font-weight:600;text-align:left}
h1{font-size:clamp(4rem,19vw,15rem);line-height:.8;letter-spacing:-.05em;display:flex;justify-content:space-between;margin-top:1rem}
.hero-glasses{position:absolute;left:50%;top:47%;width:min(640px,86%);transform:translate(-50%,-50%) rotate(-6deg);perspective:800px;pointer-events:none}
.hero-glasses svg{width:100%;display:block;filter:drop-shadow(10px 12px 0 var(--ink));transition:transform .2s ease-out}
.tints{display:flex;gap:.9rem;justify-content:center;margin-top:clamp(5rem,16vw,14rem);position:relative;z-index:2}
.tints button{width:54px;height:54px;border:3px solid var(--ink);border-radius:50%;cursor:pointer;box-shadow:4px 4px 0 var(--ink)}
.tints button[aria-checked="true"],.tints button[aria-pressed="true"]{outline:4px solid var(--pink);outline-offset:3px}
.tints.small{margin:0;justify-content:flex-start}.tints.small button{width:40px;height:40px;box-shadow:3px 3px 0 var(--ink)}
.tint-name{margin-top:1.2rem;font:1.3rem var(--d);text-transform:uppercase}

/* forma */
.forma p{max-width:48ch;margin:1rem 0 2rem}
.faces{display:flex;gap:1rem;flex-wrap:wrap}
.faces button,.btn{font:1.05rem var(--d);text-transform:uppercase;background:var(--white);color:var(--ink);border:3px solid var(--ink);padding:.8rem 1.4rem;cursor:pointer;box-shadow:6px 6px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.faces button:hover,.btn:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--ink)}
.faces button[aria-pressed="true"]{background:var(--pink)}
.btn{background:var(--ink);color:var(--bg)}
.advice{font-weight:600;font-size:1.2rem;margin-top:1.6rem!important;min-height:1.6em}

/* catálogo */
.cat-head{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:1.4rem;margin-bottom:2.2rem}
.tools{display:flex;gap:1rem}
label{display:flex;flex-direction:column;gap:.3rem;font-weight:600}
select,input,textarea{font:inherit;padding:.65rem .8rem;border:3px solid var(--ink);background:var(--white);color:var(--ink);border-radius:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.6rem}
.card{background:var(--white);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);display:flex;flex-direction:column;position:relative}
.card.match{background:var(--pink)}
.badge{position:absolute;top:-14px;left:12px;background:var(--ink);color:var(--bg);font:.8rem var(--d);padding:.2rem .7rem;transform:rotate(-3deg);z-index:2}
.card .pic{border-bottom:3px solid var(--ink);padding:1.6rem 1rem;cursor:pointer;background:none;border-left:0;border-right:0;border-top:0;display:block;width:100%}
.card .pic svg{width:100%;display:block;transition:transform .25s}
.card .pic:hover svg{transform:rotate(-5deg) scale(1.06)}
.card .info{padding:1rem 1.1rem 1.2rem;display:flex;justify-content:space-between;align-items:start;gap:.5rem}
.card h3{font-size:1.4rem;text-transform:uppercase;line-height:1}
.card small{display:block;margin-top:.3rem;font-weight:600;opacity:.75}
.price{font:1.3rem var(--d)}
.heart{font-size:1.5rem;background:none;border:0;cursor:pointer;line-height:1;color:var(--ink)}
.heart[aria-pressed="true"]{color:var(--pink);-webkit-text-stroke:2px var(--ink)}
.empty{font:1.4rem var(--d);padding:2rem 0}

.band{max-width:none;background:var(--ink);color:var(--bg);margin:2rem 0}
.band p{font:clamp(1.6rem,4.5vw,3.4rem)/1.05 var(--d);max-width:1100px;margin:0 auto;text-transform:uppercase}

/* contacto */
form{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1.6rem;margin-top:2rem;max-width:820px}
.full{grid-column:1/-1}
small[id]{color:#B00020;font-weight:600;min-height:1.2em}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#B00020;background:#FFE9ED}
form .btn,#ok{grid-column:1/-1}form .btn{justify-self:start}
#ok{font-weight:600;font-size:1.15rem}
footer{border-top:3px solid var(--ink);padding:1.6rem clamp(1rem,4vw,3rem);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}

/* diálogo */
dialog{border:3px solid var(--ink);box-shadow:10px 10px 0 var(--ink);padding:0;width:min(780px,calc(100% - 24px));background:var(--white);color:var(--ink);margin:auto}
dialog::backdrop{background:rgba(11,11,11,.6)}
dialog[open]{display:grid;grid-template-columns:1.1fr 1fr}
.dlg-pic{background:var(--bg);display:grid;place-items:center;padding:2rem 1rem;border-right:3px solid var(--ink);transition:background .6s}
.dlg-info{padding:2rem 1.6rem;display:flex;flex-direction:column;gap:1rem}
.dlg-info h3{font-size:2.2rem;text-transform:uppercase;line-height:.95}
.dlg-price{font:1.6rem var(--d)}
.x{position:absolute;right:10px;top:10px;font:1rem var(--d);border:3px solid var(--ink);background:var(--white);width:38px;height:38px;cursor:pointer;z-index:2}
.x:hover{background:var(--pink)}

@media(max-width:760px){
  .top nav{display:none}
  h1{font-size:23vw}
  .hero-glasses{top:36%}
  .tints{margin-top:9rem}
  .tints button{width:46px;height:46px}
  form,dialog[open]{grid-template-columns:1fr}
  .dlg-pic{border-right:0;border-bottom:3px solid var(--ink)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.belt{animation:none}*{transition:none!important}
}
