:root{
  --brand:#B49C87;
  --brand-deep:#8C7360;
  --stage:#14110F;
  --surface:#1E1A17;
  --cream:#F6F2EC;
  --on-dark:#EFE9E1;
  --on-light:#1A1613;
  --muted-dark:#9C9188;
  --muted-light:#6B625A;
  --red:#A03A3A;
  --hair:rgba(180,156,135,.25);
  --hair-strong:rgba(180,156,135,.45);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Zen Kaku Gothic New","Inter",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--stage);color:var(--on-dark);
  font-family:var(--sans);font-size:16px;line-height:1.75;
  -webkit-font-smoothing:antialiased;overflow-wrap:break-word;
}
img,svg,video,iframe{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0;background:var(--brand);color:#14110F;padding:10px 16px;z-index:300}
.skip:focus{left:8px;top:8px}

.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 22px}
.label{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brand);margin:0 0 16px;font-weight:500;line-height:1.6;
}
.h2{
  font-family:var(--serif);font-weight:300;text-transform:uppercase;
  letter-spacing:.1em;font-size:clamp(30px,5.4vw,58px);line-height:1.06;
  margin:0 0 26px;color:var(--on-dark);
}
.h2--sm{font-size:clamp(26px,4vw,40px)}
.lede{font-size:clamp(16px,1.6vw,18.5px);line-height:1.8;margin:0 0 20px;max-width:60ch}
.body{font-size:15.5px;line-height:1.78;color:var(--muted-dark);margin:0 0 18px;max-width:60ch}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:50px;padding:14px 28px;border-radius:0;
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  transition:background .25s,color .25s,border-color .25s;
}
.btn--red{background:var(--red);color:#fff;border:1px solid var(--red)}
.btn--red:hover{background:#8a3030;border-color:#8a3030}
.btn--line{border:1px solid var(--hair-strong);color:var(--on-dark);background:rgba(20,17,15,.35)}
.btn--line:hover{border-color:var(--brand);background:rgba(180,156,135,.12)}
.btn--text{padding:14px 2px;min-height:auto;color:var(--brand);border-bottom:1px solid transparent}
.btn--text:hover{border-bottom-color:var(--brand)}

.arrowlink{
  display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brand);border-bottom:1px solid var(--hair);padding-bottom:6px;margin-top:8px;
}
.arrowlink:hover{border-bottom-color:var(--brand)}
.arrowlink--sm{margin-top:14px}

/* utility strip */
.utility{background:var(--brand);color:#1A1613;font-size:12px;letter-spacing:.12em;text-transform:uppercase;position:relative;z-index:130}
.utility__inner{max-width:1200px;margin:0 auto;padding:9px 46px 9px 22px;display:flex;gap:10px;justify-content:center;align-items:center;position:relative;flex-wrap:wrap}
.utility a:hover{text-decoration:underline}
.utility__dot{opacity:.6}
.utility__close{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;font-size:20px;line-height:1;color:#1A1613;cursor:pointer;padding:6px 10px}
.utility.is-hidden{display:none}

/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:120;border-bottom:1px solid transparent;transition:background .3s,border-color .3s}
.site-header::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,17,15,.92),rgba(20,17,15,0));
  transition:opacity .3s;
}
.site-header.is-solid{background:var(--stage);border-bottom-color:var(--hair)}
.site-header.is-solid::before{opacity:0}
.site-header__inner{position:relative;max-width:1200px;margin:0 auto;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.wordmark{font-family:var(--serif);font-weight:400;letter-spacing:.18em;text-transform:uppercase;font-size:clamp(13px,2.1vw,19px);color:var(--on-dark);white-space:nowrap;min-width:0}
.wordmark__b{display:none}
@media(min-width:380px){.wordmark__b{display:inline}}
.wordmark--sm{font-size:12px;letter-spacing:.16em}

.nav{display:none}
@media(min-width:1060px){
  .nav{display:flex;align-items:center;gap:26px}
  .nav__list{display:flex;align-items:center;gap:22px;list-style:none;margin:0;padding:0}
  .nav__list a,.nav__moreBtn{
    font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark);
    background:none;border:0;font-family:var(--sans);cursor:pointer;padding:6px 0;
    border-bottom:1px solid transparent;display:inline-block;white-space:nowrap;
  }
  .nav__list a:hover,.nav__moreBtn:hover{color:var(--brand);border-bottom-color:var(--brand)}
  .nav__more{position:relative}
  .nav__dropdown{
    position:absolute;right:0;top:calc(100% + 12px);min-width:220px;list-style:none;margin:0;padding:10px 0;
    background:var(--surface);border:1px solid var(--hair);display:none;
  }
  .nav__more.is-open .nav__dropdown{display:block}
  .nav__dropdown a{display:block;padding:10px 18px;border:0}
  .nav__dropdown a:hover{background:rgba(180,156,135,.12);border:0}
  .hdr-cta{
    font-size:11px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;
    border:1px solid var(--red);background:var(--red);color:#fff;padding:12px 18px;
  }
  .hdr-cta:hover{background:#8a3030;border-color:#8a3030}
}
.burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:48px;height:48px;background:rgba(20,17,15,.4);border:1px solid var(--hair-strong);cursor:pointer;padding:0 13px;flex:none}
.burger span{display:block;height:1px;background:var(--on-dark)}
@media(min-width:1060px){.burger{display:none}}

