  :root{
    --ink:#12203A; --ink-70: rgba(18,32,58,.7);
    --paper:#F5F5F1; --paper-line: rgba(18,32,58,.12);
    --brass:#B8863A; --brass-deep:#96692A;
    --forest:#2F6F4E; --slate:#5B6472; --white:#FFFFFF;
    --radius: 2px; --max: 1160px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', sans-serif; -webkit-font-smoothing:antialiased;}
  a{color:inherit;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3{font-family:'Fraunces', serif; font-weight:500; margin:0; letter-spacing:-0.01em;}
  .mono{font-family:'IBM Plex Mono', monospace;}
  .eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep); margin-bottom:14px; display:flex; align-items:center; gap:10px;}
  .eyebrow::before{content:""; width:22px; height:1px; background:var(--brass-deep); display:inline-block;}
  :focus-visible{outline:2px solid var(--brass-deep); outline-offset:3px;}

  nav{position:sticky; top:0; z-index:50; background:rgba(245,245,241,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--paper-line);}
  nav .wrap{display:flex; align-items:center; justify-content:space-between; height:72px;}
  .logo{font-family:'Fraunces', serif; font-size:22px; font-weight:600; letter-spacing:-0.02em;}
  .logo span{color:var(--brass-deep);}
  .navlinks{display:flex; gap:24px; font-size:13.5px; color:var(--ink); font-weight:500;}
  .navlinks a{text-decoration:none; transition:color .15s; white-space:nowrap;}
  .navlinks a:hover{color:var(--ink);}
  .nav-cta{font-size:13px; font-weight:600; padding:10px 18px; background:var(--ink); color:var(--paper); text-decoration:none; border-radius:var(--radius); white-space:nowrap;}
  @media (max-width:980px){ .navlinks{display:none;} }

  .hero{padding:80px 0 64px;}
  .hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:start;}
  @media (max-width:960px){ .hero-grid{grid-template-columns:1fr;} }
  .hero .eyebrow{color:var(--forest);}
  .hero .eyebrow::before{background:var(--forest);}
  .hero h1{font-size:clamp(30px, 3.8vw, 46px); line-height:1.14; margin-bottom:18px;}
  .hero-sub{font-size:16.5px; line-height:1.62; color:var(--ink-70); max-width:48ch; margin-bottom:30px;}
  .cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:30px;}
  .btn{font-size:14px; font-weight:600; padding:13px 20px; text-decoration:none; border-radius:var(--radius); display:inline-flex; align-items:center; gap:8px; border:1px solid transparent; cursor:pointer;}
  .btn-primary{background:var(--ink); color:var(--paper);}
  .btn-primary:hover{background:#0b1526;}
  .btn-secondary{background:transparent; color:var(--ink); border-color:var(--ink);}
  .btn-secondary:hover{background:var(--ink); color:var(--paper);}
  .hero-note{font-size:13px; color:var(--slate); border-top:1px solid var(--paper-line); padding-top:16px; max-width:48ch;}

  .calc-card{background:var(--white); border:1px solid var(--paper-line); border-radius:var(--radius); padding:28px 28px 24px; box-shadow:0 30px 60px -30px rgba(18,32,58,.25);}
  .calc-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px;}
  .calc-title{font-family:'Fraunces', serif; font-size:19px;}
  .calc-tag{font-size:11px; font-family:'IBM Plex Mono',monospace; color:var(--brass-deep); text-transform:uppercase; letter-spacing:.08em;}
  .calc-desc{font-size:13px; color:var(--slate); margin-bottom:22px;}
  .slider-row{margin-bottom:18px;}
  .slider-row label{display:flex; justify-content:space-between; font-size:13px; margin-bottom:8px;}
  .slider-row label .val{font-family:'IBM Plex Mono', monospace; color:var(--brass-deep); font-weight:600;}
  input[type=range]{width:100%; appearance:none; height:2px; background:var(--paper-line); outline:none; margin:0;}
  input[type=range]::-webkit-slider-thumb{appearance:none; width:15px; height:15px; border-radius:50%; background:var(--ink); cursor:pointer; border:3px solid var(--paper); box-shadow:0 0 0 1px var(--ink);}
  input[type=range]::-moz-range-thumb{width:15px; height:15px; border-radius:50%; background:var(--ink); cursor:pointer; border:3px solid var(--paper); box-shadow:0 0 0 1px var(--ink);}
  .ledger{border-top:1px solid var(--ink); margin-top:22px; padding-top:16px;}
  .ledger-row{display:flex; justify-content:space-between; align-items:baseline; font-size:13.5px; padding:7px 0; border-bottom:1px dotted var(--paper-line);}
  .ledger-row .label{color:var(--ink-70);}
  .ledger-row .figure{font-family:'IBM Plex Mono', monospace; font-weight:600;}
  .ledger-row.total{border-bottom:none; border-top:1px solid var(--ink); margin-top:6px; padding-top:14px;}
  .ledger-row.total .label{color:var(--ink); font-weight:600;}
  .ledger-row.total .figure{color:var(--forest); font-size:16px;}
  .calc-cta{display:block; text-align:center; margin-top:20px; width:100%; background:var(--brass-deep); color:var(--white); padding:12px; border:none; font-family:'IBM Plex Sans', sans-serif; font-size:13px; font-weight:600; border-radius:var(--radius); cursor:pointer;}
  .calc-cta:hover{background:var(--brass);}

  .trust{border-top:1px solid var(--paper-line); border-bottom:1px solid var(--paper-line); padding:20px 0;}
  .trust .wrap{display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:center;}
  .trust-item{font-size:13px; color:var(--slate);}
  .trust-item strong{color:var(--ink); font-weight:600;}

  section{padding:74px 0;}
  .section-head{max-width:660px; margin-bottom:40px;}
  .section-head h2{font-size:clamp(25px,2.8vw,32px); margin-bottom:12px;}
  .section-head p{color:var(--ink-70); font-size:15px; line-height:1.6;}
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
  .section-head.center .eyebrow{justify-content:center;}
  .section-head.center .eyebrow::before{display:none;}

  /* MAGNUM STORY BAND */
  .story-band{background:var(--ink); color:var(--paper);}
  .story-band .eyebrow{color:#D9B679;}
  .story-band .eyebrow::before{background:#D9B679;}
  .story-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
  @media (max-width:900px){ .story-grid{grid-template-columns:1fr;} }
  .story-grid h2{color:var(--paper); font-size:clamp(26px,3vw,36px); margin-bottom:18px;}
  .story-grid p{color:rgba(245,245,241,.75); font-size:15.5px; line-height:1.7; margin-bottom:16px;}
  .story-badge{display:inline-block; border:1px solid rgba(217,182,121,.5); color:#D9B679; font-family:'IBM Plex Mono',monospace; font-size:12px; padding:8px 14px; border-radius:20px;}

  .why-list{border-top:1px solid var(--ink);}
  .why-row{display:grid; grid-template-columns:110px 1fr; gap:24px; padding:24px 0; border-bottom:1px solid var(--paper-line);}
  .why-row .tag{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass-deep); text-transform:uppercase; letter-spacing:.06em; padding-top:4px;}
  .why-row h3{font-size:18px; margin-bottom:6px; font-weight:500;}
  .why-row p{margin:0; font-size:14px; color:var(--ink-70); line-height:1.6; max-width:58ch;}
  @media (max-width:640px){ .why-row{grid-template-columns:1fr; gap:6px;} }

  .icon-badge{width:46px; height:46px; border-radius:50%; background:rgba(150,105,42,.12); display:flex; align-items:center; justify-content:center; color:var(--brass-deep); flex-shrink:0;}
  .icon-badge svg{width:22px; height:22px;}
  .why-row .icon-badge{margin-bottom:6px;}
  .card .icon-badge{background:rgba(47,111,78,.12); color:var(--forest); margin-bottom:14px;}

  .check-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px 32px;}
  @media (max-width:700px){ .check-grid{grid-template-columns:1fr;} }
  .check-item{display:flex; gap:10px; font-size:14.5px; padding:10px 0; border-bottom:1px solid var(--paper-line);}
  .check-item .mark{color:var(--forest); font-weight:700;}

  .card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--paper-line); border:1px solid var(--paper-line);}
  @media (max-width:800px){ .card-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .card-grid{grid-template-columns:1fr;} }
  .card{background:var(--white); padding:24px; font-size:14.5px;}
  .card .num{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--brass-deep); display:block; margin-bottom:10px;}
  .card strong{display:block; font-family:'Fraunces',serif; font-size:16.5px; font-weight:500; margin-bottom:6px;}

  .services{background:var(--ink); color:var(--paper);}
  .services .section-head p{color:rgba(245,245,241,.68);}
  .services .eyebrow{color:#D9B679;} .services .eyebrow::before{background:#D9B679;}
  .svc-list{border-top:1px solid rgba(245,245,241,.25);}
  .svc-row{padding:16px 0; border-bottom:1px solid rgba(245,245,241,.15); font-size:15.5px;}
  .svc-row .name{font-family:'Fraunces', serif; font-weight:500;}

  .chip-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
  .chip{font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:13px; padding:9px 16px; border-radius:20px; letter-spacing:.01em; white-space:nowrap; flex-shrink:0;}

  table.compare{width:100%; border-collapse:collapse; font-size:14.5px;}
  table.compare th, table.compare td{padding:14px 16px; text-align:left; border-bottom:1px solid var(--paper-line);}
  table.compare th{font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--slate); border-bottom:2px solid var(--ink);}
  table.compare td.brand{color:var(--forest); font-weight:600;}

  .res-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:800px){ .res-grid{grid-template-columns:1fr;} }
  .res-card{border:1px solid var(--paper-line); border-radius:var(--radius); padding:22px; background:var(--white);}
  .res-card .eyebrow{font-size:11px; margin-bottom:10px;}
  .res-card h3{font-size:16.5px; margin-bottom:8px; font-weight:500;}
  .res-card p{font-size:13.5px; color:var(--ink-70); line-height:1.55; margin:0;}

  .faq-item{border-bottom:1px solid var(--paper-line);}
  .faq-q{width:100%; text-align:left; background:none; border:none; padding:18px 0; font-family:'Fraunces',serif; font-size:16.5px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; color:var(--ink);}
  .faq-q .plus{font-family:'IBM Plex Mono',monospace; color:var(--brass-deep); font-size:18px;}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
  .faq-a p{font-size:14.5px; color:var(--ink-70); line-height:1.6; padding-bottom:18px; margin:0;}
  .faq-item.open .faq-a{max-height:200px;}

  .flow-row{display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;}
  .flow-step{position:relative; padding:0 18px; text-align:center;}
  .flow-node{width:56px; height:56px; border-radius:50%; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; position:relative; z-index:2; border:4px solid #EFEEE8;}
  .flow-node svg{width:24px; height:24px;}
  .flow-row::before{content:""; position:absolute; top:28px; left:12.5%; right:12.5%; height:2px; background:var(--ink); z-index:1;}
  .flow-step h3{font-size:15.5px; font-weight:600; font-family:'IBM Plex Sans'; margin-bottom:6px;}
  .flow-step p{font-size:12.5px; color:var(--ink-70); margin:0; line-height:1.5; max-width:22ch; margin-left:auto; margin-right:auto;}
  .flow-step .num{display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--brass-deep); margin-bottom:8px;}
  @media (max-width:800px){ .flow-row{grid-template-columns:1fr 1fr; gap:32px 0;} .flow-row::before{display:none;} }

  footer{background:var(--ink); color:var(--paper); padding:64px 0 36px;}
  .footer-cta{text-align:center; padding-bottom:50px; border-bottom:1px solid rgba(245,245,241,.15); margin-bottom:28px;}
  .footer-cta h2{color:var(--paper); font-size:clamp(24px,3.2vw,34px); margin-bottom:20px; max-width:18ch; margin-left:auto; margin-right:auto;}
  .footer-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; font-size:12.5px; color:rgba(245,245,241,.55);}
  .footer-links{display:flex; gap:18px;}

  /* PHOTO BANDS */
  .photo-band{position:relative; height:clamp(280px, 34vw, 460px); overflow:hidden;}
  .photo-band img{width:100%; height:100%; object-fit:cover; object-position:center 30%; display:block; filter:grayscale(35%) contrast(1.05);}
  .photo-band::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,32,58,.15), rgba(18,32,58,.75)); mix-blend-mode:multiply;}
  .photo-band .caption{position:absolute; left:32px; bottom:28px; right:32px; color:#F5F5F1; z-index:2;}
  .photo-band .caption .eyebrow{color:#D9B679; margin-bottom:8px;}
  .photo-band .caption .eyebrow::before{background:#D9B679;}
  .photo-band .caption strong{display:block; font-family:'Fraunces',serif; font-size:clamp(20px,2.6vw,28px); font-weight:500; max-width:36ch;}
  @media (max-width:700px){ .photo-band{height:320px;} }

  .tech-photo{width:100%; height:180px; object-fit:cover; border-radius:var(--radius); filter:grayscale(45%) contrast(1.05); margin-bottom:18px; display:block;}

  /* SCROLL REVEAL */
  .reveal{opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1);}
  .reveal.visible{opacity:1; transform:translateY(0);}
  .reveal-stagger > *{opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease;}
  .reveal-stagger.visible > *{opacity:1; transform:translateY(0);}
  .reveal-stagger.visible > *:nth-child(1){transition-delay:.05s;}
  .reveal-stagger.visible > *:nth-child(2){transition-delay:.14s;}
  .reveal-stagger.visible > *:nth-child(3){transition-delay:.23s;}
  .reveal-stagger.visible > *:nth-child(4){transition-delay:.32s;}
  .reveal-stagger.visible > *:nth-child(5){transition-delay:.41s;}
  .reveal-stagger.visible > *:nth-child(6){transition-delay:.5s;}

  /* HOVER MICRO-INTERACTIONS */
  .card{transition:transform .3s ease, box-shadow .3s ease;}
  .card:hover{transform:translateY(-4px); box-shadow:0 16px 32px -18px rgba(18,32,58,.35); position:relative; z-index:2;}
  .card:hover .icon-badge{transform:scale(1.1) rotate(-4deg);}
  .icon-badge{transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
  .btn{transition:transform .25s ease, box-shadow .25s ease, background .2s ease;}
  .btn:hover{transform:translateY(-2px); box-shadow:0 10px 24px -12px rgba(18,32,58,.4);}
  .chip{transition:transform .25s ease, box-shadow .2s ease;}
  .chip:hover{transform:translateY(-2px) scale(1.04);}
  .flow-node{transition:transform .3s ease;}
  .flow-step:hover .flow-node{transform:scale(1.08);}
  .res-card{transition:transform .3s ease, box-shadow .3s ease;}
  .res-card:hover{transform:translateY(-4px); box-shadow:0 16px 32px -18px rgba(18,32,58,.3);}

  /* HERO ROUTE GRAPHIC */
  .route-graphic{display:inline-flex; align-items:center; gap:8px; margin-left:12px;}
  .route-graphic svg{display:block;}
  .route-dot{animation:routePulse 2.2s ease-in-out infinite;}
  .route-dot.d2{animation-delay:1.1s;}
  @keyframes routePulse{0%,100%{opacity:.5; r:3.5;} 50%{opacity:1; r:4.5;}}
  .route-line-dash{stroke-dasharray:4 4; animation:routeDash 1.4s linear infinite;}
  @keyframes routeDash{to{stroke-dashoffset:-16;}}

  /* FLOW LINE DRAW */
  .flow-row::before{transform:scaleX(0); transform-origin:left; transition:transform 1.1s cubic-bezier(.2,.7,.3,1) .2s;}
  .flow-row.visible::before{transform:scaleX(1);}
  .flow-step{opacity:0; transform:translateY(18px); transition:opacity .5s ease, transform .5s ease;}
  .flow-row.visible .flow-step{opacity:1; transform:translateY(0);}
  .flow-row.visible .flow-step:nth-child(1){transition-delay:.15s;}
  .flow-row.visible .flow-step:nth-child(2){transition-delay:.4s;}
  .flow-row.visible .flow-step:nth-child(3){transition-delay:.65s;}
  .flow-row.visible .flow-step:nth-child(4){transition-delay:.9s;}

  /* MARQUEE */
  .marquee-wrap{overflow:hidden; margin-top:20px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);}
  .marquee-track{display:flex; gap:10px; width:max-content; animation:marquee 26s linear infinite;}
  .marquee-wrap:hover .marquee-track{animation-play-state:paused;}
  @keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

  @media (prefers-reduced-motion: reduce){
    .reveal, .reveal-stagger > *, .flow-step, .flow-row::before{opacity:1 !important; transform:none !important; transition:none !important;}
    .marquee-track{animation:none;}
    .route-dot, .route-line-dash{animation:none;}
  }

  /* GLOBE */
  .globe-wrap{width:220px; height:220px; margin:0 auto 22px; max-width:100%;}
  .globe-wrap canvas{display:block; margin:0 auto;}
