:root{
  --ink:#17120e;
  --ink-soft:#241c15;
  --batter:#f7efdf;
  --batter-deep:#efe3cb;
  --gold:#f0a32c;
  --gold-deep:#d78a14;
  --gochu:#c6392a;
  --line:rgba(23,18,14,.14);
  --line-light:rgba(247,239,223,.16);
  --display:'Alfa Slab One',serif;
  --hangul:'Black Han Sans',sans-serif;
  --body:'Schibsted Grotesk',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--ink);color:var(--batter);line-height:1.6;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}

/* pancake dot */
.dot{display:inline-block;width:.55em;height:.55em;background:var(--gold);border-radius:50%;flex:none;
  -webkit-mask:radial-gradient(circle at 50% 50%,#000 62%,transparent 63%),
   repeating-conic-gradient(#000 0 10deg,transparent 10deg 20deg);
  mask:radial-gradient(circle at 50% 50%,#000 62%,transparent 63%);
}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(23,18,14,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-light)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:68px;max-width:1180px;margin:0 auto;padding:0 24px}
.brand{font-family:var(--display);font-size:1.5rem;letter-spacing:.02em;color:var(--batter);display:flex;align-items:center;gap:.4rem}
.brand em{font-style:normal;color:var(--gold);font-family:var(--hangul);font-size:1.1em;transform:translateY(1px)}
.nav-links{display:flex;gap:2rem;align-items:center;font-weight:600;font-size:.92rem;letter-spacing:.02em}
.nav-links a{opacity:.85;transition:.2s}
.nav-links a:hover,.nav-links a:focus-visible{opacity:1;color:var(--gold)}
.nav-links a.active{opacity:1;color:var(--gold)}
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--gold);color:var(--ink);font-weight:700;padding:.7rem 1.4rem;border-radius:999px;transition:.2s;font-size:.95rem;border:none;cursor:pointer;font-family:var(--body)}
.btn:hover,.btn:focus-visible{background:var(--gold-deep);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--batter);border:2px solid var(--batter)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold);background:transparent}
.btn.red{background:var(--gochu);color:var(--batter)}
.btn.red:hover{background:#a92e21}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.eyebrow{display:flex;align-items:center;gap:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;color:var(--gochu);margin-bottom:1.2rem}
.eyebrow.gold{color:var(--gold)}

/* hamburger */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:10px;flex-direction:column;gap:5px}
.nav-toggle span{display:block;width:26px;height:3px;background:var(--batter);border-radius:2px;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* mobile sticky call bar */
.call-bar{display:none}

/* page hero (interior pages) */
.page-hero{position:relative;padding:150px 0 80px;overflow:hidden}
.page-hero .hangul-bg{font-family:var(--hangul);position:absolute;top:40px;right:-20px;font-size:clamp(9rem,24vw,20rem);color:var(--gold);opacity:.07;line-height:1;pointer-events:none;user-select:none}
.page-hero h1{font-family:var(--display);font-weight:400;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.1;max-width:16ch}
.page-hero h1 span{color:var(--gold)}
.page-hero p.lede{font-size:1.15rem;max-width:52ch;opacity:.88;margin-top:1.4rem}

/* home hero */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:130px 4vw 90px calc(max((100vw - 1180px)/2, 24px));position:relative;z-index:2}
.hero-hangul{font-family:var(--hangul);color:var(--gold);font-size:clamp(5.5rem,13vw,11rem);line-height:.95;letter-spacing:-.01em}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.12;margin:1.2rem 0 1.4rem;max-width:12ch}
.hero h1 span{color:var(--gold)}
.hero p{font-size:1.1rem;max-width:44ch;opacity:.88;margin-bottom:2.2rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2.8rem}
.hero-facts{display:flex;gap:1.6rem;flex-wrap:wrap;font-size:.88rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.hero-facts span{display:flex;align-items:center;gap:.55rem;opacity:.85}
.hero-img{position:relative;overflow:hidden}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:60% 40%}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,transparent 22%)}
.hero-badge{position:absolute;bottom:34px;right:34px;z-index:3;background:var(--gold);color:var(--ink);font-family:var(--display);font-size:.95rem;padding:1rem 1.2rem;border-radius:50%;width:118px;height:118px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.25;transform:rotate(8deg);box-shadow:0 10px 30px rgba(0,0,0,.4)}

