:root{
  --bg:#0b0b0d;
  --bg-soft:#141416;
  --ink:#f1efe9;
  --ink-dim:#b9b6ad;
  --gold:#c9a869;
  --gold-soft:rgba(201,168,105,.15);
  --line:rgba(241,239,233,.12);
  --serif:'Cormorant Garamond',serif;
  --sans:'DM Sans',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:.01em}
h2{font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.08}
.section-tag{
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
  margin-bottom:1rem;display:inline-block;font-weight:600;
}
.container{max-width:1240px;margin:0 auto;padding:0 32px}
section{padding:110px 0}
@media(max-width:720px){section{padding:70px 0}.container{padding:0 20px}}

/* NAV */
#navbar{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
#navbar.scrolled{background:rgba(11,11,13,.86);backdrop-filter:blur(10px);border-color:var(--line)}
.nav-inner{max-width:1240px;margin:0 auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between}
.nav-brand{font-family:var(--serif);font-size:1.35rem;letter-spacing:.04em}
.nav-brand span{color:var(--gold)}
.nav-links{display:flex;gap:36px;align-items:center;font-size:.92rem}
.nav-links a{opacity:.85;transition:opacity .2s}
.nav-links a:hover{opacity:1;color:var(--gold)}
.nav-cta{border:1px solid var(--gold);padding:9px 20px;border-radius:2px;color:var(--gold)!important}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none}
.nav-toggle span{width:24px;height:1.5px;background:var(--ink)}
@media(max-width:860px){
  .nav-links{position:fixed;top:0;right:-100%;height:100vh;width:78%;max-width:340px;background:var(--bg-soft);flex-direction:column;justify-content:center;align-items:flex-start;padding:0 44px;transition:right .35s ease;border-left:1px solid var(--line)}
  .nav-links.open{right:0}
  .nav-links a{font-size:1.1rem}
  .nav-toggle{display:flex;z-index:110}
}

/* HERO */
.hero{position:relative;height:100vh;min-height:680px;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%;opacity:.5;filter:saturate(.85)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.55) 0%,rgba(11,11,13,.25) 45%,rgba(11,11,13,.96) 100%)}
#hero-canvas{position:absolute;inset:0;opacity:.5;pointer-events:none}
#hero-sculpture-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}
#hero-sculpture-canvas:active{cursor:grabbing}
.hero-inner{position:relative;z-index:2;padding:0 32px 100px;max-width:1240px;margin:0 auto;width:100%}
.hero-eyebrow{color:var(--gold);letter-spacing:.3em;text-transform:uppercase;font-size:.82rem;font-weight:600;margin-bottom:26px;display:block}
.hero h1{font-size:clamp(3rem,8vw,6.6rem);max-width:900px;color:var(--ink);line-height:1.02;text-shadow:0 4px 40px rgba(0,0,0,.5)}
.hero h1 em{color:var(--gold);font-style:normal}
.hero p{margin-top:26px;max-width:520px;color:var(--ink-dim);font-size:1.08rem}
.hero-btns{margin-top:42px;display:flex;gap:16px;flex-wrap:wrap}
.hero-3d-tag{position:absolute;top:110px;right:32px;z-index:2;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);max-width:220px;text-align:right;line-height:1.6;opacity:.85}
@media(max-width:860px){.hero-3d-tag{display:none}}
.btn{display:inline-block;padding:15px 30px;border-radius:2px;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;transition:all .25s}
.btn-solid{background:var(--gold);color:var(--bg)}
.btn-solid:hover{background:#e0c288}
.btn-outline{border:1px solid var(--ink-dim);color:var(--ink)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.scroll-cue{position:absolute;bottom:28px;right:32px;z-index:2;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);writing-mode:vertical-rl}

/* INTRO */
.intro{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}
@media(max-width:860px){.intro{grid-template-columns:1fr;gap:34px}}
.intro h2{font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.08}
.intro p{color:var(--ink-dim);margin-top:20px;font-size:1.02rem;max-width:520px}
.discipline-list{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px}
.discipline-chip{border:1px solid var(--line);padding:8px 16px;border-radius:30px;font-size:.82rem;color:var(--ink-dim)}

/* PORTFOLIO GRID */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:56px;perspective:1200px}
@media(max-width:980px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cat-grid{grid-template-columns:1fr}}
.cat-card{position:relative;aspect-ratio:3/4;border-radius:4px;overflow:hidden;cursor:pointer}
.cat-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.cat-card:hover img{transform:scale(1.06)}
.cat-card .cat-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.88) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:24px}
.cat-card h3{font-size:1.2rem;color:var(--ink)}
.cat-card p{font-size:.82rem;color:var(--ink-dim);margin-top:6px}
.cat-card .cat-tag{position:absolute;top:16px;left:16px;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold-soft);background:rgba(11,11,13,.5);padding:5px 10px;border-radius:20px}

