:root{
    --bone: #EEE6D3;
    --ivory: #E6DCC5;
    --cream: #F5EEDD;
    --ink: #1B2B24;
    --ink-2: #223A30;
    --ink-70: rgba(27,43,36,0.68);
    --ink-45: rgba(27,43,36,0.46);
    --ink-18: rgba(27,43,36,0.14);
    --ink-10: rgba(27,43,36,0.08);
    --cream-70: rgba(238,230,211,0.68);
    --cream-45: rgba(238,230,211,0.46);
    --cream-18: rgba(238,230,211,0.16);

    --river: #6B5C42;
    --clay: #9C4424;
    --brass: #4FA39C;
    --brass-soft: #7FC2BB;

    --serif: 'Fraunces', Georgia, serif;
    --sans: 'IBM Plex Sans', -apple-system, 'Noto Sans Devanagari', 'Hiragino Sans', 'Yu Gothic', sans-serif;
    --mono: 'IBM Plex Mono', 'Courier New', monospace;

    --container: 1220px;
    --gutter: clamp(22px, 5vw, 72px);
    --radius: 6px;
    --radius-sm: 4px;
    --pill: 999px;
    --shadow: 0 26px 70px rgba(27,43,36,0.14);
    --shadow-sm: 0 14px 34px rgba(27,43,36,0.10);
  }

  *{ box-sizing: border-box; }
  html{ scroll-behavior: smooth; }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior: auto; }
    *{ animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
  }

  body{
    margin:0;
    background: var(--bone);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }

  img, svg{ display:block; max-width:100%; }
  a{ color: inherit; }
  ::selection{ background: var(--brass); color: var(--ink); }
  :focus-visible{ outline: 2px solid var(--clay); outline-offset: 3px; }

  .wrap{
    max-width: var(--container);
    margin: 0 auto;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }

  /* ---------- reveal-on-scroll ---------- */
  .reveal{ opacity:0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
  .reveal.show{ opacity:1; transform:none; }

  /* ---------- Header ---------- */

  header.site{
    position: fixed;
    top:0; left:0; right:0;
    z-index: 60;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding: 20px var(--gutter);
    color: var(--bone);
    transition: background .4s ease, color .4s ease, border-color .4s ease;
    border-bottom: 1px solid transparent;
  }
  header.site.scrolled{
    background: rgba(238,230,211,0.90);
    backdrop-filter: blur(16px);
    color: var(--ink);
    border-bottom-color: var(--ink-18);
  }

  .mark{
    display:flex;
    align-items:center;
    gap: 12px;
    text-decoration:none;
    color: inherit;
    flex-shrink:0;
  }
  .mark svg{ width: 28px; height: 28px; }
  .mark-word{ font-family: var(--serif); font-size: 15.5px; line-height: 1.12; letter-spacing: 0.02em; }
  .mark-word b{ display:block; font-weight: 560; }
  .mark-word span{ display:block; font-weight: 340; font-style: italic; opacity: 0.62; }

  nav.primary{ display:flex; gap: 34px; font-size: 12.5px; letter-spacing: 0.09em; text-transform: uppercase; }
  nav.primary a{ text-decoration:none; opacity:.86; padding-bottom: 4px; border-bottom: 1px solid transparent; white-space: nowrap; }
  nav.primary a:hover{ opacity:1; border-bottom-color: var(--brass); }

  .nav-actions{ display:flex; align-items:center; gap:16px; }
  .coord-tag{ font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.03em; opacity: .55; white-space: nowrap; }

  .nav-toggle{
    display:none;
    background:none; border:1px solid currentColor;
    border-radius: var(--pill);
    padding: 9px 16px;
    font-family: var(--mono); font-size: 11px; letter-spacing: .06em;
    cursor:pointer; color: inherit;
  }

  /* ---------- Hero ---------- */

  .hero{
    min-height: 100vh;
    background:
      radial-gradient(circle at 82% 8%, rgba(79,163,156,0.16), rgba(79,163,156,0) 46%),
      linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color: var(--bone);
    display:flex;
    align-items:center;
    position: relative;
    overflow:hidden;
    padding-top: 90px;
  }

  .medallion{
    position:absolute;
    right: -6vw; top: 50%; transform: translateY(-46%);
    width: min(46vw, 560px); height: min(46vw, 560px);
  }

  .hero-grid{
    display:grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 5vw;
    align-items:center;
    position:relative;
    z-index:2;
    width:100%;
  }

  .kicker{
    font-size: 12px; letter-spacing: 0.26em; text-transform: uppercase;
    color: var(--brass-soft);
    margin: 0 0 26px;
    display:flex; align-items:center; gap: 12px;
  }
  .kicker::before{ content:""; width: 30px; height:1px; background: var(--brass); }

  h1.headline{
    font-family: var(--serif);
    font-weight: 480;
    font-size: clamp(46px, 6.6vw, 88px);
    line-height: 0.98;
    letter-spacing: -0.015em;
    margin: 0 0 30px;
    max-width: 13ch;
  }
  h1.headline em{ font-style: italic; font-weight: 340; color: var(--brass-soft); }

  .hero-copy{
    font-size: 17px;
    line-height: 1.75;
    color: var(--cream-70);
    max-width: 46ch;
    margin: 0 0 40px;
  }

  .cta-row{ display:flex; gap: 14px; align-items:center; flex-wrap:wrap; }

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family: var(--sans); font-size: 13px; font-weight: 500;
    letter-spacing: 0.05em; text-transform: uppercase;
    text-decoration:none; cursor:pointer;
    border-radius: var(--pill);
    padding: 15px 26px;
    border: 1px solid transparent;
    transition: transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
  }
  .btn-solid{ background: var(--brass); color: var(--ink); }
  .btn-solid:hover{ background: var(--brass-soft); transform: translateY(-2px); }
  .btn-ghost{ border-color: var(--cream-18); color: var(--bone); background:transparent; }
  .btn-ghost:hover{ border-color: var(--brass); color: var(--brass-soft); }
  .btn-dark{ background: var(--ink); color: var(--bone); border-color: var(--ink); }
  .btn-dark:hover{ background: var(--clay); border-color: var(--clay); transform: translateY(-2px); }

  .hero-note{
    position:absolute; left: var(--gutter); bottom: 34px;
    display:flex; align-items:center; gap: 14px;
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform:uppercase;
    color: var(--cream-45);
    z-index:2;
  }
  .hero-note::before{ content:""; width: 46px; height:1px; background: var(--brass); }

  /* ---------- Section scaffolding ---------- */

  section{ padding: clamp(70px, 9vw, 130px) 0; }
  .section-alt{ background: var(--ivory); }

  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap: 32px; margin-bottom: 56px; flex-wrap: wrap;
  }

  .eyebrow{ font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--clay); margin: 0 0 14px; }

  h2.section-title{
    font-family: var(--serif); font-weight: 480;
    font-size: clamp(34px, 4.6vw, 58px);
    line-height: 1.02; letter-spacing: -0.015em;
    margin: 0; max-width: 15ch;
  }

  .section-note{ font-size: 15.5px; color: var(--ink-70); max-width: 36ch; margin:0; line-height: 1.65; }

  /* ---------- Doors ---------- */

  .doors{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

  .door{
    background: var(--cream);
    border-radius: var(--radius);
    border: 1px solid var(--ink-10);
    padding: 34px 30px 32px;
    min-height: 260px;
    display:flex; flex-direction:column; justify-content:space-between;
    text-decoration:none; color: var(--ink);
    transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease;
  }
  .door:hover{ transform: translateY(-8px); box-shadow: var(--shadow); border-color: transparent; }

  .badge{
    width: 52px; height: 52px; border-radius: 50%;
    display:grid; place-items:center;
    background: var(--door-bg, rgba(162,96,63,0.10));
    color: var(--door-c, var(--clay));
  }
  .badge svg{ width: 24px; height: 24px; }

  .door h3{ font-family: var(--serif); font-weight: 520; font-size: 23px; margin: 26px 0 10px; }
  .door p{ font-size: 14px; color: var(--ink-70); margin: 0; line-height: 1.6; }

  /* ---------- Don't get played ---------- */

  .played{ background: var(--ink); color: var(--bone); }
  .played .section-note{ color: var(--cream-70); }
  .played h2.section-title{ color: var(--bone); }
  .played .eyebrow{ color: var(--brass-soft); }

  .played-intro{
    font-family: var(--serif); font-style: italic; font-weight: 340;
    font-size: clamp(21px, 2.6vw, 28px); line-height: 1.45;
    max-width: 48ch; color: var(--bone); margin: -10px 0 48px;
  }

  .faq{ border-top: 1px solid var(--cream-18); }
  .faq details{ border-bottom: 1px solid var(--cream-18); padding: 26px 0; }
  .faq summary{
    cursor:pointer; list-style:none;
    display:flex; justify-content:space-between; align-items:center; gap: 20px;
    font-family: var(--serif); font-size: clamp(17px, 2vw, 22px); font-weight: 460;
  }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary .plus{ font-family: var(--mono); font-size: 20px; color: var(--brass); flex-shrink:0; transition: transform .25s ease; }
  .faq details[open] summary .plus{ transform: rotate(45deg); }
  .faq .a{ font-size: 15px; color: var(--cream-70); max-width: 64ch; margin: 16px 0 0; line-height: 1.7; }

  .trust-mark{
    display:inline-flex; align-items:center; gap: 9px;
    font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em;
    color: var(--brass-soft);
    border: 1px solid rgba(79,163,156,0.45);
    border-radius: var(--pill);
    padding: 10px 18px 10px 14px;
    margin-top: 48px;
  }
  .trust-mark svg{ width: 13px; height: 13px; }

  /* ---------- Shop ---------- */

  .goods{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

  .good{
    background: var(--cream);
    border-radius: var(--radius);
    border: 1px solid var(--ink-10);
    overflow:hidden;
    transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease;
  }
  .good:hover{ transform: translateY(-8px); box-shadow: var(--shadow-sm); }

  .good-art{
    height: 200px;
    display:grid; place-items:center;
    background: radial-gradient(circle at 50% 42%, rgba(79,163,156,0.16), rgba(79,163,156,0) 62%), var(--ivory);
  }
  .good-disc{
    width: 118px; height: 118px; border-radius: 50%;
    background: var(--disc, radial-gradient(circle at 34% 30%, #EFDDB4 0 10%, var(--brass) 11% 46%, var(--clay) 47% 100%));
    box-shadow: 0 14px 26px rgba(27,43,36,0.18), inset 0 0 0 3px rgba(255,255,255,0.18);
    position: relative;
  }
  .good-disc::after{ content:""; position:absolute; inset: 20px; border: 1px dashed rgba(255,255,255,0.3); border-radius:50%; }

  .good-body{ padding: 26px 26px 28px; }
  .good-top{ display:flex; justify-content:space-between; align-items:flex-start; gap: 14px; }
  .good h4{ font-family: var(--serif); font-weight: 540; font-size: 22px; margin: 0 0 6px; }
  .good .tag{ font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--clay); }
  .good p{ font-size: 13.5px; color: var(--ink-70); margin: 12px 0 0; line-height: 1.6; }
  .good-foot{ display:flex; justify-content:space-between; align-items:center; margin-top: 20px; }
  .good-foot small{ font-family: var(--mono); font-size: 10.5px; color: var(--ink-45); }
  .arrow-btn{
    width: 38px; height: 38px; border-radius: 50%;
    display:grid; place-items:center;
    background: var(--ink); color: var(--bone);
    border: none; transition: background .25s ease;
  }
  .arrow-btn:hover{ background: var(--brass); color: var(--ink); }

  .verified-strip{
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap: 22px;
    margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--ink-18);
  }
  .verified-strip p{ margin:0; max-width: 48ch; font-size: 15.5px; color: var(--ink-70); }

  /* ---------- Field notes ---------- */

  .notes-list{ border-top: 1px solid var(--ink-18); }
  .note-row{
    display:grid; grid-template-columns: 100px 1fr auto;
    align-items: baseline; gap: 24px;
    padding: 28px 4px; border-bottom: 1px solid var(--ink-18);
    text-decoration:none; color: var(--ink);
    transition: padding-left .3s ease;
  }
  .note-row:hover{ padding-left: 14px; }
  .note-row .stamp{ font-family: var(--mono); font-size: 11px; color: var(--ink-45); }
  .note-row h4{ font-family: var(--serif); font-weight: 480; font-size: clamp(19px,2.2vw,25px); margin: 0; transition: color .2s ease; }
  .note-row:hover h4{ color: var(--clay); }
  .note-row .arr{ font-family: var(--mono); color: var(--brass); font-size: 19px; }

  /* ---------- Footer ---------- */

  footer.site{ background: var(--ink); color: var(--bone); padding-top: clamp(64px,9vw,110px); }

  .foot-top{
    display:grid; grid-template-columns: 1.3fr 0.7fr 0.7fr 0.7fr;
    gap: 44px; padding-bottom: 60px; border-bottom: 1px solid var(--cream-18);
  }
  .foot-brand{ font-family: var(--serif); font-weight: 500; font-size: clamp(34px, 4vw, 52px); line-height: 1.05; margin: 0 0 18px; }
  .foot-top > div:first-child p{ font-size: 14.5px; color: var(--cream-70); max-width: 40ch; margin:0; line-height: 1.65; }

  .foot-col h5{ font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--cream-45); margin: 0 0 18px; font-weight: 400; text-transform: uppercase; }
  .foot-col ul{ list-style:none; margin:0; padding:0; }
  .foot-col li{ margin-bottom: 13px; }
  .foot-col a{ text-decoration:none; font-size: 14.5px; color: var(--cream-70); }
  .foot-col a:hover{ color: var(--brass-soft); }

  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding: 26px 0; flex-wrap: wrap; gap: 12px;
  }
  .foot-bottom .coord-tag{ color: var(--cream-45); opacity:1; }
  .foot-bottom .legal{ font-size: 12px; color: var(--cream-45); }

  /* ---------- Responsive ---------- */

  @media (max-width: 980px){
    .hero-grid{ grid-template-columns: 1fr; }
    .medallion{ display:none; }
    .doors{ grid-template-columns: repeat(2,1fr); }
    .goods{ grid-template-columns: repeat(2,1fr); }
    .foot-top{ grid-template-columns: 1fr 1fr; }
  }

  @media (max-width: 680px){
    nav.primary{ display:none; }
    .nav-toggle{ display:block; }
    body.nav-open nav.primary{
      display:flex; position: fixed; inset: 78px 0 0 0;
      background: var(--bone); color: var(--ink);
      flex-direction: column; padding: 34px var(--gutter); gap: 24px;
      font-size: 16px; z-index: 55;
    }
    body.nav-open nav.primary a{ color: var(--ink); }
    .coord-tag{ display:none; }
    .doors{ grid-template-columns: 1fr; }
    .goods{ grid-template-columns: 1fr; }
    .note-row{ grid-template-columns: 1fr auto; }
    .note-row .stamp{ grid-column: 1 / -1; order: -1; }
    .foot-top{ grid-template-columns: 1fr; gap: 36px; }
    .hero-note{ display:none; }
  }