/* mobile menu */
.mobile-menu{position:fixed;inset:0;z-index:200;background:#14110F;padding:18px 22px 44px;overflow-y:auto}
.mobile-menu__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:30px}
.mobile-menu__close{background:none;border:0;color:var(--on-dark);font-size:32px;line-height:1;cursor:pointer;padding:6px 10px;flex:none}
.mobile-menu__list{list-style:none;margin:0;padding:0}
.mobile-menu__list li{border-bottom:1px solid var(--hair)}
.mobile-menu__list a{display:block;padding:17px 0;font-size:13px;letter-spacing:.18em;text-transform:uppercase}
.mobile-menu__list a:hover{color:var(--brand)}
.mobile-menu__cta{display:flex;align-items:center;justify-content:center;min-height:54px;margin-top:28px;background:var(--red);color:#fff;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.mobile-menu__meta{margin:22px 0 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;display:flex;align-items:center;
  min-height:100svh;padding:clamp(112px,17vh,180px) 0 clamp(56px,9vh,110px);
}
.hero__bg{position:absolute;inset:-6%;}
.hero__bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 45%;
  filter:blur(24px) brightness(.45) saturate(1.05);
  transform:scale(1.06);animation:kb 28s ease-out forwards;
}
@keyframes kb{from{transform:scale(1.06)}to{transform:scale(1.16)}}
.hero__veil{
  position:absolute;inset:0;
  background:
    radial-gradient(80% 65% at 74% 44%,rgba(20,17,15,.05),rgba(20,17,15,.82) 78%),
    linear-gradient(180deg,rgba(20,17,15,.88) 0%,rgba(20,17,15,.42) 32%,rgba(20,17,15,.78) 76%,rgba(20,17,15,.98) 100%);
}
.hero__inner{position:relative;display:grid;gap:clamp(38px,5vw,64px);align-items:center;width:100%}
@media(min-width:940px){
  .hero__inner{grid-template-columns:minmax(0,1fr) minmax(0,430px)}
}
.hero__content{min-width:0}
.hero__mark{margin:0 0 30px;font-family:var(--serif);font-weight:300;line-height:1}
.hero__mark1{display:block;font-size:clamp(40px,8.6vw,86px);letter-spacing:.14em;text-transform:uppercase;text-indent:.14em}
.hero__mark2{
  display:block;margin-top:.5em;font-family:var(--sans);font-weight:300;
  font-size:clamp(10.5px,1.5vw,14px);letter-spacing:.52em;text-transform:uppercase;color:var(--brand);text-indent:.52em;
}
.hero__h1{
  font-family:var(--serif);font-weight:300;font-size:clamp(24px,3.2vw,40px);
  line-height:1.24;letter-spacing:.015em;margin:0 0 18px;max-width:20ch;color:#fff;
}
.hero__h1::before{content:"";display:block;width:70px;height:1px;background:var(--brand);margin-bottom:28px}
.hero__sub{color:var(--on-dark);opacity:.88;font-size:15px;max-width:44ch;margin:0 0 32px}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:center}
.hero__foot{margin:24px 0 0;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--brand)}

.hero__frame{margin:0;position:relative;width:100%;max-width:430px;justify-self:center}
@media(min-width:940px){.hero__frame{justify-self:end}}
.hero__frame::before{
  content:"";position:absolute;left:-18px;top:-18px;right:18px;bottom:34px;
  border:1px solid var(--hair);pointer-events:none;
}
.hero__shot{display:block;overflow:hidden;position:relative;box-shadow:0 40px 90px rgba(0,0,0,.6)}
.hero__shot img{width:100%;transition:transform 1.2s ease}
.hero__frame figcaption{
  margin-top:16px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--brand);
}
@media(max-width:479px){
  .hero__actions .btn--red,.hero__actions .btn--line{flex:1 1 100%}
  .hero__frame{max-width:340px}
}

