/* ===== Glowfy — static build (ported 1:1 from Glowfy.dc.html) ===== */
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:'Jost',system-ui,sans-serif; color:#16130f; background:#ffffff; -webkit-font-smoothing:antialiased; }
a{ color:#a98f7d; text-decoration:none; transition:color .25s ease; }
a:hover{ color:#16130f; }
.disp{ font-family:'Cormorant Garamond',serif; }
@keyframes glowfyFade{ from{opacity:0; transform:translateY(24px);} to{opacity:1; transform:translateY(0);} }

/* category cards — group-hover + responsive can't be inline */
.cat-grid-i{ display:grid; grid-template-columns:repeat(3,1fr); }
.cat-card{ position:relative; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start; overflow:hidden; padding:48px; min-height:750px; }
.cat-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.cat-card:hover .cat-video{ transform:scale(1.05); }
.cat-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.10); transition:background .5s ease; }
.cat-card:hover .cat-overlay{ background:rgba(0,0,0,.20); }
.cat-name-wrap{ position:relative; z-index:10; transition:transform .5s ease; }
.cat-card:hover .cat-name-wrap{ transform:translateY(-8px); }
.cat-name{ writing-mode:vertical-lr; transform:rotate(180deg); font-family:'Cormorant Garamond',serif; font-weight:500; line-height:1; color:#fff; font-size:96px; }

/* reveal-on-scroll (ported from IntersectionObserver logic) */
.cat-card{ opacity:0; transform:translateY(48px); transition:opacity 1s ease-out, transform 1s ease-out; }
.cat-grid-i.is-visible .cat-card{ opacity:1; transform:translateY(0); }
.cat-grid-i.is-visible .cat-card:nth-child(2){ transition-delay:.15s; }
.cat-grid-i.is-visible .cat-card:nth-child(3){ transition-delay:.30s; }

/* btn-primary — pseudo-element shimmer can't be inline (from spec) */
.btn-primary{ position:relative; overflow:hidden; transition:transform .3s ease, box-shadow .3s ease; }
.btn-primary::before{ content:''; position:absolute; inset:0; background:linear-gradient(120deg, transparent 0%, rgba(0,0,0,.05) 50%, transparent 100%); transform:translateX(-100%); transition:transform .5s ease; }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.15); }
.btn-primary:hover::before{ transform:translateX(100%); }
.btn-primary:active{ transform:translateY(0); box-shadow:0 2px 8px rgba(0,0,0,.1); }

/* responsive collapses (media queries can't be inline) */
@media(max-width:1024px){ .cat-name{ font-size:72px; } }
@media(max-width:1024px){ .nav-links{ display:none !important; } }
@media(max-width:900px){ .hero-split{ grid-template-columns:1fr !important; } .hero-textpanel{ padding:118px 24px 56px !important; order:2; } .hero-videopanel{ min-height:52vh !important; order:1; } .about-grid{ grid-template-columns:1fr !important; } .contact-grid{ grid-template-columns:1fr !important; } .book-grid{ grid-template-columns:1fr !important; } }
@media(max-width:767px){ .cat-grid-i{ grid-template-columns:1fr !important; } .services-grid{ grid-template-columns:1fr !important; } .cat-card{ padding:24px; min-height:400px; } .cat-name{ font-size:48px; } .sec-pad{ padding:64px 20px !important; } .hero-pad{ padding:120px 20px 64px !important; } .hero-textpanel h1{ font-size:15vw !important; } }
@media(min-width:768px) and (max-width:1024px){ .cat-card{ padding:32px; min-height:500px; } }
