:root{--ink:#0d0806;--wine:#3f0c03;--maroon:#7a1705;--gold:#dda92a;--pale:#ffd580;--ivory:#f5ead6;--mute:#c9b9a0;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",system-ui,sans-serif}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--ivory);font:400 1rem/1.7 var(--sans);-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
a{color:var(--pale)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;color:var(--pale)}
h1{font-size:clamp(2.4rem,7vw,4.6rem)}
h2{font-size:clamp(1.8rem,4.5vw,2.8rem);margin-bottom:.6rem}
h3{font-size:1.5rem;margin-bottom:.4rem}
p{max-width:64ch;color:var(--mute)}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}
section{padding:clamp(3rem,8vw,6rem) 0}
.alt{background:var(--wine)}
.center{text-align:center}.center p{margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--gold);color:#000;padding:.5rem 1rem;z-index:99}
/* header */
header{position:sticky;top:0;z-index:20;background:rgba(13,8,6,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(221,169,42,.35)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font:600 1.35rem var(--serif);color:var(--gold)}
.brand img{width:46px;height:46px;border-radius:50%}
nav ul{display:flex;gap:1.6rem;list-style:none;padding:0}
nav a{text-decoration:none;color:var(--ivory);font-size:.88rem;font-weight:500;padding:.4rem 0;border-bottom:1px solid transparent}
nav a:hover,nav a[aria-current]{color:var(--gold);border-color:var(--gold)}
.menu{display:none;background:none;border:1px solid var(--gold);color:var(--gold);padding:.45rem .8rem;font:inherit;cursor:pointer}
/* logo-motif divider */
.orn{display:flex;align-items:center;gap:.8rem;margin:1rem 0 1.4rem;color:var(--gold)}
.orn::before,.orn::after{content:"";height:1px;flex:1;max-width:120px;background:linear-gradient(90deg,transparent,var(--gold))}
.orn::after{transform:scaleX(-1)}
.center .orn{justify-content:center}
.orn svg{width:26px;height:26px}
/* hero */
.hero{position:relative;min-height:88vh;display:grid;place-items:center;text-align:center;padding:4rem 0;background:linear-gradient(rgba(13,8,6,.55),rgba(13,8,6,.82)),url(/images/hero.jpg) center/cover}
.hero .card{border:1px solid var(--gold);outline:1px solid rgba(221,169,42,.45);outline-offset:8px;background:rgba(13,8,6,.72);padding:clamp(1.5rem,5vw,3rem);max-width:760px;margin:1rem auto}
.hero .emblem{width:clamp(120px,22vw,190px);border-radius:50%;margin:-5.5rem auto 1rem;border:2px solid var(--gold)}
.hero p{margin:1rem auto 1.6rem;color:var(--ivory);font-size:1.08rem}
.page-head{padding:clamp(3rem,8vw,5rem) 0 1rem;text-align:center}
.page-head p{margin-inline:auto}
/* buttons */
.btn{display:inline-block;padding:.8rem 1.6rem;border:1px solid var(--gold);color:var(--gold);text-decoration:none;font-weight:600;font-size:.92rem;margin:.25rem}
.btn.fill{background:var(--gold);color:#1a0d00}
.btn:hover{background:var(--pale);color:#1a0d00;border-color:var(--pale)}
/* grids */
.grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:2rem}
.box{border:1px solid rgba(221,169,42,.5);padding:1.6rem;background:rgba(0,0,0,.25)}
.split{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:center}
.framed{border:1px solid var(--gold);outline:1px solid rgba(221,169,42,.45);outline-offset:8px;margin:10px}
.framed img{width:100%;aspect-ratio:16/10;object-fit:cover}
.list{padding-left:1.1rem;color:var(--mute)}.list li{margin:.4rem 0}
/* gallery */
.gal{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:2rem 0 4rem}
.gal figure{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(221,169,42,.5);background:var(--wine);cursor:zoom-in}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gal figure:hover img{transform:scale(1.04)}
.gal figure.empty{cursor:default;display:grid;place-items:center;color:var(--mute);font-size:.85rem}
.gal figure.empty img{display:none}.gal figure.empty::after{content:"Photo coming soon"}
dialog{border:1px solid var(--gold);background:var(--ink);padding:.5rem;max-width:94vw;max-height:94vh}
dialog::backdrop{background:rgba(0,0,0,.88)}
dialog img{max-height:82vh;margin:auto}
dialog button{display:block;margin:.5rem 0 0 auto;background:none;border:1px solid var(--gold);color:var(--gold);padding:.3rem 1rem;cursor:pointer;font:inherit}
/* blog */
article.post{padding:2rem 0;border-bottom:1px solid rgba(221,169,42,.3)}
article.post time{color:var(--gold);font-size:.85rem}
article.post p{margin:.7rem 0}
/* footer */
footer{background:#000;border-top:1px solid var(--gold);padding:3rem 0 6rem;color:var(--mute);font-size:.92rem}
footer .grid{margin-top:0}
footer h3{font-size:1.25rem}
footer a{color:var(--mute)}footer a:hover{color:var(--pale)}
footer ul{list-style:none;padding:0}
.fbar{display:none}
@media(max-width:820px){
.menu{display:block}
nav{position:absolute;left:0;right:0;top:100%;background:var(--ink);border-bottom:1px solid var(--gold);display:none}
nav.open{display:block}
nav ul{flex-direction:column;gap:0;padding:.5rem 1.25rem}
nav a{display:block;padding:.8rem 0}
.hero .emblem{margin-top:-4.5rem}
.fbar{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;z-index:30}
.fbar a{padding:.9rem;text-align:center;text-decoration:none;font-weight:600;background:var(--gold);color:#1a0d00}
.fbar a+a{background:var(--maroon);color:var(--ivory)}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
dialog{margin:auto}
.page-head .orn,.hero .orn{justify-content:center}
/* hero: slow zoom, gold shimmer title, glowing emblem */
.hero{background:none;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(13,8,6,.55),rgba(13,8,6,.82)),url(/images/hero.jpg) center/cover;animation:kb 18s ease-out both}
.hero .wrap{position:relative;z-index:1}
.hero .card{animation:up 1.1s .2s both}
.hero .emblem{animation:pop 1s .5s both,glow 4s 1.6s ease-in-out infinite}
.hero h1{background:linear-gradient(100deg,#dda92a 20%,#fff3c4 45%,#dda92a 70%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:sh 6s linear infinite}
.hero p{animation:up .9s .9s both}
.hero .btn{animation:up .9s 1.1s both}
@keyframes kb{from{transform:scale(1.14)}to{transform:none}}
@keyframes up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes sh{to{background-position:-250% 0}}
@keyframes glow{50%{box-shadow:0 0 34px rgba(221,169,42,.55)}}

/* scroll reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
.orn.rv svg{transform:rotate(-120deg) scale(.3);transition:transform 1.1s .2s cubic-bezier(.2,.7,.2,1)}
.orn.rv.in svg{transform:none}
.framed.rv img{clip-path:inset(0 100% 0 0);transition:clip-path 1.3s .2s cubic-bezier(.7,0,.2,1)}
.framed.rv.in img{clip-path:inset(0)}
.gal figure.rv{transform:scale(.94) translateY(20px)}
.gal figure.rv.in{transform:none}
.btn{transition:background .25s,color .25s,transform .25s}
.btn:hover{transform:translateY(-2px)}
dialog[open]{animation:pop .35s both}

@media(prefers-reduced-motion:reduce){
*,::before{animation:none!important}
.rv,.rv *{opacity:1!important;transform:none!important;clip-path:none!important}
}
img{height:auto}
.brand img{flex-shrink:0;width:46px;height:46px;object-fit:cover}
.hero .emblem{width:clamp(120px,22vw,190px);height:auto;aspect-ratio:1/1;object-fit:cover}