.pill,button{cursor:pointer}.pill.picked,.pill:hover,button:hover{transform:translateY(-1px)}#result,#result>*{position:relative}body,footer p,h1{margin:0}#result,.home,footer{text-align:center}.project-card,.question,button.primary{box-shadow:var(--shadow)}:root{--bg:#fff1e6;--bg-decoration:#ffd7ba;--card:#ffffff;--ink:#2e2d4d;--muted:#7a7a9b;--primary:#ff6b9d;--primary-dark:#e74e85;--accent:#7bc5d8;--border:#f1dfd1;--pick-bg:#ffe0e9;--pick-border:#ff6b9d;--shadow:0 4px 14px rgba(255, 107, 157, 0.12);--shadow-hover:0 6px 20px rgba(255, 107, 157, 0.22)}*{box-sizing:border-box}body{padding:2.5rem 1rem 4rem;font-family:Nunito,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);background-image:radial-gradient(circle at 10% 0,var(--bg-decoration) 0,transparent 35%),radial-gradient(circle at 90% 100%,#c3dfe0 0,transparent 40%);background-attachment:fixed;line-height:1.5;-webkit-font-smoothing:antialiased}.question h2,h1{font-family:Fredoka,Nunito,sans-serif;color:var(--ink)}main{max-width:640px;margin:0 auto}.header{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.paw{width:44px;height:44px;flex-shrink:0;color:var(--primary);animation:2.4s ease-in-out infinite wiggle}.hint,.subtitle{color:var(--muted)}@keyframes wiggle{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}h1{font-weight:600;font-size:2.5rem;letter-spacing:-.01em}.subtitle{margin:0 0 2rem;font-size:1.05rem}.question{background:var(--card);border:2px solid var(--border);border-radius:20px;padding:1.25rem 1.25rem 1.1rem;margin-bottom:1rem;transition:box-shadow .2s,transform .2s}#breed-search,.pill{border:2px solid var(--border);background:#fff}.pill,.project-card,button{transition:.15s}.question:hover{box-shadow:var(--shadow-hover)}.question h2{margin:0 0 .9rem;font-size:1.15rem;font-weight:500}.hint{font-weight:400;font-size:.85rem;margin-left:.35rem}.error,.pill.picked{color:var(--primary-dark)}.options{display:flex;flex-wrap:wrap;gap:.55rem}.pill{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:999px;font-size:.95rem;font-weight:500;user-select:none}.pill:hover{border-color:var(--primary);box-shadow:0 2px 6px rgba(255,107,157,.18)}.pill input{display:none}.pill.picked{background:var(--pick-bg);border-color:var(--pick-border);font-weight:700;box-shadow:0 2px 8px rgba(255,107,157,.25)}#breed-search:focus,.project-card:hover,button.primary,button:hover{border-color:var(--primary)}#breed-search{width:100%;padding:.6rem .9rem;margin-bottom:.75rem;border-radius:12px;font:inherit;transition:border-color .15s}#breed-search:focus{outline:0}#breed-list{max-height:220px;overflow-y:auto;padding:.5rem;border:2px solid var(--border);border-radius:14px;background:#fffaf5}button{font:inherit;padding:.65rem 1.3rem;border-radius:999px;border:2px solid var(--border);background:#fff;color:var(--ink);font-weight:600}button.primary{background:var(--primary);color:#fff;padding:.85rem 1.8rem;font-size:1.05rem;font-weight:700;width:100%;margin-top:.5rem}button.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:var(--shadow-hover)}button.primary:active{transform:translateY(0)}.error{min-height:1.2em;margin:0 0 .25rem;font-size:.9rem;font-weight:600}#result{margin-top:2.5rem;padding:2.5rem 1.5rem 2rem;background:linear-gradient(135deg,#fff 0,#fff1e6 100%);border:3px solid var(--pick-border);border-radius:28px;box-shadow:0 10px 40px rgba(255,107,157,.2);overflow:hidden;animation:.35s cubic-bezier(.17,.89,.32,1.275) cardPop}#result::after,#result::before{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:var(--pick-bg);opacity:.6;z-index:0}#result::before{top:-40px;left:-40px}#result::after{bottom:-40px;right:-40px;background:#c8ecf3;opacity:.5}#result>*{z-index:1}@keyframes cardPop{0%{opacity:0;transform:scale(.7) translateY(20px)}60%{opacity:1;transform:scale(1.03) translateY(-4px)}100%{opacity:1;transform:scale(1) translateY(0)}}.kicker{color:var(--muted);margin:0 0 .35rem;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em}.name-big,.project-card h2{font-family:Fredoka,Nunito,sans-serif;font-weight:600;color:var(--primary-dark)}.name-big{margin:0 0 1.5rem;font-size:4rem;letter-spacing:-.02em;line-height:1.1}.tagline,footer{color:var(--muted)}.name-big.animating{animation:.4s cubic-bezier(.17,.89,.32,1.275) namePop}@keyframes namePop{0%{opacity:0;transform:scale(.4) rotate(-8deg)}55%{opacity:1;transform:scale(1.12) rotate(3deg)}75%{transform:scale(.96) rotate(-1deg)}100%{opacity:1;transform:scale(1) rotate(0)}}.actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}.actions button{min-width:110px}#reroll{background:var(--accent);color:#fff;border-color:var(--accent)}#reroll:hover{background:#5eb5cd;border-color:#5eb5cd}.hidden{display:none!important}footer{margin-top:3rem;font-size:.8rem}.home{max-width:720px}.hero{margin:1rem 0 3rem}.hero .paw{width:64px;height:64px;margin:0 auto 1rem;display:block}.hero h1{font-size:3rem;margin:0 0 .5rem}.tagline{font-size:1.15rem;margin:0}.projects{display:grid;gap:1rem;text-align:left}.project-card{display:block;padding:1.5rem 1.75rem;background:var(--card);border:2px solid var(--border);border-radius:20px;text-decoration:none;color:var(--ink)}.project-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}.project-card h2{margin:0 0 .4rem;font-size:1.4rem}.project-card p{margin:0 0 .75rem;color:var(--muted)}.project-link{font-weight:700;color:var(--primary)}@media (max-width:500px){h1{font-size:2rem}.name-big{font-size:3rem}.paw{width:36px;height:36px}.hero h1{font-size:2.25rem}.hero .paw{width:48px;height:48px}}
/* === Embroidery gallery page === */
.gallery { max-width: 920px; }
.back-link {
  display: inline-block;
  color: var(--muted);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  margin-bottom: 1rem;
  transition: color 0.15s ease;
}
.back-link:hover { color: var(--primary); }
.hoop {
  width: 64px; height: 64px;
  margin: 0 auto 1rem;
  display: block;
  color: var(--primary);
  animation: 3s ease-in-out infinite hoopBob;
}
@keyframes hoopBob {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50%      { transform: translateY(-4px) rotate(2deg); }
}
.gallery-section {
  margin-bottom: 3rem;
}
.gallery-section h2 {
  font-family: Fredoka, Nunito, sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  color: var(--primary-dark);
  margin: 0 0 1rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.gallery-section h2::before {
  content: "";
  width: 12px; height: 12px;
  border-radius: 999px;
  background: var(--primary);
  flex-shrink: 0;
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.gallery-item {
  margin: 0;
  background: var(--card);
  border: 2px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
}
.gallery-item:hover {
  transform: translateY(-3px);
  border-color: var(--primary);
  box-shadow: var(--shadow-hover);
}
.gallery-item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}
.gallery-item figcaption {
  padding: 0.6rem 0.8rem 0.7rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
  text-align: center;
}
.gallery-item.hidden-extra { display: none; }
.gallery-section.expanded .gallery-item.hidden-extra { display: flex; }

.show-more {
  display: block;
  margin: 1rem auto 0;
  background: #fff;
  color: var(--primary-dark);
  border-color: var(--pick-border);
  font-size: 0.95rem;
  padding: 0.55rem 1.2rem;
}
.show-more:hover {
  background: var(--pick-bg);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(255, 107, 157, 0.18);
}

@media (max-width: 720px) {
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-section h2 { font-size: 1.4rem; }
}
@media (max-width: 420px) {
  .gallery-grid { grid-template-columns: 1fr; gap: 0.8rem; }
}

/* === Lightbox === */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(46, 45, 77, 0.92);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  animation: 0.2s ease-out fadeIn;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.lightbox-figure {
  margin: 0;
  max-width: 95vw;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.lightbox-figure img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
}
.lightbox-figure figcaption {
  color: #fff;
  font-family: Fredoka, Nunito, sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  text-align: center;
}
.lightbox-close,
.lightbox-nav {
  position: absolute;
  background: rgba(255, 255, 255, 0.92);
  color: var(--primary-dark);
  border: none;
  width: 44px; height: 44px;
  border-radius: 999px;
  font-size: 1.6rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: transform 0.15s ease, background 0.15s ease;
}
.lightbox-close { top: 1.2rem; right: 1.2rem; }
.lightbox-prev  { left: 1.2rem;  top: 50%; transform: translateY(-50%); }
.lightbox-next  { right: 1.2rem; top: 50%; transform: translateY(-50%); }
.lightbox-close:hover { transform: scale(1.08); background: #fff; }
.lightbox-prev:hover  { transform: translateY(-50%) scale(1.08); background: #fff; }
.lightbox-next:hover  { transform: translateY(-50%) scale(1.08); background: #fff; }

@media (max-width: 500px) {
  .lightbox { padding: 0.5rem; }
  .lightbox-close, .lightbox-nav { width: 38px; height: 38px; font-size: 1.4rem; }
  .lightbox-figure figcaption { font-size: 1rem; }
}

.lightbox-original {
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  opacity: 0.75;
  border-bottom: 1px solid rgba(255,255,255,0.4);
  padding-bottom: 1px;
  transition: opacity 0.15s ease, border-color 0.15s ease;
}
.lightbox-original:hover {
  opacity: 1;
  border-bottom-color: #fff;
}
