html, body {
  margin: 0;
  padding: 0;
}

/* ── override global top-navbar for paper aesthetic ── */
body.h2-body .top-navbar {
  opacity: 1 !important;
  transform: none !important;
}
body.h2-body .top-navbar a,
body.h2-body .top-navbar .nav-logo svg{
  color:#f5f1ea !important; mix-blend-mode:normal !important;
}
body.h2-body .h2-top .h2-nav {
  opacity: 1 !important;
  transform: none !important;
}

/* ── overlay header — floats over reel (fixed) ── */
body.h2-body .h2-top {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: transparent;
  transition: background 0.5s ease, backdrop-filter 0.5s ease, border-color 0.5s ease, padding 0.5s ease;
  display: flex;
  justify-content: center;
}

body.h2-body .h2-top-inner {
  width: 100%;
  max-width: 1680px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding-left:  clamp(20px, 5vw, 80px);
  padding-right: clamp(20px, 5vw, 80px);
  padding-top:   clamp(15px, 2vw, 22px);
  padding-bottom: clamp(15px, 2vw, 22px);
  gap: clamp(20px, 4vw, 60px);
}

/* state when user scrolls past the top (LIGHT GLASS) */
body.h2-body .h2-top.is-floating {
  background: rgba(245, 241, 234, 0.85) !important;
  backdrop-filter: blur(16px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.2) !important;
  border-bottom: 1px solid rgba(14, 14, 16, 0.08);
  box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
}

body.h2-body .h2-top.is-floating .h2-top-inner {
  padding-top: 14px;
  padding-bottom: 14px;
}
/* Flip text to dark when floating */
body.h2-body .h2-top.is-floating a, 
body.h2-body .h2-top.is-floating .h2-search-btn span,
body.h2-body .h2-top.is-floating .h2-search-btn svg,
body.h2-body .h2-top.is-floating .h2-register { 
  color: #0e0e10 !important; 
  border-color: rgba(14, 14, 16, 0.65) !important;
}
body.h2-body .h2-top.is-floating .nav-svg-logo {
  color: rgba(14, 14, 16, 0.7);
}
body.h2-body .h2-top.is-floating .h2-search-btn,
body.h2-body .h2-top.is-floating .h2-register {
  background: rgba(14, 14, 16, 0.05);
}

body.h2-body .h2-top.is-floating .h2-logo img {
  filter: none !important;
}

body.h2-body .h2-top.is-floating .h2-register:hover {
  background: #0e0e10 !important;
  color: #f5f1ea !important;
}






/* shell: remove top padding so reel hits 30px from viewport top */
body.h2-body .h2-shell { padding-top: 0; }

/* reel fills full screen viewport */
body.h2-body .h2-reel-wrap { margin-top: 0; }




/* Loading state fallback — WAAPI handles the real animation */
body.site-loading .h2-top { border-bottom-color: transparent; }
.h2-top { transition: border-bottom-color 1.8s ease 0.3s; }


/* ───── HOME v2 · editorial paper (h2-*) ───── */
.h2-root{
  --ink:#0e0e10; --paper:#f5f1ea; --muted:#6b6760;
  --line:rgba(14,14,16,.14); --accent:#8b6f47;
  --glass:rgba(245,241,234,.72);
  font-family:'Inter',sans-serif; color:var(--ink);
}
.h2-root *{ box-sizing:border-box; }

/* ── global background & video system ── */
body.h2-body::before, body.v2-body::before, body.c2-body::before, body.p2-body::before, body.s2-body::before, body.q2-body::before, body.ap2-body::before {
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(1200px 900px at 15% 15%, rgba(245,241,234,.9), transparent 65%),
    radial-gradient(1000px 800px at 85% 85%, rgba(245,241,234,.6), transparent 70%),
    linear-gradient(180deg, rgba(245,241,234,.8) 0%, rgba(245,241,234,.5) 50%, rgba(245,241,234,.3) 100%);
  background-color: rgba(245,241,234, 0.65);
}

#bg-video {
  position:fixed; 
  right:0; bottom:0;
  min-width:100%; min-height:100%;
  width:auto; height:auto; 
  object-fit:cover; 
  z-index:-1; pointer-events:none; 
}

body.h2-body #bg-video, body.v2-body #bg-video, body.c2-body #bg-video, body.p2-body #bg-video, body.s2-body #bg-video, body.q2-body #bg-video, body.ap2-body #bg-video { 
  filter:blur(16px) saturate(1.1) brightness(1.2); 
  transform:scale(1.08); 
}

.h2-shell{ position:relative; z-index:2; max-width:1680px; margin:0 auto; padding:40px clamp(20px,5vw,80px) 120px; }

/* ── header design system ── */
.v2-top, .c2-top, .p2-top, .s2-top, .q2-top, .all-top { 
  display: grid; 
  grid-template-columns: 1fr auto 1fr;
  align-items: center; 
  padding: 28px 0 44px; 
  border-bottom: 1px solid var(--line); 
  margin-bottom: clamp(50px, 7vw, 90px); 
  width: 100%;
  gap: clamp(20px, 4vw, 60px); 
}

/* ── left / right wrapper groups ── */
.h2-top-left {
  display: flex;
  align-items: center;
  justify-content: space-between; /* Search far left, Nav near logo */
  width: 100%;
}
.h2-top-right { 
  display: flex; 
  align-items: center; 
  justify-content: space-between; /* Nav near logo, Utils far right */
  width: 100%;
}
.h2-top-utils {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 50px);
}

/* Language Switcher Trigger */
.h2-lang-switcher {
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
}
.h2-lang-current {
  color: #f5f1ea;
  opacity: 0.65;
  transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
  display: flex;
  align-items: center;
}
.h2-lang-globe {
  width: 18px;
  height: 18px;
  stroke-width: 1.2px;
}
.h2-lang-switcher:hover .h2-lang-current {
  opacity: 1;
  color: #d7b584;
}
.h2-top.h2-scrolled .h2-lang-current,
body.h2-body .h2-top.is-floating .h2-lang-current {
  color: #0e0e10;
}