/* WEDDING MOOD BLOCKS — each mood gets its own full section with every photo from that shoot */
/* Full per-mood photo galleries — used on blog.html article pages, not the homepage */
.mood-block{padding:70px 0}
.mood-header{max-width:640px;margin-bottom:8px}
.mood-header h3{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:14px}
.mood-header p{color:var(--ink-dim);font-size:1rem;margin-bottom:22px}
.mood-frame-grid{margin-top:30px}
@media(max-width:720px){.mood-block{padding:46px 0}}

/* MOOD CARDS (WEDDING) — homepage teaser, compact 3-photo preview per mood */
.mood-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px;perspective:1200px}

/* 3D GALLERY SECTION — full-bleed, edge-to-edge; static grid always renders first, canvas layers a WebGL 3D scene on top when it loads */
.gallery3d-wrap{margin-top:90px;margin-bottom:70px;width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;background:radial-gradient(ellipse at center,#17161a 0%,#0b0b0d 75%);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gallery3d-stage{position:relative;height:78vh;min-height:480px;max-height:760px;overflow:hidden}
.gallery3d-fallback{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:2px;padding:2px;overflow:hidden}
.gallery3d-fallback img{width:100%;height:100%;object-fit:cover;opacity:.9}
.gallery3d-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y;background:transparent}
.gallery3d-canvas:active{cursor:grabbing}
.gallery3d-hint{text-align:center;padding:20px 0 30px;color:var(--ink-dim);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:720px){.gallery3d-stage{height:60vh;min-height:340px}.gallery3d-fallback{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.mood-grid{grid-template-columns:1fr}}
.mood-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg-soft)}
.mood-thumbs{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:280px;gap:2px;height:280px;overflow:hidden}
.mood-thumbs img{width:100%;height:100%;object-fit:cover;min-height:0}
.mood-thumbs .stack{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:2px;min-height:0;overflow:hidden}
.mood-body{padding:26px 24px 30px}
.mood-body h3{font-size:1.3rem;margin-bottom:10px}
.mood-body p{color:var(--ink-dim);font-size:.92rem}
.mood-body .btn{margin-top:20px;padding:11px 22px;font-size:.78rem}

/* SELECTED FRAMES — dense editorial masonry, real photo count on the homepage */
.frame-grid{column-count:4;column-gap:14px;margin-top:50px}
.frame-grid img{width:100%;display:block;margin-bottom:14px;border-radius:4px;break-inside:avoid;cursor:pointer;transition:transform .5s ease,opacity .3s ease;opacity:.96}
.frame-grid img:hover{transform:scale(1.015);opacity:1}
@media(max-width:980px){.frame-grid{column-count:3}}
@media(max-width:640px){.frame-grid{column-count:2;column-gap:8px}.frame-grid img{margin-bottom:8px}}

/* BEHANCE LINK-OUT CARD */
.behance-card{position:relative}
.behance-card .cat-overlay a.mini-link{position:absolute;top:16px;right:16px;font-size:.68rem;color:var(--gold);border:1px solid var(--gold-soft);padding:5px 10px;border-radius:20px;background:rgba(11,11,13,.5)}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
@media(max-width:860px){.about-grid{grid-template-columns:1fr}}
.about-grid img{border-radius:6px;aspect-ratio:4/5;object-fit:cover;width:100%}
.about-grid p{color:var(--ink-dim);margin-top:18px}
.about-grid p+p{margin-top:14px}

/* GUNLUK / VSCO */
.vsco-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
@media(max-width:860px){.vsco-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.vsco-grid{grid-template-columns:1fr}}
.vsco-card{display:block;border-radius:6px;overflow:hidden;aspect-ratio:4/5;position:relative}
.vsco-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .5s ease;filter:grayscale(.15)}
.vsco-card:hover img{transform:scale(1.04);filter:grayscale(0)}

/* BLOG TEASER */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:50px}
@media(max-width:860px){.blog-grid{grid-template-columns:1fr}}
.blog-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:border-color .25s}
.blog-card:hover{border-color:var(--gold-soft)}
.blog-card img{aspect-ratio:16/10;object-fit:cover}
.blog-card .blog-body{padding:22px}
.blog-card .blog-tag{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.blog-card h3{font-size:1.15rem;margin-top:10px}
.blog-card p{color:var(--ink-dim);font-size:.88rem;margin-top:8px}

/* CONTACT */
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:70px}
@media(max-width:860px){.contact-wrap{grid-template-columns:1fr;gap:36px}}
.contact-item{margin-bottom:26px}
.contact-item .label{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:6px}
.contact-item a,.contact-item span{font-size:1.15rem}
.social-row{display:flex;gap:18px;margin-top:30px;flex-wrap:wrap}
.social-row a{border:1px solid var(--line);padding:9px 18px;border-radius:20px;font-size:.82rem}
.social-row a:hover{border-color:var(--gold);color:var(--gold)}