/* accolade */
.accolade{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--surface)}
.accolade__inner{display:flex;gap:26px;align-items:center;padding-top:30px;padding-bottom:30px;flex-wrap:wrap}
.accolade__badge{width:84px;background:var(--cream);padding:10px;flex:none}
.accolade__body{min-width:0;flex:1 1 320px}
.accolade__body .label{margin-bottom:8px}
.accolade__line{margin:0;font-family:var(--serif);font-size:clamp(18px,2.3vw,26px);font-weight:300;line-height:1.4;max-width:44ch}

/* about */
.about{position:relative;padding:clamp(76px,10vw,160px) 0;overflow:hidden}
.kanji{position:absolute;right:-14px;top:6%;font-family:var(--serif);font-size:clamp(140px,26vw,320px);line-height:.8;color:var(--brand);opacity:.05;pointer-events:none;writing-mode:vertical-rl}
.about__grid{display:grid;gap:52px;position:relative}
.about__text{min-width:0}
@media(min-width:900px){
  .about__grid{grid-template-columns:1.05fr .85fr;gap:76px;align-items:center}
  .about__text{padding-right:24px}
}
.about__tags{list-style:none;margin:34px 0 0;padding:0;max-width:440px}
.about__tags li{border-top:1px solid var(--hair);padding:15px 0;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand)}
.about__tags li:last-child{border-bottom:1px solid var(--hair)}
.about__fig{margin:0;min-width:0;position:relative;max-width:460px;justify-self:center;width:100%}
@media(min-width:900px){.about__fig{justify-self:end}}
.about__fig::before{
  content:"";position:absolute;left:-20px;top:22px;width:78%;bottom:-22px;
  border:1px solid var(--hair);pointer-events:none;
}
.about__shot{display:block;position:relative;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.55)}
.about__shot img{width:100%}
.about__fig figcaption{position:relative;margin-top:16px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dark)}

/* fish */
.fish{padding:clamp(66px,8vw,124px) 0;border-top:1px solid var(--hair)}
.fish__head{max-width:60ch}
.fish__intro{color:var(--on-dark);opacity:.85}
.fish__scrollwrap{position:relative;margin:46px 0 36px}
.fish__scrollwrap::after{
  content:"";position:absolute;right:0;top:0;bottom:0;width:56px;pointer-events:none;
  background:linear-gradient(90deg,rgba(20,17,15,0),var(--stage));
}
.fish__scroller{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 22px;scroll-snap-type:x proximity;scrollbar-width:thin}
.fish__row{display:flex;min-width:min-content;max-width:1156px;margin:0 auto;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.cell{flex:0 0 min(72vw,232px);min-width:0;padding:32px 26px 38px;border-left:1px solid var(--hair);scroll-snap-align:start}
.cell:last-child{border-right:1px solid var(--hair)}
.cell__n{margin:0 0 18px;font-size:11px;letter-spacing:.24em;color:var(--brand)}
.cell h3{font-family:var(--serif);font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:23px;margin:0 0 12px}
.cell p{margin:0;font-size:13.5px;line-height:1.7;color:var(--muted-dark)}
.fish__hint{
  position:absolute;right:22px;bottom:-24px;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brand);opacity:.8;
}
@media(min-width:1200px){.fish__scrollwrap::after,.fish__hint{display:none}}
.fish__close{font-family:var(--serif);font-size:clamp(21px,3vw,34px);font-weight:300;line-height:1.35;max-width:22ch;margin:22px 0 0}

/* michelin review */
.review{background:var(--cream);color:var(--on-light);padding:clamp(74px,10vw,150px) 0}
.review__grid{display:grid;gap:34px}
@media(min-width:900px){.review__grid{grid-template-columns:220px 1fr;gap:60px;align-items:start}}
.review__aside{min-width:0}
.review__badge{width:112px;margin-bottom:18px}
.review__attr{font-family:var(--serif);letter-spacing:.26em;text-transform:uppercase;font-size:16px;margin:0;color:var(--brand-deep)}
.review__quote{margin:0;min-width:0;position:relative;padding-left:0}
@media(min-width:900px){
  .review__quote{border-left:1px solid rgba(140,115,96,.3);padding-left:56px;margin-left:-16px}
}
.review__lead{font-family:var(--serif);font-weight:300;font-size:clamp(23px,3.2vw,40px);line-height:1.26;margin:0 0 28px;color:var(--on-light)}
.review__rest{font-size:15px;line-height:1.85;color:var(--muted-light);margin:0;max-width:64ch}
.review__em{font-style:normal;color:var(--on-light);box-shadow:inset 0 -8px 0 rgba(180,156,135,.42)}