/* ── search button (far left) ── */
.h2-search-btn {
  all: unset;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  min-height: 34px;
  border: 1px solid rgba(245, 241, 234, 0.25);
  border-radius: 2px;
  color: #f5f1ea;
  transition: border-color .4s, background .4s;
  white-space: nowrap;
  align-self: center;
}
.h2-search-btn:hover {
  border-color: var(--ink);
  background: rgba(14,14,16,.04);
}
.h2-search-btn svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.h2-search-btn span {
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: #f5f1ea;
  line-height: 1;
}
.h2-search-btn svg { color: #f5f1ea; }
.h2-top a { color: #f5f1ea; }

.h2-logo { display:flex; align-items:center; justify-content:center; }
.nav-svg-logo { width:clamp(28px, 4vw, 42px); height:auto; color: #f5f1ea; transition: transform 0.5s cubic-bezier(.19,1,.22,1), color 0.4s; }

/* 1. Hovering anywhere on the navbar: Draw the logo and make it dark */
.h2-top:hover .nav-svg-logo { color: var(--ink); }

.h2-top:hover .nav-svg-logo rect,
.h2-top:hover .nav-svg-logo line,
.h2-top:hover .nav-svg-logo path {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: navDrawOn 1.6s cubic-bezier(.77,0,.18,1) forwards;
}
@keyframes navDrawOn {
  0% { stroke-dashoffset: 1; }
  100% { stroke-dashoffset: 0; }
}
.h2-top:hover .nav-svg-logo .pl-border { animation-delay: 0s; }
.h2-top:hover .nav-svg-logo .pl-e1, .h2-top:hover .nav-svg-logo .pl-e2 { animation-delay: 0.15s; }
.h2-top:hover .nav-svg-logo .pl-e3, .h2-top:hover .nav-svg-logo .pl-e4 { animation-delay: 0.3s; }
.h2-top:hover .nav-svg-logo .pl-e5, .h2-top:hover .nav-svg-logo .pl-e6 { animation-delay: 0.45s; }
.h2-top:hover .nav-svg-logo .pl-e7, .h2-top:hover .nav-svg-logo .pl-e8 { animation-delay: 0.6s; }

/* 2. Hovering directly on the logo: Small scale zoom */
.h2-logo:hover .nav-svg-logo { transform: scale(1.15); }



/* ── register interest (far right) ── */
.h2-register {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  min-height: 34px;
  border: 1px solid rgba(245, 241, 234, 0.35);
  border-radius: 2px;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: #f5f1ea;
  white-space: nowrap;
  align-self: center;
  line-height: 1;
  transition: background .4s, color .4s;
}
.h2-register:hover {
  background: #f5f1ea;
  color: #0e0e10;
}


.h2-top .h2-nav, .v2-top .v2-side, .c2-top .c2-nav, .p2-top .p2-nav, .s2-top .s2-side, .q2-top .q2-side, .all-top .all-nav { 
  display: flex; 
  align-items: center; 
  gap: clamp(20px, 3vw, 50px); 
  font-size: 10px; 
  letter-spacing: .32em; 
  text-transform: uppercase; 
  color: var(--muted);
}
.h2-top .h2-nav.right, .v2-top .v2-side.right, .c2-top .c2-nav.right, .p2-top .p2-nav.right, .s2-top .s2-side.right, .q2-top .q2-side.right, .all-top .all-nav.right { 
  justify-content: flex-start; 
}
.h2-top .h2-nav a, .v2-top .v2-side a, .c2-top .c2-nav a, .p2-top .p2-nav a, .s2-top .s2-side a, .q2-top .q2-side a, .all-top .all-nav a {
  color: #f5f1ea !important; opacity: 1 !important; visibility: visible !important;
  text-decoration: none !important; position: relative;
  font-family: 'Inter', sans-serif; font-weight: 500;
  transition: opacity .4s, color .4s;
}
.h2-top .h2-nav a:hover, .v2-top .v2-side a:hover, .c2-top .c2-nav a:hover, .p2-top .p2-nav a:hover, .s2-top .s2-side a:hover, .q2-top .q2-side a:hover, .all-top .all-nav a:hover { 
  opacity: 1 !important; 
}
.h2-top .h2-nav a::after, .v2-top .v2-side a::after, .c2-top .c2-nav a::after, .p2-top .p2-nav a::after, .s2-top .s2-side a::after, .q2-top .q2-side a::after, .all-top .all-nav a::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}
.h2-top .h2-nav a:hover::after, .v2-top .v2-side a:hover::after, .c2-top .c2-nav a:hover::after, .p2-top .p2-nav a:hover::after, .s2-top .s2-side a:hover::after, .q2-top .q2-side a:hover::after, .all-top .all-nav a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}
.h2-top .h2-nav a.is-here, .v2-top .v2-side a.is-here, .c2-top .c2-nav a.is-here, .p2-top .p2-nav a.is-here, .s2-top .s2-side a.is-here, .q2-top .q2-side a.is-here, .all-top .all-nav a.is-here { 
  color: #8b6f47 !important; 
}
/* White active state for dark-hero pages */
.dv-root .h2-top:not(.is-floating) .h2-nav a.is-here,
.p2-body .h2-top:not(.is-floating) .h2-nav a.is-here {
  color: #fff !important;
}
.h2-top .h2-nav a.is-here::after, .v2-top .v2-side a.is-here::after, .c2-top .c2-nav a.is-here::after, .p2-top .p2-nav a.is-here::after, .s2-top .s2-side a.is-here::after, .q2-top .q2-side a.is-here::after, .all-top .all-nav a.is-here::after {
  transform: scaleX(1);
  transform-origin: left;
}


.h2-top .h2-logo, .v2-top .v2-logo, .c2-top .c2-logo, .p2-top .p2-logo, .s2-top .s2-logo, .q2-top .q2-logo, .all-top .all-logo { 
  display: flex; 
  justify-content: center; 
  text-decoration: none; 
}
.h2-top .h2-logo img, .v2-top .v2-logo img, .c2-top .c2-logo img, .p2-top .p2-logo img, .s2-top .s2-logo img, .q2-top .q2-logo img, .all-top .all-logo img { 
  width: 37px; 
  opacity: .9; 
  transition: transform .6s cubic-bezier(.19,1,.22,1), opacity .4s; 
}
.h2-top .h2-logo:hover img, .v2-top .v2-logo:hover img, .c2-top .c2-logo:hover img, .p2-top .p2-logo:hover img, .s2-top .s2-logo:hover img, .q2-top .q2-logo:hover img, .all-top .all-logo:hover img { transform: scale(1.06) rotate(-2deg); opacity: 1; }

@media (max-width: 960px) {
  .h2-top .h2-nav.right, .v2-top .v2-side.right, .c2-top .c2-nav.right, .p2-top .p2-nav.right { justify-content: center; padding: 0; }
  .h2-search-btn, .h2-register { display: none; }
  .h2-top, .v2-top, .c2-top, .p2-top, .s2-top, .q2-top, .all-top { grid-template-columns: 1fr auto 1fr; }

}


/* ── scroll-driven reveal system (sets --rp: 0→1 per element) ── */
.h2-sx{ --rp: 0; }
.h2-sx-fade{ opacity: var(--rp); transform: translate3d(0, calc((1 - var(--rp)) * 34px), 0); transition: opacity .1s linear; }
.h2-sx-blur{ opacity: var(--rp); filter: blur(calc((1 - var(--rp)) * 10px)); transform: translate3d(0, calc((1 - var(--rp)) * 24px), 0); }
.h2-sx-mask{
  clip-path: inset(calc((1 - var(--rp)) * 100%) 0 0 0);
  -webkit-clip-path: inset(calc((1 - var(--rp)) * 100%) 0 0 0);
  transform: translate3d(0, calc((1 - var(--rp)) * 18px), 0);
}
.h2-sx-draw{ transform: scaleX(var(--rp)); transform-origin:left center; opacity: calc(.3 + var(--rp) * .7); }
.h2-sx-rise{ opacity: var(--rp); transform: translate3d(0, calc((1 - var(--rp)) * 60px), 0) scale(calc(.96 + var(--rp) * .04)); }

/* ── hero · premium framer-grade composition ── */
.h2-hero{
  position:relative;
  display:grid;
  grid-template-columns: 56px 1.45fr 1fr;
  gap:clamp(24px,4vw,64px);
  align-items:start;
  margin-bottom:clamp(60px,7vw,100px);
  padding-top:clamp(20px,3vw,40px);
}
.h2-hero-rail{
  display:flex; flex-direction:column; justify-content:space-between;
  min-height:clamp(440px,52vw,640px);
  border-left:1px solid var(--line);
  padding-left:20px;
}
.h2-hero-rail .h2-rail-top,
.h2-hero-rail .h2-rail-bot{
  font-size:9.5px; letter-spacing:.38em; text-transform:uppercase; color:var(--muted);
  writing-mode: vertical-rl; transform: rotate(180deg); white-space:nowrap;
}
.h2-hero-rail .h2-rail-bot{ color:var(--accent); }
.h2-hero-rail .h2-rail-idx{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:34px; line-height:1; color:var(--ink);
  writing-mode: vertical-rl; transform: rotate(180deg);
}

.h2-hero-main{ position:relative; padding-top:10px; }

.h2-eyebrow{
  font-size:11px; letter-spacing:.38em; text-transform:uppercase; color:var(--accent);
  margin-bottom:36px; display:flex; align-items:center; gap:16px;
}
.h2-eyebrow .h2-eye-line{ width:72px; height:1px; background:var(--accent); display:block; transform-origin:left; }
.h2-eyebrow .h2-eye-dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 12px rgba(139,111,71,.5); }

