html { scroll-behavior: smooth; }
  body { background: #0A0A0B; color: #F5F5F2; font-family: 'Inter', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
  ::selection { background: #6A6750; color: #0A0A0B; }
  ::-webkit-scrollbar { width: 10px; }
  ::-webkit-scrollbar-track { background: #0A0A0B; }
  ::-webkit-scrollbar-thumb { background: #2A2C32; border-radius: 999px; }

  .container-x { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }
  @media (min-width: 768px) { .container-x { padding: 0 2.5rem; } }

  .eyebrow { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.25em; color: #6A6750; }
  .display { font-family: 'Cormorant Garamond', serif; font-weight: 300; line-height: 1.05; letter-spacing: -0.01em; }

  .btn-primary { display: inline-flex; align-items: center; gap: 0.5rem; border-radius: 999px; background: #6A6750; padding: 0.75rem 1.5rem; font-size: 0.875rem; font-weight: 500; letter-spacing: 0.025em; color: #0A0A0B; transition: all .25s; }
  .btn-primary:hover { background: #8B8770; box-shadow: 0 8px 30px -8px rgba(106,103,80,.6); }
  .btn-ghost { display: inline-flex; align-items: center; gap: 0.5rem; border-radius: 999px; border: 1px solid #2A2C32; padding: 0.75rem 1.5rem; font-size: 0.875rem; font-weight: 500; letter-spacing: 0.025em; color: #E5E7EC; transition: all .25s; }
  .btn-ghost:hover { border-color: #6A6750; color: #6A6750; }

  .hairline { height: 1px; width: 100%; background: linear-gradient(to right, transparent, #2A2C32, transparent); }

  /* Subtle entrance animations to mimic Framer Motion */
  @keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes fadeUpLg { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
  .anim-up { opacity: 0; animation: fadeUp .8s cubic-bezier(.22,1,.36,1) forwards; }
  .anim-up-lg { opacity: 0; animation: fadeUpLg .9s cubic-bezier(.22,1,.36,1) forwards; }
  .d-1 { animation-delay: .1s; } .d-2 { animation-delay: .2s; } .d-3 { animation-delay: .3s; }
  .d-4 { animation-delay: .45s; } .d-5 { animation-delay: .6s; }

  /* Reveal-on-scroll */
  .reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
  .reveal.in { opacity: 1; transform: translateY(0); }

  /* Practice card hover */
  .practice-card { transition: transform .35s cubic-bezier(.22,1,.36,1); position: relative; overflow: hidden; }
  .practice-card:hover { transform: translateY(-4px); }
  .practice-card .img { transition: transform .7s cubic-bezier(.22,1,.36,1); }
  .practice-card:hover .img { transform: scale(1.05); }
  .practice-card .underline { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: #6A6750; transform-origin: left; transform: scaleX(0); transition: transform .5s cubic-bezier(.22,1,.36,1); }
  .practice-card:hover .underline { transform: scaleX(1); }
  .practice-card .arrow { transition: all .3s; }
  .practice-card:hover .arrow { background: #6A6750; border-color: #6A6750; color: #0A0A0B; }
  .practice-card:hover .arrow svg { transform: rotate(45deg); }

  /* Nav link underline */
  .nav-link { position: relative; }
  .nav-link::after { content:""; position: absolute; left: 1rem; right: 1rem; bottom: -2px; height: 1px; background: #6A6750; transform: scaleX(0); transition: transform .3s; }
  .nav-link:hover::after { transform: scaleX(1); }

  /* Subtle film grain */
  .grain::before { content:""; position: fixed; inset:0; pointer-events:none; z-index:1; opacity:.035; mix-blend-mode: overlay; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }

  /* Sticky nav */
  .nav { transition: all .3s; }
  .nav.scrolled { background: rgba(10,10,11,.8); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom-color: rgba(22,23,26,.8); }

  /* Inline nav reveal — hidden by default, fades in on scroll past hero (lg+ only) */
  .inline-nav { display: none; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .35s cubic-bezier(.22,1,.36,1), transform .35s cubic-bezier(.22,1,.36,1), visibility .35s; }
  @media (min-width: 1024px) {
    .inline-nav { display: flex; transform: translate(-50%, calc(-50% - 6px)); }
    .nav.scrolled .inline-nav { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, -50%); }
  }

  /* Menu trigger — fades out on scroll past hero (lg+ only); always visible on mobile */
  .menu-trigger { transition: opacity .3s cubic-bezier(.22,1,.36,1), transform .3s cubic-bezier(.22,1,.36,1), visibility .3s, border-color .25s, color .25s; }
  @media (min-width: 1024px) {
    .nav.scrolled .menu-trigger { opacity: 0; visibility: hidden; pointer-events: none; transform: scale(.92); }
  }

  /* Fullscreen overlay menu */
  .overlay { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .45s cubic-bezier(.22,1,.36,1), visibility .45s; }
  .overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
  body.menu-open { overflow: hidden; }

  /* Aside slide-in */
  .overlay-aside { opacity: 0; transform: translateX(-16px); transition: opacity .6s cubic-bezier(.22,1,.36,1) .15s, transform .6s cubic-bezier(.22,1,.36,1) .15s; }
  .overlay.is-open .overlay-aside { opacity: 1; transform: translateX(0); }

  /* Big menu items — mask reveal (text slides up from behind a clip) */
  .overlay-menu li { overflow: hidden; padding-bottom: 0.25rem; }
  .overlay-menu .menu-row { display: block; transform: translateY(110%); transition: transform 1.05s cubic-bezier(.6, 0, .2, 1); will-change: transform; }
  .overlay.is-open .overlay-menu .menu-row { transform: translateY(0); }
  .overlay.is-open .overlay-menu li:nth-child(1) .menu-row { transition-delay: .28s; }
  .overlay.is-open .overlay-menu li:nth-child(2) .menu-row { transition-delay: .37s; }
  .overlay.is-open .overlay-menu li:nth-child(3) .menu-row { transition-delay: .46s; }
  .overlay.is-open .overlay-menu li:nth-child(4) .menu-row { transition-delay: .55s; }
  .overlay.is-open .overlay-menu li:nth-child(5) .menu-row { transition-delay: .64s; }
  .overlay.is-open .overlay-menu li:nth-child(6) .menu-row { transition-delay: .73s; }

  /* Menu link interactions */
  .overlay-link .number { color: rgba(106,103,80,.6); transition: color .3s; }
  .overlay-link .label { transition: color .3s, font-style .3s; }
  .overlay-link:hover .number { color: #6A6750; }
  .overlay-link:hover .label { color: #6A6750; font-style: italic; }
  .overlay-link:hover .external-arrow { opacity: 1; transform: translateX(0); color: #6A6750; }

  /* Sub-link hover */
  .overlay-sublink:hover .sub-arrow { opacity: 1; transform: translateX(0); }

  /* Search + contact slide-in */
  .overlay-search, .overlay-contact { opacity: 0; transform: translateY(16px); transition: opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1); }
  .overlay.is-open .overlay-search { opacity: 1; transform: translateY(0); transition-delay: 1.05s; }
  .overlay.is-open .overlay-contact { opacity: 1; transform: translateY(0); transition-delay: 1.2s; }

/* Team accordion */
.ta-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s cubic-bezier(.22,1,.36,1); }
.ta-panel-inner { overflow: hidden; }
.ta-item.ta-open .ta-panel { grid-template-rows: 1fr; }
.ta-icon svg { transition: transform .3s cubic-bezier(.22,1,.36,1); }
.ta-item.ta-open .ta-icon { border-color: #6A6750; color: #6A6750; background: rgba(106,103,80,.08); }
.ta-item.ta-open .ta-icon svg { transform: rotate(45deg); }

/* Team accordion — portrait stays visible from FLIP; bio slides in */
.ta-bio { opacity: 0; transform: translateX(16px); transition: opacity .55s cubic-bezier(.22,1,.36,1) .25s, transform .55s cubic-bezier(.22,1,.36,1) .25s; }
.ta-item.ta-open .ta-bio { opacity: 1; transform: translateX(0); }
