  :root{
    --violet:#7c5cff; --aqua:#22d3ee; --ink:#0b0b12; --ink-2:#101019;
    --panel:#14141f; --panel-2:#1a1a27; --line:rgba(255,255,255,.09);
    --fg:#f4f4fb; --fg-2:#a9a9c2; --fg-3:#6f6f88;
    --radius:18px; --max:1160px;
    --grad:linear-gradient(120deg,var(--violet),var(--aqua));
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
    background:var(--ink); color:var(--fg); line-height:1.55; -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
  .grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

  /* ambient background glows */
  .glow{position:fixed;border-radius:50%;filter:blur(120px);opacity:.5;z-index:0;pointer-events:none}
  .glow.a{width:520px;height:520px;background:#7c5cff;top:-160px;left:-120px}
  .glow.b{width:480px;height:480px;background:#22d3ee;top:280px;right:-160px;opacity:.32}

  /* NAV */
  header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);
    background:rgba(11,11,18,.6);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
  header.scrolled{border-color:var(--line);background:rgba(11,11,18,.82)}
  nav{display:flex;align-items:center;justify-content:space-between;height:70px}
  .brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:19px;letter-spacing:-.02em}
  .logo{width:34px;height:34px;border-radius:10px;background:var(--grad);position:relative;box-shadow:0 6px 20px rgba(124,92,255,.45)}
  .logo::after{content:"";position:absolute;inset:8px;border:2px solid rgba(11,11,18,.9);border-radius:50%}
  .logo::before{content:"";position:absolute;width:7px;height:7px;background:var(--ink);border-radius:50%;top:6px;right:6px;box-shadow:0 0 0 3px var(--aqua)}
  .brand small{display:block;font-size:11px;font-weight:500;color:var(--fg-3);letter-spacing:.02em;margin-top:-3px}
  .nav-links{display:flex;gap:30px;align-items:center}
  .nav-links a{color:var(--fg-2);font-size:14.5px;font-weight:500;transition:color .2s}
  .nav-links a:hover{color:var(--fg)}
  .btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;padding:11px 20px;border-radius:11px;border:1px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .2s,background .2s}
  .btn:hover{transform:translateY(-1px)}
  .btn-primary{background:var(--grad);color:#0a0a12;box-shadow:0 8px 24px rgba(124,92,255,.4)}
  .btn-primary:hover{box-shadow:0 12px 30px rgba(124,92,255,.55)}
  .btn-ghost{border-color:var(--line);color:var(--fg);background:rgba(255,255,255,.02)}
  .btn-ghost:hover{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.05)}
  .nav-cta{display:flex;gap:12px;align-items:center}
  .menu-btn{display:none;background:none;border:0;color:var(--fg);font-size:24px;cursor:pointer}

  section{position:relative;z-index:1}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--aqua);
    border:1px solid var(--line);padding:6px 14px;border-radius:100px;background:rgba(255,255,255,.02)}
  .eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--aqua);box-shadow:0 0 10px var(--aqua)}

  /* HERO */
  .hero{padding:90px 0 40px;text-align:center}
  .hero h1{font-size:clamp(38px,6.2vw,72px);line-height:1.03;letter-spacing:-.03em;font-weight:800;margin:26px auto 0;max-width:14ch}
  .hero p.sub{font-size:clamp(16px,2vw,20px);color:var(--fg-2);max-width:60ch;margin:24px auto 0}
  .hero-cta{display:flex;gap:14px;justify-content:center;margin-top:34px;flex-wrap:wrap}
  .hero-note{margin-top:16px;font-size:13px;color:var(--fg-3)}

  /* product mock */
  .mock{position:relative;max-width:980px;margin:60px auto 0;perspective:1600px}
  .mock-glow{position:absolute;inset:-10% 10% auto;height:70%;background:var(--grad);filter:blur(90px);opacity:.28;border-radius:50%;z-index:0}
  .window{position:relative;z-index:1;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#12121c,#0d0d15);
    box-shadow:0 40px 100px -30px rgba(0,0,0,.8);transform:rotateX(6deg);transform-origin:top}
  .win-bar{display:flex;align-items:center;gap:8px;padding:13px 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.02)}
  .win-bar i{width:11px;height:11px;border-radius:50%;background:#3a3a4a;display:block}
  .win-bar i:nth-child(1){background:#ff5f57}.win-bar i:nth-child(2){background:#febc2e}.win-bar i:nth-child(3){background:#28c840}
  .win-bar .url{margin-left:14px;font-size:12px;color:var(--fg-3);background:rgba(255,255,255,.04);padding:5px 12px;border-radius:7px}
  .win-body{display:grid;grid-template-columns:190px 1fr;min-height:400px}
  .side{border-right:1px solid var(--line);padding:18px 12px;background:rgba(255,255,255,.015)}
  .side .s-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;font-size:13px;color:var(--fg-2);margin-bottom:3px}
  .side .s-item.active{background:rgba(124,92,255,.16);color:#c9bcff;font-weight:600}
  .side .s-item .ic{width:15px;height:15px;border-radius:5px;background:rgba(255,255,255,.14)}
  .side .s-item.active .ic{background:var(--grad)}
  /* text-align:left is doing real work. The mock lives inside .hero, which centres everything, so
     the app screen was inheriting centred text — a dashboard nobody has ever built. It went
     unnoticed while the panel held only numbers, which look acceptable centred; it stopped being
     survivable with the quick-access tiles, whose icon sits left while their label drifted to the
     middle. The real dashboard is left-aligned, so now this is too. */
  .content{padding:22px 24px;text-align:left}
  .content h4{font-size:15px;font-weight:700;margin-bottom:2px}
  .content .muted{font-size:12px;color:var(--fg-3);margin-bottom:18px}
  .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
  .kpi{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:rgba(255,255,255,.02)}
  .kpi .n{font-size:22px;font-weight:800;letter-spacing:-.02em}
  .kpi .l{font-size:11px;color:var(--fg-3);margin-top:2px}
  .kpi .n.g{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  /* Four stat cards, matching the real dashboard's admin row. */
  .kpis.four{grid-template-columns:repeat(4,1fr)}
  /* Labelled icon on top, value, sub-line — the shape of the real Stat component. Each icon takes
     the colour its counterpart has in the app, which is what makes the row read as a screenshot
     rather than as four grey boxes. */
  .kpi .kl{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--fg-3)}
  .kpi .ki{width:14px;height:14px;border-radius:4px;flex:none;background:rgba(255,255,255,.16)}
  .kpi .ki.v{background:var(--violet)}
  .kpi .ki.a{background:var(--aqua)}
  .kpi .ki.m{background:#fbbf24}
  .kpi .ki.e{background:#4ade80}
  .kpi .kl + .n,.kpi .kl + .go{margin-top:7px}
  /* The Performance and Payroll cards have no number in the product — they show an "Open →"
     affordance. Given the same box height as a number so the row of four stays level. */
  .kpi .go{font-size:13px;font-weight:600;color:var(--fg-2);height:26px;display:flex;align-items:center}
  .sec-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
    color:var(--fg-3);margin:16px 0 9px}
  .tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}
  .tile{display:flex;flex-direction:column;gap:7px;border:1px solid var(--line);border-radius:10px;
    padding:11px 10px;font-size:11.5px;background:rgba(255,255,255,.02)}
  .tile .ti{width:15px;height:15px;border-radius:5px;background:rgba(255,255,255,.14)}
  .tile small{color:var(--fg-3);font-size:10px;margin-top:-4px}

  .rows{border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:11px 15px;font-size:12.5px;border-bottom:1px solid var(--line)}
  .row:last-child{border-bottom:0}
  .row .who{display:flex;align-items:center;gap:9px}
  .av{width:24px;height:24px;border-radius:50%;background:var(--grad);font-size:10px;display:flex;align-items:center;justify-content:center;color:#0a0a12;font-weight:700}
  .pill{font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:100px}
  .pill.ok{background:rgba(40,200,100,.16);color:#4ade80}
  .pill.warn{background:rgba(254,188,46,.16);color:#fbbf24}

  /* SECTION HEADERS */
  .sec-head{text-align:center;max-width:720px;margin:0 auto 54px}
  .sec-head h2{font-size:clamp(28px,4.4vw,44px);letter-spacing:-.03em;font-weight:800;line-height:1.08;margin-top:18px}
  .sec-head p{color:var(--fg-2);font-size:17px;margin-top:16px}
  .pad{padding:100px 0}

  /* FEATURE GRID */
  .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .card{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));
    transition:transform .2s,border-color .2s,box-shadow .3s;position:relative;overflow:hidden}
  .card:hover{transform:translateY(-4px);border-color:rgba(124,92,255,.4);box-shadow:0 20px 50px -20px rgba(124,92,255,.4)}
  .card .ci{width:46px;height:46px;border-radius:12px;background:rgba(124,92,255,.14);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
  .card .ci svg{width:23px;height:23px;stroke:var(--aqua);fill:none;stroke-width:1.8}
  .card h3{font-size:18px;font-weight:700;letter-spacing:-.01em}
  .card p{color:var(--fg-2);font-size:14.5px;margin-top:9px}

  /* SPLIT STORY */
  .split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
  .split h2{font-size:clamp(26px,3.6vw,38px);letter-spacing:-.02em;font-weight:800;line-height:1.12}
  .split p{color:var(--fg-2);font-size:16px;margin-top:16px}
  .steps{margin-top:26px;display:flex;flex-direction:column;gap:14px}
  .step{display:flex;gap:14px;align-items:flex-start}
  .step .num{flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:rgba(124,92,255,.16);color:#c9bcff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
  .step b{font-size:15px}
  .step span{display:block;color:var(--fg-3);font-size:13.5px;margin-top:2px}
  .flow{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:rgba(255,255,255,.02)}
  .flow .frow{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;font-size:14px;background:rgba(255,255,255,.02)}
  .flow .frow:last-child{margin-bottom:0}
  .flow .frow .r{font-weight:700}
  .flow .arrow{text-align:center;color:var(--violet);font-size:20px;margin:-4px 0}

  /* PLATFORM strip */
  .platform{border:1px solid var(--line);border-radius:26px;padding:56px;background:
     radial-gradient(120% 120% at 0% 0%,rgba(124,92,255,.16),transparent 55%),
     radial-gradient(120% 120% at 100% 100%,rgba(34,211,238,.14),transparent 55%),var(--panel);
     display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
  .platform h2{font-size:clamp(26px,3.6vw,38px);letter-spacing:-.02em;font-weight:800}
  .platform p{color:var(--fg-2);margin-top:14px;font-size:16px}
  .plist{margin-top:22px;display:grid;gap:12px}
  .plist div{display:flex;gap:11px;align-items:center;font-size:14.5px;color:var(--fg-2)}
  .check{width:22px;height:22px;border-radius:50%;background:var(--grad);color:#0a0a12;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:0 0 auto}

  /* PRICING */
  .prices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
  .price{border:1px solid var(--line);border-radius:var(--radius);padding:30px;background:rgba(255,255,255,.02);display:flex;flex-direction:column}
  .price.feat{border-color:rgba(124,92,255,.5);background:linear-gradient(180deg,rgba(124,92,255,.1),rgba(255,255,255,.02));box-shadow:0 24px 60px -30px rgba(124,92,255,.6);position:relative}
  .price.feat .tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--grad);color:#0a0a12;font-size:11.5px;font-weight:700;padding:5px 14px;border-radius:100px}
  .price h3{font-size:16px;font-weight:700;color:var(--fg-2)}
  .price .amt{font-size:42px;font-weight:800;letter-spacing:-.03em;margin-top:12px}
  .price .amt small{font-size:15px;font-weight:500;color:var(--fg-3)}
  .price .desc{font-size:13.5px;color:var(--fg-3);margin-top:6px;min-height:38px}
  .price ul{list-style:none;margin:22px 0;display:grid;gap:11px}
  .price li{font-size:14px;color:var(--fg-2);display:flex;gap:10px;align-items:flex-start}
  .price li::before{content:"✓";color:var(--aqua);font-weight:800}
  .price .btn{width:100%;justify-content:center;margin-top:auto}

  /* QUOTE */
  .quote{text-align:center;max-width:820px;margin:0 auto}
  .quote p{font-size:clamp(22px,3vw,30px);font-weight:600;letter-spacing:-.02em;line-height:1.35}
  .quote .by{margin-top:22px;color:var(--fg-3);font-size:14px}

  /* CTA */
  .final{border-radius:28px;padding:70px 40px;text-align:center;position:relative;overflow:hidden;
    background:radial-gradient(120% 140% at 50% 0%,rgba(124,92,255,.28),transparent 60%),var(--panel);border:1px solid var(--line)}
  .final h2{font-size:clamp(30px,4.6vw,48px);letter-spacing:-.03em;font-weight:800;line-height:1.06}
  .final p{color:var(--fg-2);font-size:18px;margin:18px auto 0;max-width:52ch}
  .final .hero-cta{margin-top:30px}

  /* FOOTER */
  footer{border-top:1px solid var(--line);margin-top:100px;padding:56px 0 40px}
  .foot{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px}
  .foot h5{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);margin-bottom:16px}
  .foot a{display:block;color:var(--fg-2);font-size:14px;margin-bottom:11px;transition:color .2s}
  .foot a:hover{color:var(--fg)}
  .foot .brand{margin-bottom:14px}
  .foot .tagline{color:var(--fg-3);font-size:14px;max-width:34ch}
  .foot-bottom{margin-top:44px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--fg-3);font-size:13px}
  /* The standing note that the site is information, not an offer. Quiet but not hidden — small
     print that cannot be read is worth nothing, so it keeps real contrast and line height. */
  .foot-note{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);
    color:var(--fg-3);font-size:12.5px;line-height:1.6;max-width:82ch}
  .foot-note + .foot-bottom{margin-top:20px;padding-top:18px}

  /* reveal */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}

  @media(max-width:900px){
    .win-body{grid-template-columns:1fr}.side{display:none}
    .grid,.prices{grid-template-columns:1fr 1fr}
    .split,.platform{grid-template-columns:1fr;gap:34px}
    .foot{grid-template-columns:1fr 1fr}
  }
  @media(max-width:640px){
    .nav-links{display:none}.nav-cta .btn-ghost{display:none}
    .grid,.prices,.kpis,.foot{grid-template-columns:1fr}
    /* .kpis.four and .tiles are more specific than the .kpis rule above, so each needs saying
       explicitly — otherwise four stat cards and six tiles stay in a row on a phone. */
    .kpis.four{grid-template-columns:1fr 1fr}
    .tiles{grid-template-columns:repeat(3,1fr)}
    .pad{padding:70px 0}.hero{padding:56px 0 20px}
    .platform,.final{padding:36px 22px}
  }

  /* ---- HR Services page ------------------------------------------------------------------
     Two hiring tracks (blue-collar / white-collar) sit side by side rather than stacked, because
     a visitor arrives knowing which one they are and should find it without scrolling past the
     other. Each track owns an accent so the two are separable at a glance. */
  .page-hero{padding:76px 0 20px;text-align:center}
  .page-hero h1{font-size:clamp(34px,5.6vw,58px);letter-spacing:-.035em;font-weight:800;line-height:1.06;margin-top:20px}
  .page-hero .sub{color:var(--fg-2);font-size:clamp(16px,2vw,19px);max-width:640px;margin:20px auto 0}
  .page-hero .hero-cta{display:flex;gap:12px;justify-content:center;margin-top:32px;flex-wrap:wrap}

  .tracks{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:stretch}
  .track{border:1px solid var(--line);border-radius:var(--radius);padding:32px;
    background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
    display:flex;flex-direction:column;position:relative;overflow:hidden}
  .track::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--track-accent)}
  .track.blue{--track-accent:linear-gradient(90deg,#22d3ee,#3b82f6)}
  .track.white{--track-accent:linear-gradient(90deg,#7c5cff,#c084fc)}
  .track h3{font-size:22px;letter-spacing:-.02em;margin-bottom:6px}
  .track .roles{color:var(--fg-3);font-size:13.5px;margin-bottom:18px}
  .track p{color:var(--fg-2);font-size:15px;margin-bottom:20px}
  .track ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin-bottom:26px;flex:1}
  .track li{color:var(--fg-2);font-size:14.5px;padding-left:26px;position:relative;line-height:1.5}
  .track li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:8px;
    border-left:2px solid var(--aqua);border-bottom:2px solid var(--aqua);transform:rotate(-45deg)}
  .track.white li::before{border-color:var(--violet)}

  /* Numbered because hiring genuinely is a sequence — the order is the promise. */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:step}
  .step{border:1px solid var(--line);border-radius:14px;padding:24px;background:rgba(255,255,255,.02);counter-increment:step}
  .step::before{content:counter(step,decimal-leading-zero);display:block;font-size:13px;font-weight:700;
    letter-spacing:.08em;color:var(--aqua);margin-bottom:12px}
  .step h4{font-size:16px;letter-spacing:-.01em;margin-bottom:8px}
  .step p{color:var(--fg-2);font-size:14px;line-height:1.55}

  .svc-price{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:840px;margin:0 auto}

  .faq{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
  .faq details{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02);padding:18px 22px}
  .faq summary{cursor:pointer;font-weight:600;font-size:15.5px;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"+";color:var(--aqua);font-size:20px;font-weight:400;line-height:1}
  .faq details[open] summary::after{content:"−"}
  .faq p{color:var(--fg-2);font-size:14.5px;margin-top:14px;line-height:1.6}

  @media(max-width:900px){
    .tracks,.svc-price{grid-template-columns:1fr}
    .steps{grid-template-columns:repeat(2,1fr)}
  }
  @media(max-width:560px){
    .steps{grid-template-columns:1fr}
  }

  /* ---- About page -------------------------------------------------------------------------
     The group structure is the whole point of this page, so it is drawn as an actual tree rather
     than described in a paragraph: a visitor who arrives asking "is Priority HR Services the same
     company as Orbit?" should get the answer from the shape before reading a word.

     The connector is CSS, not SVG, so it reflows with the grid. The horizontal bar spans centre to
     centre of the two children: with `1fr 1fr` and a 20px gap each centre sits 5px inside the 25%
     mark, hence the calc(). Change the gap and that 5px (gap ÷ 4) changes with it. */
  .org{max-width:900px;margin:0 auto}
  .org-parent{border:1px solid rgba(124,92,255,.45);border-radius:var(--radius);padding:28px 30px;text-align:center;
    background:radial-gradient(120% 160% at 50% 0%,rgba(124,92,255,.2),transparent 65%),var(--panel);
    box-shadow:0 24px 60px -34px rgba(124,92,255,.7)}
  .org-parent h3{font-size:26px;letter-spacing:-.02em;font-weight:800;margin-top:12px}
  .org-parent p{color:var(--fg-2);font-size:15px;margin:10px auto 0;max-width:52ch}
  .org-tag{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--fg-3);border:1px solid var(--line);padding:4px 12px;border-radius:100px}
  .org-stem{width:1px;height:34px;margin:0 auto;background:linear-gradient(180deg,rgba(124,92,255,.7),var(--line))}
  .org-children{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-top:34px;position:relative;align-items:stretch}
  .org-children::before{content:"";position:absolute;top:0;left:calc(25% - 5px);right:calc(25% - 5px);height:1px;background:var(--line)}
  .org-node{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:28px;
    background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
    display:flex;flex-direction:column;overflow:hidden}
  .org-node::before{content:"";position:absolute;top:-34px;left:50%;width:1px;height:34px;background:var(--line)}
  .org-node::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--node-accent)}
  .org-node.product{--node-accent:linear-gradient(90deg,#7c5cff,#c084fc)}
  .org-node.services{--node-accent:linear-gradient(90deg,#22d3ee,#3b82f6)}
  .org-node h3{font-size:21px;letter-spacing:-.02em;font-weight:700;margin-top:12px}
  .org-node p{color:var(--fg-2);font-size:14.5px;margin-top:10px;flex:1}
  .org-link{display:inline-block;margin-top:18px;color:var(--aqua);font-size:14px;font-weight:600}
  .org-link:hover{text-decoration:underline}
  .org-note{max-width:640px;margin:36px auto 0;text-align:center;color:var(--fg-3);font-size:14px}
  /* The note under Careers carries the only "email us" in that section, so its link has to look
     like one — at --fg-3 on a dark ground an unstyled anchor is nearly invisible. */
  .org-note a{color:var(--aqua);text-decoration:none;border-bottom:1px solid rgba(34,211,238,.35)}
  .org-note a:hover{border-bottom-color:var(--aqua)}

  /* Directors. Two people, so two columns — a grid built for more would make the company look
     like it is pretending to have a bench it does not have.

     Photo-led and centred: on a page whose job is "who are these people", the face is the content
     and everything under it is a caption. Deliberately short — a name, a role, one line, and a way
     to reach them. */
  .people{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:760px;margin:0 auto}
  /* One director. A single card left in the two-column grid would sit hard against the left edge
     with a hole beside it, which reads as a missing person rather than a deliberate choice —
     so it centres and takes a narrower measure of its own. */
  .people.one{grid-template-columns:1fr;max-width:420px}
  .person{border:1px solid var(--line);border-radius:var(--radius);padding:34px 28px;text-align:center;
    background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));
    transition:transform .2s,border-color .2s,box-shadow .3s}
  .person:hover{transform:translateY(-4px);border-color:rgba(124,92,255,.4);box-shadow:0 20px 50px -20px rgba(124,92,255,.4)}
  .p-photo{width:132px;height:132px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 18px;
    border:2px solid rgba(255,255,255,.1);background:var(--panel-2)}
  /* The fallback when the image file isn't there yet. Same box, so the layout never shifts. */
  .p-initials{display:flex;align-items:center;justify-content:center;background:var(--grad);
    color:#0a0a12;font-weight:800;font-size:38px;letter-spacing:.02em;border:0;
    box-shadow:0 12px 30px -10px rgba(124,92,255,.7)}
  .person h3{font-size:21px;letter-spacing:-.02em;font-weight:700}
  .p-role{display:block;font-size:13.5px;color:var(--aqua);font-weight:600;margin-top:3px}
  .p-line{color:var(--fg-2);font-size:14.5px;margin-top:12px}
  .p-contact{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);
    display:flex;flex-direction:column;gap:6px}
  .p-contact a{font-size:14.5px;color:var(--fg-2);transition:color .2s}
  .p-contact a:first-child{font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}
  .p-contact a:hover{color:var(--aqua)}

  /* Four figures across. Tabular numerals so the row reads as a set rather than four unrelated
     numbers — the digits line up on the same rhythm even at different widths. */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
  .stat{border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;text-align:center;
    background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012))}
  .s-n{font-size:clamp(34px,4.4vw,46px);font-weight:800;letter-spacing:-.035em;line-height:1;
    font-variant-numeric:tabular-nums;background:var(--grad);-webkit-background-clip:text;
    background-clip:text;-webkit-text-fill-color:transparent}
  .s-n span{font-size:.5em;font-weight:700;letter-spacing:-.01em}
  .s-l{margin-top:12px;font-size:15px;font-weight:600}
  .s-s{margin-top:5px;font-size:13px;color:var(--fg-3);line-height:1.45}
  /* Slim variant: the same four numbers with the boxes taken off, sitting directly under a hero.
     Four bordered cards immediately below a headline compete with it — hairline dividers say
     "these belong together" without drawing four more rectangles on the page. */
  .stats.slim{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:0;
    max-width:900px;margin:44px auto 0}
  .stats.slim .stat{border:0;background:none;border-radius:0;padding:26px 18px;
    border-left:1px solid var(--line)}
  .stats.slim .stat:first-child{border-left:0}
  .stats.slim .s-n{font-size:clamp(28px,3.4vw,38px)}
  .stats.slim .s-l{margin-top:9px;font-size:14px}

  /* Vision and mission side by side: they are two halves of one statement, and stacking them makes
     the second look like an afterthought. */
  .vm{display:grid;grid-template-columns:1fr 1fr;gap:52px;border:1px solid var(--line);border-radius:26px;
    padding:52px;background:
      radial-gradient(120% 120% at 0% 0%,rgba(124,92,255,.14),transparent 55%),
      radial-gradient(120% 120% at 100% 100%,rgba(34,211,238,.12),transparent 55%),var(--panel)}
  .vm h2{font-size:clamp(24px,3.2vw,32px);letter-spacing:-.025em;font-weight:800;line-height:1.14;margin-top:16px}
  .vm p{color:var(--fg-2);font-size:15.5px;margin-top:14px}
  .vm-list{list-style:none;margin-top:16px;display:grid;gap:11px}
  .vm-list li{color:var(--fg-2);font-size:15px;padding-left:26px;position:relative;line-height:1.5}
  .vm-list li::before{content:"";position:absolute;left:0;top:8px;width:13px;height:7px;
    border-left:2px solid var(--aqua);border-bottom:2px solid var(--aqua);transform:rotate(-45deg)}

  /* ---- Straight answers ------------------------------------------------------------------
     Question-and-answer, laid out as plain blocks rather than an accordion. An accordion hides
     the answers, and the whole point of this section is that a cautious buyer can see we are not
     hiding them — half the persuasion is that the awkward question is printed at all.
     The rule to the left of each block does the grouping so the questions need no bullets. */
  .qa{display:grid;grid-template-columns:1fr 1fr;gap:22px 48px;max-width:1000px;margin:0 auto}
  .qa-item{padding-left:20px;border-left:2px solid rgba(124,92,255,.35)}
  .qa-q{font-size:16.5px;font-weight:700;letter-spacing:-.01em;line-height:1.35}
  .qa-a{color:var(--fg-2);font-size:14.5px;line-height:1.6;margin-top:9px}
  /* The last answer is the one about money and it reads better across the full width. */
  .qa-item.wide{grid-column:1 / -1}

  /* A single line of secondary business kept out of its own section — careers under the contact
     block. It was a full section; for someone evaluating software it is noise, and for someone
     looking for a job one clear line is enough. */
  .aside-line{text-align:center;margin-top:26px;color:var(--fg-3);font-size:14px}
  .aside-line a{color:var(--aqua);text-decoration:none;border-bottom:1px solid rgba(34,211,238,.35)}
  .aside-line a:hover{border-bottom-color:var(--aqua)}

  .grid.four{grid-template-columns:repeat(4,1fr)}
  /* The counter is the point: a closed list of four, not four things that happen to be nearby. */
  .grid.principles{counter-reset:principle}
  .grid.principles .card{counter-increment:principle;padding-top:22px}
  .grid.principles .card::before{content:counter(principle,decimal-leading-zero);display:block;
    font-size:12.5px;font-weight:700;letter-spacing:.1em;color:var(--aqua);margin-bottom:10px}

  @media(max-width:900px){
    /* Two columns of question-and-answer become one long one on a tablet; side by side at this
       width the answers get too narrow to read as prose. */
    .qa{grid-template-columns:1fr;gap:22px}
    .grid.four,.stats{grid-template-columns:1fr 1fr}
    .vm{grid-template-columns:1fr;gap:36px;padding:36px 26px}
    /* Stacked, the tree becomes a spine: the 34px gap is exactly the stem length, so each node's
       connector spans the space above it instead of overlapping the card there. */
    .org-children{grid-template-columns:1fr;gap:34px}
    .org-children::before{display:none}
    .people{grid-template-columns:1fr}
  }
  @media(max-width:640px){
    .grid.four{grid-template-columns:1fr}
    .stats{grid-template-columns:1fr 1fr;gap:12px}
    /* Two-up on a phone, so the vertical rules have to become a grid of them rather than a row. */
    .stats.slim{gap:0}
    .stats.slim .stat{padding:20px 10px;border-left:1px solid var(--line)}
    .stats.slim .stat:nth-child(odd){border-left:0}
    .stats.slim .stat:nth-child(n+3){border-top:1px solid var(--line)}
    .stat{padding:20px 14px}
    .org-parent{padding:26px 20px}
    .org-node,.person{padding:24px 20px}
    .vm{padding:30px 20px}
  }