.h2-display{
  font-family:'Cormorant Garamond',serif; font-weight:400;
  font-size:clamp(56px,10.5vw,168px); line-height:.9; letter-spacing:-.028em; margin:0;
  color:var(--ink);
}
.h2-display .h2-line{ display:block; overflow:hidden; }
.h2-display .h2-line > span{ display:inline-block; }
.h2-display em{
  font-style:italic; font-weight:300; color:var(--accent);
  position:relative; padding: 0 .06em;
}
.h2-display em::after{
  content:""; position:absolute; left:6%; right:6%; bottom:.06em; height:2px;
  background:linear-gradient(90deg, transparent, var(--accent) 25%, var(--accent) 75%, transparent);
  transform: scaleX(var(--rp, 1)); transform-origin:left; opacity:.55;
}

.h2-hero-meta{
  display:flex; gap:clamp(24px,3vw,44px); margin-top:clamp(40px,5vw,64px);
  padding-top:26px; border-top:1px solid var(--line);
  font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted);
}
.h2-hero-meta b{ display:block; color:var(--ink); font-weight:400; font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:22px; letter-spacing:-.005em; text-transform:none; margin-bottom:4px; }

.h2-hero-side{
  position:relative;
  display:flex; flex-direction:column; justify-content:space-between;
  min-height:clamp(440px,52vw,640px);
  padding-top:10px;
}
.h2-hero-side .h2-side-top{
  font-size:10px; letter-spacing:.35em; text-transform:uppercase; color:var(--muted);
  display:flex; align-items:center; gap:14px; margin-bottom:28px;
}
.h2-hero-side .h2-side-top::before{ content:""; width:30px; height:1px; background:var(--muted); }
.h2-lede{
  max-width:420px; font-size:17px; line-height:1.65; color:#2b2824; font-weight:300;
  font-family:'Cormorant Garamond',serif; font-style:italic;
}
.h2-lede .h2-lede-accent{ font-style:normal; color:var(--accent); font-weight:400; letter-spacing:.02em; }

.h2-scroll-ind{
  display:flex; align-items:center; gap:14px; margin-top:40px;
  font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted);
}
.h2-scroll-ind .h2-scr-line{
  position:relative; width:90px; height:1px; background:var(--line); overflow:hidden;
}
.h2-scroll-ind .h2-scr-line::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, transparent, var(--ink), transparent);
  animation:h2scroll 2.4s cubic-bezier(.65,.05,.35,1) infinite;
}
@keyframes h2scroll{ 0%{ transform:translateX(-100%);} 100%{ transform:translateX(100%);} }

.h2-hero-stamp{
  position:absolute; top:0; right:0;
  display:flex; align-items:center; gap:10px;
  font-size:9.5px; letter-spacing:.4em; text-transform:uppercase; color:var(--muted);
}
.h2-hero-stamp .h2-stamp-ring{
  width:44px; height:44px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:15px; color:var(--ink);
  letter-spacing:0;
}

@media (max-width:900px){
  .h2-hero{ grid-template-columns:1fr; gap:28px; }
  .h2-hero-rail{ display:none; }
  .h2-hero-side{ min-height:0; }
  .h2-hero-stamp{ position:relative; margin-bottom:10px; }
}