footer{border-top:1px solid var(--line);padding:46px 0;text-align:center;color:var(--ink-dim);font-size:.85rem}
footer .foot-brand{font-family:var(--serif);color:var(--ink);font-size:1.1rem;margin-bottom:10px}

/* REVEAL ANIMATION */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}
/* ===== V2 ADDITIONS ===== */
.lang-switch{border:1px solid var(--line);padding:6px 12px;border-radius:20px;font-size:.78rem;letter-spacing:.1em;color:var(--ink-dim)}
.lang-switch:hover{border-color:var(--gold);color:var(--gold)}
.nav-links a.active{color:var(--gold);opacity:1}
/* Page hero (inner pages) */
.page-hero{padding:170px 0 70px;position:relative}
.page-hero h1{font-family:var(--serif);font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:1.05;max-width:880px}
.page-hero h1 em{color:var(--gold);font-style:normal}
.page-hero .lede{color:var(--ink-dim);margin-top:22px;max-width:600px;font-size:1.08rem}
.breadcrumb{font-size:.78rem;letter-spacing:.08em;color:var(--ink-dim);margin-bottom:26px}
.breadcrumb a{color:var(--gold)}
/* Article */
.article{max-width:760px;margin:0 auto}
.article-hero-img{border-radius:6px;aspect-ratio:16/9;object-fit:cover;width:100%;margin:40px 0}
.article h2{font-size:clamp(1.5rem,2.8vw,2.1rem);margin:48px 0 18px}
.article h3{font-size:1.25rem;margin:34px 0 12px}
.article p{color:var(--ink-dim);margin-bottom:18px;font-size:1.04rem;line-height:1.75}
.article ul,.article ol{color:var(--ink-dim);margin:0 0 18px 22px;line-height:1.75}
.article li{margin-bottom:8px}
.article blockquote{border-left:2px solid var(--gold);padding:6px 0 6px 22px;margin:30px 0;font-family:var(--serif);font-size:1.3rem;color:var(--ink);font-style:italic}
.article .article-meta{display:flex;gap:18px;color:var(--ink-dim);font-size:.85rem;margin-top:18px}
.article .article-meta .blog-tag{font-size:.7rem}
.article-figure{margin:34px 0}
.article-figure img{border-radius:6px;width:100%}
.article-figure figcaption{font-size:.8rem;color:var(--ink-dim);margin-top:10px;letter-spacing:.04em}
.article-cta{border:1px solid var(--line);border-radius:6px;padding:34px;margin:56px 0 0;background:var(--bg-soft);text-align:center}
.article-cta h3{font-family:var(--serif);font-size:1.5rem;margin-bottom:10px}
.article-cta p{color:var(--ink-dim);max-width:480px;margin:0 auto 22px}
.post-nav{display:flex;justify-content:space-between;gap:20px;margin-top:60px;border-top:1px solid var(--line);padding-top:30px;font-size:.9rem}
.post-nav a{color:var(--ink-dim)}.post-nav a:hover{color:var(--gold)}
/* Contact form */
.form-grid{display:grid;gap:18px}
.form-grid label{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:8px}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;background:var(--bg-soft);border:1px solid var(--line);border-radius:4px;padding:14px 16px;color:var(--ink);font-family:var(--sans);font-size:.95rem}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--gold)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:640px){.form-row{grid-template-columns:1fr}}
/* Blog index */
.blog-index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:50px}
@media(max-width:980px){.blog-index-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.blog-index-grid{grid-template-columns:1fr}}
.section-divider{border:none;border-top:1px solid var(--line);margin:70px 0}
/* Location pages */
.loc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:40px}
@media(max-width:860px){.loc-list{grid-template-columns:1fr}}
.faq-item{border-bottom:1px solid var(--line);padding:26px 0}
.faq-item h3{font-size:1.15rem;margin-bottom:10px}
.faq-item p{color:var(--ink-dim)}
.success-note{border:1px solid var(--gold-soft);background:var(--gold-soft);border-radius:6px;
/* ===== CASE PAGES ===== */
.reels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:40px}
.reel{aspect-ratio:9/16;width:100%;border:0;border-radius:8px;background:var(--bg-soft)}
.reel-wide{aspect-ratio:16/9;width:100%;border:0;border-radius:8px;background:var(--bg-soft);grid-column:1/-1;max-width:760px}
.case-meta{display:flex;gap:30px;flex-wrap:wrap;margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}
.case-meta div{min-width:140px}
.case-meta .label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:4px}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:50px}
@media(max-width:980px){.ca
/* ===== IMAGE PROTECTION ===== */
img{-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