/* ---------- Page hero (used on inner pages instead of the full home hero) ---------- */
.page-hero{
  min-height: auto;
  padding: 156px 0 84px;
  display: block;
}
.page-hero .hero-grid{ display:block; }
.page-hero h1.headline{ font-size: clamp(38px, 5.6vw, 64px); max-width: 18ch; }
.page-hero .hero-copy{ margin-bottom: 0; }

/* ---------- Home section previews (short version + "see all" link) ---------- */
.preview-foot{
  display:flex; justify-content:center; margin-top: 44px;
}

/* ---------- Accessibility: skip link ---------- */
.skip-link{
  position: absolute; left: -999px; top: auto;
  background: var(--brass); color: var(--ink);
  padding: 12px 20px; z-index: 100;
  font-family: var(--sans); font-size: 13px; font-weight: 600;
  border-radius: 0 0 8px 0;
  text-decoration: none;
}
.skip-link:focus{ left: 0; top: 0; }

/* ---------- Active nav state ---------- */
nav.primary a.current{
  opacity: 1;
  border-bottom-color: var(--brass);
}

/* ---------- Breadcrumb ---------- */
.crumb{
  padding: 128px var(--gutter) 0;
  max-width: var(--container);
  margin: 0 auto;
}
.crumb nav{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ink-45);
}
.crumb a{ text-decoration: none; color: var(--ink-45); }
.crumb a:hover{ color: var(--clay); }
.crumb span.sep{ margin: 0 8px; opacity: .5; }
.crumb span.here{ color: var(--ink-70); }
/* crumb sits over the dark hero on Know Before You Go */
.crumb.on-dark nav, .crumb.on-dark a{ color: var(--cream-45); }
.crumb.on-dark a:hover{ color: var(--brass-soft); }
.crumb.on-dark span.here{ color: var(--cream-70); }
.page-hero.has-crumb, .hero.has-crumb{ padding-top: 0; }

/* ---------- Jump-to list (long FAQ-style pages) ---------- */
.jump-to{
  display:flex; flex-wrap:wrap; gap: 10px;
  margin: 36px 0 0;
}
.jump-to a{
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.03em;
  text-decoration:none; color: var(--brass-soft);
  border: 1px solid rgba(79,163,156,0.4);
  border-radius: var(--pill);
  padding: 8px 14px;
  transition: background .2s ease, color .2s ease;
}
.jump-to a:hover{ background: var(--brass); color: var(--ink); }