/* ── meta strip ── */
.h2-strip{
  display:grid; grid-template-columns:repeat(4, 1fr);
  margin-bottom:clamp(50px,6vw,80px);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.h2-strip > div{ padding:22px 20px; border-right:1px solid var(--line); }
.h2-strip > div:last-child{ border-right:none; }
.h2-strip .h2-slbl{ font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.h2-strip .h2-sval{ font-family:'Cormorant Garamond',serif; font-size:clamp(22px,2.4vw,32px); font-weight:400; letter-spacing:-.01em; color:var(--ink); }
.h2-strip .h2-sval em{ font-style:italic; color:var(--accent); }
@media (max-width:780px){ .h2-strip{ grid-template-columns:repeat(2,1fr); } .h2-strip > div:nth-child(2){ border-right:none; } .h2-strip > div:nth-child(1), .h2-strip > div:nth-child(2){ border-bottom:1px solid var(--line); } }

/* ── reel · scroll-driven ── */
.h2-reel-wrap{
  --h2-t:0;
  position:relative; 
  left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
  width: 100vw;
  height: 100vh;
  overflow:hidden;

  background:#0e0e10; 
  box-shadow:0 50px 140px -40px rgba(0,0,0,.55);
  margin-bottom:clamp(60px,8vw,100px);
  border-bottom:1px solid rgba(245,241,234,.15);
  will-change: transform;
}
.h2-reel-wrap video{
  width:100%; height:100%; object-fit:cover; display:block;
  transform: scale(calc(1.05 - (0.05 * var(--h2-t))));
  filter: saturate(calc(.92 + (.16 * var(--h2-t)))) brightness(calc(.9 + (.12 * var(--h2-t))));
  will-change: transform, filter;
}
@supports not (aspect-ratio: 21 / calc(9)) {
  /* height is already handled by 85vh */
}

.h2-reel-wrap::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(14,14,16,.12) 0%, transparent 25%, transparent 55%, rgba(14,14,16,.82) 100%);
}
.h2-reel-card{
  position:absolute; z-index:2; left:clamp(22px,3vw,48px); right:clamp(22px,3vw,48px); bottom:clamp(22px,3vw,40px);
  display:grid; grid-template-columns:1fr auto; align-items:end; gap:24px; color:#f5f1ea;
}
.h2-reel-card .h2-reel-eye{
  font-size:10px; letter-spacing:.38em; text-transform:uppercase;
  color:#d7b584; display:flex; align-items:center; gap:12px; margin-bottom:14px;
}
.h2-reel-card .h2-reel-eye::before{ content:""; width:30px; height:1px; background:#d7b584; }
.h2-reel-card h2{
  font-family:'Cormorant Garamond',serif; font-weight:300; font-style:italic;
  font-size:clamp(34px,5vw,72px); line-height:1; letter-spacing:-.012em; margin:0;
  color:#f5f1ea;
}
.h2-reel-card h2 b{ font-style:normal; font-weight:400; }
.h2-reel-card .h2-reel-sub{ margin-top:10px; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:rgba(245,241,234,.65); }
@property --h2-border-angle {
  syntax: "<angle>";
  inherits: true;
  initial-value: 0deg;
}
@keyframes h2BorderSpin {
  0% { --h2-border-angle: 0deg; opacity: 0; }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { --h2-border-angle: 360deg; opacity: 0; }
}

.h2-reel-card .h2-reel-cta{
  justify-self:end; text-decoration:none; color:#f5f1ea;
  padding:14px 26px; border:1px solid rgba(245,241,234,.3); border-radius:40px;
  font-size:11px; letter-spacing:.32em; text-transform:uppercase;
  backdrop-filter:blur(6px); transition:all .45s cubic-bezier(.19,1,.22,1);
  white-space:nowrap; display:inline-flex; align-items:center; gap:12px;
  position: relative;
  z-index: 1;
}
.h2-reel-card .h2-reel-cta::before {
  content: "";
  position: absolute;
  inset: -1px;
  padding: 1px;
  border-radius: 40px;
  background: conic-gradient(from var(--h2-border-angle), transparent 30%, rgba(215, 181, 132, 0.4) 50%, transparent 70%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.5s;
  pointer-events: none;
  z-index: -1;
}
.h2-reel-card .h2-reel-cta.is-tracing::before {
  animation: h2BorderSpin 2.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.h2-reel-card .h2-reel-cta:hover{ background:#f5f1ea; color:#0e0e10; border-color:#f5f1ea; gap:18px; }
.h2-reel-card .h2-reel-cta span{ transition:transform .4s; }
.h2-reel-card .h2-reel-cta:hover span{ transform:translateX(4px); }
.h2-reel-tag{
  position:absolute; top:clamp(22px,3vw,36px); left:clamp(22px,3vw,48px); z-index:2;
  font-size:10px; letter-spacing:.35em; text-transform:uppercase; color:rgba(245,241,234,.75);
  display:flex; align-items:center; gap:10px;
}
.h2-reel-tag .h2-dot{ width:8px; height:8px; border-radius:50%; background:#d7b584; box-shadow:0 0 12px rgba(215,181,132,.8); animation:h2pulse 2.2s ease-in-out infinite; }
@keyframes h2pulse{ 0%,100%{ opacity:.5; transform:scale(.9);} 50%{ opacity:1; transform:scale(1.2);} }
@media (max-width:780px){
  .h2-reel-card{ grid-template-columns:1fr; }
  .h2-reel-card .h2-reel-cta{ justify-self:start; }
}

/* ── editorial split ── */
.h2-split{
  display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(40px,6vw,100px);
  align-items:start; padding:clamp(60px,9vw,120px) 0;
  border-top:1px solid var(--line);
}
.h2-split > div:nth-child(2) {
  padding-top: clamp(28px, 4vw, 54px);
}
.h2-split .h2-slbl{ font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted); margin-bottom:18px; }
.h2-split h3{
  font-family:'Cormorant Garamond',serif; font-weight:300;
  font-size:clamp(40px,5.2vw,82px); line-height:.98; letter-spacing:-.015em; margin:0;
}
.h2-split h3 em{ font-style:italic; color:var(--accent); }

/* split title line-by-line clip entrance */
.h2-split-title .h2-line{ display:block; overflow:hidden; }
.h2-split-title .h2-line > span{
  display:inline-block;
  clip-path:inset(100% 0 0 0);
  transform:translateY(100%);
  transition:clip-path 1.1s cubic-bezier(.22,1,.36,1), transform 1.1s cubic-bezier(.22,1,.36,1);
}
.h2-split.is-in .h2-split-title .h2-line > span{
  clip-path:inset(0 0 0 0);
  transform:translateY(0);
}
.h2-split-title .h2-line:nth-child(1) > span{ transition-delay:0s; }
.h2-split-title .h2-line:nth-child(2) > span{ transition-delay:.14s; }
.h2-split-title .h2-line:nth-child(3) > span{ transition-delay:.28s; }

.h2-split p{ font-size:16px; line-height:1.8; color:#2b2824; font-weight:300; max-width:540px; }
.h2-split p + p{ margin-top:18px; }
.h2-split .h2-sig{
  display:inline-block; margin-top:28px; font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:18px; color:var(--ink); letter-spacing:.02em;
}
.h2-split .h2-sig::before{ content:""; display:none; }
.h2-split .h2-sig .sig-amp{
  font-size:1.15em; color:var(--accent); padding:0 2px;
}
@media (max-width:860px){ .h2-split{ grid-template-columns:1fr; } }

/* ── three service pillars ── */
.h2-pillars{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-bottom:clamp(60px,8vw,100px);
}
.h2-pillar{
  padding:clamp(32px,4vw,56px) clamp(20px,2.5vw,40px);
  border-right:1px solid var(--line);
  position:relative; transition:background .5s cubic-bezier(.19,1,.22,1);
}
.h2-pillar:last-child{ border-right:none; }
.h2-pillar:hover{ background:rgba(139,111,71,.03); }
.h2-pillar-icon{
  width:36px; height:36px; color:var(--accent); opacity:.5; margin-bottom:24px;
  transition:opacity .4s, transform .6s cubic-bezier(.19,1,.22,1);
}
.h2-pillar:hover .h2-pillar-icon{ opacity:1; transform:translateY(-4px); }
.h2-pillar-icon svg{ width:100%; height:100%; }

/* ── Featured Video Project ── */
.h2-featured-vid {
  display: block; width: 100%; 
  aspect-ratio: 16 / 9;
  max-height: 90vh;
  position: relative; overflow: hidden;
  text-decoration: none; color: #fff;
  margin-bottom: clamp(40px, 6vw, 80px);
}
.h2-feat-bgvid {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  object-fit:cover; object-position:bottom; z-index: 1; pointer-events: none;
}
.h2-featured-vid::before {
  content:""; position:absolute; top:0; left:0; width:100%; height:100%;
  background:linear-gradient(0deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.2) 100%);
  z-index:2; transition:background 0.6s cubic-bezier(.19,1,.22,1);
}
.h2-featured-vid:hover::before {
  background:linear-gradient(0deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 40%, rgba(0,0,0,0.4) 100%);
}
.h2-featured-vid > .h2-reel-tag, .h2-featured-vid > .h2-reel-card {
  z-index: 3;
}

/* Elegant Floating Typography Tag */
.h2-featured-vid > .h2-reel-tag {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(28px, 3.5vw, 36px);
  font-style: normal;
  font-weight: 300;
  letter-spacing: 0.02em;
  text-transform: none;
  background: none;
  border: none;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: rgba(255, 255, 255, 0.9);
  transition: transform 0.6s cubic-bezier(.19,1,.22,1), opacity 0.6s;
  display: block;
}
.h2-featured-vid:hover > .h2-reel-tag {
  transform: translateY(-4px);
  opacity: 1;
}

/* Scroll Reveal for individual letters */
.h2-featured-vid > .h2-reel-tag span {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px);
  clip-path: inset(0 0 100% 0);
  transition: opacity 0.8s cubic-bezier(0.19,1,0.22,1), transform 0.8s cubic-bezier(0.19,1,0.22,1), clip-path 0.8s cubic-bezier(0.19,1,0.22,1);
}
.h2-featured-vid.is-in > .h2-reel-tag span {
  opacity: 1;
  transform: translateY(0);
  clip-path: inset(-20% 0 -20% 0);
}

/* Premium Slow Blur Load for Hero Title (Quiet Consequence) */
.h2-reel-title-anim span {
  display: inline-block;
  opacity: 0;
  transform: translateY(40px) scale(0.95);
  filter: blur(8px);
  transition: opacity 1.8s cubic-bezier(0.19,1,0.22,1), 
              transform 1.8s cubic-bezier(0.19,1,0.22,1), 
              filter 1.8s cubic-bezier(0.19,1,0.22,1);
}
body:not(.site-loading) .h2-reel-wrap.is-in .h2-reel-title-anim span {
  opacity: 1; transform: translateY(0) scale(1); filter: blur(0);
}

/* Choreographed Hero Support Texts */
.h2-reel-wrap .h2-reel-eye, 
.h2-reel-wrap .h2-reel-sub, 
.h2-reel-wrap .h2-reel-cta {
  opacity: 0;
  transform: translateY(20px);
  filter: blur(5px);
  transition: opacity 1.4s cubic-bezier(0.19,1,0.22,1), 
              transform 1.4s cubic-bezier(0.19,1,0.22,1), 
              filter 1.4s cubic-bezier(0.19,1,0.22,1);
}

body:not(.site-loading) .h2-reel-wrap.is-in .h2-reel-eye { opacity: 1; transform: translateY(0); filter: blur(0); transition-delay: 0.1s; }
body:not(.site-loading) .h2-reel-wrap.is-in .h2-reel-sub { opacity: 1; transform: translateY(0); filter: blur(0); transition-delay: 1.6s; }
body:not(.site-loading) .h2-reel-wrap.is-in .h2-reel-cta { opacity: 1; transform: translateY(0); filter: blur(0); transition-delay: 1.8s; }

/* Typing text hover effect: Disappear then Rewrite */
.h2-featured-vid h2 span {
  display:inline-block; opacity:1; transform:translateY(0); clip-path:inset(-20% 0 -20% 0);
}
.h2-featured-vid:hover h2 span {
  animation: h2TypeInOut 0.9s cubic-bezier(0.19,1,0.22,1) both;
}
@keyframes h2TypeInOut {
  0%   { opacity: 1; transform: translateY(0); clip-path: inset(-20% 0 -20% 0); }
  20%  { opacity: 0; transform: translateY(-8px); clip-path: inset(100% 0 0 0); }
  21%  { opacity: 0; transform: translateY(15px); clip-path: inset(0 0 100% 0); }
  45%  { opacity: 0; transform: translateY(15px); clip-path: inset(0 0 100% 0); }
  100% { opacity: 1; transform: translateY(0); clip-path: inset(-20% 0 -20% 0); }
}
@media (max-width: 860px) {
  .h2-featured-vid:hover h2 span { animation:none; }
}

.h2-pillar-num{
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:clamp(38px,4.6vw,62px); font-weight:300; color:rgba(14,14,16,.06);
  line-height:1; margin-bottom:12px; letter-spacing:-.02em;
}
.h2-pillar h4{
  font-family:'Inter',sans-serif; font-size:13px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink);
  margin:0 0 14px;
}
.h2-pillar p{
  font-size:14px; line-height:1.75; color:var(--muted); font-weight:300; margin:0;
  max-width:300px;
}
@media (max-width:860px){
  .h2-pillars{ grid-template-columns:1fr; }
  .h2-pillar{ border-right:none; border-bottom:1px solid var(--line); }
  .h2-pillar:last-child{ border-bottom:none; }
}

/* ── latest from the journal ── */
.h2-journal{
  position:relative; overflow:hidden;
  padding:clamp(20px,3vw,40px) 0 clamp(30px,4vw,50px);
}

.jw-anim-logo .jw-stroke {
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:jwDraw 14s cubic-bezier(.77,0,.18,1) infinite;
}
.jw-anim-logo .jw-stroke:nth-child(1){ animation-delay:0s; }
.jw-anim-logo .jw-stroke:nth-child(2){ animation-delay:.5s; }
.jw-anim-logo .jw-stroke:nth-child(3){ animation-delay:.9s; }
.jw-anim-logo .jw-stroke:nth-child(4){ animation-delay:1.2s; }
.jw-anim-logo .jw-stroke:nth-child(5){ animation-delay:1.5s; }
.jw-anim-logo .jw-stroke:nth-child(6){ animation-delay:1.8s; }
.jw-anim-logo .jw-stroke:nth-child(7){ animation-delay:2.1s; }
.jw-anim-logo .jw-stroke:nth-child(8){ animation-delay:2.4s; }
.jw-anim-logo .jw-stroke:nth-child(9){ animation-delay:2.7s; }

/* watermark logo */
.h2-split-watermark{
  display:block;
  width:58px; height:auto;
  margin-top:30px;
  color:var(--ink); opacity:0.25;
  pointer-events:none;
}
/* draw-on loop: draw → hold → erase → pause → repeat */
.h2-split-watermark .jw-stroke{
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:jwDraw 14s cubic-bezier(.77,0,.18,1) infinite;
}
/* stagger each stroke within the cycle */
.h2-split-watermark .jw-stroke:nth-child(1){ animation-delay:0s; }
.h2-split-watermark .jw-stroke:nth-child(2){ animation-delay:.5s; }
.h2-split-watermark .jw-stroke:nth-child(3){ animation-delay:.9s; }
.h2-split-watermark .jw-stroke:nth-child(4){ animation-delay:1.2s; }
.h2-split-watermark .jw-stroke:nth-child(5){ animation-delay:1.5s; }
.h2-split-watermark .jw-stroke:nth-child(6){ animation-delay:1.8s; }
.h2-split-watermark .jw-stroke:nth-child(7){ animation-delay:2.1s; }
.h2-split-watermark .jw-stroke:nth-child(8){ animation-delay:2.4s; }
.h2-split-watermark .jw-stroke:nth-child(9){ animation-delay:2.7s; }

@keyframes jwDraw{
  0%   { stroke-dashoffset:1; }
  15%  { stroke-dashoffset:0; }
  45%  { stroke-dashoffset:0; }
  65%  { stroke-dashoffset:1; }
  100% { stroke-dashoffset:1; }
}
.h2-journal-head{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-bottom:clamp(18px,2.5vw,30px); padding-bottom:14px; border-bottom:1px solid var(--line);
}
.h2-journal-title{
  font-family:'Cormorant Garamond',serif; font-weight:300;
  font-size:clamp(24px,3vw,40px); line-height:1.1; letter-spacing:-.01em; margin:0;
  color:var(--ink);
}
.h2-journal-title em{ font-style:italic; color:var(--accent); }
.h2-journal-all{
  font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted);
  text-decoration:none; display:inline-flex; align-items:center; gap:8px;
  transition:color .3s, gap .4s;
}
.h2-journal-all:hover{ color:var(--ink); gap:14px; }
.h2-journal-all span{ transition:transform .4s; }
.h2-journal-all:hover span{ transform:translateX(3px); }

/* recent posts list */
.h2-journal-recent{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(20px,3vw,40px);
  margin-top:clamp(20px,3vw,40px);
  opacity:0; transform:translateY(16px);
  transition:opacity 1s cubic-bezier(.19,1,.22,1) .2s, transform 1s cubic-bezier(.19,1,.22,1) .2s;
}
.h2-journal.is-in .h2-journal-recent{ opacity:1; transform:none; }
.h2-journal-ritem{
  display:block; text-decoration:none; padding-top:20px; border-top:1px solid var(--line);
  transition:border-color .4s;
}
.h2-journal-ritem:hover{ border-color:var(--accent); }
.h2-jr-cat{
  display:flex; align-items:center; gap:8px;
  font-size:9px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted);
  margin-bottom:12px; transition:color .4s;
}
.h2-jr-cat::before{
  content:""; display:block; width:12px; height:1px; background:var(--line);
  transition:width .4s cubic-bezier(.19,1,.22,1), background .4s;
}
.h2-journal-ritem:hover .h2-jr-cat{ color:var(--accent); }
.h2-journal-ritem:hover .h2-jr-cat::before{ width:24px; background:var(--accent); }