/* ticker */
.ticker{background:var(--gold);color:var(--ink);overflow:hidden;padding:.85rem 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.ticker-track{display:flex;gap:2.6rem;white-space:nowrap;font-family:var(--display);font-size:1.05rem;letter-spacing:.03em;animation:tick 34s linear infinite;width:max-content}
.ticker-track span{display:flex;align-items:center;gap:2.6rem}
.ticker .dot{background:var(--ink);width:.7em;height:.7em}
@keyframes tick{to{transform:translateX(-50%)}}

/* section shells */
.sec-dark{padding:110px 0;background:var(--ink)}
.sec-cream{background:var(--batter);color:var(--ink);padding:110px 0}
.sec-cream .eyebrow{color:var(--gochu)}
h2.title{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.15;margin-bottom:1.4rem}
.sec-dark h2.title span{color:var(--gold)}
.sec-cream h2.title span{color:var(--gochu)}

/* split layouts */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:5rem;align-items:center}
.split.rev{grid-template-columns:.9fr 1.1fr}
.split p{font-size:1.08rem;margin-bottom:1.1rem;max-width:56ch}
.sec-dark .split p{opacity:.88}
.photo-gold img{border-radius:14px;box-shadow:14px 14px 0 var(--gold)}
.photo-red img{border-radius:14px;box-shadow:-14px 14px 0 var(--gochu)}
.hangul-mark{font-family:var(--hangul);position:absolute;top:-40px;right:-10px;font-size:4.6rem;color:var(--gochu);opacity:.16;line-height:1}
.photo-wrap{position:relative}

/* dish cards */
.menu-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3.4rem;flex-wrap:wrap}
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.dish{background:var(--ink-soft);border:1px solid var(--line-light);border-radius:14px;overflow:hidden;transition:.25s}
.dish:hover{transform:translateY(-5px);border-color:var(--gold)}
.dish-img{aspect-ratio:4/3;overflow:hidden}
.dish-img img{width:100%;height:100%;object-fit:cover;transition:.4s}
.dish:hover .dish-img img{transform:scale(1.05)}
.dish-body{padding:1.3rem 1.4rem 1.5rem}
.dish-kr{font-family:var(--hangul);color:var(--gold);font-size:1.05rem;margin-bottom:.15rem}
.dish h3{font-family:var(--display);font-weight:400;font-size:1.18rem;margin-bottom:.5rem}
.dish p{font-size:.94rem;opacity:.8;line-height:1.55}

/* photo band */
.band{position:relative;min-height:74vh;display:flex;align-items:center;overflow:hidden}
.band img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,18,14,.88) 0%,rgba(23,18,14,.55) 46%,rgba(23,18,14,.08) 100%)}
.band-copy{position:relative;z-index:2;padding:90px 0;max-width:520px}
.band h2{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.15;margin-bottom:1.2rem}
.band h2 span{color:var(--gold)}
.band p{font-size:1.08rem;opacity:.92}

/* pills */
.pill-row{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}
.pill{border:1.5px solid var(--gold);color:var(--gold);border-radius:999px;padding:.45rem 1.1rem;font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:.5rem}
.sec-cream .pill{border-color:var(--gochu);color:var(--gochu)}

/* catering strip */
.catering{background:var(--gochu);color:var(--batter);padding:90px 0;text-align:center}
.catering h2{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3.4vw,2.7rem);margin-bottom:1rem}
.catering p{max-width:60ch;margin:0 auto 2rem;font-size:1.08rem;opacity:.95}
.catering .btn{background:var(--batter);color:var(--gochu)}
.catering .btn:hover{background:#fff}

/* info rows / hours */
.visit-item{padding:1.4rem 0;border-bottom:1px solid var(--line)}
.visit-item:first-of-type{border-top:1px solid var(--line)}
.visit-item h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gochu);margin-bottom:.45rem;display:flex;align-items:center;gap:.55rem}
.visit-item p{font-size:1.06rem;font-weight:500}
.visit-item a{border-bottom:2px solid var(--gold)}
.hours{background:var(--ink);color:var(--batter);border-radius:14px;padding:2.4rem;height:fit-content}
.hours h3{font-family:var(--display);font-weight:400;font-size:1.3rem;margin-bottom:1.4rem;color:var(--gold)}
.hours table{width:100%;border-collapse:collapse;font-size:.98rem}
.hours td{padding:.55rem 0;border-bottom:1px solid var(--line-light)}
.hours tr:last-child td{border-bottom:none}
.hours td:last-child{text-align:right;font-weight:600}
.hours .late td{color:var(--gold)}

/* menu page lists */
.menu-cat{padding:70px 0;border-bottom:1px solid var(--line-light)}
.menu-cat:last-of-type{border-bottom:none}
.menu-cat-head{display:flex;align-items:baseline;gap:1.2rem;margin-bottom:2.4rem;flex-wrap:wrap}
.menu-cat-head .kr{font-family:var(--hangul);color:var(--gold);font-size:1.5rem}
.menu-cat-head h2{font-family:var(--display);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem)}
.menu-cat-head .note{font-size:.9rem;opacity:.65;flex-basis:100%;margin-top:-.6rem}
.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 3.5rem}
.mi{display:flex;flex-direction:column;gap:.15rem;padding:1rem 0;border-bottom:1px dashed var(--line-light)}
.mi-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.mi-name{font-weight:700;font-size:1.08rem}
.mi-kr{font-family:var(--hangul);color:var(--gold);font-size:.95rem;white-space:nowrap}
.mi p{font-size:.92rem;opacity:.72;line-height:1.5}
.tag{display:inline-flex;align-items:center;gap:.4rem;background:var(--gochu);color:var(--batter);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.2rem .7rem;width:fit-content;margin-top:.3rem}
.tag.gold{background:var(--gold);color:var(--ink)}

