  :root{
    --bg:#ffffff;
    --cream:#f6f3ee;
    --cream-2:#efeae2;
    --ink:#17150f;
    --muted:#8d877b;
    --line:#e8e2d7;
    --accent:#b9925f;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',system-ui,sans-serif;
    font-weight:300;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    overflow-x:hidden;
  }
  body.loading{ overflow:hidden; height:100vh; }

  ::selection{ background:#17150f; color:#fff; }

  ::-webkit-scrollbar{ width:12px; height:12px; }
  ::-webkit-scrollbar-track{ background:var(--cream); }
  ::-webkit-scrollbar-thumb{ background:#cdc6b6; border:3px solid var(--cream); border-radius:10px; }
  ::-webkit-scrollbar-thumb:hover{ background:var(--accent); }
  *{ scrollbar-width:thin; scrollbar-color:#cdc6b6 var(--cream); }

  .serif{ font-family:'Fraunces',Georgia,serif; font-weight:300; }
  .ital{ font-style:italic; }

  .wrap{ width:100%; max-width:1240px; margin:0 auto; padding:0 28px; }

  .eyebrow{
    font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
    color:var(--muted); font-weight:400; display:inline-flex; align-items:center; gap:.7em;
  }
  .eyebrow::before{ content:""; width:26px; height:1px; background:var(--muted); display:inline-block; }

  a{ color:inherit; text-decoration:none; }

  .wordmark{
    display:inline-flex; align-items:center; gap:.06em;
    line-height:1; font-size:16px;
  }
  .wordmark .r{
    height:1.5em; width:auto; display:inline-block;
    transform:translateY(-.02em);
    transition:transform .7s cubic-bezier(.2,.8,.2,1);
    will-change:transform;
  }
  .wordmark:hover .r{ transform:translateY(-.02em) rotate(14deg); }
  .wordmark .w{
    font-family:'Fraunces',serif; font-weight:300;
    letter-spacing:.005em; font-size:1.45em;
  }

  #loader{
    position:fixed; inset:0; z-index:9999;
    background:var(--bg);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:34px;
    transition:opacity .9s ease, visibility .9s ease;
  }
  #loader.hide{ opacity:0; visibility:hidden; }
  .load-mark{
    display:inline-flex; align-items:center; gap:.05em;
    overflow:visible;
  }
  .load-mark .r{
    height:96px; width:auto;
    animation:rSpin 1.3s cubic-bezier(.2,.85,.2,1) both;
    transform-origin:50% 50%;
  }
  .load-mark .w{
    font-family:'Fraunces',serif; font-weight:300;
    font-size:68px; letter-spacing:.01em;
    overflow:hidden; display:inline-block;
  }
  .load-mark .w span{
    display:inline-block;
    animation:rise .95s cubic-bezier(.2,.85,.2,1) both;
    animation-delay:.55s;
  }
  .load-bar{ width:150px; height:1px; background:var(--line); position:relative; overflow:hidden; }
  .load-bar i{
    position:absolute; inset:0; background:var(--ink); transform:translateX(-101%);
    animation:fill 1.7s cubic-bezier(.5,0,.2,1) forwards; animation-delay:.2s;
  }
  .load-cap{
    font-size:.66rem; letter-spacing:.34em; text-transform:uppercase;
    color:var(--muted); margin-top:-14px;
    opacity:0; animation:fade .6s ease forwards; animation-delay:.9s;
  }
  @keyframes rSpin{
    0%{ transform:rotate(-200deg) scale(.4); opacity:0; }
    35%{ opacity:1; }
    100%{ transform:rotate(0deg) scale(1); opacity:1; }
  }
  @keyframes rise{ from{ transform:translateY(112%); } to{ transform:translateY(0); } }
  @keyframes fill{ to{ transform:translateX(0); } }
  @keyframes fade{ to{ opacity:1; } }

  header.nav{
    position:fixed; top:18px; left:50%; transform:translateX(-50%);
    width:calc(100% - 28px); max-width:1180px; z-index:200;
    border-radius:60px;
    background:rgba(255,255,255,0.6);
    backdrop-filter:blur(22px) saturate(150%);
    -webkit-backdrop-filter:blur(22px) saturate(150%);
    border:1px solid rgba(255,255,255,0.55);
    box-shadow:0 12px 44px -16px rgba(20,18,12,0.2);
    padding:9px 10px 9px 26px;
    transition:background .5s ease, box-shadow .5s ease, border-color .5s ease;
  }
  header.nav .wrap{ max-width:none; padding:0; }
  header.nav.scrolled{
    background:rgba(255,255,255,0.8);
    box-shadow:0 16px 50px -18px rgba(20,18,12,0.26);
    border-color:rgba(255,255,255,0.7);
  }
  .nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:18px; }
  .nav-links{ display:flex; align-items:center; gap:38px; }
  .nav-links a.link{
    font-size:.78rem; letter-spacing:.13em; text-transform:uppercase;
    color:var(--ink); position:relative; padding:4px 0; font-weight:400;
  }
  .nav-links a.link::after{
    content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
    background:var(--ink); transform:scaleX(0); transform-origin:right;
    transition:transform .45s cubic-bezier(.2,.8,.2,1);
  }
  .nav-links a.link:hover::after{ transform:scaleX(1); transform-origin:left; }
  .nav-cta{
    font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; font-weight:400;
    border:1px solid var(--ink); padding:11px 22px; border-radius:100px;
    transition:background .4s ease, color .4s ease;
    display:inline-flex; align-items:center; gap:.5em;
  }
  .nav-cta:hover{ background:var(--ink); color:#fff; }
  .nav-burger{ display:none; background:none; border:none; cursor:pointer; color:var(--ink); padding:8px; border-radius:50%; align-items:center; justify-content:center; transition:.3s; }
  .nav-burger:hover{ background:rgba(20,18,12,.06); }
  .nav-burger svg{ display:block; }
  a.plat{
    font-weight:400; color:var(--ink);
    display:inline-flex; align-items:center; gap:6px;
    white-space:nowrap; line-height:1.4; vertical-align:middle;
    border-bottom:1px solid currentColor; padding-bottom:2px; transition:.3s;
  }
  a.plat:hover{ color:var(--accent); }
  footer a.plat{ color:#9a9384; }
  footer a.plat:hover{ color:#f3efe7; }

  .fab{
    position:fixed; right:22px; bottom:22px; z-index:350;
    width:58px; height:58px; border-radius:50%;
    background:var(--ink); color:#fff; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 16px 40px -10px rgba(20,18,12,.45);
    transition:transform .4s cubic-bezier(.2,.8,.2,1), background .4s ease, opacity .4s ease;
  }
  .fab:hover{ transform:scale(1.07); }
  .fab svg{ width:26px; height:26px; position:absolute; transition:opacity .35s ease, transform .35s ease; }
  .fab .icon-close{ opacity:0; transform:rotate(-90deg); }
  .fab.open{ background:#000; }
  .fab.open .icon-menu{ opacity:0; transform:rotate(90deg); }
  .fab.open .icon-close{ opacity:1; transform:rotate(0); }

  .drawer-overlay{
    position:fixed; inset:0; z-index:330; background:rgba(20,18,12,.45);
    backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
    opacity:0; visibility:hidden; transition:.45s ease;
  }
  .drawer-overlay.open{ opacity:1; visibility:visible; }

  .drawer{
    position:fixed; top:0; right:0; bottom:0; width:min(400px,88vw); z-index:360;
    background:var(--bg); transform:translateX(102%);
    transition:transform .55s cubic-bezier(.2,.8,.2,1);
    display:flex; flex-direction:column; padding:26px 28px;
    box-shadow:-30px 0 80px -40px rgba(20,18,12,.35);
  }
  .drawer.open{ transform:translateX(0); }
  .drawer-head{ display:flex; align-items:center; justify-content:space-between; padding-bottom:22px; border-bottom:1px solid var(--line); }
  .drawer-close{ background:none; border:none; cursor:pointer; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--ink); transition:.3s; }
  .drawer-close:hover{ background:var(--cream); }
  .drawer-close svg{ width:22px; height:22px; }
  .drawer-links{ display:flex; flex-direction:column; padding:14px 0; flex:1; }
  .drawer-links a{
    font-family:'Fraunces',serif; font-weight:300; font-size:1.7rem; padding:14px 0;
    display:flex; align-items:baseline; gap:14px; color:var(--ink);
    border-bottom:1px solid var(--line); transition:.35s ease;
  }
  .drawer-links a span{ font-family:'Inter',sans-serif; font-size:.7rem; color:var(--muted); letter-spacing:.12em; }
  .drawer-links a:hover{ color:var(--accent); padding-left:8px; }
  .drawer-foot{ padding-top:18px; display:flex; flex-direction:column; gap:18px; }
  .drawer-meta p{ color:var(--muted); font-size:.86rem; margin:3px 0; }
  .drawer-platforms{ border-top:1px solid var(--line); padding-top:16px; }
  .drawer-platforms .pk{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:8px; }
  .drawer-platforms div.pl b{ font-weight:400; color:var(--ink); }

  .hero{ padding:180px 0 90px; position:relative; }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center;
  }
  .hero h1{
    font-family:'Fraunces',serif; font-weight:300;
    font-size:clamp(2.6rem,6.2vw,5.1rem); line-height:1.02; letter-spacing:-.015em;
    margin:22px 0 0;
  }
  .hero .lede{
    max-width:440px; color:var(--muted); font-size:1.05rem; margin-top:30px;
  }
  .hero-cta{ display:flex; flex-wrap:wrap; gap:16px; margin-top:40px; align-items:center; }
  .btn{
    background:var(--ink); color:#fff; border:1px solid var(--ink);
    padding:15px 30px; border-radius:100px; font-size:.78rem; letter-spacing:.14em;
    text-transform:uppercase; font-weight:400; transition:.4s ease;
    display:inline-flex; align-items:center; gap:.6em;
  }
  .btn:hover{ background:transparent; color:var(--ink); }
  .btn-ghost{
    border-bottom:1px solid var(--ink); padding:6px 2px; font-size:.8rem;
    letter-spacing:.12em; text-transform:uppercase; font-weight:400; transition:.4s;
  }
  .btn-ghost:hover{ color:var(--accent); border-color:var(--accent); }

  .hero-media{ position:relative; }
  .hero-frame{
    position:relative; border-radius:20px; overflow:hidden; background:var(--cream);
    aspect-ratio:4/4.6; box-shadow:0 40px 80px -50px rgba(20,18,12,.55);
  }
  .hero-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
  .hero-badge{
    position:absolute; left:-26px; bottom:34px; background:#fff; border-radius:16px;
    padding:16px 20px; box-shadow:0 24px 50px -30px rgba(20,18,12,.5);
    display:flex; align-items:center; gap:14px;
  }
  .hero-badge .score{ font-family:'Fraunces',serif; font-size:2rem; line-height:1; }
  .hero-badge .meta{ font-size:.72rem; color:var(--muted); letter-spacing:.03em; line-height:1.45; }
  .stars{ color:var(--accent); letter-spacing:.1em; font-size:.8rem; }


  .promise{ padding:96px 0; text-align:center; border-top:1px solid var(--line); background:var(--cream); }
  .promise .eyebrow{ justify-content:center; }
  .promise .eyebrow::before{ display:none; }
  .promise p{
    font-family:'Fraunces',serif; font-weight:300; font-style:italic;
    font-size:clamp(1.5rem,3.4vw,2.5rem); line-height:1.32; max-width:820px; margin:22px auto 0;
    letter-spacing:-.01em;
  }
  .promise-marks{ display:flex; justify-content:center; flex-wrap:wrap; align-items:center; gap:10px 12px; margin-top:38px; }
  .promise-marks span{ font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
  .promise-marks i{ color:var(--accent); font-style:normal; }

  section{ scroll-margin-top:90px; }
  .sec{ padding:110px 0; }
  .sec-head{ max-width:680px; }
  .sec-head h2{
    font-family:'Fraunces',serif; font-weight:300;
    font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.06; letter-spacing:-.01em; margin:20px 0 0;
  }
  .sec-head p{ color:var(--muted); margin-top:22px; font-size:1.02rem; max-width:520px; }

  .gallery{ columns:3 290px; column-gap:20px; margin-top:56px; }
  .card{
    break-inside:avoid; margin-bottom:20px; position:relative; overflow:hidden;
    border-radius:16px; cursor:pointer; background:var(--cream); display:block;
  }
  .card img{ width:100%; display:block; transition:transform 1s cubic-bezier(.2,.8,.2,1); }
  .card:hover img{ transform:scale(1.06); }
  .card .cap{
    position:absolute; left:0; right:0; bottom:0; padding:26px 22px 20px;
    background:linear-gradient(to top, rgba(15,13,8,.72), rgba(15,13,8,0));
    color:#fff; transform:translateY(8px); opacity:0; transition:.5s ease;
  }
  .card:hover .cap{ transform:translateY(0); opacity:1; }
  .card .cap h3{ font-family:'Fraunces',serif; font-weight:300; font-size:1.3rem; margin:0; }
  .card .cap span{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; opacity:.8; }
  .card .plus{
    position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%;
    background:rgba(255,255,255,.85); display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; color:var(--ink); transform:scale(.6); opacity:0; transition:.4s ease;
  }
  .card:hover .plus{ transform:scale(1); opacity:1; }

  .about{ background:var(--cream); }
  .about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
  .about-img{ border-radius:18px; overflow:hidden; aspect-ratio:1/1.05; }
  .about-img img{ width:100%; height:100%; object-fit:cover; }
  .about h2{
    font-family:'Fraunces',serif; font-weight:300;
    font-size:clamp(1.9rem,4vw,3rem); line-height:1.1; margin:20px 0 0;
  }
  .about p{ color:var(--muted); margin-top:24px; }
  .stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:44px; }
  .stat .n{ font-family:'Fraunces',serif; font-weight:300; font-size:2.3rem; line-height:1; }
  .stat .l{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:8px; }

  .menu-cols{ display:grid; grid-template-columns:repeat(2,1fr); gap:50px 60px; margin-top:60px; }
  .menu-cat h4{
    font-family:'Fraunces',serif; font-weight:400; font-style:italic; font-size:1.6rem;
    margin:0 0 6px;
  }
  .menu-cat .num{ font-size:.72rem; letter-spacing:.2em; color:var(--muted); }
  .menu-list{ list-style:none; padding:0; margin:24px 0 0; }
  .menu-list li{
    padding:14px 0; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; align-items:baseline; gap:14px;
    transition:transform .4s ease, color .4s ease; cursor:default;
  }
  .menu-list li:hover{ transform:translateX(6px); color:var(--accent); }
  .menu-list li .nm{ font-size:.98rem; font-weight:300; }
  .menu-list li .tg{ font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
  .menu-note{
    margin-top:50px; padding-top:28px; border-top:1px solid var(--line);
    display:flex; flex-wrap:wrap; gap:14px 30px; align-items:center; justify-content:center;
    color:var(--muted); font-size:.92rem; text-align:center;
  }
  .menu-note b{ font-weight:400; color:var(--ink); }

  .faq{ margin-top:54px; max-width:840px; }
  .faq-item{ border-top:1px solid var(--line); }
  .faq-item:last-child{ border-bottom:1px solid var(--line); }
  .faq-item summary{
    list-style:none; cursor:pointer; padding:24px 4px; display:flex; align-items:center; justify-content:space-between; gap:18px;
    font-family:'Fraunces',serif; font-weight:300; font-size:1.2rem; color:var(--ink); transition:color .3s ease;
  }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::after{
    content:"+"; font-family:'Inter',sans-serif; font-weight:300; font-size:1.5rem; color:var(--muted); transition:transform .4s cubic-bezier(.2,.8,.2,1); flex:none;
  }
  .faq-item[open] summary::after{ transform:rotate(45deg); }
  .faq-item summary:hover{ color:var(--accent); }
  .faq-item p{ color:var(--muted); margin:0 0 24px; max-width:680px; line-height:1.75; }

  .visit{ background:var(--ink); color:#f3efe7; }
  .visit .eyebrow{ color:#a8a092; }
  .visit .eyebrow::before{ background:#a8a092; }
  .visit h2{
    font-family:'Fraunces',serif; font-weight:300;
    font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.06; margin:20px 0 0;
  }
  .visit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:56px; align-items:stretch; }
  .info-block{ padding:22px 0; border-top:1px solid rgba(255,255,255,.12); }
  .info-block .k{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:#a8a092; }
  .info-block .v{ font-size:1.05rem; margin-top:10px; line-height:1.6; }
  .info-block a.v:hover{ color:var(--accent); }
  .visit-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
  .btn-light{ background:#f3efe7; color:var(--ink); border:1px solid #f3efe7; }
  .btn-light:hover{ background:transparent; color:#f3efe7; }
  .btn-out{ border:1px solid rgba(255,255,255,.3); color:#f3efe7; }
  .btn-out:hover{ background:#f3efe7; color:var(--ink); border-color:#f3efe7; }
  .map-wrap{ position:relative; border-radius:18px; overflow:hidden; min-height:380px; border:1px solid rgba(255,255,255,.1); }
  .map-wrap iframe{ width:100%; height:100%; min-height:380px; border:0; filter:grayscale(.3) invert(.92) contrast(.9); display:block; }
  .map-click{ position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:center; padding-bottom:20px; cursor:pointer; }
  .map-click::before{ content:""; position:absolute; inset:0; background:transparent; transition:background .35s ease; }
  .map-click:hover::before{ background:rgba(20,18,12,.28); }
  .map-pill{ position:relative; background:#fff; color:var(--ink); border-radius:100px; padding:11px 22px; font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; font-weight:400; box-shadow:0 12px 30px -10px rgba(0,0,0,.45); transform:translateY(10px); opacity:0; transition:.45s cubic-bezier(.2,.8,.2,1); display:inline-flex; align-items:center; gap:.5em; }
  .map-click:hover .map-pill{ transform:translateY(0); opacity:1; }
  @media (hover:none){ .map-pill{ opacity:1; transform:none; } }

  footer{ background:var(--ink); color:#9a9384; padding:60px 0 40px; border-top:1px solid rgba(255,255,255,.08); }
  .foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; }
  footer .wordmark .w{ color:#f3efe7; }
  footer .wordmark .r{ filter:brightness(0) invert(1); }
  footer p{ margin-top:18px; font-size:.92rem; max-width:300px; }
  footer h5{ color:#f3efe7; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; margin:0 0 16px; font-weight:400; }
  footer ul{ list-style:none; padding:0; margin:0; }
  footer ul li{ margin-bottom:10px; font-size:.92rem; }
  footer ul li a{ transition:.3s; }
  footer ul li a:hover{ color:#f3efe7; }
  .foot-bottom{ margin-top:50px; padding-top:26px; border-top:1px solid rgba(255,255,255,.08); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:.78rem; }

  #lightbox{
    position:fixed; inset:0; z-index:500; background:rgba(20,18,12,.86);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    display:flex; align-items:center; justify-content:center; padding:30px;
    opacity:0; visibility:hidden; transition:.45s ease;
  }
  #lightbox.open{ opacity:1; visibility:visible; }
  #lightbox .lb-box{
    position:relative; width:min(900px,94vw); height:min(560px,86vh);
    background:#fff; border-radius:22px; overflow:hidden;
    display:grid; grid-template-columns:1fr 1fr;
    transform:translateY(26px) scale(.96); opacity:0; transition:.55s cubic-bezier(.2,.8,.2,1);
    box-shadow:0 40px 90px -30px rgba(0,0,0,.6);
  }
  #lightbox.open .lb-box{ transform:none; opacity:1; }
  #lightbox .lb-media{ background:var(--cream); position:relative; overflow:hidden; }
  #lightbox .lb-media img{ width:100%; height:100%; object-fit:cover; display:block; }
  #lightbox .lb-body{ padding:42px 40px; display:flex; flex-direction:column; overflow-y:auto; min-width:0; }
  .lb-eyebrow{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
  .lb-body h2{ font-family:'Fraunces',serif; font-weight:300; font-size:2.1rem; line-height:1.1; margin:12px 0 0; letter-spacing:-.01em; }
  .lb-desc{ color:var(--muted); margin-top:16px; font-size:.98rem; }
  .lb-specs{ display:grid; grid-template-columns:1fr 1fr; gap:20px 24px; margin-top:26px; padding-top:26px; border-top:1px solid var(--line); }
  .lb-spec .k{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
  .lb-spec .v{ font-size:.96rem; margin-top:6px; }
  .lb-actions{ margin-top:auto; padding-top:26px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:14px 22px; align-items:center; }
  .lb-link{ font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; display:inline-flex; align-items:center; gap:.35em; border-bottom:1px solid var(--ink); padding:3px 1px; transition:.3s; }
  .lb-link:hover{ color:var(--accent); border-color:var(--accent); }
  .lb-close{
    position:absolute; top:14px; right:14px; z-index:3; cursor:pointer;
    width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.92); border:none;
    color:var(--ink); font-size:1.4rem; line-height:1; display:flex; align-items:center; justify-content:center;
    transition:background .3s ease, transform .3s ease;
  }
  .lb-close:hover{ background:#fff; transform:rotate(90deg); }

  .order-modal{ position:fixed; inset:0; z-index:600; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; transition:.4s ease; }
  .order-modal.open{ opacity:1; visibility:visible; }
  .order-overlay{ position:absolute; inset:0; background:rgba(20,18,12,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
  .order-box{ position:relative; z-index:2; width:min(440px,94vw); background:#fff; border-radius:24px; padding:38px 34px 32px; box-shadow:0 40px 90px -30px rgba(0,0,0,.5); transform:translateY(26px) scale(.95); opacity:0; transition:.5s cubic-bezier(.2,.8,.2,1); }
  .order-modal.open .order-box{ transform:none; opacity:1; }
  .order-box .eyebrow{ margin-bottom:10px; }
  .order-box h3{ font-family:'Fraunces',serif; font-weight:300; font-size:1.95rem; line-height:1.1; margin:0; letter-spacing:-.01em; }
  .order-box>p{ color:var(--muted); margin:12px 0 0; font-size:.96rem; }
  .order-options{ display:flex; flex-direction:row; gap:14px; margin-top:26px; }
  .order-opt{ flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; border:1px solid var(--line); border-radius:16px; padding:28px 16px 20px; transition:.35s cubic-bezier(.2,.8,.2,1); position:relative; overflow:hidden; }
  .order-opt:hover{ border-color:var(--oc); transform:translateY(-2px); box-shadow:0 16px 30px -18px rgba(20,18,12,.3); }
  .opt-top{ display:flex; flex-direction:column; align-items:center; gap:13px; }
  .opt-name{ font-family:'Fraunces',serif; font-size:1.25rem; font-weight:400; }
  .opt-go{ position:absolute; top:14px; right:15px; color:var(--oc); font-size:1.05rem; opacity:.7; }
  .opt-sub{ display:block; font-size:.8rem; color:var(--muted); margin-top:14px; }
  .order-call{ margin-top:22px; padding-top:20px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .order-call span{ font-size:.85rem; color:var(--muted); }
  .order-call a{ font-family:'Fraunces',serif; font-size:1.05rem; border-bottom:1px solid var(--ink); padding-bottom:1px; transition:.3s; }
  .order-call a:hover{ color:var(--accent); border-color:var(--accent); }
  .order-close{ position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; border:none; background:var(--cream); color:var(--ink); font-size:1.3rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.3s; }
  .order-close:hover{ background:var(--ink); color:#fff; transform:rotate(90deg); }

  .opt-brand{ display:inline-flex; flex-direction:column; align-items:center; gap:12px; }
  .opt-logo{ width:44px; height:44px; object-fit:contain; }
  .plat-logo{ width:17px; height:17px; object-fit:contain; opacity:.9; flex:none; }

  .social-btn{
    width:42px; height:42px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    border:1px solid var(--line); background:#fff; color:var(--ink);
    transition:transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, color .35s ease, background .35s ease;
  }
  .social-btn svg{ width:19px; height:19px; }
  .social-btn:hover{ transform:translateY(-3px); border-color:var(--ink); }
  .social-btn.ig:hover{
    color:#fff; border-color:transparent;
    background:linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888);
  }
  footer .social-btn{ border-color:rgba(255,255,255,.16); background:transparent; color:#9a9384; }
  footer .social-btn:hover{ color:#fff; border-color:rgba(255,255,255,.4); transform:translateY(-3px); }
  footer .social-btn.ig:hover{ border-color:transparent; }
  .social-btn.wa:hover{ color:#fff; border-color:transparent; background:#25D366; }
  footer .social-btn.wa:hover{ border-color:transparent; }
  .visit .info-block a{ transition:.3s; }
  .visit .info-block a:hover{ color:var(--accent); }
  .social-row{ display:flex; align-items:center; gap:12px; margin-top:6px; }

  @media (max-width:480px){
    .order-modal{ padding:16px; align-items:center; }
    .order-box{ width:min(440px,94vw); max-height:86vh; overflow-y:auto; padding:30px 20px 24px; border-radius:20px; }
    .order-box .eyebrow{ margin-bottom:6px; }
    .order-box h3{ font-size:1.55rem; }
    .order-box>p{ font-size:.9rem; margin-top:10px; }
    .order-options{ flex-direction:row; gap:10px; margin-top:20px; }
    .order-opt{ padding:18px 8px 14px; border-radius:13px; }
    .opt-logo{ width:30px; height:30px; }
    .opt-name{ font-size:1.05rem; }
    .opt-sub{ font-size:.7rem; margin-top:8px; }
    .opt-go{ top:9px; right:9px; font-size:.9rem; }
    .order-call{ flex-direction:column; align-items:flex-start; gap:6px; margin-top:18px; }
    .order-call a{ font-size:.98rem; }
  }

  .reveal{ opacity:0; transform:translateY(34px); transition:opacity 1.1s cubic-bezier(.2,.8,.2,1), transform 1.1s cubic-bezier(.2,.8,.2,1); }
  .reveal.left{ transform:translateX(-46px); }
  .reveal.right{ transform:translateX(46px); }
  .reveal.scale{ transform:scale(.92); }
  .reveal.in, .reveal.left.in, .reveal.right.in, .reveal.scale.in{ opacity:1; transform:none; }

  @media (max-width:900px){
    .hero-grid{ grid-template-columns:1fr; gap:50px; }
    .hero{ padding:138px 0 70px; }
    .about-grid{ grid-template-columns:1fr; gap:40px; }
    .visit-grid{ grid-template-columns:1fr; }
    .menu-cols{ grid-template-columns:1fr; gap:36px; }
    .stats{ grid-template-columns:repeat(2,1fr); gap:30px; }
    .foot-grid{ grid-template-columns:1fr; gap:30px; }
    .nav-links{ display:none; }
    .nav-cta{ display:none; }
    .nav-burger{ display:flex; }
    header.nav{ top:12px; width:calc(100% - 22px); padding:5px 7px 5px 18px; border-radius:50px; }
    header.nav .wordmark{ font-size:13px; }
    #lightbox{ padding:18px; align-items:flex-start; }
    #lightbox .lb-box{ grid-template-columns:1fr; height:auto; max-height:92vh; margin-top:34px; }
    #lightbox .lb-media{ aspect-ratio:1/1; }
    #lightbox .lb-body{ padding:28px 24px 30px; }
    .sec{ padding:80px 0; }
    .gallery{ columns:2 200px; }
    .hero-badge{ left:0; }
  }
  @media (max-width:560px){
    .gallery{ columns:1; }
    .stats{ grid-template-columns:1fr 1fr; }
    .lb-body h2{ font-size:1.7rem; }
    .lb-specs{ grid-template-columns:1fr; }
    .load-mark .r{ height:64px; } .load-mark .w{ font-size:46px; }
  }
