/* =========================================================
   KORA — design tokens
   Indigo dye / Kora raw cotton / Charcoal / Madder root / Thread gold
   Display: Instrument Serif (italic) · Body: Inter · Labels: Space Mono
========================================================= */
:root{
  --indigo-deep: #141C2B;
  --indigo:      #24344A;
  --kora:        #E9E2D0;
  --kora-paper:  #F2EDDF;
  --charcoal:    #1A1815;
  --madder:      #9C3A2C;
  --madder-soft: #C05B44;
  --thread:      #B9924C;
  --line:        rgba(26,24,21,0.14);
  --line-light:  rgba(233,226,208,0.2);

  --font-display: "Instrument Serif", serif;
  --font-body: "Inter", sans-serif;
  --font-mono: "Space Mono", monospace;

  --container: 1180px;
  --radius: 2px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0; background: var(--kora); color: var(--charcoal);
  font-family: var(--font-body); font-size: 16px; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3{ font-family: var(--font-display); font-weight: 400; margin:0; color: var(--charcoal); }
p{ margin:0; }
a{ color: inherit; text-decoration: none; }
button{ font-family: inherit; cursor:pointer; }

.tag-label{
  font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--madder); margin: 0 0 0.9rem;
}

/* =============== NAV =============== */
.nav{
  position: sticky; top:0; z-index: 100;
  background: rgba(233,226,208,0.88); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav__inner{
  max-width: var(--container); margin:0 auto; padding: 1.1rem 1.5rem;
  display:flex; align-items:center; justify-content: space-between;
}
.nav__mark{
  font-family: var(--font-display); font-style: italic; font-size: 1.6rem;
  letter-spacing: 0.02em;
}
.nav__links{ display:flex; align-items:center; gap: 2rem; }
.nav__links a{ font-size: 0.85rem; color: var(--indigo); transition: color 0.2s var(--ease); }
.nav__links a:hover{ color: var(--madder); }
.nav__cta{
  border: 1px solid var(--charcoal); padding: 0.5rem 1.05rem; border-radius: var(--radius);
  color: var(--charcoal) !important;
}
.nav__cta:hover{ background: var(--charcoal); color: var(--kora) !important; }
.nav__burger{ display:none; background:none; border:none; flex-direction:column; gap:5px; padding:0.4rem; }
.nav__burger span{ width:22px; height:2px; background: var(--charcoal); display:block; transition: transform .25s var(--ease), opacity .25s var(--ease); }
.nav__burger.is-open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav__burger.is-open span:nth-child(2){ opacity:0; }
.nav__burger.is-open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
.nav__mobile{ display:none; flex-direction:column; border-top: 1px solid var(--line); background: var(--kora); }
.nav__mobile a{ padding: 1rem 1.5rem; border-bottom: 1px solid var(--line); font-size: 0.95rem; }
.nav__mobile.is-open{ display:flex; }

/* =============== HERO =============== */
.hero{
  max-width: var(--container); margin: 0 auto; padding: 4.5rem 1.5rem 3rem;
  display: grid; grid-template-columns: 1fr 0.9fr; gap: 2rem; align-items: center;
  min-height: 76vh;
}
.hero__title{
  font-size: clamp(2.8rem, 6vw, 4.6rem); line-height: 0.98; letter-spacing: -0.01em;
  margin-bottom: 1.6rem;
}
.hero__title em{ font-style: italic; color: var(--madder); }
.hero__sub{ max-width: 440px; color: var(--indigo); font-size: 1.05rem; margin-bottom: 2.2rem; }
.hero__actions{ display:flex; gap: 1rem; flex-wrap: wrap; }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 0.85rem 1.7rem; border-radius: var(--radius);
  font-size: 0.9rem; font-weight: 500; letter-spacing: 0.01em;
  transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  border: 1px solid transparent;
}
.btn--primary{ background: var(--charcoal); color: var(--kora); }
.btn--primary:hover{ background: var(--madder); transform: translateY(-2px); }
.btn--ghost{ border-color: var(--charcoal); color: var(--charcoal); }
.btn--ghost:hover{ background: var(--charcoal); color: var(--kora); transform: translateY(-2px); }
.btn--wide{ width:100%; padding: 0.95rem; }

.hero__weave{ position: relative; }
.weave-svg{ width: 100%; height: auto; color: var(--indigo); opacity: 0.85; }
.thread{
  stroke-dasharray: 900; stroke-dashoffset: 900;
  animation: threadDraw 1.1s var(--ease) forwards;
  animation-delay: calc(var(--d) * 0.09s);
}
.thread--madder{ stroke: var(--madder); }
@keyframes threadDraw{ to{ stroke-dashoffset: 0; } }
.hero__swatch{
  position: absolute; bottom: -0.4rem; left: 0.5rem;
  font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.05em;
  color: var(--indigo); background: var(--kora-paper);
  padding: 0.4rem 0.7rem; border: 1px solid var(--line);
}

