:root{
    --ink:#2A1B12;
    --paper:#FBF0D9;
    --paper-deep:#F3E4C2;
    --chili:#C23616;
    --chili-dark:#9C2A10;
    --mustard:#E2A63B;
    --leaf:#37502E;
    --leaf-dark:#293C21;
    --card:#FFFBF1;
    --thread:#D8C69C;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Work Sans',sans-serif;
    font-size:16px;
    line-height:1.55;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{font-family:'Rozha One',serif;font-weight:400;letter-spacing:.2px;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
  ::selection{background:var(--mustard);color:var(--ink);}
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  }

  /* Texture */
  .grain{
    position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.05;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* NAV */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(251,240,217,.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--thread);
  }
  nav{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;max-width:1120px;margin:0 auto;}
  .logo{display:flex;align-items:center;gap:10px;font-family:'Rozha One',serif;font-size:1.15rem;color:var(--leaf);}
  .logo small{display:block;font-family:'IBM Plex Mono',monospace;font-size:.55rem;letter-spacing:.18em;color:var(--chili);text-transform:uppercase;}
  .navlinks{display:flex;gap:26px;font-size:.85rem;font-weight:500;}
  .navlinks a{position:relative;padding:4px 0;color:var(--ink);opacity:.85;}
  .navlinks a:hover{opacity:1;}
  .navlinks a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--chili);transition:width .25s ease;}
  .navlinks a:hover::after{width:100%;}
  .nav-cta{
    background:var(--chili);color:#fff;padding:9px 18px;border-radius:2px;font-size:.8rem;font-weight:600;
    box-shadow:3px 3px 0 var(--chili-dark);transition:transform .15s ease, box-shadow .15s ease;
  }
  .nav-cta:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--chili-dark);}
  .menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;}
  .menu-toggle span{width:22px;height:2px;background:var(--ink);}

  /* HERO */
  .hero{
    position:relative;padding:88px 28px 70px;overflow:hidden;
    background:
      radial-gradient(circle at 85% 12%, rgba(226,166,59,.35), transparent 45%),
      radial-gradient(circle at 8% 85%, rgba(55,80,46,.15), transparent 40%);
  }
  .hero-inner{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;}
  .eyebrow{
    display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:.72rem;
    letter-spacing:.16em;text-transform:uppercase;color:var(--chili);margin-bottom:18px;
  }
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--chili);}
  .hero h1{font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1.04;color:var(--leaf);}
  .hero h1 em{font-style:normal;color:var(--chili);}
  .hero p.lede{margin-top:20px;max-width:46ch;font-size:1.08rem;color:#4a3a2c;}
  .hero-ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
  .btn-primary{
    background:var(--chili);color:#fff;padding:14px 26px;font-weight:600;font-size:.92rem;border-radius:2px;
    box-shadow:4px 4px 0 var(--chili-dark);transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn-primary:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--chili-dark);}
  .btn-ghost{
    border:1.5px solid var(--leaf);color:var(--leaf);padding:13px 24px;font-weight:600;font-size:.92rem;border-radius:2px;
    transition:background .2s ease,color .2s ease;
  }
  .btn-ghost:hover{background:var(--leaf);color:#fff;}
  .hero-facts{display:flex;gap:26px;margin-top:40px;flex-wrap:wrap;}
  .hero-fact b{display:block;font-family:'Rozha One',serif;font-size:1.5rem;color:var(--leaf);}
  .hero-fact span{font-size:.78rem;color:#6b5a48;font-family:'IBM Plex Mono',monospace;}

  /* Hero image slider */
  .hero-slider{
    position:relative;width:100%;max-width:400px;margin:0 auto;aspect-ratio:4/5;
    border-radius:6px;overflow:hidden;box-shadow:8px 8px 0 var(--chili-dark), 0 20px 40px rgba(42,27,18,.25);
    border:3px solid var(--card);
  }
  .hero-slider .slide{
    position:absolute;inset:0;opacity:0;transition:opacity .9s ease;
  }
  .hero-slider .slide.active{opacity:1;}
  .hero-slider .slide img{width:100%;height:100%;object-fit:cover;display:block;}
  .hero-slider .slide::after{
    content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,27,18,0) 55%,rgba(42,27,18,.6));
  }
  .slide-tag{
    position:absolute;left:18px;bottom:18px;z-index:1;color:#fff;font-family:'Rozha One',serif;
    font-size:1.4rem;text-shadow:0 2px 6px rgba(0,0,0,.4);
  }
  .slider-dots{
    position:absolute;right:16px;bottom:20px;z-index:2;display:flex;flex-direction:column;gap:8px;
  }
  .slider-dots button{
    width:8px;height:8px;border-radius:50%;border:1.5px solid #fff;background:transparent;cursor:pointer;
    padding:0;transition:background .2s ease, width .2s ease, height .2s ease;
  }
  .slider-dots button.active{background:var(--mustard);border-color:var(--mustard);width:10px;height:10px;}

  /* Hero illustration: steaming cup */
  .cup-scene{position:relative;display:flex;justify-content:center;align-items:flex-end;height:340px;}
  .steam-line{stroke:#c9b689;stroke-width:5;fill:none;stroke-linecap:round;opacity:.85;}
  .steam1{animation:steam 4s ease-in-out infinite;}
  .steam2{animation:steam 4s ease-in-out infinite .7s;}
  .steam3{animation:steam 4s ease-in-out infinite 1.4s;}
  @keyframes steam{
    0%{transform:translateY(6px) scaleY(.9);opacity:0;}
    25%{opacity:.9;}
    70%{opacity:.5;}
    100%{transform:translateY(-30px) scaleY(1.15);opacity:0;}
  }

  /* SECTION HEADS */
  section{padding:86px 0;}
  .sec-head{max-width:640px;margin-bottom:48px;}
  .sec-tag{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--chili);}
  .sec-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem);margin-top:10px;color:var(--leaf);}
  .sec-head p{margin-top:14px;color:#5a4a38;max-width:56ch;}
  .center{text-align:center;margin-left:auto;margin-right:auto;}

  /* ABOUT */
  .about{background:var(--card);border-top:1px solid var(--thread);border-bottom:1px solid var(--thread);}
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .about-copy p{margin-bottom:16px;color:#4a3a2c;}
  .about-copy p:first-of-type{font-family:'Rozha One',serif;font-size:1.35rem;line-height:1.4;color:var(--leaf);}
  .roll{
    display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;
  }
  .roll span{
    font-family:'IBM Plex Mono',monospace;font-size:.72rem;padding:7px 12px;border:1px dashed var(--chili);
    color:var(--chili-dark);border-radius:20px;
  }
  .thali-svg{width:100%;max-width:340px;margin:0 auto;}

  /* MENU – ticket system */
  .menu-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:38px;}
  .tab-btn{
    font-family:'IBM Plex Mono',monospace;font-size:.78rem;font-weight:500;letter-spacing:.03em;
    padding:11px 18px;background:var(--card);border:1px solid var(--thread);border-radius:2px;cursor:pointer;
    display:flex;align-items:center;gap:8px;color:#4a3a2c;transition:all .2s ease;
  }
  .tab-btn svg{width:16px;height:16px;stroke:var(--leaf);}
  .tab-btn.active{background:var(--leaf);color:#fff;border-color:var(--leaf);}
  .tab-btn.active svg{stroke:#fff;}
  .tab-btn:hover:not(.active){border-color:var(--chili);color:var(--chili-dark);}

  .ticket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;}
  .ticket{
    position:relative;background:var(--card);
    padding:22px 20px 20px;
    border:1px solid var(--thread);
    box-shadow:0 3px 0 var(--thread);
    overflow:hidden;
    -webkit-mask-image: radial-gradient(circle 5px at 0 12px, transparent 5px, black 5.5px), radial-gradient(circle 5px at 100% 12px, transparent 5px, black 5.5px);
    -webkit-mask-composite: source-in, source-in;
    mask-composite: intersect;
  }
  .ticket-img{
    margin:-22px -20px 14px;
    height:130px;
    overflow:hidden;
    background:var(--paper-deep);
  }
  .ticket-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
  .ticket:hover .ticket-img img{transform:scale(1.06);}
  .ticket-num{font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:var(--chili);letter-spacing:.1em;}
  .ticket h4{font-family:'Rozha One',serif;font-size:1.2rem;margin-top:6px;color:var(--leaf);}
  .ticket .divider{border:none;border-top:1px dashed var(--thread);margin:12px 0;}
  .ticket p{font-size:.83rem;color:#6b5a48;}
  .menu-panel{display:none;}
  .menu-panel.active{display:block;animation:fadein .4s ease;}
  @keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

  /* WHY US */
  .why{background:var(--leaf);color:#f4ead1;}
  .why .sec-tag{color:var(--mustard);}
  .why .sec-head h2{color:#fff;}
  .why .sec-head p{color:#cdd9c3;}
  .why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2px;background:rgba(255,255,255,.14);}
  .why-card{background:var(--leaf-dark);padding:32px 26px;}
  .why-card svg{width:30px;height:30px;stroke:var(--mustard);margin-bottom:16px;}
  .why-card h3{font-family:'Rozha One',serif;font-size:1.15rem;margin-bottom:8px;color:#fff;}
  .why-card p{font-size:.85rem;color:#c8d3bd;}

  /* BEST SELLERS */
  .best-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;}
  .best-card{
    background:var(--card);border:1px solid var(--thread);position:relative;overflow:hidden;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .best-card:hover{transform:translateY(-5px);box-shadow:0 10px 22px rgba(42,27,18,.14);}
  .best-photo{position:relative;height:150px;overflow:hidden;}
  .best-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
  .best-card:hover .best-photo img{transform:scale(1.06);}
  .best-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,27,18,0) 55%,rgba(42,27,18,.35));}
  .best-card .body{padding:20px 22px 24px;}
  .best-card .star{position:absolute;top:14px;right:14px;color:var(--mustard);font-size:1rem;z-index:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));}
  .best-card .num{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--chili);}
  .best-card h3{font-family:'Rozha One',serif;font-size:1.35rem;margin:8px 0 8px;color:var(--leaf);}
  .best-card p{font-size:.85rem;color:#6b5a48;}

  /* GALLERY STRIP */
  .gallery{background:var(--paper-deep);}
  .gallery-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
  .gallery-item{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 4px 0 var(--thread);}
  .gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
  .gallery-item:hover img{transform:scale(1.08);}
  .gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,27,18,0) 45%,rgba(42,27,18,.65));}
  .gallery-item span{
    position:absolute;left:12px;bottom:12px;color:#fff;font-family:'IBM Plex Mono',monospace;
    font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;z-index:1;
  }
  @media (max-width:760px){
    .gallery-strip{grid-template-columns:repeat(2,1fr);}
  }

  /* ORDER ONLINE */
  .order{
    background:linear-gradient(135deg,var(--chili),var(--chili-dark));color:#fff;text-align:center;position:relative;
  }
  .order .sec-tag{color:#ffd9c9;}
  .order h2{color:#fff;}
  .order p{color:#ffe3d6;max-width:52ch;margin:14px auto 0;}
  .order-ctas{display:flex;gap:16px;justify-content:center;margin-top:34px;flex-wrap:wrap;}
  .order-ctas .btn-light{
    background:#fff;color:var(--chili-dark);padding:14px 30px;font-weight:700;border-radius:2px;font-size:.92rem;
    box-shadow:4px 4px 0 rgba(0,0,0,.25);transition:transform .15s ease;
  }
  .order-ctas .btn-light:hover{transform:translate(-2px,-2px);}

  /* VISIT */
  .visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--thread);}
  .visit-info{background:var(--card);padding:44px 40px;}
  .visit-info h2{color:var(--leaf);margin-bottom:26px;}
  .info-row{display:flex;gap:14px;margin-bottom:22px;align-items:flex-start;}
  .info-row svg{width:20px;height:20px;stroke:var(--chili);flex-shrink:0;margin-top:2px;}
  .info-row b{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#8a7a63;font-family:'IBM Plex Mono',monospace;margin-bottom:3px;}
  .info-row p{font-size:.95rem;color:#3c2f22;}
  .tags-row{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap;}
  .tags-row span{background:var(--paper-deep);padding:6px 12px;font-size:.75rem;border-radius:20px;color:var(--leaf);font-weight:600;}
  .map-frame{border:none;width:100%;height:100%;min-height:360px;filter:sepia(15%) saturate(85%);}
  .social-row{display:flex;gap:14px;margin-top:30px;}
  .social-row a{
    width:38px;height:38px;border:1px solid var(--thread);display:flex;align-items:center;justify-content:center;
    border-radius:50%;transition:all .2s ease;
  }
  .social-row a svg{width:16px;height:16px;stroke:var(--leaf);}
  .social-row a:hover{background:var(--leaf);}
  .social-row a:hover svg{stroke:#fff;}

  /* FAQ */
  .faq-item{border-bottom:1px solid var(--thread);}
  .faq-q{
    width:100%;text-align:left;background:none;border:none;padding:22px 0;font-family:'Rozha One',serif;
    font-size:1.1rem;color:var(--leaf);display:flex;justify-content:space-between;align-items:center;cursor:pointer;
    gap:20px;
  }
  .faq-q .plus{font-family:'IBM Plex Mono',monospace;font-size:1.2rem;color:var(--chili);transition:transform .25s ease;flex-shrink:0;}
  .faq-item.open .plus{transform:rotate(45deg);}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .faq-a p{padding-bottom:20px;color:#5a4a38;font-size:.92rem;max-width:60ch;}

  /* FOOTER */
  footer{background:var(--leaf-dark);color:#c8d3bd;padding:48px 0 26px;}
  .foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;align-items:center;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:26px;}
  .foot-logo{font-family:'Rozha One',serif;color:#fff;font-size:1.3rem;}
  .foot-links{display:flex;gap:22px;font-size:.85rem;}
  .foot-social{display:flex;gap:12px;}
  .foot-social a{
    width:34px;height:34px;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;
    border-radius:50%;transition:all .2s ease;
  }
  .foot-social a svg{width:15px;height:15px;stroke:#c8d3bd;}
  .foot-social a:hover{background:#fff;}
  .foot-social a:hover svg{stroke:var(--leaf-dark);}
  .foot-bottom{display:flex;justify-content:space-between;padding-top:22px;font-size:.75rem;flex-wrap:wrap;gap:10px;font-family:'IBM Plex Mono',monospace;color:#8ba07c;}

  @media (max-width:860px){
    .foot-grid{justify-content:flex-start;}
    .hero-inner{grid-template-columns:1fr;}
    .hero-slider{order:-1;max-width:280px;}
    .cup-scene{order:-1;height:220px;}
    .about-grid{grid-template-columns:1fr;}
    .visit-grid{grid-template-columns:1fr;}
    .map-frame{min-height:280px;}
    .navlinks{
      position:fixed;top:64px;left:0;right:0;background:var(--paper);flex-direction:column;padding:20px 28px;
      border-bottom:1px solid var(--thread);display:none;gap:16px;
    }
    .navlinks.open{display:flex;}
    .menu-toggle{display:flex;}
    .nav-cta{display:none;}
  }

  .hero-logo{
    display:flex;align-items:baseline;flex-wrap:nowrap;gap:clamp(6px,1.5vw,12px);
    white-space:nowrap;margin-bottom:14px;color:var(--leaf);
  }
  .hero-logo-main{font-family:'Rozha One',serif;font-size:clamp(1.6rem,6.5vw,3.9rem);line-height:1;}
  .hero-logo-sub{font-family:'Rozha One',serif;font-size:clamp(1.6rem,6.5vw,3.4rem);line-height:1;color:var(--chili);text-transform:uppercase;}

    @media (max-width:400px){
    .hero-logo{gap:5px;}
    .hero-logo-main{font-size:6.2vw;}
    .hero-logo-sub{font-size:4.3vw;}
  }