  :root{
    --bg:#FAFBFB;
    --surface:#FFFFFF;
    --surface-alt:#EFF6F4;
    --surface-alt-2:#E4F1EE;
    --ink:#0A1420;
    --ink-soft:#33424A;
    --muted:#5C6B71;
    --accent:#0FB89C;
    --accent-deep:#0A8F79;
    --accent-2:#2D8FE0;
    --line:#DDE6E4;
    --line-soft:#EAF0EF;
    --shadow:rgba(15,30,45,0.05);
    --on-accent:#FFFFFF;
    --radius:16px;
    --radius-lg:22px;
    --glass-rim:rgba(255,255,255,0.55);
    --glass-sheen:rgba(255,255,255,0.5);
    --mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
    --display:'Manrope', system-ui, -apple-system, sans-serif;
    --body-font:'Public Sans', system-ui, -apple-system, sans-serif;
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#070C12; --surface:#0E1620; --surface-alt:#0B1A1A; --surface-alt-2:#0D2020;
      --ink:#EAF3F1; --ink-soft:#C7D6D4; --muted:#8FA2A0;
      --accent:#2FE0C0; --accent-deep:#5CF0D6; --accent-2:#59B4F0;
      --line:#1D2C30; --line-soft:#162226; --shadow:rgba(0,0,0,0.32); --on-accent:#04150F;
      --glass-rim:rgba(255,255,255,0.14); --glass-sheen:rgba(255,255,255,0.16);
    }
  }
  :root[data-theme="dark"]{
    --bg:#070C12; --surface:#0E1620; --surface-alt:#0B1A1A; --surface-alt-2:#0D2020;
    --ink:#EAF3F1; --ink-soft:#C7D6D4; --muted:#8FA2A0;
    --accent:#2FE0C0; --accent-deep:#5CF0D6; --accent-2:#59B4F0;
    --line:#1D2C30; --line-soft:#162226; --shadow:rgba(0,0,0,0.32); --on-accent:#04150F;
    --glass-rim:rgba(255,255,255,0.14); --glass-sheen:rgba(255,255,255,0.16);
  }

  *{box-sizing:border-box;}
  body{
    margin:0; background:var(--bg); color:var(--ink);
    font-family:var(--body-font); font-size:16px; line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;}
  [hidden]{display:none!important;}
  h1,h2,h3,h4{font-family:var(--display); color:var(--ink); margin:0; text-wrap:balance; letter-spacing:-0.01em;}
  p{margin:0;}
  a{color:inherit; text-decoration:none;}
  .mono{font-family:var(--mono); font-variant-numeric:tabular-nums;}
  .wrap{max-width:1160px; margin:0 auto; padding-inline:24px;}
  section{padding-block:68px;}
  @media (max-width:720px){ section{padding-block:44px;} }

  .eyebrow{
    font-family:var(--mono); font-size:12.5px; letter-spacing:0.12em; text-transform:uppercase;
    color:var(--accent-deep); display:flex; align-items:center; gap:10px; margin-bottom:16px;
  }
  .eyebrow::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);}

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky; top:0; z-index:50;
    padding:calc(env(safe-area-inset-top, 0px) + 12px) 0 0;
    pointer-events:none;
  }
  .nav-inner{
    width:min(1160px, 100% - 24px); margin-inline:auto; padding:13px 20px;
    display:flex; align-items:center; justify-content:space-between; gap:18px;
    border-radius:999px; position:relative; overflow:hidden; pointer-events:auto;
    background:color-mix(in srgb, var(--surface) 62%, transparent);
    backdrop-filter:blur(22px) saturate(180%);
    -webkit-backdrop-filter:blur(22px) saturate(180%);
    border:1px solid color-mix(in srgb, var(--surface) 75%, transparent);
    box-shadow:inset 0 1px 0 var(--glass-rim), 0 12px 30px -14px var(--shadow), 0 1px 3px rgba(0,0,0,0.05);
  }
  .nav-inner::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(115deg, transparent 15%, var(--glass-sheen) 32%, transparent 46%);
    mix-blend-mode:overlay; opacity:.7; transform:translateX(-70%);
    animation:glassSheen 10s ease-in-out infinite;
  }
  @keyframes glassSheen{ 0%,100%{transform:translateX(-70%);} 50%{transform:translateX(70%);} }
  @media (prefers-reduced-motion: reduce){ .nav-inner::before{animation:none; display:none;} }
  .brand{display:flex; align-items:center; gap:12px; position:relative; color:var(--ink);}
  .brand-logo{height:28px; width:auto; flex:none; display:block;}
  .brand-text{display:flex; flex-direction:column; line-height:1; border-left:1px solid var(--line-soft); padding-left:12px;}
  .brand-text .sub{font-family:var(--mono); font-size:10px; letter-spacing:0.14em; color:var(--accent-deep); white-space:nowrap;}
  nav.links{display:flex; gap:16px; align-items:center; position:relative;}
  nav.links a{
    font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--ink-soft); white-space:nowrap; position:relative; padding-bottom:3px; transition:color .15s ease;
  }
  nav.links a:hover, nav.links a.active{color:var(--accent-deep);}
  nav.links a.active::after{content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px; border-radius:2px; background:var(--accent);}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-family:var(--body-font); font-weight:700; font-size:14.5px;
    padding:11px 22px; border-radius:999px; border:1px solid transparent; cursor:pointer;
    white-space:nowrap; transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;
  }
  .btn-primary{background:var(--accent-deep); color:var(--on-accent);}
  .btn-primary:hover{transform:translateY(-1px); box-shadow:0 8px 20px -8px color-mix(in srgb, var(--accent-deep) 50%, transparent);}
  .btn-primary:active{transform:translateY(0); box-shadow:none;}
  .btn-ghost{background:var(--surface-alt); border-color:transparent; color:var(--ink);}
  .btn-ghost:hover{background:var(--surface-alt-2);}
  .nav-cta{display:flex; align-items:center; gap:14px;}
  .nav-toggle{display:none; background:none; border:1px solid var(--line); border-radius:10px; width:40px; height:40px; align-items:center; justify-content:center; color:var(--ink); cursor:pointer;}
  @media (max-width: 1180px){
    nav.links{display:none;}
    .nav-toggle{display:flex;}
  }
  @media (max-width:560px){ .brand .brand-text{display:none;} }
  #mobileMenu{
    display:none; flex-direction:column; gap:2px;
    width:min(1160px, 100% - 24px); margin:8px auto 0; padding:8px 16px 14px;
    border-radius:20px; pointer-events:auto;
    background:color-mix(in srgb, var(--surface) 72%, transparent);
    backdrop-filter:blur(22px) saturate(180%);
    -webkit-backdrop-filter:blur(22px) saturate(180%);
    border:1px solid color-mix(in srgb, var(--surface) 82%, transparent);
    box-shadow:inset 0 1px 0 var(--glass-rim), 0 16px 36px -18px var(--shadow);
  }
  #mobileMenu.open{display:flex;}
  #mobileMenu a{
    padding:13px 6px; font-family:var(--mono); font-size:12px; letter-spacing:0.07em; text-transform:uppercase;
    font-weight:600; border-bottom:1px solid var(--line-soft); color:var(--ink-soft);
  }
  #mobileMenu a:last-child{border-bottom:none;}
  #mobileMenu a.active{color:var(--accent-deep);}

  /* ---------- HERO ---------- */
  .hero{padding-top:88px; padding-bottom:104px;}
  @media (max-width:720px){ .hero{padding-top:56px; padding-bottom:64px;} }
  .hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:72px; align-items:center;}
  @media (max-width:920px){ .hero-grid{grid-template-columns:1fr; gap:52px;} }
  .hero h1{font-size:clamp(34px, 4.4vw, 52px); font-weight:800; line-height:1.1; letter-spacing:-0.025em;}
  .hero h1 em{font-style:normal; background:linear-gradient(135deg, var(--accent-deep), var(--accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .hero-sub{margin-top:26px; font-size:18px; color:var(--ink-soft); max-width:540px;}
  .hero-ctas{display:flex; gap:14px; margin-top:40px; flex-wrap:wrap;}
  .hero-fine{margin-top:32px; font-family:var(--mono); font-size:12px; color:var(--muted); letter-spacing:.02em;}

  /* route-select mock */
  .mock{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
    box-shadow:0 16px 40px -28px var(--shadow); padding:28px; position:relative; overflow:hidden;
  }
  .mock::before{content:""; position:absolute; inset:-40% -40% auto auto; width:60%; height:60%; background:radial-gradient(circle, color-mix(in srgb, var(--accent) 18%, transparent), transparent 70%); pointer-events:none;}
  .mock-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;}
  .mock-head .dot-row{display:flex; gap:6px;}
  .mock-head .dot-row span{width:9px; height:9px; border-radius:50%; background:var(--line);}
  .mock-title{font-family:var(--mono); font-size:11.5px; color:var(--muted); letter-spacing:.08em;}
  .live-badge{display:flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10px; letter-spacing:.1em; color:var(--accent-deep); text-transform:uppercase;}
  .live-dot{width:6px; height:6px; border-radius:50%; background:var(--accent); animation:livePulse 2s ease-out infinite;}
  @keyframes livePulse{
    0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);}
    70%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 0%, transparent);}
    100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent);}
  }
  @media (prefers-reduced-motion: reduce){ .live-dot{animation:none;} }
  .field-label{font-size:11px; font-family:var(--mono); color:var(--muted); letter-spacing:.08em; margin-bottom:8px; text-transform:uppercase;}
  .select-box{
    border:1.5px solid var(--accent); border-radius:10px; padding:12px 14px; display:flex; justify-content:space-between; align-items:center;
    font-family:var(--mono); font-size:14px; color:var(--ink); background:var(--surface-alt);
  }
  .select-box svg{width:14px; height:14px; color:var(--muted);}
  .option-list{margin-top:10px; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--surface);}
  .option-row{
    appearance:none; -webkit-appearance:none; display:flex; justify-content:space-between; align-items:center; width:100%; padding:11px 14px;
    font-family:var(--mono); font-size:13px; line-height:1.4; border-bottom:1px solid var(--line-soft); border-left:none; border-right:none; border-top:none;
    background:none; border-radius:0; margin:0; cursor:pointer; color:var(--ink); text-align:left; transition:background-color .15s ease, color .15s ease;
  }
  .option-row:last-child{border-bottom:none;}
  .option-row:hover{background:color-mix(in srgb, var(--accent) 7%, transparent);}
  .option-row:focus-visible{outline:2px solid var(--accent); outline-offset:-2px;}
  .option-row.active{background:color-mix(in srgb, var(--accent) 12%, transparent); color:var(--accent-deep); font-weight:700;}
  .option-row .tag{font-size:10.5px; color:var(--muted); font-family:var(--body-font);}
  .mock-stats{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px;}
  .stat-pill{border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--surface-alt);}
  .stat-pill .num{font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:700; font-size:19px; color:var(--accent-deep); transition:opacity .2s ease;}
  .stat-pill .lab{font-size:11.5px; color:var(--muted); margin-top:2px;}
  .sim-row{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:20px; font-size:12px; color:var(--muted);}
  .sim-row .sim-label{display:flex; align-items:center; gap:7px;}
  .sim-status-dot{width:6px; height:6px; border-radius:50%; background:var(--accent); flex:none;}
  .sim-time{font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--ink-soft);}
  .sim-track{margin-top:9px; height:6px; border-radius:999px; background:var(--surface-alt); overflow:hidden;}
  .sim-fill{height:100%; width:100%; transform:scaleX(0); transform-origin:left; border-radius:999px; background:linear-gradient(90deg, var(--accent), var(--accent-2));}

  /* ---------- QUICK-FACTS BAND ---------- */
  .factband{background:var(--surface-alt);}
  .factband .wrap{padding-block:36px;}
  .fact-strip{display:grid; grid-template-columns:repeat(5,1fr); gap:12px;}
  @media (max-width:960px){ .fact-strip{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:620px){ .fact-strip{grid-template-columns:repeat(2,1fr);} }
  .fs-card{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:16px;}
  .fs-card svg{width:19px; height:19px; color:var(--accent-deep); margin-bottom:10px;}
  .fs-card h4{font-size:13px; font-weight:800; margin-bottom:6px;}
  .fs-card p{font-size:11.5px; color:var(--muted); line-height:1.5;}

  /* ---------- SECTION HEAD ---------- */
  .sec-head{max-width:680px; margin-bottom:32px;}
  .sec-head h2{font-size:clamp(26px,3.2vw,36px); font-weight:800;}
  .sec-head p{margin-top:14px; color:var(--ink-soft); font-size:16px;}

  /* overview two-col */
  .overview-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  @media (max-width:820px){ .overview-grid{grid-template-columns:1fr;} }
  .overview-grid p + p{margin-top:16px;}
  .overview-grid p{color:var(--ink-soft);}
  .lede{font-size:19px; color:var(--ink)!important; font-weight:600;}

  /* ---------- ROUTES ---------- */
  .routes-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:920px){ .routes-grid{grid-template-columns:1fr;} }
  .route-card{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:26px;
    display:flex; flex-direction:column; gap:16px;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .route-card:hover{transform:translateY(-2px); border-color:color-mix(in srgb, var(--accent) 30%, var(--line)); box-shadow:0 10px 24px -20px var(--shadow);}
  @media (prefers-reduced-motion: reduce){ .route-card{transition:none;} }
  .route-card.featured{border-color:var(--accent); box-shadow:0 0 0 1px var(--accent), 0 12px 28px -22px var(--shadow);}
  .route-name{font-family:var(--mono); font-weight:700; font-size:16px; letter-spacing:.02em;}
  .route-desc{color:var(--ink-soft); font-size:14.5px;}
  .route-chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:auto;}
  .chip{
    font-family:var(--mono); font-size:12px; padding:6px 10px; border-radius:8px;
    background:var(--surface-alt); border:1px solid var(--line-soft); color:var(--ink-soft);
  }
  .chip.hot{color:var(--accent-deep); border-color:color-mix(in srgb, var(--accent) 45%, var(--line)); background:color-mix(in srgb, var(--accent) 10%, var(--surface-alt));}
  .notes-box{
    margin-top:22px; border:1px solid var(--line); border-radius:var(--radius); padding:18px 22px;
    display:flex; gap:16px; color:var(--muted); font-size:13.5px; background:var(--surface);
  }
  .notes-box b{color:var(--ink-soft);}

  /* ---------- BULLET LISTS (inventory / compliance / infrastructure) ---------- */
  .dot-list{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:13px;}
  .dot-list li{color:var(--ink-soft); font-size:14.5px; padding-left:18px; position:relative;}
  .dot-list li::before{content:""; position:absolute; left:0; top:9px; width:6px; height:6px; border-radius:50%; background:var(--accent);}
  .dot-list li b{color:var(--ink);}
  .bullet-cols{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
  @media (max-width:820px){ .bullet-cols{grid-template-columns:1fr; gap:22px;} }

  /* ---------- WORKFLOW ---------- */
  .flow{display:flex; flex-direction:column; max-width:760px;}
  .flow-step{display:grid; grid-template-columns:44px 1fr; gap:20px; position:relative;}
  .flow-marker{display:flex; flex-direction:column; align-items:center;}
  .flow-marker .num{
    width:40px; height:40px; border-radius:50%; background:var(--surface); border:1.5px solid var(--accent);
    display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-weight:700; color:var(--accent-deep); flex:none; font-size:14px;
  }
  .flow-marker .rail{flex:1; width:2px; background:linear-gradient(to bottom, var(--accent), var(--line-soft)); margin-top:4px; min-height:20px;}
  .flow-step:last-child .flow-marker .rail{display:none;}
  .flow-body{padding-bottom:18px;}
  .flow-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px 18px; font-weight:700; font-size:15px;}
  .flow-note{margin-top:10px; font-size:13.5px; color:var(--muted); padding-left:2px; max-width:520px;}
  .flow-notes-footer{margin-top:8px; border-top:1px solid var(--line-soft); padding-top:22px; font-size:13.5px; color:var(--muted); display:flex; flex-direction:column; gap:6px;}

  /* ---------- USER / RELATIONSHIP TYPE GRIDS ---------- */
  .subhead{font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; margin-top:36px;}
  .subhead:first-of-type{margin-top:0;}
  .type-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  @media (max-width:920px){ .type-grid{grid-template-columns:1fr;} }
  .type-card{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:24px;
    display:flex; flex-direction:column;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .type-card:hover{transform:translateY(-2px); border-color:color-mix(in srgb, var(--accent) 30%, var(--line)); box-shadow:0 10px 24px -20px var(--shadow);}
  .type-card h4{font-size:16.5px; font-weight:800; margin-bottom:8px;}
  .type-card p{color:var(--ink-soft); font-size:14.5px;}
  .type-card .glyph{width:28px; height:28px; margin-bottom:14px; color:var(--accent-deep);}
  .type-card .chip-row{display:flex; gap:6px; flex-wrap:wrap; margin-top:14px;}
  @media (prefers-reduced-motion: reduce){ .type-card{transition:none;} }

  /* ---------- ADDITIONAL FEATURES / UI MOCKS ---------- */
  .addfeat{display:flex; flex-direction:column; gap:20px;}
  .af-row{display:grid; grid-template-columns:320px 1fr; gap:28px; align-items:center;}
  @media (max-width:820px){ .af-row{grid-template-columns:1fr;} }
  .af-panel{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:0 10px 24px -22px var(--shadow);}
  .af-h4{font-size:17px; font-weight:800; margin-bottom:8px;}
  .af-p{color:var(--ink-soft); font-size:14.5px;}
  .toggle-row{display:flex; align-items:center; justify-content:space-between; background:var(--surface-alt); border-radius:12px; padding:14px 16px;}
  .price-stepper{display:flex; align-items:center; gap:10px; font-family:var(--mono);}
  .price-stepper button{width:26px; height:26px; border-radius:8px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; font-family:var(--mono); font-size:14px;}
  .switch{position:relative; width:42px; height:24px; border-radius:999px; background:var(--accent); flex:none; cursor:pointer; border:none;}
  .switch::after{content:""; position:absolute; width:18px; height:18px; border-radius:50%; background:#fff; top:3px; right:3px; transition:transform .15s;}
  .switch.off{background:var(--line);}
  .switch.off::after{transform:translateX(-18px);}
  .resp-table{width:100%; border-collapse:collapse; font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:12.5px;}
  .resp-table th{text-align:left; font-weight:600; color:var(--muted); padding:6px 8px; border-bottom:1px solid var(--line);}
  .resp-table td{padding:8px; border-bottom:1px solid var(--line-soft);}
  .status-pill{padding:4px 10px; border-radius:999px; font-size:11px; font-weight:700; display:inline-block; letter-spacing:0.01em;}
  .status-pending{background:color-mix(in srgb, var(--accent-2) 18%, transparent); color:var(--accent-2);}
  .status-accept{background:color-mix(in srgb, var(--accent) 20%, transparent); color:var(--accent-deep);}
  .status-cancel, .status-reject{background:color-mix(in srgb, #E0524A 16%, transparent); color:#C7473F;}
  .notif-toast{background:var(--surface-alt); border:1px solid var(--line); border-radius:10px; padding:10px 12px; font-size:13px; color:var(--ink-soft); display:flex; gap:8px; align-items:flex-start;}
  .notif-toast + .notif-toast{margin-top:8px;}
  .notif-toast .bullet{color:var(--accent-deep); flex:none;}

  /* ---------- ABOUT ---------- */
  .about-wrap{display:grid; grid-template-columns:1fr 340px; gap:56px;}
  @media (max-width:920px){ .about-wrap{grid-template-columns:1fr;} }
  .about-wrap p{color:var(--ink-soft); margin-top:14px;}
  .fact-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:22px; display:flex; flex-direction:column; gap:14px; align-self:start;}
  .fact{display:flex; justify-content:space-between; gap:10px; font-size:13.5px; border-bottom:1px solid var(--line-soft); padding-bottom:12px;}
  .fact:last-child{border-bottom:none; padding-bottom:0;}
  .fact .k{color:var(--muted);}
  .fact .v{font-weight:700; text-align:right; font-family:var(--mono); font-size:12.5px;}

  /* ---------- CONTACT ---------- */
  .contact-band{background:var(--surface-alt); border-top:1px solid var(--line-soft);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  @media (max-width:920px){ .contact-grid{grid-template-columns:1fr;} }
  .form-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; box-shadow:0 14px 32px -24px var(--shadow);}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  @media (max-width:520px){ .form-row{grid-template-columns:1fr;} }
  .field{display:flex; flex-direction:column; gap:6px; margin-bottom:14px;}
  .field label{font-size:12.5px; font-weight:700; color:var(--ink-soft);}
  .field input, .field textarea, .field select{
    border:1px solid var(--line); border-radius:10px; padding:11px 12px; font-family:var(--body-font); font-size:14.5px;
    background:var(--surface); color:var(--ink); resize:vertical;
  }
  .field input:focus, .field textarea:focus, .field select:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
  .form-note{font-size:12.5px; color:var(--muted); margin-top:4px;}
  .contact-list{display:flex; flex-direction:column; gap:18px; margin-top:24px;}
  .contact-item{display:flex; gap:14px; align-items:flex-start;}
  .contact-item svg{width:20px; height:20px; color:var(--accent-deep); flex:none; margin-top:2px;}
  .contact-item .h{font-weight:700; font-size:14.5px;}
  .contact-item .d{color:var(--muted); font-size:13.5px; margin-top:2px;}
  .success-msg{display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:12px 0;}
  .success-msg svg{width:34px; height:34px; color:var(--accent-deep);}

  /* ---------- FOOTER ---------- */
  footer{border-top:1px solid var(--line-soft); background:var(--surface);}
  .footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-block:56px;}
  @media (max-width:820px){ .footer-top{grid-template-columns:1fr; gap:32px;} }
  .footer-brand{display:flex; align-items:center; gap:12px; margin-bottom:14px; color:var(--ink);}
  .footer-brand .brand-logo{height:24px;}
  .footer-desc{color:var(--muted); font-size:13.5px; max-width:320px;}
  .footer-col h5{font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; font-weight:600;}
  .footer-col a{display:block; color:var(--ink-soft); font-size:14px; margin-bottom:10px;}
  .footer-col a:hover{color:var(--accent-deep);}
  .legal{border-top:1px solid var(--line-soft); padding-block:28px; font-size:12px; color:var(--muted); line-height:1.7;}
  .legal p + p{margin-top:10px;}
  .reg-link{text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--line); transition:text-decoration-color .15s ease, color .15s ease;}
  .reg-link:hover{color:var(--accent-deep); text-decoration-color:var(--accent-deep);}
  .legal-bottom{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:18px; padding-top:18px; border-top:1px solid var(--line-soft);}

  ::selection{background:color-mix(in srgb, var(--accent) 35%, transparent);}

  /* ---------- CURSOR AURA ---------- */
  #cursorAura{
    position:fixed; top:0; left:0; width:346px; height:346px; margin:-173px 0 0 -173px;
    border-radius:50%; pointer-events:none; z-index:40; will-change:transform, opacity;
    background:radial-gradient(circle, color-mix(in srgb, var(--accent) 30%, transparent) 0%, color-mix(in srgb, var(--accent) 10%, transparent) 42%, transparent 72%);
    opacity:0; transition:opacity .5s ease;
  }
  #cursorAura.active{opacity:1;}
  @media (hover:none), (pointer:coarse){ #cursorAura{display:none;} }
  @media (prefers-reduced-motion:reduce){ #cursorAura{display:none;} }

  /* visually hidden, available to screen readers */
  .sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
