/* Oakwood Fund Management - shared stylesheet */
:root{
    --green:#123c3e;
    --green-2:#0b2a2b;
    --green-3:#1a5457;
    --blue:#456794;
    --blue-band:#374f74;
    --blue-soft:#eef1f6;
    --gold:#d8975e;
    --gold-2:#e9b183;
    /* Accessible gold for TEXT on light bands. Brand gold #d8975e scores
       2.06 against --tint-g, well under the 4.5 AA needs. Use this for any
       gold text that sits on a light background; keep #d8975e for dark. */
    --gold-ink:#8a5117;
    --gold-soft:#faf3ec;
    --white:#ffffff;
    /* tinted section backgrounds - nothing on the page is pure white */
    --tint-g:#e5ecea;
    --tint-b:#e7edf4;
    --tint-w:#f4ebe0;
    --off:#e5ecea;
    --body:#2e3a39;
    --muted:#66807f;
    --hair:rgba(18,60,62,.14);
    --hair-l:rgba(255,255,255,.18);
    --e:cubic-bezier(.19,1,.22,1);

    /* ---- HERO TYPE PAIRING ----------------------------------
       --font-display : the fixed "INVESTING IN TOMORROW'S"
       --font-accent  : the rotating word underneath

       Currently: Inter (grotesque) + Tinos (a metric-compatible
       Times New Roman clone, so it falls back to real Times New
       Roman where that's installed).

       To try Athelas + Vanguard instead, note neither is on Google
       Fonts - Athelas ships with macOS only, Vanguard is a paid
       licence from Sharp Type. You'd need to self-host the .woff2
       files and add an @font-face block. Swap the two lines below:
         --font-display:'Vanguard','Inter',sans-serif;
         --font-accent :'Athelas','Tinos','Times New Roman',serif;   */
    --font-display:'Inter','Lato',Arial,sans-serif;
    --font-accent:'Tinos','Times New Roman',Times,serif;

    /* statement band: Athelas serif over Vanguard display.
       Falls back to Lora / Anton until the real files are hosted. */
    --font-serif:'Athelas','Lora',Georgia,'Times New Roman',serif;
    --font-vanguard:'Vanguard','Vanguard CF','Anton','Oswald',Impact,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Lato','Calibri',Arial,sans-serif;
    font-weight:400;
    color:var(--body);
    background:var(--tint-g);
    font-size:17px;
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1140px;margin:0 auto;padding:0 40px;}
  .mono{font-family:'IBM Plex Mono',ui-monospace,monospace;}

  h1,h2,h3,h4{font-family:'Lato',Arial,sans-serif;line-height:1.15;}

  .sec-title{
    font-size:clamp(26px,3.4vw,40px);
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--green);
  }
  .sec-title.on-green{color:var(--white);}

  /* tri-colour brand rule - draws in when its heading reveals */
  .rule{display:flex;gap:5px;margin-top:22px;}
  .rule.center{justify-content:center;}
  .rule i{height:4px;width:0;display:block;transition:width .7s var(--e);}
  .rule i{background:var(--gold);}
  .rule i:nth-child(2),.rule i:nth-child(3){display:none;}
  .aw.show + .rule i:nth-child(1){width:66px;transition-delay:.28s;}

  /* word-by-word text reveal */
  .aw .w{display:inline-block;overflow:hidden;vertical-align:bottom;}
  .aw .w i{
    display:inline-block;font-style:normal;
    transform:translateY(108%);opacity:0;
    transition:transform .85s var(--e),opacity .55s ease;
  }
  .aw.show .w i{transform:none;opacity:1;}

  .lead{font-size:19px;line-height:1.85;color:var(--body);}
  p + p{margin-top:18px;}

  .btn{
    display:inline-block;
    padding:14px 34px;
    font-size:13px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    border:1px solid var(--green);
    color:var(--green);
    background:transparent;
    transition:background .3s ease,color .3s ease;
  }
  .btn:hover{background:var(--green);color:var(--white);}
  .btn.light{border-color:rgba(255,255,255,.6);color:var(--white);}
  .btn.light:hover{background:var(--white);color:var(--green);}

  /* scroll progress */
  #prog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--gold);z-index:1500;}

  /* fade-up on scroll */
  .fx{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease;}
  .fx.show{opacity:1;transform:none;}

  /* parallax image frames */
  .pw{overflow:hidden;position:relative;}
  .pw > img{transform:scale(1.14);will-change:transform;}

  /* clip-wipe reveal for image frames */
  .wipe{clip-path:inset(0 0 100% 0);transition:clip-path 1.15s var(--e);}
  .wipe.show{clip-path:inset(0 0 0 0);}

  /* staggered list reveals */
  .stagger > *{opacity:0;transform:translateY(26px);transition:opacity .75s var(--e),transform .75s var(--e);}
  .stagger.show > *{opacity:1;transform:none;}
  .stagger.show > *:nth-child(1){transition-delay:.05s}
  .stagger.show > *:nth-child(2){transition-delay:.13s}
  .stagger.show > *:nth-child(3){transition-delay:.21s}
  .stagger.show > *:nth-child(4){transition-delay:.29s}
  .stagger.show > *:nth-child(5){transition-delay:.37s}
  .stagger.show > *:nth-child(6){transition-delay:.45s}
  .stagger.show > *:nth-child(7){transition-delay:.53s}
  .stagger.show > *:nth-child(8){transition-delay:.61s}
  .stagger.show > *:nth-child(9){transition-delay:.69s}
  .stagger.show > *:nth-child(10){transition-delay:.77s}
  .fx-d1{transition-delay:.12s;} .fx-d2{transition-delay:.24s;} .fx-d3{transition-delay:.36s;}
  .fx-d4{transition-delay:.48s;} .fx-d5{transition-delay:.60s;} .fx-d6{transition-delay:.72s;}

  /* ---------- NAV ---------- */
  /* Nav is hidden over the landing image - it slides in once you scroll. */
  .topbar{
    position:fixed;top:0;left:0;right:0;z-index:900;
    background:var(--green);
    box-shadow:0 10px 30px -22px rgba(0,0,0,.6);
    padding:12px 0;
    transform:translateY(-105%);
    opacity:0;
    visibility:hidden;
    transition:transform .55s cubic-bezier(.19,1,.22,1),opacity .4s ease,visibility .55s;
  }
  .topbar.reveal{transform:translateY(0);opacity:1;visibility:visible;}
  .topbar::after{
    content:'';position:absolute;left:0;right:0;bottom:0;height:3px;
    background:var(--gold);
  }
  .topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;}
  .logo{display:flex;align-items:center;gap:12px;}
  .logo img{width:44px;height:44px;object-fit:contain;}
  .logo b{font-size:15px;font-weight:900;letter-spacing:.22em;text-transform:uppercase;color:var(--white);}
  .menu{display:flex;align-items:center;gap:30px;}
  .menu a{
    font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    color:var(--white);padding:6px 0;border-bottom:2px solid transparent;
    transition:border-color .3s ease,color .3s ease;
  }
  .menu a:hover,.menu a.current{border-color:var(--gold);color:var(--gold-2);}
  .burger{display:none;background:none;border:0;cursor:pointer;padding:8px;}
  .burger i{display:block;width:26px;height:2px;background:var(--white);margin:5px 0;}

  .drawer{
    position:fixed;inset:0;background:var(--green);z-index:1000;
    display:flex;flex-direction:column;justify-content:center;gap:6px;padding:40px;
    transform:translateX(100%);transition:transform .45s ease;
  }
  .drawer.open{transform:translateX(0);}
  .drawer a{
    font-size:22px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--white);
    padding:16px 0;border-bottom:1px solid rgba(255,255,255,.15);
  }
  .drawer .x{position:absolute;top:24px;right:30px;font-size:34px;color:var(--white);background:none;border:0;cursor:pointer;line-height:1;}

  /* ---------- HERO - full-bleed B&W landing ---------- */
  .hero{
    position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;
    background:#1c1c1c;overflow:hidden;text-align:center;
  }
  .hero-bg{
    position:absolute;inset:0;
    background:url('images/site/uea-campus.jpg') center 42%/cover no-repeat;
    filter:grayscale(1) contrast(1.04);
    transform:scale(1.06);
    animation:slowzoom 24s ease-out forwards;
  }
  @keyframes slowzoom{to{transform:scale(1);}}
  .hero::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,.22) 0%,rgba(0,0,0,.10) 45%,rgba(0,0,0,.30) 100%);
  }
  /* thin brand strip along the very top, as on the live site */
  .hero-strip{position:absolute;top:0;left:0;right:0;height:9px;z-index:3;background:var(--green);}
  .hero .wrap{position:relative;z-index:2;}
  .hero h1{
    font-family:var(--font-display);
    font-size:clamp(32px,6.1vw,88px);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.10em;
    line-height:1.14;
    color:var(--white);
    text-indent:.10em; /* optical centring against trailing letter-space */
  }
  /* rotating final word - Times italic against the Inter caps above it */
  .rotwrap{
    position:relative;display:inline-block;vertical-align:top;
    letter-spacing:normal;text-indent:0;margin-top:.06em;
  }
  .rot{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em;}
  .rot-w{
    display:inline-block;white-space:nowrap;
    font-family:var(--font-accent);   /* 'Tinos','Times New Roman',Times,serif */
    font-style:italic;
    font-weight:400;
    text-transform:none;
    font-size:1.16em;
    letter-spacing:-.005em;
    transition:transform .52s cubic-bezier(.19,1,.22,1),opacity .38s ease;
  }
  .rot-w.out{transform:translateY(-115%);opacity:0;}
  .rot-w.pre{transform:translateY(115%);opacity:0;transition:none;}
  .rot-line{
    position:absolute;left:0;bottom:-.04em;height:4px;width:0;background:var(--gold);
    transition:width .6s cubic-bezier(.19,1,.22,1);
  }
  .chev{
    position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:3;
    background:none;border:0;cursor:pointer;padding:14px;color:var(--white);
    animation:bob 2.4s ease-in-out infinite;
  }
  .chev svg{display:block;}
  @keyframes bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(9px)}}

  /* ---------- SECTION SHELL ---------- */
  section{padding:110px 0;}
  .band-green{background:var(--green);color:var(--white);}
  .band-green-2{background:var(--green-2);color:var(--white);}
  .band-blue{background:var(--blue-band);color:var(--white);}
  .band-off,.band-tint-g{background:var(--tint-g);}
  .band-tint-b{background:var(--tint-b);}
  .band-gold,.band-tint-w{background:var(--tint-w);}
  .band-green p,.band-green-2 p,.band-blue p{color:rgba(255,255,255,.82);}
  .band-green .lead,.band-green-2 .lead,.band-blue .lead{color:rgba(255,255,255,.88);}
  /* hairline of brand colour at the top of every light band */
  .band-tint-g + .band-tint-g{border-top:1px solid rgba(18,60,62,.10);}

  /* ---------- WHO ARE WE ---------- */
  .who{display:grid;grid-template-columns:1fr 1.15fr;gap:70px;align-items:center;}
  .who img{width:100%;height:430px;object-fit:cover;}

  /* ---------- DELIVERABLES ---------- */
  .deliv-hero{width:100%;height:400px;margin-bottom:70px;}
  .deliv-hero > img{width:100%;height:100%;object-fit:cover;}
  .who img{width:100%;height:100%;object-fit:cover;}
  .block{max-width:900px;}
  .block h3{
    font-size:24px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--green);
    margin-bottom:18px;padding-left:18px;position:relative;
  }
  .block h3::before{
    content:'';position:absolute;left:0;top:.12em;bottom:.12em;width:5px;background:var(--gold);
  }
  .gains{margin-top:30px;border-left:2px solid rgba(18,60,62,.16);padding-left:24px;}
  .gains dt{
    font-size:13px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--green);
    margin-top:22px;
  }
  .gains dt::before{content:'';display:inline-block;width:6px;height:6px;background:var(--gold);
    transform:rotate(45deg);margin-right:10px;vertical-align:middle;}
  .gains dd{font-size:16px;line-height:1.75;margin-top:6px;}
  .photos{display:grid;gap:16px;margin:50px 0;}
  .photos.three{grid-template-columns:1fr 1fr 1fr;}
  .photos img{width:100%;height:250px;object-fit:cover;filter:saturate(.92);transition:filter .4s ease,transform .6s ease;}
  .photos img:hover{filter:saturate(1);transform:scale(1.015);}
  .divider{height:1px;background:var(--hair);margin:80px 0;}

  /* ---------- SECTOR COVERAGE ---------- */
  .cov{display:grid;grid-template-columns:.95fr 1.05fr;gap:70px;align-items:center;}
  .donut-wrap{display:flex;align-items:center;gap:44px;flex-wrap:wrap;}
  .donut{position:relative;width:256px;height:256px;flex:none;}
  .donut svg{width:100%;height:100%;}
  .donut .mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
  .donut .mid b{font-family:'IBM Plex Mono',monospace;font-size:36px;font-weight:600;color:#fff;line-height:1;}
  .donut .mid span{font-size:9.5px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:8px;}
  .legend{display:grid;flex:1;min-width:230px;}
  .legend .li{
    display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--hair-l);
    font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#fff;
    transition:padding-left .35s ease;
  }
  .legend .li:hover{padding-left:10px;}
  .legend .sw{width:11px;height:11px;flex:none;}
  .legend .pc{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;color:var(--gold);letter-spacing:.06em;}
  .cov-note{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.12em;color:rgba(255,255,255,.42);margin-top:26px;}

  /* ---------- WHY ---------- */
  /* Each claim carries a figure and the evidence behind it. */
  .why-list{
    display:grid;grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--hair-l);border-left:1px solid var(--hair-l);
    margin-top:56px;list-style:none;
  }
  .why-list li{
    list-style:none;
    border-right:1px solid var(--hair-l);border-bottom:1px solid var(--hair-l);
    padding:36px 30px 38px;position:relative;overflow:hidden;
    transition:background .45s var(--e);
  }
  .why-list li::after{
    content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--gold);
    transform:scaleX(0);transform-origin:left;transition:transform .55s var(--e);
  }
  .why-list li:hover{background:var(--green-2);}
  .why-list li:hover::after{transform:scaleX(1);}
  .why-list .fig{
    display:block;font-family:'IBM Plex Mono',monospace;
    font-size:38px;font-weight:600;line-height:1;color:var(--gold);
  }
  .why-list .fig s{text-decoration:none;font-size:17px;margin-left:2px;opacity:.85;}
  .why-list h4{
    font-size:13.5px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:#fff;
    margin:18px 0 12px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.16);
  }
  .why-list p{
    font-size:14.5px;line-height:1.65;color:rgba(255,255,255,.68);margin:0;
  }

  /* ---------- VALUES ---------- */
  .values{display:grid;grid-template-columns:repeat(3,1fr);gap:54px;margin-top:60px;}
  .values > div{padding-top:26px;border-top:3px solid var(--hair);transition:border-color .4s ease;}
  .values > div:nth-child(1){border-top-color:var(--gold);}
  .values > div:nth-child(2){border-top-color:var(--blue);}
  .values > div:nth-child(3){border-top-color:var(--green);}
  .values .vnum{
    font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.22em;
    color:var(--muted);display:block;margin-bottom:14px;
  }
  .values h4{
    font-size:17px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--green);
    margin-bottom:18px;
  }
  .values p{font-size:15.5px;line-height:1.8;}
  /* ---------- STATEMENT BAND (rotating cities) ---------- */
  .statement{
    position:relative;overflow:hidden;background:var(--green-2);color:var(--white);
    padding:150px 0 140px;text-align:center;
  }
  .city{position:absolute;inset:0;opacity:0;transition:opacity 1.7s ease;}
  .city.on{opacity:1;}
  .city .sky{
    position:absolute;left:0;bottom:0;width:100%;height:auto;
    transform:translateY(6px) scale(1.03);transition:transform 9s linear;
  }
  .city.on .sky{transform:translateY(0) scale(1.10);}
  .city .photo{
    position:absolute;inset:0;background-position:center;background-size:cover;
    filter:grayscale(.4) contrast(1.06) brightness(.94);
    transform:scale(1.04);transition:transform 9s linear;
  }
  .city.on .photo{transform:scale(1.11);}
  .statement::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(11,42,43,.80) 0%,rgba(11,42,43,.50) 45%,rgba(11,42,43,.90) 100%);
  }
  .statement .wrap{position:relative;z-index:3;}
  .strap-a{
    font-family:var(--font-serif);
    font-style:italic;font-weight:400;
    font-size:clamp(26px,4.6vw,60px);
    line-height:1.14;letter-spacing:.005em;
    color:rgba(255,255,255,.94);
  }
  .strap-b{
    font-family:var(--font-vanguard);
    font-weight:700;text-transform:uppercase;
    font-size:clamp(44px,9.6vw,132px);
    line-height:.92;letter-spacing:.005em;
    color:var(--gold);
    margin-top:.10em;
  }
  /* slide position indicator */
  .city-dots{
    position:absolute;left:0;right:0;bottom:30px;z-index:3;
    display:flex;align-items:center;justify-content:center;gap:9px;
  }
  .city-dots b{
    display:block;width:22px;height:2px;background:rgba(255,255,255,.26);
    transition:background .5s ease;
  }
  .city-dots b.on{background:var(--gold);}

  /* ---------- RECENT ACTIVITY ---------- */
  .posts{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:56px;}
  .post{position:relative;background:var(--white);border:1px solid var(--hair);transition:border-color .35s ease,transform .4s ease;overflow:hidden;}
  .post::before{
    content:'';position:absolute;top:0;left:0;right:0;height:4px;z-index:3;
    background:var(--gold);
    transform:scaleX(0);transform-origin:left;transition:transform .5s var(--e);
  }
  .post:hover::before{transform:scaleX(1);}
  .post:hover{border-color:var(--gold);transform:translateY(-4px);}
  .post .ph{overflow:hidden;height:210px;}
  .post .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease;}
  .post:hover .ph img{transform:scale(1.06);}
  .post .pad{padding:26px 24px 30px;}
  .post .meta{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
  .post h4{font-size:19px;font-weight:900;color:var(--green);margin:12px 0 14px;line-height:1.35;}
  .post .more{font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);}
  .post.empty{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;background:rgba(255,255,255,.45);border-style:dashed;border-color:rgba(69,103,148,.35);}
  .post.empty:hover{transform:none;border-color:var(--hair);}

  /* ---------- LEADERSHIP ---------- */
  .team-photo{width:100%;height:440px;margin-top:56px;}
  .team-photo > img{width:100%;height:100%;object-fit:cover;}
  .who .pw{height:430px;}
  .who .pw > img{width:100%;height:100%;object-fit:cover;}
  .team-cap{
    font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);margin-top:14px;
  }
  .dirs{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:60px;}
  .dir{background:var(--white);border:1px solid var(--hair);transition:border-color .35s ease,transform .4s ease;}
  .dir:hover{border-color:var(--gold);transform:translateY(-4px);}
  .dir .ph{aspect-ratio:1/1;overflow:hidden;background:var(--off);display:flex;align-items:center;justify-content:center;}
  .dir .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease;}
  .dir:hover .ph img{transform:scale(1.05);}
  .dir .ph{background:var(--tint-g);}
  .dir .ph .init{font-size:34px;font-weight:900;letter-spacing:.1em;color:rgba(18,60,62,.3);}
  .dir .pad{padding:22px 20px 26px;}
  .dir h4{font-size:16px;font-weight:900;letter-spacing:.06em;color:var(--green);margin-bottom:5px;}
  .dir .role{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);}
  .dir .li{display:inline-block;margin-top:14px;font-size:11.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .3s;}
  .dir:hover .li{color:var(--green);}

  /* ---------- GRADUATE DESTINATIONS ---------- */
  .dest-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;}
  .dest-stat{text-align:right;}
  .dest-stat b{display:block;font-family:'IBM Plex Mono',monospace;font-size:52px;font-weight:600;color:var(--green);line-height:1;}
  .dest-stat b .count{color:var(--green);}
  .dest-stat span{font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
  /* featured tier - the names worth stopping on */
  .feat{
    display:grid;grid-template-columns:repeat(5,1fr);gap:1px;
    background:rgba(18,60,62,.12);border:1px solid rgba(18,60,62,.12);margin-top:52px;
  }
  .feat .f{
    background:var(--white);padding:38px 22px 32px;text-align:center;
    position:relative;overflow:hidden;
    opacity:0;transform:translateY(30px);
    transition:opacity .8s var(--e),transform .8s var(--e),background .4s ease;
  }
  .feat.show .f{opacity:1;transform:none;}
  .feat.show .f:nth-child(1){transition-delay:.05s}
  .feat.show .f:nth-child(2){transition-delay:.15s}
  .feat.show .f:nth-child(3){transition-delay:.25s}
  .feat.show .f:nth-child(4){transition-delay:.35s}
  .feat.show .f:nth-child(5){transition-delay:.45s}
  .feat .f::after{
    content:'';position:absolute;left:50%;bottom:0;width:0;height:4px;background:var(--gold);
    transform:translateX(-50%);transition:width .5s var(--e);
  }
  .feat .f:hover::after{width:100%;}
  .feat .f:hover{background:var(--tint-g);}
  .feat .f b{
    /* fixed-height box so every mark - tall monogram or wide wordmark -
       sits on the same optical centre line and the roles below align */
    display:flex;align-items:center;justify-content:center;
    min-height:54px;text-align:center;
    font-size:clamp(17px,1.6vw,23px);font-weight:900;letter-spacing:.01em;
    color:var(--green);line-height:1.25;
  }
  .feat .f span{
    display:block;margin-top:12px;font-family:'IBM Plex Mono',monospace;
    font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  }
  .belt-label{
    display:flex;align-items:center;gap:16px;margin-top:52px;
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.24em;
    text-transform:uppercase;color:var(--muted);
  }
  .belt-label::after{content:'';flex:1;height:1px;background:var(--hair);}

  /* scrolling destination band - two rows, opposite directions */
  .belt{
    margin-top:18px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
    padding:6px 0;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  }
  .belt-row{overflow:hidden;white-space:nowrap;padding:16px 0;}
  .belt-row + .belt-row{border-top:1px solid var(--hair);}
  .belt-track{display:inline-flex;align-items:center;will-change:transform;}
  .belt-row:nth-child(1) .belt-track{animation:beltL 46s linear infinite;}
  .belt-row:nth-child(2) .belt-track{animation:beltR 52s linear infinite;}
  .belt:hover .belt-track{animation-play-state:paused;}
  @keyframes beltL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @keyframes beltR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
  .firm{
    display:inline-flex;align-items:center;flex:none;
    padding:0 30px;font-size:16px;font-weight:700;letter-spacing:.02em;color:#566362;
    transition:color .3s ease;
  }
  .firm:hover{color:var(--green);}
  .firm::after{
    content:'';display:inline-block;width:5px;height:5px;margin-left:30px;
    background:var(--gold);transform:rotate(45deg);opacity:.75;
  }
  .firm img{max-height:30px;width:auto;object-fit:contain;filter:grayscale(1) opacity(.7);transition:filter .3s ease;}
  .firm:hover img{filter:grayscale(0) opacity(1);}
  .dest-note{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.12em;color:var(--muted);margin-top:22px;}

  /* roles breakdown */
  .roles{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;
    background:rgba(18,60,62,.12);border:1px solid rgba(18,60,62,.12);margin-top:20px;}
  .role-c{
    background:var(--white);padding:28px 22px 30px;position:relative;
    transition:background .4s ease;
  }
  .role-c:hover{background:var(--tint-g);}
  .role-c .n{
    display:block;font-family:'IBM Plex Mono',monospace;font-size:30px;font-weight:600;
    color:var(--green);line-height:1;
  }
  .role-c .n s{text-decoration:none;font-size:15px;color:var(--gold);margin-left:3px;}
  .role-c h4{
    font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;
    color:var(--green);margin:16px 0 12px;line-height:1.45;
    padding-bottom:12px;border-bottom:2px solid var(--gold);
  }
  .role-c ul{list-style:none;}
  .role-c li{
    font-size:13px;line-height:1.5;color:#5a6867;padding:4px 0 4px 13px;position:relative;
  }
  .role-c li::before{
    content:'';position:absolute;left:0;top:11px;width:4px;height:4px;
    background:var(--gold);transform:rotate(45deg);
  }

  /* ---------- RECRUITMENT TIMELINE ---------- */
  .steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:64px;}
  .steps::before{
    content:'';position:absolute;top:19px;left:0;right:0;height:2px;background:var(--hair-l);
  }
  .steps::after{
    content:'';position:absolute;top:19px;left:0;height:2px;width:0;background:var(--gold);
    transition:width 1.6s cubic-bezier(.19,1,.22,1) .2s;
  }
  .steps.show::after{width:100%;}
  .step{position:relative;padding-right:20px;}
  .step .dot{
    width:40px;height:40px;border-radius:50%;background:var(--green-2);border:2px solid var(--hair-l);
    display:flex;align-items:center;justify-content:center;position:relative;z-index:2;
    font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;color:#fff;
    transition:background .4s ease,border-color .4s ease;
  }
  .steps.show .step:nth-child(1) .dot{background:var(--gold);border-color:var(--gold);color:var(--green);}
  .step h4{font-size:14px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:26px 0 10px;}
  .step p{font-size:14.5px;line-height:1.7;margin:0;}
  .step .when{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:12px;display:block;}

  /* ---------- FAQ ---------- */
  .faq{margin-top:56px;border-top:1px solid var(--hair);max-width:900px;}
  .qa{border-bottom:1px solid var(--hair);}
  .qa button{
    width:100%;background:none;border:0;cursor:pointer;text-align:left;
    display:flex;align-items:center;justify-content:space-between;gap:24px;
    padding:26px 0;font-family:'Lato',Arial,sans-serif;
    font-size:17px;font-weight:900;letter-spacing:.03em;color:var(--green);
    transition:color .3s ease;
  }
  .qa button:hover{color:var(--gold-ink);}
  .qa.open button{color:var(--green);}
  .qa.open{background:linear-gradient(90deg,rgba(255,255,255,.75),transparent 65%);}
  .qa.open .ans p{border-left:3px solid var(--gold);padding-left:20px;}
  .qa .sign{position:relative;width:16px;height:16px;flex:none;}
  .qa .sign::before,.qa .sign::after{
    content:'';position:absolute;background:var(--gold);transition:transform .4s cubic-bezier(.19,1,.22,1);
  }
  .qa .sign::before{top:7px;left:0;width:16px;height:2px;}
  .qa .sign::after{left:7px;top:0;width:2px;height:16px;}
  .qa.open .sign::after{transform:rotate(90deg);}
  .qa .ans{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.19,1,.22,1);}
  .qa .ans p{padding:0 0 26px;font-size:16px;line-height:1.8;max-width:760px;margin:0;}

  /* ---------- LIBRARY TEASER ---------- */
  .lib{
    position:relative;overflow:hidden;
    display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;
    background:linear-gradient(115deg,var(--green) 0%,var(--green) 45%,var(--blue-band) 100%);
    color:#fff;padding:52px 48px;margin-top:60px;
  }
  .lib::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gold);}
  .lib h3{font-size:24px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;}
  .lib p{margin:0;max-width:560px;}

  /* ---------- NEWSLETTER ---------- */
  .news{margin-top:26px;}
  .news form{display:flex;gap:0;max-width:330px;border:1px solid rgba(255,255,255,.3);}
  .news input{
    flex:1;min-width:0;background:none;border:0;padding:12px 14px;color:#fff;
    font-family:'Lato',Arial,sans-serif;font-size:14px;
  }
  .news input::placeholder{color:rgba(255,255,255,.45);}
  .news input:focus{outline:none;background:rgba(255,255,255,.05);}
  .news button{
    background:var(--gold);border:0;cursor:pointer;padding:12px 18px;
    font-family:'Lato',Arial,sans-serif;font-size:11.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;
    color:var(--green);transition:background .3s ease;
  }
  .news button:hover{background:#e9b183;}
  .news .msg{font-size:12.5px;margin-top:10px;color:var(--gold-ink);min-height:18px;}

  /* ---------- CONTACT ---------- */
  .contact{text-align:center;}
  .contact p{max-width:560px;margin:26px auto 0;color:rgba(255,255,255,.85);}
  .contact .btn{margin-top:38px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--green);color:rgba(255,255,255,.65);padding:60px 0 34px;border-top:1px solid var(--hair-l);}
  .fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:50px;align-items:start;}
  .fgrid p{font-size:14.5px;line-height:1.8;max-width:330px;margin-top:16px;}
  .fcol h5{font-size:11.5px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--white);margin-bottom:16px;}
  .fcol a{display:block;font-size:14.5px;padding:5px 0;transition:color .3s;}
  .fcol a:hover{color:var(--gold);}
  .social{display:flex;gap:14px;margin-top:22px;}
  .social a{width:36px;height:36px;border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;transition:border-color .3s,background .3s;}
  .social a:hover{border-color:var(--gold);background:rgba(216,151,94,.14);}
  .fbot{margin-top:46px;padding-top:22px;border-top:1px solid var(--hair-l);font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.1em;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;}

  @media (max-width:960px){
    .who{grid-template-columns:1fr;gap:36px;}
    .cov{grid-template-columns:1fr;gap:44px;}
    .why-list{grid-template-columns:1fr 1fr;}
    .values{grid-template-columns:1fr;gap:40px;}
    .posts{grid-template-columns:1fr;}
    .fgrid{grid-template-columns:1fr;gap:36px;}
    .dirs{grid-template-columns:repeat(2,1fr);}
    .feat{grid-template-columns:repeat(2,1fr);}
    .roles{grid-template-columns:repeat(2,1fr);}
    .steps{grid-template-columns:repeat(2,1fr);gap:44px 30px;}
    .steps::before,.steps::after{display:none;}
    .lib{grid-template-columns:1fr;padding:40px 32px;}
    .team-photo{height:320px;}
  }
  @media (max-width:720px){
    .wrap{padding:0 24px;}
    .menu{display:none;}
    .burger{display:block;}
    section{padding:80px 0;}
    .photos.three{grid-template-columns:1fr;}
    .why-list{grid-template-columns:1fr;}
    .deliv-hero{height:250px;}
    .hero h1{letter-spacing:.07em;text-indent:.07em;}
    .rot-w{font-size:1.1em;}
    .chev{bottom:28px;}
    .chev svg{width:36px;height:20px;}
    .dirs{grid-template-columns:1fr;}
    .feat{grid-template-columns:1fr;}
    .feat .f{padding:26px 18px;}
    .roles{grid-template-columns:1fr;}
    .statement{padding:100px 0 92px;}
    .city-dots{bottom:22px;}
    .city-dots b{width:16px;}
    .steps{grid-template-columns:1fr;gap:36px;}
    .firm{font-size:14px;padding:0 20px;}
    .firm::after{margin-left:20px;}
    .dest-head{gap:24px;}
    .dest-stat{text-align:left;}
    .dest-stat b{font-size:40px;}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none!important;transition-duration:.01ms!important;}
    .fx,.stagger > *,.feat .f{opacity:1!important;transform:none!important;}
    .wipe{clip-path:none!important;}
    .aw .w i{opacity:1!important;transform:none!important;}
    .pw > img{transform:none!important;}
    .adv-row .adv-ph,.adv-row .adv-meta{opacity:1!important;transform:none!important;}
    .adv-ph::after{transform:scaleX(1)!important;}
  }

