/* ==========================================================================
   NATIVE PUNK — few made. always native.
   Single stylesheet, mobile-first, no frameworks.
   ========================================================================== */

:root{
  --ink:#050505;
  --ink-2:#0a0a0b;
  --ink-3:#101012;
  --bone:#f2ece0;
  --ash:#a9a29a;
  --blood:#d2111f;
  --blood-deep:#8c0a12;
  --display:'Anton', 'Haettenschweiler', 'Arial Narrow', Impact, sans-serif;
  --body:'Barlow', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
  --pad:clamp(1.15rem, 4.5vw, 3.5rem);
  --max:1280px;
  --line:rgba(242,236,224,.09);
}

*,*::before,*::after{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  scroll-padding-top:78px;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--ink);
  color:var(--bone);
  font-family:var(--body);
  font-size:1rem;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* film grain over everything */
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:90;
  pointer-events:none;
  opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
}

img{max-width:100%; display:block}
h1,h2,h3,p{margin:0}
a{color:inherit}

::selection{background:var(--blood); color:#fff}

:focus-visible{outline:2px solid #fff; outline-offset:3px}

.sprite{position:absolute; width:0; height:0; overflow:hidden}

.skip{
  position:absolute;
  left:.75rem;
  top:-4rem;
  z-index:200;
  background:var(--blood);
  color:#fff;
  padding:.7rem 1rem;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  transition:top .2s;
}
.skip:focus{top:.75rem}

/* ============================ buttons ============================ */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.95rem 1.3rem;
  background:var(--blood);
  color:#fff;
  border:1px solid var(--blood);
  border-radius:0;
  font-family:var(--mono);
  font-weight:700;
  font-size:.76rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn:hover{background:var(--bone); border-color:var(--bone); color:#050505; transform:translateY(-2px)}
.btn:active{transform:translateY(0)}

.btn--sm{padding:.55rem .8rem; font-size:.64rem; letter-spacing:.12em}
.btn--xl{padding:1.1rem 1.5rem; font-size:.84rem}

.btn--ghost{
  background:transparent;
  color:var(--bone);
  border-color:rgba(242,236,224,.32);
}
.btn--ghost:hover{background:transparent; color:#fff; border-color:#fff}

.btn--inverse{
  background:#050505;
  color:var(--bone);
  border-color:#050505;
}
.btn--inverse:hover{background:var(--bone); color:#050505; border-color:var(--bone)}

/* ============================ top bar ============================ */

.topbar{
  position:sticky;
  top:0;
  z-index:80;
  background:rgba(5,5,5,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(210,17,31,.5);
}
.topbar__in{
  max-width:var(--max);
  margin:0 auto;
  padding:.55rem var(--pad);
  display:flex;
  align-items:center;
  gap:1rem;
  min-height:58px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  text-decoration:none;
  color:var(--bone);
  margin-right:auto;
}
.brand__mark{width:20px; height:25px; fill:var(--blood); flex:none}
.brand__word{
  font-family:var(--display);
  text-transform:uppercase;
  font-size:1.05rem;
  letter-spacing:.13em;
  line-height:1;
  white-space:nowrap;
}

.nav{display:none; gap:1.35rem}
.nav a{
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ash);
  text-decoration:none;
  padding:.35rem 0;
  border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;
}
.nav a:hover{color:var(--bone); border-bottom-color:var(--blood)}

@media (min-width:760px){
  .nav{display:flex}
}

/* ============================ hero ============================ */

.hero{
  max-width:var(--max);
  margin:0 auto;
  padding:clamp(1.4rem,4.5vw,2.8rem) var(--pad) clamp(1.5rem,5vw,3rem);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:
    "eyebrow"
    "title"
    "art"
    "tag"
    "note"
    "cta";
  gap:.9rem;
  align-items:start;
}

.hero__eyebrow{
  grid-area:eyebrow;
  display:flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ash);
}
.dot{
  width:.45rem;
  height:.45rem;
  background:var(--blood);
  flex:none;
  animation:pulse 2.4s ease-in-out infinite;
}

.hero__title{
  grid-area:title;
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(3.4rem, 29vw, 7.5rem);
  line-height:.79;
  letter-spacing:-.012em;
  text-transform:uppercase;
  margin-top:.15em;
}
.line{display:block}
.line--blood{color:var(--blood); margin-left:-.02em}

.hero__art{
  grid-area:art;
  position:relative;
  width:100%;
  max-width:min(540px, 90vw);
  margin:.4rem auto .2rem;
  aspect-ratio:1 / 1;
  isolation:isolate;
}
.hero__art img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
}
.hero__glow{
  position:absolute;
  inset:6%;
  z-index:0;
  border-radius:50%;
  background:radial-gradient(circle at 50% 48%, rgba(210,17,31,.42), rgba(210,17,31,.1) 46%, transparent 72%);
  filter:blur(18px);
}

.stamp{
  position:absolute;
  right:-1%;
  bottom:1%;
  z-index:2;
  width:clamp(84px, 26%, 148px);
  height:auto;
  animation:spin 36s linear infinite;
}
.stamp__text{
  font-family:var(--display);
  text-transform:uppercase;
}

.hero__tagline{
  grid-area:tag;
  font-family:var(--display);
  font-size:clamp(1.5rem, 7vw, 2.1rem);
  line-height:.95;
  text-transform:uppercase;
  letter-spacing:.005em;
}
.hero__tagline em{font-style:normal; color:var(--blood)}

.hero__note{
  grid-area:note;
  color:#bdb7ad;
  font-size:clamp(.98rem, 2.4vw, 1.1rem);
  line-height:1.6;
  max-width:44ch;
}

.hero__cta{
  grid-area:cta;
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:.5rem;
}
.hero__cta .btn{flex:1 1 100%}

@media (min-width:520px){
  .hero__cta .btn{flex:1 1 auto}
}

@media (min-width:900px){
  .hero{
    grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
    grid-template-areas:
      "eyebrow art"
      "title   art"
      "tag     art"
      "note    art"
      "cta     art";
    column-gap:clamp(1.5rem,2.5vw,3rem);
    padding-top:clamp(2.5rem,4vw,4rem);
    padding-bottom:clamp(2.5rem,4vw,4rem);
    align-items:start;
  }
  .hero__title{font-size:clamp(6rem, 11.4vw, 11rem)}
  .hero__art{margin-top:-.5rem; max-width:100%}
  .hero__cta{margin-top:1rem}
  .hero__note{font-size:1.08rem}
}

/* ============================ ticker ============================ */

.ticker{
  overflow:hidden;
  border-block:1px solid rgba(210,17,31,.55);
  background:#080203;
  margin-top:clamp(1.5rem,5vw,3rem);
}
.ticker__track{
  display:flex;
  align-items:center;
  gap:1.5rem;
  width:max-content;
  padding:.55rem 0;
  animation:slide 34s linear infinite;
}
.ticker span{
  font-family:var(--display);
  font-size:clamp(.95rem, 2.6vw, 1.45rem);
  letter-spacing:.09em;
  text-transform:uppercase;
  white-space:nowrap;
  color:var(--bone);
}
.ticker b{color:var(--blood); font-size:.7rem; line-height:1}

@keyframes slide{from{transform:translateX(0)} to{transform:translateX(-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1} 50%{opacity:.25}}

/* ============================ sections ============================ */

.section{
  max-width:var(--max);
  margin:0 auto;
  padding:clamp(3rem, 8vw, 5.5rem) var(--pad);
}
.section--tint{
  background:#080809;
  border-block:1px solid var(--line);
}

.section__head{
  max-width:64ch;
  display:grid;
  gap:.85rem;
  margin-bottom:clamp(1.7rem, 4vw, 2.8rem);
}
.label{
  display:flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--mono);
  font-size:.64rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--blood);
}
.label::before{
  content:"";
  width:.5rem;
  height:.5rem;
  background:var(--blood);
  flex:none;
}
h2{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(2.3rem, 9vw, 4.6rem);
  line-height:.87;
  text-transform:uppercase;
  letter-spacing:0;
}
@media (min-width:900px){
  h2{font-size:clamp(2.6rem, 5.2vw, 4.6rem)}
}
.section__sub{
  color:var(--ash);
  font-size:clamp(.95rem, 2.2vw, 1.04rem);
  line-height:1.65;
  max-width:58ch;
}
.section__sub strong{color:var(--bone); font-weight:600}
.blood{color:var(--blood)}

/* ============================ drops ============================ */

.drops{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(1rem, 2.5vw, 1.5rem);
  max-width:430px;
  margin-inline:auto;
}
@media (min-width:640px){
  .drops{grid-template-columns:repeat(2, minmax(0,1fr)); max-width:none}
}
@media (min-width:1000px){
  .drops{grid-template-columns:repeat(3, minmax(0,1fr))}
}

.drop{
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--ink-2);
  border:1px solid #202024;
  color:inherit;
  text-decoration:none;
  overflow:hidden;
  transition:border-color .25s ease, background .25s ease, transform .25s ease;
}
.drop:hover,.drop:focus-visible{
  border-color:var(--blood);
  background:#0d0909;
  transform:translateY(-3px);
}

.drop__art{
  position:relative;
  aspect-ratio:1 / 1;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 50% 26%, #1b1b1d 0%, #0d0d0f 52%, #070708 100%);
}
.art__tag{
  position:absolute;
  top:.7rem;
  left:.7rem;
  z-index:3;
  padding:.28rem .42rem;
  background:rgba(5,5,5,.65);
  border:1px solid #2c2c2f;
  color:#948e86;
  font-family:var(--mono);
  font-size:.52rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.2;
}

.drop__art-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .45s ease;
}
.drop:hover .drop__art-img{transform:scale(1.03)}