/* ---------- Where to next ---------- */
.next-up{
  border-top: 1px solid var(--ink-18);
  padding: 44px 0;
}
.next-up-inner{
  display:flex; align-items:center; justify-content:space-between; gap: 24px; flex-wrap: wrap;
}
.next-up .label{ font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-45); margin: 0 0 8px; }
.next-up h4{ font-family: var(--serif); font-weight: 500; font-size: 24px; margin: 0; }
.next-up a.next-link{
  display:flex; align-items:center; gap: 16px;
  text-decoration:none; color: var(--ink);
}
.next-up a.next-link .arrow-btn{ flex-shrink:0; }
.next-up.on-dark{ border-top-color: var(--cream-18); }
.next-up.on-dark .label{ color: var(--cream-45); }
.next-up.on-dark h4{ color: var(--bone); }
.next-up.on-dark a.next-link{ color: var(--bone); }
.next-up.on-dark .arrow-btn{ background: var(--brass); color: var(--ink); }

/* ---------- Back to top ---------- */
.to-top{
  position: fixed; right: 26px; bottom: 26px; z-index: 40;
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--ink); color: var(--bone);
  border: none; display:grid; place-items:center;
  cursor:pointer; box-shadow: var(--shadow-sm);
  opacity:0; transform: translateY(10px); pointer-events:none;
  transition: opacity .3s ease, transform .3s ease, background .2s ease;
}
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ background: var(--brass); color: var(--ink); }

@media (max-width: 680px){
  .crumb{ padding-top: 108px; }
  .next-up-inner{ flex-direction: column; align-items:flex-start; }
  .to-top{ right:16px; bottom:16px; width:42px; height:42px; }
}

/* ---------- Photo hero (home & inner pages with a real background image) ---------- */
.hero.has-photo{
  background-size: cover;
  background-position: center;
}
.page-hero.has-photo{ padding-top: 156px; padding-bottom: 96px; }
.page-hero.has-photo.has-crumb{ padding-top: 0; }

/* ---------- Door photo treatment ---------- */
.door{ padding: 0; overflow: hidden; }
.door-photo{
  height: 190px;
  background-size: cover;
  background-position: center;
  position: relative;
}
.door-photo::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(27,43,36,0) 45%, rgba(27,43,36,0.55) 100%);
}
.door-photo .badge{
  position:absolute; left: 20px; bottom: -24px;
  background: var(--cream);
  box-shadow: 0 8px 20px rgba(27,43,36,0.18);
  z-index: 2;
}
.door-body{ padding: 40px 26px 28px; }
.door-body h3{ margin-top: 0; }

/* ---------- Shop card photo treatment ---------- */
.good-art.has-photo{
  background-size: cover;
  background-position: center;
}
.good-art.has-photo .good-disc{ display:none; }

/* ---------- Poem / Field Note article pages ---------- */
.poem-wrap{ max-width: 720px; margin: 0 auto; }
.poem-kicker{
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--brass-soft); margin: 0 0 20px;
}
.poem-title{
  font-family: 'Noto Serif Devanagari', serif;
  font-weight: 600;
  font-size: clamp(32px, 5vw, 50px);
  line-height: 1.25;
  margin: 0 0 18px;
}
.poem-intro{
  font-size: 15.5px; line-height: 1.7; color: var(--cream-70);
  max-width: 56ch; margin: 0 0 48px;
}
.poem-body{
  font-family: 'Noto Serif Devanagari', serif;
  font-size: clamp(19px, 2.4vw, 23px);
  line-height: 2;
  white-space: pre-line;
  color: var(--ink);
}
.poem-credit{
  margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--ink-18);
  font-family: 'Noto Serif Devanagari', serif; font-size: 17px; font-style: italic; color: var(--ink-70);
}

