/* VEDA SERA — typography-stable full stylesheet
   No external webfonts: avoids mobile font corruption / fallback flashes.
*/

:root{
  --bg:#eee6dc;
  --bg-alt:#d9cdbf;
  --ink:#201a17;
  --line:rgba(32,26,23,.22);
  --serif:Georgia,"Times New Roman",serif;
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.65;
  font-weight:400;
}
img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:auto;
}
a{color:inherit;text-decoration:none}

/* HEADER */
.site-header{
  min-height:118px;
  padding:0 4.5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  background:var(--bg);
  position:relative;
  z-index:10;
}
.brand{
  display:flex;
  align-items:center;
  width:330px;
  flex:0 0 330px;
}
.brand img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.site-header nav{
  display:flex;
  align-items:center;
  gap:34px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.site-header nav a,
footer nav a,
.cta{
  font-family:var(--sans);
  font-size:14px;
  line-height:1;
  font-weight:500;
  letter-spacing:.13em;
}

/* HERO */
.hero{
  height:calc(100vh - 118px);
  min-height:650px;
}
.hero img{object-position:center}

/* DESKTOP EDITORIAL SECTIONS */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:820px;
}
.split .image{
  min-height:820px;
  overflow:hidden;
}
.copy{
  padding:9vw 7vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.eyebrow{
  font-family:var(--sans);
  font-size:13px;
  line-height:1.3;
  font-weight:500;
  letter-spacing:.24em;
  margin-bottom:32px;
}
.copy h1,
.copy h2{
  font-family:var(--serif);
  font-weight:400;
  font-style:normal;
  letter-spacing:-.025em;
  line-height:.98;
  margin:0 0 42px;
}
.copy h1{
  font-size:clamp(82px,6.8vw,128px);
}
.copy h2{
  font-size:clamp(74px,6vw,114px);
}
.copy p{
  font-family:var(--sans);
  font-size:18px;
  line-height:1.8;
  max-width:620px;
  margin:0 0 32px;
  letter-spacing:.005em;
}
.copy .meta{
  font-size:15px;
  line-height:1.7;
  letter-spacing:.03em;
}
.cta{
  margin-top:14px;
  display:inline-block;
  width:max-content;
  padding-bottom:7px;
  border-bottom:1px solid var(--ink);
}
.rules{
  margin-top:36px;
  border-bottom:1px solid var(--line);
}
.rules div{
  border-top:1px solid var(--line);
  padding:25px 0;
  display:grid;
  grid-template-columns:58px 1fr;
  align-items:center;
}
.rules b{
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
}
.rules span{
  font-family:var(--serif);
  font-size:31px;
  line-height:1.2;
  letter-spacing:-.015em;
}
.philosophy,
.weave{background:var(--bg-alt)}

/* FOOTER */
footer{
  padding:92px 4.5vw 58px;
}
footer>img{
  width:360px;
  max-width:65vw;
  height:auto;
  object-fit:contain;
  margin-bottom:15px;
}
footer>p{
  margin:0 0 42px;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.3;
}
footer nav{
  display:flex;
  flex-wrap:wrap;
  gap:16px 28px;
}
footer small{
  display:block;
  margin-top:34px;
  font-size:11px;
  letter-spacing:.08em;
}

/* MOBILE */
@media(max-width:820px){

  body{
    font-size:16px;
    line-height:1.6;
  }

  .site-header{
    min-height:76px;
    height:76px;
    padding:0 20px;
  }

  .brand{
    width:190px;
    flex:0 0 190px;
    max-width:58vw;
  }

  .site-header nav{
    display:none;
  }

  .hero{
    height:auto;
    min-height:0;
  }

  .hero img{
    height:auto;
    aspect-ratio:4/5;
    object-fit:cover;
    object-position:center;
  }

  .split{
    display:flex;
    flex-direction:column;
    min-height:0;
  }

  .split .image{
    min-height:0;
    height:auto;
    order:1;
  }

  .split .image img{
    height:auto;
    aspect-ratio:4/5;
    object-fit:cover;
    object-position:center;
  }

  .split .copy{
    order:2;
    min-height:0;
    padding:72px 26px 82px;
  }

  .material .image{order:1}
  .material .copy{order:2}

  .eyebrow{
    font-size:10px;
    letter-spacing:.20em;
    margin-bottom:24px;
  }

  .copy h1,
  .copy h2{
    letter-spacing:-.02em;
    line-height:1.02;
    margin-bottom:30px;
  }

  .copy h1{
    font-size:clamp(46px,12.5vw,60px);
  }

  .copy h2{
    font-size:clamp(42px,11.5vw,56px);
  }

  .copy p{
    font-size:16px;
    line-height:1.72;
    margin-bottom:26px;
  }

  .copy .meta{
    font-size:14px;
  }

  .rules{
    margin-top:30px;
  }

  .rules div{
    grid-template-columns:44px 1fr;
    padding:20px 0;
  }

  .rules b{
    font-size:10px;
  }

  .rules span{
    font-size:23px;
    line-height:1.25;
  }

  .ritual .image img{
    aspect-ratio:1/1;
  }

  footer{
    padding:72px 26px 48px;
  }

  footer>img{
    width:280px;
    max-width:78vw;
  }

  footer>p{
    font-size:20px;
    margin-bottom:36px;
  }

  footer nav{
    gap:14px 20px;
  }

  footer nav a{
    font-size:10px;
  }
}


/* iOS / mobile typography stability */
body, button, input, textarea, select {
  font-synthesis: none;
  font-kerning: normal;
}
.copy h1,
.copy h2,
.rules span,
footer>p {
  font-family: Georgia, "Times New Roman", serif;
  font-synthesis: none;
}
@media(max-width:820px){
  html, body {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
  .copy h1,
  .copy h2,
  .rules span,
  footer>p {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    font-style: normal;
  }
}


/* LOCKED FINAL PRODUCT BANNER */
.final-banner{width:100%;background:#111;line-height:0;}
.final-banner a{display:block;}
.final-banner img{display:block;width:100%;height:auto;}
@media(max-width:820px){
 .final-banner img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;}
 .philosophy .image img{object-position:center center;}
}


/* FINAL HEADER RULES */
@media(min-width:821px){
  .site-header{
    min-height:118px;
    height:118px;
    padding:0 4.5vw;
  }
  .brand{
    width:330px;
    flex:0 0 330px;
  }
  .site-header nav a{
    font-size:14px;
  }
}
@media(max-width:820px){
  .site-header{
    position:sticky;
    top:0;
    z-index:1000;
    min-height:76px;
    height:76px;
    justify-content:center;
    padding:0 18px;
  }
  .site-header .brand{
    width:205px;
    flex:0 0 205px;
    max-width:68vw;
  }
  .site-header nav{
    display:none !important;
  }
}