.drop__body{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:.35rem;
  padding:1rem 1.05rem 1.1rem;
}
.drop__row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.75rem;
}
.drop__name{
  font-family:var(--display);
  font-weight:400;
  font-size:1.28rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.005em;
}
.drop__price{
  font-family:var(--display);
  font-size:1.28rem;
  line-height:1;
  color:var(--blood);
}
.drop__meta{
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#8d877f;
  margin-bottom:.75rem;
}
.drop__cta{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  padding:.85rem .9rem;
  background:var(--blood);
  color:#fff;
  font-family:var(--mono);
  font-weight:700;
  font-size:.68rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  line-height:1;
  transition:background .2s ease, color .2s ease;
}
.drop:hover .drop__cta,.drop:focus-visible .drop__cta{
  background:var(--bone);
  color:#050505;
}

/* ============================ designs ============================ */

.designs{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:.7rem;
}
@media (min-width:640px){
  .designs{grid-template-columns:repeat(3, minmax(0,1fr)); gap:1rem}
}

.design{
  position:relative;
  display:grid;
  grid-template-rows:auto auto;
  overflow:hidden;
  background:#0a0a0b;
  border:1px solid #1c1c1f;
  container-type:inline-size;
  transition:border-color .25s ease, background .25s ease;
}
.design:hover{border-color:rgba(210,17,31,.7)}
.design img{
  width:100%;
  height:auto;
  aspect-ratio:4 / 5;
  object-fit:contain;
  padding:4%;
  background:#0a0a0b;
}

