/* Shared product demo. Scoped under .gfty-demo so it cannot restyle the app or legal pages. */
.gfty-demo{
  --gfty-red:#E0312B;
  --ribbon:#D8232A;
  --ink:#17110F;
  --muted:#6B615C;
  line-height:1.65;
}
html:has(.gfty-demo),
body:has(.gfty-demo){overflow-x:clip;}

.gfty-demo .gfty-demo-block{padding:200px 0 160px;}
.gfty-demo .gfty-demos-inner{max-width:1040px;margin:0 auto;}
.gfty-demo .gfty-demo-kicker{
  margin:0 0 .7rem;
  font-family:"Archivo",system-ui,sans-serif;
  font-size:13px;
  font-weight:500;
  color:var(--muted);
  letter-spacing:0;
}
.gfty-demo .gfty-demo-headline{
  margin:0 0 .85rem;
  font-family:"Newsreader",Georgia,serif;
  font-weight:400;
  font-size:clamp(1.85rem,3.4vw,2.55rem);
  line-height:1.18;
  letter-spacing:-.02em;
  max-width:18ch;
}
.gfty-demo .gfty-demo-lede{
  margin:0 0 3rem;
  max-width:38ch;
  color:var(--muted);
  font-family:"Archivo",system-ui,sans-serif;
  font-size:.95rem;
  font-weight:500;
  line-height:1.55;
}
.gfty-demo .gfty-year-line{position:relative;height:72px;margin:0 0 2.25rem;}
.gfty-demo .gfty-year-rail{position:absolute;left:0;right:0;top:10px;height:1px;background:#d8d2cc;}
.gfty-demo .gfty-year-traveler{
  position:absolute;top:1px;width:20px;height:20px;margin-left:-10px;border-radius:50%;
  background:var(--gfty-red);transition:left 1100ms cubic-bezier(.65,0,.35,1);z-index:2;
}
.gfty-demo .gfty-year-mark{
  appearance:none;background:none;border:0;padding:0;position:absolute;top:0;
  transform:translateX(-50%);cursor:pointer;color:var(--ink);
}
.gfty-demo .gfty-year-mark:focus-visible{outline:2px solid var(--gfty-red);outline-offset:4px;}
.gfty-demo .gfty-year-dot{
  display:block;width:14px;height:14px;margin:3px auto 8px;border-radius:50%;
  border:1px solid var(--ink);background:transparent;box-sizing:border-box;
}
.gfty-demo .gfty-year-mark.is-done .gfty-year-dot{background:var(--ink);}
.gfty-demo .gfty-year-date{
  display:block;font-family:"Archivo",system-ui,sans-serif;font-size:12px;font-weight:500;
  color:var(--muted);white-space:nowrap;
}
.gfty-demo .gfty-year-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin:0 0 1.75rem;
}
.gfty-demo .gfty-year-name{
  margin:0;font-family:"Newsreader",Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;
}
.gfty-demo .gfty-year-interests{
  margin:.35rem 0 0;font-family:"Archivo",system-ui,sans-serif;font-size:13px;font-weight:500;
  color:var(--muted);max-width:36ch;
}
.gfty-demo .gfty-year-status{
  margin:0;display:flex;align-items:center;gap:.45rem;font-family:"Archivo",system-ui,sans-serif;
  font-size:13px;font-weight:500;color:var(--muted);text-align:right;
}
.gfty-demo .gfty-year-status-dot{width:6px;height:6px;border-radius:50%;background:var(--gfty-red);flex:none;}
.gfty-demo #gfty_year{padding-top:1.5rem;}
.gfty-demo .gfty-year-stage{position:relative;max-width:none;}
.gfty-demo .gfty-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;min-height:0;}
.gfty-demo .gfty-year-more{
  position:static;margin:.85rem 0 0;text-align:left;
  font-family:"Archivo",system-ui,sans-serif;font-size:13px;font-weight:500;color:var(--muted);
  opacity:1;transform:none;pointer-events:none;
}
.gfty-demo .picks-card{cursor:default;}
.gfty-demo .picks-chosen{
  position:absolute;z-index:4;top:8px;left:8px;
  font-family:"Archivo",system-ui,sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.02em;color:var(--ink);background:rgba(255,255,255,.92);
  border:1px solid var(--rule);border-radius:999px;padding:2px 7px;
}
.gfty-demo .gfty-year-more.is-on{opacity:1;transform:none;}
.gfty-demo .gfty-gift{
  position:relative;min-height:0;border:1.5px solid transparent;border-radius:8px;padding:6px;margin:-6px;
  opacity:0;transform:translateY(8px);
  transition:opacity 700ms cubic-bezier(.65,0,.35,1),transform 700ms cubic-bezier(.65,0,.35,1),border-color 700ms cubic-bezier(.65,0,.35,1);
}
.gfty-demo .gfty-gift.is-in{opacity:1;transform:none;}
.gfty-demo .gfty-year-grid .gfty-gift:nth-child(1).is-in{transition-delay:0ms;}
.gfty-demo .gfty-year-grid .gfty-gift:nth-child(2).is-in{transition-delay:250ms;}
.gfty-demo .gfty-year-grid .gfty-gift:nth-child(3).is-in{transition-delay:500ms;}
.gfty-demo .gfty-year-grid .gfty-gift:nth-child(4).is-in{transition-delay:0ms;}
.gfty-demo .gfty-year-grid .gfty-gift:nth-child(5).is-in{transition-delay:220ms;}
.gfty-demo .gfty-year-grid .gfty-gift:nth-child(6).is-in{transition-delay:440ms;}
.gfty-demo .gfty-gift.is-chosen{border-color:var(--gfty-red);}
.gfty-demo .gfty-gift-tile{
  position:relative;aspect-ratio:1;border-radius:8px;background:#ece8e4;overflow:hidden;margin:0 0 .55rem;
  display:flex;align-items:center;justify-content:center;
}
.gfty-demo .gfty-tile-mark{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;
  width:100%;height:100%;padding:.45rem .4rem .5rem;text-align:center;
}
.gfty-demo .gfty-tile-word{
  display:inline-flex;align-items:center;font-family:"Archivo",system-ui,sans-serif;font-weight:700;
  font-size:.7rem;letter-spacing:.28em;line-height:1;padding-right:.28em;color:var(--ink);
}
.gfty-demo .gfty-tile-dot{width:.34em;height:.34em;margin-left:.12em;border-radius:50%;background:var(--ribbon);flex:none;}
.gfty-demo .gfty-tile-note{
  display:block;max-width:14em;font-family:"Archivo",system-ui,sans-serif;font-size:10px;font-weight:500;
  line-height:1.3;color:var(--muted);
}
.gfty-demo .gfty-lb-gift .gfty-tile-mark{gap:.2rem;padding:.3rem .25rem;}
.gfty-demo .gfty-lb-gift .gfty-tile-word{font-size:.62rem;letter-spacing:.16em;padding-right:.16em;}
.gfty-demo .gfty-lb-gift .gfty-tile-note{font-size:8px;line-height:1.2;max-width:11em;}
.gfty-demo .gfty-gift-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;}
.gfty-demo .gfty-gift-title{
  font-family:"Archivo",system-ui,sans-serif;font-size:12px;font-weight:500;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.gfty-demo .gfty-gift-price{font-family:"Archivo",system-ui,sans-serif;font-size:12px;font-weight:500;color:var(--muted);flex:none;}
.gfty-demo .gfty-gift-went{
  display:none;font-family:"Archivo",system-ui,sans-serif;font-size:11px;font-weight:500;
  color:var(--gfty-red);flex:none;white-space:nowrap;
}
.gfty-demo .gfty-gift.is-chosen .gfty-gift-price{display:none;}
.gfty-demo .gfty-gift.is-chosen .gfty-gift-went{display:inline;}
.gfty-demo .gfty-gift-like{
  position:absolute;top:10px;right:10px;color:var(--gfty-red);opacity:0;transform:translateY(8px);
  transition:opacity 600ms cubic-bezier(.65,0,.35,1),transform 600ms cubic-bezier(.65,0,.35,1);
  pointer-events:none;
}
.gfty-demo .gfty-gift.is-liked .gfty-gift-like{opacity:1;transform:none;}
.gfty-demo .gfty-gift-like svg{display:block;}
.gfty-demo .gfty-lookbook-bleed{
  width:100vw;margin-left:calc(50% - 50vw);margin-top:.5rem;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 80px,#000 calc(100% - 80px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 80px,#000 calc(100% - 80px),transparent);
}
.gfty-demo .gfty-lookbook-track{display:flex;width:max-content;animation:gfty-lookbook-drift 70s linear infinite;}
.gfty-demo .gfty-lookbook-set{display:flex;gap:18px;padding-right:18px;}
.gfty-demo .gfty-lookbook-track.is-paused{animation-play-state:paused;}
.gfty-demo [data-lookbook-root].is-static{
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:none;mask-image:none;
}
.gfty-demo [data-lookbook-root].is-static .gfty-lookbook-track{animation:none;padding:0 1.75rem;}
.gfty-demo [data-lookbook-root].is-static .gfty-lb-card{scroll-snap-align:start;}
@media (hover:hover){
  .gfty-demo .gfty-lookbook-bleed:hover .gfty-lookbook-track,
  .gfty-demo .gfty-lookbook-bleed:focus-within .gfty-lookbook-track{animation-play-state:paused;}
}
@keyframes gfty-lookbook-drift{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.gfty-demo .gfty-lb-card{flex:0 0 360px;width:360px;border:0.5px solid #e4ddd6;border-radius:12px;padding:16px;background:transparent;}
.gfty-demo .gfty-lb-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;}
.gfty-demo .gfty-lb-line1{margin:0;font-family:"Newsreader",Georgia,serif;font-size:1.2rem;font-weight:400;line-height:1.2;}
.gfty-demo .gfty-lb-line2{
  margin:.15rem 0 0;font-family:"Newsreader",Georgia,serif;font-size:1.15rem;font-style:italic;
  font-weight:400;color:var(--muted);line-height:1.2;
}
.gfty-demo .gfty-lb-date{
  margin:0;display:flex;align-items:center;gap:.35rem;font-family:"Archivo",system-ui,sans-serif;
  font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap;
}
.gfty-demo .gfty-lb-date span{width:6px;height:6px;border-radius:50%;background:var(--gfty-red);flex:none;}
.gfty-demo .gfty-lb-meta{margin:.55rem 0 .9rem;font-family:"Archivo",system-ui,sans-serif;font-size:12px;font-weight:500;color:var(--muted);}
.gfty-demo .gfty-lb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 8px;}
.gfty-demo .gfty-lb-gift .gfty-gift-tile{margin:0 0 .3rem;}
.gfty-demo .gfty-lb-gift-title,
.gfty-demo .gfty-lb-gift-price{
  margin:0;font-family:"Archivo",system-ui,sans-serif;font-size:12px;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.gfty-demo .gfty-lb-gift-price{color:var(--muted);}
@media (prefers-reduced-motion:reduce){
  .gfty-demo .gfty-year-traveler{transition:none;}
  .gfty-demo .gfty-gift,
  .gfty-demo .gfty-year-more,
  .gfty-demo .gfty-gift-like{transition:none;opacity:1;transform:none;}
  .gfty-demo .gfty-lookbook-track{animation:none;}
}
@media (max-width:767px){
  .gfty-demo .gfty-demo-block{padding:96px 0;}
  .gfty-demo .gfty-year-stage{max-width:none;}
  .gfty-demo .gfty-year-grid{grid-template-columns:1fr;gap:1rem;}
  .gfty-demo .gfty-tile-note{font-size:9px;}
  .gfty-demo .gfty-year-head{flex-direction:column;gap:.65rem;}
  .gfty-demo .gfty-year-status{text-align:left;}
  .gfty-demo .gfty-lb-card{flex-basis:300px;width:300px;}
  .gfty-demo .gfty-lookbook-bleed{
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent);
    mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent);
  }
  .gfty-demo .gfty-lookbook-track{padding:0;}
}
