/* ═══════════════════════════════════════════
   DELTA INTERIOR  ·  style.css
   ═══════════════════════════════════════════ */

   :root {
    --gold:       #C9A96E;
    --gold-lt:    #E8D5B0;
    --gold-dk:    #A07840;
    --dark:       #080807;
    --dark2:      #111110;
    --dark3:      #1A1916;
    --mid:        #2C2B28;
    --text:       #EAE5DC;
    --muted:      #7A7570;
    --serif:      'Cormorant Garamond', Georgia, serif;
    --sans:       'Montserrat', system-ui, sans-serif;
    --ease:       cubic-bezier(0.16, 1, 0.3, 1);
  }
  
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { font-size: 16px; scroll-behavior: auto; }
  
  body {
    background: var(--dark);
    color: var(--text);
    font-family: var(--sans);
    font-weight: 300;
    overflow-x: hidden;
  }
  
  /* ── CUSTOM CURSOR ── */
  #cursor-dot, #cursor-ring {
    position: fixed; border-radius: 50%;
    pointer-events: none; z-index: 9999;
    transform: translate(-50%,-50%);
    transition: opacity .3s;
  }
  #cursor-dot  { width:8px; height:8px; background:var(--gold); }
  #cursor-ring { width:38px; height:38px; border:1px solid rgba(201,169,110,.45); transition: width .35s var(--ease), height .35s var(--ease); }
  body.ch #cursor-ring { width:56px; height:56px; }
  
  /* ── LOADER ── */
  #loader {
    position: fixed; inset:0; z-index:10000;
    background:var(--dark);
    display:flex; align-items:center; justify-content:center;
  }
  .loader-inner { text-align:center; }
  .loader-logo  { font-family:var(--serif); font-size:5rem; color:var(--gold); opacity:0; animation:fadeUp .8s .2s var(--ease) forwards; }
  .loader-text  { font-size:.65rem; letter-spacing:.4em; color:var(--muted); margin-top:.5rem; opacity:0; animation:fadeUp .8s .5s var(--ease) forwards; }
  .loader-bar   { width:160px; height:1px; background:var(--mid); margin:1.5rem auto 0; overflow:hidden; opacity:0; animation:fadeUp .6s .7s var(--ease) forwards; }
  .loader-fill  { height:100%; background:var(--gold); animation:fillW 2s .9s var(--ease) forwards; }
  @keyframes fillW  { to { width:100%; } }
  @keyframes fadeUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
  
  /* ── NAVBAR ── */
  #navbar {
    position:fixed; top:0; left:0; right:0; z-index:1000;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.5rem 3rem;
    transition: background .4s, backdrop-filter .4s, padding .3s, border-color .4s;
    border-bottom:1px solid transparent;
  }
  #navbar.scrolled {
    background:rgba(8,8,7,.82);
    backdrop-filter:blur(18px);
    padding:1rem 3rem;
    border-color:rgba(201,169,110,.1);
  }
  .nav-logo { display:flex; align-items:center; gap:.6rem; cursor:pointer; }
  .logo-img  { height:36px; width:auto; object-fit:contain; border-radius:8px; border:1px solid rgba(201,169,110,.45); box-shadow:0 0 12px rgba(201,169,110,.15), inset 0 1px 0 rgba(255,255,255,.08); padding:2px; }
  .logo-text { font-size:.6rem; letter-spacing:.3em; color:var(--muted); font-weight:400; }
  .nav-links  { display:flex; gap:2.5rem; list-style:none; }
  .nav-links a {
    color:var(--muted); text-decoration:none;
    font-size:.65rem; letter-spacing:.15em; font-weight:500; text-transform:uppercase;
    transition:color .3s; position:relative;
  }
  .nav-links a::after {
    content:''; position:absolute; bottom:-4px; left:0; right:0;
    height:1px; background:var(--gold);
    transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
  }
  .nav-links a:hover { color:var(--text); }
  .nav-links a:hover::after { transform:scaleX(1); }
  .nav-links a.active { color:var(--gold); font-weight:700; }
  .btn-nav {
    display:inline-block; padding:.55rem 1.3rem;
    border:1px solid var(--gold); color:var(--gold);
    text-decoration:none; font-size:.6rem; letter-spacing:.15em;
    font-weight:500; text-transform:uppercase;
    transition:background .3s, color .3s;
  }
  .btn-nav:hover { background:var(--gold); color:var(--dark); }
  .nav-burger {
    display:none; flex-direction:column; gap:5px;
    background:none; border:none; cursor:pointer; padding:4px;
  }
  .nav-burger span { display:block; width:22px; height:1px; background:var(--text); transition:all .3s; }
  .mobile-menu {
    position:fixed; inset:0; z-index:999;
    background:var(--dark);
    display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .4s;
  }
  .mobile-menu.open { opacity:1; pointer-events:all; }
  .mobile-menu ul   { list-style:none; text-align:center; }
  .mobile-menu li   { margin:1.5rem 0; }
  .mobile-menu a    { font-family:var(--serif); font-size:3rem; color:var(--text); text-decoration:none; transition:color .3s; }
  .mobile-menu a:hover { color:var(--gold); }
  
  /* ══════════════════════════════════════════
     FIXED STAGE
  ══════════════════════════════════════════ */
  #stage {
    position: fixed;
    inset: 0;
    z-index: 1;
    overflow: hidden;
  }
  
  /* Video fills stage */
  #scroll-video {
    position:absolute; inset:0;
    width:100%; height:100%; object-fit:cover;
    z-index:1;
  }
  
  /* ── CSS PLACEHOLDER (no video) ── */
  #placeholder {
    position:absolute; inset:0; z-index:2;
    display:flex; align-items:flex-end; justify-content:center;
    overflow:hidden;
  }
  .ph-bg {
    position:absolute; inset:0;
    background: radial-gradient(ellipse at 50% 60%, #1a1208 0%, #070604 55%, #020201 100%);
  }
  .ph-building {
    position:relative; width:520px; z-index:2;
    display:flex; flex-direction:column; align-items:center;
  }
  .ph-sign {
    font-family:var(--serif); font-size:1.1rem; letter-spacing:.35em;
    color:rgba(201,169,110,.35); padding:.8rem 2.5rem;
    border:1px solid rgba(201,169,110,.1);
    background:rgba(0,0,0,.4); margin-bottom:0; width:100%; text-align:center;
  }
  .ph-windows {
    display:flex; gap:80px; padding:2rem 3rem 1.5rem;
    width:100%; justify-content:center;
    background:linear-gradient(180deg,#1a1408,#221b0a);
    border-left:1px solid rgba(201,169,110,.12);
    border-right:1px solid rgba(201,169,110,.12);
  }
  .ph-win {
    width:70px; height:110px;
    background:rgba(201,169,110,.05);
    border:1px solid rgba(201,169,110,.18);
    position:relative;
  }
  .ph-win::before { content:''; position:absolute; top:0; bottom:0; left:50%; width:1px; background:rgba(201,169,110,.15); }
  .ph-win::after  { content:''; position:absolute; left:0; right:0; top:50%; height:1px; background:rgba(201,169,110,.15); }
  .ph-door-frame {
    width:155px; height:240px;
    border:1px solid rgba(201,169,110,.3);
    position:relative; overflow:hidden;
    display:flex;
    background:#0a0804;
    flex-shrink:0;
  }
  .ph-door {
    width:50%; height:100%;
    background:linear-gradient(160deg,#2a1e0c,#1a1208);
    position:relative; will-change:transform;
    transition:transform 1.4s var(--ease);
  }
  .ph-door-l { transform-origin:left center; }
  .ph-door-r { transform-origin:right center; }
  .door-open .ph-door-l { transform:perspective(500px) rotateY(-78deg); }
  .door-open .ph-door-r { transform:perspective(500px) rotateY(78deg); }
  .ph-door-handle {
    position:absolute; top:50%; z-index:3;
    width:10px; height:10px; border-radius:50%;
    background:var(--gold); transform:translateY(-50%);
  }
  .ph-door-handle-l { left:calc(50% - 14px); }
  .ph-door-handle-r { left:calc(50% + 4px); }
  .ph-ground {
    width:100%; height:40px;
    background:linear-gradient(180deg,#0d0c08,#050503);
    border-left:1px solid rgba(201,169,110,.08);
    border-right:1px solid rgba(201,169,110,.08);
  }
  .ph-vignette {
    position:absolute; inset:0; z-index:3;
    background: linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.2) 60%,rgba(0,0,0,.85) 100%),
                radial-gradient(ellipse at 50% 45%,transparent 20%,rgba(0,0,0,.75) 100%);
    pointer-events:none;
  }
  .stage-vignette {
    position:absolute; inset:0; z-index:4;
    background: rgba(0,0,0,.45);
    pointer-events:none;
  }
  
  /* ══════════════════════════════════════════
     OVERLAY PANELS
  ══════════════════════════════════════════ */
  .overlay {
    position:absolute; inset:0; z-index:10;
    display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none;
  }
  .overlay.active { pointer-events:all; }
  
  /* Each overlay gets its own full-coverage dark backing */
  .overlay::before {
    content:'';
    position:absolute; inset:0;
    background: linear-gradient(135deg, rgba(5,4,3,.88) 0%, rgba(8,7,5,.72) 50%, rgba(5,4,3,.88) 100%);
    z-index:0;
  }
  .ov-inner {
    position:relative; z-index:1;
    width:100%; max-width:1360px;
    padding:6rem 4rem 3rem;
  }
  
  /* Hero overlay is full-dark at bottom, transparent at top to show scene */
  #ov-hero::before {
    background: linear-gradient(180deg,
      rgba(0,0,0,.15) 0%,
      rgba(0,0,0,.35) 30%,
      rgba(5,4,3,.82) 65%,
      rgba(5,4,3,.95) 100%);
  }
  
  /* ── SHARED ── */
  .label-tag {
    display:inline-block; align-self:flex-start;
    font-size:.58rem; letter-spacing:.38em; font-weight:500; text-transform:uppercase;
    color:var(--gold); border:1px solid rgba(201,169,110,.28);
    padding:.3rem .75rem; margin-bottom:1rem;
  }
  .btn-primary {
    display:inline-flex; align-items:center; gap:.5rem;
    padding:.7rem 1.4rem;
    background:var(--gold); color:var(--dark);
    font-size:.6rem; letter-spacing:.14em; font-weight:600; text-transform:uppercase;
    text-decoration:none; border:none; cursor:pointer;
    transition:background .3s, transform .3s;
    width:fit-content;
  }
  .btn-primary:hover { background:var(--gold-lt); transform:translateY(-2px); }
  .btn-primary.full  { width:100%; justify-content:center; }
  .btn-ghost {
    display:inline-block; padding:.7rem 1.4rem;
    border:1px solid rgba(232,213,176,.3); color:var(--text);
    font-size:.6rem; letter-spacing:.14em; font-weight:500; text-transform:uppercase;
    text-decoration:none; transition:border-color .3s, background .3s;
    width:fit-content;
  }
  .btn-ghost:hover { border-color:var(--gold); background:rgba(201,169,110,.08); }
  .btn-outline {
    display:inline-block; margin-top:1.8rem;
    padding:.65rem 1.5rem;
    background:transparent;
    border:1px solid rgba(201,169,110,.35); color:var(--gold);
    font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
    text-decoration:none; transition:background .3s;
    cursor:pointer; font-family:var(--sans);
  }
  .btn-outline:hover { background:rgba(201,169,110,.1); }
  
  /* ══════════════════════════════════════════
     HERO  (#ov-hero)
  ══════════════════════════════════════════ */
  .hero-inner {
    display:flex; flex-direction:column; justify-content:flex-end;
    min-height:100vh; padding-top:7rem; padding-bottom:8rem;
  }
  .hero-badge {
    display:flex; align-items:center; gap:1rem;
    font-size:.58rem; letter-spacing:.35em; color:var(--gold); text-transform:uppercase;
    margin-bottom:1.5rem; margin-top:4rem;
  }
  .hb-line { flex:0 0 38px; height:1px; background:rgba(201,169,110,.4); }
  .hero-title {
    font-family:var(--serif); font-weight:300;
    font-size:clamp(3rem,6.5vw,6.5rem);
    line-height:.92; color:var(--text);
    margin-bottom:1.5rem;
  }
  .hero-title span  { display:block; }
  .hero-title em    { display:block; font-style:italic; color:var(--gold-lt); }
  .hero-title strong{ display:block; font-weight:300; color:var(--gold); }
  .hero-sub { font-size:.95rem; color:var(--muted); max-width:440px; line-height:1.9; margin-bottom:2.5rem; }
  .hero-actions { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.5rem; }
  .scroll-hint {
    position:absolute; bottom:4rem; right:4rem;
    display:flex; align-items:center; gap:.8rem;
    z-index:2;
  }
  .sh-line {
    width:48px; height:1px;
    background:linear-gradient(90deg,rgba(201,169,110,.7),transparent);
    animation:pulse 2s infinite;
  }
  .scroll-hint span { font-size:.54rem; letter-spacing:.28em; color:var(--muted); text-transform:uppercase; }
  @keyframes pulse { 0%,100%{opacity:.3;transform:scaleX(.7)} 50%{opacity:1;transform:scaleX(1)} }
  
  /* ══════════════════════════════════════════
     ENTRY  (#ov-entry)
  ══════════════════════════════════════════ */
  .entry-inner {
    display:grid; grid-template-columns:1fr 1fr;
    gap:4rem; align-items:center; min-height:100vh;
    padding-top:7rem;
  }
  .entry-text h2 {
    font-family:var(--serif); font-weight:300;
    font-size:clamp(2.5rem,5vw,4.8rem); line-height:1.12; margin-bottom:1.2rem;
  }
  .entry-text h2 em { font-style:italic; color:var(--gold); }
  .entry-text p  { color:var(--muted); line-height:1.9; }
  .entry-stats   { display:flex; flex-direction:column; gap:2.5rem; }
  .stat          { display:flex; align-items:baseline; gap:.3rem; flex-wrap:wrap; }
  .stat-num      { font-family:var(--serif); font-size:3.8rem; font-weight:300; color:var(--gold); line-height:1; }
  .stat > .stat-plus { font-family:var(--serif); font-size:2rem; color:var(--gold); }
  .stat-label    { font-size:.6rem; letter-spacing:.2em; color:var(--muted); text-transform:uppercase; width:100%; }
  
  /* ══════════════════════════════════════════
     GALLERY  (#ov-gallery)
  ══════════════════════════════════════════ */
  #ov-gallery .ov-inner { padding-top:89px; padding-bottom:0; height:100%; display:flex; align-items:center; box-sizing:border-box; }
  #ov-gallery::before { background:linear-gradient(135deg,rgba(5,4,3,.95) 0%,rgba(8,7,5,.88) 50%,rgba(5,4,3,.95) 100%); }
  
  .gallery-inner {
    display:grid;
    grid-template-columns: 280px 1fr;
    gap:2rem;
    align-items:center;
    width:100%;
    min-width:0;
    height:100%;
  }
  
  /* — Info column — */
  .gallery-info {
    display:flex; flex-direction:column; gap:.8rem;
    background:rgba(5,4,3,.55);
    backdrop-filter:blur(24px) saturate(150%);
    -webkit-backdrop-filter:blur(24px) saturate(150%);
    border:1px solid rgba(201,169,110,.15);
    border-radius:16px;
    padding:1.4rem 1.6rem;
    box-shadow:0 8px 40px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
  }
  .gallery-info h2 {
    font-family:var(--serif); font-size:clamp(1.6rem,2.5vw,2.4rem);
    font-weight:300; line-height:1.05; color:#fff;
  }
  .gallery-info h2 em { font-style:italic; color:var(--gold); }
  .gallery-sub {
    font-size:.68rem; color:var(--muted); line-height:1.7;
    letter-spacing:.04em; max-width:28ch;
  }
  .gallery-stats {
    display:flex; flex-direction:column; gap:.8rem;
    border-left:1px solid rgba(201,169,110,.25); padding-left:1.2rem;
  }
  .gstat { display:flex; flex-direction:column; gap:.1rem; }
  .gstat-num {
    font-family:var(--serif); font-size:1.4rem; font-weight:300;
    color:var(--gold); line-height:1;
  }
  .gstat-label { font-size:.52rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
  .gal-cta { align-self:flex-start; margin-top:.4rem; }
  
  /* — Entry & float keyframes — */
  @keyframes gp-in {
    from { opacity:0; translate:0 55px; scale:.88; filter:blur(4px); }
    to   { opacity:1; translate:0 0;    scale:1;   filter:blur(0); }
  }
  @keyframes gp-float-a {
    0%,100% { translate:0 0; }
    50%     { translate:0 -13px; }
  }
  @keyframes gp-float-b {
    0%,100% { translate:0 0; }
    50%     { translate:0 -9px; }
  }
  @keyframes gp-float-c {
    0%,100% { translate:0 0; }
    50%     { translate:0 -16px; }
  }
  @keyframes gp-shimmer {
    0%   { background-position:-200% 0; }
    100% { background-position:200% 0; }
  }
  
  /* — Scattered glass palette cards — */
  .gp-stage {
    position:relative;
    width:100%;
    height:640px;
    min-width:0;
    overflow:visible;
    counter-reset: gp-num;
  }
  
  .gp-card {
    position:absolute;
    border-radius:20px;
    background:rgba(12,10,8,.55);
    backdrop-filter:blur(28px) saturate(180%) brightness(1.08);
    -webkit-backdrop-filter:blur(28px) saturate(180%) brightness(1.08);
    border:1px solid rgba(255,255,255,.13);
    box-shadow:
      0 16px 48px rgba(0,0,0,.65),
      0 4px 12px rgba(0,0,0,.4),
      inset 0 1px 0 rgba(255,255,255,.14),
      inset 0 -1px 0 rgba(0,0,0,.3);
    overflow:hidden;
    cursor:pointer;
    opacity:0;
    animation: gp-in .75s cubic-bezier(.16,1,.3,1) var(--gp-delay,0s) both;
    transition: box-shadow .5s cubic-bezier(.16,1,.3,1), border-color .5s, outline-color .5s;
    will-change: transform, opacity, translate;
    outline: 1px solid transparent;
  }
  .gp-card:hover {
    transform: var(--gp-rot,rotate(0deg)) !important;
    translate: 0 -14px !important;
    scale: 1.05 !important;
    box-shadow:
      0 36px 72px rgba(0,0,0,.8),
      0 0 0 1.5px rgba(201,169,110,.55),
      0 0 60px rgba(201,169,110,.15),
      inset 0 1px 0 rgba(255,255,255,.22);
    border-color: rgba(201,169,110,.55);
    outline-color: rgba(201,169,110,.18);
    z-index: 20;
    animation-play-state: paused;
  }
  
  /* shine sweep on hover */
  .gp-shine {
    position:absolute; inset:0; z-index:3; pointer-events:none;
    background: linear-gradient(
      115deg,
      transparent 30%,
      rgba(255,255,255,.13) 50%,
      transparent 70%
    );
    background-size:200% 100%;
    border-radius:inherit;
    opacity:0;
    transition:opacity .4s;
  }
  .gp-card:hover .gp-shine {
    opacity:1;
    animation: gp-shimmer 1s ease forwards;
  }
  
  /* gold accent bar at top of each card */
  .gp-card::before {
    content:'';
    position:absolute; top:0; left:0; right:0; height:2px; z-index:5;
    background:linear-gradient(90deg, transparent, rgba(201,169,110,.7), transparent);
    opacity:0;
    transition:opacity .5s;
  }
  .gp-card:hover::before { opacity:1; }
  
  .gp-inner { display:flex; flex-direction:column; height:100%; }
  
  .gp-swatch {
    flex:1;
    aspect-ratio:4/3;
    min-height:180px;
    position:relative;
  }
  .gp-swatch::after { content:''; }
  
  .gp-card::after {
    counter-increment: gp-num;
    content: counter(gp-num);
    position:absolute; bottom:10px; right:10px; z-index:6;
    width:22px; height:22px; border-radius:50%;
    background:rgba(5,4,3,.78);
    border:1px solid rgba(201,169,110,.55);
    display:flex; align-items:center; justify-content:center;
    font-size:.56rem; font-weight:700; letter-spacing:0;
    color:rgba(201,169,110,1);
    line-height:22px; text-align:center;
  }
  
  .gp-meta { display:none; }
  
  /* — Card positions, sizes, rotations — */
  .gp-c1 { top:65px;  left:1%;   width:248px; transform:rotate(-5.5deg); --gp-rot:rotate(-5.5deg); z-index:3; --gp-delay:.05s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .05s both, gp-float-b 5.5s ease-in-out 1s infinite; }
  .gp-c2 { top:43px;  left:23%;  width:285px; transform:rotate(2.5deg);  --gp-rot:rotate(2.5deg);  z-index:6; --gp-delay:.12s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .12s both, gp-float-a 4.8s ease-in-out 1.5s infinite; }
  .gp-c3 { top:55px;  left:51%;  width:252px; transform:rotate(-3.5deg); --gp-rot:rotate(-3.5deg); z-index:4; --gp-delay:.2s;  animation: gp-in .75s cubic-bezier(.16,1,.3,1) .2s  both, gp-float-c 6.2s ease-in-out 0.8s infinite; }
  .gp-c4 { top:365px; left:4%;   width:255px; transform:rotate(4.5deg);  --gp-rot:rotate(4.5deg);  z-index:2; --gp-delay:.28s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .28s both, gp-float-a 5.2s ease-in-out 2s   infinite; }
  .gp-c5 { top:375px; left:29%;  width:270px; transform:rotate(-1.5deg); --gp-rot:rotate(-1.5deg); z-index:7; --gp-delay:.36s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .36s both, gp-float-b 4.5s ease-in-out 1.2s infinite; }
  .gp-c6 { top:353px; left:57%;  width:250px; transform:rotate(5deg);    --gp-rot:rotate(5deg);    z-index:3; --gp-delay:.44s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .44s both, gp-float-c 5.8s ease-in-out 0.5s infinite; }
  .gp-c7 { top:59px;  left:75%;  width:218px; transform:rotate(4deg);    --gp-rot:rotate(4deg);    z-index:5; --gp-delay:.18s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .18s both, gp-float-a 6s   ease-in-out 1.8s infinite; }
  .gp-c8 { top:220px; left:80%;  width:235px; transform:rotate(-2.5deg); --gp-rot:rotate(-2.5deg); z-index:8; --gp-delay:.32s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .32s both, gp-float-b 5s   ease-in-out 0.9s infinite; }
  .gp-c9 { top:410px; left:77%;  width:218px; transform:rotate(3.5deg);  --gp-rot:rotate(3.5deg);  z-index:4; --gp-delay:.48s; animation: gp-in .75s cubic-bezier(.16,1,.3,1) .48s both, gp-float-c 4.7s ease-in-out 1.6s infinite; }
  
  /* Responsive fallback */
  @media (max-width:900px) {
    .gp-stage { height:380px; }
    .gp-c1,.gp-c2,.gp-c3,.gp-c4,.gp-c5,.gp-c6 { width:145px; }
    .gp-c7,.gp-c8,.gp-c9 { width:135px; }
    .gp-c3 { left:56%; } .gp-c6 { left:62%; }
  }
  
  /* ══════════════════════════════════════════
     JOURNAL  (#ov-blog) — portfolio grid style
  ══════════════════════════════════════════ */
  .blog-inner  { min-height:100vh; display:flex; align-items:center; }
  .journal-wrap { display:grid; grid-template-columns:280px 1fr; gap:5rem; align-items:start; width:100%; }
  .blog-meta h2  { font-family:var(--serif); font-size:clamp(2rem,3.5vw,3.5rem); font-weight:300; line-height:1.2; margin-bottom:1rem; }
  .blog-meta h2 em { font-style:italic; color:var(--gold); }
  .blog-meta p   { color:var(--muted); line-height:1.85; margin-bottom:1.8rem; }

  /* filter tabs */
  .jf-tabs {
    display:flex; flex-wrap:nowrap; gap:.5rem; margin-bottom:1.4rem;
    overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .jf-tabs::-webkit-scrollbar { display:none; }
  .jf-tab  {
    background:none; border:1px solid rgba(201,169,110,.2);
    color:var(--muted); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase;
    padding:.38rem .9rem; border-radius:50px; cursor:pointer; flex-shrink:0;
    transition:background .22s, border-color .22s, color .22s;
  }
  .jf-tab:hover  { border-color:rgba(201,169,110,.5); color:#e8e0d4; }
  .jf-tab.active { background:var(--gold); border-color:var(--gold); color:#0d0c0a; font-weight:600; }

  /* scrollable right column */
  .journal-right {
    max-height: calc(100vh - 200px);
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: .3rem;
    scroll-behavior: smooth;
  }
  .journal-right::-webkit-scrollbar { width: 2px; }
  .journal-right::-webkit-scrollbar-track { background: transparent; }
  .journal-right::-webkit-scrollbar-thumb { background: rgba(201,169,110,.25); border-radius: 2px; }

  /* card grid — 1 per row, full width */
  .journal-grid { display:grid; grid-template-columns:1fr; gap:1.4rem; }

  /* individual card — slides in from right when it enters the scroll viewport */
  .jj-card {
    cursor:pointer;
  }
  .jj-img {
    position:relative; overflow:hidden;
    aspect-ratio:16/10; border-radius:18px;
    background:#181614;
    background-size:cover;
    background-position:center;
  }
  .jj-img-video { background:#0d0c0a; }
  .jj-mute-btn {
    position:absolute; top:10px; right:10px; z-index:10;
    width:32px; height:32px; border-radius:50%;
    background:rgba(0,0,0,.55); border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    color:#fff; padding:6px; transition:background .2s;
  }
  .jj-mute-btn:hover { background:rgba(0,0,0,.8); }
  .jj-mute-btn svg { width:100%; height:100%; }
  .jj-img-placeholder {
    background:linear-gradient(145deg,#2a1c0a 0%,#4a3318 50%,#221508 100%);
    display:flex; align-items:center; justify-content:center;
  }
  .jj-img-placeholder::before {
    content:'Δ';
    font-family:var(--serif); font-size:4rem;
    color:rgba(201,169,110,.28); user-select:none; pointer-events:none;
  }

  /* hover overlay — dark tint fades in */
  .jj-overlay {
    position:absolute; inset:0;
    background:rgba(0,0,0,.38);
    opacity:0; transition:opacity .3s ease;
    border-radius:18px;
    display:flex; align-items:flex-end;
    padding:.9rem 1rem;
    gap:.4rem; flex-wrap:wrap;
  }
  .jj-card:hover .jj-overlay { opacity:1; }
  .jj-cat-tag {
    font-size:.56rem; letter-spacing:.1em; text-transform:uppercase;
    color:#0d0c0a; background:var(--gold);
    padding:.25rem .7rem; border-radius:50px;
    font-weight:600; white-space:nowrap;
  }
  /* card body */
  .jj-body { padding:.65rem .1rem .2rem; }
  .jj-title {
    font-family:var(--serif); font-size:.86rem; font-weight:400;
    color:#e8e0d4; line-height:1.4; margin:0;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }

  /* load more / next row */
  .jf-more-row { text-align:left; margin-top:1.4rem; display:flex; align-items:center; gap:1.2rem; }
  .jf-load-more {
    background:transparent; border:1px solid rgba(201,169,110,.35); color:#e8e0d4;
    font-size:.72rem; letter-spacing:.05em;
    padding:.6rem 1.6rem; border-radius:5px; cursor:pointer;
    transition:background .22s, border-color .22s, color .22s;
    font-family:inherit;
  }
  .jf-load-more:hover { background:rgba(201,169,110,.1); border-color:var(--gold); color:var(--gold); }
  /* forward arrow shown when all cards loaded */
  .jf-next-btn {
    display:none;
    background: rgba(201,169,110,.08);
    border: 1px solid rgba(201,169,110,.4);
    color: var(--gold);
    width: 42px; height: 42px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.1rem;
    align-items: center; justify-content: center;
    transition: background .22s, border-color .22s, transform .22s;
    flex-shrink: 0;
  }
  .jf-next-btn.visible { display:flex; }
  .jf-next-btn:hover { background:rgba(201,169,110,.22); border-color:#c9a96e; transform:translateX(3px); }
  
  /* ══════════════════════════════════════════
     DIRECTOR  (#ov-director)
  ══════════════════════════════════════════ */
  .director-inner { min-height:100vh; display:flex; flex-direction:column; justify-content:center; gap:3rem; }
  .dir-card { display:grid; grid-template-columns:260px 1fr; gap:4rem; align-items:start; }
  .dir-photo {
    width:240px; height:310px;
    background:linear-gradient(135deg,#1a1408,#281d0c);
    border:1px solid rgba(201,169,110,.15);
    display:flex; align-items:center; justify-content:center;
  }
  .dir-initials  { font-family:var(--serif); font-size:3.5rem; color:var(--gold); opacity:.35; }
  .dir-title-badge {
    font-size:.52rem; letter-spacing:.18em; text-transform:uppercase;
    color:var(--gold); border:1px solid rgba(201,169,110,.25);
    padding:.28rem .7rem; margin-top:.9rem; display:block; text-align:center; width:240px;
  }
  .dir-bio h2    { font-family:var(--serif); font-size:clamp(2rem,3.5vw,3.5rem); font-weight:300; margin-bottom:1rem; }
  .dir-bio h2 em { font-style:italic; color:var(--gold); }
  .dir-bio blockquote {
    font-family:var(--serif); font-size:1.15rem; font-style:italic; color:var(--gold-lt);
    border-left:2px solid var(--gold); padding-left:1.4rem; margin-bottom:1.3rem; line-height:1.75;
  }
  .dir-bio > p   { color:var(--muted); line-height:1.9; margin-bottom:1.5rem; }
  .dir-awards    { display:flex; gap:1rem; flex-wrap:wrap; }
  .award-badge   { font-size:.6rem; color:var(--muted); border:1px solid rgba(255,255,255,.07); padding:.35rem .75rem; }
  .team-strip    {}
  .team-label    { font-family:var(--serif); font-size:1.1rem; color:var(--muted); margin-bottom:1.2rem; }
  .team-row      { display:flex; gap:2.5rem; }
  .tm            { display:flex; flex-direction:column; align-items:center; gap:.5rem; }
  .tm-av {
    width:70px; height:70px; border-radius:50%;
    background:linear-gradient(135deg,var(--dark3),var(--mid));
    border:1px solid rgba(201,169,110,.18);
    display:flex; align-items:center; justify-content:center;
    font-size:.8rem; font-weight:500; color:var(--gold);
  }
  .tm span  { font-size:.72rem; color:var(--text); font-weight:400; }
  .tm small { font-size:.58rem; color:var(--muted); letter-spacing:.08em; }
  
  /* ══════════════════════════════════════════
     CONTACT  (#ov-contact)
  ══════════════════════════════════════════ */
  .contact-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; min-height:100vh; align-content:center; }
  .testimonials-col h2 { font-family:var(--serif); font-size:clamp(2rem,3.5vw,3rem); font-weight:300; margin-bottom:2rem; }
  .testimonials-col h2 em { font-style:italic; color:var(--gold); }
  .t-carousel    { position:relative; min-height:165px; margin-bottom:1.5rem; }
  .t-slide       { position:absolute; inset:0; opacity:0; transform:translateX(14px); transition:opacity .5s,transform .5s; pointer-events:none; }
  .t-slide.active{ opacity:1; transform:none; pointer-events:none; }
  .overlay.active .t-slide.active { pointer-events:all; }
  .t-slide p     { font-family:var(--serif); font-size:1.15rem; font-style:italic; line-height:1.75; border-left:2px solid var(--gold); padding-left:1.2rem; margin-bottom:1rem; }
  .t-auth        { display:flex; align-items:center; gap:.9rem; padding-left:1.2rem; }
  .t-av          { width:40px; height:40px; border-radius:50%; background:var(--mid); border:1px solid rgba(201,169,110,.25); display:flex; align-items:center; justify-content:center; font-size:.65rem; color:var(--gold); font-weight:500; flex-shrink:0; }
  .t-auth b      { font-size:.78rem; display:block; font-weight:500; }
  .t-auth small  { font-size:.62rem; color:var(--muted); }
  .t-nav         { display:flex; align-items:center; gap:1.2rem; }
  .t-btn         {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(201,169,110,.3);
    color: #e8e0d4;
    width: 44px; height: 44px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.1rem;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s, border-color .2s;
    flex-shrink: 0;
  }
  .t-btn:hover   { background: rgba(201,169,110,.22); border-color: #c9a96e; }
  .t-dots-row    { display:flex; gap:6px; align-items:center; }
  .tdot          { width:5px; height:5px; border-radius:50%; background:#2a2926; transition:background .3s; }
  .tdot.active   { background:var(--gold); }
  
  /* form */
  .form-col h2   { font-family:var(--serif); font-size:clamp(2rem,3.5vw,3rem); font-weight:300; margin-bottom:2rem; }
  .form-col h2 em{ font-style:italic; color:var(--gold); }
  #contactForm   { display:flex; flex-direction:column; gap:1.1rem; }
  .form-row-2    { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
  .fg            { position:relative; }
  .fg input, .fg select, .fg textarea {
    width:100%; padding:.95rem 1rem .35rem;
    background:rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.07);
    color:var(--text); font-family:var(--sans); font-size:.82rem;
    outline:none; resize:none; appearance:none;
    transition:border-color .3s;
  }
  .fg input:focus,.fg select:focus,.fg textarea:focus { border-color:rgba(201,169,110,.45); }
  .fg label {
    position:absolute; top:.65rem; left:1rem;
    font-size:.58rem; letter-spacing:.1em; text-transform:uppercase;
    color:var(--muted); pointer-events:none; transition:.25s;
  }
  .fg input:not(:placeholder-shown)~label,
  .fg input:focus~label,
  .fg select:focus~label,
  .fg select.has-value~label,
  .fg textarea:not(:placeholder-shown)~label,
  .fg textarea:focus~label { top:.22rem; font-size:.48rem; color:var(--gold); }
  .fg select option { background:var(--dark3); }
  
  /* ══════════════════════════════════════════
     PROJECTS  (#ov-projects)
  ══════════════════════════════════════════ */
  #ov-projects .ov-inner { padding-top:3.5rem; padding-bottom:1.5rem; }
  
  /* ── Projects Section ── */
  .projects-inner {
    display:flex; flex-direction:column;
    gap:2.2rem; width:100%;
  }
  .projects-header {
    display:flex; align-items:flex-end; justify-content:space-between; gap:2rem;
  }
  .projects-header-left {}
  .projects-header h2 {
    font-family:var(--serif); font-size:clamp(2.2rem,3.5vw,3.4rem);
    font-weight:300; line-height:1.05; margin-top:.5rem;
  }
  .projects-header h2 em { font-style:italic; color:var(--gold); }
  .projects-header-right {
    display:flex; flex-direction:column; align-items:flex-end; gap:.7rem; flex-shrink:0;
  }

  /* ── Bento grid ── */
  .projects-grid {
    display:grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    grid-template-rows: 280px 180px;
    gap:8px; width:100%;
  }

  /* slot positions */
  .proj-card:nth-child(1) { grid-column:1; grid-row:1/3; }   /* hero tall */
  .proj-card:nth-child(2) { grid-column:2; grid-row:1; }
  .proj-card:nth-child(3) { grid-column:3; grid-row:1; }
  .proj-card:nth-child(4) { grid-column:2; grid-row:2; }
  .proj-card:nth-child(5) { grid-column:3; grid-row:2; }
  .proj-card:nth-child(6) { display:none; }                  /* 5-card bento */

  /* card base */
  .proj-card {
    position:relative; overflow:hidden; cursor:pointer;
    border:1px solid rgba(201,169,110,.1);
    border-radius:3px;
    /* scroll-in animation */
    opacity:0; transform:translateY(32px) scale(.97);
    transition:opacity .7s cubic-bezier(.16,1,.3,1),
                transform .7s cubic-bezier(.16,1,.3,1),
                box-shadow .4s ease;
  }
  .proj-card.pj-in {
    opacity:1; transform:none;
  }
  .proj-card:hover {
    box-shadow:0 16px 48px rgba(0,0,0,.55), 0 0 0 1px rgba(201,169,110,.18);
    z-index:2;
  }

  /* image layer */
  .proj-img {
    width:100%; height:100%; position:absolute; inset:0;
    background:#0c0a07;
  }
  .proj-img img {
    width:100%; height:100%; object-fit:cover; display:block;
    transform:scale(1.04); transition:transform .9s cubic-bezier(.16,1,.3,1);
  }
  .proj-card:hover .proj-img img { transform:scale(1.1); }

  /* placeholder */
  .proj-placeholder {
    width:100%; height:100%; position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    transition:transform .7s cubic-bezier(0.16,1,0.3,1);
  }
  .ph-1 { background:linear-gradient(145deg,#1e1408 0%,#3a2710 60%,#1a1005 100%); }
  .ph-2 { background:linear-gradient(145deg,#120e07 0%,#221808 60%,#0e0b04 100%); }
  .ph-3 { background:linear-gradient(145deg,#0e0c06 0%,#1c1508 60%,#0a0804 100%); }
  .ph-4 { background:linear-gradient(145deg,#100c05 0%,#1e1508 60%,#0c0a03 100%); }
  .ph-5 { background:linear-gradient(145deg,#181008 0%,#2c1e0e 60%,#100a04 100%); }
  .proj-card:hover .proj-placeholder { transform:scale(1.06); }
  .proj-initial {
    font-family:var(--serif); font-size:4rem;
    color:rgba(201,169,110,.1); user-select:none;
    transition:color .4s;
  }
  .proj-card:hover .proj-initial { color:rgba(201,169,110,.18); }

  /* overlay info — always visible at bottom, slides up on hover */
  .proj-info {
    position:absolute; inset:0;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:1.4rem 1.5rem 1.2rem;
    background:linear-gradient(0deg, rgba(5,4,2,.92) 0%, rgba(5,4,2,.4) 45%, transparent 100%);
    opacity:0; transform:translateY(8px);
    transition:opacity .45s ease, transform .45s cubic-bezier(.16,1,.3,1);
  }
  .proj-card:hover .proj-info { opacity:1; transform:none; }

  /* always-visible bottom strip (category + title) */
  .proj-strip {
    position:absolute; bottom:0; left:0; right:0;
    padding:.7rem 1rem .8rem;
    background:linear-gradient(0deg, rgba(5,4,2,.85) 0%, transparent 100%);
    transition:opacity .3s;
  }
  .proj-card:hover .proj-strip { opacity:0; }

  .proj-strip-cat {
    font-size:.44rem; letter-spacing:.22em; text-transform:uppercase;
    color:var(--gold); margin-bottom:.25rem;
  }
  .proj-strip-title {
    font-family:var(--serif); font-size:.82rem; font-weight:300;
    color:rgba(232,224,212,.9); line-height:1.2;
  }
  .proj-card:nth-child(1) .proj-strip-title { font-size:1.05rem; }

  .proj-cat {
    font-size:.44rem; letter-spacing:.22em; text-transform:uppercase;
    color:var(--gold); margin-bottom:.5rem; display:block;
  }
  .proj-info h3 {
    font-family:var(--serif); font-size:1.15rem; font-weight:300;
    color:#fff; line-height:1.2; margin-bottom:.4rem;
  }
  .proj-card:nth-child(1) .proj-info h3 { font-size:1.55rem; }
  .proj-info p { font-size:.57rem; color:rgba(232,224,212,.55); }

  /* gold accent line on hover */
  .proj-card::after {
    content:''; position:absolute; bottom:0; left:0;
    width:0; height:2px;
    background:linear-gradient(90deg,var(--gold),transparent);
    transition:width .5s cubic-bezier(.16,1,.3,1);
  }
  .proj-card:hover::after { width:100%; }

  /* slot number */
  .proj-slot-num {
    position:absolute; top:.75rem; left:.75rem;
    font-size:.5rem; letter-spacing:.18em; font-weight:600;
    color:rgba(201,169,110,.7); font-family:var(--sans);
    background:rgba(0,0,0,.45);
    backdrop-filter:blur(6px);
    border:1px solid rgba(201,169,110,.2);
    padding:.2rem .55rem; border-radius:3px;
    pointer-events:none;
  }

  /* footer row */
  .proj-footer-row {
    display:flex; align-items:center; justify-content:space-between;
    border-top:1px solid rgba(201,169,110,.12); padding-top:1.1rem;
  }
  .proj-count { font-size:.63rem; letter-spacing:.1em; color:var(--muted); }
  .proj-count em { font-style:normal; color:var(--gold); font-family:var(--serif); font-size:1.15rem; margin-right:.3rem; }
  
  /* ── All Projects Modal (rebuilt) ── */
  #all-projects-modal { pointer-events:none; }
  #all-projects-modal.apm-open { pointer-events:all; }

  .apm-bg {
    position:absolute; inset:0;
    background:rgba(4,3,2,.92); backdrop-filter:blur(18px);
    opacity:0; transition:opacity .4s ease;
  }
  #all-projects-modal.apm-open .apm-bg { opacity:1; }

  .apm-x {
    position:absolute; bottom:2rem; left:50%; transform:translateX(-50%) rotate(-90deg);
    z-index:10; width:42px; height:42px; border-radius:50%;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(12px) saturate(180%);
    -webkit-backdrop-filter:blur(12px) saturate(180%);
    border:1px solid rgba(255,255,255,.18);
    box-shadow:0 4px 24px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.12);
    color:rgba(232,224,212,.7); cursor:pointer; display:flex;
    align-items:center; justify-content:center;
    opacity:0;
    transition:opacity .35s .1s ease, transform .35s .1s ease, background .2s, color .2s, box-shadow .2s;
  }
  #all-projects-modal.apm-open .apm-x { opacity:1; transform:translateX(-50%) rotate(0deg); }
  #all-projects-modal.apm-detail-active .apm-x { opacity:0; pointer-events:none; }
  .apm-x:hover {
    background:rgba(201,169,110,.18);
    border-color:rgba(201,169,110,.35);
    box-shadow:0 4px 28px rgba(201,169,110,.15), inset 0 1px 0 rgba(255,255,255,.15);
    color:var(--gold);
  }

  .apm-wrap {
    position:absolute; inset:0;
    display:flex;
    opacity:0; transform:translateY(20px);
    transition:opacity .4s .08s ease, transform .4s .08s cubic-bezier(.16,1,.3,1);
  }
  #all-projects-modal.apm-open .apm-wrap { opacity:1; transform:none; }

  /* sidebar */
  .apm-sidebar {
    width:240px; flex-shrink:0;
    border-right:1px solid rgba(201,169,110,.08);
    padding:3.5rem 2rem 2rem;
    display:flex; flex-direction:column; gap:.5rem;
    overflow-y:auto;
  }
  .apm-sidebar-eyebrow {
    font-size:.52rem; letter-spacing:.26em; text-transform:uppercase;
    color:var(--gold); margin-bottom:.6rem;
  }
  .apm-sidebar-title {
    font-family:var(--serif); font-size:clamp(2rem,3vw,2.8rem);
    font-weight:300; line-height:1.1; color:var(--text); margin-bottom:.6rem;
  }
  .apm-sidebar-title em { font-style:italic; color:var(--gold); }
  .apm-count-line {
    font-size:.62rem; color:var(--muted); margin-bottom:1.6rem;
    letter-spacing:.04em;
  }

  /* category nav */
  .apm-nav { display:flex; flex-direction:column; gap:.15rem; }
  .apm-nav-btn {
    background:transparent; border:none;
    text-align:left; padding:.55rem .8rem;
    font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
    color:rgba(232,224,212,.4); cursor:pointer;
    border-radius:8px; transition:all .2s;
    position:relative;
  }
  .apm-nav-btn::before {
    content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
    width:2px; height:0; background:var(--gold); border-radius:2px;
    transition:height .25s ease;
  }
  .apm-nav-btn:hover { color:var(--text); background:rgba(255,255,255,.03); }
  .apm-nav-btn.active { color:var(--gold); background:rgba(201,169,110,.06); padding-left:1.2rem; }
  .apm-nav-btn.active::before { height:60%; }

  /* main grid area */
  .apm-main { flex:1; overflow-y:auto; padding:3.5rem 2.4rem 2.4rem; }
  .apm-main::-webkit-scrollbar { width:4px; }
  .apm-main::-webkit-scrollbar-track { background:transparent; }
  .apm-main::-webkit-scrollbar-thumb { background:rgba(201,169,110,.2); border-radius:2px; }

  .apm-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:1.2rem;
  }

  /* cards */
  .apm-card {
    position:relative; overflow:hidden; border-radius:14px;
    cursor:pointer; background:#0a0908;
    opacity:0; transform:translateY(18px);
    animation:apmCardIn .45s cubic-bezier(.16,1,.3,1) forwards;
  }
  @keyframes apmCardIn {
    to { opacity:1; transform:none; }
  }
  .apm-card-img {
    aspect-ratio:3/2; overflow:hidden;
    background:linear-gradient(145deg,#121008,#1e1810);
    display:flex; align-items:center; justify-content:center;
    position:relative;
  }
  .apm-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.16,1,.3,1); }
  .apm-card:hover .apm-card-img img { transform:scale(1.07); }
  .apm-card-ph { font-family:var(--serif); font-size:3rem; color:rgba(201,169,110,.08); }

  /* hover overlay */
  .apm-card-overlay {
    position:absolute; inset:0;
    background:linear-gradient(0deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.1) 55%,transparent 100%);
    opacity:0; transition:opacity .35s ease;
    display:flex; flex-direction:column; justify-content:flex-end; padding:1.1rem 1.2rem;
  }
  .apm-card:hover .apm-card-overlay { opacity:1; }
  .apm-overlay-cat {
    font-size:.46rem; letter-spacing:.2em; text-transform:uppercase;
    color:var(--gold); margin-bottom:.3rem;
  }
  .apm-overlay-title {
    font-family:var(--serif); font-size:1rem; font-weight:300; color:#fff;
    margin-bottom:.2rem;
  }
  .apm-overlay-meta { font-size:.58rem; color:rgba(255,255,255,.5); }

  /* info bar below image */
  .apm-card-info {
    padding:.75rem 1rem .9rem;
    border-top:1px solid rgba(201,169,110,.07);
  }
  .apm-card-cat {
    font-size:.46rem; letter-spacing:.2em; text-transform:uppercase;
    color:var(--gold); margin-bottom:.3rem;
  }
  .apm-card-title { font-size:.82rem; font-weight:400; color:var(--text); margin-bottom:.18rem; }
  .apm-card-meta { font-size:.6rem; color:var(--muted); }

  .apm-empty { grid-column:1/-1; text-align:center; padding:4rem; color:var(--muted); font-size:.8rem; }
  .apm-overlay-desc {
    font-size:.62rem; color:rgba(255,255,255,.6); line-height:1.55;
    margin-top:.5rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  }

  /* ── detail drawer ── */
  #apm-detail {
    position:absolute; inset:0; z-index:5; pointer-events:none;
  }
  #apm-detail.apm-detail-open { pointer-events:all; }
  .apm-detail-bg {
    position:absolute; inset:0; background:rgba(0,0,0,.6);
    opacity:0; transition:opacity .35s ease; cursor:pointer;
  }
  #apm-detail.apm-detail-open .apm-detail-bg { opacity:1; }
  .apm-detail-panel {
    position:absolute; top:0; right:0; bottom:0;
    width:min(480px,88vw); background:#0f0e0c;
    border-left:1px solid rgba(201,169,110,.12);
    display:flex; flex-direction:column; overflow:hidden;
    transform:translateX(100%); transition:transform .38s cubic-bezier(.16,1,.3,1);
  }
  #apm-detail.apm-detail-open .apm-detail-panel { transform:none; }
  .apm-detail-close {
    position:absolute; top:1.2rem; right:1.2rem; z-index:2;
    width:38px; height:38px; border-radius:50%;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(12px) saturate(180%);
    -webkit-backdrop-filter:blur(12px) saturate(180%);
    border:1px solid rgba(255,255,255,.18);
    box-shadow:0 4px 20px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.12);
    color:rgba(232,224,212,.7); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s, color .2s, box-shadow .2s, border-color .2s;
  }
  .apm-detail-close:hover {
    background:rgba(201,169,110,.18);
    border-color:rgba(201,169,110,.35);
    box-shadow:0 4px 24px rgba(201,169,110,.15), inset 0 1px 0 rgba(255,255,255,.15);
    color:var(--gold);
  }
  .apm-detail-img {
    width:100%; aspect-ratio:16/9; flex-shrink:0;
    background:#181614; overflow:hidden;
  }
  .apm-detail-img img { width:100%; height:100%; object-fit:cover; }
  .apm-detail-body { padding:1.8rem 2rem 2.4rem; overflow-y:auto; flex:1; }
  .apm-detail-cat {
    font-size:.5rem; letter-spacing:.22em; text-transform:uppercase;
    color:var(--gold); margin-bottom:.6rem;
  }
  .apm-detail-title {
    font-family:var(--serif); font-size:clamp(1.4rem,3vw,1.9rem);
    font-weight:300; color:var(--text); line-height:1.2; margin-bottom:.5rem;
  }
  .apm-detail-meta { font-size:.65rem; color:var(--muted); margin-bottom:1.2rem; }
  .apm-detail-rule { width:40px; height:1px; background:rgba(201,169,110,.3); margin-bottom:1.2rem; }
  .apm-detail-desc { font-size:.78rem; color:rgba(232,224,212,.7); line-height:1.75; }

  /* ══════════════════════════════════════════
     FOOTER  (#ov-footer)
  ══════════════════════════════════════════ */
  #ov-footer     { overflow-y:auto; align-items:flex-start; }
  .footer-inner  { padding:0; width:100%; max-width:100%; min-height:100%; display:flex; flex-direction:column; }
  
  /* ── Footer CTA upper block ── */
  .ft-cta        { position:relative; flex:1; display:flex; flex-direction:column; justify-content:center; overflow:hidden; padding:6rem 0 3rem; border-bottom:1px solid rgba(201,169,110,.15); background:rgba(5,4,3,.72); backdrop-filter:blur(28px) saturate(140%); -webkit-backdrop-filter:blur(28px) saturate(140%); box-sizing:border-box; min-height:520px; }
  .ft-marquee-wrap { overflow:hidden; margin-bottom:1.2rem; }
  .ft-marquee-track { display:flex; width:max-content; animation:ft-marquee 18s linear infinite; white-space:nowrap; }
  .ft-marquee-track span { font-size:.55rem; letter-spacing:.25em; text-transform:uppercase; color:rgba(201,169,110,.3); font-family:var(--sans); }
  @keyframes ft-marquee { from { transform:translateX(0) } to { transform:translateX(-50%) } }
  .ft-cta-body   { position:relative; z-index:2; }
  .ft-cta-heading { font-size:clamp(1.8rem,3.5vw,3.2rem); line-height:.95; color:var(--text); margin-bottom:.8rem; }
  .ft-cta-heading em { color:var(--gold); font-style:italic; font-family:var(--serif); }
  .ft-cta-sub    { font-size:.75rem; color:var(--muted); max-width:380px; line-height:1.7; margin-bottom:1.2rem; }
  .ft-cta-actions { display:flex; gap:.8rem; flex-wrap:wrap; }
  /* Decorative rings */
  .ft-cta-deco   { position:absolute; right:-80px; top:50%; transform:translateY(-50%); width:400px; height:400px; pointer-events:none; }
  .deco-ring     { position:absolute; border-radius:50%; border:1px solid rgba(201,169,110,.08); top:50%; left:50%; transform:translate(-50%,-50%); animation:ring-pulse 4s ease-in-out infinite; }
  .deco-ring-1   { width:200px; height:200px; animation-delay:0s; }
  .deco-ring-2   { width:300px; height:300px; animation-delay:.8s; border-color:rgba(201,169,110,.05); }
  .deco-ring-3   { width:400px; height:400px; animation-delay:1.6s; border-color:rgba(201,169,110,.03); }
  @keyframes ring-pulse { 0%,100%{opacity:.4;transform:translate(-50%,-50%) scale(1)} 50%{opacity:1;transform:translate(-50%,-50%) scale(1.04)} }
  
  /* ── Footer links bottom bar ── */
  footer         { background:rgba(0,0,0,.78); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-top:1px solid rgba(201,169,110,.1); padding:1.4rem 4rem 1rem; width:100%; display:flex; flex-direction:column; justify-content:space-between; box-sizing:border-box; }
  .ft-top        { display:grid; grid-template-columns:1fr 2fr; gap:5rem; margin-bottom:0; align-items:center; }
  .ft-logo       { display:flex; align-items:center; gap:.6rem; margin-bottom:1rem; }
  .ft-logo-img   { height:36px; width:auto; object-fit:contain; border-radius:8px; border:1px solid rgba(201,169,110,.45); box-shadow:0 0 12px rgba(201,169,110,.15), inset 0 1px 0 rgba(255,255,255,.08); padding:2px; }
  .ft-logo span  { font-size:.6rem; letter-spacing:.28em; color:var(--muted); font-family:var(--sans); }
  .ft-brand p    { font-size:.75rem; color:var(--muted); line-height:1.6; max-width:250px; margin-bottom:.8rem; }
  .ft-social     { display:flex; gap:.8rem; }
  .ft-social a   { width:34px; height:34px; border:1px solid rgba(201,169,110,.2); display:flex; align-items:center; justify-content:center; transition:border-color .3s,background .3s; }
  .ft-social a:hover { border-color:var(--gold); background:rgba(201,169,110,.07); }
  .ft-social svg { width:13px; height:13px; fill:var(--muted); transition:fill .3s; }
  .ft-social a:hover svg { fill:var(--gold); }
  .ft-links      { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
  .ft-col h4     { font-size:.58rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem; }
  .ft-col ul     { list-style:none; }
  .ft-col li     { margin-bottom:.35rem; font-size:.75rem; color:var(--muted); line-height:1.5; }
  .ft-col a      { color:var(--muted); text-decoration:none; transition:color .3s; }
  .ft-col a:hover{ color:var(--text); }
  .ft-bottom     { border-top:1px solid rgba(255,255,255,.06); padding-top:.8rem; margin-top:.6rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.6rem; }
  .ft-bottom span{ font-size:.68rem; color:var(--muted); }
  .ft-bottom div { display:flex; gap:1.5rem; }
  .ft-bottom a   { font-size:.68rem; color:var(--muted); text-decoration:none; transition:color .3s; }
  .ft-bottom a:hover { color:var(--text); }
  .ft-admin-link { opacity:.3; font-size:.58rem !important; letter-spacing:.12em; text-transform:uppercase; transition:opacity .3s !important; }
  .ft-admin-link:hover { opacity:1 !important; color:var(--gold) !important; }
  
  /* ══════════════════════════════════════════
     SCROLL DRIVER  (invisible spacers)
  ══════════════════════════════════════════ */
  #scroll-driver { position:relative; z-index:0; pointer-events:none; }
  .spacer        { height:100vh; }
  
  /* ── PROGRESS BAR ── */
  #progress-bar  { position:fixed; top:0; left:0; right:0; height:2px; z-index:2000; background:rgba(255,255,255,.05); }
  #progress-fill { height:100%; background:var(--gold); width:0%; }
  
  /* ── SECTION DOTS ── */
  #section-dots  { position:fixed; right:1.8rem; top:50%; transform:translateY(-50%); z-index:1000; display:flex; flex-direction:column; gap:.8rem; }
  .sdot {
    width:6px; height:6px; border-radius:50%;
    background:rgba(255,255,255,.18); border:none; cursor:pointer;
    transition:background .3s,transform .3s; position:relative;
  }
  .sdot::before {
    content:attr(title);
    position:absolute; right:16px; top:50%; transform:translateY(-50%);
    font-size:.52rem; color:var(--muted); letter-spacing:.1em; white-space:nowrap;
    text-transform:uppercase; opacity:0; transition:opacity .3s; pointer-events:none;
  }
  .sdot:hover::before { opacity:1; }
  .sdot.active { background:var(--gold); transform:scale(1.6); }
  
  /* ── TOAST ── */
  #toast {
    position:fixed; bottom:2rem; left:50%; transform:translateX(-50%) translateY(90px);
    background:var(--gold); color:var(--dark);
    padding:.75rem 1.7rem; font-size:.78rem; font-weight:500;
    z-index:9000; pointer-events:none;
    transition:transform .4s var(--ease);
  }
  #toast.show { transform:translateX(-50%) translateY(0); }
  
  /* ══════════════════════════════════════════
     RESPONSIVE
  ══════════════════════════════════════════ */
  @media (max-width:1100px) {
    .dir-card   { grid-template-columns:1fr; }
    .journal-wrap { grid-template-columns:1fr; gap:2.5rem; }
  }
  @media (max-width:900px) {
    #navbar     { padding:1.1rem 1.5rem; }
    .nav-links,.btn-nav { display:none; }
    .mobile-menu .btn-nav { display:inline-flex; }
    .nav-burger { display:flex; }
    .ov-inner   { padding:5rem 1.5rem 2rem; }
    .entry-inner{ grid-template-columns:1fr; gap:2.5rem; }
    .contact-inner { grid-template-columns:1fr; }
    .gallery-grid  { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
    .g-card--feat  { grid-column:span 2; }
    .g-card:not(.g-card--feat) { grid-column:span 1; }
    .team-row   { gap:1.5rem; flex-wrap:wrap; }
    .ft-top     { grid-template-columns:1fr; gap:2rem; }
    .ft-links   { grid-template-columns:repeat(2,1fr); }
    footer      { padding:2.5rem 1.5rem 1.5rem; }
  }
  @media (max-width:900px) {
    /* Blog section — fill full viewport, stacked layout */
    #ov-blog .ov-inner {
      padding-top:89px;
      padding-bottom:1rem;
      align-items:stretch;
      height:100%;
      box-sizing:border-box;
      display:flex;
      flex-direction:column;
    }
    .blog-inner {
      min-height:unset;
      align-items:stretch;
      flex:1;
      height:100%;
    }
    .journal-wrap {
      grid-template-columns:1fr !important;
      gap:.8rem !important;
      height:100%;
      display:flex !important;
      flex-direction:column;
    }
    /* compact meta card */
    .blog-meta {
      background:rgba(8,6,4,.45) !important;
      backdrop-filter:blur(32px) saturate(180%) !important;
      -webkit-backdrop-filter:blur(32px) saturate(180%) !important;
      border:1px solid rgba(201,169,110,.28) !important;
      border-radius:16px !important;
      box-shadow:0 0 0 1px rgba(201,169,110,.08), 0 12px 48px rgba(0,0,0,.6) !important;
      padding:1.2rem 1.4rem !important;
      flex-shrink:0;
    }
    .blog-meta h2 { font-size:clamp(1.6rem,6vw,2.4rem) !important; margin-bottom:.5rem !important; }
    .blog-meta p  { font-size:.75rem !important; margin-bottom:.8rem !important; line-height:1.6 !important; }
    #visit-blog-btn { transform:none !important; translate:none !important; }
    /* right column grows to fill remaining height */
    .journal-right {
      flex:1;
      max-height:none !important;
      overflow-y:auto;
      min-height:0;
    }
    .jf-tabs { margin-bottom:.8rem; }
  }
  @media (max-width:900px) {
    .gallery-inner { grid-template-columns:1fr; height:auto; }
    #ov-gallery .ov-inner { align-items:stretch; padding-top:89px; padding-bottom:1rem; height:100%; box-sizing:border-box; }
    /* Replace scattered stage with horizontal scroll strip that fills remaining height */
    .gp-stage {
      display:flex !important;
      flex-direction:row;
      overflow-x:auto;
      overflow-y:hidden;
      gap:.6rem;
      flex:1;
      height:0 !important; /* flex:1 will set actual height */
      min-height:180px;
      min-width:0;
      padding:.3rem .2rem .6rem;
      scrollbar-width:none;
      -webkit-overflow-scrolling:touch;
      width:100%;
      position:static !important;
    }
    .gp-stage::-webkit-scrollbar { display:none; }
    /* Reset all card positioning to inline */
    .gp-stage .gp-card {
      position:static !important;
      transform:none !important;
      animation:none !important;
      opacity:1 !important;
      width:160px !important;
      min-width:160px !important;
      height:100% !important;
      min-height:160px !important;
      flex-shrink:0;
      border-radius:10px !important;
      overflow:hidden;
    }
    .gp-stage .gp-inner { width:100% !important; height:100% !important; }
    .gp-stage .gp-swatch {
      width:100% !important;
      height:100% !important;
      border-radius:8px !important;
      background-size:cover !important;
      background-position:center !important;
    }
    .gp-stage .gp-shine { display:none; }
    /* Stack: info card on top, then image strip fills remaining space */
    .gallery-inner {
      display:flex !important;
      flex-direction:column;
      gap:1rem;
      align-items:stretch;
      height:100%;
      min-height:calc(100vh - 89px);
    }
    .gallery-info {
      background:rgba(8,6,4,.45) !important;
      backdrop-filter:blur(32px) saturate(180%) !important;
      -webkit-backdrop-filter:blur(32px) saturate(180%) !important;
      border:1px solid rgba(201,169,110,.28) !important;
      border-radius:20px !important;
      box-shadow:0 0 0 1px rgba(201,169,110,.08), 0 12px 48px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.1), inset 0 -1px 0 rgba(201,169,110,.06) !important;
      padding:1.6rem 1.4rem !important;
      gap:1rem !important;
    }
    .gallery-info h2 { font-size:clamp(1.8rem,7vw,2.6rem) !important; }
    /* stats: switch from vertical column to horizontal 3-col row */
    .gallery-stats {
      flex-direction:row !important;
      border-left:none !important;
      padding-left:0 !important;
      border-top:1px solid rgba(201,169,110,.2) !important;
      padding-top:.8rem !important;
      gap:0 !important;
      justify-content:space-between !important;
    }
    .gstat { flex:1; padding-right:.6rem; }
    .gstat-num { font-size:1.6rem !important; }
    .gstat-label { font-size:.5rem !important; }
  }
  
  @media (max-width:768px) {
    .tk-grid { grid-template-columns:1fr !important; gap:2rem !important; }
  }
  @media (max-width:600px) {
    .hero-title  { font-size:2rem; line-height:.9; margin-bottom:1rem; }
    .hero-badge  { margin-top:3rem; margin-bottom:1rem; }
    .hero-inner  { padding-bottom:5rem; }
    .ov-inner    { padding:4rem 1.5rem 1.5rem; }
    .hero-sub    { font-size:.72rem; margin-bottom:1rem; }
    .hero-actions{ gap:.6rem; }
    .scroll-hint { bottom:1.5rem; right:1.5rem; }
    .btn-primary, .btn-ghost { padding:.7rem 1.2rem; font-size:.55rem; }
    .form-row-2 { grid-template-columns:1fr; }
    .gallery-grid { grid-template-columns:1fr; }
    .g-card--feat { grid-column:span 1; grid-row:span 1; }
    #section-dots { display:none; }
    .ph-building  { width:90vw; }
    .tk-grid { grid-template-columns:1fr !important; }
  }
  /* ══════════════════════════════════════════
     MOBILE RESPONSIVE — full pass
  ══════════════════════════════════════════ */

  /* Hide desktop cursor on touch devices */
  @media (hover:none) {
    #cursor-dot, #cursor-ring { display:none !important; }
  }

  /* ── Projects bento → single column on mobile ── */
  @media (max-width:900px) {
    .projects-grid {
      grid-template-columns: 1fr 1fr;
      grid-template-rows: auto;
      gap:6px;
    }
    .proj-card:nth-child(1) { grid-column:1/3; grid-row:auto; }
    .proj-card:nth-child(2),
    .proj-card:nth-child(3),
    .proj-card:nth-child(4),
    .proj-card:nth-child(5) { grid-column:auto; grid-row:auto; }
    .projects-grid .proj-card { min-height:160px; }
    .proj-card:nth-child(1) { min-height:240px; }
  }
  @media (max-width:600px) {
    .projects-grid {
      grid-template-columns: 1fr;
      grid-template-rows: auto;
      gap:6px;
    }
    .proj-card:nth-child(1),
    .proj-card:nth-child(2),
    .proj-card:nth-child(3),
    .proj-card:nth-child(4),
    .proj-card:nth-child(5) { grid-column:1; grid-row:auto; min-height:200px; }
    #ov-projects .ov-inner {
      padding-top:calc(89px + .5rem) !important;
      padding-bottom:1rem !important;
      padding-left:1.2rem !important;
      padding-right:1.2rem !important;
      height:100%;
      box-sizing:border-box;
      display:flex;
      flex-direction:column;
      align-items:stretch;
    }
    .projects-inner {
      flex:1;
      min-height:0;
      display:flex;
      flex-direction:column;
      gap:1rem;
      overflow-y:auto;
    }
    .projects-header {
      flex-direction:column;
      align-items:flex-start;
      gap:.5rem;
      flex-shrink:0;
    }
    .projects-header h2 { font-size:clamp(1.8rem,7vw,2.6rem); margin-top:.3rem; }
    .projects-header-right {
      align-items:flex-start;
      flex-direction:row;
      flex-wrap:wrap;
      gap:.6rem;
    }
    .proj-count { font-size:.6rem; }
    .proj-footer-row { flex-direction:column; align-items:flex-start; gap:.6rem; }
  }

  /* ── Director ── */
  @media (max-width:900px) {
    #ov-director .ov-inner {
      padding-top:89px;
      padding-bottom:1rem;
      height:100%;
      box-sizing:border-box;
      display:flex;
      flex-direction:column;
      align-items:stretch;
    }
    .director-inner {
      flex:1;
      min-height:0;
      overflow-y:auto;
      gap:1.5rem;
      min-height:unset;
      justify-content:flex-start;
    }
    /* photo + badge inline row */
    .dir-card {
      grid-template-columns:1fr;
      gap:1.2rem;
    }
    .dir-card-left {
      display:flex;
      flex-direction:row;
      align-items:center;
      gap:1rem;
    }
    .dir-photo {
      width:90px !important;
      height:110px !important;
      flex-shrink:0;
    }
    .dir-initials { font-size:2rem; }
    .dir-title-badge {
      width:auto !important;
      text-align:left;
      font-size:.48rem;
    }
    .dir-bio h2 { font-size:clamp(1.6rem,6vw,2.4rem); margin-bottom:.6rem; }
    .dir-bio blockquote { font-size:.9rem; padding-left:1rem; margin-bottom:.8rem; }
    .dir-bio > p { font-size:.82rem; line-height:1.75; margin-bottom:1rem; }
    .dir-awards { flex-wrap:wrap; gap:.4rem; }
    .award-badge { font-size:.55rem; }
    .team-row { flex-wrap:wrap; gap:1.2rem; }
    .tm-av { width:54px; height:54px; font-size:.7rem; }
    .tm-name { font-size:.55rem; }
  }
  @media (max-width:600px) {
    .dir-awards { flex-direction:row; gap:.4rem; }
    .team-row { gap:1rem; }
  }

  /* ── Contact ── */
  @media (max-width:900px) {
    #ov-contact .ov-inner {
      padding-top:89px;
      padding-bottom:1rem;
      height:100%;
      box-sizing:border-box;
      display:flex;
      flex-direction:column;
      align-items:stretch;
    }
    .contact-inner {
      grid-template-columns:1fr;
      gap:2rem;
      min-height:unset;
      align-content:start;
      flex:1;
      overflow-y:auto;
    }
    .testimonials-col h2 { font-size:clamp(1.6rem,6vw,2.2rem); margin-bottom:1rem; }
    .t-carousel { min-height:130px; }
    .t-slide p { font-size:.95rem; }
    .form-col h2 { font-size:clamp(1.6rem,6vw,2.2rem); margin-bottom:1rem; }
    .form-row-2 { grid-template-columns:1fr 1fr; }
  }
  @media (max-width:600px) {
    .contact-inner { gap:1.5rem; }
    .form-row-2 { grid-template-columns:1fr; }
  }

  /* ── Footer ── */
  @media (max-width:900px) {
    #ov-footer .ov-inner { padding:0; overflow-y:auto; display:flex; flex-direction:column; }
    .ft-cta { padding:calc(89px + 1rem) 1.4rem 2rem; min-height:auto; justify-content:flex-start; overflow:visible; }
    .ft-marquee-wrap { margin-bottom:1.5rem; overflow:hidden; }
    .ft-marquee-track span { font-size:.65rem; color:rgba(201,169,110,.5); }
    .ft-cta-heading { font-size:clamp(1.6rem,6vw,2.6rem); }
    .ft-cta-deco { display:none; }
    .ft-cta-actions { flex-wrap:wrap; gap:.6rem; }
    footer { padding:2rem 1.4rem 1.2rem; }
    .ft-top { grid-template-columns:1fr; gap:1.8rem; }
    .ft-links { grid-template-columns:repeat(2,1fr); gap:1.5rem 1rem; }
    .ft-bottom { flex-direction:column; align-items:flex-start; gap:.5rem; }
  }
  @media (max-width:480px) {
    .ft-cta { padding:calc(89px + .8rem) 1.2rem 1.8rem; }
    footer  { padding:1.8rem 1.2rem 1rem; }
    .ft-cta-actions .btn-primary,
    .ft-cta-actions .btn-ghost { width:100%; justify-content:center; text-align:center; }
    .ft-logo span { display:none; }
  }

  /* ── All Projects modal ── */
  @media (max-width:768px) {
    .apm-wrap { flex-direction:column; }
    .apm-sidebar {
      width:100%; border-right:none;
      border-bottom:1px solid rgba(201,169,110,.08);
      padding:2rem 1.4rem 1rem; gap:.4rem;
      flex-direction:row; flex-wrap:wrap; align-items:center;
    }
    .apm-sidebar-eyebrow,
    .apm-sidebar-title,
    .apm-count-line { display:none; }
    .apm-nav { flex-direction:row; flex-wrap:wrap; gap:.4rem; }
    .apm-nav-btn { padding:.3rem .75rem; font-size:.6rem; border-radius:50px;
      border:1px solid rgba(201,169,110,.2); }
    .apm-nav-btn.active { padding:.3rem .75rem .3rem 1rem; }
    .apm-main { padding:1.2rem 1rem 2rem; }
    .apm-grid { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:.8rem; }
    .apm-x { bottom:1.2rem; }
  }
  @media (max-width:480px) {
    .apm-grid { grid-template-columns:1fr 1fr; }
    .apm-detail-panel { width:100%; }
    .apm-detail-body { padding:1.2rem 1.2rem 2rem; }
  }

  /* ── Hero section ── */
  @media (max-width:768px) {
    .hero-inner {
      justify-content:center;
      padding-top:5rem;
      padding-bottom:3rem;
      min-height:100svh;
    }
    .hero-badge { margin-top:0; }
  }
  @media (max-width:480px) {
    .hero-title { font-size:clamp(2rem,10vw,3rem); }
    .hero-sub   { max-width:100%; }
    .hero-actions { flex-direction:column; gap:.5rem; width:100%; }
    .hero-actions .btn-primary,
    .hero-actions .btn-ghost { width:100%; justify-content:center; text-align:center; }
    .hero-inner { padding-top:4rem; padding-bottom:2rem; }
    .scroll-hint { display:none; }
  }

  /* ── Entry / Stats ── */
  @media (max-width:900px) {
    .entry-inner {
      grid-template-columns: 1fr;
      gap:2.5rem;
      min-height:auto;
      padding-top:5rem;
      padding-bottom:3rem;
      align-items:start;
    }
    .entry-stats {
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:1.2rem;
      flex-direction:unset;
    }
    .stat-num { font-size:2.6rem; }
    .stat-label { font-size:.55rem; }
  }
  @media (max-width:600px) {
    .entry-inner { padding-top:4rem; gap:2rem; }
    .entry-stats { grid-template-columns:repeat(3,1fr); gap:.8rem; }
    .stat-num { font-size:2rem; }
    .entry-text h2 { font-size:clamp(1.8rem,7vw,2.8rem); }
  }

  /* ── Overlay inner padding ── */
  @media (max-width:480px) {
    .ov-inner { padding:4.5rem 1rem 1.5rem; }
    #ov-projects .ov-inner { padding-top:4.5rem; }
  }

  /* ── Nav mobile ── */
  @media (max-width:480px) {
    #navbar { padding:.9rem 1rem; }
    .mobile-menu a { font-size:2.2rem; }
  }

  /* ── Support ticket layout ── */
  @media (max-width:768px) {
    .tk-grid { grid-template-columns:1fr !important; gap:1.5rem !important; }
  }

  /* ── Blog/journal right scroll area ── */
  @media (max-width:900px) {
    .journal-right { max-height:none; overflow-y:visible; }
    .blog-inner { padding-bottom:2rem; }
  }

  /* ── Entry stats row on very small screens ── */
  @media (max-width:360px) {
    .hero-title { font-size:1.8rem; }
    .logo-text  { display:none; }
  }