.h2-journal-ritem h4{
  font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:300; line-height:1.35;
  color:var(--ink); margin:0; padding-left:20px;
  transition:transform .5s cubic-bezier(.19,1,.22,1), opacity .5s;
}
.h2-journal-ritem:hover h4{ transform:translateX(6px); opacity:.85; }
@media (max-width:768px){
  .h2-journal-recent{ grid-template-columns:1fr; gap:16px; margin-top:24px; }
  .h2-journal-ritem{ padding-top:16px; }
}

.h2-journal-card{
  display:grid; grid-template-columns:1fr auto; gap:clamp(30px,4vw,60px);
  align-items:center; padding:clamp(28px,3.5vw,48px);
  border:1px solid var(--line); border-radius:3px;
  text-decoration:none; color:inherit;
  background:rgba(255,255,255,.35); backdrop-filter:blur(8px);
  transition:all .5s cubic-bezier(.19,1,.22,1);
}
.h2-journal-card:hover{
  background:rgba(139,111,71,.04); border-color:var(--accent);
  box-shadow:0 20px 60px -20px rgba(139,111,71,.12);
}
.h2-journal-cat{
  font-size:10px; letter-spacing:.35em; text-transform:uppercase; color:var(--accent);
  margin-bottom:14px; display:flex; align-items:center; gap:10px;
}
.h2-journal-cat::before{ content:""; width:24px; height:1px; background:var(--accent); }
.h2-journal-card h3{
  font-family:'Cormorant Garamond',serif; font-weight:400;
  font-size:clamp(26px,3.2vw,44px); line-height:1.1; letter-spacing:-.01em;
  margin:0 0 14px; transition:color .4s;
}
.h2-journal-card:hover h3{ color:var(--accent); }
.h2-journal-card p{
  font-size:15px; line-height:1.7; color:var(--muted); font-weight:300;
  max-width:600px; margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.h2-journal-right{
  display:flex; flex-direction:column; align-items:flex-end; gap:12px; flex-shrink:0;
}
.h2-journal-date{
  font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--muted);
}
.h2-journal-read{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:14px;
  color:rgba(14,14,16,.35);
}
.h2-journal-arrow{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color:var(--muted); transition:all .5s cubic-bezier(.19,1,.22,1);
  opacity:0;
}
.h2-journal-arrow svg{ width:16px; height:16px; stroke:currentColor; stroke-width:1.2; fill:none; }
.h2-journal-card:hover .h2-journal-arrow{
  opacity:1; border-color:var(--accent); color:var(--accent); transform:rotate(-45deg);
}
@media (max-width:700px){
  .h2-journal-card{ grid-template-columns:1fr; }
  .h2-journal-right{ flex-direction:row; align-items:center; gap:20px; }
  .h2-journal-arrow{ display:none; }
}