/* ---------- WhatsApp button ---------- */
.btn-whatsapp{ background: #25D366; color: #0b1c12; border-color: #25D366; }
.btn-whatsapp:hover{ background: #1DA851; border-color: #1DA851; }

/* ---------- Submission CTA (Field Notes page) ---------- */
.submit-cta{
  border: 1px dashed var(--ink-18);
  border-radius: var(--radius);
  padding: 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  margin-top: 48px;
}
.submit-cta h4{ font-family: var(--serif); font-weight: 500; font-size: 24px; margin: 0 0 8px; }
.submit-cta p{ font-size: 14.5px; color: var(--ink-70); margin: 0; max-width: 46ch; }

/* ---------- Form elements ---------- */
.form-field{ margin-bottom: 22px; }
.form-field label{
  display: block; font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--ink-45); margin-bottom: 8px;
}
.form-field input, .form-field textarea, .form-field select{
  width: 100%; box-sizing: border-box;
  font-family: var(--sans); font-size: 15px; color: var(--ink);
  background: var(--cream); border: 1px solid var(--ink-18); border-radius: var(--radius-sm);
  padding: 13px 16px; transition: border-color .2s ease;
}
.form-field textarea{ min-height: 220px; resize: vertical; font-family: 'Noto Serif Devanagari', 'IBM Plex Sans', serif; font-size: 17px; line-height: 1.7; }
.form-field input:focus, .form-field textarea:focus{ outline: none; border-color: var(--brass); }
.form-note{ font-size: 13px; color: var(--ink-45); margin: -8px 0 22px; }
.or-divider{ display:flex; align-items:center; gap: 16px; margin: 32px 0; color: var(--ink-45); font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.or-divider::before, .or-divider::after{ content:""; flex: 1; height: 1px; background: var(--ink-18); }

/* ---------- Founders page ---------- */
.founder-grid{ display: flex; gap: 32px; margin-bottom: 56px; }
.founder-card{ flex: 1; }
.founder-card img{
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: var(--radius); display: block; margin-bottom: 18px;
}
.founder-card h3{ font-family: var(--serif); font-weight: 520; font-size: 22px; margin: 0 0 4px; }
.founder-card .role{ font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--clay); }

.founder-story{ max-width: 680px; }
.founder-story p{ font-size: 16.5px; line-height: 1.8; color: var(--ink-70); margin: 0 0 24px; }
.founder-story .lede{ font-family: var(--serif); font-style: italic; font-weight: 340; font-size: 22px; color: var(--ink); line-height: 1.5; }
.founder-sign{ font-family: var(--serif); font-weight: 500; font-size: 17px; margin-top: 8px; }

@media (max-width: 680px){
  .founder-grid{ flex-direction: column; }
  .founder-card img{ aspect-ratio: 4 / 3; }
}

/* =====================================================================
   v4 — "Ghat walls" look: Betel / Geru / Turquoise / Chuna / Silt
   Arch shapes, kangura edge, entry sequence, Menu door, languages
   ===================================================================== */
:root{
  --geru:#B5532E; --geru-d:#9C4424; --turq:#4FA39C; --silt:#6B5C42;
  --betel-d:#0F1A15; --mute-dark:#A9B8AE; --line-dark:#3F5A4D; --btn-text:#FFF8EC;
  --kangura:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14'%3E%3Cpolygon points='0,14 14,0 28,14' fill='%23EEE6D3'/%3E%3C/svg%3E");
}
html.intro-lock, html.intro-lock body{ overflow:hidden; }

/* language-specific type */
[data-lang="hi"] body, [data-lang="hi"] .btn, [data-lang="hi"] summary{ font-family: var(--sans), 'Noto Serif Devanagari', sans-serif; }
[data-lang="hi"] h1, [data-lang="hi"] h2, [data-lang="hi"] h3, [data-lang="hi"] h4, [data-lang="hi"] .mi span:last-child, [data-lang="hi"] .foot-brand{ font-family:'Noto Serif Devanagari', var(--serif); font-weight:500; letter-spacing:0; }
[data-lang="ja"] h1, [data-lang="ja"] h2, [data-lang="ja"] h3, [data-lang="ja"] h4, [data-lang="ja"] .mi span:last-child, [data-lang="ja"] .foot-brand{ font-family:'Noto Serif JP', var(--serif); font-weight:500; letter-spacing:0; }
[data-lang="hi"] h1.headline, [data-lang="ja"] h1.headline{ line-height:1.25; }
[data-lang="hi"] .eyebrow, [data-lang="ja"] .eyebrow, [data-lang="hi"] .kicker, [data-lang="ja"] .kicker{ letter-spacing:.06em; }

/* buttons: squarer, geru */
.btn{ border-radius:2px; }
.btn-solid{ background:var(--geru); color:var(--btn-text); }
.btn-solid:hover{ background:var(--geru-d); }
.btn-dark{ background:var(--geru); color:var(--btn-text); border-color:var(--geru); }
.btn-dark:hover{ background:var(--geru-d); border-color:var(--geru-d); }
.btn-ghost:hover{ border-color:var(--turq); color:var(--turq); }
.arrow-btn:hover{ background:var(--geru); color:var(--btn-text); }
.next-up.on-dark .arrow-btn{ background:var(--geru); color:var(--btn-text); }
.to-top:hover{ background:var(--geru); color:var(--btn-text); }
.faq summary .plus{ color:var(--turq); }
.eyebrow{ color:var(--geru-d); font-family:var(--mono); letter-spacing:.14em; }
.played .eyebrow{ color:var(--turq); }
.kicker{ color:var(--turq); font-family:var(--mono); }
.kicker::before{ background:var(--turq); }
.section-alt{ background:#E6DCC5; }
.good, .door{ border-radius:4px; }
.good-art.has-photo{ border-radius:0; }
.skip-link{ background:var(--geru); color:var(--btn-text); }

/* kangura edge under every inner hero */
.page-hero{ position:relative; padding-bottom:110px; }
.page-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:14px; background:var(--kangura) repeat-x left bottom; }
.page-hero.played::after{ display:block; }

/* ---------- header: wordmark / languages / Menu ---------- */
header.site .hd-right{ display:flex; align-items:center; gap:14px; }
.langs{ display:flex; gap:6px; }
.langs button{ font:500 12px var(--sans); padding:0 13px; min-height:40px; border-radius:20px; border:1px solid rgba(238,230,211,.30); background:transparent; color:inherit; cursor:pointer; opacity:.9; transition:background .25s,color .25s,border-color .25s; }
.langs button:hover{ border-color:var(--turq); }
.langs button[aria-pressed="true"]{ background:var(--bone); color:var(--ink); border-color:var(--bone); opacity:1; }
header.site.scrolled .langs button{ border-color:var(--ink-18); }
header.site.scrolled .langs button[aria-pressed="true"]{ background:var(--ink); color:var(--bone); border-color:var(--ink); }
.mbtn{ display:inline-flex; align-items:center; gap:12px; background:transparent; color:inherit; border:1px solid currentColor; border-radius:999px; padding:0 20px; min-height:48px; cursor:pointer; font-family:var(--sans); transition:border-color .3s, background .3s, color .3s; }
.mbtn span{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.mbtn:hover{ border-color:var(--turq); color:var(--turq); }
.mark svg{ width:30px; height:30px; }
.mark-word b{ font-weight:500; letter-spacing:.08em; text-transform:uppercase; font-size:15px; }
.mark-word span{ font-style:normal; letter-spacing:.08em; text-transform:uppercase; font-size:15px; opacity:1; font-weight:400; }
@media (max-width:860px){ .langs{ display:none; } }

/* ---------- Menu overlay ---------- */
.menu{ position:fixed; left:0; top:0; right:0; bottom:0; z-index:90; background:var(--ink); color:var(--bone); overflow:auto; }
.menu[hidden]{ display:none; }
.menu.open{ animation:menuin .75s cubic-bezier(.7,0,.2,1) both; }
@keyframes menuin{ from{ clip-path:circle(0% at calc(100% - 80px) 52px); } to{ clip-path:circle(150% at calc(100% - 80px) 52px); } }
.menu-in{ max-width:1200px; margin:0 auto; padding:16px var(--gutter) 40px; min-height:100%; box-sizing:border-box; display:flex; flex-direction:column; }
.menu-top{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.menu-top .coord{ font-family:var(--mono); font-size:12px; color:var(--turq); }
.mclose{ background:transparent; border:1px solid var(--line-dark); color:var(--bone); font:500 12px var(--sans); letter-spacing:.14em; text-transform:uppercase; padding:0 22px; min-height:48px; border-radius:999px; cursor:pointer; }
.mclose:hover{ border-color:var(--turq); }
.menu-mid{ display:flex; flex-wrap:wrap; gap:32px clamp(32px,6vw,96px); align-items:center; flex:1; padding-top:clamp(20px,4vw,48px); }
.menu-list{ flex:1 1 420px; min-width:0; list-style:none; margin:0; padding:0; }
.mi{ display:flex; align-items:baseline; gap:18px; padding:clamp(10px,1.5vw,18px) 0; border-top:1px solid var(--line-dark); color:var(--mute-dark); text-decoration:none; transition:color .3s, padding-left .4s cubic-bezier(.2,.7,.2,1); }
.mi:hover, .mi:focus-visible{ color:var(--bone); padding-left:14px; }
.mi .mn{ font-family:var(--mono); font-size:12px; min-width:24px; }
.mi:hover .mn, .mi:focus-visible .mn{ color:var(--turq); }
.mi .ml{ font-family:var(--serif); font-size:clamp(26px,4.4vw,52px); line-height:1.15; }
.menu-list li:last-child{ border-bottom:1px solid var(--line-dark); }
.menu-pic{ flex:0 1 340px; width:340px; max-width:100%; }
.menu-arch{ position:relative; width:100%; aspect-ratio:3/4; border:1px solid var(--geru); border-radius:999px 999px 0 0; padding:10px; box-sizing:border-box; }
.menu-arch > div{ position:relative; width:100%; height:100%; overflow:hidden; border-radius:999px 999px 0 0; background:var(--betel-d); }
.menu-arch img{ position:absolute; left:0; top:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s ease; }
.menu-arch img.on{ opacity:1; }
.menu-foot{ display:flex; flex-wrap:wrap; gap:12px 20px; justify-content:space-between; align-items:center; border-top:3px double var(--geru); margin-top:32px; padding-top:18px; }
.menu-foot .mnames{ font-family:var(--serif); font-style:italic; color:var(--mute-dark); }
.menu-foot .menu-langs{ display:none; gap:6px; flex-wrap:wrap; }
.menu-foot .menu-langs button{ font:500 12px var(--sans); padding:0 14px; min-height:44px; border-radius:22px; border:1px solid var(--line-dark); background:transparent; color:var(--mute-dark); cursor:pointer; }
.menu-foot .menu-langs button[aria-pressed="true"]{ background:var(--bone); color:var(--ink); border-color:var(--bone); }
.menu-foot a{ color:var(--turq); font-size:14px; min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; text-underline-offset:6px; }
@media (max-width:860px){ .menu-foot .menu-langs{ display:flex; width:100%; } }

/* ---------- phone bottom bar ---------- */
.bbar{ display:none; }
@media (max-width:720px){
  .bbar{ display:flex; position:fixed; left:12px; right:12px; bottom:12px; z-index:55; background:var(--ink); border:1px solid var(--line-dark); border-radius:999px; padding:4px 8px; justify-content:space-around; box-shadow:0 8px 30px rgba(0,0,0,.35); }
  .bbar a{ color:var(--bone); font-size:12px; letter-spacing:.04em; min-height:48px; display:inline-flex; align-items:center; padding:0 8px; text-decoration:none; }
  .bbar a.wa{ color:var(--turq); }
  body{ padding-bottom:84px; }
  .to-top{ bottom:86px; }
  .menu-pic{ display:none; }
}

/* ---------- entry sequence (home only) ---------- */
.intro{ position:fixed; left:0; top:0; right:0; bottom:0; z-index:120; background:var(--betel-d); color:var(--bone); display:flex; flex-direction:column; align-items:center; justify-content:center; animation:lift 1.3s cubic-bezier(.7,0,.2,1) 3.9s both; }
@keyframes lift{ from{ clip-path:inset(0 0 0 0); visibility:visible; } 99%{ visibility:visible; } to{ clip-path:inset(0 0 100% 0); visibility:hidden; } }
.intro svg{ width:220px; max-width:56vw; height:auto; overflow:visible; }
.ia{ stroke-dasharray:640; stroke-dashoffset:640; animation:draw 2.4s cubic-bezier(.5,0,.2,1) .3s forwards; }
.ib{ stroke-dasharray:520; stroke-dashoffset:520; animation:draw 2.2s cubic-bezier(.5,0,.2,1) .9s forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.flame{ transform-origin:100px 214px; opacity:0; animation:flame 1.2s ease-out 2s forwards, flick 2.4s ease-in-out 3.2s infinite; }
@keyframes flame{ from{ opacity:0; transform:scale(.2); } to{ opacity:1; transform:scale(1); } }
@keyframes flick{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.12,1.2); } }
.glow{ opacity:0; animation:glowin 2s ease-out 2s forwards; }
@keyframes glowin{ to{ opacity:1; } }
.it1,.it2,.it3{ opacity:0; }
.it1{ animation:fadeup 1.2s ease-out 1.6s forwards; font-family:'Noto Serif Devanagari',serif; font-size:clamp(40px,9vw,64px); margin-top:20px; line-height:1.2; }
.it2{ animation:fadeup 1.2s ease-out 2.4s forwards; font-family:'Noto Serif Devanagari',serif; font-size:clamp(16px,3.4vw,22px); color:var(--mute-dark); margin-top:10px; text-align:center; padding:0 20px; }
.it3{ animation:fadeup 1.2s ease-out 3s forwards; font-family:var(--mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--turq); margin-top:18px; text-align:center; }
@keyframes fadeup{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.intro .skip{ position:absolute; right:20px; top:16px; background:transparent; border:1px solid var(--line-dark); color:var(--mute-dark); font:500 12px var(--sans); letter-spacing:.1em; text-transform:uppercase; padding:0 16px; min-height:44px; border-radius:22px; cursor:pointer; }
.intro .skip:hover{ color:var(--bone); border-color:var(--turq); }
html.no-intro .intro{ display:none; }

/* ---------- home hero ---------- */
.cityhero{ background:var(--ink); color:var(--bone); position:relative; overflow:hidden; padding-top:104px; text-align:center; }
.cityhero .inner{ position:relative; max-width:1200px; margin:0 auto; padding:8px var(--gutter) 0; }
.names{ position:absolute; left:0; right:0; top:16px; height:clamp(190px,32vw,340px); pointer-events:none; }
.nm{ position:absolute; left:0; right:0; top:0; bottom:0; display:flex; align-items:center; justify-content:center; opacity:0; color:#2A4236; font-weight:500; line-height:1; white-space:nowrap; animation:nm 20s infinite; }
.n1{ font-family:'Noto Serif Devanagari',serif; font-size:clamp(130px,28vw,330px); }
.n2{ animation-delay:5s; font-family:'Fraunces',Georgia,serif; font-size:clamp(80px,19vw,230px); }
.n3{ animation-delay:10s; font-family:'Noto Serif JP',serif; font-size:clamp(90px,21vw,250px); }
.n4{ animation-delay:15s; font-family:'Fraunces',Georgia,serif; font-size:clamp(80px,19vw,230px); }
@keyframes nm{ 0%{ opacity:0; transform:translateY(14px); } 5%{ opacity:1; transform:none; } 22%{ opacity:1; transform:none; } 27%{ opacity:0; transform:translateY(-14px); } 100%{ opacity:0; } }
.harch{ position:relative; width:min(340px,80vw); box-sizing:border-box; margin:clamp(80px,13vw,150px) auto 0; padding:10px; border:1px solid var(--geru); border-radius:999px 999px 0 0; background:var(--ink); animation:archin 1.8s cubic-bezier(.2,.7,.2,1) 3.7s both; }
.harch > div{ overflow:hidden; border-radius:999px 999px 0 0; height:clamp(380px,56vw,500px); }
.harch img{ display:block; width:100%; height:100%; object-fit:cover; object-position:30% 58%; animation:kb 28s ease-in-out infinite alternate; }
@keyframes archin{ from{ opacity:0; clip-path:inset(45% 0 0 0); } to{ opacity:1; clip-path:inset(0 0 0 0); } }
@keyframes kb{ from{ transform:scale(1); } to{ transform:scale(1.14); } }
.cityhero h1{ font-family:var(--serif); font-weight:400; font-size:clamp(32px,5.4vw,60px); line-height:1.14; margin:44px auto 0; max-width:900px; }
.cityhero h1 .a{ color:var(--mute-dark); display:block; }
.cityhero h1 .b{ color:var(--bone); display:block; }
.cityhero .subline{ color:var(--mute-dark); font-size:16px; max-width:460px; margin:18px auto 0; }
.cityhero .ctas{ display:flex; flex-wrap:wrap; gap:8px 28px; justify-content:center; align-items:center; margin:28px 0 0; }
.cityhero .ctas .link{ color:var(--bone); font-size:14px; min-height:48px; display:inline-flex; align-items:center; text-decoration:underline; text-decoration-color:var(--turq); text-underline-offset:6px; }
.cityhero .hnote{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:#7F9488; margin:6px 0 0; padding-bottom:84px; }
.cityhero .rise{ opacity:0; animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both; animation-delay:4.1s; }
.cityhero .r2{ animation-delay:4.35s; } .cityhero .r3{ animation-delay:4.6s; } .cityhero .r4{ animation-delay:4.85s; }
@keyframes rise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
html.no-intro .cityhero .rise, html.no-intro .harch{ animation-delay:0s; }
html.no-intro .cityhero .r2{ animation-delay:.25s; } html.no-intro .cityhero .r3{ animation-delay:.5s; } html.no-intro .cityhero .r4{ animation-delay:.75s; }
.kangura{ height:14px; background:var(--kangura) repeat-x left bottom; }
.cityhero .kangura{ position:absolute; left:0; right:0; bottom:0; }

/* ---------- shlokas ---------- */
.shlokas{ background:var(--betel-d); color:var(--bone); text-align:center; padding:clamp(64px,10vw,128px) var(--gutter); }
.shlokas .in{ max-width:880px; margin:0 auto; }
.shlokas .dv{ font-family:'Noto Serif Devanagari',serif; }
.shlokas .tag-d{ font-size:clamp(20px,3vw,26px); color:var(--turq); }
.shlokas .tag-e{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute-dark); margin-top:6px; }
.shlokas .lead{ font-family:var(--serif); font-style:italic; font-size:clamp(18px,2.2vw,22px); color:var(--mute-dark); margin:20px auto 0; max-width:520px; }
.shlokas .main{ margin:clamp(40px,6vw,64px) auto 0; border-top:3px double var(--geru); border-bottom:3px double var(--geru); padding:clamp(36px,6vw,64px) 16px; }
.shlokas .main .dv{ font-weight:500; font-size:clamp(26px,4.6vw,46px); line-height:1.65; }
.shlokas .tr{ font-family:var(--serif); font-style:italic; color:var(--turq); line-height:1.7; margin:24px 0 0; font-size:clamp(16px,2vw,20px); }
.shlokas .en{ font-size:clamp(17px,2vw,21px); margin:14px auto 0; max-width:560px; }
.shlokas .src{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute-dark); margin-top:16px; }
.shlokas .pair{ display:flex; flex-wrap:wrap; gap:48px 32px; justify-content:center; margin-top:clamp(40px,6vw,64px); }
.shlokas .pair > div{ flex:1 1 280px; min-width:0; }
.shlokas .pair .dv{ font-weight:500; font-size:clamp(28px,4vw,38px); line-height:1.4; }
.shlokas .pair .tr{ margin:10px 0 0; font-size:inherit; }
.shlokas .pair .en{ margin:8px auto 0; font-size:inherit; }

/* ---------- home sections ---------- */
.firststrip{ padding:clamp(40px,6vw,64px) var(--gutter) 0; }
.firststrip .row{ display:flex; flex-wrap:wrap; gap:4px 28px; align-items:center; max-width:1200px; margin:0 auto; border-top:3px double var(--geru); border-bottom:3px double var(--geru); padding:14px 0; }
.firststrip .lab{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--geru-d); }
.firststrip a{ font-size:15px; min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; text-decoration-color:var(--geru); text-underline-offset:5px; }
.firststrip a:hover{ color:var(--geru-d); }
#doors, .block{ padding:clamp(56px,9vw,112px) 0; }
.arch-doors{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:48px 28px; margin-top:48px; }
.adoor{ display:block; text-decoration:none; color:var(--ink); }
.adoor .ph{ overflow:hidden; border-radius:999px 999px 0 0; aspect-ratio:3/4; background:var(--ink); }
.adoor img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.adoor:hover img{ transform:scale(1.06); }
.adoor .nl{ display:flex; gap:12px; align-items:baseline; margin-top:18px; }
.adoor .nl b{ font-family:var(--mono); font-weight:400; font-size:12px; color:var(--geru-d); }
.adoor .nl span{ font-family:var(--serif); font-size:26px; }
.adoor p{ margin:6px 0 0; color:var(--silt); font-size:15px; }
.band{ position:relative; height:clamp(340px,50vw,540px); overflow:hidden; background:var(--ink); padding:0; }
.band img{ position:absolute; left:0; top:0; width:100%; height:100%; object-fit:cover; }
.band .veil{ position:absolute; left:0; top:0; right:0; bottom:0; background:rgba(27,43,36,.58); }
.band p{ position:relative; height:100%; display:flex; align-items:center; justify-content:center; text-align:center; padding:0 24px; box-sizing:border-box; font-family:var(--serif); font-size:clamp(26px,4.4vw,52px); line-height:1.2; color:var(--bone); max-width:880px; margin:0 auto; }
.playhome{ background:var(--ink); color:var(--bone); padding:clamp(64px,10vw,128px) 0; }
.playhome .cols{ display:flex; flex-wrap:wrap; gap:48px clamp(32px,6vw,96px); }
.playhome .l{ flex:1 1 360px; min-width:0; }
.playhome h2{ font-family:var(--serif); font-weight:400; font-size:clamp(44px,8vw,96px); line-height:1; margin:16px 0 0; }
.playhome .l p{ font-size:clamp(18px,2vw,22px); color:var(--mute-dark); margin:20px 0 0; max-width:440px; }
.stamp-v{ display:inline-flex; align-items:center; gap:12px; margin-top:36px; border:3px double var(--geru); padding:10px 16px; font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.playhome ul{ flex:1 1 360px; min-width:0; list-style:none; margin:0; padding:0; }
.playhome li{ border-top:1px solid var(--line-dark); }
.playhome li a{ display:flex; justify-content:space-between; gap:16px; align-items:center; padding:18px 0; min-height:44px; font-size:clamp(17px,2vw,21px); text-decoration:none; }
.playhome li a:hover{ color:var(--turq); }
.playhome li a i{ color:var(--turq); font-style:normal; }
.playhome li:last-child{ border-bottom:1px solid var(--line-dark); }
.shophome .cols, .clubhome .cols{ display:flex; flex-wrap:wrap; gap:48px clamp(32px,6vw,96px); align-items:center; }
.shophome .pic{ flex:1 1 320px; min-width:0; display:flex; justify-content:center; }
.shophome .pic div{ width:min(380px,100%); overflow:hidden; border-radius:999px 999px 0 0; aspect-ratio:3/4; background:var(--ink); }
.shophome .pic img{ display:block; width:100%; height:100%; object-fit:cover; object-position:50% 82%; }
.shophome .txt{ flex:1 1 400px; min-width:0; }
.shophome h2, .noteshome h2{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,5vw,56px); line-height:1.1; margin:12px 0 0; }
.shophome .txt > p{ color:var(--silt); margin:16px 0 0; max-width:480px; }
.cats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:0 28px; margin-top:32px; }
.cats > div{ border-top:1px solid var(--ink); padding:14px 0 18px; }
.cats h4{ font-family:var(--serif); font-weight:400; font-size:22px; margin:0; }
.cats p{ font-size:14px; color:var(--silt); margin:0; }
.noteshome .top{ display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; align-items:baseline; }
.noteshome .top a{ font-size:14px; min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; text-decoration-color:var(--geru); text-underline-offset:6px; }
.noteshome ul{ list-style:none; margin:32px 0 0; padding:0; }
.noteshome li{ border-top:1px solid var(--ink); }
.noteshome li:last-child{ border-bottom:1px solid var(--ink); }
.noteshome li a{ display:flex; flex-wrap:wrap; gap:6px 28px; align-items:baseline; justify-content:space-between; padding:22px 0; text-decoration:none; }
.noteshome li a:hover{ color:var(--geru-d); }
.noteshome li span.t{ font-family:var(--serif); font-size:clamp(22px,3vw,32px); line-height:1.2; flex:1 1 360px; }
.noteshome li span.s{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--silt); }
.clubhome{ background:var(--ink); color:var(--bone); padding:clamp(64px,10vw,120px) 0; }
.clubhome .pics{ flex:1 1 360px; min-width:0; display:flex; gap:16px; justify-content:center; }
.clubhome .pics > div{ flex:1 1 0; max-width:230px; min-width:0; }
.clubhome .pics > div:last-child{ margin-top:48px; }
.clubhome .ph{ overflow:hidden; border-radius:999px 999px 0 0; aspect-ratio:3/4; background:var(--betel-d); }
.clubhome .ph img{ display:block; width:100%; height:100%; object-fit:cover; }
.clubhome .cap{ font-family:var(--mono); font-size:12px; color:var(--mute-dark); margin-top:12px; }
.clubhome .txt{ flex:1 1 400px; min-width:0; }
.clubhome h2{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,4vw,46px); line-height:1.2; margin:16px 0 0; }
.clubhome .txt > p{ color:var(--mute-dark); margin:20px 0 0; max-width:480px; }
.clubhome .txt > a{ margin-top:12px; color:var(--bone); font-size:14px; min-height:48px; display:inline-flex; align-items:center; text-decoration:underline; text-decoration-color:var(--turq); text-underline-offset:6px; }
.clubhome .eyebrow{ color:var(--turq); }
.pillrow .eyebrow{ margin:0; }

