:root{
  --bg:#14100d; --bg2:#1c1713; --panel:#211b16; --line:#352c24;
  --cream:#f5efe4; --muted:#b9ac98; --faint:#8a7e6e;
  --gold:#c79a4b; --gold-soft:#e2c684; --gold-deep:#a87f33; --red:#b1232b;
  --fd:'Playfair Display', Georgia, serif;
  --fb:'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --maxw:1200px; --r:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--cream);font-family:var(--fb);font-weight:400;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip;max-width:100%}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--fd);font-weight:600;line-height:1.08;margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.kicker{font-family:var(--fb);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:500}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:12px;background:var(--gold);color:#14100d;padding:8px 14px;z-index:999}

nav.top{position:sticky;top:0;z-index:120;background:rgba(20,16,13,.84);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line)}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;height:88px}
.brand img{height:64px;width:auto}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--gold-soft)}
.nav-cta{border:1px solid var(--gold);color:var(--gold-soft)!important;padding:11px 20px;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;transition:.2s;border-radius:3px}
.nav-cta:hover{background:var(--gold);color:#14100d!important}
.burger{display:none;background:none;border:0;cursor:pointer;width:42px;height:42px;flex-direction:column;justify-content:center;gap:5px;align-items:flex-end}
.burger span{display:block;height:1.5px;width:24px;background:var(--gold-soft);transition:.3s}

.btn{display:inline-block;padding:15px 32px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.22s;border:1px solid transparent;border-radius:3px}
.btn-gold{background:var(--gold);color:#14100d}
.btn-gold:hover{background:var(--gold-soft)}
.btn-ghost{border-color:rgba(231,201,131,.55);color:var(--gold-soft)}
.btn-ghost:hover{background:var(--gold);color:#14100d;border-color:var(--gold)}

.hero{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,11,8,.6),rgba(15,11,8,.45) 40%,rgba(15,11,8,.9))}
.hero .wrap{position:relative;z-index:2;text-align:center;max-width:940px}
.hero h1{font-size:clamp(52px,10vw,120px);font-weight:700;font-style:italic;color:#fff;text-shadow:0 2px 40px rgba(0,0,0,.45)}
.hero p.lede{max-width:48ch;margin:20px auto 0;font-size:17px;color:#efe6d7;font-weight:300}
.hero .actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:36px}

/* interior page banner */
.pagehead{position:relative;min-height:46vh;display:flex;align-items:center;overflow:hidden}
.pagehead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pagehead::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,11,8,.62),rgba(15,11,8,.8))}
.pagehead .wrap{position:relative;z-index:2;text-align:center;width:100%}
.pagehead h1{font-size:clamp(40px,7vw,80px);font-weight:700;font-style:italic;color:#fff;margin-top:10px}

.ticker{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ticker .wrap{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0;padding:24px 28px}
.ticker span{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);padding:5px 30px;position:relative}
.ticker span + span::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:13px;background:var(--gold-deep)}

section{padding:104px 0}
.sec-head{max-width:62ch}
.sec-head.center{margin:0 auto;text-align:center}
.sec-head h2{font-size:clamp(34px,5vw,56px);margin-top:14px;color:var(--cream)}
.sec-head p{color:var(--muted);margin:18px 0 0;font-size:16.5px}

.about{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.about .ph{aspect-ratio:4/5;background-size:cover;background-position:center;border-radius:var(--r);box-shadow:0 40px 90px -50px rgba(0,0,0,.85)}
.about h2{font-size:clamp(32px,4.6vw,52px);margin-top:14px}
.about p{color:var(--muted);margin:18px 0 0;font-size:16px}
.about .sig{font-family:var(--fd);font-style:italic;font-size:27px;color:var(--gold-soft);margin-top:24px}

.alt{background:var(--bg2)}
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:54px}
.scard{background:var(--panel);border:1px solid var(--line);overflow:hidden;border-radius:var(--r)}
.scard .ph{height:240px;background-size:cover;background-position:center;transition:transform .8s ease}
.scard:hover .ph{transform:scale(1.06)}
.scard .b{padding:28px 28px 32px}
.scard h3{font-size:25px;color:var(--cream)}
.scard p{color:var(--muted);margin:12px 0 0;font-size:14.5px}