/* ── featured 3-up grid ── */
.h2-sec-head{
  display:grid; grid-template-columns:1fr auto; align-items:end; gap:24px;
  padding-top:clamp(60px,8vw,100px); padding-bottom:22px; border-top:1px solid var(--line);
  margin-bottom:clamp(40px,5vw,60px);
}
.h2-sec-head h3{
  font-family:'Cormorant Garamond',serif; font-weight:300;
  font-size:clamp(32px,4vw,60px); margin:8px 0 0; letter-spacing:-.01em;
}
.h2-sec-head h3 em{ font-style:italic; color:var(--accent); }
.h2-sec-head .h2-seclbl{ font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted); }

/* paginated stage — Obsidian-style */
.h2-stage{ position:relative; margin-bottom:clamp(30px,4vw,50px); }
.h2-stage-inner{ position:relative; }
.h2-feat{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(20px,2.5vw,32px);
  position:absolute; inset:0;
  opacity:0; pointer-events:none;
  transition:opacity .65s cubic-bezier(.19,1,.22,1);
}
.h2-feat.is-active{ opacity:1; pointer-events:auto; z-index:2; }
.h2-feat .h2-feat-item{
  opacity:0; transform:scale(0.5);
  transition: opacity 1.2s cubic-bezier(.19,1,.22,1), transform 1.2s cubic-bezier(.19,1,.22,1);
  transition-delay: calc(var(--i, 0) * 120ms);
}
.h2-stage.is-in .h2-feat.is-active .h2-feat-item{ opacity:1; transform:scale(1); }
.h2-feat.is-leaving .h2-feat-item{
  opacity:0; transform:scale(0.8) translateY(-20px);
  transition: opacity .45s ease, transform .6s cubic-bezier(.4,0,.2,1);
  transition-delay: calc(var(--i, 0) * 50ms);
}