@media (prefers-reduced-motion: reduce){
  .intro{ display:none !important; }
  .nm,.harch,.harch img,.cityhero .rise,.flame,.menu.open{ animation:none !important; }
  .n1{ opacity:1; }
  .cityhero .rise,.harch{ opacity:1 !important; }
}

/* breadcrumb floats over the dark inner hero (header + crumb stay readable) */
.crumb{ position:absolute; left:0; right:0; top:0; z-index:6; padding:104px var(--gutter) 0 !important; }
.crumb nav, .crumb a{ color:var(--cream-45) !important; }
.crumb a:hover{ color:var(--brass-soft) !important; }
.crumb span.here{ color:var(--cream-70) !important; }
.page-hero.has-crumb, .hero.has-crumb{ padding-top:176px !important; }
@media (max-width:680px){ .crumb{ padding-top:92px !important; } .page-hero.has-crumb{ padding-top:160px !important; } }

/* ---------- Voices ---------- */
.voiceband{ background:var(--ink); color:var(--bone); text-align:center; padding:clamp(64px,10vw,120px) var(--gutter); border-top:1px solid var(--line-dark); }
.voiceband .in{ max-width:760px; margin:0 auto; }
.voiceband .eyebrow{ color:var(--turq); margin:0; }
.voiceband .lead{ font-family:var(--serif); font-style:italic; color:var(--mute-dark); font-size:clamp(18px,2.2vw,22px); margin:12px 0 0; }
.voiceband blockquote{ font-family:'Noto Serif Devanagari',serif; font-weight:500; font-size:clamp(28px,5vw,48px); line-height:1.55; margin:clamp(28px,4vw,44px) 0 0; }
.voiceband .cap{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute-dark); margin:22px 0 0; }
.voiceband .cap a{ color:var(--bone); text-decoration:underline; text-decoration-color:var(--turq); text-underline-offset:5px; }
.voiceband .ctas{ display:flex; flex-wrap:wrap; gap:8px 28px; justify-content:center; align-items:center; margin-top:28px; }
.voiceband .ctas .link{ color:var(--bone); min-height:48px; display:inline-flex; align-items:center; text-decoration:underline; text-decoration-color:var(--turq); text-underline-offset:6px; font-size:14px; }
.author-card{ display:flex; flex-wrap:wrap; gap:32px clamp(28px,5vw,64px); align-items:center; text-decoration:none; color:var(--ink); }
.arch-portrait{ width:min(230px,60vw); aspect-ratio:3/4; border:1px solid var(--geru); border-radius:999px 999px 0 0; padding:8px; box-sizing:border-box; flex:none; }
.arch-portrait > div{ width:100%; height:100%; border-radius:999px 999px 0 0; background:var(--ink); color:var(--turq); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:56px; letter-spacing:.04em; overflow:hidden; }
.arch-portrait img{ width:100%; height:100%; object-fit:cover; display:block; }
.author-card h3{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,4vw,40px); margin:0; }
.author-card .role{ font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--geru-d); margin:8px 0 0; }
.author-card p.bio{ color:var(--silt); max-width:46ch; margin:14px 0 0; }
.author-card .go{ display:inline-block; margin-top:14px; font-size:14px; text-decoration:underline; text-decoration-color:var(--geru); text-underline-offset:6px; }
.poem-row{ display:block; padding:28px 0; border-bottom:1px solid var(--ink-18); text-decoration:none; color:var(--ink); }
.poem-row:first-child{ border-top:1px solid var(--ink-18); }
.poem-row h4{ font-family:'Noto Serif Devanagari',serif; font-weight:500; font-size:clamp(24px,3vw,32px); margin:0; }
.poem-row .ex{ font-family:'Noto Serif Devanagari',serif; color:var(--silt); line-height:1.8; margin:10px 0 0; }
.poem-row .by{ font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--silt); margin-top:10px; display:block; }
.poem-row:hover h4{ color:var(--geru-d); }
.au-hero{ display:flex; flex-wrap:wrap; gap:28px clamp(28px,5vw,64px); align-items:center; }
@media (max-width:680px){ .arch-portrait{ width:min(200px,60vw); } }