/* map */
.map-frame{border:0;width:100%;height:440px;border-radius:14px;filter:grayscale(.15) contrast(1.02);box-shadow:0 16px 40px rgba(0,0,0,.15)}

/* contact cards */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3rem}
.ccard{background:var(--ink-soft);border:1px solid var(--line-light);border-radius:14px;padding:2rem;display:flex;flex-direction:column;gap:.7rem;transition:.25s}
.ccard:hover{border-color:var(--gold);transform:translateY(-4px)}
.ccard .kr{font-family:var(--hangul);color:var(--gold);font-size:1.2rem}
.ccard h3{font-family:var(--display);font-weight:400;font-size:1.25rem}
.ccard p{font-size:.96rem;opacity:.82}
.ccard a.big{font-size:1.3rem;font-weight:700;color:var(--gold);margin-top:auto}

/* footer */
footer{background:var(--ink);padding:3rem 0;border-top:1px solid var(--line-light)}
.foot{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;font-size:.9rem;opacity:.75}
.foot .brand{font-size:1.2rem}
.foot-links{display:flex;gap:1.4rem;font-weight:600}
.foot-links a:hover{color:var(--gold)}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .ticker-track{animation:none}
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;transform:none!important}
}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-copy{padding:110px 24px 54px}
  .hero-img{min-height:52vh}
  .hero-img::after{background:linear-gradient(180deg,var(--ink) 0%,transparent 24%)}
  .split,.split.rev{grid-template-columns:1fr;gap:3rem}
  .split.rev .photo-red,.split.rev img{order:2}
  .menu-grid{grid-template-columns:1fr 1fr}
  .photo-gold img{box-shadow:8px 8px 0 var(--gold)}
  .photo-red img{box-shadow:-8px 8px 0 var(--gochu)}
  .band{min-height:60vh}
  .menu-list{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .nav-toggle{display:flex}
  .nav-links{position:fixed;top:68px;left:0;right:0;background:var(--ink);flex-direction:column;align-items:stretch;gap:0;padding:.6rem 24px 1.4rem;border-bottom:1px solid var(--line-light);transform:translateY(-130%);transition:transform .3s ease;box-shadow:0 20px 40px rgba(0,0,0,.4)}
  .nav-links.open{transform:none}
  .nav-links a{padding:1rem 0;border-bottom:1px solid var(--line-light);font-size:1.05rem}
  .nav-links a.btn{border:none;margin-top:1rem;justify-content:center}
}
@media(max-width:600px){
  .wrap{padding:0 18px}
  .hero-copy{padding:100px 18px 48px}
  .hero-hangul{font-size:clamp(4.6rem,26vw,7rem)}
  .hero h1{font-size:clamp(1.7rem,7.5vw,2.4rem)}
  .hero p{font-size:1.02rem}
  .hero-cta .btn{flex:1;justify-content:center;min-width:150px}
  .hero-facts{gap:.9rem 1.4rem;font-size:.8rem}
  .hero-img{min-height:44vh}
  .hero-badge{width:94px;height:94px;font-size:.78rem;bottom:16px;right:16px}
  .ticker-track{font-size:.9rem}
  .sec-dark,.sec-cream{padding:72px 0}
  .page-hero{padding:120px 0 56px}
  .catering{padding:64px 0}
  .band{min-height:56vh}
  .band-copy{padding:64px 0;max-width:100%}
  .menu-grid{grid-template-columns:1fr;gap:1.2rem}
  .dish-body{padding:1.1rem 1.2rem 1.3rem}
  .hours{padding:1.7rem 1.4rem}
  .hours table{font-size:.92rem}
  .pill-row{gap:.6rem}
  .pill{font-size:.84rem;padding:.4rem .9rem}
  .menu-cat{padding:48px 0}
  .map-frame{height:340px}
  .foot{flex-direction:column;text-align:center;gap:.8rem}
  .foot-links{justify-content:center;flex-wrap:wrap}
  body{padding-bottom:64px}
  .call-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:99;background:var(--gold);color:var(--ink);font-weight:700;font-size:1rem;align-items:center;justify-content:center;gap:.6rem;padding:1rem;box-shadow:0 -6px 20px rgba(0,0,0,.35)}
  .call-bar .dot{background:var(--ink)}
}