/* gallery */
.gallery{padding:clamp(74px,10vw,150px) 0}
.gallery__grid{display:grid;gap:40px}
@media(min-width:900px){
  .gallery__grid{grid-template-columns:.82fr 1.18fr;gap:60px;align-items:center}
  .gallery__text{padding-right:20px}
  .gallery__slot{grid-column:1 / -1}
}
.gallery__media{position:relative;min-width:0}
.gallery__tile{display:block;overflow:hidden;background:#000;box-shadow:0 34px 80px rgba(0,0,0,.6)}
.gallery__tile img{width:100%;transition:transform .9s ease}
.gallery__tile:hover img{transform:scale(1.05)}
.gallery__badge{position:absolute;left:-16px;bottom:26px;width:84px;background:var(--cream);padding:10px;box-shadow:0 14px 34px rgba(0,0,0,.5)}
@media(max-width:520px){.gallery__badge{left:0;bottom:14px;width:64px;padding:7px}}
.gallery__slot{
  border:1px dashed var(--hair);background:var(--surface);color:var(--muted-dark);
  padding:34px 22px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-align:center;line-height:2;
}

/* plan */
.plan{padding:clamp(66px,9vw,140px) 0;border-top:1px solid var(--hair);background:var(--surface)}
.plan__grid{display:grid;gap:0;border-top:1px solid var(--hair)}
@media(min-width:820px){.plan__grid{grid-template-columns:repeat(3,1fr)}}
.pcard{position:relative;min-width:0;padding:36px 26px 44px;border-bottom:1px solid var(--hair);display:block;transition:background .3s}
@media(min-width:820px){
  .pcard{border-bottom:0;border-right:1px solid var(--hair);padding-bottom:56px}
  .pcard:last-child{border-right:0}
}
.pcard:hover{background:rgba(180,156,135,.07)}
.pcard h3{font-family:var(--serif);font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:24px;margin:0 0 14px}
.pcard h3 a:hover{color:var(--brand)}
.pcard p{margin:0;color:var(--muted-dark);font-size:14px;line-height:1.7;max-width:34ch}
.pcard__go{position:absolute;right:26px;bottom:22px;color:var(--brand)}
.plan__quiet{margin:36px 0 0}
.plan__quiet a{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);border-bottom:1px solid var(--hair);padding-bottom:5px}
.plan__quiet a:hover{border-bottom-color:var(--brand)}

/* notice */
.notice{padding:clamp(66px,9vw,140px) 0}
.notice__grid{display:grid;gap:40px}
@media(min-width:900px){.notice__grid{grid-template-columns:1.2fr .8fr;gap:70px}}
.notice__contact{border-top:1px solid var(--hair);padding-top:26px;min-width:0}
.notice__line{margin:0 0 12px;font-size:15px}
.notice__line a{display:inline-block;border-bottom:1px solid var(--hair);padding-bottom:3px}
.notice__line a:hover{border-bottom-color:var(--brand);color:var(--brand)}

/* closing */
.closing{
  border-top:1px solid var(--hair);padding:clamp(70px,9vw,130px) 0;text-align:center;
  background:radial-gradient(120% 90% at 50% 0%,rgba(180,156,135,.12),transparent 62%),var(--stage);
}
.closing__h{font-family:var(--serif);font-weight:300;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(28px,5.5vw,62px);margin:0 0 34px;line-height:1.12}
.closing__actions{justify-content:center}
@media(max-width:479px){.closing__actions .btn{flex:1 1 100%}}

/* footer */
.footer{background:var(--brand);color:#1A1613}
.footer__inner{padding-top:46px;padding-bottom:46px;text-align:center}
.footer__links{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.footer__links a{font-size:12px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid transparent;padding-bottom:4px}
.footer__links a:hover{border-bottom-color:#1A1613}
.footer__social{display:flex;gap:18px;justify-content:center;margin-bottom:24px}
.footer__social a{color:#1A1613;opacity:.85;padding:6px}
.footer__social a:hover{opacity:1}
.footer__name{font-family:var(--serif);text-transform:uppercase;letter-spacing:.2em;font-size:16px;margin:0 0 24px}
.footer__accolade{display:flex;align-items:center;gap:14px;justify-content:center;margin-bottom:24px;flex-wrap:wrap}
.footer__accolade img{width:52px;background:#F6F2EC;padding:6px}
.footer__accolade span{font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.footer__copy{margin:0;font-size:12.5px;color:#3a322c}

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