/* Shiva shlokas */
.shlokas .trishul{ margin:clamp(28px,4vw,44px) auto 0; display:block; }
.shlokas .main{ margin-top:18px; }
.shlokas .main .dv.vn{ font-size:clamp(22px,3.7vw,38px); line-height:1.7; }
.shlokas .tr{ font-size:clamp(14px,1.6vw,17px); }
.shlokas .pair .dv{ font-size:clamp(20px,2.6vw,28px); line-height:1.6; }
.shlokas .pair > div:last-child .dv{ font-size:clamp(28px,4vw,38px); }
.shlokas .pair .tr{ font-size:clamp(13px,1.4vw,15px); }
.shlokas .pair .en{ font-size:clamp(15px,1.6vw,17px); color:var(--bone); }
.shlokas .pair .src{ font-size:11px; }
.shlokas .taraka{ font-family:var(--serif); font-style:italic; color:var(--mute-dark); max-width:560px; margin:clamp(36px,5vw,56px) auto 0; font-size:clamp(16px,1.8vw,19px); }

/* city name now floats over the arch so it stays readable */
.names{ z-index:3; }
.nm{ color:rgba(238,230,211,.20); }
.harch img{ opacity:.85; }
.shlokas .pair .dv{ font-size:clamp(22px,2.7vw,30px); line-height:1.6; }
.shlokas .pair .dv.big{ font-size:clamp(30px,4vw,40px); line-height:1.4; }
.shlokas .pair > div:last-child .dv{ font-size:clamp(22px,2.7vw,30px); }
.shlokas .pair > div:last-child .dv.big{ font-size:clamp(30px,4vw,40px); }