/* numbered pager */
.h2-pager{
  display:flex; justify-content:center; align-items:center; gap:clamp(10px,1.5vw,18px);
  margin:clamp(20px,3vw,40px) 0 clamp(50px,7vw,80px);
}
.h2-pager button{
  all:unset; cursor:pointer;
  min-width:clamp(54px,5vw,72px); padding:clamp(14px,1.4vw,18px) clamp(18px,2vw,26px);
  font-family:'Inter',sans-serif; font-size:13px; font-weight:400; color:var(--ink);
  background:rgba(14,14,16,.04); border-radius:10px; text-align:center;
  transition: background .5s cubic-bezier(.19,1,.22,1), color .4s, transform .5s;
  letter-spacing:.02em;
}
.h2-pager button:hover{ background:rgba(14,14,16,.09); }
.h2-pager button.is-on{ background:#fff; color:var(--ink); box-shadow:0 8px 28px -12px rgba(14,14,16,.25); }
.h2-pager button:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.h2-feat-item{
  position:relative; text-decoration:none; color:inherit; overflow:hidden;
  background:#1a1a1c; border-radius:2px; aspect-ratio:4/5;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.4);
}
.h2-feat-item img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.02); transition:transform 1.6s cubic-bezier(.19,1,.22,1), filter .8s; filter:saturate(.9); }
.h2-feat-item:hover img{ transform:scale(1.08); filter:saturate(1.05); }
.h2-feat-item::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(14,14,16,.78) 100%); pointer-events:none; }
.h2-feat-meta{
  position:absolute; left:22px; right:22px; bottom:22px; z-index:2; color:#f5f1ea;
}
.h2-feat-meta .h2-feat-cat{
  font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:#d7b584; margin-bottom:8px;
}
.h2-feat-meta h4{
  font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(22px,2.2vw,30px); line-height:1.1; margin:0;
  color:#f5f1ea;
}
.h2-feat-meta .h2-feat-sub{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-size:14px; color:rgba(245,241,234,.7);
  margin-top:6px;
}
.h2-feat-item .h2-feat-arrow{
  position:absolute; top:18px; right:18px; z-index:2;
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(245,241,234,.3);
  display:flex; align-items:center; justify-content:center; color:#f5f1ea;
  transition: all .5s cubic-bezier(.19,1,.22,1);
}
.h2-feat-item:hover .h2-feat-arrow{ border-color:#d7b584; color:#d7b584; transform:rotate(-45deg); }
.h2-feat-item .h2-feat-arrow svg{ width:14px; height:14px; stroke:currentColor; stroke-width:1.2; fill:none; }
@media (max-width:860px){ .h2-feat{ grid-template-columns:1fr; } .h2-feat-item{ aspect-ratio:16/10; } }

.h2-more{ margin-top:10px; text-align:center; }
.h2-more a{
  display:inline-flex; align-items:center; gap:14px;
  padding:16px 32px; border:1px solid var(--ink); border-radius:40px;
  font-size:11px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--ink); text-decoration:none;
  transition:all .5s cubic-bezier(.19,1,.22,1);
}
.h2-more a:hover{ background:var(--ink); color:var(--paper); gap:22px; }
.h2-more a span{ transition:transform .4s; }
.h2-more a:hover span{ transform:translateX(4px); }