/* process steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:54px}
.step{border-top:1px solid var(--line);padding-top:22px}
.step b{font-family:var(--fd);font-size:18px;color:var(--gold-soft);font-style:italic}
.step h3{font-size:22px;color:var(--cream);margin:12px 0 8px}
.step p{color:var(--muted);font-size:14.5px;margin:0}

/* menu */
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px 64px;margin-top:44px}
.mcat h3{font-family:var(--fd);font-size:26px;color:var(--gold-soft);font-style:italic;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:8px;display:flex;justify-content:space-between;align-items:baseline}
.mcat h3 small{font-family:var(--fb);font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.mitem{padding:13px 0;border-bottom:1px dotted #2e2620}
.mitem:last-child{border-bottom:0}
.mitem .nm{display:flex;justify-content:space-between;gap:14px;align-items:baseline}
.mitem b{font-family:var(--fb);font-weight:600;font-size:15.5px;color:var(--cream)}
.mitem .pr{font-family:var(--fd);font-style:italic;font-size:17px;color:var(--gold);white-space:nowrap}
.mitem span.d{color:var(--faint);font-size:13px;display:block;margin-top:3px}
.menu-note{text-align:center;margin-top:48px}
.menu-note em{font-family:var(--fd);font-style:italic;font-size:21px;color:var(--gold-soft)}

/* video */
.video{max-width:960px;margin:44px auto 0;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);box-shadow:0 40px 90px -50px rgba(0,0,0,.9)}
.video iframe{width:100%;height:100%;border:0;display:block}

/* gallery */
.grid{column-count:3;column-gap:16px;margin-top:30px}
/* collage / puzzle gallery (gallery page) */
.collage{column-count:initial;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:215px;grid-auto-flow:dense;gap:8px;margin-top:34px}
.collage .gitem{margin:0;height:100%;border-radius:12px}
.collage .gitem img{width:100%;height:100%;object-fit:cover}
.collage .gitem:nth-child(8n+1){grid-column:span 2;grid-row:span 2}
.collage .gitem:nth-child(6n+4){grid-row:span 2}
.collage .gitem:nth-child(10n+8){grid-column:span 2}
.gitem{break-inside:avoid;margin-bottom:16px;position:relative;cursor:pointer;overflow:hidden;background:#241d18;border-radius:var(--r)}
.gitem img{width:100%;transition:transform .9s ease}
.gitem:hover img{transform:scale(1.06)}
.gitem.vid .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.gitem.vid .play::after{content:"\25B6";color:#14100d;font-size:22px;width:62px;height:62px;border-radius:50%;background:rgba(199,154,75,.95);display:flex;align-items:center;justify-content:center;padding-left:4px;box-shadow:0 10px 34px rgba(0,0,0,.55)}
.lb video{max-width:92vw;max-height:88vh;border-radius:var(--r);box-shadow:0 30px 80px rgba(0,0,0,.6);background:#000;display:none}

.band{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:88px 0}
.band .q{font-family:var(--fd);font-style:italic;font-size:clamp(28px,4.4vw,50px);color:#fff;max-width:18ch;margin:0 auto;line-height:1.14}
.band .by{margin-top:20px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.band .actions{margin-top:30px}

/* contact + request forms */
.contact{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px}
.contact h2{font-size:clamp(30px,4.4vw,46px);margin-top:14px}
.contact .info p{color:var(--muted);margin:18px 0 0}
.cdetail{margin-top:28px;border-top:1px solid var(--line);padding-top:22px}
.cdetail div{margin-bottom:15px}
.cdetail b{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:5px}
.cdetail a{color:var(--cream)}
.tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.tab{flex:1;min-width:130px;background:var(--panel);border:1px solid var(--line);color:var(--muted);padding:14px 12px;font:inherit;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;cursor:pointer;border-radius:8px;transition:.2s;text-align:center}
.tab:hover{border-color:var(--gold-deep);color:var(--gold-soft)}
.tab.active{background:var(--gold);border-color:var(--gold);color:#14100d}
.tab-intro{color:var(--muted);font-size:14.5px;margin:0 0 18px;min-height:22px}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0 0 7px}
form .field{margin-bottom:18px}
input,select,textarea{width:100%;background:#1a1511;border:1px solid var(--line);padding:14px 15px;font:inherit;font-size:15px;color:var(--cream);border-radius:8px;transition:border-color .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold)}
textarea{min-height:120px;resize:vertical}
::placeholder{color:#6f6456}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{font-size:14px;margin-top:10px;min-height:20px}
.form-status.ok{color:var(--gold-soft)} .form-status.err{color:#e0876f}

footer{background:#0f0c09;color:var(--muted);padding:62px 0 30px;border-top:1px solid var(--line)}
footer .ftop{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:30px;align-items:center}
footer .brand img{height:68px}
footer nav{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
footer nav a{font-size:13px;color:var(--muted)} footer nav a:hover{color:var(--gold-soft)}
footer .fbot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:24px;font-size:12px;color:var(--faint)}
.credit a{color:var(--gold)}

.lb{position:fixed;inset:0;background:rgba(10,7,5,.95);display:none;align-items:center;justify-content:center;z-index:300;padding:30px}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:var(--r);box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb button{position:absolute;top:22px;right:26px;background:none;border:0;color:#fff;font-size:34px;cursor:pointer}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

@media(max-width:900px){
  .about,.contact{grid-template-columns:1fr;gap:36px}
  .svc{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .menu-grid{grid-template-columns:1fr;gap:36px}
  .grid{column-count:2}
  .collage{grid-template-columns:repeat(3,1fr);grid-auto-rows:175px}
}
@media(max-width:640px){
  .nav-links{position:fixed;top:0;right:0;height:100vh;width:min(82vw,320px);background:#16110d;border-left:1px solid var(--gold-deep);box-shadow:-24px 0 70px rgba(0,0,0,.75);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:90px 26px 40px;transform:translateX(100%);transition:transform .3s ease;z-index:200;overflow-y:auto}
  .nav-links.open{transform:none}
  .nav-links a{font-size:17px;color:var(--cream);padding:15px 8px;border-bottom:1px solid #2a221b;letter-spacing:.04em}
  .nav-links a.nav-cta{margin-top:16px;border:1px solid var(--gold);border-radius:3px;text-align:center;color:var(--gold-soft);letter-spacing:.12em}
  .burger{display:flex;position:relative;z-index:210}
  .ticker span + span::before{display:none}
  .svc,.steps,.grid{grid-template-columns:1fr;column-count:1}
  .collage{grid-template-columns:repeat(2,1fr);grid-auto-rows:132px;gap:6px}
  .collage .gitem:nth-child(8n+1){grid-column:span 2;grid-row:span 2}
  section{padding:74px 0}
  .ticker .wrap{gap:18px}
  .brand img{height:40px}
  footer .brand img{height:46px}
  nav.top .wrap{height:76px}
  form .row{grid-template-columns:1fr}
  .hero h1{font-size:clamp(46px,13vw,72px)}
}