/* ============================================================
   SUB-PAGE STYLES (people.html and any future inner pages)
   ============================================================ */

/* nav is pinned open on inner pages - there is no full-bleed hero */
body.sub .topbar{transform:none;opacity:1;visibility:visible;}

.page-head{
  position:relative;background:var(--green-2);color:var(--white);
  padding:190px 0 90px;overflow:hidden;
}
.page-head::before{
  content:'';position:absolute;inset:0;opacity:.20;
  background:url('images/site/team-group-photo.jpg') center/cover no-repeat;
  filter:grayscale(1);
}
.page-head::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,42,43,.72),rgba(11,42,43,.95));
}
.page-head .wrap{position:relative;z-index:2;}
.page-head h1{
  font-family:var(--font-display);
  font-size:clamp(40px,7vw,88px);font-weight:800;text-transform:uppercase;
  letter-spacing:.08em;color:var(--white);
}
.page-head p{margin-top:26px;max-width:600px;color:rgba(255,255,255,.8);font-size:18px;}
.crumb{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--gold);margin-bottom:22px;
}
.crumb a{color:rgba(255,255,255,.55);}
.crumb a:hover{color:var(--gold-ink);}

/* --- divisions: numbered rows, so any number of sectors fits --- */
.divs{margin-top:52px;border-top:1px solid rgba(18,60,62,.16);}
.divi{
  display:grid;grid-template-columns:64px 250px 1fr;gap:32px;align-items:baseline;
  padding:28px 16px 28px 0;border-bottom:1px solid rgba(18,60,62,.16);
  position:relative;transition:background .35s ease,padding-left .4s var(--e);
}
.divi:hover{background:rgba(255,255,255,.55);padding-left:16px;}
.divi::after{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);
  transform:scaleY(0);transform-origin:center;transition:transform .4s var(--e);
}
.divi:hover::after{transform:scaleY(1);}
.divi .n{
  font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;
  letter-spacing:.1em;color:var(--gold);
}
.divi h3{
  font-size:19px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green);margin:0;line-height:1.3;
}
.divi p{font-size:15px;line-height:1.7;color:#576564;margin:0;max-width:640px;}

/* --- management cards --- */
.mgmt{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:56px;}

/* --- advisory committee rows --- */
.adv{margin-top:58px;border-top:1px solid var(--hair);}
.adv-row{
  display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);
  gap:52px;align-items:center;
  padding:52px 0;border-bottom:1px solid var(--hair);
}
.adv-row:last-child{border-bottom:0;}

