﻿  :root{
    --burgundy:#800020;
    --gold:#D4AF37;
    --slate9:#2F3E46;
    --bone:#F7F5F2;
    --ink:#1A1A1A;
  }
  *{ -webkit-tap-highlight-color: transparent; }
  html{ scroll-behavior: auto; }
  body{
    background:#FFFFFF;
    color:var(--ink);
    font-family:'Inter',sans-serif;
    overflow-x:hidden;
    cursor:default;
  }
  .font-serif{ font-family:'Playfair Display', serif; }
  .font-mono{ font-family:'Space Grotesk', sans-serif; }

  /* grain overlay */
  .grain{
    position:fixed; inset:0; z-index:60; pointer-events:none;
    opacity:.035; mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  ::selection{ background:var(--burgundy); color:#fff; }

  /* custom cursor */
  .nx-cursor{
    position:fixed; top:0; left:0; width:64px; height:64px;
    border-radius:999px; pointer-events:none; z-index:70;
    display:flex; align-items:center; justify-content:center;
    transform:translate(-50%,-50%) scale(0);
    background:rgba(128,0,32,.92);
    color:#F7F5F2;
    font-family:'Space Grotesk',sans-serif;
    font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    transition: transform .35s cubic-bezier(.19,1,.22,1), background .3s ease, opacity .3s ease;
    opacity:0;
    mix-blend-mode: normal;
  }
  .nx-cursor.show{ opacity:1; transform:translate(-50%,-50%) scale(1); }
  @media (max-width: 900px){ .nx-cursor{ display:none !important; } }

  /* nav */
  #site-nav{
    position:fixed; top:0; left:0; right:0; z-index:50;
    transition: background-color .5s ease, border-color .5s ease, backdrop-filter .5s ease, padding .4s ease;
    border-bottom:1px solid transparent;
  }
  #site-nav.scrolled{
    background:rgba(255,255,255,.86);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom:1px solid rgba(26,26,26,.08);
  }
  .nav-link{ position:relative; }
  .nav-link::after{
    content:''; position:absolute; left:0; right:0; bottom:-5px; height:1px;
    background:var(--gold); transform:scaleX(0); transform-origin:left;
    transition:transform .45s cubic-bezier(.19,1,.22,1);
  }
  .nav-link:hover::after{ transform:scaleX(1); }

  /* eyebrow */
  .eyebrow{
    font-family:'Space Grotesk',sans-serif;
    letter-spacing:.35em; text-transform:uppercase; font-size:11px;
  }

  /* thin gold rule */
  .rule-gold{
    height:1px; background:linear-gradient(90deg, var(--gold), transparent);
  }

  /* magnetic buttons */
  .btn-primary{
    position:relative; overflow:hidden;
    background:var(--burgundy); color:#fff;
  }
  .btn-primary .fill{
    position:absolute; inset:0; background:#5c0016; transform:translateX(-101%);
    transition:transform .5s cubic-bezier(.19,1,.22,1);
  }
  .btn-primary:hover .fill{ transform:translateX(0); }
  .btn-primary span{ position:relative; z-index:1; }

  .btn-outline{
    border:1px solid var(--ink); color:var(--ink);
    position:relative; overflow:hidden;
  }
  .btn-outline .fill{
    position:absolute; inset:0; background:var(--ink); transform:translateY(101%);
    transition:transform .5s cubic-bezier(.19,1,.22,1); z-index:0;
  }
  .btn-outline:hover .fill{ transform:translateY(0); }
  .btn-outline span{ position:relative; z-index:1; transition:color .4s ease; }
  .btn-outline:hover span{ color:#fff; }

  /* practice list */
  .practice-row{ border-top:1px solid rgba(26,26,26,.12); cursor:pointer; }
  .practice-row:last-child{ border-bottom:1px solid rgba(26,26,26,.12); }
  .practice-num{ transition: font-size .5s cubic-bezier(.19,1,.22,1), color .5s ease, opacity .5s ease; }
  .practice-row.active .practice-num{ color:var(--gold); }
  .practice-body{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .55s cubic-bezier(.19,1,.22,1); }
  .practice-row.active .practice-body{ grid-template-rows:1fr; }
  .practice-inner{ overflow:hidden; }

  /* form inputs floating label */
  .nx-field{ position:relative; }
  .nx-field input, .nx-field select, .nx-field textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid rgba(26,26,26,.28);
    padding:22px 0 10px 0; font-family:'Inter',sans-serif; font-size:16px; color:var(--ink);
    outline:none; transition:border-color .3s ease;
  }
  .nx-field.on-dark input, .nx-field.on-dark select, .nx-field.on-dark textarea{
    color:#F7F5F2; border-bottom:1px solid rgba(247,245,242,.32);
  }
  .nx-field.on-dark select option {
    color: var(--ink);
    background: #FFFFFF;
  }
  .nx-field textarea{ resize:vertical; min-height:90px; }
  .nx-field label{
    position:absolute; left:0; top:22px; font-size:16px; color:rgba(26,26,26,.5);
    pointer-events:none; transition:all .25s ease; font-family:'Inter',sans-serif;
  }
  .nx-field.on-dark label{ color:rgba(247,245,242,.55); }
  .nx-field input:focus, .nx-field select:focus, .nx-field textarea:focus{ border-bottom-color:var(--gold); }
  .nx-field input:focus ~ label,
  .nx-field input:not(:placeholder-shown) ~ label,
  .nx-field select:focus ~ label,
  .nx-field select.filled ~ label,
  .nx-field textarea:focus ~ label,
  .nx-field textarea:not(:placeholder-shown) ~ label{
    top:2px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold);
  }
  .nx-error{ font-size:12px; color:var(--burgundy); margin-top:6px; min-height:16px; font-family:'Space Grotesk',sans-serif; }
  .nx-field.on-dark .nx-error{ color:#e8a3ac; }
  .nx-field.err input, .nx-field.err select, .nx-field.err textarea{ border-bottom-color:var(--burgundy); }

  select{ appearance:none; -webkit-appearance:none; background-image:none; }

  /* step indicator */
  .step-dot{ width:8px; height:8px; border-radius:999px; background:rgba(247,245,242,.25); transition:all .4s ease; }
  .step-dot.active{ background:var(--gold); }
  .step-dot.done{ background:rgba(212,175,55,.5); }

  .form-step{ display:none; }
  .form-step.active{ display:block; }

  /* counters */
  .counter{ font-variant-numeric: tabular-nums; }

  /* utility: reveal */
  .reveal{ opacity:0; transform:translateY(28px); }

  ::-webkit-scrollbar{ width:9px; }
  ::-webkit-scrollbar-track{ background:#F7F5F2; }
  ::-webkit-scrollbar-thumb{ background:#c9c2ba; }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  }

  .glass{
    background:rgba(255,255,255,.6);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(26,26,26,.08);
  }

  .clip-diag{ clip-path: polygon(0 0, 100% 0, 100% 92%, 0 100%); }

  .nx-line-hover{ background-image: linear-gradient(var(--ink), var(--ink)); background-position:0 100%; background-repeat:no-repeat; background-size:0% 1px; transition:background-size .4s cubic-bezier(.19,1,.22,1); }
  .nx-line-hover:hover{ background-size:100% 1px; }

  /* ---------- marquee ticker ---------- */
  .marquee-track{
    display:flex; width:max-content;
    animation: marquee 32s linear infinite;
  }
  .marquee-wrap:hover .marquee-track{ animation-play-state: paused; }
  @keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

  /* ---------- hero watermark ---------- */
  .hero-watermark{
    position:absolute; top:50%; left:0; transform:translateY(-50%);
    font-family:'Playfair Display',serif; font-weight:800; font-style:italic;
    font-size:min(32vw, 420px); line-height:1; color:transparent;
    -webkit-text-stroke: 1px rgba(128,0,32,.09);
    white-space:nowrap; pointer-events:none; user-select:none; z-index:0;
  }

  /* ---------- duotone / pattern panels (photography substitutes) ---------- */
  .nx-panel{ position:relative; overflow:hidden; }
  .nx-panel::before{ content:''; position:absolute; inset:0; opacity:.16; background-size:22px 22px; }
  .nx-panel.p-burgundy{ background:linear-gradient(155deg,#8a0325 0%,#5c0016 100%); }
  .nx-panel.p-burgundy::before{ background-image: linear-gradient(rgba(212,175,55,.5) 1px, transparent 1px), linear-gradient(90deg, rgba(212,175,55,.5) 1px, transparent 1px); }
  .nx-panel.p-charcoal{ background:linear-gradient(155deg,#3a4d56 0%,#212d33 100%); }
  .nx-panel.p-charcoal::before{ background-image: linear-gradient(rgba(212,175,55,.45) 1px, transparent 1px), linear-gradient(90deg, rgba(212,175,55,.45) 1px, transparent 1px); }
  .nx-panel.p-gold{ background:linear-gradient(155deg,#c9a13b 0%,#8f6f1f 100%); }
  .nx-panel.p-gold::before{ background-image: linear-gradient(rgba(128,0,32,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(128,0,32,.35) 1px, transparent 1px); }
  .nx-panel .nx-panel-glow{ position:absolute; width:65%; height:65%; border-radius:999px; filter:blur(60px); opacity:.55; }
  .nx-panel .nx-panel-num{ position:absolute; font-family:'Playfair Display',serif; font-style:italic; font-weight:700; color:rgba(255,255,255,.14); line-height:.8; }

  /* dotted connector between stacked case rows */
  .nx-dotline{ background-image: radial-gradient(rgba(212,175,55,.6) 1.4px, transparent 1.4px); background-size:8px 8px; }

  .big-headline{ letter-spacing:-0.01em; }
