  :root{
    --burgundy:#5A1420;
    --burgundy-deep:#3E0E17;
    --crimson:#9E2233;
    --bronze:#B07A2E;
    --gilt:#C9A24B;
    --gilt-soft:#D9BC78;
    --cream:#F4ECDD;
    --parchment:#EFE4CE;
    --ink:#2A1418;
    --ink-soft:#5b4a48;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; scroll-padding-top:76px; }
  body{
    font-family:'Inter',system-ui,sans-serif;
    color:var(--ink);
    background:var(--cream);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  /* ---------- Type ---------- */
  .eyebrow{
    font-family:'Cinzel',serif;
    text-transform:uppercase;
    letter-spacing:.32em;
    font-size:.72rem;
    font-weight:600;
    color:var(--bronze);
    margin:0 0 1.1rem;
    display:inline-block;
  }
  .display{
    font-family:'Fraunces',serif;
    font-weight:600;
    line-height:1.04;
    letter-spacing:-.01em;
  }
  h1.display{ font-size:clamp(2.6rem,6.2vw,4.9rem); }
  h2.display{ font-size:clamp(2rem,4.4vw,3.2rem); }
  h3.display{ font-size:clamp(1.3rem,2.4vw,1.7rem); }
  .lede{ font-size:clamp(1.05rem,1.7vw,1.25rem); color:var(--ink-soft); font-weight:400; }
  .wordmark{ font-family:'Cinzel',serif; letter-spacing:.12em; font-weight:700; }

  /* ---------- Wing hairline divider (signature) ---------- */
  .wing-rule{
    display:flex; align-items:center; gap:14px;
    width:min(420px,80%); margin:1.6rem 0;
  }
  .wing-rule.center{ margin-left:auto; margin-right:auto; }
  .wing-rule span{
    height:1px; flex:1;
    background:linear-gradient(90deg,transparent,var(--gilt));
  }
  .wing-rule span:last-child{ background:linear-gradient(90deg,var(--gilt),transparent); }
  .wing-rule i{
    color:var(--gilt); font-size:.7rem; transform:rotate(45deg);
    width:8px; height:8px; border:1px solid var(--gilt); flex:0 0 auto;
  }
  .on-dark .eyebrow{ color:var(--gilt-soft); }

  /* ---------- Buttons ---------- */
  .btn-emblem{
    font-family:'Inter',sans-serif; font-weight:600; letter-spacing:.02em;
    border-radius:2px; padding:.8rem 1.6rem; border:1px solid transparent;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  }
  .btn-fill{ background:var(--crimson); color:var(--cream); }
  .btn-fill:hover{ background:#86182a; color:#fff; transform:translateY(-2px); box-shadow:0 12px 30px -12px rgba(158,34,51,.7); }
  .btn-line{ background:transparent; color:var(--gilt-soft); border-color:rgba(201,162,75,.55); }
  .btn-line:hover{ background:rgba(201,162,75,.12); color:#fff; border-color:var(--gilt); transform:translateY(-2px); }
  .btn-line-dark{ background:transparent; color:var(--burgundy); border-color:rgba(90,20,32,.35); }
  .btn-line-dark:hover{ background:var(--burgundy); color:var(--cream); transform:translateY(-2px); }

  /* ---------- Navbar ---------- */
  .nav-shell{
    position:fixed; top:0; left:0; right:0; z-index:1030;
    transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
    padding:.65rem 0;
  }
  .nav-shell.scrolled{
    background:rgba(62,14,23,.94);
    backdrop-filter:blur(10px);
    box-shadow:0 1px 0 rgba(201,162,75,.25);
    padding:.35rem 0;
  }
  .nav-shell .navbar-brand{ display:flex; align-items:center; gap:12px; color:var(--cream); }
  .nav-shell .navbar-brand img{ height:42px; width:auto; transition:height .35s ease; }
  .nav-shell.scrolled .navbar-brand img{ height:36px; }
  .nav-shell .brand-text{ line-height:1; }
  .nav-shell .brand-text .b1{ font-family:'Cinzel',serif; font-weight:700; font-size:1.02rem; letter-spacing:.14em; color:var(--cream); }
  .nav-shell .brand-text .b2{ font-size:.62rem; letter-spacing:.34em; text-transform:uppercase; color:var(--gilt-soft); }
  .nav-shell .nav-link{ color:rgba(244,236,221,.82); font-size:.85rem; font-weight:500; letter-spacing:.04em; padding:.5rem .95rem; position:relative; }
  .nav-shell .nav-link:hover,.nav-shell .nav-link:focus{ color:#fff; }
  .nav-shell .nav-link::after{
    content:""; position:absolute; left:.95rem; right:.95rem; bottom:.28rem; height:1px;
    background:var(--gilt); transform:scaleX(0); transform-origin:left; transition:transform .28s ease;
  }
  .nav-shell .nav-link:hover::after{ transform:scaleX(1); }
  .navbar-toggler{ border-color:rgba(201,162,75,.4); }
  .navbar-toggler:focus{ box-shadow:0 0 0 .2rem rgba(201,162,75,.3); }
  .navbar-toggler-icon{ background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23C9A24B' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

  /* ---------- Sections ---------- */
  section{ padding:clamp(4.5rem,9vw,8rem) 0; position:relative; }
  .sec-dark{ background:linear-gradient(160deg,var(--burgundy) 0%,var(--burgundy-deep) 100%); color:var(--cream); }
  .sec-dark .lede{ color:rgba(244,236,221,.78); }
  .sec-cream{ background:var(--cream); }
  .sec-parch{ background:linear-gradient(180deg,#F4ECDD,#EAdEC6); }

  /* ---------- Hero ---------- */
  .hero{
    min-height:100vh; display:flex; align-items:center; text-align:center;
    background:radial-gradient(120% 90% at 50% 0%,#6e1a28 0%,var(--burgundy) 42%,var(--burgundy-deep) 100%);
    color:var(--cream); overflow:hidden; padding-top:96px;
  }
  .hero .emblem{
    width:clamp(180px,28vw,300px); height:auto; margin:0 auto 1.4rem;
    filter:drop-shadow(0 22px 38px rgba(0,0,0,.45));
    animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both;
  }
  @keyframes rise{ from{ opacity:0; transform:translateY(26px) scale(.96);} to{ opacity:1; transform:none;} }
  .hero h1{ margin:.3rem 0 0; }
  .hero h1 .gilt{ color:var(--gilt-soft); font-style:italic; }
  .hero .lede{ max-width:680px; margin:1.4rem auto 2.2rem; }
  .hero-cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
  .scroll-hint{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); color:rgba(244,236,221,.6); font-size:1.4rem; animation:bob 2.2s ease-in-out infinite; }
  @keyframes bob{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,8px);} }

  /* ---------- Stats ---------- */
  .stat-band{ border-top:1px solid rgba(201,162,75,.25); border-bottom:1px solid rgba(201,162,75,.25); }
  .stat{ text-align:center; padding:1.2rem .5rem; }
  .stat .num{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(2.2rem,4.6vw,3.4rem); color:var(--gilt); line-height:1; }
  .stat .lab{ font-family:'Cinzel',serif; text-transform:uppercase; letter-spacing:.2em; font-size:.66rem; color:rgba(244,236,221,.72); margin-top:.6rem; }

  /* ---------- Division cards ---------- */
  .div-card{
    background:var(--parchment); border:1px solid rgba(90,20,32,.1);
    border-top:3px solid var(--bronze); border-radius:3px; height:100%; padding:2.1rem 1.7rem;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .div-card:hover{ transform:translateY(-6px); box-shadow:0 26px 50px -28px rgba(62,14,23,.5); border-top-color:var(--crimson); }
  .div-card .ic{
    width:58px; height:58px; border-radius:50%; display:grid; place-items:center; margin-bottom:1.2rem;
    background:linear-gradient(150deg,var(--burgundy),var(--crimson)); color:var(--gilt-soft); font-size:1.5rem;
  }
  .div-card h3{ color:var(--burgundy); margin-bottom:.6rem; }
  .div-card p{ color:var(--ink-soft); font-size:.96rem; margin-bottom:1rem; }
  .div-card .tagchips{ display:flex; flex-wrap:wrap; gap:.4rem; }
  .div-card .chip{ font-size:.72rem; letter-spacing:.02em; padding:.28rem .6rem; border:1px solid rgba(90,20,32,.2); border-radius:40px; color:var(--burgundy); background:rgba(255,255,255,.4); }

  /* ---------- Companies ---------- */
  .group-head{ display:flex; align-items:center; gap:.9rem; margin-bottom:1.4rem; }
  .group-head .seal{ font-family:'Cinzel',serif; font-weight:700; color:var(--gilt); border:1px solid rgba(201,162,75,.4); border-radius:50%; width:46px; height:46px; display:grid; place-items:center; font-size:1.1rem; flex:0 0 auto; }
  .group-head h3{ color:var(--cream); margin:0; }
  .group-head .sub{ font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gilt-soft); }
  .co-card{
    background:rgba(244,236,221,.04); border:1px solid rgba(201,162,75,.22); border-radius:3px;
    padding:1.2rem 1.25rem; height:100%; transition:background .3s ease, transform .3s ease, border-color .3s ease;
  }
  .co-card:hover{ background:rgba(244,236,221,.09); transform:translateY(-4px); border-color:var(--gilt); }
  .co-card .nm{ font-family:'Fraunces',serif; font-weight:600; font-size:1.12rem; color:var(--cream); }
  .co-card .ty{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gilt-soft); margin-top:.25rem; }
  .co-card .ds{ color:rgba(244,236,221,.66); font-size:.88rem; margin:.7rem 0 0; }
  .parent-strip{ text-align:center; margin-bottom:3rem; }

  /* ---------- Timeline ---------- */
  .timeline{ position:relative; max-width:760px; margin:0 auto; padding-left:8px; }
  .timeline::before{ content:""; position:absolute; left:14px; top:6px; bottom:6px; width:2px; background:linear-gradient(180deg,var(--gilt),rgba(201,162,75,.15)); }
  .tl-item{ position:relative; padding:0 0 2.4rem 56px; }
  .tl-item:last-child{ padding-bottom:0; }
  .tl-item .dot{ position:absolute; left:6px; top:4px; width:18px; height:18px; border-radius:50%; background:var(--crimson); border:3px solid var(--cream); box-shadow:0 0 0 3px rgba(158,34,51,.25); }
  .tl-item .yr{ font-family:'Cinzel',serif; font-weight:700; letter-spacing:.1em; color:var(--bronze); font-size:.9rem; }
  .tl-item h3{ color:var(--burgundy); margin:.2rem 0 .4rem; }
  .tl-item p{ color:var(--ink-soft); margin:0; font-size:.98rem; }

  /* ---------- Presence ---------- */
  .pres-card{ background:rgba(244,236,221,.05); border:1px solid rgba(201,162,75,.22); border-radius:3px; padding:1.8rem 1.5rem; height:100%; text-align:center; }
  .pres-card .flagdot{ font-size:1.8rem; color:var(--gilt); margin-bottom:.6rem; }
  .pres-card h3{ color:var(--cream); margin-bottom:.3rem; }
  .pres-card .status{ display:inline-block; margin-top:.7rem; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; padding:.25rem .7rem; border-radius:40px; }
  .st-active{ background:rgba(120,180,120,.16); color:#bfe0bf; border:1px solid rgba(120,180,120,.4); }
  .st-soon{ background:rgba(201,162,75,.16); color:var(--gilt-soft); border:1px solid rgba(201,162,75,.4); }
  .st-plan{ background:rgba(244,236,221,.08); color:rgba(244,236,221,.7); border:1px solid rgba(244,236,221,.2); }

  /* ---------- Contact ---------- */
  .contact-card{ background:var(--parchment); border:1px solid rgba(90,20,32,.12); border-radius:4px; padding:clamp(1.6rem,4vw,3rem); }
  .form-control{ background:#fbf6ec; border:1px solid rgba(90,20,32,.18); border-radius:3px; padding:.8rem 1rem; color:var(--ink); }
  .form-control:focus{ border-color:var(--crimson); box-shadow:0 0 0 .2rem rgba(158,34,51,.12); background:#fff; }
  .form-label{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--burgundy); font-weight:600; }
  .contact-line{ display:flex; gap:.8rem; align-items:flex-start; margin-bottom:1.3rem; }
  .contact-line i{ color:var(--gilt); font-size:1.2rem; margin-top:2px; }
  .contact-line .k{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gilt-soft); }
  .contact-line .v{ color:var(--cream); }
  .editnote{ font-size:.78rem; color:rgba(244,236,221,.5); }

  /* ---------- Footer ---------- */
  footer{ background:var(--burgundy-deep); color:rgba(244,236,221,.7); padding:3.5rem 0 2rem; border-top:1px solid rgba(201,162,75,.2); }
  footer .f-brand{ display:flex; align-items:center; gap:12px; margin-bottom:1rem; }
  footer .f-brand img{ height:46px; }
  footer .f-brand .b1{ font-family:'Cinzel',serif; font-weight:700; letter-spacing:.12em; color:var(--cream); font-size:1.05rem; }
  footer h4{ font-family:'Cinzel',serif; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gilt); margin-bottom:1rem; }
  footer a{ color:rgba(244,236,221,.7); text-decoration:none; display:block; padding:.2rem 0; font-size:.9rem; transition:color .2s; }
  footer a:hover{ color:var(--gilt-soft); }
  .footer-bottom{ border-top:1px solid rgba(201,162,75,.15); margin-top:2.4rem; padding-top:1.4rem; font-size:.8rem; color:rgba(244,236,221,.5); }

  /* watermark emblem */
  .watermark{ position:absolute; right:-40px; bottom:-30px; width:340px; opacity:.05; pointer-events:none; }

  /* ---------- Scroll progress (gold wing line) ---------- */
  .scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:0%; z-index:1040;
    background:linear-gradient(90deg,var(--bronze),var(--gilt),var(--gilt-soft));
    box-shadow:0 0 10px rgba(201,162,75,.6); transition:width .1s linear;
  }

  /* ---------- Hero staggered entrance ---------- */
  .hero .stagger{ opacity:0; transform:translateY(20px); animation:rise .9s cubic-bezier(.2,.7,.2,1) both; }
  .hero .d1{ animation-delay:.35s; }
  .hero .d2{ animation-delay:.5s; }
  .hero .d3{ animation-delay:.68s; }
  .hero .d4{ animation-delay:.86s; }
  /* emblem keeps its rise, then floats gently */
  .hero .emblem{ animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both, float 6s ease-in-out 1.3s infinite; }
  @keyframes float{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-12px);} }

  /* ---------- Wing-rule spreads open on reveal ---------- */
  .wing-rule span{ transform:scaleX(0); transform-origin:inherit; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
  .wing-rule span:first-child{ transform-origin:right; }
  .wing-rule span:last-child{ transform-origin:left; }
  .wing-rule i{ opacity:0; transform:rotate(45deg) scale(.4); transition:opacity .5s ease .35s, transform .5s ease .35s; }
  .reveal.in .wing-rule span,.wing-rule.center span{ transform:scaleX(1); }
  .reveal.in .wing-rule i,.wing-rule.center i{ opacity:1; transform:rotate(45deg) scale(1); }

  /* ---------- Button gold sheen ---------- */
  .btn-emblem{ position:relative; overflow:hidden; }
  .btn-emblem::before{
    content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);
    transform:skewX(-18deg); transition:left .6s ease;
  }
  .btn-emblem:hover::before{ left:140%; }

  /* ---------- Staggered card reveal ---------- */
  .reveal-stagger > *{ opacity:0; transform:translateY(26px); transition:opacity .6s ease, transform .6s ease; }
  .reveal-stagger.in > *{ opacity:1; transform:none; }
  .reveal-stagger.in > *:nth-child(1){ transition-delay:.05s; }
  .reveal-stagger.in > *:nth-child(2){ transition-delay:.15s; }
  .reveal-stagger.in > *:nth-child(3){ transition-delay:.25s; }
  .reveal-stagger.in > *:nth-child(4){ transition-delay:.35s; }

  /* ---------- Timeline animation ---------- */
  .tl-item{ opacity:0; transform:translateX(-22px); transition:opacity .6s ease, transform .6s ease; }
  .tl-item.in{ opacity:1; transform:none; }
  .tl-item .dot{ transform:scale(0); transition:transform .45s cubic-bezier(.34,1.56,.64,1) .15s; }
  .tl-item.in .dot{ transform:scale(1); animation:dotpulse 2.4s ease-in-out 1s infinite; }
  @keyframes dotpulse{ 0%,100%{ box-shadow:0 0 0 3px rgba(158,34,51,.25);} 50%{ box-shadow:0 0 0 7px rgba(158,34,51,.08);} }

  /* ---------- Division icon spin on hover ---------- */
  .div-card .ic{ transition:transform .5s cubic-bezier(.34,1.56,.64,1), background .3s ease; }
  .div-card:hover .ic{ transform:rotate(-8deg) scale(1.08); }

  /* ---------- Nav active link ---------- */
  .nav-shell .nav-link.active{ color:#fff; }
  .nav-shell .nav-link.active::after{ transform:scaleX(1); }

  /* ---------- Reveal ---------- */
  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:none; }

  @media (max-width:575px){
    .hero-cta .btn-emblem{ width:100%; }
    .nav-shell .brand-text .b1{ font-size:.92rem; }
  }
  @media (prefers-reduced-motion:reduce){
    html{ scroll-behavior:auto; }
    *{ animation:none !important; transition:none !important; }
    .reveal,.hero .stagger,.tl-item,.reveal-stagger > *{ opacity:1 !important; transform:none !important; }
    .wing-rule span{ transform:scaleX(1) !important; }
    .wing-rule i{ opacity:1 !important; transform:rotate(45deg) !important; }
    .tl-item .dot{ transform:scale(1) !important; }
  }