.design__overlay{
  display:grid;
  justify-items:start;
  gap:.35rem;
  padding:.8rem .8rem .9rem;
  border-top:1px solid #1c1c1f;
  background:#0a0a0b;
}
.design__tag{
  padding:.2rem .34rem;
  border:1px solid rgba(210,17,31,.55);
  color:var(--blood);
  font-family:var(--mono);
  font-size:.46rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  line-height:1.3;
  background:rgba(5,5,5,.5);
}
.design__title{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(.98rem, 5.2cqw, 1.35rem);
  line-height:.93;
  text-transform:uppercase;
  letter-spacing:.005em;
}
.design__title > span{
  display:block;
  margin-top:.18em;
  font-size:.6em;
  letter-spacing:.03em;
  color:var(--ash);
}
/* the real badge artwork already carries 1492, so the decorative watermark is suppressed */
.design--badge .design__num{display:none}

/* ============================ lookbook ============================ */

.lookbook__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(.9rem, 2.2vw, 1.2rem);
  max-width:430px;
  margin-inline:auto;
}
@media (min-width:620px){
  .lookbook__grid{grid-template-columns:repeat(2, minmax(0,1fr)); max-width:none}
}
@media (min-width:1000px){
  .lookbook__grid{grid-template-columns:repeat(4, minmax(0,1fr))}
}

.lookbook__item{
  margin:0;
  display:flex;
  flex-direction:column;
  background:var(--ink-2);
  border:1px solid #202024;
  overflow:hidden;
  transition:border-color .25s ease, transform .25s ease;
}
.lookbook__item:hover,.lookbook__item:focus-within{
  border-color:var(--blood);
  transform:translateY(-2px);
}

.lookbook__item img{
  width:100%;
  height:auto;
  aspect-ratio:3 / 4;
  object-fit:cover;
  object-position:50% 24%;
  display:block;
  background:#0a0a0b;
}