/* ---------- compact rotating shloka strip (one verse, changes every minute) ---------- */
.shlokas{ padding:clamp(32px,4.5vw,56px) var(--gutter) clamp(28px,4vw,48px); }
.shlokas .in{ max-width:820px; }
.shl-head{ display:flex; justify-content:center; align-items:baseline; gap:12px; font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute-dark); }
.shl-head .dv{ font-family:'Noto Serif Devanagari',serif; font-size:18px; letter-spacing:0; text-transform:none; color:var(--turq); }
.shl-head .sep{ color:var(--geru); }
.shl-body{ margin-top:18px; border-top:3px double var(--geru); border-bottom:3px double var(--geru); padding:clamp(22px,3.4vw,34px) 8px; min-height:300px; display:flex; flex-direction:column; align-items:center; justify-content:center; transition:opacity .45s ease; }
.shl-body.out{ opacity:0; }
.shl-sa{ font-family:'Noto Serif Devanagari',serif; font-weight:500; font-size:clamp(20px,2.7vw,28px); line-height:1.7; }
.shl-tr{ font-family:var(--serif); font-style:italic; color:var(--turq); font-size:clamp(13px,1.5vw,15px); line-height:1.6; margin:12px 0 0; }
.shl-en{ font-size:clamp(15px,1.7vw,17px); color:var(--bone); max-width:56ch; margin:12px auto 0; line-height:1.6; }
.shl-src{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute-dark); margin-top:12px; }
.shl-note{ font-family:var(--serif); font-style:italic; color:var(--mute-dark); font-size:14px; max-width:52ch; margin:10px auto 0; }
.shl-bar{ height:2px; background:rgba(79,163,156,.15); margin-top:14px; overflow:hidden; }
.shl-bar i{ display:block; height:100%; width:0; background:var(--turq); }
.shl-bar i.run{ animation:shbar 60s linear forwards; }
@keyframes shbar{ from{ width:0; } to{ width:100%; } }
@media (max-width:680px){ .shl-body{ min-height:420px; } }
@media (prefers-reduced-motion: reduce){ .shl-bar{ display:none; } .shl-body{ transition:none; } }
.to-top{display:none!important}
.shl-bar{display:none!important}

.mi .ml{ font-size:clamp(24px,3.7vw,44px); }
.mi{ padding:clamp(8px,1.2vw,14px) 0; }

.mi .ml{ font-size:clamp(22px,3.2vw,38px); }
.mi{ padding:clamp(7px,1vw,11px) 0; }