/* ── CTA band ── */
.h2-cta{
  position:relative; padding:clamp(70px,9vw,120px) clamp(30px,5vw,80px);
  margin-top:clamp(80px,10vw,140px); margin-bottom:clamp(60px,8vw,100px);
  background:var(--ink); color:var(--paper); border-radius:3px;
  display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:clamp(30px,5vw,80px);
  box-shadow:0 60px 160px -40px rgba(0,0,0,.5);
}
.h2-cta::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, rgba(215,181,132,.55), transparent); }
.h2-cta h3{ font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(32px,4.4vw,64px); line-height:1; letter-spacing:-.015em; margin:0 0 20px; color:var(--paper); }
.h2-cta h3 em{ font-style:italic; color:#d7b584; }
.h2-cta p{ font-size:15px; line-height:1.75; color:rgba(245,241,234,.7); font-weight:300; max-width:460px; margin:0; }
.h2-cta .h2-cta-btns{ display:flex; gap:16px; flex-wrap:wrap; justify-self:end; }
.h2-cta .h2-cta-btn{
  text-decoration:none; padding:16px 28px; border-radius:40px; font-size:11px; letter-spacing:.32em; text-transform:uppercase;
  transition:all .45s cubic-bezier(.19,1,.22,1); white-space:nowrap;
}
.h2-cta .h2-cta-btn.primary{ background:var(--paper); color:var(--ink); }
.h2-cta .h2-cta-btn.primary:hover{ background:#d7b584; color:var(--ink); }
.h2-cta .h2-cta-btn.ghost{ border:1px solid rgba(245,241,234,.3); color:var(--paper); }
.h2-cta .h2-cta-btn.ghost:hover{ border-color:var(--paper); background:rgba(245,241,234,.08); }
@media (max-width:900px){ .h2-cta{ grid-template-columns:1fr; } .h2-cta .h2-cta-btns{ justify-self:start; } }

/* ── closing ── */
.h2-close{ text-align:center; padding:clamp(60px,8vw,100px) 0 20px; border-top:1px solid var(--line); }
.h2-close p{ font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(22px,2.4vw,30px); color:#2b2824; max-width:640px; margin:0 auto 30px; line-height:1.45; font-weight:300; }
.h2-close .h2-close-links{ display:flex; justify-content:center; gap:36px; flex-wrap:wrap; font-size:10px; letter-spacing:.3em; text-transform:uppercase; }
.h2-close .h2-close-links a{ color:var(--ink); text-decoration:none; border-bottom:1px solid transparent; padding-bottom:3px; transition:border-color .3s; }
.h2-close .h2-close-links a:hover{ border-color:var(--ink); }

/* reveal */
.h2-reveal{ 
  opacity:0; 
  transform:translate3d(0, 24px, 0); 
  transition:opacity 1s cubic-bezier(.19,1,.22,1), transform 1s cubic-bezier(.19,1,.22,1); 
  will-change: opacity, transform;
}
body:not(.site-loading) .h2-reveal.is-in{ 
  opacity:1; 
  transform:translate3d(0, 0, 0); 
}

/* pillar stagger: each card scales up from small + slight rotate, fades in with a cascade delay */
.h2-pillar.h2-reveal{
  opacity:0;
  transform:translate3d(0, 50px, 0) scale(0.92) rotate(-1.5deg);
  will-change: opacity, transform;
  transition:
    opacity 1s cubic-bezier(.19,1,.22,1) calc(var(--stagger, 0) * 180ms),
    transform 1.2s cubic-bezier(.19,1,.22,1) calc(var(--stagger, 0) * 180ms);
}
body:not(.site-loading) .h2-pillar.h2-reveal.is-in{
  opacity:1;
  transform:translate3d(0, 0, 0) scale(1) rotate(0deg);
}

/* journal card: wider slide-up with blur clear */
.h2-journal.h2-reveal{
  opacity:0;
  transform:translate3d(0, 40px, 0) scale(0.97);
  filter:blur(6px);
  will-change: opacity, transform, filter;
  transition:
    opacity 1.1s cubic-bezier(.19,1,.22,1) 0.1s,
    transform 1.3s cubic-bezier(.19,1,.22,1) 0.1s,
    filter 1s cubic-bezier(.19,1,.22,1) 0.1s;
}
body:not(.site-loading) .h2-journal.h2-reveal.is-in{
  opacity:1;
  transform:translate3d(0, 0, 0) scale(1);
  filter:blur(0);
}

/* ── Premium Fullscreen Search Overlay ── */
.vpaa-search-overlay {
  position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
  z-index: 99999;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none; opacity: 0; visibility: hidden;
  transition: opacity 0.6s cubic-bezier(0.19,1,0.22,1), visibility 0.6s step-end;
}
.vpaa-search-overlay.is-active {
  pointer-events: all; opacity: 1; visibility: visible;
  transition: opacity 0.6s cubic-bezier(0.19,1,0.22,1), visibility 0s step-start;
}
.vpaa-search-bg-close {
  position: absolute; top:0; left:0; width:100%; height:100%;
  background: url('../images/portfolio/private-apartment-dv-interior-residential-montenegro-cover.jpg') center/cover;
  cursor: zoom-out;
}
.vpaa-search-bg-close::before {
  content:""; position:absolute; top:0; left:0; width:100%; height:100%;
  background: rgba(245, 241, 234, 0.88);
  backdrop-filter: blur(28px) saturate(1.1);
  -webkit-backdrop-filter: blur(28px) saturate(1.1);
}
.vpaa-search-close {
  position: absolute; top: clamp(30px, 4vw, 50px); right: clamp(30px, 4vw, 60px);
  background: none; border: none; color: #0e0e10; cursor: pointer;
  width: 50px; height: 50px; display: flex; align-items: center; justify-content: center;
  z-index: 2; transition: transform 0.4s cubic-bezier(0.19,1,0.22,1); opacity: 0.6;
}
.vpaa-search-close svg { width: 34px; height: 34px; }
.vpaa-search-close:hover { transform: rotate(90deg); opacity: 1; }

.vpaa-search-content {
  position: relative; z-index: 2; width: 100%; max-width: 1000px;
  padding: 0 clamp(20px, 5vw, 40px);
  transform: translateY(30px) scale(0.98); opacity: 0;
  transition: transform 0.7s cubic-bezier(0.19,1,0.22,1) 0.1s, opacity 0.7s 0.1s;
}
.vpaa-search-overlay.is-active .vpaa-search-content {
  transform: translateY(0) scale(1); opacity: 1;
}

.vpaa-search-label {
  font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 0.35em;
  color: var(--accent); text-transform: uppercase; margin-bottom: 24px;
}
.vpaa-search-form {
  position: relative; width: 100%; border-bottom: 1px solid rgba(14,14,16,0.15);
  display: flex; align-items: center; transition: border-color 0.4s;
}
.vpaa-search-form:focus-within { border-color: rgba(14, 14, 16, 0.8); }

.vpaa-search-input {
  width: 100%; background: none; border: none; outline: none;
  font-family: 'Cormorant Garamond', serif; font-size: clamp(40px, 6vw, 84px);
  font-style: italic; font-weight: 300; color: #0e0e10; padding: 10px 0 20px;
  line-height: 1.1;
}
.vpaa-search-input::placeholder { color: rgba(14,14,16,0.25); }

.vpaa-search-submit {
  background: none; border: none; color: #0e0e10; cursor: pointer;
  padding: 10px; opacity: 0.4; transition: opacity 0.4s, transform 0.4s;
}
.vpaa-search-submit svg { width: 44px; height: 44px; }
.vpaa-search-submit:hover { opacity: 1; transform: translateX(4px); }

.vpaa-search-suggestions {
  margin-top: 36px; display: flex; align-items: center; flex-wrap: wrap; gap: clamp(14px, 2vw, 24px);
  font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase;
}
.vpaa-search-suggestions span { color: rgba(14,14,16,0.5); padding-right: 10px; }
.vpaa-search-suggestions a {
  color: #0e0e10; text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid transparent; opacity: 0.8;
  transition: border-color 0.4s, opacity 0.4s;
}
.vpaa-search-suggestions a:hover { border-color: #8b6f47; opacity: 1; color: #8b6f47; }