/* Alternate the side the portrait sits on. The column widths have to
   mirror as well: `order` only moves items between columns, so without
   this the photo lands in the wide text column on every flipped row. */
.adv-row:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,240px);}
.adv-row:nth-child(even) .adv-ph{order:2;}
.adv-row:nth-child(even) .adv-meta{order:1;}

/* the row fades; the two halves slide in towards each other */
.adv .adv-row.fx{transform:none;transition:opacity .9s ease;}
.adv-row .adv-ph,.adv-row .adv-meta{
  opacity:0;transition:transform 1.05s var(--e),opacity 1.05s ease;
}
.adv-row .adv-ph{transform:translateX(-52px);transition-delay:.05s;}
.adv-row .adv-meta{transform:translateX(52px);transition-delay:.20s;}
.adv-row:nth-child(even) .adv-ph{transform:translateX(52px);}
.adv-row:nth-child(even) .adv-meta{transform:translateX(-52px);}
.adv-row.show .adv-ph,.adv-row.show .adv-meta{transform:none;opacity:1;}

.adv-ph{
  position:relative;overflow:hidden;background:var(--tint-g);
  aspect-ratio:1/1;
}
/* thin gold rule that draws in along the base of the portrait */
.adv-ph::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .9s var(--e) .5s;
}
.adv-row.show .adv-ph::after{transform:scaleX(1);}
.adv-row:nth-child(even) .adv-ph::after{transform-origin:right;}
.adv-ph img{
  width:100%;height:100%;object-fit:cover;object-position:center 22%;
  transition:transform 1.2s var(--e),filter 1.2s ease;
  filter:grayscale(.35);
}
.adv-row:hover .adv-ph img{transform:scale(1.045);filter:grayscale(0);}