/* ===== Stay & Well ===== */
.sw-dummy{ background:transparent; color:var(--silt,#6B5C42); border-bottom:1px dashed var(--line); font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; text-align:center; padding:9px 16px; line-height:1.5; }
.sw-ph{ display:inline; color:var(--silt,#6B5C42); background:rgba(79,163,156,.12); border-bottom:1px dashed var(--turq); padding:0 4px; font-style:italic; }
.hero .sw-ph, .sw-dark .sw-ph{ color:var(--mute-dark); background:rgba(79,163,156,.16); }
.sw-med{ margin-top:18px; max-width:56ch; font-size:13px; line-height:1.6; color:var(--mute-dark); border-left:2px solid var(--turq); padding-left:12px; }
.sw-principles{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,3vw,40px); margin-top:24px; }
.sw-principles > div{ border-top:3px double var(--geru); padding-top:14px; font-family:var(--serif); font-size:clamp(18px,1.8vw,22px); line-height:1.3; }
.sw-principles b{ display:block; font-family:var(--mono); font-size:12px; font-weight:500; color:var(--geru); margin-bottom:8px; }
.sw-areas{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,3vw,40px); margin-top:36px; }
.sw-area{ border-top:1px solid var(--line); padding-top:16px; }
.sw-area b{ font-family:var(--mono); font-size:12px; color:var(--geru); font-weight:500; }
.sw-area h3{ font-family:var(--serif); font-size:clamp(22px,2.4vw,30px); margin:8px 0 10px; }
.sw-area p{ font-size:15px; line-height:1.6; margin-bottom:12px; }
.sw-go{ font-family:var(--mono); font-size:12px; letter-spacing:.06em; color:var(--geru); text-decoration:none; }
.sw-group{ margin-bottom:clamp(36px,5vw,64px); }
.sw-group > h3{ font-family:var(--serif); font-size:clamp(24px,3vw,34px); margin-bottom:20px; padding-bottom:12px; border-bottom:3px double var(--geru); }
.sw-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:clamp(18px,2.4vw,32px); }
.sw-card{ display:block; color:inherit; text-decoration:none; background:var(--cream); border:1px solid var(--line); transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .3s; }
.sw-card:hover{ transform:translateY(-4px); border-color:var(--geru); }
.sw-cardph{ aspect-ratio:4/3; padding:12px 12px 0; }
.sw-cardph > div, .sw-bigph{ width:100%; height:100%; border:1px dashed var(--turq); background:rgba(79,163,156,.08); display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--silt,#6B5C42); }
.sw-bigph{ min-height:100%; }
.sw-cardtx{ padding:18px 18px 20px; }
.sw-meta{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:8px; }
.sw-cardtx h3{ font-family:var(--serif); font-size:24px; line-height:1.2; margin-bottom:8px; }
.sw-one{ font-size:15px; line-height:1.55; margin-bottom:10px; }
.sw-last{ font-family:var(--mono); font-size:11px; margin-bottom:12px; color:var(--silt,#6B5C42); }
.sw-h2{ font-family:var(--serif); font-size:clamp(24px,3vw,34px); margin-bottom:14px; }
.sw-fields{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(24px,5vw,72px); }
.sw-field{ border-top:1px solid var(--line); padding:16px 0 18px; }
.sw-field dt{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--geru); margin-bottom:6px; }
.sw-field dd{ margin:0; font-size:16px; line-height:1.55; }
.sw-rule{ display:grid; grid-template-columns:48px 1fr; gap:4px 18px; border-top:3px double var(--geru); padding:20px 0 26px; max-width:760px; }
.sw-rule b{ grid-row:1 / span 2; font-family:var(--mono); font-size:12px; color:var(--geru); font-weight:500; padding-top:6px; }
.sw-rule h3{ font-family:var(--serif); font-size:clamp(22px,2.4vw,28px); }
.sw-rule p{ font-size:16px; line-height:1.6; }
[data-lang="hi"] .sw-principles > div, [data-lang="hi"] .sw-area h3, [data-lang="hi"] .sw-cardtx h3, [data-lang="hi"] .sw-rule h3{ font-family:'Noto Serif Devanagari', var(--serif); font-weight:500; }
[data-lang="ja"] .sw-principles > div, [data-lang="ja"] .sw-area h3, [data-lang="ja"] .sw-cardtx h3, [data-lang="ja"] .sw-rule h3{ font-family:'Noto Serif JP', var(--serif); font-weight:500; }
@media (max-width:860px){ .sw-principles{ grid-template-columns:repeat(2,1fr); } .sw-areas{ grid-template-columns:1fr; } .sw-fields{ grid-template-columns:1fr; } }
@media (max-width:440px){ .sw-principles{ grid-template-columns:1fr; } }

.sw-needsec{ padding-top:clamp(28px,4vw,56px); }
.sw-needs{ list-style:none; margin:0; padding:0; }
.sw-needs a{ display:grid; grid-template-columns:44px 1fr 32px; align-items:baseline; gap:6px 16px; padding:clamp(18px,2.4vw,30px) 0; border-top:1px solid var(--line); color:var(--ink); text-decoration:none; transition:padding-left .4s cubic-bezier(.2,.7,.2,1), color .3s; }
.sw-needs li:last-child a{ border-bottom:1px solid var(--line); }
.sw-needs a:hover, .sw-needs a:focus-visible{ padding-left:14px; color:var(--geru); }
.sw-nn{ font-family:var(--mono); font-size:12px; color:var(--geru); }
.sw-nq{ font-family:var(--serif); font-size:clamp(26px,4.2vw,52px); line-height:1.12; }
.sw-needs i{ font-style:normal; font-size:24px; color:var(--turq); transition:transform .3s; }
.sw-needs a:hover i{ transform:translateX(6px); }
.sw-browse{ margin-top:clamp(28px,4vw,48px); display:flex; flex-wrap:wrap; gap:14px 28px; align-items:baseline; }
.sw-browse > div{ display:flex; flex-wrap:wrap; gap:8px 24px; }
.sw-browse a{ font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--geru); padding-bottom:2px; }
.sw-rows{ border-bottom:1px solid var(--line); }
.sw-row{ display:grid; grid-template-columns:44px 1fr auto; gap:6px 18px; padding:clamp(22px,3vw,36px) 0; border-top:1px solid var(--line); color:inherit; text-decoration:none; transition:padding-left .4s cubic-bezier(.2,.7,.2,1); }
.sw-row:hover{ padding-left:12px; }
.sw-n{ font-family:var(--mono); font-size:12px; color:var(--geru); padding-top:6px; }
.sw-chip{ display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--turq); border:1px solid var(--turq); padding:2px 8px; margin-bottom:8px; }
.sw-main h3{ font-family:var(--serif); font-size:clamp(26px,3.4vw,40px); line-height:1.15; margin-bottom:8px; }
.sw-main p{ font-size:16px; line-height:1.6; max-width:56ch; }
.sw-side{ display:flex; flex-direction:column; align-items:flex-end; gap:6px; font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; }
.sw-side .sw-go{ font-size:22px; margin-top:auto; color:var(--turq); }
@media (max-width:640px){ .sw-row{ grid-template-columns:32px 1fr; } .sw-side{ grid-column:2; flex-direction:row; align-items:center; flex-wrap:wrap; gap:6px 14px; } .sw-side .sw-go{ margin-left:auto; margin-top:0; } .sw-needs a{ grid-template-columns:30px 1fr 24px; } }
.sw-main{ display:block; }
.sw-main h3{ margin:0 0 8px !important; font-weight:400; }
.sw-main .sw-chip{ margin:0 0 10px; }
.sw-main .sw-ph{ background:none; }
[data-lang="hi"] .sw-nq, [data-lang="ja"] .sw-nq, [data-lang="hi"] .sw-main h3, [data-lang="ja"] .sw-main h3{ line-height:1.4; }
[data-lang="hi"] .sw-nq{ font-size:clamp(24px,3.6vw,44px); }

/* ===== Getting around (visual) ===== */
.mv-i{ display:block; }
.mv-hero{ padding-top:8px; }
.mv-hero2{ display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(24px,5vw,72px); align-items:center; }
.mv-bigicon{ display:inline-flex; width:72px; height:72px; align-items:center; justify-content:center; border:1px solid var(--geru); border-radius:999px 999px 0 0; color:var(--turq); margin-bottom:20px; }
.mv-card .mv-bigicon{ border-color:var(--geru); color:var(--geru); margin-bottom:18px; }
/* phone */
.mv-heroph{ display:flex; justify-content:center; }
.mv-phone{ position:relative; width:min(250px,64vw); aspect-ratio:9/18.5; border:2px solid var(--bone); border-radius:34px; background:#0F1A15; padding:10px; box-shadow:0 30px 60px rgba(0,0,0,.35); }
.mv-notch{ position:absolute; top:14px; left:50%; width:70px; height:16px; margin-left:-35px; background:#000; border-radius:12px; z-index:2; }
.mv-screen{ position:relative; width:100%; height:100%; border-radius:26px; overflow:hidden; background:linear-gradient(180deg,#1B2B24,#0F1A15); padding:44px 14px 16px; box-sizing:border-box; }
.mv-home{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px 8px; }
.mv-tile{ display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.mv-ticon{ width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:var(--geru); color:#EEE6D3; }
.mv-tile:nth-child(2) .mv-ticon{ background:var(--turq); color:#0F1A15; }
.mv-tile:nth-child(3) .mv-ticon{ background:#EEE6D3; color:#1B2B24; }
.mv-tile:nth-child(4) .mv-ticon{ background:#6B5C42; }
.mv-tile:nth-child(5) .mv-ticon{ background:#2A4236; border:1px solid var(--turq); }
.mv-tile:nth-child(6) .mv-ticon{ background:var(--turq); color:#0F1A15; }
.mv-g{ font-family:var(--serif); font-size:26px; line-height:1; }
.mv-tl{ font-family:var(--mono); font-size:9px; letter-spacing:.04em; color:#A9B8AE; line-height:1.3; }
.mv-shotbox{ position:absolute; inset:40px 14px 16px; border:1px dashed var(--turq); border-radius:14px; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute-dark,#A9B8AE); }
/* sections */
.mv-sec{ padding-top:clamp(40px,6vw,72px); }
.mv-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.4vw,28px); margin-top:24px; }
.mv-card{ display:flex; flex-direction:column; color:inherit; text-decoration:none; border-top:3px double var(--geru); padding-top:22px; transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.mv-card:hover{ transform:translateY(-4px); }
.mv-card h3{ font-family:var(--serif); font-size:clamp(20px,2vw,26px); line-height:1.25; margin-bottom:10px; }
.mv-card p{ font-size:15px; line-height:1.55; margin-bottom:14px; }
.mv-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.mv-chips a{ font-family:var(--mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); text-decoration:none; border:1px solid var(--geru); border-radius:999px; padding:10px 18px; transition:background .3s,color .3s; }
.mv-chips a:hover{ background:var(--geru); color:#EEE6D3; }
.mv-cta{ margin-top:40px; }
/* guide */
.mv-guide{ display:grid; grid-template-columns:260px 1fr; gap:clamp(28px,6vw,88px); align-items:start; }
.mv-stick{ position:sticky; top:96px; }
.mv-stick .mv-phone{ width:100%; }
.mv-steps{ list-style:none; margin:20px 0 0; padding:0; }
.mv-step{ display:grid; grid-template-columns:56px 1fr; gap:14px; padding:20px 0; border-top:1px solid var(--line); align-items:baseline; }
.mv-step b{ font-family:var(--serif); font-size:36px; font-weight:400; color:var(--geru); line-height:1; }
.mv-step p{ font-size:17px; line-height:1.6; }
/* ticket */
.mv-ticket{ display:grid; grid-template-columns:1.3fr 1fr; border:1px solid var(--geru); position:relative; }
.mv-ticket::before{ content:""; position:absolute; top:-1px; bottom:-1px; left:56.5%; border-left:2px dashed var(--geru); }
.mv-tk-l, .mv-tk-r{ padding:clamp(18px,2.4vw,28px); }
.mv-tk-r{ padding-left:clamp(22px,3vw,36px); display:flex; flex-direction:column; justify-content:center; gap:8px; }
.mv-tk-l .sw-say-hi{ margin:8px 0 0; }
/* apps */
.mv-appgroup{ margin-bottom:clamp(30px,4vw,52px); }
.mv-appgroup > h3{ font-family:var(--serif); font-size:clamp(22px,2.6vw,30px); padding-bottom:10px; border-bottom:3px double var(--geru); margin-bottom:18px; }
.mv-appgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px clamp(20px,4vw,48px); }
.mv-app{ display:grid; grid-template-columns:56px 1fr; gap:4px 16px; align-items:start; }
.mv-app .mv-ticon{ grid-row:1 / span 3; width:56px; height:56px; border-radius:16px; }
.mv-app h3{ font-family:var(--serif); font-size:22px; }
.mv-app p{ font-size:15px; line-height:1.5; }
.mv-pill{ display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; }
/* routes */
.mv-rts{ border-bottom:1px solid var(--line); }
.mv-rt{ display:grid; grid-template-columns:56px 1fr auto; gap:16px; align-items:center; padding:22px 0; border-top:1px solid var(--line); color:inherit; text-decoration:none; transition:padding-left .4s cubic-bezier(.2,.7,.2,1); }
.mv-rt:hover{ padding-left:12px; }
.mv-rt h3{ font-family:var(--serif); font-size:clamp(22px,2.8vw,32px); line-height:1.2; }
.mv-nico{ width:48px; height:48px; border:1px solid var(--geru); border-radius:999px 999px 0 0; display:flex; align-items:center; justify-content:center; color:var(--geru); flex:none; background:var(--cream); }
.mv-routewrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,6vw,88px); align-items:start; }
.mv-route{ list-style:none; margin:0; padding:0; position:relative; }
.mv-node{ display:grid; grid-template-columns:48px 1fr; gap:18px; padding-bottom:34px; position:relative; }
.mv-node::before{ content:""; position:absolute; left:23.5px; top:50px; bottom:2px; border-left:2px solid var(--geru); }
.mv-node.k-walk::before{ border-left-style:dashed; border-color:var(--turq); }
.mv-node:last-child::before{ display:none; }
.mv-node h3{ font-family:var(--serif); font-size:22px; line-height:1.25; margin-bottom:6px; }
.mv-node p{ font-size:15px; line-height:1.55; }
.mv-node.k-stop .mv-nico{ background:var(--geru); color:#EEE6D3; }
.mv-node.k-end .mv-nico{ background:var(--turq); color:#0F1A15; border-color:var(--turq); }
[data-lang="hi"] .mv-card h3,[data-lang="hi"] .mv-rt h3,[data-lang="hi"] .mv-node h3,[data-lang="hi"] .mv-app h3,[data-lang="hi"] .mv-appgroup>h3{ font-family:'Noto Serif Devanagari',var(--serif); font-weight:500; line-height:1.4; }
[data-lang="ja"] .mv-card h3,[data-lang="ja"] .mv-rt h3,[data-lang="ja"] .mv-node h3,[data-lang="ja"] .mv-app h3,[data-lang="ja"] .mv-appgroup>h3{ font-family:'Noto Serif JP',var(--serif); font-weight:500; line-height:1.4; }
@media (max-width:900px){ .mv-cards{ grid-template-columns:repeat(2,1fr); } .mv-hero2{ grid-template-columns:1fr; } .mv-routewrap{ grid-template-columns:1fr; } }
@media (max-width:760px){ .mv-guide{ grid-template-columns:1fr; } .mv-stick{ position:static; max-width:200px; } .mv-appgrid{ grid-template-columns:1fr; } .mv-ticket{ grid-template-columns:1fr; } .mv-ticket::before{ display:none; } .mv-tk-r{ border-top:2px dashed var(--geru); } }
@media (max-width:440px){ .mv-cards{ grid-template-columns:1fr; } }

.mv-heroph, .mv-heroph:hover{ text-decoration:none; }
.mv-tl{ text-decoration:none; }
.mv-hero2 .mv-phone{ aspect-ratio:9/14.5; }
.mv-home{ gap:26px 8px; }
.mv-ticon{ width:52px; height:52px; }