.lookbook__item figcaption{
  padding:.7rem .75rem .8rem;
  border-top:2px solid var(--blood);
  font-family:var(--mono);
  font-size:.55rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--ash);
  line-height:1.5;
}

/* ============================ artist ============================ */

.artist{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(1.8rem, 5vw, 3.5rem);
  align-items:start;
}
@media (min-width:880px){
  .artist{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center}
}
.artist__copy{display:grid; gap:1rem; justify-items:start}
.artist__copy h2{margin-bottom:.2rem}
.artist__copy p{color:#bdb7ad; max-width:54ch; line-height:1.72}
.artist__sign{
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--bone);
  margin-top:.4rem;
}
.artist__art{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:1.2rem;
  padding:clamp(1.4rem, 4vw, 2.2rem);
  min-height:250px;
  border:1px solid rgba(210,17,31,.35);
  background:
    radial-gradient(circle at 22% 12%, rgba(210,17,31,.22), transparent 62%),
    #0a0a0b;
  overflow:hidden;
}
.artist__art::after{
  content:"";
  position:absolute;
  right:-12%;
  bottom:-18%;
  width:70%;
  aspect-ratio:1;
  border:1px solid rgba(210,17,31,.22);
  border-radius:50%;
}
.artist__hand{
  width:clamp(64px, 15vw, 104px);
  height:auto;
  fill:var(--blood);
  position:relative;
  z-index:1;
}
.artist__quote{
  position:relative;
  z-index:1;
  font-family:var(--display);
  font-size:clamp(1.7rem, 6vw, 2.6rem);
  line-height:.88;
  text-transform:uppercase;
}

.about-photo{
  grid-column:1 / -1;
  width:100%;
  max-width:560px;
  margin:clamp(1.6rem, 4vw, 2.6rem) auto 0;
  padding:0;
}
.about-photo img{
  width:100%;
  height:auto;
  display:block;
  border:1px solid #26262a;
  background:#0a0a0b;
}
.about-photo figcaption{
  margin-top:.85rem;
  padding-top:.7rem;
  border-top:2px solid var(--blood);
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--ash);
}

/* ============================ follow ============================ */

.follow__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.9rem;
}
@media (min-width:820px){
  .follow__grid{grid-template-columns:1fr 1fr}
  .shopcard{grid-column:2; grid-row:1 / span 2}
}

.social{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:.1rem .8rem;
  padding:1.05rem 1.1rem;
  background:var(--ink-2);
  border:1px solid #222226;
  text-decoration:none;
  transition:border-color .2s ease, background .2s ease;
}
.social:hover{border-color:var(--blood); background:#0d0909}
.social__k{
  font-family:var(--mono);
  font-size:.56rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ash);
}
.social__v{
  font-family:var(--display);
  font-size:clamp(1.3rem, 5vw, 1.6rem);
  line-height:1;
  text-transform:uppercase;
}
.social__arrow{
  grid-column:2;
  grid-row:1 / span 2;
  font-size:1.3rem;
  color:var(--blood);
}

.shopcard{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.55rem;
  padding:clamp(1.4rem, 4vw, 2.2rem);
  background:var(--blood);
  color:#050505;
}
.shopcard__k{
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(5,5,5,.78);
}
.shopcard__title{
  font-family:var(--display);
  font-size:clamp(1.8rem, 6.5vw, 2.7rem);
  line-height:.9;
  text-transform:uppercase;
}
.shopcard__note{
  font-size:.95rem;
  line-height:1.55;
  color:rgba(5,5,5,.86);
  max-width:30ch;
}
.shopcard .btn{margin-top:.9rem; width:100%}
@media (min-width:520px){
  .shopcard .btn{width:auto}
}

/* ============================ footer ============================ */

.footer{
  border-top:1px solid #1b1b1e;
  padding:2.2rem var(--pad) 2.8rem;
}
.footer__in{
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  gap:.55rem;
  justify-items:start;
}
.footer__brand{
  font-family:var(--display);
  font-size:1.55rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.footer__brand span{color:var(--blood)}
.footer__note{color:#928d85; font-size:.86rem; max-width:52ch}
.footer__legal{
  font-family:var(--mono);
  font-size:.56rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#5f5b56;
  margin-top:.7rem;
}

/* ============================ motion ============================ */

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .ticker__track{animation:none}
  .stamp{animation:none}
}