.adv-meta h3{font-size:clamp(21px,2.2vw,27px);font-weight:900;letter-spacing:.01em;color:var(--green);}
.adv-role{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-ink);margin:11px 0 7px;
}
.adv-now{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--muted);
  text-transform:uppercase;margin-bottom:16px;}
.adv-meta p{font-size:15px;line-height:1.75;margin:0;max-width:620px;}
.adv-meta p + p{margin-top:14px;}

/* --- alumni teaser --- */
.alum{display:grid;grid-template-columns:1fr auto;gap:44px;align-items:center;
  background:var(--green);color:#fff;padding:52px 48px;margin-top:20px;position:relative;overflow:hidden;}
.alum::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gold);}
.alum h3{font-size:24px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;}
.alum p{margin:0;max-width:620px;color:rgba(255,255,255,.82);}

@media (max-width:1000px){
  .divs{grid-template-columns:repeat(2,1fr);}
  .mgmt{grid-template-columns:repeat(2,1fr);}
  .adv-row{grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:36px;padding:42px 0;}
  .adv-row:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,190px);}
  .alum{grid-template-columns:1fr;padding:40px 32px;}
}
@media (max-width:720px){
  .divs{grid-template-columns:1fr;}
  .mgmt{grid-template-columns:1fr;}
  .adv-row,.adv-row:nth-child(even){grid-template-columns:1fr;gap:26px;padding:46px 0;}
  .adv-row:nth-child(even) .adv-ph{order:1;}
  .adv-row:nth-child(even) .adv-meta{order:2;}
  .adv-ph{max-width:210px;aspect-ratio:1/1;}
  .adv-row .adv-ph,.adv-row .adv-meta,
  .adv-row:nth-child(even) .adv-ph,.adv-row:nth-child(even) .adv-meta{transform:translateY(26px);}
  .adv-row.show .adv-ph,.adv-row.show .adv-meta{transform:none;}
  .page-head{padding:150px 0 70px;}
}