/* =============== MANIFESTO STRIP =============== */
.manifesto{ background: var(--indigo-deep); color: var(--kora); padding: 4.5rem 1.5rem; }
.manifesto p{
  max-width: 760px; margin: 0 auto; text-align:center;
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(1.3rem, 2.6vw, 1.9rem); line-height: 1.45;
}
.manifesto em{ font-style: italic; color: var(--thread); }

/* =============== SECTION HEAD =============== */
.section-head{ max-width: var(--container); margin: 0 auto; padding: 5rem 1.5rem 2.6rem; }
.section-head h2{ font-size: clamp(1.8rem, 3.4vw, 2.5rem); font-style: italic; max-width: 640px; }
.section-head--light .tag-label{ color: var(--thread); }
.section-head--light h2{ color: var(--kora); }

/* =============== COLLECTION / SWING TAGS =============== */
.collection{ max-width: var(--container); margin: 0 auto; padding: 0 1.5rem 5.5rem; }
.tag-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 1.6rem; }

.swing-tag{
  position: relative; background: var(--kora-paper);
  border: 1px solid var(--line); border-radius: 4px;
  padding: 1.8rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap: 0.5rem;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
  opacity: 0; transform: translateY(18px) rotate(0deg);
}
.swing-tag.is-visible{ animation: tagRise 0.75s var(--ease) forwards; }
.swing-tag--tilt-l.is-visible{ animation-name: tagRiseL; }
.swing-tag--tilt-r.is-visible{ animation-name: tagRiseR; }
@keyframes tagRise{ to{ opacity:1; transform: translateY(0) rotate(0deg);} }
@keyframes tagRiseL{ to{ opacity:1; transform: translateY(0) rotate(-1.4deg);} }
@keyframes tagRiseR{ to{ opacity:1; transform: translateY(0) rotate(1.4deg);} }
.swing-tag:hover{ transform: rotate(0deg) translateY(-4px) !important; box-shadow: 0 14px 26px -18px rgba(26,24,21,0.35); }

