:root{
    --ink:#14181A;
    --ink-soft:#1E2422;
    --paper:#F2ECDF;
    --paper-soft:#E8DEC5;
    --ember:#C7622D;
    --ember-soft:#E3A15C;
    --moss:#4A5D4E;
    --stone:#8B8478;
    --cream:#EDE6D6;
    --line-dark: rgba(237,230,214,0.16);
    --line-light: rgba(20,24,26,0.14);
    --maxw: 1180px;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans','Noto Sans JP','Noto Sans KR', sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  h1,h2,h3{
    font-family:'Fraunces','Noto Sans JP','Noto Sans KR', serif;
    font-weight:500;
    margin:0;
    line-height:1.15;
  }
  .wrap{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 32px;
  }
  @media (max-width:640px){ .wrap{ padding:0 20px; } }

  :focus-visible{
    outline:2px solid var(--ember);
    outline-offset:3px;
  }

  /* ---------- NAV ---------- */
  .nav{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    padding:22px 0;
    transition:background .3s ease, padding .3s ease, border-color .3s ease;
    border-bottom:1px solid transparent;
  }
  .nav.is-scrolled{
    background:rgba(20,24,26,0.92);
    backdrop-filter:blur(6px);
    padding:14px 0;
    border-color:var(--line-dark);
  }
  .nav .wrap{ display:flex; align-items:center; justify-content:space-between; }
  .nav-mark{
    font-family:'Fraunces', serif;
    font-size:1.15rem;
    font-weight:500;
    color:var(--cream);
    letter-spacing:.01em;
    text-decoration:none;
    flex-shrink:0;
  }
  .nav-right{
    display:flex;
    align-items:center;
    gap:26px;
  }
  .nav-links{
    display:flex;
    gap:34px;
    list-style:none;
    margin:0; padding:0;
  }
  .nav-links a{
    color:var(--cream);
    text-decoration:none;
    font-size:0.92rem;
    opacity:.82;
    transition:opacity .2s;
    white-space:nowrap;
  }
  .nav-links a:hover{ opacity:1; }
  .nav-cta{
    border:1px solid var(--line-dark);
    padding:8px 18px;
    border-radius:2px;
    font-size:0.88rem !important;
    opacity:1 !important;
  }
  .lang-switch{
    display:flex;
    gap:6px;
    flex-shrink:0;
  }
  .lang-btn{
    background:none;
    border:1px solid var(--line-dark);
    color:var(--cream);
    font-size:0.76rem;
    padding:5px 10px;
    cursor:pointer;
    opacity:.65;
    font-family:'IBM Plex Sans','Noto Sans JP','Noto Sans KR', sans-serif;
    transition:opacity .2s, border-color .2s, color .2s;
  }
  .lang-btn:hover{ opacity:.9; }
  .lang-btn.is-active{
    opacity:1;
    border-color:var(--ember);
    color:var(--ember-soft);
  }
  .nav-toggle{ display:none; }
  @media (max-width:800px){
    .nav-right{ position:relative; }
    .nav-links{
      display:none;
      flex-direction:column;
      align-items:flex-start;
      gap:0;
      position:absolute;
      top:calc(100% + 22px);
      right:0;
      min-width:200px;
      background:var(--ink);
      border:1px solid var(--line-dark);
      padding:8px 0;
      z-index:200;
    }
    .nav-links.is-open{ display:flex; }
    .nav-links li{ width:100%; }
    .nav-links a{
      display:block;
      padding:12px 20px;
      white-space:nowrap;
    }
    .nav-cta{
      border:none !important;
      padding:12px 20px !important;
    }
    .nav-toggle{
      display:block;
      background:none; border:none;
      color:var(--cream);
      font-size:1.5rem;
      cursor:pointer;
      padding:0 0 0 4px;
      position:relative;
      z-index:201;
    }
  }

  /* ---------- HERO ---------- */
  .hero{
    background:var(--ink);
    color:var(--cream);
    padding:180px 0 0;
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{ position:relative; z-index:2; display:block; }
  .hero-eyebrow{
    color:var(--ember-soft);
    font-size:0.95rem;
    max-width:460px;
    margin-bottom:26px;
  }
  .hero h1{
    font-size:clamp(2.4rem, 6.4vw, 5.2rem);
    max-width:16ch;
    color:var(--cream);
  }
  .hero-sub{
    max-width:540px;
    margin-top:28px;
    font-size:1.08rem;
    color:var(--stone);
  }
  .hero-stats{
    display:flex;
    gap:46px;
    margin-top:56px;
    flex-wrap:wrap;
  }
  .hero-stat b{
    display:block;
    font-family:'Fraunces', serif;
    font-size:1.9rem;
    font-weight:500;
    color:var(--cream);
  }
  .hero-stat span{
    font-size:0.86rem;
    color:var(--stone);
  }

  /* marquee ticker */
  .ticker{
    margin-top:90px;
    border-top:1px solid var(--line-dark);
    border-bottom:1px solid var(--line-dark);
    overflow:hidden;
    white-space:nowrap;
    padding:20px 0;
  }
  .ticker-track{
    display:inline-flex;
    animation:tick 32s linear infinite;
  }
  .ticker-track span{
    font-family:'Fraunces','Noto Sans JP','Noto Sans KR', serif;
    font-size:1.5rem;
    font-weight:400;
    color:var(--stone);
    padding:0 34px;
    display:inline-flex;
    align-items:center;
    gap:34px;
  }
  .ticker-track span::after{
    content:'—';
    color:var(--ember);
  }
  @keyframes tick{
    from{ transform:translateX(0); }
    to{ transform:translateX(-50%); }
  }
  @media (prefers-reduced-motion:reduce){
    .ticker-track{ animation:none; }
  }

  /* ---------- SECTION SHARED ---------- */
  section{ padding:110px 0; }
  @media (max-width:640px){ section{ padding:72px 0; } }
  .kicker{
    color:var(--ember);
    font-size:0.92rem;
    margin-bottom:16px;
  }
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:40px;
    margin-bottom:56px;
  }
  .section-head h2{
    font-size:clamp(1.8rem, 3.4vw, 2.6rem);
    max-width:18ch;
  }
  .section-head p{
    max-width:36ch;
    color:var(--stone);
    font-size:0.98rem;
    margin:0;
  }
  @media (max-width:760px){
    .section-head{ flex-direction:column; align-items:flex-start; gap:16px; }
  }

  /* ---------- ABOUT ---------- */
  .about{ background:var(--paper); }
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:center;
  }
  @media (max-width:860px){
    .about-grid{ grid-template-columns:1fr; }
  }
  .about-copy p{ color:var(--ink-soft); font-size:1.02rem; max-width:48ch; }
  .about-copy p + p{ margin-top:16px; }
  .video-frame{
    position:relative;
    border:1px solid var(--line-light);
    padding:10px;
    background:var(--paper-soft);
  }
  .video-frame a{
    position:relative;
    display:block;
    aspect-ratio:16/9;
    overflow:hidden;
    text-decoration:none;
  }
  .video-frame img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .5s ease;
  }
  .video-frame a:hover img{ transform:scale(1.03); }
  .play-button{
    position:absolute;
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:74px; height:74px;
    border-radius:50%;
    background:rgba(20,24,26,0.72);
    border:1.5px solid rgba(237,230,214,0.5);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background .2s, transform .2s;
  }
  .video-frame a:hover .play-button{
    background:var(--ember);
    transform:translate(-50%,-50%) scale(1.06);
  }
  .play-button svg{ margin-left:4px; }
  .video-caption{
    font-size:0.82rem;
    color:var(--stone);
    margin-top:10px;
    padding:0 2px;
  }

  /* ---------- SHOWCASE ---------- */
  .showcase{ background:var(--paper-soft); border-top:1px solid var(--line-light); border-bottom:1px solid var(--line-light); }
  .video-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:30px;
  }
  .video-card{
    text-decoration:none;
    color:var(--ink);
    display:block;
  }
  .video-thumb{
    position:relative;
    overflow:hidden;
    border:1px solid var(--line-light);
  }
  .video-thumb img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    transition:transform .5s ease;
  }
  .video-card:hover .video-thumb img{ transform:scale(1.045); }
  .video-title{
    margin-top:14px;
    font-size:0.98rem;
    font-weight:500;
    max-width:38ch;
  }
  .video-meta{
    font-size:0.82rem;
    color:var(--stone);
    margin-top:6px;
  }

  .platform-row{
    margin-top:64px;
    display:flex;
    flex-wrap:wrap;
    gap:14px;
  }
  .platform-link{
    border:1px solid var(--line-light);
    padding:12px 22px;
    text-decoration:none;
    color:var(--ink);
    font-size:0.92rem;
    transition:background .2s, color .2s, border-color .2s;
  }
  .platform-link:hover{
    background:var(--ink);
    color:var(--cream);
    border-color:var(--ink);
  }

  /* ---------- MERCH ---------- */
  .merch{ background:var(--paper); }
  .merch-box{
    border:1px dashed var(--line-light);
    padding:72px 40px;
    text-align:center;
    max-width:600px;
    margin:0 auto;
  }
  @media (max-width:640px){ .merch-box{ padding:48px 24px; } }
  .merch-box .kicker{ margin-bottom:14px; }
  .merch-box h2{
    font-size:clamp(1.6rem, 3vw, 2.2rem);
  }
  .merch-box p{
    color:var(--stone);
    margin-top:16px;
    font-size:0.98rem;
    max-width:42ch;
    margin-left:auto;
    margin-right:auto;
  }

  /* ---------- BUSINESS / GET FILMED ---------- */
  .business{ background:var(--ink); color:var(--cream); }
  .business .kicker{ color:var(--ember-soft); }
  .business .section-head h2{ color:var(--cream); }
  .business .section-head p{ color:var(--stone); }

  .business-intro{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:64px;
    margin-bottom:80px;
  }
  @media (max-width:860px){ .business-intro{ grid-template-columns:1fr; gap:36px; } }
  .business-intro p{ color:var(--stone); max-width:52ch; font-size:1.02rem; }
  .business-intro p + p{ margin-top:14px; }
  .why-list{
    list-style:none;
    margin:0; padding:0;
    border-top:1px solid var(--line-dark);
  }
  .why-list li{
    padding:18px 0;
    border-bottom:1px solid var(--line-dark);
    display:grid;
    grid-template-columns:44px 1fr;
    gap:18px;
    align-items:baseline;
  }
  .why-list b{
    font-family:'Fraunces', serif;
    font-size:1.3rem;
    color:var(--ember-soft);
    font-weight:500;
  }
  .why-list span{ color:var(--stone); font-size:0.94rem; }

  /* ---------- AUDIENCE ---------- */
  .audience-block{ margin-bottom:80px; }
  .audience-head{ max-width:640px; margin-bottom:36px; }
  .audience-head .kicker{ margin-bottom:14px; }
  .audience-head h3{
    font-size:clamp(1.4rem, 2.6vw, 1.9rem);
    color:var(--cream);
    margin-bottom:14px;
  }
  .audience-head p{
    color:var(--stone);
    font-size:0.96rem;
    max-width:60ch;
    margin:0;
  }
  .audience-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:var(--line-dark);
    border:1px solid var(--line-dark);
  }
  @media (max-width:760px){
    .audience-grid{ grid-template-columns:1fr; }
  }
  .audience-col{
    background:var(--ink);
    padding:28px 26px;
  }
  .audience-col h4{
    font-family:'Fraunces','Noto Sans JP','Noto Sans KR', serif;
    font-weight:500;
    font-size:1.1rem;
    color:var(--ember-soft);
    margin:0 0 18px;
  }
  .audience-stat{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:14px;
    padding:11px 0;
    border-top:1px dotted var(--line-dark);
  }
  .audience-stat:first-of-type{ border-top:none; }
  .audience-stat .label{
    color:var(--stone);
    font-size:0.8rem;
    flex-shrink:0;
  }
  .audience-stat .value{
    color:var(--cream);
    font-size:0.88rem;
    font-weight:500;
    text-align:right;
  }

  /* menu board pricing */
  .menu-board{
    border:1px solid var(--line-dark);
    padding:8px;
  }
  .menu-board-inner{
    border:1px solid var(--line-dark);
    padding:48px 40px;
  }
  @media (max-width:640px){ .menu-board-inner{ padding:32px 22px; } }
  .menu-heading{
    text-align:center;
    margin-bottom:44px;
  }
  .menu-heading h3{
    font-size:1.6rem;
    color:var(--cream);
  }
  .menu-heading span{
    display:block;
    color:var(--stone);
    font-size:0.86rem;
    margin-top:8px;
  }
  .menu-tier{
    padding:28px 0;
    border-top:1px dashed var(--line-dark);
  }
  .menu-tier:first-of-type{ border-top:none; }
  .menu-tier-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:20px;
    flex-wrap:wrap;
  }
  .menu-tier-head h4{
    font-family:'Fraunces','Noto Sans JP','Noto Sans KR', serif;
    font-weight:500;
    font-size:1.25rem;
    color:var(--cream);
    margin:0;
  }
  .menu-tier-price{
    font-family:'Fraunces', serif;
    font-size:1.25rem;
    color:var(--ember-soft);
    white-space:nowrap;
  }
  .menu-tier-desc{
    color:var(--stone);
    font-size:0.88rem;
    margin-top:6px;
  }
  .menu-tier ul{
    margin:16px 0 0;
    padding:0;
    list-style:none;
    color:var(--cream);
    font-size:0.92rem;
  }
  .menu-tier ul li{
    padding:5px 0 5px 20px;
    position:relative;
    color:rgba(237,230,214,0.86);
  }
  .menu-tier ul li::before{
    content:'—';
    position:absolute; left:0;
    color:var(--ember);
  }
  .menu-note{
    margin-top:30px;
    padding-top:22px;
    border-top:1px dashed var(--line-dark);
    font-size:0.84rem;
    color:var(--stone);
  }
  .menu-addons{
    margin-top:8px;
    padding-top:28px;
    border-top:1px dashed var(--line-dark);
  }
  .addons-heading{
    font-family:'Fraunces','Noto Sans JP','Noto Sans KR', serif;
    font-weight:500;
    font-size:1.05rem;
    color:var(--ember-soft);
    margin:0 0 18px;
  }
  .addon-item{ padding:14px 0; }
  .addon-item + .addon-item{ border-top:1px dotted var(--line-dark); }
  .addon-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:16px;
    flex-wrap:wrap;
  }
  .addon-head span:first-child{
    color:var(--cream);
    font-size:0.98rem;
    font-weight:500;
  }
  .addon-price{
    color:var(--ember-soft);
    font-size:0.92rem;
    white-space:nowrap;
  }
  .addon-item p{
    color:var(--stone);
    font-size:0.88rem;
    margin:6px 0 0;
  }

  /* ---------- CONTACT FORM ---------- */
  .contact{ background:var(--paper); }
  .contact-grid{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:64px;
  }
  @media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; gap:32px; } }
  .contact-copy p{ color:var(--ink-soft); max-width:44ch; }
  .contact-detail{
    margin-top:32px;
    font-size:0.94rem;
    color:var(--stone);
  }
  .contact-detail a{ color:var(--ember); text-decoration:none; border-bottom:1px solid currentColor; }

  form.contact-form{
    display:grid;
    gap:20px;
  }
  .field-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
  }
  @media (max-width:520px){ .field-row{ grid-template-columns:1fr; } }
  label{
    display:block;
    font-size:0.85rem;
    color:var(--stone);
    margin-bottom:6px;
  }
  input, select, textarea{
    width:100%;
    border:none;
    border-bottom:1px solid var(--line-light);
    background:transparent;
    padding:10px 2px;
    font-family:'IBM Plex Sans','Noto Sans JP','Noto Sans KR', sans-serif;
    font-size:0.98rem;
    color:var(--ink);
  }
  textarea{ resize:vertical; min-height:90px; }
  input:focus, select:focus, textarea:focus{
    outline:none;
    border-color:var(--ember);
  }
  .submit-btn{
    justify-self:start;
    margin-top:6px;
    background:var(--ink);
    color:var(--cream);
    border:none;
    padding:14px 30px;
    font-size:0.95rem;
    cursor:pointer;
    transition:background .2s;
    font-family:'IBM Plex Sans','Noto Sans JP','Noto Sans KR', sans-serif;
  }
  .submit-btn:hover{ background:var(--moss); }
  .submit-btn:disabled{ opacity:0.6; cursor:not-allowed; }
  .form-status{
    display:none;
    font-size:0.9rem;
    padding:12px 16px;
    border:1px solid var(--line-light);
    margin:0;
  }
  .form-status.is-success{
    display:block;
    color:var(--moss);
    border-color:var(--moss);
  }
  .form-status.is-error{
    display:block;
    color:var(--ember);
    border-color:var(--ember);
  }
  .form-note{
    font-size:0.8rem;
    color:var(--stone);
    margin-top:-4px;
  }

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--ink);
    color:var(--stone);
    padding:48px 0;
    border-top:1px solid var(--line-dark);
  }
  footer .wrap{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:20px;
    align-items:center;
    font-size:0.86rem;
  }
  footer a{ color:var(--cream); text-decoration:none; }
  .footer-links{ display:flex; gap:24px; list-style:none; padding:0; margin:0; }