/* advisory: optional LinkedIn link */
.adv-link{
  display:inline-block;margin-top:16px;
  font-size:11.5px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);border-bottom:2px solid transparent;padding-bottom:3px;
  transition:color .3s ease,border-color .3s ease;
}
.adv-link:hover{color:var(--green);border-color:var(--gold);}

/* ============================================================
   RESEARCH LIBRARY (insights.html)
   ============================================================ */
.lib-tools{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  margin-top:52px;padding-bottom:22px;border-bottom:1px solid var(--hair);
}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  padding:9px 16px;border:1px solid rgba(18,60,62,.22);background:transparent;color:var(--green);
  cursor:pointer;transition:background .3s ease,color .3s ease,border-color .3s ease;
}
.chip:hover{border-color:var(--gold);}
.chip.on{background:var(--green);border-color:var(--green);color:#fff;}
.chip .c{opacity:.55;margin-left:7px;}
.lib-search{position:relative;}
.lib-search input{
  font-family:'Lato',Arial,sans-serif;font-size:14px;
  padding:11px 16px 11px 38px;width:260px;max-width:100%;
  border:1px solid rgba(18,60,62,.22);background:#fff;color:var(--body);
}
.lib-search input:focus{outline:none;border-color:var(--gold);}
.lib-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);opacity:.45;}