.swing-tag__hole{
  position:absolute; top: 0.9rem; left: 50%; transform: translateX(-50%);
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--kora); border: 1px solid var(--line);
  box-shadow: inset 0 0 0 3px var(--kora-paper);
}
.swing-tag__pattern{
  height: 92px; margin-top: 1rem; border: 1px solid var(--line); border-radius: 2px;
}
.swing-tag__pattern--plain{ background: repeating-linear-gradient(90deg, var(--kora) 0 3px, transparent 3px 7px); background-color: #DFD6BE; }
.swing-tag__pattern--indigo{ background: repeating-linear-gradient(45deg, var(--indigo) 0 6px, var(--indigo-deep) 6px 12px); }
.swing-tag__pattern--madder{ background: repeating-linear-gradient(0deg, var(--madder) 0 5px, var(--madder-soft) 5px 10px); }
.swing-tag__pattern--zari{ background: repeating-linear-gradient(90deg, var(--thread) 0 2px, #DFD6BE 2px 10px); }

.swing-tag h3{ font-size: 1.15rem; font-style: italic; margin-top: 0.3rem; }
.swing-tag__fabric{ font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.04em; color: var(--indigo); }
.swing-tag__origin{ font-size: 0.82rem; color: var(--charcoal); opacity: 0.7; }
.swing-tag__foot{
  display:flex; justify-content:space-between; align-items:baseline;
  border-top: 1px dashed var(--line); padding-top: 0.8rem; margin-top: 0.5rem;
}
.price{ font-weight: 600; font-size: 0.95rem; }
.stock{ font-size: 0.7rem; font-family: var(--font-mono); color: var(--madder); }

/* =============== CRAFT / PROCESS =============== */
.craft{ background: var(--indigo-deep); color: var(--kora); padding-bottom: 5.5rem; }
.craft-line{
  max-width: var(--container); margin: 0 auto; padding: 0 1.5rem;
  display:grid; grid-template-columns: repeat(4,1fr); gap: 0;
  border-top: 1px solid var(--line-light);
}
.craft-step{
  padding: 2rem 1.5rem 0 0; border-left: 1px solid var(--line-light);
  opacity:0; transform: translateY(14px);
}
.craft-step.is-visible{ animation: rise 0.7s var(--ease) forwards; }
@keyframes rise{ to{ opacity:1; transform: translateY(0);} }
.craft-step__num{ font-family: var(--font-mono); color: var(--thread); font-size: 0.8rem; }
.craft-step h3{ font-size: 1.5rem; font-style: italic; margin: 0.6rem 0 0.7rem; }
.craft-step p{ font-size: 0.88rem; color: var(--kora); opacity: 0.75; max-width: 240px; }

/* =============== LOOKBOOK MOSAIC =============== */
.lookbook{ max-width: var(--container); margin: 0 auto; padding: 0 1.5rem 5.5rem; }
.mosaic{
  display:grid; grid-template-columns: repeat(5, 1fr); grid-auto-rows: 130px; gap: 0.9rem;
}
.mosaic__block{
  position:relative; border-radius: 2px; overflow:hidden;
  display:flex; align-items:flex-end; padding: 0.9rem;
  opacity:0; transform: translateY(18px);
}
.mosaic__block.is-visible{ animation: rise 0.75s var(--ease) forwards; }
.mosaic__block--tall{ grid-row: span 2; }
.mosaic__block span{
  font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.05em;
  color: var(--kora); background: rgba(26,24,21,0.55); padding: 0.3rem 0.55rem;
}
.mosaic__block--stripe{ background: repeating-linear-gradient(115deg, var(--indigo) 0 10px, var(--indigo-deep) 10px 20px); }
.mosaic__block--check{ background-color:#DFD6BE; background-image: linear-gradient(90deg, var(--line) 1px, transparent 1px), linear-gradient(var(--line) 1px, transparent 1px); background-size: 22px 22px; }
.mosaic__block--zigzag{ background: linear-gradient(135deg, var(--madder-soft) 25%, transparent 25%) -10px 0, linear-gradient(225deg, var(--madder-soft) 25%, transparent 25%) -10px 0, linear-gradient(315deg, var(--madder-soft) 25%, transparent 25%), linear-gradient(45deg, var(--madder-soft) 25%, transparent 25%); background-size: 24px 24px; background-color: #DFD6BE; }
.mosaic__block--plain{ background-color: var(--thread); }
.mosaic__block--madder{ background-color: var(--madder); }

/* =============== JOIN / FORM =============== */
.join{ padding: 5.5rem 1.5rem; }
.join__inner{ max-width: 620px; margin: 0 auto; }
.join h2{ font-size: clamp(1.8rem,3.2vw,2.4rem); font-style: italic; margin-bottom: 0.7rem; }
.join__sub{ color: var(--indigo); margin-bottom: 2.4rem; }
.join__form{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.2rem 1rem; }
.field{ display:flex; flex-direction:column; gap:0.45rem; }
.field--full{ grid-column: 1 / -1; }
.field label{ font-size: 0.76rem; font-family: var(--font-mono); color: var(--indigo); }
.field input, .field select{
  border: 1px solid var(--line); background: var(--kora-paper); border-radius: var(--radius);
  padding: 0.75rem 0.85rem; font-family: var(--font-body); font-size: 0.95rem; color: var(--charcoal);
  transition: border-color 0.2s var(--ease);
}
.field input:focus, .field select:focus{ outline:none; border-color: var(--madder); }
.join__form .btn{ grid-column: 1 / -1; margin-top: 0.5rem; }
.join__confirm{ margin-top: 1.2rem; font-family: var(--font-mono); font-size: 0.84rem; color: var(--indigo); min-height: 1.2em; }

/* =============== FOOTER =============== */
.footer{ border-top: 1px solid var(--line); padding: 2.4rem 1.5rem; }
.footer__inner{
  max-width: var(--container); margin:0 auto;
  display:flex; flex-wrap:wrap; gap:1.2rem; justify-content: space-between; align-items:center;
}
.footer__mark{ font-family: var(--font-display); font-style: italic; font-size: 1.3rem; }
.footer__links{ display:flex; gap: 1.5rem; }
.footer__links a{ font-size: 0.85rem; color: var(--indigo); }
.footer__links a:hover{ color: var(--madder); }
.footer__meta{ font-family: var(--font-mono); font-size: 0.7rem; color: var(--indigo); }

/* =============== RESPONSIVE =============== */
@media (max-width: 980px){
  .tag-grid{ grid-template-columns: repeat(2,1fr); }
  .craft-line{ grid-template-columns: repeat(2,1fr); }
  .craft-step{ border-bottom: 1px solid var(--line-light); padding-bottom: 2rem; }
  .mosaic{ grid-template-columns: repeat(3,1fr); }
  .mosaic__block--tall{ grid-row: span 1; }
}

@media (max-width: 760px){
  .nav__links{ display:none; }
  .nav__burger{ display:flex; }
  .hero{ grid-template-columns: 1fr; padding-top: 3rem; min-height: auto; }
  .hero__weave{ order: -1; max-width: 320px; margin: 0 auto 1rem; }
  .tag-grid{ grid-template-columns: 1fr; }
  .craft-line{ grid-template-columns: 1fr; }
  .mosaic{ grid-template-columns: repeat(2,1fr); }
  .join__form{ grid-template-columns: 1fr; }
  .footer__inner{ flex-direction:column; align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .thread, .swing-tag, .craft-step, .mosaic__block{
    animation:none !important; opacity:1 !important; transform:none !important; stroke-dashoffset:0 !important;
  }
}