.lib-count{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);margin:26px 0 6px;
}
.lib-group{margin-top:34px;}
.lib-group h3{
  font-size:13px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--green);
  padding-bottom:12px;border-bottom:2px solid var(--gold);margin-bottom:4px;
}
.file{
  display:grid;grid-template-columns:52px 1fr auto auto;gap:20px;align-items:center;
  padding:17px 14px 17px 6px;border-bottom:1px solid var(--hair);
  transition:background .3s ease,padding-left .35s var(--e);
}
.file:hover{background:rgba(255,255,255,.62);padding-left:14px;}
.tag{
  font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;letter-spacing:.08em;
  padding:5px 0;text-align:center;color:#fff;background:var(--muted);
}
.tag.pdf{background:#b4483f;}
.tag.xlsx{background:#1d6f42;}
.tag.pptx{background:#c04a26;}
.file .nm{font-size:16px;font-weight:700;color:var(--green);line-height:1.35;}
.file .sub{
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);margin-top:5px;
}
.file .yr{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.1em;color:var(--muted);
  white-space:nowrap;
}
.file .dl{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--green);
  border-bottom:2px solid transparent;padding-bottom:3px;transition:border-color .3s ease;
}
.file:hover .dl{border-color:var(--gold);}
.file .dl svg{transition:transform .35s var(--e);}
.file:hover .dl svg{transform:translateY(2px);}
.lib-empty{
  padding:60px 0;text-align:center;color:var(--muted);
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
}

/* portfolio page */
.perf{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:start;margin-top:52px;}
.sheets{border-top:1px solid var(--hair);}
.sheet{padding:20px 0;border-bottom:1px solid var(--hair);}
.sheet h4{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);margin-bottom:7px;
}
.sheet p{font-size:14.5px;line-height:1.7;margin:0;}
.dlcard{
  background:var(--green);color:#fff;padding:34px 32px;position:relative;overflow:hidden;
}
.dlcard::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--gold);}
.dlcard h4{font-size:18px;font-weight:900;letter-spacing:.06em;margin-bottom:8px;}
.dlcard .meta{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-2);margin-bottom:18px;
}
.dlcard p{margin:0 0 24px;font-size:14.5px;color:rgba(255,255,255,.8);}
.dlcard + .dlcard{margin-top:20px;}

/* internal page */
.gate{
  max-width:720px;margin:0 auto;text-align:center;
}
.gate .lock{
  width:64px;height:64px;margin:0 auto 30px;border:2px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.gate h2{font-size:clamp(24px,3vw,34px);font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--green);}
.gate p{margin-top:22px;}
.gate .btn{margin-top:34px;}
.opts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:60px;text-align:left;}
.opt{background:#fff;border:1px solid var(--hair);padding:30px 26px 32px;}
.opt .n{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;color:var(--gold);}
.opt h4{font-size:15px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin:12px 0 12px;}
.opt p{font-size:14px;line-height:1.7;margin:0;}

@media (max-width:1000px){
  .perf{grid-template-columns:1fr;gap:40px;}
  .opts{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .file{grid-template-columns:44px 1fr;gap:14px;row-gap:8px;}
  .file .yr{grid-column:2;}
  .file .dl{grid-column:2;justify-self:start;}
  .lib-tools{flex-direction:column;align-items:stretch;}
  .lib-search input{width:100%;}
}

code{
  font-family:'IBM Plex Mono',monospace;font-size:.88em;
  background:var(--tint-g);padding:2px 6px;color:var(--green);
}

/* ============================================================
   DESTINATIONS - logo sizing
   Drop an <img> in place of a firm name and it sizes itself.
   Featured marks show in full brand colour; the scrolling belt
   stays greyscale so 37 logos don't fight each other.
   ============================================================ */
.feat .f b img{
  max-height:46px;max-width:100%;width:auto;display:block;
  opacity:.92;transition:opacity .4s ease,transform .4s var(--e);
}
.feat .f:hover b img{opacity:1;transform:scale(1.04);}

.firm img{
  max-height:28px;width:auto;display:block;
  filter:grayscale(1) opacity(.66);transition:filter .35s ease;
}
.firm:hover img{filter:grayscale(0) opacity(1);}

/* ============================================================
   WHY OAKWOOD - hover retype
   Label letters re-reveal left to right and the figure recounts.
   ============================================================ */
.why-list h4 .l{display:inline-block;white-space:pre;}
.why-list li:hover h4 .l{
  animation:retype .34s var(--e) both;
  animation-delay:calc(var(--i) * 22ms);
}
@keyframes retype{
  0%  {opacity:0;transform:translateY(-4px) scaleY(.86);}
  60% {opacity:1;}
  100%{opacity:1;transform:none;}
}
/* caret that runs along behind the letters */
.why-list h4{position:relative;}
.why-list li:hover h4::after{
  content:'';position:absolute;left:0;bottom:13px;width:2px;height:13px;background:var(--gold);
  animation:caret var(--dur,.6s) steps(1) both;
}
@keyframes caret{
  0%  {opacity:1;transform:translateX(0);}
  95% {opacity:1;transform:translateX(var(--w,100px));}
  100%{opacity:0;transform:translateX(var(--w,100px));}
}
@media (prefers-reduced-motion:reduce){
  .why-list li:hover h4 .l{animation:none;}
  .why-list li:hover h4::after{display:none;}
}

/* ============================================================
   INTERNAL - dark console. Deliberately unlike the public pages:
   this is a tool, not a shopfront.
   ============================================================ */
body.console{background:var(--green-2);color:rgba(255,255,255,.8);}
body.console .page-head{padding:180px 0 70px;}
body.console .page-head::before{opacity:.13;}
body.console section{padding:86px 0;border-top:1px solid rgba(255,255,255,.09);}
body.console .sec-title{color:#fff;}
body.console .lead{color:rgba(255,255,255,.72);}
body.console p{color:rgba(255,255,255,.68);}
body.console .btn{border-color:rgba(255,255,255,.5);color:#fff;}
body.console .btn:hover{background:#fff;color:var(--green-2);}

/* status bar under the page title */
.status{
  display:flex;flex-wrap:wrap;gap:0;border:1px solid rgba(255,255,255,.14);margin-top:34px;
}
.status div{
  flex:1 1 200px;padding:20px 24px 22px;border-right:1px solid rgba(255,255,255,.14);
}
.status div:last-child{border-right:0;}
.status .k{
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(255,255,255,.45);
}
.status .v{font-size:16px;font-weight:700;color:#fff;margin-top:9px;line-height:1.35;}
.status .v.gold{color:var(--gold);}

/* working spaces */
.spaces{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:46px;}
.space{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.12);
  padding:24px 22px 22px;
  transition:background .4s var(--e),border-color .4s var(--e),transform .4s var(--e);
}
.space:hover{background:rgba(255,255,255,.07);border-color:var(--gold);transform:translateY(-3px);}
.space::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);
  transform:scaleY(0);transform-origin:top;transition:transform .45s var(--e);
}
.space:hover::before{transform:scaleY(1);}
.space.lead-space{background:var(--gold);border-color:var(--gold);}
.space.lead-space::before{display:none;}
.space.lead-space h3{color:var(--green-2);}
.space.lead-space .who{color:rgba(11,42,43,.62);}
.space.lead-space p{color:rgba(11,42,43,.78);}
.space.lead-space .go{color:var(--green-2);border-color:var(--green-2);}
.space.lead-space:hover{background:var(--gold-2);transform:translateY(-3px);}
.space h3{
  font-size:14px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#fff;
}
.space .who{
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-2);margin:8px 0 14px;
}
.space p{font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.6);margin:0 0 20px;flex:1;}
.space .go{
  font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;border-bottom:2px solid var(--gold);padding-bottom:3px;align-self:flex-start;
}
.space .pending{
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.34);align-self:flex-start;
}

/* process steps reuse .steps, which is already built for dark bands */
body.console .steps::before{background:rgba(255,255,255,.16);}
body.console .step .dot{background:var(--green-2);}

@media (max-width:1000px){ .spaces{grid-template-columns:repeat(2,1fr);} }
@media (max-width:720px){
  .spaces{grid-template-columns:1fr;}
  .status div{flex:1 1 100%;border-right:0;border-bottom:1px solid rgba(255,255,255,.14);}
}

/* ============================================================
   INTERNAL - countdown and document shelf
   ============================================================ */
.countdown{
  border:1px solid rgba(255,255,255,.16);margin-top:36px;
  background:rgba(255,255,255,.03);
}
.cd-top{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px;
  padding:20px 26px;border-bottom:1px solid rgba(255,255,255,.14);
}
.cd-top .lbl{
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;color:rgba(255,255,255,.45);
}
.cd-top .ev{font-size:19px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#fff;}
.cd-top .when{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.1em;color:var(--gold);
}
.cd-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.cd-cell{
  padding:30px 20px 26px;text-align:center;border-right:1px solid rgba(255,255,255,.14);
}
.cd-cell:last-child{border-right:0;}
.cd-cell b{
  display:block;font-family:'IBM Plex Mono',monospace;
  font-size:clamp(34px,5.6vw,62px);font-weight:600;line-height:1;color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.cd-cell span{
  display:block;margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.42);
}
.cd-cell.sec b{color:rgba(255,255,255,.85);}
.cd-passed{padding:34px 26px;text-align:center;color:rgba(255,255,255,.6);}

/* document shelf */
.shelf{margin-top:44px;border-top:1px solid rgba(255,255,255,.12);}
.shelf-row{
  display:grid;grid-template-columns:56px 1fr auto;gap:22px;align-items:center;
  padding:18px 10px 18px 0;border-bottom:1px solid rgba(255,255,255,.12);
  transition:background .3s ease,padding-left .35s var(--e);
}
.shelf-row.live:hover{background:rgba(255,255,255,.05);padding-left:12px;}
.shelf-row.dead{opacity:.45;}
.shelf .tag{
  font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;letter-spacing:.08em;
  padding:5px 0;text-align:center;color:#fff;background:var(--muted);
}
.shelf .tag.pdf{background:#b4483f;}
.shelf .tag.xlsx{background:#1d6f42;}
.shelf .tag.pptx{background:#c04a26;}
.shelf .tag.docx{background:#2b579a;}
.shelf .tag.link{background:var(--gold);color:var(--green-2);}
.shelf h4{font-size:15.5px;font-weight:900;letter-spacing:.04em;color:#fff;}
.shelf p{font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.55);margin:5px 0 0;}
.shelf .act{
  font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.38);white-space:nowrap;
}
.shelf-row.live .act{color:#fff;border-bottom:2px solid var(--gold);padding-bottom:3px;}
.shelf-note{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;
  color:rgba(255,255,255,.38);margin-top:22px;
}

@media (max-width:1000px){
  .divi{grid-template-columns:48px 1fr;gap:10px 20px;}
  .divi p{grid-column:2;}
  .cd-grid{grid-template-columns:repeat(2,1fr);}
  .cd-cell:nth-child(2){border-right:0;}
  .cd-cell:nth-child(1),.cd-cell:nth-child(2){border-bottom:1px solid rgba(255,255,255,.14);}
}
@media (max-width:720px){
  .shelf-row{grid-template-columns:44px 1fr;}
  .shelf .act{grid-column:2;justify-self:start;}
}

  /* ================================================================
     Internal page gate - PLACEHOLDER ONLY, NOT SECURITY
     The markup and page content are already in the browser before
     this ever renders. Real access control belongs to the workspace.
     ================================================================ */
  #gate{
    position:fixed;inset:0;z-index:4000;
    background:#0b2a2b;
    display:flex;align-items:center;justify-content:center;
    padding:30px;
  }
  #gate.hide{display:none;}
  .gate-box{width:100%;max-width:400px;text-align:center;}
  .gate-box .mark{
    font-family:'Inter',Arial,sans-serif;font-weight:900;letter-spacing:.2em;
    text-transform:uppercase;font-size:15px;color:#fff;margin-bottom:8px;
  }
  .gate-box .sub{
    font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;
    letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
    margin-bottom:34px;
  }
  .gate-box input{
    width:100%;padding:15px 16px;margin-bottom:14px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.22);
    color:#fff;font-family:'IBM Plex Mono',ui-monospace,monospace;
    font-size:14px;letter-spacing:.1em;text-align:center;border-radius:2px;
    outline:none;transition:border-color .25s ease;
  }
  .gate-box input:focus{border-color:var(--gold);}
  .gate-box button{
    width:100%;padding:15px;cursor:pointer;border-radius:2px;
    background:var(--gold);border:1px solid var(--gold);color:#12211f;
    font-family:'Lato',Arial,sans-serif;font-weight:700;font-size:13px;
    letter-spacing:.14em;text-transform:uppercase;
    transition:background .25s ease;
  }
  .gate-box button:hover{background:var(--gold-2);}
  .gate-note{
    margin-top:26px;font-family:'IBM Plex Mono',ui-monospace,monospace;
    font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
    color:rgba(255,255,255,.38);line-height:1.8;
  }


  /* ---- skip to content (keyboard users) ---- */
  .skip{
    position:absolute;left:-9999px;top:0;z-index:5000;
    background:var(--green);color:#fff;padding:14px 22px;
    font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;
    letter-spacing:.14em;text-transform:uppercase;
  }
  .skip:focus{left:0;}

  /* ---- nav call to action ---- */
  .menu a.nav-cta{
    background:var(--gold);color:#12211f;
    padding:9px 20px;border-bottom:0;border:1px solid var(--gold);
    border-radius:2px;transition:background .3s ease,border-color .3s ease;
  }
  .menu a.nav-cta:hover{background:var(--gold-2);border-color:var(--gold-2);color:#12211f;}
